SOA Presentation - SOA概念介绍
Service Oriented Architecture Concept
SOA是一种分析、设计和实现企业应用的方法
SOA是一种分布式的应用架构
SOA以服务为最基本的、可重用的单元
SOA以业务流程为核心,是对业务逻辑高层次的、粗粒度的抽象
SOA一般基于某些标准(XML\SOAP\Web Service\SCA\SDO)实现异构系统及服务的集成
SOA不仅仅是一套构架,其更像是一套设计思想、方法——为解决客户所面临的业务敏捷性问题提供了一套新的解决方法。
松耦合 服务之间的依赖较小
基于契约的 应用由服务之间定义良好的接口和契约联系起来
自治的 服务提供商完全控制其所提供的业务逻辑
抽象的 对服务消费者来说,服务隐藏了具体业务逻辑的实现
可重用 将业务逻辑划分为多个可重用的服务
复合的 通过服务的复合完成业务功能
可发现的 服务是自描述的,基于服务描述去发现和访问服务
SOA Evolution
Point of view of Business
从业务需求角度看企业应用的发展阶段
企业系统的内部整合 当企业内部绝大多数信息系统都已经建立之后,是否能够有效地进行协作和资源整合,成为主要解决的问题。
企业内部的信息系统与外部环境整合 这包括与供应商、分销商和客户进行整合。
Point of view of Technique
从技术发展角度看企业应用的发展阶段
面向对象(Object Oriented)
组件(Component)
服务(Service)
Why We use SOA – Case, Background…
Case 1 - Why we use SOA?
某天早晨10点,Dell发现很多客户订购的笔记本电脑都要求配备40G的硬盘,如果这样的话,两个小时后,供给链将发出断货信号,并自动地发送给Dell销售部门、公司网站以及所有的订购电话的接线员。
利用这种促销手段,在一两个小时内,Dell可以根据全球供应链的情况快速的、完全的消除这次“供应不足的危机”,同时重新塑造顾客对产品的需求结构。
远洋航运集团规划未来几年内把集装箱的吞吐量提高4倍,集团组织构架从单一结构向多元化、多组织发展,同时业务的数量和新的业务种类将大幅度增长……
快速多变的市场,多产品组合营销
快速多变的业务流程
大量复杂的、不同技术实现的、多厂商跨时期的异构系统存在于企业的各个角落
系统紧密耦合,缺乏柔性和敏捷度,难以满足业务需求的快速变化
复用性的问题,企业的信息化投资需要得到保护
系统间互操作性差,无法实现快速集成
系统维护的成本问题
这使得……
企业希望减少冗余架构,实现跨系统架构集成,有效的利用企业IT资源
企业和它的客户希望使用基于Internet提供的更标准、更及时、更全面的企业应用服务
Why we use SOA?
含有业务语义的定义良好的接口
标准化的通信协议
通过服务的组合达成系统的柔性
SOA是提高系统柔性、降低系统复杂性的关键技术
(摘自Bea SOA资源网)
响应:迅速适应和传送关键业务服务来满足市场需求,为客户、雇员和合作伙伴更高水准的服务。
适应性:更高效地转入转出让整个业务变得复杂性和难度更小,达到节约时间和资金的目的。
针对企业IT基础部门
重用增加:通过重用以前开发和部署的共享服务,实现了更有效的应用程序/项目开发和交付。
遗留集成:用作可重用服务的遗留应用程序降低了维护和集成的成本。
SOA Architecture
The SOA Layered Architecture
企业应用系统层
服务组件层
服务层
业务流程
表示层
Ref. 2006年10月份由OASIS组织发布的SOA参考模型(Reference Model)
服务组件:实现服务,可能通过使用“可操作系统”层中的一个或多个应用程序来进行。如模型中所示,使用者和业务流程并不能直接访问组件,而仅能访问服务。现有组件可以在内部重用,或在合适的情况下在 SOA 中使用。
服务:表示已部署到环境中的服务。这些服务由可发现实体进行治理。
业务流程:表示将业务流程作为服务编排实现的操作构件。
使用者:表示用于访问业务流程、服务和应用程序的通道。
Solution using SOA
The SOA Solution Lifecycle
建模 - 包括业务分析与设计(要求、流程、目标和主要性能指标)及 IT 分析与设计(服务标识和规范)。
组装 - 包括服务实现和组合应用程序的构建。
部署 - 包括应用程序和运行时(如企业服务总线——Enterprise Service Buses,ESB)的部署。
管理 - 包括操作环境维护、服务性能监视和服务策略执行。
建模 - 组装 - 部署 - 管理 - 建模 - 组装 - 部署 - 管理……
业务一致性 - 业务和IT之间更好地进行沟通
业务组件化 - 具有独特用途的业务组件通过服务进行协作
业务建模 - 使用IT方法和技术描述、建立业务模型
业务流程 - 由相关业务项目和数据构成
行业 - 业务流程可以特定于某个领域或行业
人工任务 - 业务流程中常常会需要人工交互
业务流程执行语言 (Business Process Execution Language, BPEL) - IBM、Microsoft 和其他业界企业已经将BPEL作为 Web 服务规范提交
业务流程管理 (Business Process Management, BPM) - 建模、模拟、优化、部署、运行、管理、监视和改进业务的整个生命周期
企业应用集成 (Enterprise Application Integration, EAI) - 为了一个完整的业务将各种不同的服务组合在一起
Technique for SOA
Technique and Criterion Related SOA
SOA的实现应独立于程序开发语言……
SOAP
Web Service, WSDL
Java, C#, C++…
Axis, Axis2, XFIRE…
SDO, SCA
Service Data Object
SDO的产生
提供了对通用应用程序模式的健壮支持,并使应用程序、工具和框架更容易查询、读取、更新和检查数据。
为SOA架构的数据交换和传输提供统一的标准。
Service Component Architecture
SCA产生
为SOA专门设计的编程模型,简化SOA编程
关注如何描述按照各种不同的编程模型和协议编写的组件所组成的应用集合
为SOA架构的服务模型定义提供支持
SOA in China
对比美国: