浅析SOA三层体系结构及发展状况
- 格式:doc
- 大小:35.00 KB
- 文档页数:4
什么是SOA1。
背景IT行业就是术语和缩写流行的行业,各大厂商都喜欢隔三差五地推出一些新概念。
为了不落人后,大家都喜欢争先恐后地跟进。
有深入研究、务实研发的供应商,能够将概念落地,不断推出创新的产品和服务,赢得竞争优势.但“贴标签”的也大有人在,而且趋势是越贴越多,跟风炒作,“鱼目混珠,泥沙俱下",以至于“混绕视听”了。
SOA就是这俱多“三字母”缩写的概念之中的最流行和热门的一个。
但目前,SOA概念和解决方案,话语权方面基本上被国外巨头所控制,特别是大的中间件厂商。
但是真正能够完整实现SOA的落地解决方案和案例很少,刻意包装的成分比较多,特别是应用架构方面。
重技术,轻方法论,造成企业实施SOA缺乏足够的架构方法、SOA治理、SOA实施运维方面的最佳实践,因此企业实施SOA缺乏系统的指导。
另一方面,国内的不少软件企业,由于不能提供完整意义上的SOA解决方案,只能提供部分的组件,小部分特性符合SOA思想,所以就任意曲解SOA的含义,随意解析SOA的概念。
以至于国内没有一家软件企业不宣传SOA,不宣称其产品符合SOA架构的.由此造成,许多企业和客户对SOA是非常茫然的,对SOA的价值也转向怀疑和抵触。
这种厂商之间的无序竞争,不利于国内企业的自主创新,也不利于企业导入和实施有效的SOA,实现SOA的商业价值。
本文试图就SOA的来龙去脉,外延内涵和前世今生,来一个全面的阐释。
一家之言,权作业界参考,希望带动大家做一些更深入的思考。
文章比较长,如果兴趣不够,也可以就此打住.2. 为什么需要SOASOA的出现不仅仅是厂商炒作的结果,本质上是两种力量驱动的结果:需求拉动、技术推动.业务需求的拉动,希望解决业务应用的问题;技术发展的推动,使得SOA具备了技术上的可行性,软件技术的发展推动了IT创新的商业价值.2。
1.需求拉动需求拉动方面,主要来自于两种信息化的困境。
一个是“信息孤岛”造成基于系统之间互联互通的整合需求;另一个是业务的变化所导致对IT灵活性,以适应变化的需求。
SOASOA是一种软件架构SOA的核心概念SOA架构的特点:1、松散耦合2、分离关注点(业务和技术)SOA的引入分为四个阶段,成熟度模型1、第一个阶段:现有业务系统或新系统中服务的发现、设计和实现(服务化)2、第二个阶段:引入ESB,对系统提供的服务进行集中管理3、第三个阶段:使用BPEL流程,以快捷的交付业务功能4、第四个阶段:SOA治理总线的优点:解耦、标准化、灵活地扩展ESB的主要职能:服务的路由、协议的切换、内容的转换将来SOA的集成主要应用四大领域1、应用集成(服务集成):面向应用系统的服务互操作(Web Services、IBM MQ、Active MQ)2、界面集成:用统一的界面展示企业内多系统(Portal)3、业务流程集成:使用BPEL技术将服务编排成流程(WPS,Oracle BPEL)4、数据集成:面向海量数据异构数据库的汇集处理(数据交换:ETL产品)DataStage开发SOA架构思路1、设计整体系统总览图(分析待开发、待改造的业务系统的涵盖领域)2、对IT系统进行系统内和系统间的服务的分析设计思路:首先从系统间集成的要求来发现系统内的服务,然后进行分解成系统内的原子服务3、根据业务要求进行设计制定流程,并指定流程中包含的活动和使用的服务。
4、定义使用外部服务,和进行新服务的开发5、通过服务的组合和编排来推出新的流程注:流程指的BPEL流程基于SOA思想的技术架构一、规范SOA的规范:SCA、SDO、BPEL流行的松散耦合技术规范:Web Service(WSDL、SOAP、UDDI)Portal方面的规范:Portlet规范二、技术框架SCA、SDO的框架:apache-tuscany-sca,apache-tuscany-sdoWeb Service框架:Axis1/2;XFire;CXF;Spring WS.NET平台:VS2005,需要安装Web Services Enhancements (WSE) 3.0 for Microsoft .NETVS2008/VS2010,WCF(Windows Communication Foundation)三、产品ESB Server/Process Server/Portal Server/消息中间件商业:IBM系列:IBM WebSphere ESB Server/IBM Message Broker;IBM WebSphere Process Server;IBM WebSphere Portal Server;IBM WebSphere MQOracle/BEA系列: Oracel Aqulogic Service Bus;Oracle BPEL Server;Oracle Portal ServerMicrosoft系列:Microsoft BizTalk Server;Windows Workflow Foundation;SharePoint Portal Server ;Windows Communication Foundation开源系列:ESB:JBOSS ESB,Mule;apache-servicemixProcess: JBOSS JBPM,ActiveBPELPortal:Apache JETSPEED...消息中间件:ActiveMQSOA案例1、ESB2、BPEL。
SOA的架构层次面向服务的架构(SOA)是一种灵活、松耦合的系统设计方法,它将应用程序的不同功能单元(称为“服务”)通过这些服务之间定义良好的接口和契约联系起来。
这种方法使得系统中的服务可以以一种统一和通用的方式进行交互,从而实现了系统的高内聚、低耦合。
本文将深入探讨SOA的架构层次,分析其各个组成部分及其在系统设计和实现中的作用。
一、服务层服务层是SOA架构的核心,它包含了一组可复用的、粗粒度的服务。
这些服务是业务逻辑的封装,具有明确的接口定义,可以独立部署和升级。
服务层的设计需要遵循一定的原则,如服务的无状态性、服务的自治性、服务的可发现性等。
这些原则保证了服务的可靠性、可维护性和可扩展性。
二、服务注册与发现层服务注册与发现层负责服务的注册、查找和管理。
当一个新的服务被创建并部署到系统中时,它需要在服务注册中心进行注册,将自己的接口定义、访问地址等信息发布到注册中心。
其他服务或客户端可以通过服务发现机制在注册中心查找所需的服务,并获取其访问信息。
这一层为系统提供了动态的服务绑定能力,使得服务之间的依赖关系更加灵活和可扩展。
三、传输层传输层负责数据的传输和通信。
在SOA架构中,服务之间的通信通常基于开放的标准协议,如HTTP、SOAP、REST等。
这些协议保证了服务之间的互操作性和跨平台性。
传输层还需要处理诸如消息格式转换、加密解密、压缩解压缩等底层细节,以确保数据的完整性和安全性。
四、业务流程层业务流程层负责将服务组合成业务流程。
一个业务流程可能涉及多个服务的协同工作,以完成某个具体的业务目标。
业务流程层通过编排和协调这些服务,实现了业务流程的自动化和智能化。
此外,业务流程层还可以根据业务需求对服务进行动态调整和优化,以提高系统的响应速度和资源利用率。
五、表示层表示层是系统的用户界面,负责与用户进行交互。
在SOA架构中,表示层可以通过调用服务层提供的服务来获取数据并进行展示。
由于服务层提供了统一的接口和数据格式,表示层可以更加灵活地设计和实现用户界面,以满足不同用户的需求和偏好。
SOA应用系统总体框架及相关概念■ 庞引明看到SOA的一堆名词,读者可能会感到迷惑,有必要结合实际的应用环境进一步阐释SOA的相关概念。
总体框架图1所示的就是一个SOA应用系统的大体框架结构。
它大体上可以分为五个部分:● 展现层(presentation):图1中5区,通过portal等技术建立展现平台,方便用户在这个界面上提出服务请求。
● 业务处理建模(business process modeling):图1中的4区,SOA元模型从MDA中继承了平台无关模型来对业务处理过程建模。
这一部分独立于服务设计和部署层。
模型驱动架构MDA(Model Driven Architecture)的主要缺陷是在模型设计阶段就对需求有完整的描述,而且没有需求变更的反馈机制。
SOA通过添加敏捷方法AM来应对需求变更的情况。
● 服务层(Services): 图1中的3区,整个SOA的核心层,它承上启下,对上响应业务模型,对下调用相关组件群完成业务需求,形成“业务驱动服务、服务驱动技术”的SOA事务处理格局。
服务可以根据粒度分层。
虽然细粒度提供了更多的灵活性,但同时也意味着交互的模式可能更为复杂。
粗粒度降低了交互复杂性,但敏捷性却下降。
● 企业组件层(enterprise components):图1中的2区,这里是相关组件发挥作用的场所。
这些组件是平台相关的。
因为到了这一层,许多底层软硬件平台的特性已经不再透明了。
● 系统软件层(Operational System):图1中的1区,这一层包括操作系统、数据库管理系统、CRM、ERP、商业智能(BI)等异构系统,是一个集成的平台。
除此之外,诸如QoS、安全性等(图1中7区)也是SOA架构的组成部分。
在上面的介绍中,自上而下有一条线,如图2所示,由业务建模开始,通过定义业务过程,得到服务模型,它是平台无关的,实现了模型与实现的分离。
再通过设计组件群,得到平台相关的组件模型。
集团企业信息化问题:信息孤岛太多信息不一致,难以整合业务跨Internet运作,技术异构,难以协同业务变化快,僵化的IT基础设施难以迅速响应互连互通是当前信息化中的核心问题和核心需求!IT问题:平台异构性数据异构性网络环境的易变性业务过程易变性新的业务需求:互连互通(系统之间、上下之间)快速开发业务灵活性上下游业务协同;分布式系统的发展:(投资回报率和系统管理质量越来越高、总体拥有成本越来越低)地点集中化:重新将服务器安置到数目更少的地点中物理整合:相同的架构或相同的应用从小服务器并到大服务器上分布式集成:整合到共同的系统管理存储中企业服务总线:应用系统的互连互通、更完善的IT组织体系、更规范的IT 战略与规划程序设计语言的发展:(抽象级别越来越高)命令式程序设计(Fortran、Cobol)函数式程序设计(Lisp、Prolog)过程式程序设计(C、Pascal)面向对象程序设计(C++、Java)面向服务程序设计(WebService)IT架构的发展推动(更高的灵活性):传统架构,基于消息传递的模式:应用之间点对点的连接、实现简单、基本的信息交互和数据传递过度架构,企业应用整合:通过Hub模式实现应用之间的整合、很容易管理大量的连接和系统先进架构(SOA),面向服务体系架构:通过企业服务总线实现服务的整合集中和流程实现、借助标准的接口灵活地连接,实现真正的随需应变;SOA关键特性:开放的技术标准支持快速开发部署平台无关标准接口分布式部署支持互联网http松耦合动态绑定可重构SOA是IT系统快速适应业务的实现方法企业IT需求:多个IT系统供应商(技术路线)多个不同业务架构的应用系统跨地域分布式部署业务易于变化组织和流程变革频繁如何理解SOA:SOA是一个不断解构的过程SOA是一个组件粒度的平衡SOA是架构、更是方法SOA的核心要素:标准化复用松耦合可编排SOA的目标:灵活可变的IT系统服务的本质是标准封装服务(Service):业务角度而言,服务一个可重复的任务,例如:检查帐号余额….. 流程(Process):由一系列相互关联的任务组成,实现一个具体的业务功能。
面向服务的体系结构(Service-Oriented Architecture,SOA)是一种分布式运算的软件设计方法。
这种架构方式中的软件组件(调用者),可以通过网络上的通用协议调用另一个应用软件组件进行运行和操作。
SOA的核心思想是将应用程序拆分成一组相互独立的服务,这些服务可以独立部署、升级和扩展,从而提高了应用程序的灵活性和可维护性。
在SOA中,服务是定义明确的、独立的功能单元,它们通过网络接口进行通信和交互。
这些服务可以使用公共接口标准和架构模式,因此可以快速整合到新应用中。
此外,SOA的关键技术包括UDDI (Universal Description,Discovery,and Integration)、WSDL(Web Services Description Language)、SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)等。
值得一提的是,企业服务总线(Enterprise Service Bus,ESB)在SOA中扮演着重要的角色。
它是一个中央的、可重用的基础设施组件,被用于协调和组织分布式系统中的各个服务之间的通信和交互。
总的来说,SOA提供了一种更加灵活、可扩展和易于管理的软件架构方法,它已经成为许多企业和组织的首选架构模式。
软件架构-SOA架构的认识分析
SOA基础理解
SOA即⾯向服务架构(service-oriented architecture),也透露着“分层思想”,其中“服务”为可“分层的服务”,上层服务使⽤下层单元提供的服务 - 类似于“计算机⽹络的分层架构”。
参考其他的⽂章,将“服务”分为:应⽤服务(原⼦服务),组合服务,业务服务,⽆论怎样分类,都要明确“服务的单⼀性”,即每⼀个服务单元只提供⼀种服务或者说只有⼀种功能。
对于上层服务使⽤下层提供的服务,便要求对服务的使⽤的就要标准化,就有了:合同,地址,邦定,简单讲就是定义标准的接⼝(参数,返回值),怎么访问服务,在哪访问服务。
⼀个⽹站的发展问题:
随着⽹站访问量增加,仅仅靠增加机器已不能满⾜系统的要求,于是需要对应⽤系统进⾏垂直拆分和⽔平拆分。
在拆分之后,各个被拆分的模块如何通信?如何保证性能?如何保证各个应⽤都以同样的⽅式交互?这就需要⼀种负责各个拆分的模块间通信的⾼性能服务框架
实例:淘宝的架构变迁
详参:
在淘宝的架构变迁中它解决的⾯向服务的⼏个问题:
1 如何将业务逻辑功能抽象成⼀个个原⼦服务,对服务进⾏封装和组合,并基于分布式系统环境部署,以实现更灵活的业务逻辑和流程。
2 如何从业务视⾓厘清这些服务的关系,对⼤规模分布式系统中的单条服务调⽤链进⾏跟踪与展现,并能够及时发现服务调⽤异常。
上述问题的解决可总结为 - ”对业务逻辑的优化“
优化的⼀个⽅向便是:服务化,将业务逻辑抽象成⼤⼩不同的服务。
SOA简介1、SOA的发展SOA是英文Service Oriented Architecture的缩写,称作面向服务架构。
1996年Gartner首次提出这个概念,认为它是“帮助组织在多个应用和部门间共享业务逻辑和数据的一种设计风格”,但SOA并未引起业界广泛关注。
当时企业用户更多关注的是建设独立业务应用系统。
随着IT应用的深入,这些不同时期、不同部门的孤立系统逐渐和业务发生了矛盾。
一方面,不同部门的业务是彼此关联的,相应的IT系统必须能够相互支撑;另一方面,业务是不断变化的,要求IT能够快速适应变化,也需要重用原有IT系统资源。
因此,不同IT系统的应用集成(Application Integration)成了用户重要的建设任务。
不同系统间使用什么样的接口、采用什么样的连接结构,是用户集成方案中必须考虑的一个重要问题。
经过早期“P2P点对点直连”方式造成的“紧耦合”混乱,到后来EAI的“Spoke-and-Hub 辐条和集线器方式”的“单点瓶颈”问题,人们开始寻找“松耦合”的解决方案。
P2P点对点直连的架构方式Spoke-and-Hub 辐条和集线器架构方式(1)接口协议、实现各异,接口实现技术紧耦合(1)传输、转换、路由中心统一处理,单点依赖(2)系统一旦很多就产生混乱(2)中心庞大复杂、单点瓶颈、难以扩展随着Web Service在2002年左右被业界普遍看作是实现系统间“松耦合”的最佳接口方式,Gartner提出的SOA设计风格得到了IT界追捧。
Gartner也重新将SOA解释为“面向接口的架构”,认为“整个应用建设可以被描述为接口、接口实现、接口调用的拓扑”。
经过多年的实践,SOA相关技术逐步发展并在解决用户实际问题中发挥作用,如何实现SOA的工程方法也不断涌现,IT用户也看到了实施SOA带来的价值回报,自2007年起,基于SOA方法和技术实施的应用集成项目也逐渐成为应用集成的主流。
2、SOA的理解虽然至今很难找到SOA的准确定义,但大家普遍接受的观点是,SOA是一种指导构建大型分布式系统的设计思想、或是一种范型(Paradigm)。
soa结构体系SOA(Service-Oriented Architecture)是一种软件架构体系,它将应用程序的功能划分为可重用的服务,这些服务可以通过网络进行交互和组合,以实现业务流程的自动化。
SOA的核心思想是将应用程序的功能划分为服务,这些服务可以独立开发、测试、部署和管理,从而提高应用程序的灵活性、可重用性和可维护性。
SOA的架构体系包括四个主要组成部分:服务提供者、服务消费者、服务注册中心和服务总线。
服务提供者是提供服务的应用程序,服务消费者是使用服务的应用程序,服务注册中心是管理服务的注册和发现,服务总线是实现服务之间的通信和协调。
SOA的优点在于它可以提高应用程序的灵活性和可重用性。
通过将应用程序的功能划分为服务,可以使得应用程序的不同部分可以独立开发、测试、部署和管理,从而提高应用程序的灵活性。
同时,由于服务可以被多个应用程序共享,可以提高应用程序的可重用性,减少重复开发的工作量。
SOA的另一个优点在于它可以提高应用程序的可维护性。
由于应用程序的不同部分可以独立开发、测试、部署和管理,可以更容易地进行维护和升级。
同时,由于服务可以被多个应用程序共享,可以更容易地进行版本控制和升级。
SOA的实现需要考虑一些关键问题,如服务的设计、服务的注册和发现、服务的安全性和服务的可靠性。
服务的设计需要考虑服务的接口、服务的实现和服务的数据模型。
服务的注册和发现需要考虑服务的命名、服务的描述和服务的查找。
服务的安全性需要考虑服务的认证、服务的授权和服务的加密。
服务的可靠性需要考虑服务的容错、服务的恢复和服务的监控。
SOA是一种重要的软件架构体系,它可以提高应用程序的灵活性、可重用性和可维护性。
SOA的实现需要考虑一些关键问题,如服务的设计、服务的注册和发现、服务的安全性和服务的可靠性。
SOA 的应用可以帮助企业实现业务流程的自动化,提高企业的效率和竞争力。
soa概念SOA概念随着信息技术的不断发展,企业面临着越来越多的挑战。
为了提高企业的竞争力和灵活性,SOA(Service-Oriented Architecture,面向服务的架构)应运而生。
SOA是一种软件设计模式,它将应用程序构建为可重用的服务,并通过这些服务来实现业务流程。
一、什么是SOA1.1 SOA定义SOA是一种面向服务的架构,它将应用程序构建为可重用的服务,并通过这些服务来实现业务流程。
SOA通过标准化接口和协议来实现不同应用程序之间的互操作性。
1.2 SOA特点(1)松散耦合:各个服务之间相互独立,可以单独进行开发、测试、部署和维护。
(2)可重用性:每个服务都是独立的功能单元,可以在不同的应用程序中被重复使用。
(3)灵活性:可以根据需要添加、删除或修改服务,以适应不断变化的业务需求。
(4)标准化接口和协议:通过使用标准化接口和协议,不同应用程序之间可以进行无缝集成。
二、SOA架构2.1 SOA层次结构SOA架构包括四个层次:服务消费者、服务提供者、服务注册与发现、服务总线。
(1)服务消费者:使用SOA提供的服务。
(2)服务提供者:提供SOA的服务。
(3)服务注册与发现:将所有可用的服务进行注册,以便其他应用程序可以找到它们并使用它们。
(4)服务总线:将所有的应用程序连接起来,使它们可以相互通信和交换数据。
2.2 SOA组件SOA架构包括以下组件:(1)业务流程管理器:负责管理业务流程中的各个步骤和任务,并将其映射到相应的服务上。
(2)消息传递机制:负责在不同应用程序之间传递消息和数据。
(3)安全性管理器:负责保护SOA中的数据和信息安全性。
(4)事务处理管理器:负责处理SOA中的事务,并确保数据一致性和完整性。
三、SOA优点3.1 提高业务灵活性由于SOA采用松散耦合的设计,因此可以根据需要添加、删除或修改服务,以适应不断变化的业务需求。
这使得企业可以更快地响应市场变化,从而提高了企业的竞争力和灵活性。
SOA架构综述摘要:本文主要是介绍SOA架构的概念、基本特征、主要优点、实施目的和意义等,以便更好的了解SOA的相关知识。
关键词:SOA架构引言:最近半年以来,在企业级应用开发领域SOA(Service-Oriented Architecture,面向服务架构)是一个非常热门的领域。
它在企业管理、企业交互协同方面具有较大的优势,是未来企业管理的一个新方向。
那么SOA究竟拥有什么样的魔力,能够让众多的软件厂商对他趋之若骛,掀起新一轮企业架构浪潮。
正文:一、什么是SOA架构SOA是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。
服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA的关键是“服务”的概念。
它是作为一种面向服务的架构,是一种软件架构设计的模型和方法论。
从业务角度来看,一切以最大化“服务”的价值为出发点,SOA利用企业现有的各种软件体系,重新整合并构建起一套新的软件架构。
这套软件架构能够随着业务的变化,随时灵活地结合现有服务,组成新软件,共同服务于整个企业的业务体系。
简单的理解,我们可以把SOA看作是模块化的组件,每个模块都可以实现独立功能,而不同模块之间的结合则可以提供不同的服务,模块之间的接口遵循统一标准,可以实现低成本的重构和重组。
在SOA的技术框架下,可以把杂乱无章的庞大系统整合成一个全面有序的系统,从而增加企业在业务发展过程中应用系统的灵活性,实现最大的IT资产利用率。
虽然,目前不同厂商或个人对SOA有着不同的理解,但是对于SOA的几个关键特性的认识却是一致的:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。
需着重注意的是,SOA并不是新生事物。
大型IT组织成功构建和部署SOA 应用已有多年的历史。
但SOA并不是一种现成的技术,而是一种架构和组织IT 基础结构及业务功能的方法。
浅析:SOA三层体系结构及发展状况简介实践论认为:从实践提升到理论,再由理论指导实践,由此向前发展。
目前SOA的发展的情况正是如此,通过不少实践,SOA的模型己经被公认为标准规范,目前是正需要进一步总结上升到理论的时候了。
当前国内要发展SOA主要有三方面工作:方法、工具和环境。
方法是工程技术,由基础理论来指导提出的。
所以一门科学必需要包括:认知科学(哲理)、工程技术和方法、最后是理论。
架构的演化过程SOA是从面向对象、构件架构等逐步发展完善,且相互依托、相互补充、又各自适应不同范围,因此在讨论SOA理论时,要了解它是如何演化过程来,继承了哪些理论体系,其适应度如何。
结构编程方法40年前国际上发生了“软件危机”,如IBM公司开发一个操作系统,或美国的航空公司开发飞机订票系统,都花费了上千人数年的工作量。
它开发周期长、而开发出来的产品却是错误很多,难以维护和适应修改。
正在此时,一位荷兰的物理家E.W.Dijkstra提出了一种“结构程序设计方法”,他认为:人的智力是有限的,采用数学或物理学的思维方法,用枚举、抽象、归纳、类比等思维方式简化问题。
由于我也是数学系毕业的,我拜读了他的所有论文,就编写一本著作《编程方法学》。
用此方法扩展到软件设计中时,称为“结构化分析和结构化设计(SASD)”。
所谓“结构程序设计方法”,就是基于面向对象设计方法的早期蓝本,侧重於解决程序正确性的编程的方法,以此为基础建立了软件工程这门学科,建立了编程的基础理论体系,也是第一个技术与基础理论体系。
“面向对象”的可重用理论我们都知道由面向对象发展到面向构件,由面向构件再发展到面向服务,因此它们的认知观和基础理论都是息息相关的。
解决大型软件的开发效率和质量除了要解决编程的正确性外,还必需解决开发周期长、复用性差、成本高、文档多以及难以适应系统演化等问题,这些问题十多年来仍旧困惑着这门学科,“软件危机”仍未解决。
人们的知识是从一个定理、一个原理逐步积累起来的,社会是依靠知识的不断积累发展的。
1 概述1.1 SOA基本概念和特性SOA基本概念已经得到了广泛的宣传,也被众多厂商和用户所接受。
SOA作为一种新的软件开发范型,通过松耦合方式更好的实现了软件资产的复用,因而可以很方便地构建业务敏捷的应用系统,以应对不断变化的市场环境和用户需求。
SOA给我们带来具体益处包括:在技术层面带来的好处有:开发过程更有效,能够缩短开发周期更利于软件资产的重用简化应用系统的维护工作增量采纳,在统一的规划下,应用系统可以通过试点后分步骤建立实现流畅的演进,可以逐步改进业务目标在业务层面带来的好处有:增强业务机动性,有更好敏捷性更好的配合业务,可以优化业务框架改善客户满意度提高现有IT资产的投资回报率降低集成成本,节省费用降低对厂商的依赖和降低转换成本,获得技术的独立性SOA将是未来很长一段时间内实现应用系统集成的主要技术思想和方法。
随着相关技术的成熟和完善,SOA设计方法和技术也将更广泛地应用于一般大型应用系统构建中。
如同采用已有的技术方法实现应用系统一样,采用SOA的思想和方法同样需要考虑系统的分布式问题、可靠性问题、安全问题、QoS(服务质量)问题、控制策略问题和管理问题。
1.2 SOA应用场景当前最适于采用SOA方法与技术来构建的应用系统主要场景是各种系统间的集成,包括数据集成、业务集成和界面集成。
由于技术原因在当前阶段,SOA 方法与技术还不适用于单个应用系统的建立。
当前可能的主要应用场景包括:跨部门资产(资源)联合使用组织内部或组织之间应用整合需要,可以适应未来变化,实现对已有资产(资源)的保护,简化开发互联网环境下虚拟企业的建立,可以利用互联网上的服务进行组合提供新的业务服务为用户提供多渠道支持服务,服务接口的统一,有利于服务展现方式和服务渠道的多样化1.3 SOA开发方法采用SOA思想和方法开发应用系统时仍然经历软件开发生命周期中的各主要阶段,但SOA应用开发更强调对已有资产的封装、管理与有效重用。
SOA系统架构调研一.S OA原理与应用1.SOA原理2.SOA技术构成3.SOA实施应用4.SOA治理二.开源SOA优势与劣势及选型标准1.开源SOA优势2.开源SOA劣势3.选型标准三.开源SOA选型1.Mule2.Apache ServiceMix3.JBoss ESB4.Apache Synapse5.选型建议四.工作流原理与选型1. 工作流原理与应用2. 开源工作流选型五.视频发布系统服务体系结构1.服务模块详述1.1.视频编辑服务1.2.网络管理服务1.3.服务器管理服务1.4.中级服务器管理服务1.5.终端管理服务1.6.手机视频发布服务1.7.指纹管理服务2.服务结构体系六. 视频发布系统SOA架构解决方案1.视频发布系统SOA架构一.SOA原理与应用1.SOA原理SOA(Service-oriented architecture,面向服务架构)。
SOA的价值在于跨越了不同应用系统、不同技术的整合,这种整合改变现有的商业模型。
SOA是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范。
这个定义决定了SOA的广泛性。
SOA要求开发者从服务集成的角度来设计应用软件,即使这么做的利益不会马上显现。
SOA要求开发者超越应用软件来思考,并考虑复用现有的服务,或者检查如何让服务被重复利用。
SOA鼓励使用可替代的技术和方法(例如消息机制),通过把服务联系在一起而非编写新代码来构架应用。
经过适当构架后,这种消息机制的应用允许公司仅通过调整原有服务模式而非被迫进行大规模新的应用代码的开发,使得在商业环境许可的时间内对变化的市场条件做出快速的响应。
SOA也不仅仅是一种开发的方法论--它还包含管理。
应用SOA后,管理者可以方便的管理这些搭建在服务平台上的企业应用,而不是管理单一的应用模块。
其原理是,通过分析服务之间的相互调用,SOA使得公司管理人员方便的拿到什么时候、什么原因、哪些商业逻辑被执行的数据信息,这样就帮助了企业管理人员或应用架构师迭代地优化他们的企业业务流程、应用系统。
SOA面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。
这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。
松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。
而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。
我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。
虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。
虽然基于SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。
由于它考虑到了系统内的对象,所以虽然SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。
不同之处在于接口本身。
SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与SOA 相似。
然而,现在的SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。
浅析:SOA三层体系结构及发展状况
简介
实践论认为:从实践提升到理论,再由理论指导实践,由此向前发展。
目前SOA的发展的情况正是如此,通过不少实践,SOA的模型己经被公认为标准规范,目前是正需要进一步总结上升到理论的时候了。
当前国内要发展SOA主要有三方面工作:方法、工具和环境。
方法是工程技术,由基础理论来指导提出的。
所以一门科学必需要包括:认知科学(哲理)、工程技术和方法、最后是理论。
架构的演化过程
SOA是从面向对象、构件架构等逐步发展完善,且相互依托、相互补充、又各自适应不同范围,因此在讨论SOA理论时,要了解它是如何演化过程来,继承了哪些理论体系,其适应度如何。
结构编程方法
40年前国际上发生了“软件危机”,如IBM公司开发一个操作系统,或美国的航空公司开发飞机订票系统,都花费了上千人数年的工作量。
它开发周期长、而开发出来的产品却是错误很多,难以维护和适应修改。
正在此时,一位荷兰的物理家E.W.Dijkstra提出了一种“结构程序设计方法”,他认为:人的智力是有限的,采用数学或物理学的思维方法,用枚举、抽象、归纳、类比等思维方式简化问题。
由于我也是数学系毕业的,我拜读了他的所有论文,就编写一本著作《编程方法学》。
用此方法扩展到软件设计中时,称为“结构化分析和结构化设计(SASD)”。
所谓“结构程序设计方法”,就是基于面向对象设计方法的早期蓝本,侧重於解决程序正确性的编程的方法,以此为基础建立了软件工程这门学科,建立了编程的基础理论体系,也是第一个技术与基础理论体系。
“面向对象”的可重用理论
我们都知道由面向对象发展到面向构件,由面向构件再发展到面向服务,因此它们的认知观和基础理论都是息息相关的。
解决大型软件的开发效率和质量除了要解决编程的正确性外,还必需解决开发周期长、复用性差、成本高、文档多以及难以适应系统演化等问题,这些问题十多年来仍旧困惑着这门学科,“软件危机”仍未解决。
人们的知识是从一个定理、一个原理逐步积累起来的,社会是依靠知识的不断积累发展的。
然而编制软件每次却都是从零开始,这是造成“软件危机”的根本原因。
由此提出了编程工作是否也可以重用以前成功的经验和程序呢?整整经过十多年的探索,到七十年代才获得成功。
我曾经用此方法设计了一个大型操作系统,这套方法和理论在产品开发和科研领域方面用得很多,因此我称它为第二个技术与基础理论体系。
面向构件和架构
鉴于面向对象的缺陷,三位面向对象的奠基人联合起来,创建了UML统一建模语言。
UML 为软件开发和SOA的产生起到奠基和里程碑的作用。
UML主要理论成果是:统一面向对象的基本概念,并引进了许多新的概念,认为软件开发的过程实质上是从抽象的模型逐步细化,过渡到具体的实现,其中间的每个阶段都是实现了某一抽象模型,UML为此提供了建立模型的工具。
用直觉的图形来建立模型,从此软件专家就有了自己的工具,正如音乐家有了五线谱工具那样。
为适应软件的多变性,提供了演化的概念。
实际上此建模理论是第三个技术与基础理论体系,它为演化到构件和架构概念奠定基础理论模型。
由于工程上的实施缺乏开发规范,在技术上要求开发人员的素质较高,很少见到真正运用UML的方法于实际的工程开发应用软件中,最大的问题是被开发出来的软件难以演化,而软件要能适应变化是客观存在的。
为此发展出单纯重用的“构件和架构”技术及其理论体系。
在1998年日本京都召开的“基于构件的软件开发(CBSD)”国际专题学术会议上,一致认为软件开发技术离不开构件和体系结构。
软件体系结构现简称“架构”。
在此之前的软件架构都采用层次结构的架构,直到分布式系统提出了用户端/服务器模式后,才产生对架构的研究,出现了构件和架构,也就是第四个技术与基础理论体系。
卡内基·梅隆大学为软件的架构和框架建立了扎实的基础理论,软件体系结构是软件系统的高级抽象,体现了软件设计思想。
反映了系统开发中最早的决策,明确了系统有哪几部分组成,它们之间是如何交互的;进一步影响到资源的配置、团队的组织以及产品的质量。
系统的成败也在于体系结构。
三层体系结构分布式系统
三层体系结构是由二层结构的胖终端中的应用构件独立出来组成了应用层。
为解决分布式系统中的各种潜在复杂性,提出了中间件技术及其理论,称为第五个技术与基础理论体系。
八年前我的最后一位博士生王文军的学位论文是《分布式系统的联邦结构》,即面向服务的
架构,但未被应用和发展。
而两年前IBM公司提出SOA后却很快被广泛接受,其原因可从客观需求上和技术成熟度上三方面来叙述:
其一,客观上需要,随着网络普及化,用户越来越迫切需要将现有多个应用系统集成,以能实现更强的信息处理功能。
如电子商务的供应链、智能交通、电子政务、数字地球等已是本世纪发展的热点。
Gartner预计,到2008年基于件产品将占领70%的市场份额。
其二,面向对象和构件架构的基础理论和技术已趋向成熟,发展到统一建模语言,提供建模工具。
中间件集群理论己趋向成熟,并提出了中间件Inter Bus技术。
其三,浏览器技术普及,己成为行业标准,奠定了SOA的基础理论和技术规范,由此已是水到渠成,使SOA拙壮成长。
SOA在实现中的组成部分
SOA的体系结构仍旧是三层或N层结构,但对异构平台各层之间的联系,不是用CORBA、J2EE或.NET的方式,而且用WBDL和SOAP来实现,它们的概念简单统一。
目前都是采用嵌入ESB企业服务总线的平台来实现,ESB是一个中间件群,确保系统实现了服务接口、各种中间件以及松耦合的三个方面功能,因此称它为第六个技术与基础理论体系。
另外,普遍采用BPEL(业务过程执行语言)来描述用户需求,由BPM(业务过程管理平台)来解释执行,构成了第七个技术与基础理论。
SOA的主要优点
1. 利用现有的资产。
方法是将这些现有的资产包装成提供企业功能的服务。
组织可以继续从现有的资源中获取价值,而不必重新从头开始构建。
2. 更易于集成和管理复杂性。
将基础设施和实现发生的改变所带来的影响降到最低限度。
因为复杂性是隔离的,当更多的企业一起协作提供价值链时,这会变得更加重要。
3. 更快地整合现实。
通过利用现有的构件和服务,可以减少完成软件开发生命周期所需的时间。
这使得可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应和缩短开发时间。
4. 减少成本和增加重用。
通过以松散耦合的方式公开业务服务,企业可以根据业务要求更轻松地使用和组合服务。
5. SOA业务流程是由一系列业务服务组成的,可以更轻松地创建、修改和管理它来满足不同时期的需要。
建立软件开发方法和规范
构件构架理论体系的应用是适用于构件技术创立的,当发展到面向服务的体系结构时,必需加以修改和扩充,现在称为模型驱动MDD的需求工程建模理论,可以称它为第八个技术与基础理论体系。
另一个构件的领域工程将要扩充成SOA的参考结构,这是第九个技术与基础理论体系。
SOA 的门户将要反映SOA所有功能的表现层界面,为此如何将最新的WEB2.0与SOA给合,这是第十个技术与基础理论体系。
上述三方面是SOA在实际应用时必需要建立的理论和技术。
SOA的发展状况
IBM公开宣布SOA计划不到三年,去年年底,BEA公司、甲骨文公司、惠普等所有名牌公司都在中国发布了关于SOA的消息。
由于SOA模型统一,因此都是把本公司的中间件产品向SOA靠拢,提供开发和运行SOA 系统的相应工具和环境,以争取市场的份额。
北京市市科委将为SOA核心平台研发提供资金,由软件行业促进中心统一管理,促进北京市IP行业发展。
随着SOA理论的发展,各种与SOA有关的规范和标准将不断出现,如SOAP、WSDL、ESB、BEPL语言等,它们的出现象征着SOA将逐步走向成熟。
我们更应注意着各家公司所开发的工具和环境产品,有助于SOA的大力推广应用。
上述十大理论体系应该认真掌握、灵活应用,更应该不断刨新。
总之,SOA理念清晰、技术趋向成熟,实现不难、做好不容易,我们不要做重复工作,应经常交流,尽量少重复,一定能达到国际一流水平。