论坛首页 Java企业应用论坛

Spring实现SOA的一种思路讨论!

浏览 7509 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-24  
SOA

     目前关于SOA讨论的是如火如荼,我做的项目是销售系统,包括总部和地区公司,涉及数据集成和调用,SOA比较适合。可是考虑到厂商提供的产品价格以及学习过程,我们还是希望用到开源的产品,降低成本。但是现在好像没有开源的产品。
     就个人对SOA的粗浅理解,对SOA的实现提出了一种实现方式,请高手们指点:)
     项目目前采用Spring+Hibernate架构,这个时候,Spring对外以service形式提供服务,service可能是一套单独的业务逻辑,也可能是工作流中的一个节点。这个时候我把service方法写为标准方法(参数和返回值都是符合webservice规范标准类型),把对service的调用分为本地调用和webservice调用:对于本地客户端而言,我可以采用本地调用,增强性能;对于远程客户端而言,我可以把service发布为webservice(如选择Axis,只需增加一个配置文件和一些jar包)。当然,如果不考虑性能,我可以把本地调用也采用webservie调用,完全可行。
     当然,这里的service需要根据业务的目前情况和可扩展性,以及服务的粒度做充分考虑。
     这种实现方式好像类似于EJB了。但是也确实做到了以服务为导向,做到了模块及系统间的松散耦合。跟SOA思想是一致的。这种方式大大降低了成本,而且实现起来较为简单。
     请大家给出意见,这种实现方式是否算是真正实现了SOA。
   发表时间:2006-11-24  
解决方案是关键,实没实现SOA是另一回事?

不过楼主的方案行得通,^_^

应该注意service的粒度,毕竟是对外接口,功能没必要"太强大",呵呵
0 请登录后投票
   发表时间:2006-11-25  
" 目前关于SOA讨论的是如火如荼,我做的项目是销售系统,包括总部和地区公司,涉及数据集成和调用,SOA比较适合。可是考虑到厂商提供的产品价格以及学习过程,我们还是希望用到开源的产品,降低成本。但是现在好像没有开源的产品。"



有啊 而且还是可以直接用的开源应用项目. 虽然不一定是你需要的销售系统 但也差不多了. 这是一个分布式的网上商店系统和一个分布式的报表系统.

xmlshop网站上虽然没有说明但很快就可以提供下载 我正在做整理及文档工作.

比如分布式网店的 厂商产品服务(webservice) . 任何网上商店都可以直接请求厂商提供的产品服务将其按照自己的需要显示在网站上 自己只维护一个价格单.

这些都是基于cocoon和xmldb的 ws调用通过wsporxy 用起来很简单和普通的请求差不多. ws的实现更简单 就是根据请求提供xml数据.





0 请登录后投票
   发表时间:2006-11-26  
"Spring实现SOA" --- 听起来感觉怪怪的

看楼主的介绍,感觉component oritented programming 更合适点
0 请登录后投票
   发表时间:2006-11-28  
evanyuan 写道
"Spring实现SOA" --- 听起来感觉怪怪的

看楼主的介绍,感觉component oritented programming 更合适点

同感,赫赫,做SOA好像和spring扯不上关系吧,被题目吓了跳. 
说实话,从目前你项目的描述,感觉不出太大需要SOA的必要.
楼主象是在本有系统上做了下webservice的包装,把原有的业务调用强行wrap成粒度稍粗的services,且交互也就是point-to-point的service调用而已,如你所说像在做EJB,有点为了SOA而去做SOA.
不知道你们有否其他系统需要集成,也许你的做法对你们以后系统的SOA全面实施有所帮助,这或许是个好处
0 请登录后投票
   发表时间:2006-11-28  

发表三点:)

1 题目用spring,是因为spring的控制模型,spring通过service向调用方提供服务,实现了以服务为导向,实现了模块间松散耦合,所以由此联想到SOA,没有硬扯在一起的意思哦。

2 以下是摘自IBM中国的一篇文章:(http://www-128.ibm.com/developerworks/cn/webservices/ws-theme/ws-soa.html)

       面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

      所以我对SOA的看法,只要系统设计中实现了面向服务(此服务是标准服务,webservie是目前最好的实现方式),实现了系统间的松散耦合,我觉得就算是实现了SOA。

3 这里也是个人对SOA的粗浅的观点。只是现在被炒的发烫,也借势发表一下看法,通过大家讨论,揭露一下SOA的本质。

0 请登录后投票
   发表时间:2006-12-21  

我跟楼主有同感,呵呵,我觉得ws无外乎于一个包装,一个MVC结构中的v而已。因此与spring、hibernate结合是可以的,将来也可以很好的转到web UI上去。不知道我的想法对么?请大家指教


forest 写道:

发表三点:)

1 题目用spring,是因为spring的控制模型,spring通过service向调用方提供服务,实现了以服务为导向,实现了模块间松散耦合,所以由此联想到SOA,没有硬扯在一起的意思哦。

2 以下是摘自IBM中国的一篇文章:(http://www-128.ibm.com/developerworks/cn/webservices/ws-theme/ws-soa.html)

       面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

      所以我对SOA的看法,只要系统设计中实现了面向服务(此服务是标准服务,webservie是目前最好的实现方式),实现了系统间的松散耦合,我觉得就算是实现了SOA。

3 这里也是个人对SOA的粗浅的观点。只是现在被炒的发烫,也借势发表一下看法,通过大家讨论,揭露一下SOA的本质。





0 请登录后投票
   发表时间:2006-12-21  
找到篇文章http://www.ibm.com/developerworks/cn/webservices/ws-refactoring/
不过好像讲的是webservice本身使用IoC重构,不知道算不算是与Spring结合,楼主的方案行得通了麻烦通知一下。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics