SOA程序开发框架在软件工程中的应用策略

2018-03-22 11:44李燕梅
电子技术与软件工程 2018年3期
关键词:软件工程应用策略

摘 要 近几年来,信息化技术的发展极大推动了软件工程领域的发展,各种软件产品也纷纷被各个领域所引入,极大推动了各行各业的发展。在软件工程领域中,SOA是一种面向对象的开发模式,通过在软件开发中以SOA程序开发模式来构建面向服务的开发框架,能够使软件具备强大的操作功能、并且能够实现不同软件体系与架构的数据共享。鉴于此,本文通过对SOA的概念进行阐述,并对SOA程序开发框架的研究进展进行了明确,以此探讨SOA程序开发框架在软件工程中的相关应用策略。

【关键词】SOA程序 开发框架 软件工程 松耦合 应用策略

近些年来,软件工程领域实现了迅猛的发展,这也使软件的研发规模越来越大,软件的种类越来越多样化,并在教育领域、物流领域、电子商务领域等诸多领域中得到了非常广泛的应用。在过去的十几年里,软件工程领域先后经历了多个发展时期,并在各个时期中取得了卓越的成就,但却在软件开发模式中始终难以实现可复用模式与松耦合模式,这也使软件工程领域的软件产品研发周期较长,软件产品的适用能力较弱。经过诸多软件工程师对经验的总结,并历经多年的研究,以一种面向服务的SOA程序开发框架应运而生,SOA程序开发框架在软件工程中的应用极大程度的缩短了软件产品的研发周期,提高了软件成品的适用性,相比于传统的软件工程产品来说,采用SOA程序开发框架的软件产品无疑能够为人们提供更加优质的信息化服务。

1 SOA的概念

SOA属于一种面向服务架构而形成的组件,它能够为软件产品提供具备不同功能不同种类的应用服务,利用事先约定的协议与接口将这些应用服务进行集成,从而使系统能够在具备良好的中立性与可扩展性的基础上,实现操作系统、硬件服务平台、编程语言与接口的相互独立,进而实现对众多功能不同的应用软件进行兼容,它包含VisualSTudio、Eclipse及Qt等,并且能够支持C#语言、C++语言、Java语言及C语言,这些语言及软件能够通过通用的模式来实现消息的交互。SOA程序属于一种动态可扩展、松散耦合、优化复用的服务架构与体系,它具备结构化程序设计、过程调用的优势,并且能够对构建化改造、组件化与集成理念进行高度融入,人们还能够利用SOA来对软件进行持续改进与完善。SOA程序作为一种分布式、开放式的软件研发平台,它能够为用户提供强大的信息服务,从而使软件的适用性更强,使其在互联网应用环境中变得更加适用。SOA开发框架中,UDDI、WSDL、SOAP是其基础构件,UDDI能够使软件具备查找与服务注册功能,而WSDL能够对软件的服务内容进行描述,SOAP则能够在软件中充当传输层,进而实现软件自身的消息传输。在SOA程序开发框架中,SOAP属于Web服务中的一种默认机制,这也使众多其他技术能够通过服务的形式来进行集成与绑定。

2 SOA程序开发框架的研究进展

2.1 SOA程序开发框架理论模型的研究进展

SOA程序开发框架的理论模型主要包括参考模型、服务接口模型、面向服务的体系结构形式化描述模型。参考模型是为了实现不同系统的互联互通而建立的,利用参考模型能够为SOA的软件开发进行指导与规范,而这也正是SOA参考模型构建的核心意义。软件工程领域中对参考模型研究出了许多种类,以此来对面向服务的体系结构进行指导。在2006年,OASISI参考模型便是在SOA参考模型的基础上被提出的,它是SOA的一种标准化参考模型,它的目标是通过对SOA程序开发框架中最小的一组核心概念进行定义,来明确框架中各个组的关系,以此构建细致化的SOA共同语义,OASIS参考模型介乎于概念关联与概念定义之间,它能够为人们对SOA程序开发框架提供共同理解。服务模型也是理论模型中的一部分,服务模型的构建能够对接口进行准確的形式化描述,它是软件进行测试或验证的前提条件。有学者通过建立一种服务接口模型来对接口信息中的三个抽象层面进行描述,并给出了对三个层面接品的规范化建议与验证方法。在面向服务的SOA程序开发框架软件中,事务性是这类软件中的一项关键特点,这类软件的SOA程序开发框架的事务模型和以往的原子事务模型的区别很大,面向服务的事务模型自身不具备原子性与可回滚性,并且执行时间较长,而长事务模型的构建则又需要利用错误与补偿机制来进行处理,这也使学者从事物模型中关注到错误与补偿机制当中,有学者利用补偿通信顺序来建立错误与补偿机制,它能够通过补偿进程来对补偿行为进行描述,并能够描述中断处理、中断进程等错误处理行为,此外他还能够对独立子事务进行表示。不过,该机制却没有讨论分支进程在产生错误时的进程同步策略,而这对于事务服务模型的处理性能来说尤为重要。面向服务的结构形式化描述也是理论模型中的内容,有学者利用Z语言来对SOA程序开发框架的理论模型进行形式化描述,并对SOA服务组件及其匹配与组合进行了形式化定义,并对体系结构的可替换性进行了分析。还有学者提出一种轻量级的面向服务的形式化框架,该框架能够对SOA的重要组件进行捕获,并对SOA程序结构进行了分析,该形式化框架对于推动SOA程序的形式化验证与准确性具有非常明显的作用。

2.2 SOA程序开发框架服务源的研究进展

SOA程序开发框架服务源的研究目的是将复杂软件中的问题进行关注点与组件的分解,从而使问题能够被分解成相应的片段集合,并由每个片段对相应的关注点进行处理。有学者采用粗粒度来实现服务源的分解,不过,分解后的对象粒度太小,这就造成软件的灵活性与复用性较低。而通过将业务作为服务来利用粗料度进行表示,能够使软件的复用性显著增强,并且服务与服务之间是以松耦合关系呈现的,这就使其在需求变更时的变化成本降到最低。SOA程序开发框架的服务源的研究主要包括服务建模、服务设计、服务发现与服务组合。当前对服务建模的研究主要包括基于自定义语言进行服务行为建模、基于体系结构对语言的描述来进行服务建模、基于UML进行服务建模,并研究出较为理想的WSMO服务模型与OWL-S服务模型。服务设计的研究进展主要集中在大量遗留构件所产生的复用问题,并已经取得了一定的突破性进展,可以将当前所有非面向服务的构件进行扩展,使其成为服务组件,以此达到提高复用性的目的,研发成果主要有SDO规范、SCA规范与JBI规范。服务发现主要是指Web服务发现,当前在服务发现的研究进展成果主要包括基于服务质量的Qos服务匹配算法、基于Web服务发现形成的starWSDS原型系统等。服务组合的研究目前已经形成了许多效果良好的方法,主要包括基于规划的方法、基于流程的方法、基于形式化的方法、基于语义的方法、基于AOP的方法等诸多方法。

2.3 SOA程序开发框架的开发方法研究进展

目前,我国在SOA程序开发框架中的研究仍旧处理起步阶段,在开发方法上还尚未形成较为有效的方法。有学者通过对面向服务的特征及编程思想进行分析,并提出了相应的开发方法。还有学者提出了一种具备较高适应能力的开发方法,这种方法通过构建结构框架CAFISE,然后利用CAFISE将异构资源进行业务化与服务化,从而使软件结构能够更好的支持服务。这种开发方法通过对软件的相关影响要素及质量属性驱动要素进行分析,并侧重于适用性来进行的结构设计,并以结构作为基础来构建业务端编程。这些开发方法也为SOA程序开发框架在后续中的应用创造了良好的环境。

2.4 SOA程序开发框架的结合与交叉研究进展

SOA程序开发框架中业务是其核心所在,通过对SOA业务流程的开发及组合进行应用,能够实现在业务流程中通过服务组件的方式来进行服务与活动,这也使业务流程模型发生了巨大的改变。通过这种方式能够对业务流程进行建模,从而改善业务流程的灵活性与响应效率,而这也使BPM成为业务流程模型构建的重要组成部分。基于服务的设计能够对流程进行灵活的更改,并且能够将流程服务进行灵活而又快速的组合,从而使其能夠编排成规模更大的端至端流程。因此,BPM与SOA这两者之间的关系十分密切,能够通过相互结合的方式共同促进发展,这也使SOA与BPM结合后在软件工程中的应用研究越来越受到人们关注。SOA程序开发框架的交叉研究目前也已成为非常热门的研究热点,交叉研究主要集中在通过将Web技术的语义与SOA语义进行结合、将MDA技术与SOA程序进行结合来对模型驱动、将Agent技术与SOA程序开发框架进行结合。

3 SOA程序开发框架在软件工程中的应用策略

3.1 松耦合的应用

综上所述,人们对SOA程序开发框架的研究已经使软件工程领域的软件开发方面逐渐向着松耦合的境界进行发展,在传统的软件开发过程中,开发人员需要将软件进行三个核心部分的划分,即数据转换部分、网络连接部分与业务逻辑部门,通过将这三个部分的相关内容进行整合与集成,能够使系统的完整性较强。但这种传统的开发方法一旦发生变更,就会造成这三个核心部分的内容的变更量较大,进而造成变更成本大大超出计划,这也使以传统开发方法研发出来的软件的适用性较差,难以有效适应环境的变化。而通过SOA程序开发框架的应用,以面向对象的技术做为研发基础来构建软件开发方法,能够将软件中的所有逻辑组件进行分离,并利用消息中间件将软件中的所有组成部分采取异步通信操作来进行处理,从而极大程度的提高了软件的灵活性。采用消息代理能够对SOA程序开发框架中的服务业务进行封装,进而使软件框架中的三大核心部分实现完全解耦。

3.2 组件复用模式的应用

SOA程序开发架构是以服务为核心的,SOA程序开发架构中应用了组件复用模式,这也使其能够为不同类型、不同功能的软件提供强大支撑,组件复用模式的核心内容在于对组件对象进行高效化的管理,不过组件复用模式的组件是呈现分布式的,这也使其对计算环境较为依赖,因此组件支撑与运行技术大多为异构性,为了确保这些组件能够具备良好的复用性,SOA程序开发框架可以通过SDO、SCA、Webservice等诸多服务模式来对构建一个具备高层次的复用、互操作、解耦模型,进而实现对SOA程序开发架构的应用来对组件进行标准封装,完成对架构中各个服务组件的编提成、安装与重组,实现了对服务组件、程序语言及不同开发架构的复用,并能够对不同厂家所研发的软件开发工具进行兼容。

3.3 消息机制的应用

对于传统的组件来说,是通过CORBA、COM技术的应用来实现服务器商与客户端的对象调用的,但这种对象调用方法在开放性的网络环境中,需要对不同余元与平台数据进行分别定义,只有这样才能确保不同组件间实现对象的调用与信息的组合。

3.4 Web服务和SOA程序开发框架的结合应用

对于SOA程序开发框架的软件开发,应将Web服务结合到SOA程序开发框架当中去,通过这种结合能够使软件具备网络通信反馈、处理与封装功能,同时,利用SOA程序开发框架与Web服务进行结合,还能够使软件的功能更加强大和丰富,从而使软件能够兼具安全保障功能、脚 本交互功能、通信功能、描述功能、服务建模功能与描述功能,并通过先进方法及理念在服务编程、集成、建模等方面的应用,使软件的操作处理性能得到进一步的提升。

4 结语

SOA程序开发框架的界面模式并不是固定不变的,这也使其在进行交换时只是对数据进行交换,而并不涉及到逻辑业务信息。SOA程序服务框架自身所具备的远程调用功能能够对子程序及本地函数进行使用,而这也为程序员在进行软件开发时提供了全新的服务模式,由于SOA程序是利用的XML来进行数据的同步交换的,这也使软件的开发周期大大缩短。

参考文献

[1]何珍祥,董逸生.基于Web服务的SOA设计与传统软件设计方法的关系[J].计算机系统应用,2008(10):56-59+14.

[2]邢少敏,周伯生.SOA研究进展[J].计算机科学,2008(09):13-20.

[3]尹锋.软件工程的若干热点技术发展现状与展望[J].长沙大学学报,2006(05):45-49.

[4]李永红.SOA在软件工程开发中的应用[J].电子技术与软件工程,2017(07):52.

作者简介

李燕梅(1970-),女,白族,云南省大理市人。大学本科学历。副教授。研究方向为信息化管理。

作者单位

滇西科技师范学院信息工程学院 云南省临沧市 677000

猜你喜欢
软件工程应用策略
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
浅析微课视角下的初中物理教学研究
水平井钻井技术及其在石油开发中的应用探析
关于如何创新和完善计算机软件工程管理的探讨
小组活动在初中音乐课堂中的应用
试分析高中化学教学中概念图的应用策略