天天看点

SOA概览

SOA已经被炒了好久,最近朋友又向我强力推荐,为了不至于落伍,同时也给将来项目的架构增加新的选择,带着如下疑问在网络中寻找答案:

1.SOA是什么?

2.与其相似或者对应的技术是什么,它有哪些优缺点,或者说有什么不同,我们有什么理由来采用它?

3.SOA现在处于什么样的发展状态,有什么相关、扩展产品或技术,它得到了哪些平台支持?

4.如何简单地实现一个SOA?

1.SOA是什么?

SOA为Service-Oriented Architecture(面向服务架构)的缩写,顾名思义,它是一种架构,这个架构是以服务为中心。

详细描述为:应用的业务逻辑或某些单独的功能被模块化并作为服务来提供给消费者或客户端,这些服务的关键在于它们的独立特性(松耦合特性?),应用的各个服务可以采用不同平台、位于网络中的不同位置。客户端的开发人员可以通过组合一个或多个服务来构建应用,而无需关心应用服务端的实现方式。

2.与其相似或者对应的技术是什么,它有哪些优缺点,或者说有什么不同,我们有什么理由来采用它?

初听SOA的介绍,觉得它就是一个Web Service,那么两者有什么不同呢?匆匆阅读了参考资料3,还是感觉很模糊,继续以下疑问,或许等我实现一个SOA以后,有了一个,可以再来和Web Service相比较。

在网络浏览中,发现Web Service、SOA、AOP这三个词常常放在一起,Web Service和SOA是有关系的,那么SOA和AOP是什么关系呢?答案是:它们不是一个层面的东西,无法比较。SOA是说明企业级系统架构的问题,AOP是解决应用编程技术本身的设计问题。或许因为都是新技术,所以常放在一起。

为了回答问题3和4,阅读了IBM的一些教程与资料,在阅读了SOA 快速指南 1 2 3以后,略有所悟,SOA只是一个架构思想,它并没有真正实现什么东西,所有这些相关产品、规范等等都是围绕这个架构服务的。同样是SOA,可以采用Web Service实现也可以用EJB或者其它的什么远程技术实现。

参考资料:

注:本文内容资料全部取自网络,然后根据本人的理解与需要,组织成文。

1.基础教程介绍——什么是SOA? http://www.soachina.com/dispbbs.asp?boardID=73&ID=36931

2.专题:SOA — 面向服务的体系结构 http://www.ibm.com/developerworks/cn/webservices/ws-theme/ws-soa.html

3.SOA 比 Web Services 涵义更广 http://dev2dev.bea.com.cn/techdoc/200408238.html

4.重新诠释AOP http://www.cnblogs.com/teddyma/archive/2005/11/21/281524.html

继续阅读