标题 | 基于Spring框架的SOA系统架构的实现 |
范文 | [摘 要]本文对Spring框架和SOA系统架构原理进行简要的阐述,将Spring框架技术应用到SOA系统架构中,并用一个简单具体的案例阐述了其实现过程。在SOA项目开发实践中应用该框架,将极大地降低程序的复杂度,易于程序员的维护,并具有很强的扩展性。 [关键词]Spring; SOA;系统架构 doi:10.3969/j.issn.1673-0194.2009.12.028 [中图分类号]F270.7;TP393.02[文献标识码]A[文章编号]1673-0194(2009)12-0082-02 1 引 言 SOA是一种IT体系结构样式,可以认为它是系统架构的一种方法、一种思想,不是具体的软件产品技术,具体思想是支持将您的业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务,这个网络可能完全包含在您的公司总部内,也可能分散于各地且采用不同的技术,通过对来自不同地点的服务进行“整合”,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。目前关于SOA系统架构的讨论层出不穷,很多学者也发表了大量的文章,至今尚还停留在理论模型探讨上,但如何具体实现SOA的架构却显得相对滞后,这就给SOA的实施和应用带来了困难。Spring框架技术的问世很好地解决了这一问题,笔者进行了深入细致的研究,将Spring框架技术应用到SOA系统架构中,以实现SOA系统的具体实施和应用。 2 Spring框架技术简介 Spring是一个开源项目,是为简化企业级系统开发而诞生的轻量级解决方案,并和SOA系统架构思想具有非常相似的原理;在此基础上,还提供了包括声明式事务处理、RMI和Web Services远程访问业务逻辑,以及可以多种方法进行持久化数据库的解决方案。 Spring可以看作是一个标准的开发框架,将服务组件定义在自己的工厂里,根据需要实时生产,供需求者动态获取和访问,充分实现了不同层次组件间的松散耦合。使用的核心文件是applicationContext.xml,核心技术是控制反转(Inversion of Control,IoC)技术以及面向方面编程(Aspect-Oriented Programming,AOP)技术。 3 SOA系统架构原理 SOA的基本体系架构主要包含服务提供者、服务注册中心、服务消费者和服务契约,如图1所示。 服务提供者(Service Provider):服务提供者是一个可通过网络寻址的实体,它接受和执行来自消费者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。 服务注册中心(Register):服务注册中心是一个包含可用服务的网络可寻址的目录,它是接收并存储服务契约的实体,供服务消费者定位服务之用。 服务消费者(Service Consumer):服务消费者向服务注册中心提交服务请求,服务注册中心接受到请求,并向其提供服务。 服务契约(Contract):服务契约是服务消费者和服务提供者间通过服务注册中心进行交互方式的规范,指明了服务的定义、请求和响应的技术要求。 4 Spring技术在SOA系统架构中的应用 根据SOA系统架构原理,将Spring框架技术应用其中,则得到如图2所示的实现模型。 其中,applicationContext.xml文件是Spring框架的核心文件,它负责对外部Service组件进行注册,相当于服务组件工厂,该工厂负责生产各种服务产品,然后通过IoC和AOP技术规范提供客户端的应用请求访问,实现了服务消费者和服务提供者之间的松散耦合,并为SOA系统提供了良好的可扩展性,若系统有扩充的需求,只要将服务组件注册到applicationContext.xml文件中即可。 为了清楚地说明问题,使问题简单化,下面以Man类作为服务组件为案例来说明如何使用Spring框架来实现构建SOA系统,以下代码在JDK 6.0+Eclipse 3.2+MyEclipse 5.5中运行通过。 //Man类 public classMan { privateString Message; publicString getMessage() { return Message; } public voidsetMessage(String message) { Message= message; } //定义sayHello()来打招呼 publicString sayHello(){ return "Hello,"+getMessage(); } } applicationContext.xml文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- 将Man组件注册到Spring容器中,并标识为man,同时使用IoC技术将值注入message属性--> <bean id="man"> <property name="message"> <value>你好!</value> </property> </bean> </beans> 客户端应用请求程序Test,代码如下: import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public classTest { public static voidmain(String[]args) { //获取applicationContext.xml工厂文件实例 ApplicationContext ctx= newClassPathXmlApplicationContext("applicationContext.xml"); //从工厂中获取标识为man服务组件 Man man=(Man)ctx.getBean("man"); //调用该服务组件中的sayHello()方法 System.out.println(man.sayHello()); } 执行Test应用程序,运行结果为“Hello,你好!”。 5 结束语 Spring框架是目前国内外众多软件企业使用的主流技术,也是J2EE轻量级框架的重要组成部分,SOA是目前企业系统架构中的热点问题,在SOA项目开发实践中应用该框架,将极大地降低程序的复杂度,易于程序员的维护,并具有很强的扩展性。SOA和Spring的结合一定将具有美好的前景。 主要参考文献 [1] 张道海.基于SOA的企业系统架构研究[J] .中国管理信息化,2008,11(24):66-67. [2] 佘名高,贾秀峰,林坤江.基于Web服务的企业应用集成[J] .计算机技术与发展,2007,17(5):55-58. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。