前几天正好给实习生做了一次SOA概念的培训,现在按照大纲把部分内容简要的摘出来。大体是一个关于SOA概念的介绍,可能会让人感觉到比较“虚”,但事实上,SOA如果不谈到具体的实现技术,就其概念本身而言确实是一种抽象的、理念上的东西。
SOA Concept
Service Oriented Architecture Concept
SOA是一种分析、设计和实现企业应用的方法
SOA是一种分布式的应用架构
SOA以服务为最基本的、可重用的单元
SOA以业务流程为核心,是对业务逻辑高层次的、粗粒度的抽象
SOA一般基于某些标准(XML\SOAP\Web Service\SCA\SDO)实现异构系统及服务的集成
SOA不仅仅是一套构架,其更像是一套设计思想、方法——为解决客户所面临的业务敏捷性问题提供了一套新的解决方法。
Service Oriented Architecture Concept
SOA是一种分析、设计和实现企业应用的方法
SOA是一种分布式的应用架构
SOA以服务为最基本的、可重用的单元
SOA以业务流程为核心,是对业务逻辑高层次的、粗粒度的抽象
SOA一般基于某些标准(XML\SOAP\Web Service\SCA\SDO)实现异构系统及服务的集成
SOA不仅仅是一套构架,其更像是一套设计思想、方法——为解决客户所面临的业务敏捷性问题提供了一套新的解决方法。
SOA Character
松耦合 服务之间的依赖较小
基于契约的 应用由服务之间定义良好的接口和契约联系起来
自治的 服务提供商完全控制其所提供的业务逻辑
抽象的 对服务消费者来说,服务隐藏了具体业务逻辑的实现
可重用 将业务逻辑划分为多个可重用的服务
复合的 通过服务的复合完成业务功能
可发现的 服务是自描述的,基于服务描述去发现和访问服务
SOA Evolution
Point of view of Business
从业务需求角度看企业应用的发展阶段
松耦合 服务之间的依赖较小
基于契约的 应用由服务之间定义良好的接口和契约联系起来
自治的 服务提供商完全控制其所提供的业务逻辑
抽象的 对服务消费者来说,服务隐藏了具体业务逻辑的实现
可重用 将业务逻辑划分为多个可重用的服务
复合的 通过服务的复合完成业务功能
可发现的 服务是自描述的,基于服务描述去发现和访问服务
SOA Evolution
Point of view of Business
从业务需求角度看企业应用的发展阶段
信息发布 即传统的Information Management System,在这个阶段最主要的任务是把某一个业务下的信息数据管理起来。
企业系统的内部整合 当企业内部绝大多数信息系统都已经建立之后,是否能够有效地进行协作和资源整合,成为主要解决的问题。
企业内部的信息系统与外部环境整合 这包括与供应商、分销商和客户进行整合。
Point of view of Technique
从技术发展角度看企业应用的发展阶段
企业系统的内部整合 当企业内部绝大多数信息系统都已经建立之后,是否能够有效地进行协作和资源整合,成为主要解决的问题。
企业内部的信息系统与外部环境整合 这包括与供应商、分销商和客户进行整合。
Point of view of Technique
从技术发展角度看企业应用的发展阶段
从软件架构的角度:
结构化(Structured)
面向对象(Object Oriented)
组件(Component)
服务(Service)
Why We use SOA – Case, Background…
Case 1 - Why we use SOA?
某天早晨10点,Dell发现很多客户订购的笔记本电脑都要求配备40G的硬盘,如果这样的话,两个小时后,供给链将发出断货信号,并自动地发送给Dell销售部门、公司网站以及所有的订购电话的接线员。
面向对象(Object Oriented)
组件(Component)
服务(Service)
Why We use SOA – Case, Background…
Case 1 - Why we use SOA?
某天早晨10点,Dell发现很多客户订购的笔记本电脑都要求配备40G的硬盘,如果这样的话,两个小时后,供给链将发出断货信号,并自动地发送给Dell销售部门、公司网站以及所有的订购电话的接线员。
现在的情况是……
如果你正好10点30分向Dell发出订单,公司的销售代表会对你说:“您现在只需要在40G硬盘价格的基础上多支付10美元,就可以得到60G的硬盘的配置。”
利用这种促销手段,在一两个小时内,Dell可以根据全球供应链的情况快速的、完全的消除这次“供应不足的危机”,同时重新塑造顾客对产品的需求结构。
利用这种促销手段,在一两个小时内,Dell可以根据全球供应链的情况快速的、完全的消除这次“供应不足的危机”,同时重新塑造顾客对产品的需求结构。
怎样让企业的业务变得更加灵活,或者说更加敏捷。不难想象,Dell公司已经具备了比较完善的供应链管理系统、财务系统、客户关系系统等IT基础设施,这也说明Dell的企业经营管理已经依赖于IT系统的支撑。今天,绝大多数企业都具备了类似特征。不否认存在一些企业的经营管理还依赖于传统的电话沟通、面对面的洽谈会,但这已经是少数,而且会越来越少。
如今一个企业是否能够让CEO的决策、企业战略的调整、市场方向的重定位等等一系列问题快速变更与执行,几乎都依赖于信息化建设的完善。然而,这种完善程度不仅意味着信息系统在企业内部的覆盖面,更依赖于这些系统之间的协作性与敏捷性。
Case 2 - Why we use SOA?
远洋航运集团规划未来几年内把集装箱的吞吐量提高4倍,集团组织构架从单一结构向多元化、多组织发展,同时业务的数量和新的业务种类将大幅度增长……
远洋航运集团规划未来几年内把集装箱的吞吐量提高4倍,集团组织构架从单一结构向多元化、多组织发展,同时业务的数量和新的业务种类将大幅度增长……
遇到这样的变更,你该如何处理?
如果你告诉客户:你们仓储系统需要重新构建,组织构架需要重新建模,人力资源系统需要重新编写,财务系统需要重新编写……
那将会是?
Background - Why we use SOA?
快速多变的市场,多产品组合营销
快速多变的业务流程
大量复杂的、不同技术实现的、多厂商跨时期的异构系统存在于企业的各个角落
系统紧密耦合,缺乏柔性和敏捷度,难以满足业务需求的快速变化
复用性的问题,企业的信息化投资需要得到保护
系统间互操作性差,无法实现快速集成
系统维护的成本问题
这使得……
快速多变的市场,多产品组合营销
快速多变的业务流程
大量复杂的、不同技术实现的、多厂商跨时期的异构系统存在于企业的各个角落
系统紧密耦合,缺乏柔性和敏捷度,难以满足业务需求的快速变化
复用性的问题,企业的信息化投资需要得到保护
系统间互操作性差,无法实现快速集成
系统维护的成本问题
这使得……
企业更关注于关键业务流程域而非底层IT基础架构
企业希望减少冗余架构,实现跨系统架构集成,有效的利用企业IT资源
企业和它的客户希望使用基于Internet提供的更标准、更及时、更全面的企业应用服务
Why we use SOA?
含有业务语义的定义良好的接口
标准化的通信协议
通过服务的组合达成系统的柔性
SOA是提高系统柔性、降低系统复杂性的关键技术
企业希望减少冗余架构,实现跨系统架构集成,有效的利用企业IT资源
企业和它的客户希望使用基于Internet提供的更标准、更及时、更全面的企业应用服务
Why we use SOA?
含有业务语义的定义良好的接口
标准化的通信协议
通过服务的组合达成系统的柔性
SOA是提高系统柔性、降低系统复杂性的关键技术
SOA Benefit for Enterprise
(摘自Bea SOA资源网)
(摘自Bea SOA资源网)
针对企业业务流程
效率:将业务流程从"烟囱"状的、重复的流程向维护成本较低的高度利用、共享服务应用转变。
响应:迅速适应和传送关键业务服务来满足市场需求,为客户、雇员和合作伙伴更高水准的服务。
适应性:更高效地转入转出让整个业务变得复杂性和难度更小,达到节约时间和资金的目的。
针对企业IT基础部门
响应:迅速适应和传送关键业务服务来满足市场需求,为客户、雇员和合作伙伴更高水准的服务。
适应性:更高效地转入转出让整个业务变得复杂性和难度更小,达到节约时间和资金的目的。
针对企业IT基础部门
复杂性降低:基于标准的兼容性,与点到点的集成相比降低了复杂性。
重用增加:通过重用以前开发和部署的共享服务,实现了更有效的应用程序/项目开发和交付。
遗留集成:用作可重用服务的遗留应用程序降低了维护和集成的成本。
SOA Architecture
The SOA Layered Architecture
企业应用系统层
服务组件层
服务层
业务流程
表示层
Ref. 2006年10月份由OASIS组织发布的SOA参考模型(Reference Model)
重用增加:通过重用以前开发和部署的共享服务,实现了更有效的应用程序/项目开发和交付。
遗留集成:用作可重用服务的遗留应用程序降低了维护和集成的成本。
SOA Architecture
The SOA Layered Architecture
企业应用系统层
服务组件层
服务层
业务流程
表示层
Ref. 2006年10月份由OASIS组织发布的SOA参考模型(Reference Model)
可操作系统:表示现有 IT 资产,说明 IT 投资非常宝贵,应该在 SOA 加以利用。
服务组件:实现服务,可能通过使用“可操作系统”层中的一个或多个应用程序来进行。如模型中所示,使用者和业务流程并不能直接访问组件,而仅能访问服务。现有组件可以在内部重用,或在合适的情况下在 SOA 中使用。
服务:表示已部署到环境中的服务。这些服务由可发现实体进行治理。
业务流程:表示将业务流程作为服务编排实现的操作构件。
使用者:表示用于访问业务流程、服务和应用程序的通道。
Solution using SOA
The SOA Solution Lifecycle
建模 - 包括业务分析与设计(要求、流程、目标和主要性能指标)及 IT 分析与设计(服务标识和规范)。
组装 - 包括服务实现和组合应用程序的构建。
部署 - 包括应用程序和运行时(如企业服务总线——Enterprise Service Buses,ESB)的部署。
管理 - 包括操作环境维护、服务性能监视和服务策略执行。
建模 - 组装 - 部署 - 管理 - 建模 - 组装 - 部署 - 管理……
服务组件:实现服务,可能通过使用“可操作系统”层中的一个或多个应用程序来进行。如模型中所示,使用者和业务流程并不能直接访问组件,而仅能访问服务。现有组件可以在内部重用,或在合适的情况下在 SOA 中使用。
服务:表示已部署到环境中的服务。这些服务由可发现实体进行治理。
业务流程:表示将业务流程作为服务编排实现的操作构件。
使用者:表示用于访问业务流程、服务和应用程序的通道。
Solution using SOA
The SOA Solution Lifecycle
建模 - 包括业务分析与设计(要求、流程、目标和主要性能指标)及 IT 分析与设计(服务标识和规范)。
组装 - 包括服务实现和组合应用程序的构建。
部署 - 包括应用程序和运行时(如企业服务总线——Enterprise Service Buses,ESB)的部署。
管理 - 包括操作环境维护、服务性能监视和服务策略执行。
建模 - 组装 - 部署 - 管理 - 建模 - 组装 - 部署 - 管理……
SOA Solution Key Words
业务一致性 - 业务和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的实现应独立于程序开发语言……
业务一致性 - 业务和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的实现应独立于程序开发语言……
XML, XML Schema
SOAP
Web Service, WSDL
Java, C#, C++…
Axis, Axis2, XFIRE…
SDO, SCA
Service Data Object
SDO的产生
SOAP
Web Service, WSDL
Java, C#, C++…
Axis, Axis2, XFIRE…
SDO, SCA
Service Data Object
SDO的产生
最初由BEA和IBM共同发布,正由JSR-235专家组进行标准化以通过JCP(Java 标准化组织)的审核。
什么是SDO?
Java平台的一种数据编程架构和API,统一了不同数据源类型的数据编程。
提供了对通用应用程序模式的健壮支持,并使应用程序、工具和框架更容易查询、读取、更新和检查数据。
为SOA架构的数据交换和传输提供统一的标准。
Service Component Architecture
SCA产生
提供了对通用应用程序模式的健壮支持,并使应用程序、工具和框架更容易查询、读取、更新和检查数据。
为SOA架构的数据交换和传输提供统一的标准。
Service Component Architecture
SCA产生
2005年11月30日,BEA宣布,将与IBM、Oracle、SAP、Iona、Siebel和Sybase一起,支持一种构建和包装应用程序的新规范,即Service Component Architecture(服务组件架构,SCA)
什么是SCA?
是一种开发规范
为SOA专门设计的编程模型,简化SOA编程
关注如何描述按照各种不同的编程模型和协议编写的组件所组成的应用集合
为SOA架构的服务模型定义提供支持
SOA in China
对比美国:
为SOA专门设计的编程模型,简化SOA编程
关注如何描述按照各种不同的编程模型和协议编写的组件所组成的应用集合
为SOA架构的服务模型定义提供支持
SOA in China
对比美国:
过去的半个多世纪,美国从主机时代、PC时代,到了现在的网络时代,积累了大量的应用系统。
——美国实现SOA架构关键任务是:对已有系统中的功能进行提取和包装,形成标准的“服务”。
过去中国近30年的IT建设多为生产型系统,服务型系统普遍未开始建设。
——大量“服务”需要全新构造、按照标准化构造才是中国SOA的主要任务!
本文转自胡奇 51CTO博客,原文链接:http://blog.51cto.com/huqicto/280643,如需转载请自行联系原作者