SOA架构

news/2024/12/30 23:55:44/

SOA架构

  SOA是一种粗粒度、松耦合的服务结构,是服务的集合,服务是最核心的抽象手段,业务被划分(组件化)为一系列粗粒度的业务服务和业务流程。服务通过基于标准、精确定义的接口通信,通信可能涉及简单数据传递、两个或更多的在一个活动中协作的服务。由此,SOA是一个其所有功能均被定义成精确定义的、可调用的、独立的服务,且能被有序编排、构建业务流程的应用架构。

  SOA通过应用组件和传输协议的松散耦合,服务的即时绑定,从而实现业务组件的虚拟化,造就一个虚拟的集成架构或者集成平台服务总线,这样使得服务集成不受任何限制,可以同时集成.NET组件和J2EE组件,以及集成其他遗留系统的各种应用,同时也可以随时更换这些服务组件。最终达到敏捷的、不受限制的服务集成目标,从而使IT能够随着业务需求的变化而自由调整,达到所谓的“随需而变”的最高境界。

  SOA是目前EAI领域最先进的体系结构,并得到了IBM、BEA等众多IT厂商的支持,并推出自己的解决方案和相关产品,已日益成为行业应用集成标准。SOA很适合于应用在像数字化校园这种分布式、松耦合、异构平台的场合,它可以彻底解决“信息孤岛”问题。并且充分利用已有的软件资源。所以,采用SOA框架信息化企业或构建数字校园是实现信息资源整合的最佳选择。

  2 SOA相关技术

  实现SOA架构的常用技术有Web Services,JMS和BPEL等。

  (1)ESB技术。企业服务总线(Enterprise ServiceBus,ESB)是构建基于SOA解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持SOA的一组基础架构功能。它是一种为进行连接服务提供的标准化的通信基础结构。基于开放的标准,为应用提供了一个可靠的、可度量的和高度安全的环境,并可帮助企业对业务流程进行设计和模拟。对每个业务流程实施控制和跟踪、分析并改进流程和性能。目前各大IT公司都推出了基于自己的平台工具的ESB产品,如IBM的WebSphere ESB、BEA的AqusLogic Service Bus等。除此之外,也出现了众多的开源ESB产品,如Mule、ServiceMix和Apache Synapse等。

  (2)web Services技术。Web Services主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。该接口隐藏了服务实现的细节,允许通过独立于服务实现、独立于硬件或软件平台、独立于编写服务所使用的编程语言的方式使用该服务。Web Services可以通过HTTP、SOAP(XML)、SMTP等协议的组合被访问,利用标准网络协议和XML数据进行通信,具有良好的普适性和灵活性,这使得基于web Services的应用程序具备松散耦合、面向组件和跨技术实现的特点例5。Web Services技术的主要目标是在各种异构平台的基础之上构建一个同样的、与平台与语言无关的技术层,各种应用都可以靠这个技术层来实施彼此的连接和集成。

  (3)JMS技术。Java消息服务(Java Message Ser.vice,JMS)是访问企业消息系统的标准API,是Sun公司提出的Java消息服务规范,是用于访问消息系统的不依赖于某个具体厂商的API,它提供给应用程序创建、发送、接受和渎取消息的接口,具体实现可以不同。JMS技术采用异步通信模式,发送消息者将需要变更的数据消息提交到消息平台后,就完成了自己的任务,就可以进行其他的操作。不需要等待服务器端的消息处理结果。这时即使网络出现故障甚至服务器崩溃也不会造成数据的丢失或不一致,消息会保存在消息队列中直到被最终接收。

  3 基于SOA的服务集成

  基于SOA的实现主要是在全局统一的服务接口规划后,充分利用服务接口设计原则,在SOA的理论架构的辅导下实现服务接口的开发工作。

  3.1基于Web Services和ESB的实现

  对于新建的web应用系统与可以改造的Web应用系统可以通过web服务的方式提供web Services接口,并注册到企业服务总线上(ESB),然后由ESB发布服务接口,为服务请求者提供服务,从而实现数据和信息的共享与交互。

  Web Services描述了一组可以在网络上通过标准化的XML消息传递访问的操作。它使用基于XML语言的协i义来描述要执行的操作或者要与另一个web服务交换的数据。Web Services在遵守由一个协议集组成的特殊的技术格式下进行对象组件之间的远程互连交互,包括数据怎么表示,数据怎么传输,Web服务怎么描述,信息怎样获取。在web服务中,四个方面组成了整个Web服务架构:XML是数据的格式,SOAP是调用web Services的协议,WSDL是描述Web服务的格式,对各种语言实现的服务进行定义,把服务操作和消息以一种抽象的方式进行描述,然后将具体的网络协议和消息格式绑定来定义一个服务访问点,相关的服务实现者将与这个抽象的服务访问点联系起来。UDDI是web服务登记、查找和利用的组合。

  Web Services除了标准化、界面与实现分离、实现中立的优势外,它的一个重要用途就体现在Web Services能很好地解决各个旧有系统之间存在的信息孤岛的问题,基于Web Services的中间件的集成将改变目前的开发模式和应用部署的费用规模,加速电子商务的进程。

  利用Web Services技术实现信息服务接口技术。首先,利用先进的集成开发环境(IDE),从现有代码(如Java)中创建Web服务。并调用向导来生成WSDL文件,发布到ESB总线上提供给其它应用Web服务调用,或者开发人员将首先使用WSDL和XML模式(XML Schenaa,XSD)构造定义Web服务接口,然后为服务生成框架实现代码。接下来,开发人员将完成框架服务部署到ESB总线上。

  先要将Web Services部署到ESB服务器上,确保Web Services可以正常运行。Web senrices正确配置并正常运行之后,再对这些web Services进行测试。测试通过后,就可以发布给其它Web系统调用。

  在华南师范大学数字校园中就是利用此技术实现人事管理系统、一卡通系统等系统之间的服务通讯。

  3.2基于SCA的实现

  SCA定义了一个“简单”的面向服务的架构模型,它进一步分离了技术与业务。使得开发人员可以集中精力编写业务逻辑,而不必将大量的时间花费在更为底层的技术实现上,并以此创建、组装、发布服务,很好地解决了服务连接的问题[8j。SCA通过声明的方式实现服务策略来达到服务质量(Qos)的要求,包括:可靠性、安全、事务等。此外,SCA编程模型是高度可扩展并且是与语言无关的,支持新的接口类型、实现类型和绑定类型。

  一个ScA系统通常都是由若干个模块组成,模块之间进行信息交互以获得自己所需要的数据,最后通过整合形成一个大的应用。在SCA里面,模块所提供的功能都被抽象成服务对外发布,被其他模块或外面的系统调用。宏观上看,一个由若干个组件构成的分布式应用模型如图2所示。其中,每一个组件都有一定的业务功能,或者对外提供服务,或者调用外部组件的服务。这些组件通过“连线”(wire)或者绑定(Bind—ing)也即在模块配置文件中描述关联进行连接。组件被部署到具体的运行时里面,这些运行时可以属于一个域,也可以分属不同的域。至于组件的提供的接口可以是web Services,JMS,BPEL等,开发者自行选择所擅长的语言和开发平台进行开发。

  基于SOA去实现SOA,第一步是要建模应用的结构。确定需要哪些业务功能并用sCA的组件和服务进行描述,接着确定组件间的依赖关系,给每个组件提供合适的SCA引用。对于需要从外部读取数据以配置组件行为的组件,则引入SCA属性对其进行描述。模块内部的引用和服务通过“连线”来描述它们间的关系,模块层次的引用和服务则用绑定来描述。

  第二步是实现组件的业务功能。业务功能的实现可以是一个全新开发的实现。也可以只是简单包装已有的应用逻辑来实现。SCA支持多种形式的实现,开发者可以根据喜好进行选择。

  对于对QoS有要求的组件,则需要在组件部署文件中使用安全策略加以描述。

  3.3BPEL与SCA.SDO组合的实现方式

  SOA架构需要一种基于开放的,与后端数据源无关的,能够清晰表达业务数据的数据模型。SDO很好地解决了这一问题。它基于中立的XML Schema,定义了统一的方法来访问和操作来自异构数据源的数据。系统可以采用离线的方式对其进行访问和更新。SDO把业务数据封装为数据对象,使得业务数据能够以统一的方式在系统组件之间传递。而SCA标准则解决了服务的封装和调用问题,它实现了服务的组件化,每一个服务都被封装为服务组件,组件之间以松耦合的方式调用。

  BPEL和SDO均支持可操作XML定义的元素或数据类型变量,因此可以直接将SDO定义作为BPEL流程的变量进行操作。同时,BPEL以Web服务为服务的包装标准,其服务提供和服务调用均由WSDL文件来描述。BPEL可以直接引入SCA组件的WSDL描述而对SCA组件进行调用。另外SCA组件支持BPEL流程实现方式,使得BPEL流程能够像其他ScA组件一样对外提供服务。图3描述了BPEL与SDO和SCA相结合提供流程服务的情形。

  四个SCA组件均对外暴露接口及引用。其中SCA组件A提供了BPEL的流程实现,将对SC.A组件B,C,D按照一定的顺序进行调用。这时,SCA组件A暴露的接口将是BPEL流程的入口所定义的接口,而它暴露的引用恰恰是BPEL进行服务调用时的伙伴链接所引用的接口。由于BPEL和SCA的接口描述都基于WSDL标准,因此它们可以直接被SCA组件暴露。图中的实线表示,只要通过配置文件的属性设置,就可以将合适的SCA组件与BPEL流程所在的组件进行“连线”。BPEL和SCA的结合,使得BPEL的服务调用具有很好的“插拔”性。只要SCA组件的接口和BPEL所暴露出的引用相匹配,就可以随意替换SCA组件,这样既做到了流程逻辑的可重用,又获得了被调用服务的可重用。

  由于BPEL支持将XML Schema定义的数据类型直接定义为流程变量,因此BPEL和业务对象可以共享相同的SDO定义。虚线表示了业务对象在BPEL流程中使用的情形。BPEL流程服务调用SCA组件A将业务对象BO1传入,业务对象BO1被BPEL流程接收,并启动新的BPEL流程实例。BPEL流程根据所调用的SCA接口定义,生成1302,t303和B04,并用它们分别传递给SCA组件B,C和D,从而实现这些SCA组件按照预定的次序执行。可以看到业务对象在SCA中以及BPEI。流程中始终采用一致的定义模型,并不需要进行任何转换。

  因此,BPEL与SDO的很好结合使得BPEL在数据层面上融入了SOA,而BPEL与SCA的很好结合使得BPEL在服务层面上融入了SOA体系结构。

  4 结束语

  企业信息化过程中存在着多个相互“孤立”的系统,这些系统之间无法交互,信息一致性无法导致。为了保护既有系统同时满足未来发展的要求,SOA架构应运而生,它通过将应用功能定义为服务,通过服务调用的方式解决了信息交互的问题。分析了构建SOA架构的实现技术,提出了三种实现服务集成的技术。其中,基于BPEL与SCA,SDO组合的实现方式是目前研究的热点,也是未来SOA架构实现的发展方向。


http://www.ppmy.cn/news/620645.html

相关文章

亚马逊云科技与埃森哲持续联动,为客户提供更加数字化的服务

以“自由构建、探索无限”为主题的2022亚马逊云科技中国峰会于近日落下帷幕。亚马逊云科技合作多年的伙伴埃森哲,在本次盛会重磅亮相,为与会嘉宾带来精彩内容,与伙伴共同探路云端。云时代,独行探路的一腔孤勇和众行并进的携手合作…

SOA简介

为什么需要实现服务化架构:随着用户规模逐渐庞大,需求更加复杂,我们一定会对藕合在一个Web 容器中 的业务系统进行垂直化改造,以业务功能为维度拆分出多个子系统,这样做就是为了能够更清晰地规划和体现出每个子系统的职…

野三坡苟各庄晨雾(图)

苟各庄是野三坡境内具有完善旅游产业链条的民俗村之一,这个民俗村已脱离了原始的民俗,是一处具有徽派装饰风格,现代化的经营理念的住宿集中地。苟各庄村距离百里峡售票处1000多米,步行只需要大约10分钟左右即可到达。这里有风景如…

数商云:机械设备行业供应链数字化解决方案

行业机会 ●●● ▣ 1、加大逆周期调节力度,专项债下放速度加快 ▣ 2、 市场容量比预期大,机械设备销量保持长期的小幅稳定增长 ▣ 3、二手设备加快更新,“一带一路”建设等拉动机械设备行业增长 ▣ 4、国际环境和经济下行压力,机…

麒麟合盛(APUS)李涛:APUS云重新定义“云联邦”

北京2018年7月18日电 /美通社/ -- 信息化革命带来的社会结构变革和生产力发展超乎人们想象。 在谈及麒麟合盛(以下简称“APUS”)在未来云计算的布局时,APUS创始人兼CEO李涛引用美国未来主义学者尼葛洛庞帝提出的“数字化生存(Bein…

如何看待华与华、蓝杉互动、欧赛斯三家品牌公司?

做品牌服务的这几年里,周边很多朋友都会问一些“选谁家好”、“公司排名”等问题。作为行业内的佼佼者,华与华、蓝杉互动和欧赛斯,被提及的次数也比较多。今天,以营销人的身份,来全方位阐述下这三家品牌公司&#xff0…

SOAR+EDR,打造更智能、高效的安全运营中心

一、背景介绍 近年来,随着互联网行业的高速发展,企业的业务安全也越来越依赖网络安全能力建设,同时,随着企业业务的日益增长,所要面临的安全问题也越来越多,传统的安全能力在面对日益增长的安全问题时显得…

华为技术有限公司-上海交通大学联合研究院成立!

转载于 软科 7月21日,华为技术有限公司-上海交通大学联合研究院成立暨战略协同研讨会在上海交通大学闵行校区举行。华为技术有限公司董事、战略研究院院长徐文伟,上海研究所所长董庆阳,全球技术合作副总裁艾超及有关部门负责人,上…