cuiyi's blog(崔毅 crazycy)

记录点滴 鉴往事之得失 以资于发展
数据加载中……

SOA涉及的 思想 & 产品 & 技术

本系列文章目录结构

       我对 SOA 的认识(一)(结合平时累积的笔记,不排除有引用) ( 修改版 )

       我对 SOA 的认识(二)(结合平时累积的笔记,不排除有引用)

       我对 SOA 的认识(三): SOA WebService 战略与战术

       SOA 和目前业成熟应用的 JavaEE 应用方案的一点看法

       JavaEE 中的三层结构和 MVC

       SOA 服务模型分析设计的一些概念

       SOA 涉及的组件和服务概念的整理(摘自水木)  

  SOA 涉及的 想 & 产品 & 技术

  可移植性(侧重Web Service )分析

10   任志宏关于 如何使用 IBM SOA 相关技术、产品和服务实现一个典型的业务场景 (转)

首先在“我对SOA的认识(二)<http://www.blogjava.net/crazycy/archive/2006/05/24/47799.html>”中提到了方法论的问题:

*******************************我对SOA的认识(二)**文始************************************************************

    对于方法论,查了一下大概阐述如下:方法论是一套完整的实践引导体系,是指导实践的理论基础,是人们在长期社会实践中总结和摸索出来的,符合客观发展规律的,符合人们对研究对象进行科学分析与判断的社会实践进程或步骤。方法是实践的成果,如同瓜熟蒂落,实践积累达到一定程度,必然会提出方法。

    阅读周爱民先生的《大道至简 — 软件工程实践者的思想》时,其对方法、方法论也有阐述,摘录如下:
++++++++++++++++++++++++++++++++++++++++《大道至简 — 软件工程实践者的思想》++文++++++++++++++++++++++++++++++++
3. 方法

    推动这种逻辑向前发展的,是 “ 方法 ” 和 “ 方法论 ” 的出现。长期的编程实践,自然的归演与总结,必须沉淀为某种 ( 软件开发 ) 方法,于是 “ 过程 ” 出现了,于是 “ 对象 ” 出现了,于是相关的方法论也就出现了。

    这是实践的成果。方法不是某个人或者某个组织创造的。瓜熟而蒂落,实践积累达到一定的程度,微软不提出某个方法, IBM 也会提出这个方法。即便他们都不提出,可能你自己已经在使用这个方法了。

    方法并不神秘,因为它就是你今天正在做的、从事的和实现的。正如 “ 模式 ” 是一种方法,而模式就是你昨天书写代码的那个行为。只不过, GoF 归纳、抽取、提升了这些行为的内在规律。

    你看不到你做事的行为,也就不能理解 “ 模式 ” 作为一种方法的价值。所以大师们众口一词:模式需要一定的编程经验才能理解。

    同理,理解过程也需要编程经验,理解对象也需要编程经验,理解 MDA 与 SOA 还是需要编程经验。

    —— 这可能就发生在你去回顾你上一行代码编写的经过,或者上一个项目失败的经历的那一瞬息。经验来源于回顾、理解与分析,而不是你将要写的下一行代码。

    有人在寺院扫了一辈子的落叶而得道,也有人因为一句话而得道。

    GoF 因为无数次的代码回顾而得道。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    同样在业界,任何一种技术或者架构的产生,都是历史潮流的产物, SOA 概念的提出也是业界面临的新问题的解决过程,尤其表现为不同语言开发的组件的相互调用,大型系统与大型系统的连接问题。

    正是伴随着软件系统发展的需求,催生了SOA的诞生。这也导致SOA的核心就是将多个系统连接和整合起来,达到大集成的目的。

    这种思想的产业化,就是业界大型公司的服务解决方案,SUN通过收购推出自己的SOA服务并有开元的打算,IBM利用自己的全套软件产品全方位的提出了自己的SOA应用,类似的Oracle、Redhat等或者通过收购或者利用自己的产品线推出了自己的集成方案。WebService(WSDL、SOAP、UDDI)就是SOA体系的一个具体技术解决方案,由于产业界都有共同支持,也就成了SOA下当仁不让的红人,外加各种相关规范的辅助,偏激一点的说,SOA就是思想体系,WebService就是实现技术。

    在《我对SOA的认识(一)》中,我提到过对于SOA的概念和理解仁者见仁,当然不排除受这些思想体系产业化后的影响。毕竟企业提供服务是为了更好的生存,而不是“免费的午餐”。

    类似OOP、AOP一样,SOA也不是一种产品或者组件,而是一种理念,一种系统设计的理念。SOA体系下提供的是服务,服务和服务间通过端口(Port)等连接在一起,从而从一个全新的角度去观察、设计系统。
*******************************我对SOA的认识(二)**文末*****************************************************************

很明显方法论角度已经论及了SOA的出现的历史需求,是一种切实的需求,而非仅仅是一种炒作,当然存在炒作成份。常听及“旧瓶装新酒”,无可厚非,技术原本就是在原有基础上不断完善直到革命因素的出现。这也是方法论,呵呵。
例证说明:WSDL对WS的描述通过5大标签<types><messages><porttypes><binding><port>;无非就是把一个类的调用方式(方法名、参数、返回值)用XML文档描述而已。

    SOA的出现与成熟必然要有它的技术支撑体系,SOA解决了一个互操作、协同业务这样的技术层面的问题。
    a) 互操作:可以理解成把语言级的接口---〉XML通用标准下的WSDL; 
    b) RMI的远程调用----〉XML和XSD辅助下的SOAP;
    c) 协同业务---〉ESB、BPEL、UDDI来完成;服务发布于UDDI,业务流程的编排通过BPEL来组合服务,运行时服务的定位路由和交互由ESB完成。
    d) 服务的具体实现,即应用程序的不同功能单元的联系(接口、参数/约定)---〉SCA、SDO技术

厂商关注的则是其产品体系和在业界的影响,对SOA进行一定的炒作自然情理之中,但简化SOA的开发、普及SOA应用、解决SOA基础设施,这些产品应该说功不可没。

综上分析,可得出,提到SOA时,首先最重要的是其思想方法论,其次才是技术和产品,应该说SOA是方法论+产品+技术的综合体。

posted on 2006-12-22 01:39 crazycy 阅读(1905) 评论(0)  编辑  收藏 所属分类: SOA、WebService、BPEL


只有注册用户登录后才能发表评论。


网站导航: