基于SOA软件架构的应用与研究
2016-01-01楼丹
楼 丹
(浙江广厦建设职业技术学院,浙江 东阳 322100)
基于SOA软件架构的应用与研究
楼 丹
(浙江广厦建设职业技术学院,浙江 东阳 322100)
摘 要:SOA(Service Oriented Architecture,面向服务的软件体系架构)抛弃了传统的面向对象,以技术为中心的架构体系,转向面向服务的架构体系。SOA表示的是为某项特定的业务架构一套软件体系。文章围绕着SOA的架构,分析了目前SOA架构体系的状况,并阐述了一种基于SOA的企业级应用的软件架构体系。
关键词:面向服务架构SOA;企业级应用;应用研究
随着改革开放中国特色社会主义市场经济制度的完善,企业成为市场的主导力量,企业的发展催生了企业信息化方向的改革。越来越多的企业开始重视公司软件体系的架构。良好的软件架构体系能够有效地提高企业的运营效率,健全企业的管理制度,因此企业应该重视和信息系统的建设工作。随着市场化的推进,我国企业经营管理越来越复杂,传统的面向对象的软件架构体系造成软件之间的接口混乱,网络协议不清晰等等问题。当企业软件需要做出修改时,为了兼顾其他系统的软件和服务应用,修改周期就会加长,修改困难度也相当大。传统的面向对象的软件架构体系已经不能满足市场的需求,因此管理者顺应时代的需求,开始将企业的软件结构体系转变为面向服务的架构体系。SOA架构将单个程序细分成各种组件或者功能,这些组件作为搭建所有软件的基石去创建其他各种应用程序。基于SOA架构的软件架构体系具有灵活、易于扩展的优势,是企业面对复杂环境下的良好的信息化解决方案。但是SOA架构仅仅是理论模型,在实现过程中还要借助于具体技术才能实现。本文围绕着SOA架构,阐述了企业级应用架构方案和架构模型。
1 SOA架构的应用
1.1 企业SOA架构应用
SOA是Service Oriented Architecture的缩写,即面向服务的软件体架构体系。SOA根据软件系统的不同功能细分为行使不同功效的组件,各组件之间由接口相连,接口的定义具有一致性和可扩展性。各软件由组件创建而成,因此就确保了软件的可迁移性和通用性。同时SOA属于客户/服务模型,SOA应用包含客户端和服务端,并且将复杂的数据处理放在服务端进行处理,这样不仅增强了客服端的便携性和普及率。SOA采用客户/服务模型使得接口变得标准,同时各软件组件耦合性降低内聚性增加。但同时要认识到SOA仅仅是个概念模式,企业级应用的创建还是需要具体技术才能实现。这些技术包括Web Services、企业服务总线、XML以及涉及的标准接口技术和消息协议。
1.2 建立模型应用SOA
SOA通过建立标准的功用接口实现较低的软件组件耦合性,各软件迁移性大大增加。但是SOA架构体系不是平地起高楼,而是建立在现有的技术和模型上。SOA架构涉及的组成元素有服务(servicer)、客户(client)、服务接口(service description)、服务协议(service protocol)和传输协议(transport protocol)。服务(servicer)就是客户端请求服务器远程处理的一套业务。基于组件的并发性,服务器的状态只有停止和运行。服务器的并发性要求服务器同时可以响应多个客服端请求的服务。客户(client)就是服务的请求者,为了提高客户端的便携性和降低终端设备的费用,开发者将很多功能集成在服务器一段。服务接口(service description)就是各组件使用标准的接口来进行软件之间的通信。服务协议(service protocol)是指传递消息时必须根据协议要求对信息做进一步的处理之后才能被接收方处理。服务协议有简单对象访问协议、XML等。传输协议(transport protocol)用来进行数据链路层的消息传递,目前的传输协议有HTTP、SMTP等。
1.3 企业应用SOA技术的实现
SOA是一种概念模型,SOA的实现需要具体技术支撑,比如Web Services。Web Services借助于服务器云端服务,能够使软件并发执行,同时降低软件的耦合性提升软件的内聚性。Web Services借助于消息协议中的XML(extensible Markup Language)协议可以实现强大的可扩展性和可迁移性[1]。SOA技术的实现还需要借助于BPEL确定了Web Services的流程,BPEL确定了SOA应用组件执行的顺序和流程。避免了进程互锁现象或进程假死现象。BPEL首先让BPEL进程收到Web Services请求并及时进行回复,从而使BPEL中多个活动能及时的响应,顺畅的执行。BPEL“活动”就是BPEL被细分的执行步骤。同时由于BPEL基于XML语言编写,因此BPEL支持基元活动[5]。
1.4 Web Services实现SOA架构模型
Web Services成熟的一套协议和标准的接口技术是SOA架构从理论落到实处的重要保障。Web Services采用XML协议,而XML协议具有强大的描述能力,从而降低软件之间的耦合性,通过标准的接口技术,可以实现软件灵活的扩展[2]。
2 企业服务总线应用于SOA
总线就是信息传递的物理支撑,在SOA架构中,面向服务的架构需要的总线不再是计算机里简单的总线设计,而是要创建企业服务总线(Enterprise Service Bus,ESB)。企业服务总线提供了企业内部或者企业之间软件通信的功能。企业服务总线改变了传统的面向对象的软件架构体系。通过企业服务总线,SOA架构才能得以实现,总之企业服务总线明显了降低了企业软件架构的费用,同时企业级服务总线充分考虑了应用传递和处理消息速率不一致导致的服务器空载现象,方便了不同服务之间的信息交流。
企业服务总线的诞生是由于SOA架构采用了Web Services和XML之后顺其自然的必经选择。对企业而言,采用企业服务总线可以有效地整合系统信息,将具有明显差异的应用整合在SOA框架之下[3]。另外,企业服务总线有着强大的信息传递能力和实时通信监管能力,是企业级应用有效运行的重要保障。企业服务总线的出现消弭了不同应用之间的技术和硬件差异,通过通信间整合,做出最佳通信线路。同时企业服务总线上的管理总线能够实时监管总线数据传递,分配应用执行的优先级。通过采用企业服务总线,企业可以在不增加任何服务设备的情况下,就可以将信息整合在不同技术差异的大系统之下。企业服务总线因其强大的信息吞吐量和实时控制管理确保企业级应用良好的执行。
3 BPEL实现SOA灵活扩展
基于SOA构建的企业级应用不仅要求应用能通过标准接口进行通信,同时还要求企业级应用能够处理复杂的交互。BPEL(Web Services Business Process Execution Language)是专门定制的集成标准接口技术和协议。所有的标准接口和协议都被集成在BPEL中,这样,应用之间的通信更加高效和简易,应用处理复杂交互能力得到有效提升。BPEL是一个建立在XML基础之上的计算机语言。BPEL确定了Web Services执行的流程。使用BPEL可以有效减少组件为争夺同一有限资源而引起的服务器互锁现象。BPEL语言的实现要辅助与其他基础语言(C语言、C++等)的使用[4]。BPEL类似于C语言,在使用过程中,需要定义变量、编写函数、创建错误处理等。
4 构建BPEL流程
BPEL确定了Web Services的流程,首先是BPEL进程收到Web Services请求并及时做出响应。BPEL的各个流程是相互依赖,层层推进关系。如果中间某一流程响应缓慢就会造成其后的流程无法按时响应。BPEL流程不能独立运行,其运行需要借助于Web Services的调用。一个BPEL流程被细分为多步执行,每一步被称为“活动”。同时由于BPEL基于XML语言编写,因此BPEL支持不可在分割活动[5]。
5 结语
随着我国经济的发展,企业规模越来越大,企业管理和运营面对着更加复杂的局面,传统的面向对象和面向过程的软件架构体系逐渐不能胜任新时代企业的需求,因此开发者提出了基于SOA的软件架构模型。SOA架构仅仅是个理论模型,付诸实践还需要具体技术的支撑。SOA涉及的技术包括Web Services、企业服务总线、BPEL实现SOA灵活扩展。笔者希望更多的专业人士能投入到该课题研究中,针对文中存在的不足,提出指正建议,为提高企业级应用架构做出重要的共享。
[参考文献]
[1]高哲.基于SOA软件架构的研究与应用[D].武汉:武汉理工大学,2007.
[2]王伟.SOA软件架构及其在医疗信息系统中的应用研究[D].南京:南京邮电大学,2013.
[3]付颖.基于SOA架构的ERP软件在汽配行业的应用研究[D].长春:吉林大学,2011.
[4]庞娜.基于SOA双总线软件架构在大型企业中的应用[J].机械工程与自动化,2011(3):62-64.
[5]王守礼,名世京,邱瑞波.基于SOA技术的炮兵作战指挥信息系统应用软件架构[J].火力与指挥控制,2013(9):95-96,100.
The Application and Research of Software Architecture Based on SOA
Lou Dan
(ZheJiang Guangsha College of Applied Construction Technology,Dongyang 322100,China)
Abstract:Service (Oriented Architecture SOA,service oriented software architecture)abandoned the traditional object-oriented,techn ology centric architecture system,turning to service- oriented architecture. SOA represents a software architecture for a particular busine ss architecture. This paper revolves around the SOA architecture,analyzes the current status of the SOA architecture,and describes a SO A based enterprise application software architecture.
Key words:service oriented architecture SOA;enterprise application;application research
作者简介:楼丹(1980-),女,浙江永康,本科,讲师;研究方向:计算机科学与技术专业软件工程,数据处理。