3.1 信息系统建设
3.1.1 信息系统的生命周期
信息系统的生命周期可以分为立项、开发、运维及消亡四个阶段。
- 立项阶段:即概念阶段或需求阶段,这一阶段根据用户业务发展和经营管理的需要,提出建设信息系统的初步构想;然后对企业信息系统的需求进行深入调研和分析,形成《需求规格说明书》并确定立项。
- 开发阶段:以立项阶段所做的需求分析为基础,进行总体规划。之后,通过系统分析、系统**设计、系统**实施、系统**验收**等工作实现并交付系统。
- 运维阶段:信息系统通过验收,正式移交给用户以后,进入运维阶段。要保障系统正常运行,系统维护是一项必要的工作。系统的运行维护可分为更正性维护、适应性维护、完善性维护、预防性维护等类型。
- 消亡阶段:信息系统不可避免地会遇到系统更新改造、功能扩展,甚至废弃重建等情况。对此,在信息系统建设的初期就应该注意系统消亡条件和时机,以及由此而花费的成本。
3.1.2 信息系统开发方法
常用的开发方法包括:结构化方法、原型法、面向对象方法等。
- 结构化方法:是应用最为广泛的一种开发方法。把整个系统的开发过程分为若干阶段,然后依次进行,前一阶段是后一阶段的工作依据,按顺序完成。每个阶段和主要步骤都有明确详尽的文档编制要求,并对其进行有效控制。结构化方法的特点是注重开发过程的整体性和全局性。但其缺点是开发周期长;文档、设计说明繁琐,工作效率低;要求在开发之初全面认识系统的需求,充分预料各种可能发生的变化,但这并不十分现实。(其实可以理解为预测型,瀑布型)
- 手段:数据流图、数据字典、结构化语言、判定表、判定树
- 原型法:其认为在无法全面准确地提出用户需求的情况下,并不要求对系统做全面、详细的分析,而是基于对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。原型法的特点在于其对用户的需求是动态响应、逐步纳入的;系统分析、设计与实现都是随着对原型的不断修改而同时完成的,相互之间并无明显界限,也没有明确分工。原型又可以分为抛弃型原型和进化型原型两种。(其实可以理解为增量型或适应型。)
- 面向对象方法:用对象表示客观事物,对象是一个严格模块化的实体,在系统开发中可被共享和重复引用,以达到复用的目的。其关键是能否建立一个全面、合理、统一的模型,既能反映需求对应的问题域,也能被计算机系统对应的求解域所接受。在系统开发的实际工作中,往往根据需要将多种开发方法进行组合应用,最终完成系统开发的全部任务。
3.2 信息系统设计
3.2.1 方案设计
系统方案设计包括总体设计和各部分的详细设计(物理设计)两个方面。
- 系统总体设计:包括系统的总体架构方案设计、软件系统的总体架构设计、数据存储的总体设计、计算机和网络系统的方案设计等。
- 系统详细设计:包括代码设计、数据库设计、人/机界面设计、处理过程设计等。
- 快速记忆:总体(架构、软系统、数据存储、网络);详细(代码、数据库、界面、处理过程)
3.2.2 系统架构
系统架构是将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。之后,进一步确定各层的接口,层与层相互之间的关系。对整个系统的分解,既需要进行“纵向” 分解,也需要对同一逻辑层分块,进行“横向”分解。
3.2.3 设备、 DBMS及技术选型
在系统设计中进行设备、DBMS及技术选型时,不只要考虑系统的功能要求,还要考虑到系统实现的内外环境和主客观条件。
3.3 软件工程
3.3.1 软件需求分析与定义
软件需求是针对待解决问题的特性的描述
- 包括:
- 功能需求(业务功能)
- 非功能需求(可靠、容错、扩展、稳定性)
- 设计约束(限制条件、补充要约、系统IE6.0或WIN7不能运行)
- 可验证性:所定义的需求必须**可以被验证。(千万注意!不是绝大部分,是必须能够被验证**)
-
通过需求分析
可以检测和解决需求之间的**冲突**;
- 发现系统的**边界**;
- 并详细描述**出系统需求**。
3.3.2 软件设计、测试与维护
- 通过软件设计得到要实现的各种不同模型,并确定最终方案。其可以划分为软件架构设计(也叫做高层设计)和软件详细设计两个阶段。
- 软件测试:测试是为了评价和改进产品质量、识别产品的缺陷和问题而进行的活动。软件测试是针对一个程序的行为,在有限测试用例集合上,动态验证是否达到预期的行为。
- 测试不再只是一种仅在编码阶段完成后才开始的活动。现在的软件测试被认为是一种应该包括在整个开发和维护过程中的活动,它本身是实际产品构迭的一个重要部分。测试这块课本讲的太少,必须补充很多内容
- 尽早地和不断地进行软件测试,测试用例应当由测试输入数据和对应的预期输出结果这两部分组成。系统测试应尽可能在实际运行使用环境下进行。
- 在测试时大家应该需要注意的一些事项:程序员应避免检查自己的程序;在设计测试用例时,应包括合理的输入条件和不合理的输入条件;要充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。严格执行测试计划,排除测试的随意性;应当对每一个测试结果做全面检查;妥善保存测试计划、测试用例、出错统计和最终分析报告,为软件维护提供方便。
- 常用的测试方法有黑盒测试和白盒测试。
- 1)黑盒测试:不考虑程序的内部结构,主要是在程序的接口上进行测试,它不涉及程序的内部逻辑。除了测试程序外,它还适用于对需要分析阶段的软件文档进行测试。
- 2 )白盒测试:把测试对象看做一个透明的盒子,对程序所有逻辑路径进行测试。
- 软件测试是由一系列不同的测试所组成的,可以分为:单元测试、集成测试、确认测试、系统测试。
- 单元测试/模块测试:是对每个模块进行测试。要理解驱动模块和桩模块。主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。
- 集成测试:在单元测试的基础上,将所有模块按照设计要求组装成系统,必须精心计划,应提交集成测试计划、集成测试规格说明书和集成测试分析报告。主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其他程序部分之间的接口上可能存在的错误。
- 确认测试:验证软件的功能、性能以及其他特性是否与用户的要求一致。
- 系统测试:将软件放在整个计算机环境下,在实际运行环境中进行一系列的测试,发现软件与系统定义不符合或矛盾的地方。
- α测试:是在开发环境进行的测试;
- β测试:是用户在实际环境中进行的测试,开发者不在旁边。
- 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。在给定的预算和进度下,尽可能有效率地进行回归测试,需要对测试用例库进行维护并依据一定的策略选择相应的回归测试包。对测试用例库的维护通常包括删除过时的测试用例、改进不受控制的测试用例、删除冗余的测试用例、增添新的测试用例等。在软件生命周期中,即使一个得到良好维护测试用例库也可能变得相当大,这使每次回归测试都重新运行完整的测试包变得不切实际,时间和成本约束可能阻碍运行这样一个测试,又是测试组不得不选择一个缩减的回归测试包来完成回归测试。
- 软件维护有如下类型:
- 更正性维护:更正交付后发现的错误
- 适应性维护:使软件产品能够在变化后或变化中的环境中继续使用;
- 完善性维护:改进交付后产品的性能和可维护性,扩展功能或改善性能
- 预防性维护:在软件产品中的潜在错误、漏洞成为实际错误前,检测并更正它们。
3.3.3 软件质量保证及质量评价
- 软件质量指的是软件特性的总和,是软件满足用户需求的能力,即遵从用户需求,达到用户满意。
- 软件质量包括
- 内部质量
- 外部质量
- 使用质量
- 软件质量包括
- 验证与确认:确定某一活动的产品是否符合活动的需求,最终的软件产品是否达到其意图并满足用户需求。
- ★★★ 验证 verification:试图确保活动的输出产品已经被正确构造,即活动的输出产品满足活动的规范说明;通常是由测试员,测试产品是否符合规格说明
- ★★★ 确认 validation:试图确保构造了正确的产品,即产品满足其特定的目的。通常是客户来验收确认是否满足产品需求
- 评审与审计:包括:管理评审、技术评审、检查、走查、审计等。
- 管理评审:目的是监控进展,决定**计划和进度**的状态,或评价用于达到目标所用管理方法的有效性。(评价管理方面)
- 技术评审:目的是评价软件**产品,以确定其对使用意图的适合性。(评价技术方面**)
- 软件审计:目的是提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的**独立评价**。
- 审计:正式组织的活动,识别**违例**情况,并要生成**审计报告,采取更正性行动**。
3.3.4 软件配置管理
软件配置管理活动包括
- 软件配置管理计划
- 软件配置标识
- 软件配置控制
- 软件配置状态记录
- 软件配置审计
- 软件发布管理与交付等活动。
3.3.5 软件过程管理
软件过程管理涉及技术过程和管理过程,通常包括以下几个方面。
- 项目启动与范围定义:启动项目并确定软件需求。
- 项目规划:制订计划,其中一个关键点是确定适当的软件生命周期过程,并完成相关的工作。
- 项目实施:根据计划,并完成相关的工作。
- 项目监控与评审:确认项目工作是否满足要求,发现问题并解决问题。
- 项目收尾与关闭:为了项目结束所做的活动。需要项目验收,并在验收后进行归档、事后分析和过程改进等活动。
3.3.6 软件开发工具
无重要考点,大家可以把那些工具尽力看看,区分下
- 软件开发工具是用于辅助软件生命周期过程的基千计算机的工具。通常使用这些工具来支持特定的软件工程方法,减少手工方式管理的负担。工具的种类包括支持单个任务的工具及涵盖整个生命周期的工具。
- 软件需求工具:需求建模工具、需求追踪工具。
- 软件设计工具:软件设计创建、检查工具。
- 软件构造工具:程序编辑器、编译器、代码生成器、解释器、调试器等。
- 软件测试工具:测试生成器、测试执行框架、测试评价工具、测试管理工具、性能分析工具。
- 软件维护工具:理解工具(如可视化工具)、再造工具(如重构工具)。
- 软件配置管理工具:追踪工具、版本管理工具和发布工具。
- 软件工程管理工具:项目计划与追踪工具、风险管理工具和度量工具。
- 软件工程过程工具:建模工具、管理工具、软件开发环境。
- 软件质量工具:检查工具、分析工具。
3.3.7 软件复用
- 软件复用是指利用已有软件的各种有关知识构造新的软件,以缩减软件开发和维护的费用。复用是提高软件生产力和质量的一种重要技术。
- 软件复用的主要思想是,将软件看成是由不同功能的“组件”所组成的有机体。
- 早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决策、架构、需求、设计、代码和文档等一切有关方面。
3.4 面向对象系统分析与设计
3.4.1 面向对象的基本概念 Object-oriented
1 、面向对象的基本概念包括:对象、类、抽象、封装、继承、多态、接口、消息、组件、复用、模式等。
- 对象(Object):由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。对象是由一组属性和对这组属性进行的操作构成的。
- 对象包含三个基本要素:
- 对象标识
- 对象状态
- 对象行为
- 例如,对于姓名(标识)为**Joe**的教师而言,其包含性别、年龄、职位等个人状态信息,同时还具有授课等行为特征, Joe就是封装后的一个典型对象。
- 类(Class):现实世界中实体的形式化描述,类将该实体的属性**(数据)和操作(函数)封装在一起。类和对象的关系可理解为,对象是类的实例,类是对象的模板(抽象)**。如果将对象比作房子,那么类就是房子的设计图纸。
- Joe是一名教师,也就拥有了教师的特征,这些特征就是教师这个类所具有的
| Teacher |
| —- |
| -age:int
-gender:char | | +teach() |
- Joe是一名教师,也就拥有了教师的特征,这些特征就是教师这个类所具有的
| Teacher |
| —- |
| -age:int
- 抽象(Abstraction):通过特定的实例抽取共同特征以后形成概念的过程。对象是现实世界中某个**实体的抽象,类是一组对象的抽象**。
- 封装(Encapsulation):将相关的概念组成一个单元模块,并通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。
- 继承(Inheritance):表示类之间的层次关系,父类与子类这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。
- 注意!!如果父类已经充分描述了类,那么子类就不必再描述
- 多态(Polymorphism):使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。
- 接口(Interface):描述对操作规范的说明。
- 消息(Message):体现对象间的交互,通过它向目标对象发送操作请求。
- 组件(Component):表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。组件应当是内聚的,并具有相对稳定的公开接口。一个封装的代码模块或大颗粒度的运行模块,具有一定功能、能够独立工作或同其他组件组合起来协同工作的对象。最终完成组件与语言本身没有任何关系,甚至实现跨平台。对使用者而言,他就是实现某些功能的、有输入输出接口的黑盒子
- 复用(Reuse):指将己有的软件及其有效成分用于构造新的软件或系统。组件技术软件复用实现的关键。
- 模式(Pattern):描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案三个组成部分。应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。
3.4.2 统一建模语言与可视化建模
- 统一建模语言 (UML,Unified Modeling Language) 用于对软件进行可视化描述、构造和建立软件系统的文档。 UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。
- UML是一种可视化的建模语言,而不是编程语言。它比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的,强调在软件开发中对架构、框架、模式和组件的重用,并与最佳软件工程实践经验进行了集成。
- 系统进行建模的描述方式主要包括:
- 用例图(Use Case Diagram)
- 类图(Class Diagram)
- 对象图(Object Diagram)
- 组件图(Component Diagram)
- 部署图(Deployment Diagram)
- 状态图(State Diagram)
- 序列图(Sequence Diagram)
- 协作图(Collaboration Diagram)
- 活动图(Activity Diagram)
- RUP(Rational Unified Process )是使用面向对象技术进行软件开发的最佳实践之一
3.4.3 面向对象系统分析
3.4.5 面向对象系统设计
无重要考点
3.5 软件架构
3.5.1 软件架构定义
3.5.2 软件架构模式
- C/S | 客户 / 服务器模式 | Customer / Service
- 基于资源不对等,为实现共享而提出的模式。 C/S 模式将应用一分为二,服务器(后台)负责数据操作和事务处理,客户(前台)完成与用户的交互任务。
- 其实就是APP客户端应用
- B/S | 浏览器 / 服务器模式 | Browser / Service
- C/S 模式中客户与服务器分离,允许网络分布操作,适用于分布式系统。为了解决C/S模式中客户端的问题,发展形成了浏览器/服务器 (Browser/Server, B/S) 模式;为了解决 C/S模式中服务器端的问题,发展形成了三层(多层)C/S 模式,即多层应用架构。
- 其实就是,网页应用
几种常见模式:
名称 | 特征 | 优点 | 缺点 |
---|---|---|---|
管道、过滤模式 | 每个组件(过滤器)都有一组输入/输出,组件读取输入的数据流,经过内部处理后,产生输出的数据流,该过程主要完成输入流的变换及增量计算。 |
1. 体现了各功能模块的“黑盘”特性及高内聚、低耦合特点 1. 可以将整个系统的输入、输出行为看成是多个过滤器行为 1. 支持软件功能模块重用 1. 便于系统维护,新的过滤器可以添加到现有系统中,旧的可以自由改进过滤器替换 1. 支持某些特定的分析,如吞吐量计算、死锁检测 1. 支持并行操作,每个过滤器可以作为一个单独的任务完成 |
1. 通常导致系统处理过程成批操作 1. 需要设计者协调两个相对独立但又存在关系的数据流 1. 可能需要每个过滤器自己完成数据解析和合成工作(如加密和解密),从而导致系统性能下降,并增加过滤器具体实现的复杂性。 |
面向对象模式 | 在面向对象的基础上,将模块数据的表示方法及其相应操作封装在更高抽象层次的数据类型或对象中。 |
1. 高度模块化 1. 封装功能实现了数据隐藏 1. 继承性提供了一种是实现代码共享的手段 1. 提供了系统的灵活性,便于维护及扩充。 |
对象之间的调用需要知道所调用的目标。如果对象的标识发生改变。就必须通知所有调用该对象的对象。否则系统将可能无法正常运行。 |
事件驱动模式 | 其基本原理是组件并不直接调用操作,而是触发一个或多个事件。系统中的其他组件可以注册相关的事件,触发一个事件时,系统会自动调用注册了该事件的组件,即触发事件会导致另一组件中操作的调用。其典型应用包括各种图形界面应用。 | 1. 支持软件重用,容易实现并发处理 1. 具有良好的扩展性,通过注册可引入新的构件,而不影响现有构件 1. 可以简化客户代码 |
1. 构件削弱了自身对系统的控制能力。一个构件触及事件时,并不能确定响应该事件的其他构件及各构件的执行顺序 1. 不能很好解决数据交换问题 1. 使系统中各构件的逻辑关系变得更加复杂 |
分层模式 | 采用层次化的组织方式,每一层都为上一层提供服务,并使用下一 层提供的功能。 允许将一个复杂问题逐步分层实现。 每一层最多只影响相邻两层,只要给相邻层提供相同的接口,就允许每层用不同的方法实现 |
1. 有助于把复杂问题按功能分解,使整体设计更为清晰 1. 支持系统设计的逐级抽象 1. 具有较好的可扩展性 1. 支持复用 |
1. 并不是每个系统都可以很容易地划分出层次来;同时,各层级功能的划分也没有一个统一的、正确的抽象方法 1. 层次的个数过多,系统性能可能会下降 |
客户/服务器模式 (Client/Server,,C/S) | C/S 模式中客户与服务器分离,允许网络分布操作,适用分布式系统 |
1. 客户机与服务器分离,允许网络分布操作,二者开发也可以分开同时进行。 1. 一个服务器可以服务于多个客户机 |
1. 与客户机/服务器(Client/Server,,C/S) 架构相比,浏览器/服务器(Brower/Server,B/S)架构的最大优点是部署和维护方便易于扩展 |
3.5.3 软件架构分析与评估
针对目前广泛使用的分布式应用,其软件架构设计需要考虑如下问题。
- 数据库的选择问题:目前主流的数据库系统是关系数据库。
- 用户界面选择问题: HTML/HTTP(S)协议是实现 Internet 应用的重要技术。
- HTML,超文本标记语言(Hyper Text Markup Language)
- HTTP,超文本传输协议(Hyper Text Transport Protocol)
- 灵活性和性能问题:权衡独立于厂商的抽象定义(标准)所提供的灵活性和特定厂商产品带来的性能。
- 技术选择的问题:选择成熟的技术可以规避项目风险。不仅需要了解技术的优势,还需要了解技术的适用范围和局限性。
- 人员的问题:聘请经验丰富的架构设计师,可以有效地保证项目的成功。
3.5.4 软件中间件 Middleware
数据库访问中间件 | - 抽象层**访问数据库 - 相同或相似**的代码访问不同的数据库**资源** |
- Windows平台的ODBC,开放式数据库连接性(Open Database Connectivity) - Java平台的 JDBC,Java 数据库连接(Java DataBase Connectivity) |
---|---|---|
远程过程调用中间件 RPC Remote Procedure Call |
- 远程执行不同地址空间内的过程 - 效果看似本地调用 |
|
面向消息中间件 MOM Message-Oriented Middleware |
- 消息传递机制 - 平台无关**的数据传递** |
- DBM的MQSeries |
分布式对象中间件 | - 建立(C / S )关系 - 结合了对象技术与分布式计算技术 - 并构分布环境中透明传递对象请求 |
- OMG的CORBA,公共对象请求代理结构(Common Object Request Broker Architecture) - Java的RMI / FJB - Microsoft的DCOM |
事务中间件 TPM Transaction Processing Monitor |
- 位于(C / S )之间 - 管理与协调 - 负载平衡 - 失效恢复 |
- IBM / BEA的Tuxedo - EJB的JavaEE |
- 中间件是位于硬件、操作系统等平台和应用之间的通用服务。借由中间件,解决了**分布系统**的并构问题。其主要目的是实现应用与平台的**无关性**。借助中间件,屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制,满足不同领域的应用需要。可以在不同技术之间共享资源,将不同操作系统、数据库、异构网络环境以及若干应用结合在一个有机整体。
- 中间件位于客户服务器的操作系统之上,管理计算机资源和网络通信
- 中间件是一类软件,而非一种软件
- 中间件不仅实现互连,还实现应用之间相互操作
- 中间件是基于分布式处理软件,最突出的特点是其网络通信功能
- 中间件的分类
- 数据库访问中间件(Database access Middleware)
- 通过一个抽象层**访问数据库,从而允许使用相同或相似的代码访问不同的数据库**资源。典型技术如
- Windows平台的 ODBC,开放式数据库连接性 Open Database Connectivity
- Java平台的 JDBC,Java 数据库连接 Java DataBase Connectivity
- 通过一个抽象层**访问数据库,从而允许使用相同或相似的代码访问不同的数据库**资源。典型技术如
- 远程过程调用中间件(RPC,Remote Procedure Call):
- 是一种分布式应用程序的处理方法。一个应用程序可以使用 RPC来“远程 “ 执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。
- 面向消息中间件(MOM,Message-Oriented Middleware):
- 利用高效可靠的消息传递机制进行平台无关**的数据传递,并可基于数据通信进行分布系统的集成。典型产品如 DBM的MQSeries**
- 分布式对象中间件(Distributed Objects Middleware)
- 是建立对象之间客户/服务器(C / S Client/Server)关系的中间件,结合了对象技术与分布式计算技术。该技术提供了一个通信框架:可以在并构分布计算环境中透明传递对象请求。典型产品如
- OMG的CORBA
- Java的RMI / FJB
- Microsoft的DCOM
- 是建立对象之间客户/服务器(C / S Client/Server)关系的中间件,结合了对象技术与分布式计算技术。该技术提供了一个通信框架:可以在并构分布计算环境中透明传递对象请求。典型产品如
- 事务中间件(Affair Middleware)
- 也称事务处理监控器(TPM,Transaction Processing Monitor)TPM 位于客户/服务器(C / S Client/Server)之间,完成事务管理与协调、负载平衡、失效恢复等任务,以提高系统的整体性能。
- 典型产品如
- IBM / BEA的Tuxedo
- 结合对象技术的对象事务监控器(OTM,Object Transaction Monitor)
- 如支待EJB的JavaEE应用服务器等。
- 数据库访问中间件(Database access Middleware)
3.6 典型应用集成技术
3.6.1 数据库与数据仓库技术
- 数据库(Database),动态的,面向业务的(Business Oriented)
- 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented) 、集成的、相对**稳定的、反映历史变化**的数据集合,用于支持管理决策。数据仓库是对多个并构数据源(包括历史数据)的有效集成,集成后按主题重组,且存放在数据仓库中的数据一般不再修改。
- 大数据分析相比于传统的数据仓库应用,具有数据量大、查询分析复杂等特点。
- 数据仓库系统结构
- 数据源:是数据仓库系统的基础,是整个系统的数据源泉。
- 数据集市:数据的存储与管理,是整个数据仓库系统的核心。
- OLAP服务器:对分析需要的数据进行有效**集成,按多维模型予以组织**,以便进行多角度、多层次的分析,并发现趋势。
- OLAP 联机分析技术(On-Line Analytical Processing)
- ROLAP、MOLAP、HOLAP
- 前端工具:主要包括各种
- 查询**工具**
- 报表**工具**
- 分析**工具:主要针对OLAP服务器**
- 数据挖掘**工具**
- 各种基于数据仓库或数据集市的应用开发工具
- 报表工具、数据挖堀工具主要针对数据仓库。
3.6.2 Web Services技术
- Web服务的典型技术包括:
SOAP,简单对象访问协议,Simple Object Access Protocal,用于传递信息的
WSDL,Web服务描述语言,Web Services Description Language,用于描述服务的
UDDI,统一描述、发现及集成,Universal Description Discovery and Integration,用于Web服务注册的
XML,可扩展标记语言,Extensive Markup Language,用于数据交换
- Web服务的主要目标是跨平台的互操作性,适合使用 Web Services 的情况包括:
- 跨越防火墙
- 应用程序集成
- B2B集成
- 软件重用等。
- 同时,在某些情况下,Web服务也可能会降低应用程序的性能。
- 不适合使用Web服务的情况包括:
- 单机应用程序
- 局域网上的同构应用程序等。
3.6.3 JavaEE 架构(IBM)
- JavaEE(Java Platform Enterprise Edition)是最早由 Sun 公司(已被 IBM 公司收购)提出、各厂商共同制定并得到广泛认可的工业标准。
- JavaEE应用服务器运行环境主要包括:组件、容器及服务三部分。
- 组件(Component):是表示应用逻辑的代码
- 容器(Container):是组件的运行环境
- 服务(Services):则是应用服务器提供的各种功能接口。
3.6.4 .NET 架构(微软)
- 微软的.NET是基于一组开放的互联网协议而推出的一系列的产品、技术和服务。.NET开发框架在通用语言运行环境(Common Language Runtime)基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。
- 通用语言运行环境处于.NET开发框架的最低层,是该框架的基础,它为多种语言提供了统一的运行环境、统一的编程模型,大大简化了应用程序的发布和升级、多种语言之间的交互、内存和资源的自动管理等等。
3.6.5 软件引擎技术
无重要考点
3.6.6 组件及其在系统集成项目中的重要性
组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行封装,同时实现各种业务逻辑规则,用于处理用户的内部操作细节。满足此目的的封装体被称作组件。
3.6.7 常用组件标准
- 常用组件标准包括:
- 微软的,COM/DCOM/COM+
- OMG的,CORBA
- Java的,RMI/EJB
- COM是开放的组件标准,有很强的扩充和扩展能力。
- DCOM在COM的基础上添加了许多功能和特性,包括事务特性、安全模型、管理和配置等,使COM成为一个完整的组件架构。
- COM+综合各技术形成的功能强大的组件架构,通过系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给了系统。
- COREA**(Common Object Request Broker Architecture,公共对象请求代理架构)是OMG组织制订的一种标准的面向对象的应用程序架构规范,是为解决分布式处理环境中硬件和软件**系统的互连而提出的一种解决方案。
3.7 计算机网络知识
3.7.1 网络技术标准与协议
1、国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型(OSI,Open System Interconnect),其目的是为异种计算机互连提供一个共同的基础和标准框架,并为保待相关标准的一致性和兼容性提供共同的参考。 OSI协议: OSI采用了分层的结构化技术,从下到上共分七层
- 应用层 Application Layer(接口程序,使用服务):负责对软件提供接口以使程序能使用网络服务,如事务处理程序、文件传送协议和网络管理等。在 TCP/IP 协议中,常见的协议有:HTTP、Telnet、 FTP、SMTP
- 表示层 Presentation Layer(网络翻译官、理解格式化):如同应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密加密、数据转换、格式化和文本压缩。常见的协议有:JPEG、ASCII、GIF、DES、MPEG
- 会话层 Session Layer(两点维持通信):负责在网络中的两节点之间建立和维持通信,以及提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式。常见的协议有:RPC、SQL、NFS
- 传输层 Transport Layer(数据传输):主要负责确保数据可靠、顺序、无错地从 A 点传输到 B 点。如提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。在TCP/IP协议中,具体协议有:TCP、UDP、SPX
- 网络层 Network Layer(翻译物理地址):其主要功能是将网络地址(例如, IP地址)翻译成对应的物理地址(例如,网卡地址并决定如何将数据从发送方路由到接收方。在TCP/IP协议中,网络层具体协议有:IP、ICMP、IGMP、IPX、ARP等。
- 数据链路层 Datalink Layer(分割帧):它控制网络层与物理层之间的通信。它的主要功能是将从网络层接收到的数据分割成特定的可被物理层传输的帧。常见的协议有:IEEE 802.3/2、HDLC、PPP、ATM
- 物理层 Physical Layer(电气):该层包括物理连网媒介,如电缆连线连接器。该层的协议产生并检测电压以便发送和接收携带数据的信号。具体标准有:RS232、V.35、RJ-45、FDDI
层级 | 功能 | 对应协议 |
---|---|---|
应用层 Application Layer |
用户接口,具体网络应用 | HTTP,超文本传输协议(Hyper Text Transfer Protocol) Telnet,远程登录 FTP,文件传输协议(File Transfer Protocol) SMTP,简单邮件传输协议(Simple Mail Transfer Protocol) NFS,网络文件系统(Network File System) …… |
表示层 Presentation Layer |
定义数据格式,加密也属于此层 | JPEG,联合图象专家组(Joint Photographic Experts Group) ASCII,美国信息交换标准码(American Standard Code for Information Interchange) GIF,可交换的图像文件(Graphic Interchange Format) DES,数据加密标准(data encryption standard) MPEG,运动图象专家组(Moving Picture Experts Group) …… |
会话层 Session Layer |
定义如何开始、控制和结束一个会谈,包括多个双向消息的控制和管理,以便只在只完成连续消息的一部分可以通知应用,从而使表示层看到数据是连续的。 | RPC,远程过程调用(Remote Procedure Call) SQL,结构化查询语言(Structured Query Language) NFS,网络文件系统(Network File System) …… |
传输层 Transport Layer |
包括是否选择差错恢复协议,还是无差错恢复协议,这一层还在同一主机上对不同应用的数据流输入进行复用,还完成数据包的重新排序功能 | TCP,传输控制协议(Transmission Control Protocol) UDP,用户数据报协议(User Datagram Protocol) SPX,序列分组交换协议(Sequenced Packet Exchange protocol) …… |
网络层 Network Layer |
该层对端到端的包进行定义,为了实现端到端的包传输功能,网络层定义了能够标志所有端点逻辑地址,为了包能够正确地传输,还定义了路由实现方式和路由学习方式,同时还定义了包的分段方式 | IP,互联网协议(Internet Protocol) ICMP,互连网控制报文协议(Internet Control Messages Protocol) IGMP,互连网组管理协议(Internet Group Management Protocol) IPX, 以太网所用协议之一(Internet Packet eXchange) ARP,地址转换协议(Address Resolution Protocol) |
数据链路层 Datalink Layer |
定义在一个特定的链路或媒介上获取数据 | IEEE 802.3/2 HDLC,高级数据链路控制(High - level Data Link Control) PPP,点对点通讯协定 (Point-to-Point Protocol) ATM,异步传输模式(asynchronous transfer mode) …… |
物理层 Physical Layer |
定义有关传输媒介的物理特性的标准 | RS232,推荐标准232(recommend standard 232,这是美国电子工业协会制定的一种串行物理接口标准,232为标识号) V.35 RJ-45,注册的插座(Registered Jack) FDDI,光纤分布式数据接口(Fiber Distributed Data Interface) …… |
2、网络协议和标准
IEEE 802 规范定义了网卡如何访问传输介质(如光缆、双绞线、无线等),以及如何在传输介质上传输数据的方法,还定义了传输信息的网络设备之间连接建立、维护和拆除的途径。遵循IEEE 802标准的产品包括:网卡、桥接器、路由器以及其他一些用来建立局域网络的组件。IEEE 802规范包括:
- 802.1(802协议概论)
- 802.2(逻辑链路控制层LLC协议)
- 802.3(以太网的CSMA/CD载波监听多路访问/冲突检测协议)
- 802.4(令牌总线Token Bus协议)
- 802.5(令牌环(Token Pang)协议)
- 802.6(城域网MAN协议)
- 802.7(FDDI宽带技术协议)
- 802.8(光纤技术协议)
- 802.9(局域网上的语音/数据集成规范)
- 802.10(局域网安全互操作标准)
- 802.11(无线局域网WLAN标准协议)
IEEE 802.3 | 标准以太网 | 10Mb/s | 传输介质为细同轴电缆 |
---|---|---|---|
IEEE 802.3u | 快速以太网 | 100Mb/s | 双绞线 |
IEEE 802.3z | 千兆以太网 | 1000Mb/s | 光纤或双绞线 |
3.7.2 Internet 技术及应用
1. 最高层
相当于 OSI的5~7层(会话层、表示层、应用层),该层中包括了所有的高层协议,如常见
- FTP 文件传输协议 (File Transfer Protocol)
- SMTP 简单邮件传输协议(Simple Mail Transfer Protocol)
- DNS 域名系统(Domain Name System)
- SNMP 简单网络管理协议(Simple Network Management Protocol)
- HTTP 超文本传输协议(Hyper Text Transfer Protocol)
2. 次高层
相当于OSI的传输层,该层负责在源主机和目的主机之间提供端 — 端的数据传输服务。这一层上主要定义了两个协议:面向连接的传输控制协议 TCP 和无连接的用户数据报协议 UDP。
- 相当于OSI的网络层,该层负责将分组独立地从信源传送到信宿,主要解决路由选择、阻塞控制及网际互连问题。
这一层上定义:
为网络接口层,该层负责将IP分组封装成适合在物理网络上传输的帧格式并发送出去,或将从物理网络接收到的帧卸装并取出 IP 分组递交给高层。这一层与物理网的具体实现有关,自身并无专用的协议。事实上,任何能传输IP分组的协议都可以运行。虽然该层一般不需要专门的TCP/IP协议,各物理网络可使用自己的数据链路层协议和物理层协议,但使用串行线路进行连接时仍需要运行 SLIP 或 PPP 协议。 | 最高层 | 相当于OSI:会话层、表示层、应用层 | FTP、SMTP、DNS、SNMP、HTTP | | —- | —- | —- | | 传输层 | 端 — 端的数据传输服务 | TCP、UDP | | 网络层 | 独立地从信源传送到信宿 | IP、ARP、RARP、ICMP | | 网络接口层 | 负责将IP分组封装成适合在物理网络上传输的帧格式 | SLIP、PPP |
- IPv6 具有以下显著优点:
- IPv4 由32 位(即:字节)二进制数;IPv6 地址的 128 位 (16 个字节)写成8个16位的无符号整数。如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
- 提供更大的地址空间,能够实现 plug and play 和灵活的重新编址;
- 更简单的头信息,能够使路由器提供更有效率的路由转发;
- 与Mobile ip 和币 sec 保持兼容的移动性和安全性;
- 提供丰富的从 IPv4 到 IPv6 的转换和互操作的方法, ipsec在IPv6中是强制性的。
- Internet上的域名由域名系统 DNS(Domain Name System)统一管理。 DNS是一个分布式数据库系统,
- 由DNS三部分组成
- 域名空间
- 域名服务器
- 地址转换请求程序
- 由DNS三部分组成
- WWW上的每一个网页都有一个独立的地址,这些地址称为统一资源定位器(URL,Uniform Resource Uniform Resource Locator),只要知道某网页的URL,便可直接打开该网页。
3.7.3 网络分类
- 按照计算机网络所覆盖的地理范围的大小进行分类,计算机网络可分为:
- LAN,局域网(local area network)
- MAN,城域网(Metropolitan Area Network)
- WAN,广域网(Wide Area Network)
- 网络按照拓扑结构划分有:
- 总线型结构
- 环型结构
- 星型结构
- 树型结构
- 网状结构
3.7.4 网络服务器
无重要考点
3.7.5 网络交换技术
网络交换是指通过一定的设备,如交换机等,将不同的信号或者信号形式转换为对方可识别的信号类型从而达到通信目的的一种交换形式,常见的有数据交换、线路交换、报文交换和分组交换。
- 在计算机网络中,按照交换层次的不同,网络交换可以分为:
- 物理层交换(如电话网)
- 链路层交换(二层交换,对MAC地址进行变更)
- 交换机,工作在数据链路层,用来代替集线器的一种应用在小型网络中设备。
- 网层交换(三层交换,对 IP 地址进行变更)
- 第三层交换机,工作在网络层,可以完成普通路由器的部分或全部功能
- 高层交换机,工作在网络层之上,可以完成普通路由器功能,实现一些特殊功能
- 路由器,工作在网络层,用于网络之间互联设备,不同网络之间存储转发数据
- 传输层交换(四层交换,对端口进行变更,比较少见)
- 应用层交换(似乎可以理解为Web网关等)。
一层交换 | 物理层工作的硬件 | 中继器 Repeater、调制解调器 Modem |
---|---|---|
二层交换 | 数据链路层工作的硬件 对MAC地址 |
交换机 Switch 、集线器 concentrator、网桥 Network Brigde |
三层交换 | 网络层工作的硬件 针对IP地址 |
路由器 Router |
四层交换 | 传输层、应用层工作的硬件 | 传输网关 Gateway、应用程序网关 |
3.7.6 网络存储技术
目前,主流的网络存储技术主要有三种,分别:
- DAS,直接附加存储,Direct Attached Storage:不需要网络,例如:U盘
- NAS,网络附加存储,Network Attached Storage:以太网,需要网络,即插即用
- SAN,存储区域网缘,Storage Area Network:高速的光纤通道作为传输媒介挽留过存技术
3.7.7 光网络技术
无重要考点
3.8.8 无线网络技术
- 无线网络是指以无线电波作为信息传输媒介。
- 无线通信网络根据应用领域可分为:
- 无线个域网(WPAN),自己手机做热点
- 无线局域网(WLAN)
- 无线城域网(WMAN)
- 蜂房移动通信网(WYAN)
- 4G包括,两种制式无线城域网
- TD-LTE
- FDD-LTE
- 5G正在研发中,计划到 2020 年推出成熟的标准,
- 理论上可在28GHz超高频段
- 1Gbps~10Gbps的速度传送数据
- 且最长传送距离可达2公里。
3.7.9 网络接入技术
无重要考点
- 光纤接入:光纤接入是宽带接入网的最终形式
- 同轴接入:同轴电缆也是传输带宽比较大的一种传输介质,CATV 网就是一种混合光纤同轴网络。合光纤/同轴 (HFC)接入技术
- 铜线接入:电话线为传输介质
- 无线接入
3.7.10 综合布线、机房工程
无重要考点
3.7.11 网络规划、设计与实施
网络工程是一项复杂的系统工程,涉及技术问题、管理问题等,必须遵守一定的系统分析和设计方法。
- 确立网络的物理拓扑结构是整个网络方案规划的基础,物理拓扑结构的选择往往和地理环境分布、传输介质与距离、网络传输可靠性等因素紧密相关。选择拓扑结构时,应该考虑的主要因素有:地理环境、传输介质与距离以及可靠性
- 在分层设计中,引入了三个关键层的概念,分别是核心层、汇聚层和接入层。
- 网络中直接面向用户连接或访问网络的部分称为接入层,将位于接入层和核心层之间的分称为分布层或汇聚层。接入层的目的是允许终瑞用户连接到网络,因此,接入层交换机(或路由器)具有低成本和高端口密度特性。
- 汇聚层是核心层和接入层的分界面,完成网络访问策略控制、数据包处理、过滤、寻址,以及其他数据处理的任务。
- 网络主干部分称为核心层,核心层的主要目的在于通过高速转发通信,提供优化、可靠的骨干传输结构,因此,核心层交换机应拥有更高的可靠性,性能和吞吐量。
3.7.12 网络安全
- 信息安全的基本要素有
- 机密性 Confidentiality:确保信息不暴露给未授权的实体或进程。
- 完整性 Integrity:只有得到允许的人才能修改数据,并且能够判别出数据是否已被篡改。
- 可用性 Avaliability:得到授权的实体在需要时可访问数据,即攻击者不能占用所有的资源而阻碍授权者的工作。
- 可控性 Controlablilty:可以控制授权范围内的信息流向及行为方式。
- 可审查性 Auditability:对出现的网络安全问题提供调查的依据和手段。
- 典型的网络攻击步骤一般为:
- 信息收集
- 试探寻找突破口
- 实施攻击
- 消除记录
- 保留访问权限。
- 攻击者一般在攻破安全防护后,进入主机窃取或破坏核心数据。除了对数据的攻击外,还有一种叫“拒绝服务(DDOS,分布式拒绝服务(Distributed Denial of Service))”攻击,即通过控制网络上的其他机器,对目标主机所在网络服务**不断进行干扰,改变其正常的作业流程,执行无关程序使系统响应减慢甚至瘫痪,影响正常用户的使用,甚至使合法用户被排斥而不能进入计算机网络系统或不能得到相应的服务**。
- 信息系统安全分为5个等级,分别是:用、系、安、结、访(User、System、Security、Structure、Access)
- 用户**自主**保护级
- 系统**审计**保护级
- 安全**标记**保护级
- 结构化**保护级**
- 访问**验证**保护级
- 传统防火墙(Firewalls)**(无法阻止黑客病毒,无法控制内部违规):无法阻止和检测基于数据内容的黑客攻击和病毒入侵,同时也无法控制内部网络之间的违规行为**。
- 扫描器(Scanner)**(无法发入侵,成为攻者工具):可以说是入侵检测的一种,主要用来发现网络服务、网络设备和主机的漏洞,当然,扫描器无法发现正在进行的入侵行为,而且它还有可能成为攻击者的工具**。
- 防毒软件(Antivirus Program)**(网络攻击无能):对于基于网络的攻击行为(如扫描、针对漏洞的攻击)却无能为力**。
- 安全审计系统**(审查事故):通过独立的、对网络行为和主机操作提供全面与忠实的记录**,方便用户分析与审查事故原因。
3.7.13 网络管理
无重要考点
3.8 新兴信息技术
3.8.1 云计算 Cloud Computing
定义:云计算是指基于互联网的超级计算模式,通过互联网来提供大型计算能力和动态易扩展的虚拟化资源。云是网络、互联网的一种比喻说法。 广义云计算服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。可以是IT和软件、互联网相关、或其他服务。其核心思想:将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。提供资源的网络被称为“云”
- 云计算的特点:
- 超大规模:拥有100多万台服务器, Amazon、IBM、微软、Yahoo、阿里等的“云”均拥有几十万台服务器
- 虚拟化:支持用户在任意位置、使用各种终端获取应用服务。
- 高可靠性:使用数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性
- 通用性:不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用
- 高可扩展性:可以动态伸缩 、随时扩展
- 按需服务:庞大的资源池,用户按需购买
- 极其廉价:特殊容错措施可以采用极其廉价的节点来构成云
- 潜在的危险性:云计算服务当前垄断在私人机构(企业)手中,而他们仅仅能够提供商业信用,政府机构、商业机构(特别像银行这样持有敏感数据的商业机构)在选择云计算服务、特别是国外机构提供的云计算服务时,务必考虑其潜在的危险性。
- 云计算又可以分为:
- 公有云:指第三方提供商提供的用户能够使用的云,可通过 Internet 使用,可能是免费或成本低廉的(腾讯云、百度云等)
- 私有云:一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制
- 混合云:将公有、私有两种模式结合起来
3.8.2 物联网 Internet of Things
- 物联网,指通过:射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把物与物、人与物进行智能化连接,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种新兴网络。
- 物联网不是一种物理上独立存在的完整网络。物联网概念的3个方面如下。
- 物:客观世界的物品,主要包括人、商品、地理环境等。
- 联:通过互联网、通信网、电视网以及传感网等实现网络互联。
- 网:首先,应和通讯介质无关,有线无线都可。其次,应和通信拓扑结构无关,总线、星型均可。最后,只要能达到数据传输的目的即可。
- 物联网从架构上面可以分为感知层、网络层和应用层
- 感知层(Sensing Layer)
- 负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码、RFID 射频技术、音视频等多媒体信息,信息传输包括:
- **远近距离数据**传输技术
- **自组织组网**技术
- **协同信息处理**技术
- **信息采集中间件技术**等传感器网络。
- 感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术。
- 负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码、RFID 射频技术、音视频等多媒体信息,信息传输包括:
- 网络层(Network Layer)
- 是利用无线和有线网络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信网络是实现物联网的基础设施,是物联网三层中标准化程度最高、产业能力最强、最成熟的部分,关键在于为物联网应用特征进行优化和改进,形成协同感知的网络。
- 应用层(Application Layer)
- 提供丰富的基于物联网的应用,是物联网发展的根本目标。
- 物联网关键技术:感知层作为物联网架构的基础层面,主要是达到信息采集并将采集到的数据上传的目的,感知层的技术主要包括:
- 产品和传感器(条码、 RFID 、传感器等)自动识别技术
- 无线传输技术(WLAN 、 Bluetooth 、 ZigBee 、UWB),
- 自组织组网技术和中间件技术。
- 物联网的产业链包括:
- 传感器和芯片、设备、网络运营及服务、
- 软件与应用开发和系统集成。
- 作为物联网“金字塔”的塔座,传感器将是整个链条需求总量最大和最基础的环节。
3.8.3 移动互联网 Mobile Internet
- 移动互联网一般是指用户用手机等无线终踹,通过3G 或者WLAN 等速率较高的移动网络接入互联网,可以在移动状态下(如在地铁、公交车上等)使用互联网的网络资源。
- 从技术层面的定义:以宽带 IP 为技术核心,可以同时提供语音、数据、多媒体等业务的开放式基础电信网络。
- 移动互联网 = 移动通信网络 + 互联网内容和应用,它不仅是互联网的延伸,而且是互联网的发展方向。
- 移动终瑞在处理能力、显示效果、开放性等方面无法和 PC 相提并论,但在个性化、永远在线、位置性等方面强于PC 。由于移动终瑞具有小巧轻便、随身携带两个特点,决定了移动互联网应用应具有下列新特征而不是传统互联网应用的简单复制和移植。
- 接入移动性:移动终端的便携性使得用户可以在任意场合接入网络,移动互联网的使用场景是动态变化的。
- 时间碎片性:用户使用移动互联网的时间往往是上下班途中、工作之余、出差等候间隙等碎片时间,数据传输具有不连续性和突发性。
- 生活相关性:移动终端被用户随身携带,具有唯一号码,与移动位置关联等特性使得移动应用可以进入人们的日常生活,满足衣食住行吃喝玩乐等需求。
- 终踹多样性:目前各手机厂商分足鼎立,有各自不同的操作系统和底层硬件,终端类型多样,尚未形成统一的标准化接口协议。
- SOA,Service Oriented Architecture,面向服务的架构, SOA 是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。 SOA 可以看作是 B/S 模型、 XML (标准通用标记语言的集),Web Service技术之后的自然延伸。 Web Service是目前实现SOA的主要技术
- WEB 2.0,严格来说不是一种技术,而是提倡众人参与的互联网思维模式
- 页面简洁、流畅
- 个性化突出,自我品牌
- 高度参与、互动
- 灵通、知识程度高
- 追求精神价值
- 体验、情感性利益
- HTML5 具有高度互动性、丰富用户体验以及功能强大的客户瑞。
- HTML5是在原有HTML基础之上扩展了API,使Web应用成为RIA(RichInternet Applications),具有高度互动性、丰富用户体验以及功能强大的客户端。HTML5的第一份正式草案己于2008年1月22日公布。HTML5的设计目的是为了在移动设备上支持多媒体,推动浏览器厂商,使web开发能够跨平台跨设备支持。HTML5仍处于完善之中。然而,大部分现代浏览器己经具备了某些HTML5支持。
- HTML5新增了很多特性
- 支持 WebGL、拖曳、离线应用和桌面提醒,大大增强了浏览器的用户使用体验。
- 支持地理位置定位,更适合移动应用的开发。
- 支持浏览器页面端的本地储存与本地数据库,加快了页面的反应。
- 使用语义化标签,标签结构更清晰,且利于SEO。
- 摆脱对Flash等插件的依赖,使用浏览器的原生接口。
- 使用CSS3,减少页面对图片的使用。
- 兼容手机、平板电脑等不同尺寸,不同浏览器的浏览。
- 最大优势就是可以在网页上直接调试和修改
- Android、iOS、Window Phone
- Android,一词的本义指“机器人”,是一种基于 Linux 的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑,由Google于2007 年 11 月 5 日发布,后一直由Google公司和开放手机联盟领导及开发。开放手机联盟(Open Handset Alliance)包括:Motorola、HTC、Samsung 、 LG 、 HP、中国电信等。并且很多移动重点厂商,如:三星、小米,都在标准 Android 的基础上封装自有的操作系统。相对其他移动终端操作系统, Android 的特点是入门容易,因为Android的中间层多以Java实现,并且采用特殊的Dalvik“暂存器型态”Java 虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少,开发相对简单,而且开发社群活跃,开发资料丰富。
- iOS 是由苹果公司开发的移动操作系统,主要应用于 iPhone、 iTouch 以及iPad 。苹果的移动终端一直是高端移动市场的领导者,拥有多点触控功能等多项专利,无与伦比的用户体验和海量的应用软件,并且 App Store 开创网上软件商店的先河。iOS 是一个非开源的操作系统,其SDK本身是可以免费下载的,但为了发布软件,开发人员必须加入苹果开发者计划,其中有一步需要付款以获得苹果的批准。加入了之后,开发人员们将会得到一个牌照,他们可以用这个牌照将他们编写的软件发布到苹果的 App Store。
iOS的开发语言是 Objective-C 、C和C++,加上其对开发人员和程序的认证,开发资源相对较少,所以其开发难度要大于 Android。
3.8.4 大数据 Big Data
- 不能用随机分析法(抽样调查),而要针对所有数据进行分析处理。
- 大数据所涉及的技术很多,主要包括,四个环节:采集、存储、管理、分析与挖掘
- 数据采集(ETL是技术)
- 在数据采集阶段主要使用的技术是数据抽取工具 ETL 。
- 数据抽取工具 ETL实际上的就是数据的抽取(Extracttion),转换(Transformation),装载(load)
- 数据存储
- 在数据存储环节主要有结构化数据、非结构化数据、半结构化数据的存储与访问。
- 结构化数据:关系数据库,通过数据查询语言 (SQL) 来访问
- 非结构化数据:图片、视频、 doc 文件
- 半结构化数据:分布式文件系统的 NoSQL (Not Only SQL) 进行存储, NoSQL 有 Google 的 Bigtable、Amazon 的 Dynamo 和 Apache 的 Hbase
- 数据管理
- 使用了分布式并行处理技术,比较常用的有MapReduce,,编程人员借助MapReduce 可以在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
数据分析与挖堀
- 根据业务需求对大数据进行关联、聚类、分类等钻取和分析,并利用图形、表格加以展示,与 ETL 一样,数据分析和挖掘是以前数据仓库的范畴,只是在大数据中得以更好的利用。
大数据关键技术:
| 大数据关键技术 | 功能 | 关键功能 | | —- | —- | —- | | HDFS
分布式文件系统(Hadoop Distributed File System) | 数据访问 |
- 硬件上的分布式文件系统
- 高度容错性的系统
- 部署在廉价的机器
- 高吞吐量的数据访问
- 适合大规模数据集
| | HBase | 数据存储 |
- 面向列
- 开源数据库
- 非结构化数据存储
| | MapReduce | 数据管理/分析 |
- 编程模型
- 大规模数据集(大于 1TB)
- 概念“Map(映射)”和 “Reduce (归约)“
| | Chukwa | 数据收集 |
- 监控大型分布式系统
- 可伸缩性和鲁棒性
- 灵活工具集,
- 展示、监控和分析
|
- 根据业务需求对大数据进行关联、聚类、分类等钻取和分析,并利用图形、表格加以展示,与 ETL 一样,数据分析和挖掘是以前数据仓库的范畴,只是在大数据中得以更好的利用。
HDFS
- Hadoop 分布式文件系统(HDFS,分布式文件系统(Hadoop Distributed File System))是适合运行在适用硬件上的分布式文件系统,是一个高度容错性的系统,适合部署在廉价(Low-cost)的机器上。 HDFS能提供高吞吐量(High throughput)的数据访问,非常适合大规模数据(Large Data Set)集上的应用。
- HBase
- HBase是一个分布式的、面向列的开源数据库, HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的地方是HBase基于列的而不是基于行**的模式**。
- MapReduce
- MapReduce是一种编程模型,用于大规模数据集(大于 1TB)的并行运算,概念“Map(映射)”和 “Reduce (归约)“,和它们的主要思想,都是从函数式编程语言里借来的。
- MapReduce是一种编程模型,用于大规模数据集(大于 1TB)的并行运算,概念“Map(映射)”和 “Reduce (归约)“,和它们的主要思想,都是从函数式编程语言里借来的。
- Chukwa
补充资料
1. TCP、UDP协议
前者是可靠的,后者是不可靠的! TCP 没有 UDP 传输的快。比如 QQ 、用的都是 UDP 协议。
- 面向连接的传输控制协议 TCP,Transmission Control Protocol,可靠,慢
- 无连接的用户数据报协议 UDP,User Datagram Protocol,不可靠,快
- DNS(Domain Name System)服务器:功能是将域名转换为IP地址。
- WWW:服务器是提供页面访问。
- DHCP(Dynamic host configuration protocol):动态主机设置协议,实现 IP地址的自动分配。
- POP3(Post Office Protocol 3):邮局协议的第 3 个版本(淘汰了,不方便)
- SNMP(Simple Network Management Protocol):单网络管理协议
SMTP(Simple Mail Transfer Protocol):单邮件传输协议(我经常用)
2. 互联网 +
就是“互联网 + 各个传统行业”,但这并不是简单的两者相加,而是利用信息通信技术以及互联网平台,让互联网与传统行业进行深度融合,创造新的发展生态。它代表一种新的社会形态,即充分发挥互联网在社会资源配置中的优化和集成作用,将互联网的创新成果深度融合于经济、社会各域之中,提升全社会的创新力和生产力,形成更广泛的以互联网为基础设施和实现工具的经济发展新形态。
3. IPv6
是用 16 进制来表示 IP 地址,有 128 位。地址示例:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
4. 人工智能 Al,Artificial Intelligence
它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能实际应用包括:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。
-
5. 区块链 Blockchain
分布式数据存储(Distributed Data Storage)、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。
- 一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中
- 数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;
- 网络层则包括分布式组网机制、数据传播机制和数据验证机制等;
- 共识层主要封装网络节点的各类共识算法;
- 激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;
- 合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;
- 应用层则封装了区块链的各种应用场景和案例。
- 该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算法的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。
- 区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。