欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
SOA
SOA: Service-Oriented Architecture
SOA的基本原则之一就是,商业驱动服务,服务驱动SOA。
SOA - IT与业务的融合剂, 借助SOA,像运营企业一样运营IT。同时, SOA也将和虚拟化一起促IT和业务结合。
通过增加重用、合并资产并把遗留应用程序转换为松散耦合的服务,它能够提升IT的价值和ROI。
ESB(Enterprise Service Bus): SOA的核心和基础架构, 先了解一下ESB功能
面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
更多细节: SOA Best Practices: A Conversation With Sun Microsystems Distinguished Engineer Mark Hapner
Wikipedia 上的 SOA 条目: http://en.wikipedia.org/wiki/Service-oriented_architecture
SOA定义
Service-oriented architecture (SOA) is a Web-based, standards-driven, modular architecture that promises to deliver pervasive integration for real-time business agility … META Group – February 2005
SOA现状
最近的统计表明目前存在超过56个涉及SOA的各个方面的标准机构。他们的工作未能协调一致,因 此标准众多实际上等于没有标准。要遵循哪个“标准”完全由各个IT小组自行决定。
SOA未来
根据Gartner公布的数据,伴随着该体系被越来越多厂商所采用和认可,SOA将成为创建和交付软件的主导框架,而未来应用软件收入增长的80%将来自基于SOA的产品。
SOA的原则
SOA是一种企业架构,因此,它是从企业的需求开始的。但是,SOA和其它企业架构方法的不同之处在于SOA提供的业务敏捷性。业务敏捷性是指企业对变更快速和有效地进行响应、并且利用变更来得到竞争优势的能力。对架构设计师来说,创建一个业务敏捷的架构意味着创建这样一个IT架构,它可以满足当前还未知的业务需求。
要满足这种业务敏捷性,SOA的实践必须遵循以下原则:
- 业务驱动服务,服务驱动技术
从本质上说,在抽象层次上,服务位于业务和技术中间。面向服务的架构设计师一方面必须理解在业务需求和可以提供的服务之间的动态关系,另一方面,同样要理解服务与提供这些服务的底层技术之间的关系。
- 业务敏捷是基本的业务需求
SOA考虑的是下一个抽象层次:提供响应变化需求的能力是新的“元需求”,而不是处理一些业务上的固定不变的需求。从硬件系统而上的整个架构都必须满足业务敏捷的需求,因为,在SOA中任何的瓶颈都会影响到整个IT环境的灵活性。
- 一个成功的SOA总在变化之中
SOA工作的场景,更象是一个活的生物体,而不是象传统所说的“盖一栋房子”。IT环境唯一不变的就是变化,因此面向服务架构设计师的工作永远不会结束。对于习惯于盖房子的设计师来说,要转向设计一个活的生物体要求崭新的思维方式。如下文所写的,SOA的基础还是一些类似的架构准则。
下面是一些最为常见而又很容易避免的SOA错误:
- 认为Web服务是SOA。Web服务是SOA的重要基础,但SOA是一种架构性方法,而不是粒度服务的集合。
- 将SOA用作所有集成挑战的解决方案。公司必须首先确定哪些应用程序或集成工作是适合SOA的。
- 认为简单的“SOA解决方案”可以快速启动SOA计划。并不存在“开箱即用”的SOA解决方案。
公司必须仔细选择具有可操作性与基于行业标准和架构框架的产品。
- 忽略业务需要。如果团队将SOA视为IT项目并通过提供具有所需的性能、可重用性和成本有效性的功能创建不符合业务期望的服务,则项目将会失败。SOA并非IT项目;它是一种企业级方法,需要企业级支持。
- 致力于平台。采用模型驱动的适用于任何平台的方法可在相当长时间内提供更好的ROI和灵活性。
SOA专业人员指南
为了帮助开发共享语言和有关SOA的知识集,一群SOA专业人士创建了“SOA专业人员指南”这个文档系列。在这个文档系列中,这些SOA专家描述了一些与SOA相关的最佳实践和关键知识,以帮助其他公司迎接SOA的挑战。他们对“SOA专业人员指南”的期望是,这个分为多个部分的知识集在出版之后,能够作为所有SOA相关人员的标准参考百科全书。
- SOA专业人员指南第1部分——为何使用面向服务的架构?这本指南将对SOA做高层次的总结。
- SOA专业人员指南第2部分——这本指南涵盖了SOA参考架构,它提供对企业级SOA实现的有效设计,并带有详细的架构图、组件说明、详细需求、设计模式、有关标准的意见、符合规则的模式、标准模板和来自成员的潜在代码资产。
- SOA专业人员指南第3部分——这份指南介绍了服务生命周期,并提供通过服务生命周期管理服务的详细过程,包括从开始到退出使用或赋予服务新的用途。它还包含一个附录,内容为企业和管理最佳实践、模板、有关关键SOA标准的注释以及指向更多信息的推荐链接。
SOA参考架构
SOA Reference Architecture(SOA参考架构)
SOA编程模型
针对 SOA, 主要有以下三类编程模型:
SOA成熟度模型
SOA Maturity Model(SOA成熟度模型)
SOA成熟度模型可帮助企业开发路线图来达到企业的目标状态。
SOA与企业动态建模
企业动态建模是SOA实现的基础
要SOA得到这种灵活性,需要有一系列实现架构的新方法,这是一项艰巨的任务。企业架构设计师必须要变成“面向服务的架构设计师”,不仅要理解SOA,还要理解SOA的在具体应用中的表现。在架构实践和最后得到的架构结果之间的区别有可能非常微妙,但却非常关键。所以SOA的实现需要借助企业动态建模在企业管理过程中逐步求精,以达到软件与管理的最佳融合。
企业动态建模是通过一系列步骤和采用一定的方法,对实际企业对象的发展和变化模式进行分析和简化,去掉对建模目的影响不大的细节现象,得到抽象的动态模型的过程。企业动态建模的过程涉及一系列的活动、方法和工具,用于建立描述企业不同侧面的模型。由于企业组织的复杂性,采用单一的模型无法完整地表达出一个企业多方面的特点,因而在企业动态建模中涉及到多个视角的模型,常用的包括:信息模型、功能模型、组织模型、流程模型四个动态模型。
- 信息模型:是从信息的角度对企业进行描述,企业信息系统是信息模型的一个体现,用于存储/维护/处理与企业相关的所有信息,这些信息是联系各个功能元素的纽带。
- 功能模型:以功能活动为视角对整个企业进行描述,表现的是企业各功能模块之间的关系。
- 组织模型:描述组织结构树、团队、能力、角色和权限等。
- 流程模型:是通过定义组成活动及其活动之间的逻辑关系来描述工作流程的模型。
SOA控制
- 服务定义,包括服务的范围、接口和边界
- 服务部署生命周期,包括各个生命周期阶段
- 服务版本控制,包括兼容性
- 服务迁移、包括弃用和退役
- 服务注册中心,包括依赖关系
- 服务消息模型,包括规范数据模型
- 服务监视,包括进行问题确定
- 服务所有权,包括合作组织
- 服务测试,包括重复测试
- 服务安全、包括可接受的保护范围
- 服务模型
SOA与Web 2.0
Web 2.0可作为前端应用,而SOA则作为后台支持。两者的融合天衣无缝。
专题:SOA与Web2.0 灵活应对时代变化: http://searchwebservices.techtarget.com.cn/soaweb20/
Web 2.0 与 SOA 有着怎样的关系 ?- i-Technology Viewpoint: Is Web 2.0 the Global SOA? - http://webservices.sys-con.com/read/164532.htm
SOA与Gird
网格观点: 虚拟化是 SOA 环境的基础:SOA 和基础设施虚拟化技术之间是高度协作的关系。随着企业采用的服务不断增多,这些服务的大小和规模也不断增大,实现支持这些服务的基础设施虚拟化技术也日益重要。没有基础设施的虚拟化,企业的管理就会变得非常复杂,很难实现服务的灵活性优点。在本文中,将对网格计算和 SOA 以及基础设施虚拟化技术之间的相似和不同之处进行简要分析。
基于 SOA 构建网格应用程序: 网格正在慢慢地朝 Web 服务架构发展,首先是 Globus 采用开放网格标准基础设施(OGSI),然后是发布 Globus Toolkit 4.0(GT4)。SOA 和网格技术正基于诸如 Web Services Resource Framework(WSRF)以及其他的一些解决方案,朝 Web Standards Interoperability 技术方向发展。
SOA与Data Center
”ZapThink公司的资深分析家Jason Bloomberg说,“存储虚拟化可以处理存储,而网格计算则可以对处理器功能进行虚拟化,面向服务的体系结构实质上是对软件应用功能进行虚拟化。”
SOA与BPEL
"与以往任何信息模式相比,面向服务的架构从本质上来说更注重以流程为中心。随着IT组织向着全面部署SOA的方向演进,Gartner 有理由相信,对于那些需要在SOA应用以流程为中心的组织而言,BPEL至关重要。-- Gartner
SOA与BPM
SOA是一种架构方法, BPM则是一组协调活动。
可以使用 BPM 改进运营并使用 SOA 提高灵活性和速度。它们是促进企业成长的梦幻组合。
BPM 管理层日益重视指南 - http://www.bea.com/newsletters/exec2exec/06aug/cn/BPM.jsp
SOA 与 BPM 期待联盟: Gartner 公司分析家预计:2007年伊始,业务流程管理(BPM)将成为SOA实施的驱动者。集BPM与SOA于一体的整合技术在2010年之前可能都有欠成熟之处,但分析家呼吁如果想引领此项潮流,企业应该从现在起实行“流程架构”。
http://searchwebservices.techtarget.com.cn/soabpm/
在 Web Services 中,通过 WS-BPEL 和 WS-CDL 实现 BPM
SOA与EDA
- EDA 并不会替代 SOA,而只是对 SOA 形成补充。EDA 有时也称为“事件驱动的 SOA”
- Event-Driven SOA: A Better Way to SOA (Whitepaper)
SOA与MDA
由于具有将企业和软件的所有方面进行建模的成熟度和丰富的功能,MDA很适合用作SOA生命周期的基础。许多其他的OMG标准则可通过与MDA协作对SOA提供一种由业务和架构驱动的方法。相关概述请参见:
http://www.omg.org/attachments/pdf/OMG-and-the-SOA.pdf http://soa.omg.org/。
此外,MDA允许开发集成的SOA注册表/储存库,后者支持发现服务及其组件,也可映射到业务流程和目标。
模型驱动的SOA:http://www.opengroup.org/events/q405/mdasoa.pdf
SOA与IMS
IMS: 电信领域的SOA
SOA与VoIP
把SOA和VoIP集成在一起,将来的潜力无疑是巨大的,但目前的市场还很年轻。从进入的厂商来看,主要有4家:像Avaya和Siemens是从传统电信领域实现SOA,而BlueNote和Ubiquity则都是新兴的数据厂商。Avaya和Siemens都把他们的PBX迁移到标准化的软件领域,开始在很多PBX和统一通信功能上添加Web服务接口。SIP(Session Initiation Protocol)特别适合SOA环境,因为其架构是以Internet为中心的,很容易将应用和媒体与呼叫处理相隔离。
SOA与ITIL
ITIL是一个IT服务指导框架,SOA是更好地实现ITIL的一种方法。ITIL和SOA都含有Service,但ITIL偏重于面向客户层面的Service,SOA偏重于面向技术层面的Service。
可以说,ITIL和SOA是两个不同层面的概念。惟一能够产生关系的地方应该是在同一个企业里同时实施ITIL和SOA。
SOA与Portal
" 到 2007 年,企业门户将是 SOA 概念的第一大应用程序,将有超过 50% 的企业使用(概率为 0.6)"。分析来源:Gene Phifer,Gartner Research;发布日期:2005 年 10 月 12 日/ID 号:G00132930。Gartner 2005 年 10 月 12 日。
SOA与SaaS
托管按需服务 SOA 是否会成为未来的发展趋势 ?
Workday 正在尝试这样的托管服务
Workday - On-Demand Enterprise Business Services - http://www.workday.com/
SOA与JAVA
SOA与PHP
http://www.osoa.org/display/PHP/SOA+PHP+Homepage
SOA与Python
SOA的分析和设计
- 面向服务的分析与设计原理 - http://www-128.ibm.com/developerworks/cn/webservices/ws-soad1/
- SOA 实现:服务设计原则 - http://www-128.ibm.com/developerworks/cn/webservices/ws-soa-design/
实现SOA的技术
- 用 Web Services 实现 SOA
- 用 CORBA 实现 SOA
- 用 RosettaNet 实现 SOA
- 用 ebXML 实现 SOA
- 用 J2EE 实现 SOA
- 用 WebSphere MQ 实现 SOA
组织
标准
SOA与OASIS
- OASIS SOA Reference Model
- OASIS SOA Adoption Blueprints
- OASIS Electronic Business Service Oriented Architecture (ebSOA)
- OASIS Framework for Web Services Implementation (FWSI)
- OASIS Semantic Execution Environment
- OASIS Web Services Quality Model
http://www.oasis-open.org/committees/tc_cat.php?cat=soa
BPM
Metadata
Web Services Security
Advanced Messaging
Transaction Processing
- WS-AtomicTransactions
- WS-BusinessActivity
- WS-Coordination
- WS-Context
- WS-Coordination Framework
- WS-Transaction Management
Other
开源项目
- Apache Tuscany
- Apache CXF - Celtix 和 Codehaus Xfire 的合并计划
- ServiceMix Open Source ESB - http://servicemix.org/
- Celtix Open Source Java ESB - http://celtix.objectweb.org/
- Mule Enterprise Service Bus (ESB) messaging framework - http://mule.codehaus.org/
- Open ESB - https://open-esb.dev.java.net/
- JBoss ESB - http://www.jboss.com/products/esb
- LogicBlaze FUSE - http://www.logicblaze.com/
- Apache Synapse - http://incubator.apache.org/synapse/
- JAX-WS JAX-RPC 2.0 renamed to JAX-WS 2.0
- Tango
厂商方案
- BEA SOA: BEA SOA 360º, BEA AquaLogic
- IBM SOA
- IONA SOA
- Redhat SOA
- SUN SOA - Java CAPS (Integration software suite) - http://www.sun.com/products/soa/
- Oracle SOA Suite
- SAP Enterprise SOA - https://www.sdn.sap.com/irj/sdn/developerareas/esa
- Sonic Software - http://www.sonicsoftware.com
- HP SOA
- eBay SOA
相关链接
- http://searchwebservices.techtarget.com.cn/
- Open SOA Collaboration - http://www.osoa.org
- Oracle SOA - http://www.oracle.com/lang/cn/technologies/soa/
- http://www.ebizq.net/
精彩图集
书籍
Understanding SOA with Web Services 中文版
国内第一本SOA图书,享有声望的专家Eric Newcomer和Greg Lomow为大家献上了关于SOA计划与实现全方位的实践战略和经证明的最佳实务.