务提供者和服务代理之间的操作。
(2)查找:由服务请求者执行来查找符合特定需求或技术特征的服务,是服务请求者和服务代理之间的操作。
(3)绑定:由服务请求者执行来调用服务提供者提供的服务,是服务请求者和服务提供者之间的操作。
3.Web Service的核心组件
Web Service技术包含一系列的协议和组件,其结构如下图所示:
应用服务注册、查找服务描述消息传输通道Internet……UDDIWSDLSOAPHTTP、FTPIPv4、IPv6管理质量安全图1.4 Web Service协议和组件结构
(1)服务注册、查找:通过UDDI规范提供用于描述某项服务的商业结构,包括业务、服务和技术规范三个部分。
(2)服务描述:描述服务提供的功能和调用方法信息,通过WSDL规范提供。 (3)服务调用:使用SOAP协议在服务提供者和服务请求者之间传递SOAP消息来调用Web服务,SOAP定义了请求和响应消息的格式,SOAP建立在XML之上,定义了一种跨系统平台的信息交换的简单包装方法。绑定于HTTP之上的SOAP协议,可以跨语言、跨操作系统进行远程过程调用(RPC),实现了编程语言和系统平台的无关性。
(4)消息编码:SOAP用XML将消息编码,XML提供了跨平台的数据库编码和组织方法。
(5)传输网络层(传输通道):采用了Web上广泛使用的HTTP协议传输消息,适应Internet环境,能顺利通过代理和防火墙(理论上可以采用其它协议,如SMTP、FTP)。
4.应用集成过程描述
Web Service通过SOAP进行调用的过程有两种方式:SOAP RPC(同步)和SOAP Message(异步)。这里主要就SOAP RPC 调用来说明利用Web Service进行应用集成过程,如下图所示。
图1.5 Web Service进行应用集成过程
(1)对原有应用服务按照Web Service的标准打包成一系列的服务接口,比如原有一个处理页面(处理函数、组件),按照标准将这些组件打包,提供一系列的应用接口,将其部署在Web Service服务器上。
(2)这些打包后的组件接口按照wsdl格式编写配置文件。 (3)将这系列的服务接口进行发布。
(4)编写客户端应用程序,这些应用程序将通过SOAP RPC使用已打包的那些接口,实现对原有应用的使用。
5.集成后应用的调用过程
(1)客户端应用如浏览器通过HTTP按照SOAP消息格式将请求发送出去。 (2)UDDI注册中心通过对请求消息格式进行分析,发现服务接口的目标地址。
(3)将目标服务和客户请求绑定到一起,并对服务进行访问,接受访问反馈结果。
(4)客户端通过接受的结果进行展现。
在通过WEB SERVICE对应用进行集成后能够充分利用已有应用资源,同时减少集成的工作量和工作难度。
6.集成实现
成都市成都旅游散客综合服务市场信息平台涉及各类业务系统,应用集成是将原有系统的对外服务部分通过Web Service技术集成到一个统一平台上,在这个集成过程中,在原有系统的业务实现基础上,提供一系列的外部服务接口,将这些接口统一部署到Web Service服务器上,然后在统一平台中通过Web Service
访问机制实现对原有业务系统的访问,并将访问结果以统一的方式展现,实现应用集成和统一门户。
其中,UDDI主要实现对服务的注册以及解析查找客户请求的服务,并将服务与客户请求进行绑定,实现对原有应用的访问,重用已有系统的业务功能。
各业务系统的业务功能包括WEB方式的处理页面、业务处理组件,利用Web Service技术能够屏蔽原有各业务系统平台以及原有系统的编程语言的差异,以统一的方式进行应用集成。
SOA 架构采用了“自内而外”的实施方法,以业务需求为出发点,封装业务需求后发布标准的业务服务,再由业务流程管理平台自由组合这些业务服务,最后提供给信息使用者。同时,这个“自内而外”的过程也是一个迭代的过程,通过一次次的开放和组合这些业务服务,维持这个“活”的生态的 IT 系统,促进 IT 资源与不断变化的业务需求紧密结合。
SOA架构优势有以下几点:
(1)每个主要平台的可操作性和可实施性很强
从信息共享平台到流程整合平台和服务、数据管理发布平台,每个平台都是基于成熟的解决方案,历经了多年的实践开发和客户应用验证,不是一个虚无的、浮空的架构。
(2)更有成本效益的应用程序开发
基于 Web Service 标准的服务设计,使企业 IT 创建可重复使用服务存储库。当出现新的业务需求时,这些服务可以捆绑、合并到更高级的服务和复合应用中。这降低了解决方案开发和测试的成本,减少了冗余,加快了实现业务价值的时间。
(3)更容易管理、更安全的应用框架
提供了一个易于管理的、安全的基础结构。通过对流程组合进行跟踪和控制,有效管理业务需求的变化;通过对接口版本的管理和审计,有效控制接口的使用;通过对 Web 服务而非应用程序本身的调用,在保护现有 IT 投资的同时,不会限制新功能的部署;通过强大的验证和授权模型,作用于所有服务,提供总体安全性。
4.2.4多层服务模型设计
N层结构其实是对传统Client/Server 结构的扩展,它以构建模块化应用程序为基础,对一个应用程序进行分割以后,可将代码划分为不同的逻辑组件,这些逻辑组件分为三种逻辑层:用户服务、业务服务和数据服务,它们共同组成一个应用程序。我们把这种设计模型称为“服务模型”。
三种服务的属性如下:
(1)优化服务
提供信息和功能、浏览定位,保证用户界面一致性和完整性。 (2)业务服务
共享的业务政策,从数据中生成业务信息,保证业务一致性。 (3)数据服务
数据的定义、永久数据的存储和检索,保证数据的一致性。
使用服务模型,可以把应用程序的需求分解成明确定义的服务,并进一步创建可重用的构件来实现它们。构件遵守公开的接口标准,所以是通用的、可共享的和可以灵活部署的。
这种基于构件的多层结构的优点可概括为以下四个方面: (1)可重用
许多应用程序可共享和重用封装在构件中的功能。 (2)灵活
从桌面计算环境到功能更强的网络服务器,随处都可分配工作,这有利于协调性能和网络带宽。
(3)可管理
将大型复杂的工程细分为简单、安全的构件工程。 (4)易维护
将业务逻辑部署在中央服务器上,而不是分散在用户桌面上,这有助于处理各种变化,并缩短解决方案的往返时间。
4.2.5企业应用集成技术
企业应用集成(Enterprise Application Integration, EAI)是一门新兴的技术,应用于应用系统之间的互操作。异构的应用系统由于语义、平台等方面的差异造成了彼此的间隔,使业务信息处于不一致的冗余状态,并中断了业务流程的自动化。EAI通过实现异构应用系统之间的无缝集成消弭信息孤岛,保护已有的IT投资,以最小的代价实现机构内部以及机构之间数据和业务流程的共享,并最终构建虚拟的企业网络。
EAI提供了应用系统互操作所需要的基础结构。考虑到应用系统的现状以及互操作的需要,EAI必须至少具有如下特性,即开放性、集成性、健壮性、伸缩性和安全性。
1.开放性
开放性是指EAI的体系结构以及相关的规范都是公开的,以便第三方在其基础之上的继续开发。这种开放性的体系结构和规范允许开发者选择最适合自己需要的解决方案、平台、工具进行系统开发。在企业应用系统这种典型的异构环境
下,开放性能够保证应用系统之间集成的顺利进行。
2.集成性
集成性是EAI的本质特性。作为应用系统之间的粘合剂, EAI提供了一系列机制用于保障应用系统互操作的顺利进行。EAI技术支持3种不同级别的集成度,即数据级、应用级和流程级。
3.健壮性
EAI的健壮性是指集成后的应用系统抵御故障、正常工作的能力。 4.伸缩性
伸缩性是应用集成不可避免的问题。在EAI发展的早期阶段,由于系统的规模普遍较小,参与集成的应用系统数目不大,集成者们往往只需要关心应用系统互操作的实现,伸缩性并没有被考虑在EAI的体系结构内。当业务规模持续扩大,应用系统互操作的需求日益增强时,原有的EAI体系结构由于缺乏必要的伸缩性而无法容纳更多的应用系统,无法承受更重的负载,从而迫使人们重新设计新的结构以满足日益增长的需求。一个良好的EAI平台应该能够适应集成规模的变化。
5.安全性
EAI的主要目标是保证机构内部以及企业之间多个应用系统互操作的顺利进行。由于涉及到的应用系统都与机构的业务相关,并且互操作的过程必须通过Internet/Intranet实现,因此,如何保证应用系统之间的信息流在网络上安全正确地传输就成了EAI所要解决的重要问题。为此, EAI必须提供一系列的安全措施,保证应用系统之间的信息流免受来自外部的恶意攻击。
4.2.6轻量级目录访问协议
本系统采用轻量级目录访问协议(LDAP服务器)存储用户信息,并单独部署一台服务器,基于该服务器实现单点登录的用户身份认证、访问控制等。
LDAP是基于Windows的用户账号、客户、服务器和应用程序进行管理的唯一点,建立中心授权机构实现统一角色和统一审计的功能,验证用户身份并控制其对网络资源的访问。
本项目采用Windows自带的AD(一种标准的LDAP实现)作为LDAP服务器的实现版本。
AD通过使用基于Windows的应用程序和与Windows相兼容的设备对非Windows系统进行集成,从而实现巩固目录服务并简化对整个网络操作系统的管理。平台将利用AD的这一特性,将全部网络应用系统安全地扩展到Internet上。
在本方案中,我们将利用数据库服务器实现对于整个系统的AD活动目录管