新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> Web服务(Web Services,WS), 语义Web服务(Semantic Web Services, SWS)讨论区: WSDL, SOAP, UDDI, DAML-S, OWL-S, SWSF, SWSL, WSMO, WSML,BPEL, BPEL4WS, WSFL, WS-*,REST, PSL, Pi-calculus(Pi演算), Petri-net,WSRF,
    [返回] 中文XML论坛 - 专业的XML技术讨论区W3CHINA.ORG讨论区 - Web新技术讨论『 Web Services & Semantic Web Services 』 → Understanding SOA with Web Services中文版 连载 - 《第一章 介绍SOA与Web服务》 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 69663 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: Understanding SOA with Web Services中文版 连载 - 《第一章 介绍SOA与Web服务》 举报  打印  推荐  IE收藏夹 
       本主题类别: SOA基础    
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Web Services & Semantic Web Services 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 Understanding SOA with Web Services中文版 连载 - 《第一章 介绍SOA与Web服务》

    第一章 介绍SOA与Web服务

    SOA可以促进在不同的软件间进行服务合成(service composition),无论这些软件是已有的还是新的,是部门级的、企业级的,还是跨企业的,也不管它们是运行在大型机、中间层,还是PC或移动设备上的,都可以通过SOA将它们组合为流畅的IT流程,并有助于IT环境的改进。

    由于Web服务的广泛普及以及SOA带来的优势,这些合成应用的方案是可以实现的。WSDL(Web Services Description Language)现已成为访问任何应用的标准编程接口,而SOAP也已成为连接不同应用的标准互操作协议。这两个标准是重要的开端,更多针对企业特征及服务质量方面的需求而制订的Web服务规范将接踵而来,它们将对Web服务的安全(security)、可靠性(reliability)、事务(transactions)、编制(orchestration)以及元数据管理(metadata management)等方面加以定义。总之,Web服务是构建下一代IT基础设施——SOA——的最佳平台。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/26 10:05:00
     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Web Services & Semantic Web Services 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客2
    发贴心情 1.1 面向服务的企业
    关键技术的融合以及对Web服务的广泛接受,将对面向服务的企业(service-oriented enterprise)产生极大的影响:显著增加机构的机动性,加快新产品、新服务的上市速度,降低IT成本,同时提高运营效率。

    如图1-1所示,多种代表着行业趋势的关键技术正在融合,并共同促使着IT在面向服务的概念与实现上发生重大改变。这些关键技术包括:

    l         可扩展标记语言(Extensible Markup Language,XML)。一种跨企业(或更广泛)的、公共的、中立的数据格式,它提供了:

    ?         与编程语言、开发环境和软件系统无关的标准数据类型与结构。

    ?         用于业务文档定义和业务信息(比如标准的行业词汇)交换的通用技术。

    ?         广泛的XML处理软件(如XML解析器、查询器、转换器等)。

    l    Web服务(Web Services)。基于XML的技术,用于传递消息、描述服务、发现服务以及其他扩充功能,它提供了:

    ?         各种被广泛采纳的、用于分布式计算的接口描述,以及通过消息进行文档交换的开放标准。

    ?         与下层执行技术和应用平台的无关性。

    ?         企业级服务质量(比如安全性、可靠性、事务性等)的可扩展性。

    ?         对合成应用(比如业务流程流、多渠道服务、快速集成等)的支持。

    l    面向服务的架构(Service-Oriented Architecture,SOA)。一套用于实现应用间互操作以及重用IT资产(IT assets)的方法,它具有以下特征:

    ?         对架构方面(比如治理、过程、建模和工具等)的强烈关注。

    ?         具有恰当的抽象层次,有利于促进业务需求与技术能力的配合与协调,和创建可重用、粗粒度的业务功能。

    ?         是一种适于快速、方便地构建新应用的部署基础设施(deployment infrastructure)。

    ?         一个用于常见业务与IT功能的可重用服务库。

    l    业务流程管理(Business Process Management,BPM)。用于自动化业务操作(business operations)的方法和技术,它:

    ?         清晰地描述了业务流程,以便于理解、改进和优化。

    ?         易于针对业务需求的变更而快速修改业务流程。

    ?         将原来由人工完成的业务流程自动化,并实施业务规则。

    ?         为决策者提供有关业务流程的实时信息与分析。

    这些技术各自都已对业务计算的一个或多个方面产生了深远影响,如果将它们融合起来,即可提供一种综合平台。该平台将有助于获得面向服务的优点,并在IT系统的发展进程中走向下一阶段。

    按此在新窗口浏览图片

    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/26 10:07:00
     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Web Services & Semantic Web Services 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客3
    发贴心情 1.2 面向服务开发
    软件厂商们已经广泛接受了“采用Web服务进行面向服务开发”这一模式。面向服务开发(service-oriented development)是对之前的面向对象、面向过程、面向消息及面向数据库等开发方法的补充。

    面向服务开发具有以下优点:

    l 重用——创建可重用于各种应用的服务的能力。

    l 效率——通过组合现有服务以快速创建新的服务与应用的能力,以及集中精力于数据共享而非底层实现的能力。

    l 与技术的松耦合——独立于服务的执行环境进行服务建模(比如定义服务能够收发的消息)的能力。

    l 职责的划分——令业务人员和技术人员分别关注业务问题和技术问题、两组人员通过服务契约进行协同的能力。

    开发服务与开发对象不同:因为一个服务,是由它与其他服务交换的消息(exchanged messages)而不是由一个方法的型构(method signature)来定义的;服务定义所在的抽象层次必须比对象定义所在的抽象层次要高,因为这样可以把一个服务的定义映射到某种面向过程的语言(比如 COBOL或PL/I)、消息排队系统(比如JMS或MSMQ)或面向对象系统(比如J2EE或.NET框架)上。

    理解服务定义的粒度(granularity)也同样重要。一般来说,服务都会定义粗粒度的接口。相对于对象的调用来说,对服务的单次调用会接收更多的数据,消耗更多的计算

    资源,因为它需要进行到执行环境的映射和XML处理等工作,而且对服务的访问通常都是远程的。当然,对象接口也可以是粗粒度的。关键在于,服务是用来解决应用间的互操作问题以及用于组合新应用或应用系统,而不是为应用创建具体业务逻辑。

    通过进行Web服务的聚合(aggregation),你可以发布封装了多个其他服务的Web服务。这样,可以将一个粗粒度的接口分解为多个细粒度的服务(或者,用多个细粒度的服务组合为一个粗粒度的接口)。粗粒度的服务更适合用于发布,而细粒度的服务则更适合作为仅供前者调用的“私有”Web服务。

    服务的执行即根据服务所支持的一种或多种消息交换模式(Message Exchange Patters,MEPs)进行消息交换,可用的消息交换模式包括请求/响应(request/response)、单向异步(one-way asynchronous)及发布/订阅(publish/subscribe)等。

    在项目层次上,架构师通常要指导可重用服务的开发,并确定一种存放、管理和检索服务描述的方法。可重用服务层(reusable services layer)将业务操作(比如“获取客户信息”、“下订单”等)与下层软件平台的实现差异相隔离,就像Web服务器和浏览器将万维网与操作系统和编程语言的差异隔离开一样。将可重用的服务快速组合为更大服务的能力,令机构具有流程自动化和快速适应环境变化的优点。

    为什么XML有助于简化系统的开发与集成

    在Web服务中使用XML可以将服务的定义与执行明确分离——这种分离是特意的(可以参阅有关标准),它使Web服务可在任何软件系统上工作。利用XML Schema来表达


     

    服务中的数据类型与数据结构,令开发者在处理传递于服务间的数据时,可以不必考虑特定服务的具体实现细节。这体现了在集成问题上的一个根本改变,即不必再为了与服务交互而了解其实现细节。无论服务的执行环境是一个对象还是一个消息队列或者存储过程,这已经不重要了,因为数据在被使用之前要经过Web服务的过滤处理,其中有一层过滤将会完成Web服务到实现它的执行环境的映射。

    用服务来设计、开发和部署应用,需要思考方式上的重大转变。帮助完成这一转变的一个方法,是将IT部门的职责划分为两个部分:

    l 创建服务——处理部署服务所涉及的下层技术的复杂性,并确保XML/Web服务的描述与服务消费者的需要相一致,而且双方共享着应有的数据。

    l 使用服务——组装新的合成应用(composite applications)与业务流程流(business process flows),确保共享数据及流程流能够准确反映业务的运营和战略需求。

    上述职责划分实现了技术问题与业务问题的明确分离。

    SOA对机构的影响

    在过去的IT部门里,业务功能的理解和技术功能的理解是由同一个人负责的——即让同一个或同一些人完成业务与技术领域的衔接,这是IT领域的老问题了。要获得Web服务、SOA以及BPM技术的全部优势,IT部门必须考虑采用最佳的组织与能力的组合。


     

    在采用一种新的架构和技术时,确定新角色和新职责是很重要的。技术人员必须能够适应从做全部工作到做部分工作,并与他人共同完成整个工作的转变。与对象或过程相比,服务的开发应面向一个更为宽广的环境,因为它被重用的机会更大。实际上,定义可重用的服务也许是面向服务中最重要的方面。要实现服务的最高价值,必须在开发时就考虑与其他服务的互操作,并通过与其他服务的组合来构建应用。这一思想上的转变,可能需要某个处于部门或机构领导职位上的人来协助完成检查设计,并确保它们与新的IT目标一致。

    Service Abstraction

    服务抽象

    服务就是具有机器可读的(machine -readable)消息(接受或返回的)描述的网络位置,即服务是由它所支持的消息交换模式(MEPs)定义的。消息(message)中包含的数据具有相应的模式(schema),模式用于在服务请求者与服务提供者之间建立契约(contract)(即描述)。其他一些元数据项(metadata items)分别描述了服务的网络地址、所支持的操作,以及对可靠性、安全性及事务性方面的要求。

    图1-2展示了服务的各个部分(包括服务描述、服务实现、映射层等)间的关系。任何提供Web服务支持的执行环境都可以作为服务实现(service implementation)。服务实现也被称作可执行代理(executable agent),它负责实现各种Web服务规范中定义的Web服务处理模型(processing model)。可执行代理在执行环境(execution environment)中运行,这里的执行环境通常是某个软件系统或编程语言。


     

    按此在新窗口浏览图片


    图1-2 Web服务的各个组成部分

    服务定义中的一个重要方面是:服务描述(service description)与其可执行代理(executable agent)是分开的。一个服务描述可以有多个不同的可执行代理与之相关联,而一个可执行代理也可以支持多个服务描述。服务描述通过一个映射层(有时也称作转换层)实现与执行环境的分离。映射层(mapping layer)通常以代理(proxy)或桩(stub)[2]的形式实现。映射层负责接收消息、转换XML数据到本地格式(native format)、将数据派送到可执行代理。

    Web服务区分请求者与提供者两种角色:服务请求者(service requester)通过向服务提供者发送一个消息来启动服务的执行;服务提供者(service provider)收到消息后便执行服务,然后将结果(如果有的话)返回给服务请求者。一个服务请求者可以同时也是一个服务提供者,反之亦然。也就是说,可执行代理可以具有这两种角色中的任一种、或者同时兼有两种角色。

    如图1-3所示,服务抽象的好处之一是:易于访问各种不同类型的服务,比如新开发的服务、经包装的传统应用(wrapped legacy applications)或由其他服务(新的或传统的)合成的应用等。


     

    按此在新窗口浏览图片

    图1-3 请求不同类型的服务

    让服务与产品相分离

    有些软件厂商仍未能将服务的概念与执行环境的概念相分离,将Web服务实现仅作为另一个已有产品的一部分进行销售。这将较难获得Web服务带来的优点,因为这些产品中包含了并非执行Web服务所需的特性,而且如果服务还要依赖于这些特性的话,那么会造成不兼容。

    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/26 10:09:00
     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Web Services & Semantic Web Services 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客4
    发贴心情 1.3 面向服务的架构
    面向服务的架构

    本节介绍服务及面向服务的架构(SOA)主要概念与定义。

    What Are Services

    什么是服务

    在继续技术讨论之前,我们先从业务的观点来看一下服务(services)与流程(processes)的概念。大多数机构(无论是商业的或政府的)都要为顾客、客户、公民、员工或合作伙伴等提供服务。我们来看一个实际的面向服务的例子。


    如图1-4所示,银行出纳员要为银行客户提供服务。不同的出纳员可提供不同类型的服务,某些出纳员可能是专门为客户处理某类服务的。典型的服务包括:

    l 账户管理(开户与销户)

    l 贷款(处理申请、查询条款与细则、同意放款)

    l 提款、存款与转账

    l 外汇兑换

    存在多个提供一组相同服务的出纳员——这有利于分摊工作量和提供较高的可用率,不过就客户而言,他们只关心能否完成服务,至于银行内部如何安排则与他无关。如果是一个复杂的交易,客户可能需要与多个出纳员接触才能完成处理——这就是一个业务流程流(business process flow)。

    按此在新窗口浏览图片

    图1-4 银行服务的例子

    实现银行服务自动化的IT系统存在于银行内部,对客户是透明的,因为服务最终是通过出纳员提供给客户的。因此,IT系统所实现的服务,必须与出纳员向客户提供的服


    务一致,并且必须向出纳员提供支持。如果能确保“IT系统所实现服务的定义”与“业务功能和业务流程”一致,那么IT系统将更易于支持业务目标,更适于提供由人或ATM以及在Web上提供的服务。

    图1-5显示了ATM机用户、办公网络上的出纳员,以及使用PC的Web用户是如何使用相同的服务的。这样的服务设计与部署满足了客户的需要。服务的实现环境并不重要,重要的是服务本身。图中也显示了如何由两个服务组合为一个新服务,比如将取款与存款服务组合为一个转账服务。

    按此在新窗口浏览图片

    图1-5 使用和组合服务

    软件服务(software services)[3]的定义与银行提供的业务服务(business services)相一致,将确保业务运营的流畅,并有助于实现战略目标(比如:除了通过柜台方式以外,


    还允许通过ATM和Web方式使用银行服务)。

    我们将看到,复杂的服务(比如处理一个订单或一次保险索赔)可由多个服务组合而成。在SOA环境中部署服务,令服务合成更加容易;而由此合成的应用,也可以发布为服务,供人或IT系统使用。

    What is Service-Oriented Architecture

    什么是面向服务的架构

    面向服务的架构(Service-Oriented Architecture,SOA)是一种设计方式,它指导着业务服务(business services)在其生命周期(从构思开始,直至停止使用)中包括创建和使用的方方面面。SOA也是一种定义和提供IT基础设施(IT infrastructure)的方式,它允许不同应用相互交换数据、参与业务流程(business processes),无论它们各自背后使用的是何种操作系统或采用了何种编程语言。

    SOA可被看作是一种构建IT系统的方案,它将业务服务(即一个机构向顾客、客户、公民、员工、合作伙伴或其他机构直接或间接提供的服务)作为协调IT系统与业务需求的关键组织原则。相反,早期构建IT系统的方案,大多是直接使用特定的实现环境(比如面向对象、面向过程、面向消息等)来处理这些业务问题,结果造成IT系统依赖于具体执行环境(比如CICS、 IMS、CORBA、J2EE和COM/DCOM等)的特性与功能。


    Competitive Value of SOA

    SOA的竞争优势

    用Web 服务成功地实现了一种面向服务的架构(SOA)的企业将具有一定竞争优势,因为针对战略性业务目标构建的服务可以对不断变化的业务需求做出更快的响应,而那些针对具体执行环境构建的IT系统则不可能做到。其他优势包括:易于进行Web服务的合成及改变Web服务的合成方式;另外,修改Web服务及XML数据的代价,也比修


    改执行环境的代价低。用Web服务实现的SOA具有以下优势和优点:在项目的IT开销上具有更理想的投资回报,项目见效更快,对不断变化的商业和政府需求的响应更快。如果一个企业具有一种有助于其自身快速改变的IT基础设施,那它就比不具有此特征的企业更具优势。此外,将SOA用于应用集成(application integration)、业务流程管理(business process management)及多渠道服务(multi-channel access),可以令企业创建更具战略性的IT环境,以更符合业务的运营特征。


    SOA是利用“面向服务开发(service- oriented development)”之优点的最好方式。与之前的IT系统关注于技术本身、让人们适应技术不同,面向服务(service orientation)通过将技术更自然地贴近于需要它的人们,实现了项目成本的缩减和项目成功率的提高。面向服务开发(service- oriented development)与先前开发方法的主要不同在于,它使你可以专注于业务问题本身的描述,而先前的开发方法则要求你更关注特定执行环境技术的使用。面向服务开发比先前技术更面向业务问题的解决 。

    SOA的概念并不新,新颖之处在于它能够混合搭配各种执行环境、令服务接口与执行技术明确分离、令IT部门可以为各项工作(无论是新的还是现有的应用)选择最佳的执行环境,并采用一致的架构方式将它们结合起来。而先前的SOA实现,是基于一种单一的执行环境技术的。


    SOA isn’t New, So What Is

    SOA的概念早就有了,其新颖之处何在

    尽管SOA背后并没有什么新概念,但人人都在谈论着SOA。在进行软件服务(software services)的定义时所采用的“接口与实现分离”的思想,是早已在J2EE、CORBA、COM甚至DCE中得到充分检验的。但是SOA主要是通过文本文件来实现服务与其执行环境的分离,而且分离得更明确、更完全,SOA的这种能力是新增的——这主要借鉴自Web的概念和技术。传统的接口实现没有考虑这样一种“松散的”分离,因为它会影响效率。然而在许多情况下,易于获得互操作性的能力要比效率问题更为重要——互操作性是业界一直在努力争取、但至今仍未彻底实现的目标。SOA成功与否,并不依赖于Web服务给IT软件带来的发展,而是依赖于方法的转变。Web服务中接口与执行环境的进一步分离促进了工作职责的分离。将服务描述与其技术实现相分离,意味着企业可以根据服务描述对业务运营问题的实现进行考虑和进行IT投资,而那些依赖个别产品或软件技术来执行服务描述的方案则不行。这样,服务描述所定义的特征与功能可以通过任何技术来实现。但是,只有转变了对IT的思考方式的企业才能实现这一点。服务就是发布了的、可供用户使用的事物。当然,这只是夸张的说法;许多服务与应用的开发,仍然以快速而灵活地实现业务操作的自动化为目标,就像办公软件的自动化那样。不存在既能操纵车辆又能计算火星漫游者(Mars Rover)的运动轨迹的计算机系统,同样也不存在能够解决所有需求的软件解决方案。同样的计算机系统不可能也不应当——比如说——既要控制胰岛素注射器,又要处理Amazon.com的订单,同时还要为Google跟踪Web链接。多样性是世界的本质特征,而SOA与Web服务就具有这里所说的多样性,因而具有构建更贴近于业务操作(business operations)的IT系统的能力——这是之前的软件方案所不能及的。然而,这要求整个软件产业(不仅仅是IT部门)在观念上的重大转变。很难想象会有在各方面都很内行的硬件厂商;同样地,软件厂商也不会是所有软件方面的专家。专业化生产、以及利用专业化生产得到的组件进行可重用的组装(assembly),正是软件行业所需要。根据这样的设想,软件厂商将变得更加专业,比如专注于进行服务组装而不是提供整个产品。在支持SOA的环境中,企业可能不仅要学会考虑不同执行环境中的服务,还要知道如何用来自各个厂商的组件来组装应用。


    SOA的真正优点体现在部署以后的各阶段中。那时,就可以通过组合现有服务来开发整个或近乎整个新应用。一旦可以通过现有的可重用服务来组合新应用,便可以实现最低成本、最短时间以及最佳投资收益率(ROI)。但是,实现这一点是需要一些时间的,并且需要在服务开发上作相当大的投资。

    重用通用的业务服务(business services)(比如客户姓名查找、邮政编码验证以及信用检查等)的益处是容易理解的。在出现面向服务开发环境之前,这些功能一般是通过在新应用中使用可重用的代码库或类库完成的。而在基于SOA的应用中,这些通用功能以及一些常见的系统功能(比如安全检查、事务协调及审核等)是通过服务实现的。使用服务,不仅减少了需要部署的代码量,而且集中化的代码部署与管理还减轻了管理、维护和支持方面的负担。不过,访问服务的效率是必须要评估的,因为通常使用服务比使用可重用代码库要消耗更多的计算资源。


    成功实现SOA的关键,是为可重用服务库中的每个服务确定正确的设计与功能。这些服务一定要反映机构的运营特点,比如如何申请授权、如何管理隔夜现金(overnight cash)以及如何把集装箱从货船移到卡车上,等等。SOA要将业务的运营特性自动化,而成功的SOA项目应确保可重用的软件服务(software services)与实际的业务流程(business processes)完全一致。业务流程与其软件实现的良好配合与协调,令业务的运营流程可以根据外界环境的变化作出快速变化,从而令机构能够适应发展的需要。


    CORBA vs. Web Services for SOA

    实现SOA,用CORBA还是Web服务

    熟悉CORBA标准的人经常会说,Web服务就是用XML实现的CORBA,并例举出Web服务比CORBA缺少的种种特性。其实,不少CORBA部署都是面向服务的架构(SOA),而且CORBA的初衷与Web服务的目标也非常相似。有些人会说,CORBA未能取得广泛成功,源于商业上的政治因素;虽然这么说有点道理,但CORBA在早期没有为互操作定义标准,也确实阻碍了其自身发展。过去,在被问及这一点时,OMG的人总是说:“这是留给厂商和用户们去完成的”;其言下之意就是(有时也直接这么说),如果你已经定义了标准接口,那么互操作就不成问题了。Web服务是基于SOAP的,而后者是一个互操作标准。在使用SOAP时可以不使用WSDL(许多人都是这么做的),这体现了CORBA和Web服务的区别。在CORBA中,如果要实现传输的互操作,就必须使用CORBA的接口定义语言(Interface Definition Language,IDL);实际上,所有与互操作相关的代码都是由IDL生成的。许多Web服务工具包,也支持根据WSDL生成代理(proxy)和桩(stub)代码,而且还能生成SOAP消息。但这只是一种选择,并不是SOAP标准的规定。从技术角度上看,几乎所有Web服务能实现的,用CORBA 也都可以实现;


    并且对某些应用来说,CORBA仍是一个较好的选择。但是从人的角度来看,Web服务最重要的方面在于:不熟悉CORBA或不了解分布式计算及Web服务的人,也能容易地学习并使用之,而且互操作性要比缺少的某些特性更为重要。


    Challenges to Adoption

    影响SOA被接受的诸多因素

    影响SOA被接受的主要因素在于:必须投入足够的人员进行训练,并保持相当的能力,才能确保所开发的服务是可重用的。任何技术,无论看上去多么有前途,都有被误用的可能。服务的开发,不应只顾及眼前利益,也要(或许是更重要的)考虑长期利益。换句话说,各个服务的单独存在并无太大价值,除非这些服务能与其他服务一起被其他应用所使用,并能用于合成各种新的应用。另外,为可重用服务进行准确的定义也并非一蹴而就的。

    另一个因素是短期成本的管理。构建一个SOA的成本并不低;对现有系统进行再工程(reengineering)的耗费是巨大的,并且回报期也比较长。所以,应由业务分析师来定义业务流程(business processes),由系统架构师来将流程(processes)变为规约(specifications),再由软件工程师来开发新的代码,而项目经理要跟踪整个过程。

    再一个因素就是:某些应用要加以调整后才能融入SOA,某些应用可能还没有可以支持服务的调用接口,有些应用仅能通过文件传输或者通过对数据输入/输出进行批处理来访问,因此需要借助另外的程序才能融入SOA。

    当然,逐渐采用SOA,并在能够产生重大商业影响的场合利用SOA,可以减缓困难


    和分摊成本,尤其是在可用服务来解决战术问题的时候。因此,接受Web服务与SOA,在某种程度上就是要识别哪些是可以通过解决当前的困难(比如集成J2EE和.NET框架应用)而立即受益的项目,并同时设立用于部门或企业SOA的基金。


    What Web Services Are Good For

    Web服务有什么好处

    你会在一些Web服务的文献中看到一些有关Web服务所不适用的场合(比如任务关键型(mission-critical)应用的开发与部署)的讨论。但是,认为Web服务不适于构建任务关键型应用的观点是不正确的。你也会看到一些关于为特定的数据类型(比如客户ID、客户姓名等)识别“黄金副本(golden copy)”(也称作“单一引用”)[4]数据项实例的讨论。虽然这确实是一个有待解决的问题,但它并不应由Web服务来解决——即它应在SOA层而不是在Web服务层上解决。这些讨论常常反映出对Web服务以及Web服务所要解决问题的不了解。虽然人们容易理解“工场里的一个工具不可能用于各种用途”的道理,但是他们却会对Web服务抱有错误的想法,认为Web服务必须适用于先前其他技术所适用的所有场合。他们认为,每一轮新技术,都会以某种方式取代上一轮技术或之前的所有技术。Web服务不仅为解决IT问题增加了新技术,而且还提供了一种不同的解决方案;另外,Web服务具有的新能力,令它能够解决集成方面的难题。其实Web服务并不是一种替代技术,它不同于一种新的编程语言(比如Java、C#等),因此不要认为它必须具有那些成功的编程语言所具有的各种主要特征。Web服务也不同于像J2EE、CORBA及.NET框架那样的中间件系统。Web服务是基于XML的接口技术;Web服务是非可执行的,它没有执行环境,需要依赖其他技术来创建执行环境。你只有根据Web服务的特

    点、功能和能力来重新考虑你的IT方案,才会获得应有的优点。成功地应用Web服务技术,需要一个对待技术的思想转变,而不是学了新原理却用旧方法来构建和部署系统。Web服务总是需要进行技术融合的;因此,不仅要知道Web服务取代了什么,还需要了解Web服务增添了什么。

    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/26 10:11:00
     
     dongtg 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(Java考了96分!)
      文章:23
      积分:311
      门派:XML.ORG.CN
      注册:2006/3/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给dongtg发送一个短消息 把dongtg加入好友 查看dongtg的个人资料 搜索dongtg在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看dongtg的博客5
    发贴心情 
    太好了。感谢楼主!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/7/26 21:07:00
     
     mailhzw 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:16
      积分:129
      门派:XML.ORG.CN
      注册:2006/4/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给mailhzw发送一个短消息 把mailhzw加入好友 查看mailhzw的个人资料 搜索mailhzw在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看mailhzw的博客6
    发贴心情 
    不错,呵呵
    向楼主学习
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/18 20:31:00
     
     qwun 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:97
      门派:XML.ORG.CN
      注册:2006/10/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给qwun发送一个短消息 把qwun加入好友 查看qwun的个人资料 搜索qwun在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看qwun的博客7
    发贴心情 
    不错,太好了,继续啊
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/21 18:39:00
     
     qwun 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:97
      门派:XML.ORG.CN
      注册:2006/10/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给qwun发送一个短消息 把qwun加入好友 查看qwun的个人资料 搜索qwun在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看qwun的博客8
    发贴心情 
    同情一下了
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/21 18:50:00
     
     xiechuhui 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:37
      积分:304
      门派:XML.ORG.CN
      注册:2005/3/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给xiechuhui发送一个短消息 把xiechuhui加入好友 查看xiechuhui的个人资料 搜索xiechuhui在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看xiechuhui的博客9
    发贴心情 
    十分感谢楼主
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/22 0:17:00
     
     darkluck 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:59
      门派:XML.ORG.CN
      注册:2006/10/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给darkluck发送一个短消息 把darkluck加入好友 查看darkluck的个人资料 搜索darkluck在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看darkluck的博客10
    发贴心情 
    感觉不错, 考虑买一本,不知道书里的示例是不是主要以.NET平台来开发的。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/24 15:01:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Web Services & Semantic Web Services 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/27 21:44:59

    本主题贴数16,分页: [1] [2]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    140.625ms