文章网址:
http://www.jdon.com/artichect/SOA.htm
欢迎发表新观点讨论。
欢迎发表新观点讨论。
但是WebServices != SOA
http://www.jini.org/meetings/seventh/Ogg/Ogg.html
通用性和性能是矛盾的,因此,选择Web Services只是我的SOA最坏最后的选择,我现在目前只是提供Java世界来访问我的API,暂时不开放非Java(先做好一点,没那么大能耐)。
除了web services,实现SOA的底层技术很多,我非常欣赏TSS上一个网友的想法: AOP+ SOA,这是很好的捆绑,看看下面这段代码:
interface Products {
@Query "SELECT * FROM PRODUCT_TABLE WHERE name like $1"
@Authorization AUTHENTICATED_USER
@Check "$1 != null"
@Transactional
@Log "$currentUser recieved products by $1"
Collection
}
这是用接口语言来定义服务,使用AOP来实现服务声明方面的功能,真是wonderfulll啊!
当然,最底层(infrastucture)可以是XML、RMI或方法调用,我倾向用方法调用(性能最优),因为在我的框架中,已经提供肥客户端的EJB方法调用,下面我只要延伸客户端服务范围,从原来的Swing之类GUI客户端扩展到另外一个服务器系统作为客户端,也就是Server to Server。
BEA大量使用XMLBeans,这种技术特点也是性能好,简单快捷。
SOA是一个架构定义,很显然,架构模式是没有指定底层机制的,这是模式架构的基本原理,Web服务(Web Services)只是SOA的一种实现,实现方式有很多,例如SOA先驱BEA公司赖以实现不只是Web服务(Web Services)、有XMLBeans等等,看看这篇BEA SOA架构文章:
http://www.theserverside.com/news/thread.tss?thread_id=26049
象在ASPCool这样的网站,将SOA说成是下一代Web服务:
http://www.aspcool.com/lanmu/browse1.asp?ID=1159&bbsuser=uml
试图将SOA纳入Web服务这一具体技术标准中去,很显然完全是混淆视听。
关于Web服务(Web Services)我不想说太多,仅仅以我的观点看来,Web服务(Web Services)不是我首选的SOA技术。
J2SE 1.5提供了MetaData特性,这为AOP在Java中顺利使用提供了方便,EJB 3.0能够将Session Bean简化,也是使用J2SE1.5特性。
而AOP + SOA + 远程方法调用/XMLBeans/Castor,这样的结合我非常看好,我本人方向也是这个条道路。
SOA当然是好的,不过,它的本质上的好处,也没有脱离“重用性和互用性”带来的好处的范畴。同样,我认为,它的依然有“重用性和互用性”的缺点。最主要是,没有足够规模的应用,这些好处都是空中楼阁。
业界强调“重用性和互用性”已经很多年了。不可否认,这些强调给我们带来了很多好处,但这些好处都是长期性的,非常缓慢的获得的。对于先行者来说,坏处甚至多过好处。
这次的SOA,是不是同样如此呢?
其实任何一个技术,无论Java或.NET,一旦打开Web服务的窗口,就意味着打开城门,迎接敌人。
所以,在我心目中,不会有打开城门 迎接敌人的想法,因此,Web服务从来都是我的整合旧系统或整合.NET系统的最后选择,是我系统设计的最后补充方案。
现在实现SOA除了WEB服务以外,有CORBA、Jini等,我相信有Java世界内的SOA技术实现。

mdasky里也有篇文章
写的很好,而且其中提到了JDON。。。。。。
http://www.mdasky.com/forum/dispbbs.asp?boardid=2&id=383&star=1
SOA是一种架构,与具体实现无关,Web服务只是SOA实现的一种方式,这个意见是统一的。
关于图的问题,可能是局限在我的领域,别人难理解,以后给出更容易普遍的图吧。
SOA is the union of three things(SOA是下面三种事情的综合):
1. 一种将软件标识和设计为服务的方法A methodology to identify and design software applications as services.
2.一系列工具,容易建立服务和Java软件应用的接口。A set of tools to make it easy to build service interfaces to Java software applications.
3.一系列设计模式构建一个服务。A set of patterns to construct a service.
SOA并不是一种你可以购买的基于Web应用和Web Services的商品或服务,它不是具体的东西。
那么Web Services是什么?
在很多J2EE开发者看来,Web服务是一种不必的多余的技术,先前预言Web服务将替代RMI Corba或DCOM是错误的(Previous prognostication that Web Services will replace RMI, Corba, and DCOM are wrong. )
http://www.theserverside.com/articles/article.tss?l=JavaOne2004&page=day2