您好,欢迎访问三七文档
SOA系统架构调研一.SOA原理与应用1.SOA原理2.SOA技术构成3.SOA实施应用4.SOA治理二.开源SOA优势与劣势及选型标准1.开源SOA优势2.开源SOA劣势3.选型标准三.开源SOA选型1.Mule2.ApacheServiceMix3.JBossESB4.ApacheSynapse5.选型建议四.工作流原理与选型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-orientedarchitecture,面向服务架构)。SOA的价值在于跨越了不同应用系统、不同技术的整合,这种整合改变现有的商业模型。SOA是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范。这个定义决定了SOA的广泛性。SOA要求开发者从服务集成的角度来设计应用软件,即使这么做的利益不会马上显现。SOA要求开发者超越应用软件来思考,并考虑复用现有的服务,或者检查如何让服务被重复利用。SOA鼓励使用可替代的技术和方法(例如消息机制),通过把服务联系在一起而非编写新代码来构架应用。经过适当构架后,这种消息机制的应用允许公司仅通过调整原有服务模式而非被迫进行大规模新的应用代码的开发,使得在商业环境许可的时间内对变化的市场条件做出快速的响应。SOA也不仅仅是一种开发的方法论--它还包含管理。应用SOA后,管理者可以方便的管理这些搭建在服务平台上的企业应用,而不是管理单一的应用模块。其原理是,通过分析服务之间的相互调用,SOA使得公司管理人员方便的拿到什么时候、什么原因、哪些商业逻辑被执行的数据信息,这样就帮助了企业管理人员或应用架构师迭代地优化他们的企业业务流程、应用系统。SOA的一个中心思想就是使得企业应用摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要。企业环境中单个应用程序是无法包容业务用户的(各种)需求的,通过将注意力放在服务上,应用程序能够集中起来提供更加丰富、目的性更强的商业流程。其结果就是,基于SOA的企业应用系统通常会更加真实地反映出与业务模型的结合。服务是从业务流程的角度来看待技术的--这是从上向下看的。这种角度同一般的从可用技术所驱动的商业视角是相反的。服务的优势很清楚:它们会同业务流程结合在一起,因此能够更加精确地表示业务模型、更好地支持业务流程。相反我们可以看到以应用程序为中心的企业应用模型迫使业务用户将其能力局限为应用程序的能力。企业流程(enterpriseprocess)是流经企业框架的空气,它赋予业务模型里的组件以生命,并更加清晰地定义了它们之间的关系。流程定义了同业务模型进行交互操作的专门方法。服务被定义用来支持业务流程,因而贯穿整个流程始终的是:各种服务组件在流程和逻辑实现过程中的装配操作。理解业务流程是定制服务的关键所在。有利于企业业务的集成传统的应用集成方法(点对点集成、企业消息总线或中间件的集成(EAI)、基于业务流程的集成)都很复杂、昂贵,并且不灵活。这些集成方法难于快速适应基于企业现代业务变化不断产生的需求。基于面向服务架构(SOA)的应用开发和集成可以很好的解决其中的许多问题。SOA描述了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。3.原则与技术构成SOA是一种企业架构,因此,它是从企业的需求开始的。但是,SOA和其它企业架构方法的不同之处在于SOA提供的业务敏捷性。业务敏捷性是指企业对变更快速和有效地进行响应、并且利用变更来得到竞争优势的能力。对架构设计师来说,创建一个业务敏捷的架构意味着创建这样一个IT架构,它可以满足当前还未知的业务需求。要满足这种业务敏捷性,SOA的实践必须遵循以下原则:1.业务驱动服务,服务驱动技术从本质上说,在抽象层次上,服务位于业务和技术中间。面向服务的架构设计师一方面必须理解在业务需求和可以提供的服务之间的动态关系,另一方面,同样要理解服务与提供这些服务的底层技术之间的关系。2.业务敏捷是基本的业务需求SOA考虑的是下一个抽象层次:提供响应变化需求的能力是新的“元需求”,而不是处理一些业务上的固定不变的需求。从硬件系统而上的整个架构都必须满足业务敏捷的需求,因为,在SOA中任何的瓶颈都会影响到整个IT环境的灵活性。3.一个成功的SOA总在变化之中SOA相关技术说明:WebService:WebService是在Internet上进行分布式计算的基本构造块,是组件对象技术在Internet中的延伸,是一种部署在Web上的组件。它融合了以组件为基础的开发模式和Web的出色性能。WebService和组件一样,能提供重用功能,同时可以把基于不同平台开发的不同类型的功能块集成在一起,提供相互之间的互操作。简单的说,一个Web服务就是一个能够使用XML消息通过网络来访问的接口,这个接口描述了一组可访问的操作。一个Web服务的特征是:由SOAP和WSDL包装的对象;适应松散耦合的网络环境,可通过Web服务,手段是SOAP消息;服务的行为、输入、输出都可以使用WSDL描述。SOAP:SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encodingrules),用于表示应用程序需要使用的数据类型的实例;SOAPRPC表示(RPCrepresentation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。WSDL:WebServicesDescriptionLanguage的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。UDDI:是UniversalDescription,Discovery,andIntegration的缩写。简单说,UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。BPM:规则引擎:ESB:ESB是提供诸如路由,转换,安全和协议转换这些功能的重要组成部分,这些功能有助于服务彼此之间的通信,并实现(BPEL)流程跟服务的通信。ESB项目(Mule,ServiceMix,Synapse,OpenESB等)BPM项目(JBossjBPM,ApacheODE,OpenESBBPEL组件等)服务注册(MuleGalaxy,WSO2注册等)业务规则引擎(Drools/JBossRules)。4.SOA实施应用SOA的实施具有几个鲜明的基本特征。实施SOA的关键目标是实现企业IT资产的最大化重用。要实现这一目标,就要在实施SOA的过程中牢记以下特征:(1)可从企业外部访问通常被称为业务伙伴的外部用户也能像企业内部用户一样访问相同的服务。外部用户可以访问以Web服务方式提供的企业服务。(2)随时可用当有服务使用者请求服务时,SOA要求必须有服务提供者能够响应。大多数SOA都能够为门户应用之类的同步应用和B2B之类的异步应用提供服务。(3)粗粒度服务接口粗粒度服务提供一项特定的业务功能,而细粒度服务代表了技术组件方法。(4)分级在服务分级方面,须注意服务层的公开服务通常由后台系统(BES's)或SOA平台中现有的本地服务组成。因此允许在服务层创建私有服务是非常重要的。正确的文档、配置管理和私有服务的重用对于IT部门在SOA服务层快速开发新的公开服务的能力具有重要影响。(5)松散耦合SOA具有“松散耦合”组件服务,服务提供者和服务使用者间松散耦合背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响服务使用者的情况下进行修改。(6)可重用的服务及服务接口设计管理如果完全按照可重用的原则设计服务,SOA将可以使应用变得更为灵活。可重用服务采用通用格式提供重要的业务功能,为开发人员节约了大量时间。(7)标准化的接口Web服务使应用功能得以通过标准化接口(WSDL)提供,并可基于标准化传输方式(HTTP和JMS)、采用标准化协议(SOAP)进行调用。(8)支持各种消息模式SOA中可能存在以下消息模式。在一个SOA实现中,常会出现混合采用不同消息模式的服务。无状态的消息。使用者向提供者发送的每条消息都必须包含提供者处理该消息所需的全部信息。这一限定使服务提供者无须存储使用者的状态信息,从而更易扩展。有状态的消息。使用者与提供者共享使用者的特定环境信息,此信息包含在提供者和使用者交换的消息中。这一限定使提供者与使用者间的通信更加灵活,但由于服务提供者必须存储每个使用者的共享环境信息,因此其整体可扩展性明显减弱。该限定增强了服务提供者和使用者的耦合关系,提高了交换服务提供者的服务难度。(9)精确定义的服务接口服务是由提供者和使用者间的契约定义的。契约规定了服务使用方法及使用者期望的最终结果。此外,还可以在其中规定服务质量。此处需要注意的关键点是,服务契约必须进行精确定义。5.SOA治理SOA通过组装一个或多个IT服务来定义业务服务的能力提升了重用的抽象层次,这是SOA的主要优势之一。这个优势使得业务以业务服务的方式来定义企业操作,而IT定义一组可以用来实现业务服务的IT服务。业务服务和IT服务之间的可追溯性通过在软件栈的多个层次提高重用,为企业带来了他们极需的IT和业务对齐。然而,SOA更重要的优势是业务机动性。这需要企业在IT和业务之间拥有真正的合作关系,并且已经完成业务目标和业务流程的分析、业务服务的分解以及支撑业务机动性的架构元件。SOA治理指创建和管理用于计划、定义、设计、创建、测试和运营所有服务及自动业务流程的服务工厂。处在服务周期的不同阶段,实现SOA治理所需的工具有所不同:实现治理的最重要的能力是有效的双向沟通。拥有标准的、企业范围的业务实体和消息模型对于开发适合企业的服务来说至关重要。一款为这些消息模型提供版本管理和发布功能的工具是企业的实物资产。在多个物理表示对应于同一逻辑业务实体的场合,详细描述这些离散表示之间映射关系的数据字典也相当关键。使用通用数据库或存储空间来为业务需求、业务规则、术语和参照标准等提供版本管理和发布的功能,并依据业务实体和(或)业务流程建立索引,可以为重用提供很大的支持,还能减少不必要的重复劳动并降低运维系统的复杂度。有必要为所有的技术需求文档提供管理、发布和升级等功能,这些需求包括架构原则、架构决策、策略和标准、最佳实践、推荐设计模式、清单以及清单指导等。使用模型驱动的设计方法,在这种方法中,大部分的分析,设计甚至测试都是通过可视化工具进行的,并且大部实际代码都是自动生成而非手写的。因为模型比源代码更容易被理解,它可以帮助读者确保设计出精准描述业务和技术的需求并且代码准确地反映设计。提供管理合规检查结果的工具对于已创建很多服务(50个或者更多)或者开始将服务提供给第三方使用的企业来说,服务目录或服务注册表就变得更加关键。理想情况下,服务注册应该根据目标用户分成两个独立的部分:于潜在服务消费者(例如内部部门、合作伙伴或客户),目录或注册库应该包含以下信息:可以公开使用的服务详细信息(包括其版本细节);如何获得这些服务的使用权;如何从技术角度去访问这些服务(如,通过服务描述语言WSDL定义服务接口);治理服务使用的SLA条款等。除此之外,还应该包含对计划中的新服务以及服务版本的详细信息,以获得关于服务的内容和价值的反馈。该目录或注册库不应该包含任何关于服务实现的细节;SOA的一个关键特征是任何服务的实现可以在服务“契约”(即接口,如WSDL)不变
本文标题:SOA系统架构调研
链接地址:https://www.777doc.com/doc-4997264 .html