除了几个权威机构给出的几个所谓标准化的定义,用户并不了解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基础设施的搭建,不过就是如同搭积木一样组合这些流程。这对传统的开发方法肯定是一种颠覆,这种颠覆甚至会影响到未来软件业巨头的排名。
分享到:
相关推荐
8. **易语言扩展**:除了基本的API调用,易用API伴侣可能还提供了一些易语言的扩展功能,如自定义函数库、模块加载等,进一步增强了易语言的编程能力。 9. **学习资源**:对于初学者,易用API伴侣可能附带了相关的...
尽管在技术架构与设计理念上,国内厂商与国际领先水平尚存差距,但本土化的优势使得国内SOA应用平台在实用性和易用性方面更胜一筹。一方面,这些厂商长期扎根于中国市场的实际需求,积累了大量基于SOA思想的成功案例...
面向服务的架构(Service-Oriented Architecture,简称SOA)是一种设计方法论,旨在构建灵活、可重用的服务集合,以支持企业的业务流程。SOA项目设计框架规范是指导实施SOA的关键文档,它为企业的IT系统提供了一种...
整理过的易用性测试用例。主要从五个方面进行整理,详尽全面
软件易用性测试用例范例。包括用户操作习惯、页面布局、按钮位置等。
免费易用奇门破解版,有效提高易学水平,增强易学水平的造诣,用过的人都说好。
SAP易用化设计方案SAP易用化设计方案SAP易用化设计方案SAP易用化设计方案SAP易用化设计方案SAP易用化设计方案
易用奇门破解版 。 很多人都说破解版的有毒,被植入了木马,请大家谨慎使用。
回到正题,如jQuery般易用的api风格?那到底是什么样的风格呢?个人觉得比较重要的有两点,一是对dom操作的链式调用,并且都呈队列状态,不仅仅使代码的可读语义变得通俗易懂,而且省去了对同一dom元素的多个链式...
Oracle SOA套件是Oracle提供的全面集成解决方案,包括BPEL流程管理器、服务总线、业务活动监视(BAM)等组件,它在业界获得了广泛的认可和奖项,被评价为市场上最全面、最易用的SOA产品。通过这个套件,企业可以构建...
### SOA原则:服务设计 #### 一、引言 《SOA原则:服务设计》是一本关于服务导向架构(Service-Oriented Architecture,简称SOA)设计的专业书籍。本书汇集了众多行业内专家的观点与实践经验,旨在为读者提供一套...
标题与描述均提到了“IBM公司SOA WebSphere ...总之,IBM WebSphere DataPower是实现SOA愿景的强大工具,结合IBM的专业服务,能够为企业带来卓越的性能、安全性以及易用性,是构建现代企业级IT架构的理想选择。
1. **降低投资和运维成本**:传统的系统架构中,每个单位都会独立建立系统,导致基础设施如网络、服务器、存储等重复投资,而SOA通过资源共享,减少了重复建设,降低了整体成本。 2. **简化维护**:在SOA架构下,...
**服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计原则和方法,用于构建松散耦合、可重用的服务,以实现不同系统之间的互操作性。在这个小结中,我们将深入探讨SOA的核心概念、优势以及如何在...
易用奇门安卓破解版:易用奇门6.0,个别机型会出现闪退的情况,这个没办法,破解版就是这样,想稳定运行需要购买正版。
- **SOA(面向服务的架构)**: SOA是一种软件设计方法论,它将应用程序的不同功能单元(称为服务)通过服务定义接口(如Web服务)进行连接。SOA的核心理念在于服务的复用性、互操作性和松耦合特性,使得不同的应用...