已锁定 主题:只因为你不懂SOA
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-20
starfeng 写道 看一小段代码,Spring风格,很POJO:
那么,addService.add(n1, n2)是什么调用?......... 在SCA的架构体系下.................. ................是的,他可以做最复杂的事情,但也是最简单的POJO。对于开发者来说,只用关心他的业务,其它的一切都可以忽略。 扯吧,这就是一简单的策略模式,偏要往SOA上面贴。你看你这不是被忽悠了? |
|
返回顶楼 | |
发表时间:2008-09-20
不是大家不懂SOA,而是现在专家们谈的SOA都是很空泛的,没有实质的内容,准确的来说是没有成功的案例。企业主都是很现实的,没有一个成功的例子做参照,你让人家去投资你嘴里的技术是现实现的。
对于我来说,小企业想实施SOA,没意义,因为没有这个需要,没有什么业务需要抽象出来转化成服务接口的。 至于大企业,一眼看去,确实是很有意义,因为有太多的业务可以抽象出来转化为服务接口供集成之用,但有一个很现实的问题,那就是谁去将这些业务抽象出来,再开发成服务?开发出来的接口给谁用?用了之后是否会带来质变? |
|
返回顶楼 | |
发表时间:2008-09-20
longlongriver 写道 一个面向所有程序员的技术却搞得绝大部分人都不理解的话,估计离死也不远了~!
这句很经典 为了SOA而SOA 大家觉得有意思么? |
|
返回顶楼 | |
发表时间:2008-09-20
starfeng 写道 看一小段代码,Spring风格,很POJO:
public class CalculatorService { private AddService addService; @Reference public void setAddService(AddService addService) { this.addService = addService; } public double add(double n1, double n2) { return addService.add(n1, n2); } } 那么,addService.add(n1, n2)是什么调用? 在SCA的架构体系下: 1. 他可以是简单的java调用——你能方便而快速的做JUnit Test. 2. 他可以也可是复杂一点的EJB调用——事务,分布式,Cache等你所想要的企业级特性的支持 3. 他还可以是复杂一点的Web Service调用,具体提供这个add服务的也许是一个.Net程序,又或者是一个八百年前的老系统已有的服务。 。。。 另外,CalculatorService又是什么? 在SCA的架构体系下: 1. 他可以只是一个普通的POJO,供我的们Action或JSP直接使用 2. 他可以是一个DWR对象,供Javascript直接调用 3. 他还可以是一个Web Service对象,你都可以从.Net中使用这个服务 。。。 是的,他可以做最复杂的事情,但也是最简单的POJO。对于开发者来说,只用关心他的业务,其它的一切都可以忽略。 如果我猜的没错的话,CalculatorService 应该对应看作一个SCA规范里面的component。我们公司现在的产品也转移到SCA规范里面了,据我们美国的老大说,是一个killer级别的产品。。。 呵呵 SCA还是有点花样的 |
|
返回顶楼 | |
发表时间:2008-09-21
starfeng 写道 忽悠...SOA真的只是忽悠?也许,很多不懂装懂的人在借着SOA去忽悠别人,也许,一知半解的人单凭主观印象就说SOA是忽悠
用了Web Service,就是SOA了? 有了解偶就是SOA了? 企业集成就是SOA了? 或者换另一个方向: SOA就是重量级了? SOA就是性能低下了? 再或者: 用了SOA就不了POJO了? 用了SOA就不能ROR? 事实上答案全是否定的,高效开发,轻量级,超低偶合,丰富企业级特性都是SOA可以具有的。 有时在想,SOA没获得认同,也许是宣传的错误。对客户应说SOA,对架构师应说SCA,对喜欢关心工作细节的开发人员应说Tuscany。 SCA 和 SOA是不在同一层次的两个概念. |
|
返回顶楼 | |
发表时间:2008-09-21
starfeng 写道 我前面引了一个例子,addService.add(n1, n2),有人不明白。多说一点:
SOA面向服务,支持多协议的系统集成,有个比喻说得好,不同服务,如不同的人,说英语的,说法语,说中文的,都不好相互交流,引进SOA这个天才语言家后,一切畅通。这里,其实就是SOA架构的一个强项:协义与业务是脱离的,任何宣称实现SOA的架构就能做到这一点,无论是Mule, ServiceMix 或是 tuscany。 协义是独立的,也意味着我们可以用我们最简单的语言(协义)——汉语(比方,普通java调用),去沟通,面对讲英语(比方,Web Service调用)的人也只需说汉语。因为,SOA架构能自动转换语言(协义)。 语言有很多种,都有生成的土壤和优势所在,协议也是一样。Http调用,DWR调用,ROR中的Rest调用,Web Service调用,普通的java对象调用等等,很多很多。无论将来是否有更多(比方,暂且来一个:带规则及权限较验的Struts调用),他们都只是一种调用的协议,在SOA(到少SCA)的架构体系中,是平等与无差别的,因此,我们也就不必在在上面浪费时间,只接用我们觉得最简单最熟悉的普通Java调用就好了,用了一种也就是用了所有。这也就是我前面举个例子说addService.add是XXX,也可是XXX,还可是XXX的原因。 事实上,你去看现在的轻量级的开发方式(比方dwr,rails),那些快(非全部),只不过快在了一个较轻的协议,或者快在一个语议较丰富的协议。而在这协议这一块,正是SOA架构的优势所在(非唯一)。 怎么听起来象web service |
|
返回顶楼 | |
发表时间:2008-09-21
没看到SOA的相关的东西,况且SOA实施的难点不是技术,而是业务
|
|
返回顶楼 | |
发表时间:2008-09-21
现在很流行忽悠嘛。
反正都是搅浑水,多搅一把又如何? |
|
返回顶楼 | |
发表时间:2008-09-21
各位都去用一下.net的WCF估计就差不多明白了
|
|
返回顶楼 | |
发表时间:2008-09-21
就当SOA是个p,放了它吧!英雄们
|
|
返回顶楼 | |