SCA 概念、现状和展望
这篇文章是别人的约稿。
发现要在短短的一篇B文里尽可能多讲出内容,真是太难了。
ps:这里算是个预告片,看杂志社情况,如果杂志社不付印,马上就能贴出来,如果要印刷,恐怕要等下个月兄弟们才能看见了。
Hello world 系列的OSGi部分。
本文分为三部分,第一部分(I)给出了一个最简单的 bundle示例;第二部分(II)用三个bundle分别作为接口、实现和消费三种角色,来示例一下Declarative Services;第三部分(III)给出了本文的一些参考资料(链接)。之前看过别人写的hello,觉得太hello了,一般只到本文的第一部分就结束了,为了让兄弟们在hello阶段了解的更多一点,这里特地加了第二部分。
注意本文为了简单不涉及unit test。
ServiceMix无痛起步
有兄弟评论说,“看了之后,感觉和技术没边,好像一个怨妇再发牢骚,我们程序员需要的是真实的解决方案,哪怕是个hello world的例子”,这就是本文的由来。而且除了SerivceMix主页,其他地方能找到的ServiceMix入门文章基本没有,希望这篇B文能带对ServiceMix感兴趣的兄弟们入个门。
本文是ServviceMix 3.3 的hello world,如果有后续文章,将会采用最新的ServiceMix 4。
SOA之滥用
最近一年多满耳朵都是SOA的宣传,几个QQ群里也都在一直忽悠概念,大家都想往SOA上靠。这让我想起有人说到股市的一句话--当大家都疯狂的时候,离崩溃就不远了。就我所能接触到的范围内的情况,种种迹象显示SOA已经开始泛滥了。
注:本文已发表在《软件世界》二〇〇九年第四期。
ESB、BPEL、SCA简单区分
就我目前的理解,SCA其实是把其他各种服务引入自己应用的工具。
举例来说,现在有A->JEE(EJB/JMS/..)的应用(服务),B->BPEL(..) process,C->Web2.0 Component(Widget/json/..),如果现在要做一个建立在A、B、C基础之上的应用,那么SCA是一种最合适的工具,它用类似的方式,把三种不同类型的服务引入系统,避免了维护三种不同服务接口的工作量。
而作为发布服务的工具,SCA其实是不太合适的。
再举例 :-) 已有应用是Web2.0类型的。现在要发布出一个服务,不管我是选择RESTful的,还是widget,还是json,都有相对应的简单工具,为什么我要引入SCA这么大型的工具呢?就好比现在我就想剪指甲,非买个瑞士军刀来剪,我觉得酷,你也看我像装13对吧?(又举例,真是一例解千愁啊)
ESB和BPEL都有他们各自的应用场景,直接拿来和SCA比较并不太合适,而且他们也不是同一层次的工具。ESB是要解决服务通道,BPEL要解决服务流程,SCA要解决服务装配。
BTW: 这篇B文是在一个Google Group里的回帖。贴在这里主要是觉得,还稍微有点价值,而且还有很多可以发挥的点,以后说不定可以做成一篇大大的B文。
定义良好的web services接口
1, 接口是自说明的。2, 服务接口粒度要合适。3, 接口参数要尽量简单。4, 接口参数不应该增加客户端和服务端的耦合性。5, 要提供对接口参数和返回值的校验。6, 接口的返回值应该是简单的语言无关的。 7, 谨慎的抛出异常。8, 接口要尽量采用更新的标准。9, 要注意标准的通用性。10, 接口要测试方便。
Recent comments
2 weeks 2 days ago
2 weeks 4 days ago
2 weeks 4 days ago
8 weeks 2 days ago
16 weeks 1 day ago
16 weeks 1 day ago
23 weeks 9 hours ago
23 weeks 9 hours ago
23 weeks 11 hours ago
49 weeks 3 days ago