论坛首页 Java企业应用论坛

只因为你不懂SOA

浏览 27936 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2008-09-20  
starfeng 写道
看一小段代码,Spring风格,很POJO:

那么,addService.add(n1, n2)是什么调用?.........
在SCA的架构体系下..................
................是的,他可以做最复杂的事情,但也是最简单的POJO。对于开发者来说,只用关心他的业务,其它的一切都可以忽略。



扯吧,这就是一简单的策略模式,偏要往SOA上面贴。你看你这不是被忽悠了?
0 请登录后投票
   发表时间:2008-09-20  
不是大家不懂SOA,而是现在专家们谈的SOA都是很空泛的,没有实质的内容,准确的来说是没有成功的案例。企业主都是很现实的,没有一个成功的例子做参照,你让人家去投资你嘴里的技术是现实现的。

对于我来说,小企业想实施SOA,没意义,因为没有这个需要,没有什么业务需要抽象出来转化成服务接口的。
至于大企业,一眼看去,确实是很有意义,因为有太多的业务可以抽象出来转化为服务接口供集成之用,但有一个很现实的问题,那就是谁去将这些业务抽象出来,再开发成服务?开发出来的接口给谁用?用了之后是否会带来质变?
0 请登录后投票
   发表时间:2008-09-20  
longlongriver 写道
一个面向所有程序员的技术却搞得绝大部分人都不理解的话,估计离死也不远了~!


这句很经典
为了SOA而SOA 大家觉得有意思么?
0 请登录后投票
   发表时间: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还是有点花样的
0 请登录后投票
   发表时间: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是不在同一层次的两个概念.
0 请登录后投票
   发表时间: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
0 请登录后投票
   发表时间:2008-09-21  
没看到SOA的相关的东西,况且SOA实施的难点不是技术,而是业务
0 请登录后投票
   发表时间:2008-09-21  
现在很流行忽悠嘛。

反正都是搅浑水,多搅一把又如何?
0 请登录后投票
   发表时间:2008-09-21  
各位都去用一下.net的WCF估计就差不多明白了
0 请登录后投票
   发表时间:2008-09-21  
就当SOA是个p,放了它吧!英雄们
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics