今天在论坛上又现针对SOA的评价,其实自从SOA概念被提出来以后褒贬不一的评价不绝于耳,有人说它一无是处只是炒作而已,有的人说它是整合异构系统的法宝,本人自接触SOA到现在已经差不多有三年左右,期间一直在做SOA相关产品和项目的研发和实施,到现在有种不说不快的感觉,以下是我的一点拙见写下来与大家共勉。
1. SOA是什么,每次看到大家一说到SOA就必提BPEL、ESB等概念,SOA是Service Oriented Architecture的缩写。中文的翻译应该是面向服务的构架,既然它是一个构架,那么它必定是以服务的创建、管理、监控等一系列从下至上的以服务为中心的构架,那么其中涉及到的技术规范就很多了而并不只是BPEL、ESB等概念了。
l 首先是服务的创建,从面向过程的程序设计到面向对象的程序设计,主要解决的目的是让程序具有更好的可扩展性和可复用性。而在SOA下,IBM提出了SCA和SDO规范用于创建更具扩展性和复用性的程序模块,这种扩展性不仅仅局限在API之间的调用,更是扩大到更为广阔的空间,例如一个用Java开发了一个符合SCA的服务模块,你可以将其发布成为WebSerivce或者其他的服务类型,而不仅仅是API,真正实现模块即服务的模型。万丈高楼平地起,良好的服务基础是SOA落地的关键,在此我并不是说SCA是构建服务的唯一方式,但是它的确是一个很有效很好的模型。另外在构架服务的过程中,大家会经常提到一个服务粒度划分的问题,服务粒度可大可小,关键是要考虑系统(由很多服务组成)的发展会怎么样影响服务本身的定义。我们可以将一个面向服务构架的系统看成是一个生态系统,而不是部署完就一劳永逸的系统,其实这个正式SOA的本质和目的所在,如果是一个生态系统那么我们会在实施前就有一个系统的近期规划、远期规划等,结合这些规划再来做服务粒度的划分就会比较科学,而不是大家拍脑袋拍出来的。
l 服务的管理,服务开发出来了后,为了实现其效用必须有一个统一的管理和调度,那么在这个层面上涉及到的技术和规范包含了很多内容,比如:ESB、BPEL、BPMN、WS-I,WS一系列的技术规范。我们还是从下到上的来理解,首先各个系统或者历史遗留系统提供的服务的方式都各不一样,有的是WebService、有的是JMS,有的是DB,有的是文件,或者是符合特定系统的API。SOA必需提供一个统一的平台实现服务的透明性。ESB是解决服务透明性的一个解决方案,各个服务按照自身的服务标准接入到ESB中,而ESB提供多种调用方式实现N*N的调用。而在这个过程中涉及到很多的技术规范和标准,例如WS-I、WS-addressing等,我们可以把ESB看做是一块主干,上面提供了多种插槽,通过主板各个在插槽上的元器件可以通信,实现了服务的透明性后,另外一个很重要的问题是,如何根据业务流程组织这些服务,这个就是BPEL需要实现的内容了。而目前被大家所熟识的BPEL其实是BPEL4WS,它定义的一套自动执行流程,即中间步骤不包括人的活动,而这种流程在实际过程中会遇到很多问题,其实在很多的流程中还是需要人来参与的,那么BPEL又扩展其针对人工处理的协议BPEL4HUMAN,其实BPEL为了实现更多的流程类型,扩展了很多比如BPEL4JAVA等,支持BPEL的厂商都是一些大腕,比如:IBM,ORACLE等,但是还有其他的比如富士通就提供类XPDL的流程定义和解析,而BPMN规范提倡的是用BPEL作为其执行引擎的定义,而用BPMN用于显示其流程定义。邓老先生提出了“不管是黑猫还是白毛,抓到老鼠都是好猫”,在流程这块,我个人认为只要开发出能解决问题的产品就是好的产品,比如像:EOS:)
l 服务的上层模块,为什么我叫他是服务的上层模块呢,其实这个部分也是SOA发展的上层台阶,包括了BI、模型分析等内容,目前本人还没深入了解。
综上:SOA是一个服务生态系统,其中包括了一摩尔的技术协议和规范,SOA项目的设计是需要近期规划、远期规划,从上而下的规划。而SOA的落地则需要的是从下而上的组合。
2. 待续…
分享到:
相关推荐
解读SOA Interpret SOA SOA越来越被企业接受,很多公司都准备规划SOA。但具体怎么上,没有一套很好的方法论是不行的。资料是IBM在长期的摸索中总结的一套SOMA方法论,由于是内部培训资料,所以比较难得。 内容 ...
SOA资源,SOA教程,SOA开发SOA资源,SOA教程,SOA开发
**SOA光学与半导体光放大器** 在信息技术领域,特别是在...总的来说,SOA及其仿真技术是现代光纤通信和光子学研究的重要工具,通过MATLAB代码"SOA.m",我们可以深入研究这一关键技术并优化其在各种应用场景中的性能。
面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...
安全是任何系统都不可忽视的一环,尤其是在分布式环境下的SOA。本章将探讨服务认证、授权、加密以及事务安全性等主题。 ### 第七章:SOA与Web服务 本章将讨论SOA与Web服务的关系,解释如何使用SOAP、RESTful等Web...
SOA这个名词,几年前就经帯在网上看到戒者在一些讲座中听到,但自己真正比较“近距离”接触“SOA”,还是在去年的“中国IT精英年会”上,当时IBM大中华区的老总大谈IBM 的SOA,BEA公司(当时还没被Oracle 收购)也讲了很多...
SOA,即Service-Oriented Architecture(面向服务的架构),是一种设计复杂应用系统的方法论,其核心理念是将应用程序的不同功能单元通过通信协议联系起来,这些单元被称为服务。SOA强调的是服务之间的松耦合,使得...
4. **无状态服务设计**:SOA中的服务设计通常是无状态的,即每次服务调用都是独立的,不需要保留上下文信息。这有助于提高系统的可伸缩性和性能。 5. **基于开放标准**:SOA的实现依赖于一系列开放标准,如SOAP、...
**SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计模式,它提倡将功能作为独立的服务,这些服务可以通过网络进行交互,实现模块化、松耦合的系统。在本压缩包“SOA.rar”中,我们主要探讨的是...
### SOA与SOMA:服务导向架构及建模方法详解 #### 一、引言 随着软件工程的发展,从结构化编程到面向对象编程,再到组件化开发,技术不断演进。在这一过程中,服务导向架构(SOA)成为了一个重要的里程碑。SOA不仅...
2. **服务**:在SOA中,服务是自包含的、独立的业务功能单元,可以独立部署和升级,且不依赖于执行环境的具体细节。 3. **服务接口**:每个服务都通过明确的接口进行通信,这个接口定义了服务的契约,包括输入、...
总结来说,"SOAOperation_soa开发_SOA_teamcenter_TeamcenterSOA_"这一主题涵盖了在Teamcenter环境中使用SOA技术进行服务开发的核心概念和实践,包括创建工具类以封装关键操作,以及如何通过这些服务实现企业级系统...
总结来说,SOA是软件设计的重要指导思想,它通过服务化的方式解决了传统系统集成的难题,促进了企业IT系统的灵活性和扩展性。随着时间的推移,SOA的理念不断进化,适应着新的技术和业务需求,其影响力持续存在。通过...
### IBM SOA 治理培训教材核心知识点详解 #### 一、为什么需要 SOA 治理? 在企业信息化建设的过程中,随着服务导向架构(SOA)的应用日益广泛,如何确保服务的有效管理成为了关键问题。SOA 治理的重要性在于它...
SOA实践者说分布式环境下的系统集成实例源码ch8(1)
客户首先要问的问题是:“我怎么开始我的SOA之旅”? 13 我们对目标用户说: 13 “IBM能帮助您开始走上SOA之路” 13 “IBM 能够使SOA入门更加简单可行” 14 第四部分:明确目标客户需求 15 诊断性问题 15 发掘企业的...
BEA的《SOA最佳实践之深入浅出SOA域模型》白皮书是理解和实施SOA不可或缺的资源。它不仅提供了SOA的基础理论和概念,还分享了实用的建模方法、治理策略以及一系列成功的实践案例。对于任何希望利用SOA改进其IT基础...
总的来说,SOA是一种以服务为中心的架构风格,它的价值在于促进业务流程的灵活性、IT架构的可扩展性和跨系统的互操作性。通过使用标准接口、服务编排和企业服务总线等技术,SOA使得业务和IT能够更好地同步,以应对...
总结来说,SOA作为一种强大的架构模式,可以帮助企业构建更加灵活、可扩展和成本效益高的IT基础设施。通过服务的标准化和可重用性,SOA为企业带来了前所未有的业务敏捷性和集成能力,促进了IT与业务的紧密协同。然而...