同意。
好东西买不起,但用的起:)

java社区开始跟着微软跑了

其实,我一直在思考如何将JdonSD框架以网络API形式共享出去,在我构想中,JdonSD框架最终是以SOA形式向各个软件系统提供功能服务,如下图


通用性和性能是矛盾的,因此,选择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<Product> findProducts(String param);


}
这是用接口语言来定义服务,使用AOP来实现服务声明方面的功能,真是wonderfulll啊!


当然,最底层(infrastucture)可以是XML、RMI或方法调用,我倾向用方法调用(性能最优),因为在我的框架中,已经提供肥客户端的EJB方法调用,下面我只要延伸客户端服务范围,从原来的Swing之类GUI客户端扩展到另外一个服务器系统作为客户端,也就是Server to Server。

BEA大量使用XMLBeans,这种技术特点也是性能好,简单快捷。


我再加强一下Web服务(Web Services)不是SOA,在SOA定义中,并没有提到Web服务这一底层的技术实现。

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,这样的结合我非常看好,我本人方向也是这个条道路。

不知道banq兄心目中,可以取代SOA中WEB Services的技术是什么?
目前SOA宣传给我的感觉,是“重用性和互用性”这些基本概念,借助WEB Services的流行,以SOA的包装出现。(IT业最会包装了:( :( )

SOA当然是好的,不过,它的本质上的好处,也没有脱离“重用性和互用性”带来的好处的范畴。同样,我认为,它的依然有“重用性和互用性”的缺点。最主要是,没有足够规模的应用,这些好处都是空中楼阁。

业界强调“重用性和互用性”已经很多年了。不可否认,这些强调给我们带来了很多好处,但这些好处都是长期性的,非常缓慢的获得的。对于先行者来说,坏处甚至多过好处。
这次的SOA,是不是同样如此呢?

目前重用性刚刚有些眉目,互用性更需漫长路途要走。Web服务喊了几年,看到实际应用也没几个,Web服务也希望SOA捆绑能够再次粉墨登场,但是这次Web服务也不是SOA的唯一解决。

其实任何一个技术,无论Java或.NET,一旦打开Web服务的窗口,就意味着打开城门,迎接敌人。

所以,在我心目中,不会有打开城门 迎接敌人的想法,因此,Web服务从来都是我的整合旧系统或整合.NET系统的最后选择,是我系统设计的最后补充方案。

现在实现SOA除了WEB服务以外,有CORBA、Jini等,我相信有Java世界内的SOA技术实现。


这几天全世界Java界都在谈论这些新名词,TSS公布了卡通漫画来描述这个现象:


感觉SOA被板桥说复杂了

mdasky里也有篇文章

写的很好,而且其中提到了JDON。。。。。。

http://www.mdasky.com/forum/dispbbs.asp?boardid=2&id=383&star=1

这篇文章将MDA和SOA联系起来,这个思考轨迹我没有想到过,我要认真的考虑一下,我现在的感觉是将这两者联系起来比较突然,一种是工程方法;一种是架构,这两者一般是相辅相成,但是没有必然联系的,等我考虑清楚再回复。

SOA是一种架构,与具体实现无关,Web服务只是SOA实现的一种方式,这个意见是统一的。

关于图的问题,可能是局限在我的领域,别人难理解,以后给出更容易普遍的图吧。

这次JavaOne大会上,SOA是主题,其中“Is SOA the same as Web Services?”是主要疑问。

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

说点不同意见。构架与具体实现不是一回事我同意,但是我也不赞成将两者完全割裂开来。没有好的实现,一个构架也是不能成功的。SOA有一个主要的考虑是要将企业提供的业务以Service的方式展现给客户。这样,就需要将service描述成更uniform的一种形式,Web service是现在比较流行的方式,虽然不一定是最smart的一种方式。
我觉得我们在讨论和时间SOA的时候最好还是借用业界比较统一的标准为好。