posondlq / 系统架构 / 基于Spring框架的SOA系统架构的实现原理

0 0

   

基于Spring框架的SOA系统架构的实现原理

2011-07-27  posondlq
基于Spring框架的SOA系统架构的实现原理 

      [关键字: 基于Spring框架的SOA系统架构的实现]

[摘 要]本文对Spring框架和SOA系统架构原理进行简要的阐述,将Spring框架技术应用到SOA系统架构中,并用一个简单具体的案例阐述了其实现过程。在SOA项目开发实践中应用该框架,将极大地降低程序的复杂度,易于程序员的维护,并具有很强的扩展性。
[关键词]Spring; SOA;系统架构

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中运行通过。
Java代码

01.//Man类
02.  public classMan {
03.  privateString Message;
04.  
05.        publicString getMessage() {
06.  return Message;
07.  }
08.  public voidsetMessage(String message) {
09.  Message= message;
10.  }
11.  //定义sayHello()来打招呼
12.  publicString sayHello(){
13.  return "Hello,"+getMessage();
14.  }
15.  }


applicationContext.xml文件配置如下:


客户端应用请求程序Test,代码如下:
Java代码
01.import org.springframework.context.ApplicationContext;
02.  import org.springframework.context.support.ClassPathXmlApplicationContext;
03.  public classTest {
04.  public static voidmain(String[]args) {
05.  //获取applicationContext.xml工厂文件实例
06.  ApplicationContext ctx=
07.  newClassPathXmlApplicationContext("applicationContext.xml");
08.  //从工厂中获取标识为man服务组件
09.  Man man=(Man)ctx.getBean("man");
10.  //调用该服务组件中的sayHello()方法
11.  System.out.println(man.sayHello());
12.  }


执行Test应用程序,运行结果为“Hello,你好!”。

5 结束语

Spring框架是目前国内外众多软件企业使用的主流技术,也是J2EE轻量级框架的重要组成部分,SOA是目前企业系统架构中的热点问题, 在SOA项目开发实践中应用该框架,将极大地降低程序的复杂度,易于程序员的维护,并具有很强的扩展性。SOA和Spring的结合一定将具有美好的前 景。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多