基于SOA的软件开发服务平台的设计
2014-07-25陈月
陈月
(河北省电子信息技术研究院,河北石家庄050071)
当前,计算机硬件高速发展,进入大规模流水线生产阶段,但相应的软件开发却苦于没有公共平台,还处于小作坊生产阶段,成为了掣肘计算机发展的一大难题。因为没有统一平台标准,软件开发成本日益增长,后期维护更加困难,开发进度难以掌握。为缓解这一矛盾,文章尝试用SOA(面向服务)架构对软件开发服务平台进行设计。
1、面向服务架构特点
面向服务架构能够对现有资源进行重新整合,具有高抽象性与高灵活性,对开发软件的企业或者软件需求客户的资源整合有着极大的优势。
1.1 技术开发方面特点
SOA架构为企业开发软件提供了一个更加灵活的解决方法,使软件规模生产、标准接口统一都的到革命性变革,其特点主要有:
(1)跨平台语言的重用性。SOA架构由一系列交互的服务组成,在开发软件时由搜索引擎调用相应服务即可,这样就屏蔽了不同平台、不同编程语言,不同操作系统间的差异,减少对具体细节的关注,松散软件开发者与系统间的耦合关系。
(2)良好的维护伸缩性。开发企业可以通过调整服务内部程序语言以调整服务的功能,也可以调整服务间的结构,先后顺序,来实现新的功能,在软件出现问题时可以针对具体服务模块调整内部程序,具有良好的可维护性。
(3)层次效率更加高效。SOA架构将开发软件企业技术人员分为几个层次,结构开发人员只注重将不同服务进行各种组合以实现各种功能,服务开发人员只注重开发满足特定功能的程序开发。而且服务开发工作重复率是很低的。
1.2 资源整合方面特点
SOA架构不需要重新开发各服务,对不同功能的系统只需调整不同的服务,开发一种新的结构即可,相对于以前开发一个系统节省了人力物力财力,更重的是节省了时间。
(1)服务架构商品化。面型服务架构软件开发平台不仅服务可以封装,其实现某种功能的结构也可构成一个组件,形成基础架构,这样的组件,架构集合可以作为一种商品化元素来加以考虑。
(2)速度快,成本低。SOA架构的核心资产就是服务构成的服务库,每面对一项新任务,新功能,开发者只需对现有结构进行创造性重用即可,从而大大缩短了软件的开发时间与成本。加快软件开发与上市速度。
2、软件开发服务平台的设计
2.1 平台的整体框架
区别于传统的企业架构,SOA架构中出现了一个新的构成—服务层,服务层有各种功能的服务组成。平台由三部分组成,自上而下分别是应用系统,服务引擎单元,异构数据连接中间件。其共性模块就是服务层,服务层实现相同的功能,可以在不同的平台数据库使用,但实现的功能都是一样的。
2.2 服务层
服务层是SOA架构的共性模块,可以处理跨语言、跨平台、跨操作系统的业务逻辑,服务引擎主要作用是对服务进行协调与管理。在搭建开发平台时,要遵守J2EE的相关技术和基于XML的Web服务标准。
(1)服务的种类和特征
服务的种类从SOA架构平台设计思想与用户需求方面考虑,可以根据粒度分为两级:
1)应用服务:指的是为完成功能实现调用的各个服务总称,应用服务专业性比较强,更能够吸引开发者,给客户带来乐趣。
2)基础服务:指的是在各个平台,网际间可以来回调用,利用率比较高,具有良好的兼容性,松耦合性。具有透明的搜索和查询功能。
(2)服务引擎的功能
1)管理服务:服务的管理中最重要的就是服务的接口定义与接口行为定义,只有标准化的接口定义才会有正常跨平台调用的服务模块,服务包括行为约束,质量描述,功能等一并封装在XML文件里。
2)准确定位功能的位置,管理功能模块,控制服务寻址。URL寻址和DNS基础架构可以提供这部分功能。
3)服务的调用派送:ServiceDispatcher.java类接口可以再平台中实现,开发者可以在引擎搜索服务后,根据服务的功能与描述信息来决定是否调用。
(3)服务引擎的设计与实现
根据引擎的功能需求,服务的派送引擎由SevriceDispatcher实现,服务的重用由DispatchContext实现,服务的定义由Set-viceDef⁃inition实现,服务的调用由Sen,iceEngine与JobSched-uler共同实现。
2.3 平台的其他中间件
实体引擎:完成服务的定义、维护、通用操作的开发工作,对现实中的功能描述进行建模。
消息引擎:该引擎属于异步集成,主要把J2EE应用程序与非J2EE环境集成在一起,属于松散耦合特点,建立在标准API的基础之上。
规则引擎:将服务的调用,重用规则编辑成册,封装在规则中,根据规则进行决策。
工作流引擎:工作流就是软件开发过程中的计算机实现过程,主要有功能过程名称的定义、功能的执行,接口实现,过程监控管理与日志记录等功能。
异构数据库连接中间件:为方便不同数据库间的访问读取数据,设计中间件利用数据类型知识库提供接口,完成不同数据库的统一操作。
相关功能服务:其他与软件功能有关,但不是自开发的服务组件和中间件也可以纳入系统架构中来。
3、结语
基于SOA架构的开发公共软件平台可以为企业开发软件提供基础服务,其作为一种全新体系架构,具有标准接口与松耦合特点,有着重要的理论价值,随着平台不断完善,在不久必将会成规模发展开来,实现更大价值。
[1]互联网标准开放实验.SOA标准体系[R].北京:中国电子技术标准化研究所,2008
[2]中国电子技术标准化研究所.SOA用户指南[M].北京:电子工业出版社,2008:6-7
[3]毛新生.SOA:原理*方法*实践.北京:电子工业出版社,2007:56-62
[4]蒋哲远,韩江洪,王钊.面向Web服务的ERP协同集成框架研究[J].计算机工程与应用,2005,41(16):24-28
[5]Andy Zeneski,jaz@ofbiz.org.The Open For Business Project Service Engine Guide[EB/OL].http://incubator.Apache.org/ofbiz/docs/services.html,2007