如水电一般易用 SOA通俗演义

标签:重磅推荐SOA技术前沿

访客:16510  发表于:2012-02-24 14:56:37

除了几个权威机构给出的几个所谓标准化的定义,用户并不了解SOA究竟是用来干什么的。但如果我们举个“水电例子”,就容易理解多了。

使用水、电的方法,不过是打开开关,保证水、电传输管线通畅。但大家可能会忽略一点:从源头保证水、电传输管理的通畅,对工程人员而言并不简单,要不然,就没有给排水工程这门学科存在的必要了。

用户要喝水,在没有实施标准化管线之前,也曾是一件相当麻烦的事。远离水源的人们需要把远处的水运输过来,他们可能需要水桶把水抬回来,也可能需要简单的交通工具把水运回来。接下来,聪明的人发明了管线,加压,水就可以在打开水龙头后自动地流出来。

事实上,SOA的产生与水、电管线的发展过程没什么区别,并且SOA的目的,就是要把IT设施做得像水、电管线一样,易于使用。只不过,SOA并不是一种现成的技术,而是一种架构和组织IT基础结构及业务功能的方法。换句话说,SOA并不是现成的水、电管线,而是设计水、电管线的思路。

SOA的诞生过程是伴随着IT成长而进行,只不过我们多数人只是感受到了IT工具的变化,而没有感受到IT工具背后思想的变化。

最初的开发语言是机器语言,只有少量专家才有可能成为懂得机器语言的人,透过厚厚的纸带,他们需要如读天书般读懂机器的计算结果。接下来是汇编语言的年代,想读懂编程语言同样是一件困难的事情。这个时期,SOA确实是连孕育期也谈不上。

到了二十世纪八十年代,面向对象的编程思想开始出现。在这一时期,程序员所用的是更接近于自然语言的C语言。我们可以把这一时期称为是SOA的奠基期。接下来到了二十世纪九十年代,面向构件的编程思想开始出现。如果你曾经历过在漆黑的屏幕上用C语言写代码,你一定会同意这个时期的编程更象是进入了一个明亮的动物园。你只要运用你小时候玩积木的热情和智慧,把具备不同功能的构件,像堆积木一样组合成具备某种功能的软件。

再往后,SOA的孕育期真正到来了——二十一世纪开始的十年。在这一时期,软件的编写开始真正基于服务,而SOA的英文全称正是Service-Oriented Architecture(面向服务架构)。

总结起来,SOA的特点有九个。一一说起来颇让人费解,但如果我们用水、电管线这个比喻来解释,理解起来并不难。

SOA的第一个特点是可从企业外部访问。既然象水、电一样容易使用,怎么可能做不到随时随地都能使用呢。关于这一点,我们要感谢B2B协议,它使得SOA具备了这个特点。当然,除了B2B协议外,外部用户还可以访问以Web服务方式提供的企业服务。

SOA的第二个特点是随时可用。对于水、电的应用,唯一的限制是是否有输送管线达到,只要管线达到,就会随地使用。而如果没有停水和停电现象的发生,水、电也一样可以随时使用,SOA的这第二个特点与此类似。出现停水和停电现象,往往伴随着水、电资源短缺。SOA不能随时可用也与此相类似,只不过SOA可以通过异步设计模式避免计算资源的短缺。

SOA的第三个特点是粗粒度服务接口。如果水、电系统需要计费使用,细粒度服务只能实现同一个功能,这样,向计费系统中添加一个客户就需要将客户名加入到计费系统中,添加详细的客户联系方式、添加计费信息等几个细粒度服务。而一个粗粒度服务可以包含几个细粒度服务的功能。聪明的SOA当然会选择粗粒度服务接口,而不会多次反复地工作,给计量水、电费这样的事添加太多的麻烦。

SOA的第四个特点是分级。粗粒度服务虽然效率高,但一次把计量水费的工作全部完成了,如果我们还需要这一服务实现其他附加功能,就会发现非常困难。于是,我们只能让这个粗粒度服务做统计水、电费这样单一的工作。当我们用到很多粗粒度服务时,我们就需要把它们分成不同的级别,来应对不同的工作。

SOA的第五个特点是松散耦合。这个特点听起来唬人,但从水、电使用上分析,不过就是我作为一个水、电的用户,不用去关心水、电是怎么传输到我的管线里来的,我的任务是打开水龙头放水使用,给排水工程与我完全不相干。这也是SOA最精华的部分。从基于SOA的开发工具的使用上,我们可以发现,只要充分了解业务的进程,就可以不用编写一行代码,通过流程图实现一套我们自己的信息系统。

事实上,已经有人在这么做了,一位有着三十年从业经验的图书馆管理员,从来不曾学过编程,在接受了一周的培训之后,已在用她自己设计的图书管理软件提高工作效率了。只有业务人员,才最了解业务,这话一点没错。在这一点上,SOA展现了它最大的优势,将业务人员从IT的束服之中解放了出来。

SOA的第六个特点是可重用的服务及服务接口设计管理,第七个特点是标准化的接口。水、电管线都已经被设计成了标准件,你只需须报出你需要的型号,就可以找到适合你的零件。回想起用桶抬、用车运的年代,水管的可复用性已大大提高了。换成SOA,由于代码的事复用率高了,开发人员的编程效率自然也随之大大提高了。

SOA的第八个特点是支持各种消息模式。IT设施的使用与水、电的使用还是有所不同,这就是IT设置要用来处理各种问题,这样就必然同时具备信息的输入和输出,于是就出现了消息模式的概念。而为了IT设施做得如同水、电管线一样易用,SOA自然要支持各种消息模式。

SOA的第九个特点是精确定义的服务接口。事实上,水、电的使用一样遵循着一些服务规定,如果楼层高了而水压不够,高层的用户就使不上水。SOA最终还要把IT设施的功能当做各种服务,因此必须要有一些标准规范这些服务,而应付这些服务规范的,正是精确定义了的服务接口。

由于SOA具有的这些特点,企业的各项业务可以被划分成各种各样的流程,而企业的IT基础设施的搭建,不过就是如同搭积木一样组合这些流程。这对传统的开发方法肯定是一种颠覆,这种颠覆甚至会影响到未来软件业巨头的排名。

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");