第3章 信息系统集成专业技术知识

文章目录

3.1 信息系统建设

3.1.1 信息系统的 生命周期(立项、开发、运维、消亡)

信息系统的生命周期可以分为立项、开发、运维及消亡四个阶段。
(1)立项阶段:即概念阶段 或 需求阶段,这一阶段根据用户 业务发展 和 经营管理的需要,提出建设信息系统的初步构想;然后对企业信息系统的需求进行深入调研和分析,形成《需求规格说明书》并确定立项。
(2)开发阶段:以立项阶段所做的需求分析为基础,进行总体规划。之后,通过系统分析、系统设计、系统实施、系统验收等工作实现并交付系统。
(3)运维阶段:信息系统通过验收,正式移交给用户以后,进入运维阶段。要保障系统正常运行,系统维护是一项必要的工作。系统的运行维护可分为更正性维护、适应性维护、完善性维护、预防性维护等类型。
(4)消亡阶段:信息系统不可避免地会遇到系统更新改造、功能扩展,甚至废弃重建等情况。对此,在信息系统建设的初期就应该注意系统消亡条件和时机,以及由此而花费的成本。

3.1.2 信息系统 开发方法(结构化方法、原型法、面向对象方法)

(1)结构化方法:是应用最为广泛的一种开发方法。应用结构化系统开发方法,把整个系统的开发过程分为若干阶段,然后依次进行,前一阶段是后一阶段的工作依据按顺序完成。每个阶段和主要步骤都有明确详尽的 文档编制 要求,并对其进行有效控制。

结构化方法的特点是注重开发过程的 整体性 和 全局性 。但其缺点是开发周期长;文档、设计说明繁琐,工作效率低;要求在开发之初全面认识系统的需求,充分预料各种可能发生的变化,但这并不十分现实。

(2)原型法:其认为在无法全面准确地提出用户需求的情况下,并不要求对系统做全面、详细的分析,而是基于对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。

原型法的特点在于其对用户的需求是动态响应、逐步纳入的;系统分析、设计与实现都是随着对原型的不断修改而同时完成的,相互之间并无明显界限,也没有明确分工。原型又可以分为抛弃型原型(Throw-It-Away Prototype)和进化型原型(Evolutionary Prototype)两种。

(3)面向对象方法(Object Oriented, OO):用对象表示客观事物,对象是一个严格模块化的实体,在系统开发中可被共享和重复引用,以达到复用的目的。其关键是能否建立一个全面、合理、统一模型,既能反映需求对应的问题域,也能被计算机系统对应的求解域所接受。

面向对象方法主要涉及分析、设计 和 实现三个阶段。其特点是在整个开发过程中使用的是 同一套工具。整个开发过程实际上都是对面向对象三种模型的建立、补充和验证。因此,其分析、设计和实现三个阶段的界限并非十分明确

在系统开发的实际工作中,往往根据需要将多种开发方法进行组合应用,最终完成系统开发的全部任务。

3.2 信息系统设计

3.2.1 方案设计
系统方案设计包括总体设计和各部分的详细设计(物理设计)两个方面。
(1)系统总体设计:包括系统的总体架构方案设计、软件系统的总体架构设计、数据存储的总体设计、计算机和网络系统的方案设计等。
(2)系统详细设计:包括代码设计、数据库设计、人/机界面设计、处理过程设计等。

3.2.2 系统架构
系统架构是将系统整体 分解 为更小的 子系统和组件,从而形成 不同的 逻辑层 或 服务。之后,进一步确定各层的接口,层与层相互之间的关系。对整个系统的分解,既需要进行“纵向”分解,也需要对同一逻辑层分块,进行“横向”分解。系统的分解可参考“架构模式”进行。通过对系统的一系列分解,最终形成系统的整体架构。系统的选型主要取决于系统架构

3.2.3 设备、DBMS及技术选型
在系统设计中进行设备、DBMS及技术选型时,不只要考虑系统的功能要求,还要考虑到系统实现的 内外环境 和 主客观条件。在选型时,需要权衡各种可供选用的计算机硬件技术、软件技术、数据管理技术、数据通信技术和计算机网络技术及相关产品。同时,必须考虑用户的使用要求、系统运行环境、现行的信息管理和信息技术的标准、规范及有关法律制度等。
数据库管理系统(Database Management System,DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。

3.3 软件工程

随着所开发软件的规模越来越大、复杂度越来越高,加之用户需求又并不十分明确,且缺乏软件开发方法和工具方面的有效支持,使得软件成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等问题日益突出。人们开始用工程的方法进行软件的开发、管理和维护,即“软件工程”。

3.3.1 软件需求分析与定义

软件需求针对 待解决问题 的特性 的描述。所定义的需求必须 可以被验证。在资源有限时,可以通过优先级对需求进行权衡。
通过需求分析,可以检测和解决需求之间的冲突;发现系统的边界;并详细描述出系统需求。

3.3.2 软件设计、测试与维护

(1)软件设计:根据软件需求,产生一个软件内部结构的描述,并将其作为软件构造的基础。通过软件设计,描述出软件架构及相关组件之间的接口;然后,进一步详细地描述组件,以便能构造这些组件。
通过软件设计得到要实现的各种不同模型,并确定最终方案。其可以划分为软件架构设计(也叫做高层设计)和软件详细设计两个阶段。

软件测试(单元、集成、系统)

(2)软件测试:测试是为了评价和改进 产品质量、识别产品的 缺陷和问题而进行的活动。软件测试是针对一个程序的行为,在有限测试用例集合上,动态验证是否达到预期的行为。测试不再只是一种仅在编码阶段完成后才开始的活动。现在的软件测试被认为是一种应该包括在整个开发和维护过程中的活动,它本身是实际产品构造的一个重要部分。
软件测试伴随开发和维护过程,通常可以在概念上划分为单元测试、集成测试和系统测试三个阶段。
单元测试,又称模块测试,是对每个模块进行测试。主要目的是针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误。软件开发中,由编码人员自己写代码来验证功能模块。
集成测试,在单元测试的基础上,将所有模块按照设计要求组装成系统,必须精心计划,应提交集成测试计划、集成测试规格说明书和集成测试分析报告。主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其他程序部分之间的接口上可能存在的错误。
系统测试,将软件放在整个计算机环境下,在实际运行环境中进行一系列的测试,发现软件与系统定义不符合或矛盾的地方。

软件维护(更正性、适应性、完善性、预防性)

(3)软件维护:将软件维护定义为需要提供 软件支持 的 全部活动。这些活动包括在交付前完成的活动,以及交付后完成的活动。交付前要完成的活动包括交付后的 运行计划 和 维护计划等。交付后的活动包括软件修改、培训、帮助资料等。
软件维护有如下类型:
1、更正性维护——更正交付后发现的错误
2、适应性维护——使软件产品能够在变化后或变化中的环境中继续使用;
3、完善性维护——改进交付后产品的性能和可维护性
4、预防性维护——在软件产品中的潜在错误成为实际错误前,检测并更正它们。

3.3.3 软件质量保证及质量评价

软件质量指的是软件特性的总和,是软件满足用户需求的能力,即遵从用户需求,达到用户满意。软件质量包括“内部质量”“外部质量”和“使用质量”三部分。软件需求定义了软件质量特性,及确认这些特性的方法和原则
软件质量管理过程由许多活动组成,一些活动可以直接发现缺陷,另一些活动则检查活动的价值。其中包括质量保证过程、验证过程、确认过程、评审过程、审计过程等。
(1)软件质量保证:通过制订计划、实施和完成等活动保证项目生命周期中的软件产品和过程符合其规定的要求。

(2)验证与确认:确定某一活动的产品是否符合活动的需求,最终的软件产品是否达到其意图并满足用户需求。
验证过程试图确保活动的输出产品已经被正确构造,即活动的输出产品满足活动的规范说明
确认过程则试图确保构造了正确的产品,即产品满足其特定的目的

(3)评审与审计:包括管理评审、技术评审、检查、走查、审计等。
管理评审的目的是监控进展,决定计划和进度的状态,或评价用于达到目标所用管理方法的有效性。技术评审的目的是评价软件产品,以确定其对使用意图的适合性。
软件审计的目的是提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的独立评价。审计是正式组织的活动,识别违例情况,并要生成审计报告,采取更正性行动。

3.3.4 软件配置管理(六大活动)

软件配置管理活动包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。
软件配置管理计划的制定需要了解组织结构环境和组织单元之间的联系,明确软件配置控制任务。软件配置标识活动识别要控制的配置项,并为这些配置项及其版本建立基线。软件配置控制关注的是管理软件生命周期中的变更。软件配置状态记录标识、收集、维护并报告配置管理的配置状态信息。软件配置审计是独立评价软件产品和过程是否遵从已有的规则、标准、指南、计划和流程而进行的活动。软件发布管理和交付通常需要创建特定的交付版本,完成此任务的关键是软件库

3.3.5 软件过程管理(5方面)

软件过程管理涉及技术过程和管理过程,通常包括以下几个方面。
(1) 项目启动与范围定义:启动项目并确定软件需求。
(2) 项目规划:制定计划,其中一个关键点是确定适当的 软件生命周期过程并完成相关的工作
(3) 项目实施:根据计划,并完成相关的工作。
(4) 项目监控与评审:确认项目工作是否满足要求,发现问题并解决问题。
(5) 项目收尾与关闭:为了项目结束所做的活动,需要项目验收,并在验收后进行归档、事后分析和过程改进等活动。

3.3.6 软件开发工具

软件需求工具包括 需求建模工具和需求追踪工具。
软件设计工具包括 软件设计 创建 和 检查工具。
软件构造工具包括 程序编辑器、编译器、代码生成器、解释器、调试器等。
软件测试工具包括 测试生成器、测试执行框架、测试评价工具、测试管理工具、性能分析工具。
软件维护工具包括 理解工具(如可视化工具)和再造工具(如重构工具)。
软件配置管理工具包括 追踪工具、版本管理工具发布工具
软件工程 管理 工具包括 项目计划与追踪工具、风险管理工具度量工具
软件工程 过程 工具包括 建模工具、管理工具、软件开发环境
软件质量工具包括 检查工具和分析工具。

3.3.7 软件复用

软件复用是指利用 已有软件 的各种有关知识构造 新的软件,以 缩减 软件开发和维护费用。复用是提高软件生产力和质量的一种重要技术。
软件复用的主要思想是,将软件看成是由不同功能的“组件”所组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具。这样,如果完成各种工作的组件被建立起来以后,编写某一特定软件的工作就变成了将各种不同组件组织连接起来的简单问题,这对于软件产品的最终质量和维护工作都有本质性的改变。
早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决策、架构、需求、设计、代码和文档等一切有关方面。
由于面向对象方法的主要概念及原则与软件复用的要求十分吻合,所以该方法特别有利于软件复用

3.4 面向对象系统分析与设计

3.4.1 面向对象的基本概念(对象、类、抽象、封装、继承、多态、接口、消息、组件、复用、模式)

(1)对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。用计算机语言来描述,对象是由一组属性和对这组属性进行的操作构成的。
对象包含三个基本要素,分别是对象 标识、对象 状态和对象 行为。例如,对于姓名(标识)为Joe的教师而言,其包含性别、年龄、职位等个人状态信息,同时还具有授课等行为特征,Joe就是封装后的一个典型对象。

(2)类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。
例如,Joe是一名教师,也就拥有了教师的特征,这些特征就是教师这个类所具有的。类和对象的关系可理解为,对象是类的实例,类是对象的模板。如果将对象比作房子,那么类就是房子的设计图纸。

(3)抽象:通过特定的实例抽取共同特征以后形成概念的过程。抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。对象是现实世界中某个实体的抽象,类是一组对象的抽象。

(4)封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的 接口进行。

(5)继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承多继承

(6)多态:使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性

(7)接口:描述对操作规范的说明,其只说明 操作 应该做什么,并没有定义操作如何做。可以将接口理解成为类的一个特例,它规定了实现此接口的类的操作方法,把真正的实现细节交由实现该接口的类去完成。

(8)消息:体现对象间的交互,通过它向目标对象发送操作请求

(9)组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。组件应当是内聚的,并具有相对稳定的公开接口。

(10)复用:指将已有的软件及其有效成分用于构造新的软件或系统。组件技术是软件复用实现的关键。

(11)模式:描述了一个不断重复发生 的问题,以及该问题的解决方案。其包括特定环境问题解决方案三个组成部分。应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。

面向对象程序设计的 4 大特点是:抽象、封装、继承和多态。
面向对象设计(Object-Oriented Design,OOD)是面向对象分析方法(Object-Oriented Analysis,OOA)的延续,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。

3.4.2 统一建模语言(UML)与可视化建模

统一建模语言(Unified Modeling Language, UML)用于对软件进行可视化描述、构造和建立软件系统的文档。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。
需要注意的是, UML是一种可视化的建模语言,而不是编程语言。UML标准包括相关概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的,强调在软件开发中对架构、框架、模式和组件的重用,并与最佳软件工程实践经验进行了集成。
在UML中,使用各种不同的符号元素画成图形,用以表示系统的结构和行为。
软件统一过程RUP (Rational Unified Process)是使用面向对象技术进行软件开发的最佳实践之一,是软件工程的过程。它对所有关键开发活动提供了使用准则、模板、工具等。其涵盖的最佳实践经验包括:迭代式开发、需求管理、使用以组件为中心的软件架构、可视化建模、验证软件质量及控制变更等。

3.4.3 面向对象系统分析
面向对象系统分析运用面向对象方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。
面向对象系统分析的模型由用例模型、类-对象模型、对象-关系模型和对象-行为模型组成。

3.4.4 面向对象系统设计
面向对象系统设计基于系统分析得出的问题域模型,用面向对象方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。面向对象系统设计主要包括用例设计、类设计和子系统设计等。

3.5 软件架构

3.5.1 软件架构定义
软件总是有架构的。将软件系统划分成多个模块,明确各模块之间的相互作用,组合起来实现系统的全部特性,就是系统架构。

3.5.2 软件架构模式(管道/过滤器、面向对象、事件驱动、分层、 客户/服务器)

软件架构设计的一个核心问题是能否使用架构模式,即能否达到架构级的软件重用。软件架构模式描述了某一特定应用领域中系统的组织方式,反映了领域中众多系统所共有的结构和特性,描述了将各个模块和子系统有效地组织成一个完整系统的解决方案。
常见的典型架构模式如下。

(1)管道/过滤器模式:此模式中,每个组件(过滤器)都有一组输入/输出,组件读取输入的数据流,经过内部处理后,产生输出的数据流,该过程主要完成输入流的变换及增量计算。其典型应用包括批处理系统
管道/过滤器模式体现了各功能模块高内聚、低耦合的“黑盒”特性,支持软件功能模块的重用,便于系统维护;同时,每个过滤器自己完成数据解析和合成工作(如加密和解密),易导致系统性能下降,并增加了过滤器具体实现的复杂性

(2)面向对象模式:在面向对象的基础上,将模块数据的表示方法及其相应操作封装在更高抽象层次的数据类型或对象中。其典型应用是基于组件的软件开发(Component-Based Development, CBD)

(3)事件驱动模式:其基本原理是组件并不直接调用操作,而是触发一个或多个事件。系统中的其他组件可以注册相关的事件,触发一个事件时,系统会自动调用注册了该事件的组件,即触发事件会导致另一组件中操作的调用。其典型应用包括各种图形界面应用

(4)分层模式:采用层次化的组织方式,每一层都为上一层提供服务,并使用下一层提供的功能。该模式允许将一个复杂问题逐步分层实现。其中的每一层最多只影响相邻两层,只要给相邻层提供相同的接口,就允许每层用不同的方法实现,可以充分支持软件复用。其典型应用是分层通信协议,如ISO/OSI的七层网络模型。此模式也是通用应用架构的基础模式

(5)客户/服务器模式(Client/Server,C/S):基于资源不对等,为实现共享而提出的模式。C/S模式将应用一分为二,服务器(后台)负责数据操作和事务处理,客户(前台)完成与用户的交互任务。C/S模式中客户与服务器分离,允许网络分布操作,适用于分布式系统
为了解决C/S 模式中客户端的问题,发展形成了浏览器/服务器(Browser/Server, B/S)模式;为了解决C/S模式中服务器端的问题,发展形成了三层(多层) C/S模式,即多层应用架构

软件架构模式为粗粒度的软件重用提供了可能。但是,由于考虑问题的角度不同,对于架构模式的选择会有很大的不同。为系统选择或设计架构时,需要根据特定项目的具体特点,进行分析比较后再确定。同时应注意,各种架构模式并不是互斥的,某些应用系统中可以综合使用多种架构模式

3.5.3 软件架构分析与评估

针对目前广泛使用的分布式应用,其软件架构设计需要考虑如下问题。
(1)数据库的选择问题:目前主流的数据库系统是关系数据库。
(2)用户界面选择问题:HTML/HTTP (S)协议是实现 Internet 应用的重要技术。
(3)灵活性和性能问题:权衡独立于厂商的抽象定义(标准)所提供的灵活性和特定厂商产品带来的性能。
(4)技术选择的问题:选择成熟的技术可以规避项目风险。不仅需要了解技术的优势,还需要了解技术的适用范围和局限性。
(5)人员的问题:聘请经验丰富的架构设计师,可以有效地保证项目的成功。

3.5.4 软件中间件

中间件(Middleware)是位于硬件、操作系统等平台应用之间的通用服务。借由中间件,解决了分布系统的异构问题。
中间件服务具有标准的程序接口和协议。不同的应用、硬件及操作系统平台,可以提供符合接口和协议规范的多种实现,其主要目的实现应用与平台的无关性。借助中间件,屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制,满足不同领域的应用需要。
中间件的分类

(1) 数据库访问中间件(ODBC、JDBC)

通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。典型技术:
① Windows平台的ODBC(Open Database Connectivity)② Java平台的JDBC(Java Database Connectivity)

(2) 远程过程调用中间件

(Remote Procedure Call,RPC)是一种分布式应用程序的处理方法。一个应用程序可以使用RPC来“远程”执行一个位于不同地址空间的过程,从效果上看和执行本地调用相同。一个 RPC 应用分为服务器和客户两个部分。服务器提供一个或多个远程操作过程;客户向服务器发出远程调用。服务器和客户可以位于同一台计算机,也可以位于不同的计算机,甚至可以运行在不同的操作系统之上。客户和服务器之间的网络通讯和数据转换通过代理程序(Stub与Skeleton)完成,从而屏蔽了不同的操作系统和网络协议。

(3) 面向消息中间件(MQSeries)

(Message-Oriented Middleware,MOM)利用高效可靠的消息传递机制进行平台无关的数据传递,并可基于数据通信进行分布系统的集成。通过提供消息传递和消息队列模型,可在分布环境下扩展进程间的通信,并支持多种通讯协议、语言、应用程序、硬件和软件平台。典型产品如IBM的MQSeries

(4) 分布式对象中间件

是建立对象之间客户/服务器关系的中间件,结合了对象技术与分布式计算机技术。该技术提供了一个通信框架,可以在异构分布计算环境中透明传递对象请求。典型产品:
① OMG的CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)
② SUN的RMI/EJB(Remote Method Invocation,远程方法调用),(Enterprise Java Bean)
③ Microsoft的DCOM(分布式组件对象模型,Microsoft Distributed Component Object Model)

(5) 事务中间件(Tuxedo)

也称事务处理监控器(Transaction Processing Monitor,TPM),提供支持大规模事务处理的可靠运行环境。。TPM位于客户和服务器之间,完成事务管理与协调、负载平衡、失效恢复等任务,以提高系统的整体性能。典型产品如 IBM/BEA 的Tuxedo(燕尾服,Transaction for Unix has been Extended for Distributed Operation,分布式操作扩展之后的Unix事务系统)。结合对象技术的对象事务监控器( Object Transaction Monitor, OTM)如支持EJB的JavaEE应用服务器等。

3.6 典型应用集成技术

3.6.1 数据库与数据仓库技术

数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的相对稳定的反映历史变化的数据集合,用于支持管理决策。数据仓库是对多个异构数据源(包括历史数据)的有效集成,集成后按主题重组,且存放在数据仓库中的数据一般不再修改。数据仓库系统的结构通常包含4个层次。

数据仓库系统结构(4个层次:数据源、数据集市、OLAP服务器、前端工具)

(1) 数据源
是数据仓库系统的基础,是整个系统的数据源泉。
(2) 数据的存储与管理(数据集市)
是整个数据仓库系统的核心。
(3) OLAP(联机分析处理)服务器
对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。
(4) 前端工具
主要包括各种查询工具、报表工具、分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
在这里插入图片描述
大数据分析相比于传统的数据仓库应用,具有数据量大、查询分析复杂等特点。(大多快价真)
① Volume (数据量大)② Variety (数据种类繁多)③ Velocity (处理速度快)④ Value (价值密度低)⑤ Veracity (真实性高)

3.6.2 Web Services技术

Web服务(Web Services)定义了一种松散的、粗粒度的分布计算模式,使用标准的HTTP(S)协议传送XML表示及封装的内容。
Web服务的典型技术包括:
① 用于传递信息的简单对象访问协议(Simple Object Access Protocol,SOAP)
② 用于描述服务的Web服务描述语言(Web Services Description Language,WSDL)
③ 用于Web服务注册的统一描述、发现及集成(Universal Description Discovery and Integration,UDDI)
④ 用于数据交换的XML(可扩展标记语言,Extensible Markup Language)

Web 服务的主要目标是跨平台的互操作性,适合使用Web Services的情况:跨越防火墙、应用程序集成、B2B集成、软件重用等。
同时,在某些情况下,Web服务也可能会降低应用程序的性能。不适合使用Web服务的情况包括:单机应用程序、局域网上的同构应用程序等。随着云计算技术的普及,Web Service逐渐融入到云计算SaaS (软件即服务)服务中。

适合使用Web Service的情况如下: ①跨越防火墙:对于成千上万且分布在世界各地的用户来讲,应用程序的客户端和服务器之间的通信是一个棘手的问题。客户端和服务器之间通常都会有防火墙或者代理服务器。用户通过Web服务访问服务器端逻辑和数据可以规避防火墙的阻挡。 ②应用程序集成:企业需要将不同语言编写的在不同平台上运行的各种程序集成起来时,Web服务可以用标准的方法提供功能和数据,供其他应用程序使用。 ③B2B集成:在跨公司业务集成(B2B集成)中,通过Web服务可以将关键的商务应用提供给指定的合作伙伴和客户。用Web服务实现B2B集成可以很容易地解决互操作问题。 ④软件重用:Web服务允许在重用代码的同时,重用代码后面的数据。通过直接调用远端的Web服务,可以动态地获得当前的数据信息。用Web服务集成各种应用中的功能,为用户提供一个统一的界面,是另一种软件重用方式。 在某些情况下,Web服务也可能会降低应用程序的性能。不适合使用Web服务的情况如下: ①单机应用程序:只与运行在本地机器上的其他程序进行通信的桌面应用程序最好不使用Web服务,只使用本地API即可。 ②局域网上的同构应用程序:使用同一种语言开发的在相同平台的同一个局域网中运行的应用程序直接通过TCP等协议调用,会更有效。

3.6.3 JavaEE架构

JavaEE (Java Platform Enterprise Edition)是最早由Sun公司(已被IBM公司收购)提出、各厂商共同制定并得到广泛认可的工业标准。业界各主要中间件厂商如IBM、Oracle都积极地促进该标准的推广和应用。JavaEE应用将开发工作分成两类:业务逻辑开发表示逻辑开发,其余的系统资源则由应用服务器负责处理,不必为中间层的资源和运行管理进行编码。这样就可以将更多的开发精力集中在应用程序的业务逻辑和表示逻辑上,从而缩短企业应用开发周期、有效地保护企业的投资。
JavaEE应用服务器运行环境主要包括组件(Component)、容器(Container)及服务(Services)三部分。组件是表示应用逻辑的代码;容器是组件的运行环境;服务则是应用服务器提供的各种功能接口,可以同系统资源进行交互。

3.6.4 .NET架构

微软的.NET是基于一组开放的互联网协议而推出的一系列的产品、技术和服务。.NET开发框架在通用语言运行环境(Common Language Runtime)基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。
通用语言运行环境处于.NET开发框架的最低层,是该框架的基础,它为多种语言提供了统一的运行环境、统一的编程模型,大大简化了应用程序的发布和升级、多种语言之间的交互、内存和资源的自动管理等等。
JavaEE与.NET都可以用来设计、开发企业级应用。JavaEE平台是业界标准,有多家厂商实现了这些标准(工具、应用服务器等)。.NET是微软的产品系列,而非业界标准。这使二者在实现技术及应用等各方面均有很多不同之处。
在.NET架构中,基础类库给开发人员提供了一个统一的、面向对象的、层次化的、可扩展的编程接口。(09年下)

3.6.5 软件引擎技术

软件引擎通常是系统的核心组件,目的是封装某些过程方法,使得在开发的时候不需要过多地关注其具体实现,从而可以将关注点聚焦在与业务的结合上。
工作流程引擎是工作流管理系统的运行和控制中心。通过工作流程引擎,可以解释流程建模工具中定义的业务流程逻辑,进行过程、活动实例的创建,把任务分派给执行者,并根据任务执行的返回结果决定下一步的任务,控制并协调各种复杂工作流程的执行,实现对完整的业务流程生命周期的运行控制。工作流程引擎的主要功能是流程调度和冲突检测

3.6.6 组件及其在系统集成项目中的重要性
组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行封装,同时实现各种业务逻辑规则,用于处理用户的内部操作细节。满足此目的的封装体被称作组件。在这一过程中,为了完成对某一规则的封装,可以用任何支持组件编写的工具来完成,而最终完成的组件则与语言本身没有任何关系,甚至可以实现跨平台。对使用者而言,它就是实现了某些功能的、有输入输出接口的黑盒子

3.6.7 常用组件标准
常用组件标准包括微软的COM/DCOM/COM+、OMG的CORBA及SUN的RMI/EJB
微软的COM/DCOM/COM+系列中, COM是开放的组件标准,有很强的扩充和扩展能力。DCOM在COM的基础上添加了许多功能和特性,包括事务特性、安全模型、管理和配置等,使COM成为一个完整的组件架构。COM+综合各技术形成的功能强大的组件架构,通过系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给了系统。
CORBA (Common Object Request Broker Architecture,公共对象请求代理架构)是OMG组织制订的一种标准的面向对象的应用程序架构规范,是为解决分布式处理环境中硬件和软件系统的互连而提出的一种解决方案。CORBA是绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛等特点,已成为分布计算技术的标准
EJB 在 Java EE 中用于封装中间层的业务功能。EJB 组件部署在 EJB 容器中,客户应用通过接口访问它们,体现了接口和实现分离的原则。

3.7 计算机网络知识

3.7.1 网络技术标准与协议(OSI七层协议)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.7.2 Internet技术及应用(TCP/IP、标识技术、IPv6)

Internet 有如下特点:
TCP/IP 协议是Internet 的核心;
Internet 实现了与公用电话交换网(包括移动电话网)的互连;
Internet 是一个用户自己的网络;
由众多的计算机网络互联组成,是一个世界性的网络;
采用分组交换技术;
由众多的路由器、网关连接而成;
是一个信息资源网。
在这里插入图片描述
2、标识技术
(1)主机IP地址。为了确保通信时能相互识别,在Internet上的每台主机都必须有一个唯一的标识,即主机的IP地址。IP协议就是根据IP地址实现信息传递的。IP地址分为IPv4和IPv6两个版本。IPv4由32位(即4字节)二进制数组成,将每个字节作为一段并以十进制数来表示,每段间用“.”分隔。例如, 202.96.209.5就是一个合法的IP地址。IP地址由网络标识和主机标识两部分组成。常用的IP地址有A、B、C三类,每类均规定了网络标识和主机标识在32位中所占的位数。A类地址一般分配给具有大量主机的网络使用, B类地址通常分配给规模中等的网络使用, C类地址通常分配给小型局域网使用。为了确保唯一性,IP地址由世界各大地区的权威机构Inter NIC (Internet Network Information Center, Internet网络信息中心)管理和分配。在IP地址的某个网络标识中,可以包含大量的主机(如A类地址的主机标识域为24位、B类地址的主机标识域为16位),而在实际应用中不可能将这么多的主机连接到单一的网络中,这将给网络寻址和管理带来不便。为解决这个问题,可以在网络中引入“子网”的概念。将主机标识域进一步划分为子网标识和子网主机标识,通过灵活定义子网标识域的位数,可以控制每个子网的规模。将一个大型网络划分为若干个既相对独立又相互联系的子网后,网络内部各子网便可独立寻址和管理,各子网间通过跨子网的路由器连接,这样也提高了网络的安全性。利用子网掩码可以判断两台主机是否在同一子网中。子网掩码与IP地址一样也是32位二进制数,不同的是它的子网主机标识部分为全"0"。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。
IPv6也被称作下一代互联网协议,它是由IETF小组(Internet Engineering Task Force,Internet工程任务组)设计的用来替代现行的IPv4 (现行的IP)协议的一种新的IP协议。我们知道, Internet的主机都有一个唯一的IP地址,IP地址用一个32位二进制的数表示一个主机号码,但 32 位地址资源有限,已经不能满足用户的需求了,因此Internet研究组织发布新的主机标识方法,即IPv6。在RFC1884中(RFC是Request for Commentsdocument的缩写。RFC实际上就是Internet有关服务的一些标准说明文档),规定的标准语法建议把IPv6地址的128位(16个字节)写成8个16位的无符号整数,每个整数用4个十六进制位表示,这些数之间用冒号(:)分开,例如: 3ffe:3201:1401:1280:c8ff:fe4d:db39:1984。
IPv6具有以下显著优点:
提供更大的地址空间,能够实现 plug and play (即插即用)和灵活的重新编址;
更简单的头信息,能够使路由器提供更有效率的路由转发;
与 mobile ip 和 ip sec保持兼容的移动性和安全性;
提供丰富的从IPv4到IPv6的转换和互操作的方法,ipsec在IPv6中是强制性的

(2)域名系统和统一资源定位器。32位二进制数的IP地址对计算机来说十分有效,但用户使用和记忆都很不方便。为此,Internet 引进了字符形式的 IP 地址,即域名。域名采用层次结构的基于“域”的命名方案,每一层由一个子域名组成,子域名间用“.”分隔,其格式为:机器名.网络名.机构名.最高域名
Internet上的域名由域名系统DNS (Domain Name System)统一管理。DNS是一个分布式数据库系统,由域名空间、域名服务器和地址转换请求程序三部分组成。有了DNS,凡域名空间中有定义的域名都可以有效地转换为对应的 IP 地址,同样,IP 地址也可通过 DNS 转换成域名。
www上的每一个网页都有一个独立的地址,这些地址称为统一资源定位器(URL,Uniform Resource Locator),只要知道某网页的URL,便可直接打开该网页。
(3)用户E-mail地址。用户E-mail地址的格式为:用户名@主机域名。其中用户名是用户在邮件服务器上的信箱名,通常为用户的注册名、姓名或其他代号,主机域名则是邮件服务器的域名。用户名和主机域名之间用"@”分隔。由于主机域名在 Internet 上的唯一性,所以只要 E-mail 地址中的用户名在该邮件服务器中是唯一的,则这个 E-mail 地址在整个Internet 上也是唯一的。

3.7.3 网络分类

1、根据计算机网络覆盖的地理范围分类
按照计算机网络所覆盖的地理范围的大小进行分类,计算机网络可分为:局域网、城域网和广域网。了解一个计算机网络所覆盖的地理范围的大小,可以使人们一目了然地了解该网络的规模和主要技术。局域网(LAN)的覆盖范围一般在方圆几十米到几公里。典型地是一个办公室、一个办公楼、一个园区的范围内的网络。当网络的覆盖范围达到一个城市的大小时,被称为城域网。网络覆盖到多个城市甚至全球的时候,就属于广域网的范畴了。我国著名的公共广域网是ChinaNet、ChinaPAC、ChinaFrame、ChinaDDN等。大型企业、院校、政府机关通过租用公共广域网的线路,可以构成自己的广域网。
2、根据链路传输控制技术分类
链路传输控制技术是指如何分配网络传输线路、网络交换设备资源,以便避免网络通讯链路资源冲突,同时为所有网络终端和服务器进行数据传输。典型的网络链路传输控制技术有:总线争用技术、令牌技术、FDDI技术、ATM技术、帧中继技术和ISDN技术。对应上述技术的网络分别是以太网、令牌网、FDDI网、ATM网、帧中继网和ISDN网总线争用技术 是 以太网 的标志。总线争用顾名思义,即需要使用网络通讯的计算机需要抢占通讯线路。如果争用线路失败,就需要等待下一次的争用,直到占得通讯链路。这种技术的实现简单,介质使用效率非常高。进入本世纪以来,使用总线争用技术的以太网成为了计算机网络中占主导地位的网络。令牌环网和FDDI网一度是以太网的挑战者。它们分配网络传输线路和网络交换设备资源的方法是在网络中下发一个令牌报文包,轮流交给网络中的计算机。需要通讯的计算机只有得到令牌的时候才能发送数据。令牌环网和FDDI网的思路是需要通讯的计算机轮流使用网络资源,避免冲突。但是,令牌技术相对以太网技术过于复杂,在千兆以太网出现后,令牌环网和FDDI网不再具有竞争力,淡出了网络技术领域。ATM是英文Asynchronous Transfer Mode的缩写,称为异步传输模式。ATM采用光纤作为传输介质,传输以53个字节为单位的超小数据单元(称为信元),ATM网络的最大吸引力之一是具有特别的灵活性,用户只要通过ATM交换机建立交换虚电路,就可以提供突发性、宽频带传输的支持,适应包括多媒体在内的各种数据传输,传输速度高达622Mbps。ISDN综合业务数据网的缩写,建设的宗旨是在传统的 电话线路 上传输 数字数据信号。ISDN通过时分多路复用技术,可以在一条电话线上同时传输多路信号。ISDN可以提供从144Kbps到30Mbps的传输带宽,但是由于其仍然属于电话技术的线路交换,租用价格较高,并没有成为计算机网络的主要通讯网络。
3、根据网络拓扑结构分类
网络拓扑结构分为物理拓扑和逻辑拓扑。物理拓扑结构描述网络中由网络终端、网络设备组成的网络结点之间的几何关系,反映出网络设备之间以及网络终端是如何连接的。网络按照拓扑结构划分有:总线型结构、环型结构、星型结构、树型结构和网状结构

3.7.4 网络服务器

网络服务器是指在网络环境下运行相应的应用软件,为网上用户提供共享信息资源和各种服务的一种高性能计算机,英文名称叫做 Server。
服务器既然是一种高性能的计算机,它的构成肯定就与我们平常所用的电脑(PC)有很多相似之处,诸如有CPU(中央处理器)、内存、硬盘、各种总线等等,只不过它是能够提供各种共享服务(网络、Web 应用、数据库、文件、打印等)以及其他方面的高性能应用,它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面,是网络的中枢和信息化的核心。由于服务器是针对具体的网络应用特别制定的,因而服务器又与普通PC在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在很大的区别。而最大的差异就是在多用户多任务环境下的可靠性上。用 PC 机当作服务器的用户一定都曾经历过突然的停机、意外的网络中断、不时的丢失存储数据等事件,这都是因为PC机的设计制造从来没有保证过多用户多任务环境下的可靠性,而一旦发生严重故障,其所带来的经济损失将是难以预料的。但一台服务器所面对的是整个网络的用户,需要7×24小时不间断工作,所以它必须具有极高的稳定性,另一方面,为了实现高速以满足众多用户的需求,服务器通过采用对称多处理器(SMP)安装、插入大量的高速内存来保证工作。它的主板可以同时安装几个甚至几十、上百个CPU(服务器所用CPU也不是普通的CPU,是厂商专门为服务器开发生产的)。内存方面当然也不一样,无论在内存容量,还是性能、技术等方面都有根本的不同。另外,服务器为了保证足够的安全性,还采用了大量普通电脑没有的技术,如冗余技术、系统备份、在线诊断技术、故障预报警技术、内存纠错技术、热插拔技术和远程诊断技术等等,使绝大多数故障能够在不停机的情况下得到及时的修复,具有极强的可管理性(Manageability)。

3.7.5 网络交换技术

网络交换是指通过一定的设备,如交换机等,将不同的信号或者信号形式转换为对方可识别的信号类型从而达到通信目的的一种交换形式,常见的有数据交换、线路交换、报文交换和分组交换
在计算机网络中,按照交换层次的不同,网络交换可以分为物理层交换(如电话网)、链路层交换(二层交换,对MAC地址进行变更)、网络层交换(三层交换,对IP地址进行变更)、传输层交换(四层交换,对端口进行变更,比较少见)和应用层交换(似乎可以理解为 Web 网关等)。
网络中的数据交换可以分为电路交换、分组交换(数据包交换)、ATM交换、全光交换和标记交换。其中电路交换有预留,且分配一定空间,提供专用的网络资源,提供有保证的服务,应用于电话网;而分组交换无预留,且不分配空间,存在网络资源争用,提供有无保证的服务。分组交换可用于数据报网络和虚电路网络。我们常用的Internet就是数据报网络,单位是Bit,而ATM则用的是虚电路网络,单位是码元

3.7.6 网络存储技术

网络存储技术(Network Storage Technologies)是基于数据存储的一种通用网络术语。网络存储结构大致分为三种:直连式存储(DAS:Direct Attached Storage)、网络存储设备(NAS:Network Attached Storage)和存储网络(SAN:Storage Area Network)。

3.7.7 光网络技术

光网络技术通常可分为光传输技术、光节点技术和光接入技术,它们之间有交叉和融合。全光网(AON)是指信息从源节点到目的节点完全在光域进行,即全部采用光波技术完成信息的传输和交换的宽带网络。它包括光传输、光放大、光再生、光选路、光交换、光存储、光信息处理等先进的全光技术。全光网络以光结点取代电结点,并用光纤将光结点互连在一起,实现信息完全在光域的传送和交换,是未来信息网的核心。全光网络最突出的优点是它的开放性。全光网络本质上是完全透明的,即对不同速率、协议、调制频率和制式的信号兼容,并允许几代设备(PHD/SDH/ATM)共存于同一个光纤基础设施。全光网的结构非常灵活,因此可以随时增加一些新结点,包括增加一些无源分路/合路器和短光纤,而不必安装另外的交换结点或者光缆。全光网络与光电混合网络的显著不同之处在于它具有最少量的电光和光电转换,没有一个结点为其他结点传输和处理信息服务。

3.7.8 无线网络技术

无线通信网络根据应用领域可分为:无线个域网(WPAN)、无线局域网(WLAN)、无线城域网(WMAN)、蜂房移动通信网(WWAN)。
从无线网络的应用角度看,还可以划分出无线传感器网络、无线Mesh网络、无线穿戴网络、无线体域网等,这些网络一般是基于已有的无线网络技术,针对具体的应用而构建的无线网络。

3.7.9 网络接入技术
网络接入技术分为光纤接入、同轴接入、铜线接入、无线接入

3.7.10 综合布线、机房工程
机房是系统集成工程中服务器和网络设备的“家”,通常分为以下3类:智能建筑弱电总控机房,工作包括布线、监控、消防、计算机机房、楼宇自控等;电信间、弱电间和竖井;数据中心机房,包括企业自用数据中心、运营商托管或互联网数据中心,大型的数据中心,可达数万台服务器。机房布线设计需要重点考虑以下几点:考虑机房环境的节能、环保、安全;适应冷热通道布置设备;列头柜的设置;敞开布线与线缆防火;长跳线短链路与性能测试;网络构架与外部网络,多运营商之间的网络互通;高端产品应用的特殊情况;机房与布线系统接地。

3.7.11 网络规划、设计与实施
网络设计工作包括:
1、网络拓扑结构设计
选择拓扑结构时,应该考虑的主要因素有:地理环境、传输介质与距离以及可靠性
2、主干网络(核心层)设计
连接建筑群的主干网一般以光缆做传输介质
3、汇聚层和接入层设计
4、广域网连接与远程访问设计
如果网络用户没有WWW、E-mail等Internet 功能的服务器,用户可以采用 ISDN 或 ADSL 等技术连接外网;如果用户有WWW、E-mail等具有Internet 功能的服务器,用户可采用 DDN(或 E1)专线连接、ATM 交换及永久虚电路连接外网
5、无线网络设计
6、网络通信设备选型
网络通信设备选型包括核心交换机选型、汇聚层/接入层交换机选型、远程接入与访问设备选型。

3.7.12 网络安全

信息安全的基本要素(5个:机密性、完整性、可用性、可控性、可审查性)

在这里插入图片描述

网络和信息安全产品(4个:防火墙、扫描器、防毒软件、安全审计系统)

在这里插入图片描述
在这里插入图片描述
3.7.13 网络管理 159

3.8 新兴信息技术 159
3.8.1 云计算
云计算的特点: (19年上)
(1) 超大规模
(2) 虚拟化
(3) 高可靠性
(4) 通用性
(5) 高可扩展性 ☆
(6) 按需服务
(7) 极其廉价
(8) 潜在的危险性

云计算架构
从对外提供的服务能力来看,云计算的架构可以分为 3 个层次:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。
(1)基础设施即服务 (IaaS)
英文为Infrastructureas a Service,指消费者通过Internet 可以从云计算中心获得完善的计算机基础设施服务,例如虚拟主机、存储服务等,典型厂家有 Amazon、阿里云等如果把云计算比作一台计算机,IaaS 就相当于计算机的主机等硬件。
(2)平台即服务(PaaS)
英文为 Platformas a Service,指为云计算上各种应用软件提供服务的平台应用,其作用类似于个人计算机的操作系统,也包括一些增强应用开发的“开发包”,典型厂家有 GogleApp Engine、Microsoft Azure、阿里 Aliyun Cloud Enginee、百度 Baidu App Enginee 等
(3)软件即服务(SaaS)
英文为 Software as a Service,是一种通过Internet 提供软件的模式,用户无需购买软件,而是向提供商租用基于 Web 的软件,来管理企业经营活动。类似于个人计算机中各种各样的应用软件。提供SaaS 服务的厂家越来越多,典型的如国外的 Salesforce、国
内的淘宝等。从云计算的核心以及大型数据中心的内部结构来看,其结构包括资源池、云操作系统和云平台接口,如图3-13 所示。
在这里插入图片描述
(1)资源池:指集群管理的各种基础硬件资源,如 CPU、存储和网络带宽等。
(2)云操作系统:通过虚拟化技术对资源池中的各种资源进行统一调度管理。
(3)云平台接口:用户调用云计算资源的接口。

3.8.2 物联网
物联网概念
物联网(IoT:The Internet of Things)指通过射频识别(RFID)、红外线感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把物与物、人与物进行智能化连接,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种新兴网络。
物:客观世界的物品,包括人、商品、地理环境等
联:通过互联网、通信网、电视网、传感网等实现网络互联
网:与通讯介质无关,有线无线都可;和通信拓扑结构无关,总线、星型均可。最后只要达到数据传输的目的即可。

物联网架构

物联网从架构上面可以分为感知层、网络层和应用层,如图 3-15 所示。
(1)感知层:负责信息采集和物物之间的信息传输,信息采集的技术包括传感器条码和二维码、RFID 射频技术、音视频等多媒体信息,信息传输包括远近距离数据传输技术、自组织组网技术、协同信息处理技术、信息采集中间件技术等传感器网络。感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术、标准化方面、产业化方面待突破的部分,关键在于具备更精确、更全面的感知能力,并解决低功耗、小型化和低成本的问题。
(2)网络层:是利用无线和有线网络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信网络是实现物联网的基础设施,是物联网三层中标准化程度最高、产业化能力最强、最成熟的部分,关键在于为物联网应用特征进行优化和改进,形成协同感知的网络。
(3)应用层:提供丰富的基于物联网的应用,是物联网发展的根本目标,将物联网技术与行业信息化需求相结合,实现广泛智能化应用的解决方案集,关键在于行业融合、信息资源的开发利用、低成本高质量的解决方案、信息安全的保障以及有效的商业模式的开发。
在这里插入图片描述
各个层次所用的公共技术包括编码技术、标识技术、解析技术、安全技术和中间件技术。

(1) 感知层:负责信息采集和物物之间的信息传输,感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术。
  a. 信息采集的技术包括传感器(在物联网产业链中需求量最大、最基础的环节)、条码和二维码、RFID射频技术、音视频等于多媒体信息(21年上)
  b. 信息传输的技术包括远近距离数据传输技术、自组织网技术、协同信息处理技术、信息采集中间件技术等传感器网络 (19年下)
(2) 网络层:是利用无线和有线网络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信网络是实现物联网的基础设施,是物联网三层中标准化程度最高、产业能力最强、最成熟的部分,关键在于为物联网应用特征进行优化和改进,形成协同感知的网络
(3) 应用层:提供丰富的基于物联网的应用,是物联网发展的根本目标。

物联网关键技术

感知层作为物联网架构的基础层面,主要是达到信息采集并将采集到的数据上传的目的,感知层的技术主要包括:
① 产品和传感器(条码、RFID、传感器等)自动识别技术,
② 无线传输技术(WLAN、Bluetooth、ZigBee、UWB),
③ 自组织组网技术和中间件技术

射频识别技术(Radio Frequency Identification,RFID)

3.8.3 移动互联网

移动互联网的定义
移动互联网一般是指用户用手机等无线终端,通过3G或者WLAN等速率较高的移动网络接入互联网,可以在移动状态下(如在地铁、公交车上等)使用互联网的网络资源。
从技术层面的定义:以宽带IP为技术核心,可以同时提供语音、数据、多媒体等业务的开放式基础电信网络。
移动互联网 = 移动通信网络 + 互联网内容和应用,它不仅是互联网的延伸,而且是互联网的发展方向。
移动终端在处理能力、显示效果、开放性等方面无法和PC相提并论,但在个性化、永远在线、位置性等方面强于PC。由于移动终端具有小巧轻便、随身携带两个特点,决定了移动互联网应用应具有以下新特征而不是传统互联网应用的简单复制和移植。
(1) 接入移动性:移动终端的便携性使得用户可以在任意场合接入网络,移动互联网的使用场景是动态变化的。
(2) 时间碎片性:用户使用移动互联网的时间往往是上下班途中、工作之余、出差等候间隙等碎片时间,数据传输具有不连续性和突发性。
(3) 生活相关性:移动终端被用户随身携带,具有唯一号码,与移动位置关联等特性使得移动应用可以进入人们的日常生活,满足衣食住行吃喝玩乐等需求。
(4) 终端多样性:目前各手机厂商分足鼎立,有各自不同的操作系统和低层硬件,终端类型多样,尚未形成统一的标准化接口协议。

移动互联网关键技术
移动互联网的关键技术包括架构技术SOA、页面展示技术Web2.0和HTML5以及主流开发平台Android、 iOS和Windows Phone。

(1) SOA(面向服务的架构)

Service Oriented Architecture,即面向服务的架构,SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA 可以看作是 B/S 模型、XML(标准通用标记语言的子集) /Web Service 技术之后的自然延伸。Web Service 是目前实现 SOA 的主要技术,是一个平台独立的,低耦合的,自包含的、基于可编程的Web的应用程序,可使用开放的XML (标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,即可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。SOA支持将业务转换为一组相互链接的服务或可重复业务任务,可以对这些服务进行重新组合,以完成特定的业务任务,从而使业务能够快速适应不断变化的客观条件和需求。

(2) Web 2.0

Web 2.0严格来说不是一种技术,而是提倡众人参与的互联网思维模式,是相对于Web 1.0的新的时代。指的是一个利用Web的平台,由用户主导而生成的内容互联网产品模式,为了区别传统由网站雇员主导生成的内容而定义为第二代互联网,即Web2.0,是一个新的时代。Web 1.0 和 Web 2.0 的区别如表 3-1 所示。
在这里插入图片描述

(3) HTML5

HTML 5是在原有HTML基础之上扩展了API,使Web应用成为RIA (富网络应用,Rich Internet Applications),具有高度互动性、丰富用户体验以及功能强大的客户端。HTML 5的第一份正式草案已于2008年1月22日公布。HTML 5的设计目的是为了在移动设备上支持多媒体,推动浏览器厂商,使Web开发能够跨平台跨设备支持。HTML5仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。HTML 5相对于HTML 4是一个划时代的改变,新增了很多特性,其中重要的特性包括:支持WebGL、拖曳、离线应用和桌面提醒,大大增强了浏览器的用户使用体验。支持地理位置定位,更适合移动应用的开发。支持浏览器页面端的本地储存与本地数据库,加快了页面的反应。使用语义化标签,标签结构更清晰,且利于SEO。摆脱对Flash等插件的依赖,使用浏览器的原生接口。使用 CSS3,减少页面对图片的使用。兼容手机、平板电脑等不同尺寸,不同浏览器的浏览。HTML 5手机应用的最大优势就是可以在网页上直接调试和修改。原先应用的开发人员可能需要花费非常大的力气才能达到HTML5的效果,不断地重复编码、调试和运行,这是首先得解决的一个问题。因此也有许多手机杂志客户端是基于HTML5标准,开发人员可以轻松调试修改。

(4) Android
Android一词的本义指“机器人”,是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑,由Google于2007年11月5日发布,后一直由Google公司和开放手机联盟领导及开发。开放手机联盟(Open Handset Alliance)包括 Motorola、HTC、Samsung、LG、HP、中国电信等。并且很多移动重点厂商,如三星、小米,都在标准Android的基础上封装自有的操作系统。
相对其他移动终端操作系统, Android的特点是入门容易,因为Android的中间层多以Java实现,并且采用特殊的Dalvik “暂存器型态” Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少,开发相对简单,而且开发社群活跃,开发资料丰富。
(5) iOS
iOS是由苹果公司开发的移动操作系统,主要应用于iPhone、iTouch以及iPad。苹果的移动终端一直是高端移动市场的领导者,拥有多点触控功能等多项专利,无与伦比的用户体验和海量的应用软件,并且App Store开创网上软件商店的先河。iOS是一个非开源的操作系统,其SDK本身是可以免费下载的,但为了发布软件,开发人员必须加入苹果开发者计划,其中有一步需要付款以获得苹果的批准。加入了之后,开发人员们将会得到一个牌照,他们可以用这个牌照将他们编写的软件发布到苹果的 App Store。
iOS的开发语言是Objective-C、C和C++,加上其对开发人员和程序的认证,开发资源相对较少,所以其开发难度要大于Android。
(6) Windows Phone
简称 WP,是微软发布的一款手机操作系统,它将微软旗下的 Xbox Live 游戏、XboxMusic 音乐与独特的视频体验集成至手机中。Windows Phone 的开发技术有 C、C++、C#等。Windows Phone的基本控件来自控件Silverlight的.NET Framework类库,而.NET开发具备快捷、高效、低成本的特点。

3.8.4 大数据

大数据所涉及的技术很多,主要包括数据采集、数据存储、数据管理、数据分析与挖掘四个环节。
数据采集阶段主要使用的技术是数据抽取工具ETL
数据存储环节主要有结构化数据、非结构化数据和半结构化数据的存储与访问。结构化数据一般存放在关系数据库,通过数据查询语言(SQL)来访问;非结构化(如图片、视频、doc文件等)和半结构化数据一般通过分布式文件系统的NoSQL (Not Only SQL)进行存储,比较典型的NoSQL有Google的Bigtable、Amazon的Dynamo和Apache的Hbase。
大数据管理主要使用了分布式并行处理技术,比较常用的有MapReduce,编程人员借助MapReduce可以在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
数据分析与挖掘是根据业务需求对大数据进行关联、聚类、分类等钻取和分析,并利用图形、表格加以展示,与ETL一样,数据分析和挖掘是以前数据仓库的范畴,只是在大数据中得以更好的利用。
在这里插入图片描述
下面以最流行的开源大数据框架Hadoop为例,说明大数据的关键技术。

(1) HDFS(Hadoop分布式文件系统)

Hadoop分布式文件系统(HDFS,Hadoop Distributed File System)是适合运行在通用硬件上的分布式文件系统,是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

(2) HBase(分布式的、面向 列 的开源数据库)

HBase 是一个分布式的、面向列开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统”, HBase在Hadoop之上提供了类似于Bigtable的能力。利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的地方是HBase基于列的而不是基于行的模式。

(3) MapReduce(编程模型,大规模数据集(大于 1TB)的并行运算)

MapReduce 是一种编程模型,用于大规模数据集(大于 1TB)的并行运算。概念“Map(映射)”和"Reduce (归约)”,和它们的主要思想,都是从函数式编程语言里借来的。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上,从而实现对HDFS和HBase上的海量数据分析。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

(4) Chukwa(监控大型分布式系统的 数据收集 系统)

Chukwa是一个开源的用于监控大型分布式系统的数据收集系统。这是构建在Hadoop的HDFS和Map/Reduce框架之上的,继承了Hadoop的可伸缩性和鲁棒性。Chukwa还包含了一个强大而灵活的工具集,可用于展示、监控和分析已收集的数据。

Kafka(开源流处理平台)

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

Kafka 基本架构的组成
① 生产者(Producer):消息和数据生产者
② 消费者(Consumer):缓存代理,Kafka的核心功能
③ 代理(Broker):消息和数据消费者
Kafka给Producer和Consumer提供注册的接口,数据从Producer发送到Broker,Broker承担一个中间缓存和分发的作用,负责分发注册到系统中的Consumer

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值