`
阅读更多
service-oriented architecture,面向服务的体系结构的SOA是一个组件模型,它将应用程序的不同功能单元称为服务通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。
虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。虽然基于 SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。由于它考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。不同之处在于接口本身。SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与 SOA 相似。
然而,现在的 SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。通过使用基于 XML 的语言(称为 Web 服务描述语言(Web Services Definition Language,WSDL))来描述接口,服务已经转到更动态且更灵活的接口系统中,非以前 CORBA 中的接口描述语言(Interface Definition Language,IDL)可比了。
Web 服务并不是实现 SOA 的惟一方式。前面刚讲的 CORBA 是另一种方式,这样就有了面向消息的中间件(Message-Oriented Middleware)系统,比如 IBM 的 MQseries。但是为了建立体系结构模型,您所需要的并不只是服务描述。您需要定义整个应用程序如何在服务之间执行其工作流。您尤其需要找到业务的操作和业务中所使用的软件的操作之间的转换点。因此,SOA 应该能够将业务的商业流程与它们的技术流程联系起来,并且映射这两者之间的关系。例如,给供应商付款的操作是商业流程,而更新您的零件数据库,以包括进新供应的货物却是技术流程。因而,工作流还可以在 SOA 的设计中扮演重要的角色。
此外,动态业务的工作流不仅可以包括部门之间的操作,甚至还可以包括与不为您控制的外部合作伙伴进行的操作。因此,为了提高效率,您需要定义应该如何得知服务之间的关系的策略,这种策略常常采用服务级协定和操作策略的形式。
最后,所有这些都必须处于一个信任和可靠的环境之中,以同预期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消息传递应该在任何 SOA 中都起着重要的作用

我可以用面向服务的体系结构做什么?
对 SOA 的需要来源于需要使业务 IT 系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT 系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。
下面举一个具体的例子。一个服装零售组织拥有 500 家国际连锁店,它们常常需要更改设计来赶上时尚的潮流。这可能意味着不仅需要更改样式和颜色,甚至还可能需要更换布料、制造商和可交付的产品。如果零售商和制造商之间的系统不兼容,那么从一个供应商到另一个供应商的更换可能就是一个非常复杂的软件流程。通过利用 WSDL 接口在操作方面的灵活性,每个公司都可以将它们的现有系统保持现状,而仅仅匹配 WSDL 接口并制订新的服务级协定,这样就不必完全重构它们的软件系统了。这是业务的水平改变,也就是说,它们改变的是合作伙伴,而所有的业务操作基本上都保持不变。这里,业务接口可以作少许改变,而内部操作却不需要改变,之所以这样做,仅仅是为了能够与外部合作伙伴一起工作。
另一种形式是内部改变,在这种改变中,零售组织现在决定它还将把连锁零售商店内的一些地方出租给专卖流行衣服的小商店,这可以看作是采用店中店(store-in-store)的业务模型。这里,虽然公司的大多数业务操作都保持不变,但是它们现在需要新的内部软件来处理这样的出租安排。尽管在内部软件系统可以承受全面的检修,但是它们需要在这样做的同时不会对与现有的供应商系统的交互产生大的影响。在这种情况下,SOA 模型保持原封不动,而内部实现却发生了变化。虽然可以将新的方面添加到 SOA 模型中来加入新的出租安排的职责,但是正常的零售管理系统继续如往常一样。
为了延续内部改变的观念,IT 经理可能会发现,软件的新配置还可以以另外的一种方式加以使用,比如出租粘贴海报的地方以供广告之用。这里,新的业务提议是通过在新的设计中重用灵活的 SOA 模型得出的。这是来自 SOA 模型的新成果,并且还是一个新的机会,而这样的新机会在以前可能是不会有的。
垂直改变也是可能的,在这种改变中,零售商从销售他们自己的服装完全转变到专门通过店中店模型出租地方。如果垂直改变完全从最底层开始的话,就会带来 SOA 模型结构的显著改变,与之一起改变的还可能有新的系统、软件、流程以及关系。在这种情况下,SOA 模型的好处是它从业务操作和流程的角度考虑问题而不是从应用程序和程序的角度考虑问题,这使得业务管理可以根据业务的操作清楚地确定什么需要添加、修改或删除。然后可以将软件系统构造为适合业务处理的方式,而不是在许多现有的软件平台上常常看到的其他方式。
正如您可以看到的,在这里,改变和 SOA 系统适应改变的能力是最重要的部分。对于开发人员来说,这样的改变无论是在他们工作的范围之内还是在他们工作的范围之外都有可能发生,这取决于是否有改变需要知道接口是如何定义的以及它们相互之间如何进行交互。与开发人员不同的是,架构师的作用就是引起对 SOA 模型大的改变。这种分工,就是让开发人员集中精力于创建作为服务定义的功能单元,而让架构师和建模人员集中精力于如何将这些单元适当地组织在一起,它已经有十多年的历史了,通常用统一建模语言(Universal Modeling Language,UML),并且描述成模型驱动的体系结构(Model-Driven Architecture,MDA)。
可以说:Service-Oriented Architecture是面向服务的架构,是一种分布式的系统构架风格(Architecture Style),OOP使用细粒度的本地对象构建系统,但在分布式应用中,基于性能的考虑,必须控制远程访问的次数,常常基于客户端的要求提供接口,而不是OOADP中使用的基于职责的方式分解类和职责,因此SOA通常采用“粗粒度”对象,如EJB、COM+组件、WebService,每次访问常常是无状态的,基于服务的方式。 (读网有感)
分享到:
评论

相关推荐

    解读SOA :SOA实践方法论

    解读SOA Interpret SOA SOA越来越被企业接受,很多公司都准备规划SOA。但具体怎么上,没有一套很好的方法论是不行的。资料是IBM在长期的摸索中总结的一套SOMA方法论,由于是内部培训资料,所以比较难得。 内容 ...

    面向服务架构(SOA)中南大学SOA原理与技术 00 课程简介(共66页).ppt

    面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...

    SOA.zip_SOA optical_SOA 光_SOA 半导体_VPI SOA仿真_光放大

    **SOA光学与半导体光放大器** 在信息技术领域,特别是在光纤通信系统中,半导体光放大器(Semiconductor Optical Amplifier,简称SOA)扮演着至关重要的角色。SOA是一种利用半导体材料(如镓铝砷化物,GaAs/AlGaAs...

    SOA资源,SOA教程,SOA开发

    SOA资源,SOA教程,SOA开发SOA资源,SOA教程,SOA开发

    SOAOperation_soa开发_SOA_teamcenter_TeamcenterSOA_

    标题"SOAOperation_soa开发_SOA_teamcenter_TeamcenterSOA_"暗示我们将深入探讨Teamcenter中的SOA操作,这通常涉及到在Teamcenter环境中开发和利用SOA服务来增强其功能。SOA开发意味着创建、管理和维护这些服务,以...

    通过Oracle EBS 看SOA

    SOA这个名词,几年前就经帯在网上看到戒者在一些讲座中听到,但自己真正比较“近距离”接触“SOA”,还是在去年的“中国IT精英年会”上,当时IBM大中华区的老总大谈IBM 的SOA,BEA公司(当时还没被Oracle 收购)也讲了很多...

    SOA面向服务架构

    ### SOA面向服务架构知识点详解 #### 一、面向服务架构(SOA)概述 面向服务架构(Service-Oriented Architecture, SOA)是一种组件模型,它将应用程序的不同功能单元(即服务)通过这些服务之间定义良好的接口和契约...

    SOA.rar_SOA_SOA 开发

    **SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计模式,它提倡将功能作为独立的服务,这些服务可以通过网络进行交互,实现模块化、松耦合的系统。在本压缩包“SOA.rar”中,我们主要探讨的是...

    SOA principles & practice(SOA课程课件 10章)

    **服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方式,其核心理念是通过松散耦合的服务来实现业务功能。本课件详细介绍了SOA的原理及其实践,共分为10个章节,旨在提供一个...

    SOA作业及要求,soa

    SOA,即Service-Oriented Architecture(面向服务的架构),是一种设计复杂应用系统的方法论,其核心理念是将应用程序的不同功能单元通过通信协议联系起来,这些单元被称为服务。SOA强调的是服务之间的松耦合,使得...

    soa pdf 关于soa的文章

    ### SOA与SOMA:服务导向架构及建模方法详解 #### 一、引言 随着软件工程的发展,从结构化编程到面向对象编程,再到组件化开发,技术不断演进。在这一过程中,服务导向架构(SOA)成为了一个重要的里程碑。SOA不仅...

    SOA发展历史介绍SOA的发展

    **SOA(Service-Oriented Architecture,面向服务架构)**是一种软件设计范式,它强调通过独立、可重用的服务来构建系统。自20世纪90年代末被提出以来,SOA经历了漫长的发展历程,逐渐成为现代企业信息化建设的重要...

    面向服务架构(SOA)SOA原理与技术 全套PPT课件 共8个章节 含实验指导书.rar

    面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...

    IBM soa 培训教材-SOA 治理

    ### IBM SOA 治理培训教材核心知识点详解 #### 一、为什么需要 SOA 治理? 在企业信息化建设的过程中,随着服务导向架构(SOA)的应用日益广泛,如何确保服务的有效管理成为了关键问题。SOA 治理的重要性在于它...

    SOA从业人员指南 SOA入门资料

    **服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方法,它强调通过松散耦合的服务来实现业务流程的集成和灵活性。本指南将深入探讨SOA的核心概念、优势以及实施策略,帮助从业...

    执行SOA——SOA实践指南

    **执行SOA——SOA实践指南** 在信息技术领域,Service-Oriented Architecture(SOA,面向服务架构)是一种设计和构建软件系统的方法,它强调通过松散耦合的服务来实现业务流程。这篇博客文章和相关的资源集合,...

    SOA最佳实践之深入浅出SOA域模型

    ### 深入浅出SOA域模型:BEA最佳实践解析 #### 一、SOA概念与背景 服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计复杂应用和服务的方式,它强调组件之间的松耦合以及通过标准化协议进行通信的...

    SOA成熟度模型为SOA 护航

    SOA成熟度模型(SOA Maturity Model)可以为IT和业务用户提供一种框架,使其能够正确地评估SOA在企业中的适用性和收益。 在过去的10年中,面向服务的架构(SOA)已经成为应用设计、开发和实施领域中意义最为重大的一...

    Executing SOA (执行SOA)2008

    《Executing SOA: A Practical Guide for the Service-Oriented Architect》是Norbert Bieberstein、Robert G. Laird、Dr. Keith Jones与Tilak Mitra四位资深SOA实践者共同编著的一本深入探讨服务导向架构(SOA)...

Global site tag (gtag.js) - Google Analytics