曾经看到一篇题为“Take the technology out of SOA, and see what you get”的文章,从标题上就可以大概猜到文章是试图撇开技术因素来考量SOA的概念。读完全文,非常认同文章的观点——SOA只不过是一种设计模式而已。作为一种设计模式,除了应用在信息系统中,也同样适用在其他系统的设计中。
文章中以麦当劳的服务系统举例,称之为“以人力为基础的面向服务的架构(a human-based SOA)”,非常有意思。大家都知道在国外,你可以驾着车享受麦当劳的服务。不用离开车,首先你开到一个卡通人前对对讲机说出你要几号套餐,然后向前开到下一个窗口付款并拿你的食物。这个简单的系统基本上包含了两个服务:接受订单服务和履行订单服务,但它是完全符合SOA要求的。试想如果麦当劳发现因为周围的噪声干扰严重影响对讲机的工作,或者想提供多语种的订单服务,她能够容易的替换原有的接受订单服务,例如:建立一个电话声讯中心(Call Center),甚至选择把这个服务外包出去。因为遵循SOA的系统中,服务提供者(Service Provider)的变化,不会影响其业务本身。在麦当劳的系统中,没有涉及信息技术,但同样做到了面向服务的架构。
从这个有趣的例子里,还能联想到其他的一些东西:
麦当劳的系统可以看作是由两个服务组成的一个复合应用。SOA设计赋予它重组的灵活性。麦当劳可以随心所欲的替换服务来提升效率,降低成本,或者增加客户体验。例如:选择外包接受订单服务以获得规模效益,或者是提供额外的客户体验—多语种服务。这样就比较容易理解,SOA对企业的信息系统的好处,这个好处在于业务流程的快速重组,而不是采用了最前沿的新技术。
既然SOA是从流程设计的角度去理解的,那么它的理念的主要听众不应该是信息技术人员而是业务人员。也就是为什么SAP一直在推动业务流程专家社区(Business Process Expert, BPX)的发展。因为成为业务流程专家的企业信息系统关键用户才是设计和创新的主体力量。
另外,在这个例子里,也可以体会到标准很重要。标准化是麦当劳快餐的基础,同样在她的服务系统中的标准化(服务的接口,模块化设计),都是实现SOA不可或缺的内容,不仅是在IT系统之中来考察这个问题是这样。
SOA的概念被宣传衍生到各种技术平台技术手段中,其实非常象当初的面对对象概念。面对对象的概念提出来的时候,主要是作为在软件系统设计中对客观世界进行抽象的新方法。然而很快IT业界几乎所有的东西都赶时髦地贴上了“OO”的标签。恐怕Gartner在1996年适时地提出了面向服务架构的思想的时候,也未曾料想它被如此运用。
那么技术对SOA是什么角色?应该说,技术让SOA的实际运用成为可能(Enabler)。譬如:面对对象的方法也可以用传统的编程语言去做实现,但一直等到支持面对对象编程语言的推出才广泛的被软件工业采用。具备了各种模块化组件技术和互联网的长足发展,SOA的在业务中才具备了实用性。这也是为什么SOA概念提出10年后才被炒作的沸沸扬扬。
把技术因素从SOA中剔除,SOA只不过是一种设计模式而已。只有本着这样的认识去运用SOA,才能够真正掌握其精髓,而不是淹没在技术细节的大海里。
微信关注我们
原文链接:https://yq.aliyun.com/articles/474397
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
相关文章
发表评论
资源下载
更多资源Mario,低调大师唯一一个Java游戏作品
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Oracle Database,又名Oracle RDBMS
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。
Eclipse(集成开发环境)
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
Sublime Text 一个代码编辑器
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。