SOA从面向构件开始

合集下载

SOA架构简介

SOA架构简介

SOA架构简介⼀、什么是SOA 架构SOA是⼀种架构模型,它可以根据需求通过⽹络对松散耦合的粗粒度应⽤组件进⾏分布式部署、组合和使⽤。

服务层是SOA的基础,可以直接被应⽤调⽤,从⽽有效控制系统中与软件代理交互的⼈为依赖性。

SOA的关键是“服务”的概念。

它是作为⼀种⾯向服务的架构,是⼀种软件架构设计的模型和⽅法论。

从业务⾓度来看,⼀切以最⼤化“服务”的价值为出发点,SOA利⽤企业现有的各种软件体系,重新整合并构建起⼀套新的软件架构。

这套软件架构能够随着业务的变化,随时灵活地结合现有服务,组成新软件,共同服务于整个企业的业务体系。

简单的理解,我们可以把SOA看作是模块化的组件,每个模块都可以实现独⽴功能,⽽不同模块之间的结合则可以提供不同的服务,模块之间的接⼝遵循统⼀标准,可以实现低成本的重构和重组。

在SOA的技术框架下,可以把杂乱⽆章的庞⼤系统整合成⼀个全⾯有序的系统,从⽽增加企业在业务发展过程中应⽤系统的灵活性,实现最⼤的IT资产利⽤率。

虽然,⽬前不同⼚商或个⼈对SOA有着不同的理解,但是对于 SOA的⼏个关键特性的认识却是⼀致的:⼀种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接⼝进⾏通讯,不涉及底层编程接⼝和通讯模型。

需着重注意的是,SOA并不是新⽣事物。

⼤型IT组织成功构建和部署SOA应⽤已有多年的历史。

但 SOA并不是⼀种现成的技术,⽽是⼀种架构和组织IT基础结构及业务功能的⽅法。

SOA 这种开发⽅法,具有较好的管理上的优点。

⼆、 SOA 架构的基本特征SOA的实施具有⼏个鲜明的基本特征。

实施SOA的关键⽬标是实现企业IT资产的最⼤化重⽤。

要实现这⼀⽬标,就要在实施SOA的过程中牢记以下特征:①可从企业外部访问和时可⽤业务伙伴采⽤先进的B2B协议(ebXML或RosettaNet )相互合。

当业务伙伴基于业务⽬的交换业务信息时,他们通过 B2B协议创建会话来完成。

⽽外部⽤户则通过web服务⽅式提供企业服务。

SOA面向服务的体系结构

SOA面向服务的体系结构

SOA面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。

接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。

这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。

这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。

松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。

而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。

对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。

我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。

虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。

虽然基于SOA 的系统并不排除使用面向对象的设计来构建单个服务,但是其整体设计却是面向服务的。

由于它考虑到了系统内的对象,所以虽然SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。

不同之处在于接口本身。

SOA 系统原型的一个典型例子是通用对象请求代理体系结构(Common Object Request Broker Architecture,CORBA),它已经出现很长时间了,其定义的概念与SOA 相似。

然而,现在的SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言(eXtensible Markup Language,XML)为基础的。

软件设计中的面向服务架构(SOA)

软件设计中的面向服务架构(SOA)

软件设计中的面向服务架构(SOA)当今互联网时代,软件开发从早期简单的单机应用,到后来的分布式系统设计,再到现在的大规模分布式系统,软件发展的历程已经演变成了一个复杂的过程,这个过程中有许多因素影响着软件开发的效率和质量。

为了应对这些问题,一种先进的软件开发架构逐渐走进人们的视野,它就是面向服务架构( Service-Oriented Architecture, SOA)。

面向服务架构是一种软件架构的风格,它的关注点不是单个应用程序或系统,而是由一个或多个服务组成的网络,这些服务通过相互协作,能够完成特定的业务功能。

服务作为功能的基本组成单元,对外提供标准化的接口描述和契约,方便其他服务以标准化方式进行访问和使用。

SOA从多个服务组成应用的角度来看待应用系统,它强调组件的重用性、模块化、松耦合、构建可靠可用的应用系统。

SOA的具体实现可以通过使用Web服务技术来实现。

Web服务是一种标准化的服务组件,可以通过网络进行通信,通过SOAP协议进行数据交互,并通过WSDL文件来描述服务接口和数据格式。

Web服务可以在分布式环境中实现服务发布、发现、组合和集成,简化了分布式系统的构建和管理。

SOA可以带来很多优点,例如:1.灵活性和可维护性:由于SOA组件的松耦合关系,因此我们可以只更改一些特定的组件以实现所需的更改,而不影响其他组件的运作。

2.可重用性:IS组件(Integration Service)和SOA架构是基于组件化的原理,使得组件可重用和跨系统、跨平台使用,可降低开发成本。

3.易于管理:SOA元素尽可能地作为单独的部分运行,这使得管理它们变得更加简单。

此外,服务元素可以像LEGO一样连接在一起,以实现所需的各种功能模块的复杂组合。

4.提高互操作性:SOA支持通用标准和协议,这使得基于SOA技术的系统可以与其他技术平台和系统进行互操作,从而进一步加强组织间的互相连通性和互动性。

5.提高应用程序的可扩展性:SOA使应用程序组件化,从而易于扩展和调整。

通俗地理解面向服务的架构(SOA)以及微服务之间的关系

通俗地理解面向服务的架构(SOA)以及微服务之间的关系

通俗地理解⾯向服务的架构(SOA)以及微服务之间的关系SOA是⼀种软件的应⽤架构⽅法,它基于⾯向对象,但⼜不是⾯向对象,整体上是⾯向服务的架构。

SOA由精确的服务定义、松散的构件服务组成,以及业务流程调⽤等多个⽅⾯形成的⼀整套架构⽅法。

这话是不是听起来,让⼈觉得有点晕,我们就细细品读⼀下。

SOA的架构思想(⼀)SOA架构是⾯向服务的,只不过是基于⾯向对象SOA继承了很多⾯向对象的特点,⽐如说⾯向对象的封装,经常代表很多类封装成⼀个模块,为其他对象调⽤者提供接⼝调⽤,良好的⾯向对象设计就是暴露接⼝,隐藏实现,类⽐到SOA的设计,SOA也需要精准明确地定义好服务接⼝,具体服务内部的逻辑实现都是隐藏在背后的,只不过有两个很⼤的区别:(1)⾯向对象的实现都是基于同⼀个编程语⾔或平台(同构),但SOA服务彻底隐藏了实现上⽤何种语⾔平台的具体细节(异构)(2)⾯向对象的实现其实⼤部分都是本地⽅法之间的调⽤,当然也具备分布式远程⽅法调⽤,但SOA是纯粹提供了独⽴的服务,⾯向分布式的远程服务调⽤。

(⼆)SOA的服务定义是精确的这个怎么理解呢?因为SOA的服务⼀旦发布出来,那么就会有很多其他的异构平台服务进⾏调⽤,这时候的服务接⼝修改就不像⼀个⼈或者⼀个⼩团队之间协作那么容易了,可能涉及到⼀个⼤型企业多部门的信息协作,或者对构件已经形成依赖的⽣态链条。

因此这就牵扯出了SOA另外⼀个特征,那就是服务接⼝的粒度⼀般要设置得⽐较粗。

若提供过多的服务接⼝,服务⼜定义得很细粒度,那么频繁修改是在所难免的。

这⼀点上就注定了SOA架构适合在较重量的环境下存在。

那什么是较重量的环境呢?(1)体系健全、制度稳定的重管理型企业,(2)业务逻辑复杂,服务的独⽴性,开放性需求⼜⼤,服务的稳定性也是刚需。

例如:医院信息化系统架构。

(三)SOA是由松散的构件服务组成为什么是松散的呢?由上述我们可以了解到SOA的服务接⼝是粗粒度的,⽽且组成服务的构件都是独⽴部署并具有独⽴的上下⽂环境,这种形态就是为了降低与其他构件之间的强依赖性。

面向服务的架构标准SOA

面向服务的架构标准SOA

面向服务的架构标准领先技术不意味厂商锁定XML和Web服务正在作为面向服务的架构(SOA)的平台来出现,它既可用于企业内部通信,也可用于企业间通信。

作为第一个既支持SOA编写,也支持SOA 利用的Java集成开发环境(IDE),WebLogic Workshop天生就带上了专有创新的印记。

从那时起,BEA通过多种机制,从开放标准到开放源代码,已经实现了对这些创新进行投资保护的承诺,使得开发人员可以充分利用BEA的尖端生产率和集成特性,而不必担心锁定在某一厂商。

下面,让我们一起来看看在Workshop中基于SOA的关键创新,以及在每种情况下是如何保护投资的。

什么是SOA?XML和Web服务是当今的热门技术,因为它们在实现面向服务的架构(SOA)上担当了重要的角色。

目前独立的、而且通常是相互孤立的应用程序,制约了业务服务的共享,SOA则正在解决这一问题。

通过给单个业务操作进行定义或在表层加上“服务访问点”,IT组织能够:•使IT资源与其业务功能更密切地结合在一起•通过以下方法的最佳组合和匹配,建立更加动态、更有效地利用成本的系统•购买和自建•自制和外包•更迅速地发布“组合”应用程序(想想“Web流(Web flows)”和“工作流(work flows)”),提供统一的、面向任务的跨业务视图•通过更加细致的增量管理需求和变化,在应用程序生命周期上获得更高的灵活性•用提供“业务透明性”的基础架构替换不透明的、“黑盒子”系统更容易—这种基础架构根据流经应用程序的总体信息,提供实时的业务智能。

对象和组件已经成功地在应用内提供了重用性(应用程序的定义是:以单元形式开发和部署的代码)。

但是,SOA依赖的是在应用程序之间实现重用。

用SOA把不同的应用程序互连起来,这根本不是什么新东西—想想以前定义分布式的、应用间通信架构的一些努力(不用费力想什么新的首字母缩略词):•同步的(面向RPC):CICS分布式程序链接(DPL)、分布式计算环境(DCE)、分布式组件对象模型(DCOM)、公共对象请求代理体系结构(CORBA)IIOP、Java 远程方法调用(RMI)、关系数据库管理系统(RDBMS)存储过程,等等。

跟我学J2EE 系统构架和设计模式——面向服务架构(SOA)及应用示例

跟我学J2EE 系统构架和设计模式——面向服务架构(SOA)及应用示例

1.1跟我学J2EE 系统构架和设计模式——面向服务架构(SOA)及应用示例1、目前企业应用系统所面临的问题----“信息孤岛”和“应用异构”(1)信息孤岛随着信息技术的迅速发展,我国信息化建设取得了显著的成果,各个政府部门和企业的信息化建设日趋完善,但与此同时,建设过程中潜在的一些问题逐渐显露出来,“信息孤岛”就是其中一个很大的问题。

“信息孤岛”的存在,使企业和政府的大量信息无法共享,业务无法协同,造成了信息资源的极大浪费以及信息化的重复建设。

同时也为解决B2B 以及EAI (企业应用集成)等方面的问题带来障碍。

(2)如何解决政府与企业内的各个“信息孤岛”之间的互连互通问题为了解决政府与企业内的各个“信息孤岛”之间的互连互通问题,B2B 以及企业应用集成(EAI)一直是IT界的热点问题。

传统的EAI的集成方式可以将不同的应用系统联系起来,但由于没有统一的标准和方法导致系统之间的连接是紧耦合的,在系统变化或部署新的应用时,需要对原来的系统进行变更或重新开发,集成的代价非常高。

(3)企业级的应用程序是异构的企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。

应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。

即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。

通过Web Service,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。

【导读】早在1996年,Gartner最早提出SOA的预言,2002年12月,Gartner又提出了SOA是“现代应用开发领域最重要的课题”,并预计到2008年,SOA将成为占有绝对优势的软件工程实践方法,主流企业现在就应该在理解和应用SOA开发技能方面进行投资。

2、SOA产生的技术背景(1)组件编程技术我们知道,最早软件开发方法就是编程、写代码的,其缺点在于无法复用,为此提出了组件化的软件开发方法,通过把编程中一些常用功能进行封装,并规范统一接口,供其它程序调用,例如我们开发一个新软件,可能要用到组件1、组件2、组件3,那么,我们只要对其进行本地组装,就可以得到我们想要的应用软件。

浅析面向服务(SOA)技术的设计应用

浅析面向服务(SOA)技术的设计应用作者:叶麟来源:《电脑知识与技术》2010年第17期摘要:文章以基于SOA的协同商务平台技术,设计了百分协同商务管理系统。

从总体架构,系统功能和服务组合设计三个方面进行设计,并在服务设计方面对信息流管理,资金流管理,物流管理三块服务利用BPEL4WS设计了相关的服务,通过服务的变化和构件组合来应用了基于服务SOA的架构技术。

关键词:SOA;协同商务;服务设计;BPEL4WS中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)17-4682-04Service-oriented Architecture Technology Design and ApplicationYE Lin(Rieke Packaging Systems(HangZhou) Co., Ltd., Hangzhou 310018, China)Abstract: This article has design the BAIFEN Collaborative Commerce platform base on the SOA technology. It analysis from three section, include main framework, system function and service design .Also when talk about the service combined design. It aim at information,finance and logistics management. Through the service changed and component used that show the SOA application technology.Key words: SOA; collaborative commerce; service design; BPEL4WS随着企业信息化的不断发展,企业或多或少的都建立了自己的信息化应用平台,这些平台的应用日益增多,对系统的应用要求也越来越大,SOA作为一种新的架构思想和技术为企业信息化平台的整合,带来了许多发展机会[1]。

SOA面向服务的体系结构

SOA 面向效劳的体系构造面向效劳的体系构造〔Service-Oriented Architecture,SOA〕是一个组件模型,它将应用程序的不同功能单元〔称为效劳〕通过这些效劳之间定义良好的接口和契约联系起来。

接口是采用中立的方式进展定义的,它应该独立于实现效劳的硬件平台、操作系统和编程语言。

这使得构建在各种这样的系统中的效劳可以一种统一和通用的方式进展交互。

这种具有中立的接口定义〔没有强制绑定到特定的实现上〕的特征称为效劳之间的松耦合。

松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个效劳的内部构造和实现逐渐地发生改变时,它能够继续存在。

而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和构造是严密相连的,因而当需要对局部或整个应用程序进展某种形式的更改时,它们就显得非常脆弱。

对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比方经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。

我们称能够灵活地适应环境变化的业务为按需〔On demand〕业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进展必要的更改。

虽然面向效劳的体系构造不是一个新鲜事物,但它却是更传统的面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在二十多年了。

虽然基于SOA 的系统并不排除使用面向对象的设计来构建单个效劳,但是其整体设计却是面向效劳的。

由于它考虑到了系统内的对象,所以虽然SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。

不同之处在于接口本身。

SOA 系统原型的一个典型例子是通用对象请求代理体系构造〔mon Object Request Broker Architecture,CORBA〕,它已经出现很长时间了,其定义的概念与SOA 相似。

然而,现在的SOA 已经有所不同了,因为它依赖于一些更新的进展,这些进展是以可扩展标记语言〔eXtensible Markup Language,XML〕为根底的。

专题 SOA 面向服务的体系结构

专题:SOA —面向服务的体系结构第一章SOA and Web services 新手入门1.1 SOA and Web services 新手入门developerWorks站点上的Web services 专区包含差不多数百篇文章、教程和技巧,可以帮助开发人员进行大多数与Web 服务有关的应用程序的开发;但是对于那些尝试涉足这个新领域的用户来说,所有这些信息可能会使他们望而却步。

此页为那些想学习Web 服务但是却又不知道从何入手的读者提供了一份概述。

它将Web 服务技术所有的基础知识都放在适当的背景中,并且把它们与相关的developerWorks文章、教程和技巧、IBM 学习服务教育、网络广播、专题研讨会以及IBM 产品联系起来,供读者进一步地研究。

1.1.1 什么是面向服务的体系结构(SOA)?面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。

接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。

这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。

松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。

而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。

对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。

SaaS技术新思维

SaaS技术新思维---探讨构件化SaaS平台的必要性和可行性一、平台构件化1. 企业信息化现状分析实施过ERP的企业往往怨声载道,而且国内ERP品牌与品牌之间的口水战从不间断;业内人士一度对ERP的未来前景质疑,不少企业主甚至对ERP敬而远之。

曾经众口称赞、风光无限的ERP,是什么原因导致ERP如此尴尬的境地?传统的企业应用软件两种典型的交付模式中,套装软件+二次开发能够大规模复用,避免重复劳动,且拥有强大功能,但弊端是没法满足企业个性化需求。

而代码级的定制化虽然能够实现“量体裁衣”,却往往难以体现企业的变化和成长,无法做到“随需应变”。

●软硬件发展速度不平衡软件界的新名词和新概念可谓日新月异,令人眼花缭乱,路在何方?硬件从整体架构上变化不大,但发展速度可谓一日千里。

看看十年前生产的电脑主板和现在生产的电脑主板结构上有多大差别吗?“CPU”+“插槽”:一个基于标准的结构,总线结构,即插即用的契约标准,这些IT界非常简单的流行语塑造了PC行业。

“软件”为什么不学“硬件”简化自己呢?●软件落后的生产方式亟待变革现代化的软件产品一直还停留在“手工作坊”的生产阶段,满足客户个性化的效率太低,成本太高。

50多年来,重复着高技术人才低效率劳动的局面,严重制约了软件产业的发展,尤其是ERP系统的低效率开发更是引发ERP发展危机的主要原因。

软件是“编码的知识”,知识浩如烟海,需求千变万化,基于代码的软件制造方式只能使软件技术人员深陷泥潭而不能自拔。

人类社会的生产方式从19世纪的手工单件生产进化到后来的大工业生产,一个决定性的飞跃就是出现了标准化的零部件,产品可由现成的零部件装配而成,从而使生产走向了规模化。

同样,ERP软件的开发、生产的根本变革就是转向建筑在标准化零部件或成为软件构件基础上的高效率、高质量的新型生产方式。

●网络技术给信息化带来新的机遇和挑战Internet 和Internet相关技术的发展,新一代ERP系统应运而生。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SOA技术专题 SOA技术专题 ................................................................................................... 1 SOA从面向构件开始 ........................................................................................ 1 也谈SOA从面向构件开始 ........................................................................ 1 关于构件的一点随想 ................................................................................. 2 通向SOA-美国和中国不同的道路 ........................................................... 3 “SOA”的时代,“面向构件”老了吗? .................................................... 8 高效率的中国式报表 ....................................................................................... 10

SOA从面向构件开始 构件,是构造应用软件的标准单元。 面向构件,是基于构件的软件开发方法、技术和标准。 SOA,面向服务的企业架构,服务成为企业应用的新资源。 是与非,应用为本,SOA成就企业架构,软件构件造。 远景,SOA从面向构件开始,面向构件从SOA开始。

也谈SOA从面向构件开始 我们说SOA从面向构件开始,就是SOA通过面向构件去实现,因为面向构件是SOA的自然实现方式。

.面向构件的概念着眼于软件的构造,其语义内涵包括: 1、层次化。软件呈现层次化构造,整体可以由一系列有内在结构的器官,即构件,构成。而构件可以由更小的构件构成。

2、可复用。这些构件可以在不同的软件中以相同的形式出现,完成大致相同的功能。 SOA概念着眼于软件的功能,其语义内涵包括:

1、层次化。软件的功能呈现层次化复合,综合功能由单项功能复合而成,复杂功能由简单功能复合而成。 2、可外化。一个软件需要的功能可以由另一个软件提供。 由于“功能外化”可以看作是互联网时代功能复用的一种形式,面向构件与SOA完全同构。 因此,我们说SOA从面向构件开始,就是SOA通过面向构件去实现,因为面向构件是SOA的自然实现方式。 从实现本质看SOA从面向服务开始而又基于构件的 SOA架构体系层次结构中,构件应该是“service component”层的主要技术,其之上的层次是“enterprise service”层。(当然这个可以是系统内,也可以是系统间); 再次看一下JEE(这里聚焦在系统内),对应的就是 服务实现 和 服务接口 这个层,并一定程度上借助Facade Pattern。 因此赞成“SOA从面向服务开始而又基于构件的”的说法。

关于构件的一点随想 如果能让软件用构件的方式来思考问题,而不是java,c,c++这些语言,那么语言这个概念将会被取缔。 构件为什么不能成为一种标准呢? 关于如何选择粒度大小来构造世界,这是一个棘手的平衡问题。因为世界太复杂,所以如果粒度太大,就会失去灵活性,而以至于不能胜任构造任意一种世界这个任务;如果粒度太小,就是变得太复杂。所以得找一个最佳平衡点:灵活而不致复杂,简洁而不致无用。 这个最佳平衡点,建筑业是砖块,而不是泥沙,或者房屋;汉语言是汉字,而不是词汇或者笔画;英语是单词,而不是字母或句子;人类社会是人,而不是器官或者群体;那么软件世界是什么呢?从机器语言,到汇编语言,再到高级语言,这些都不是最佳平衡点,因为他们都是代码级的,虽然现在有面向对象的概念,但是他的实际表现形式还是代码;目前来看只有构件才能胜任这个重任。为什么?构件是图形级的,服务级的。一个构件本身就是一种服务,就像一个汉字、一个单词,它们本身就有自己的意思。所以构件是终极之选。 产品EOS(注:EOS是Embedded Operation System嵌入式操作系统;)实现了构件这一理念,所以需要提供的功能和具有的特性要求:构件运行平台,开发平台,特性是跨平台,易使用(比如双击即可执行,所见即所得等等);构件管理控制中心; 构件库有两种,一种是标准构件库,另一种用户自己开发构件库;用户按照构件接口标准自己开发构件库有两种方式:一是用其他语言开发构件,一是用构件生产构件;构件库就是词汇库。统一的用户界面,开发界面,管理界面;统一的构件接口标准… „当然还有很多很多,很细节化的东西,但是最终的目的就是只要用户装上了EOS,一切将变得容易。 构件将是革命性的,一统天下的。所有的一切,在目前看来技术上是可行的。需要的只是努力,把它变为现实。SOA只是东风,构件将是未来。

通向SOA-美国和中国不同的道路 想起宽带刚刚普及的时候,我在硅谷的家中也就开始安装了,不过麻烦的事情是家中有5个电脑分布在5个不同的房间。房子是建于1963年的老房,所以用网络线的连接就成为问题。最快速且便宜的解决方案是布裸线,否则就要开腔凿洞。因此,家中的墙角和房门口的过道均成为网线的的落脚之处,难看之极,但这是当时最简单的解决方案。直到无线局域网的出现,这个问题才得以解决。 在中国的小区建设中,宽带的连接成为基本配置,所以老的社区曾经也有同样的问题,而大量的新社区这个问题就不存在了。即便有无线局域网的技术,有线宽带的接口还是都提供的。新社区的好处就是可以在一开始就部署新技术,而不需要走老路。 如今,全世界都在嚷嚷SOA,那我们也需要考察美国人怎么部署SOA,中国人怎么部署。研究这个问题,对我们软件公司还是对我们的客户都是有极大帮助的,以免再一次被我们的“主流”厂商误导。因为,美国人如何部署SOA决定美国SOA产品的特征,中国人怎么部署决定中国SOA产品的特性。

SOA的核心是把业务流程功能模块构件化,并对外提供标准的服务,基于这些服务,企业内部的不同业务部门或是不同企业之间的业务整合就更加容易一些。SOA的出现是由于互联网技术的出现,将原来各自为阵的EAI(EAI:企业应用系统集成)_市场标准化。 在美国由于多年的应用系统建设,企业的业务流程大多数以非标准的形式被掩藏在各种各样的应用系统之中,比如CRM系统,ERP系统,HR系统,信用评估系统等等。所以实现SOA架构的第一步是将那些掩藏在个应用系统之中的业务功能模块切割开来,加以包装之后成为标准的服务构件,然后还要将分散在不同系统中的数据整合包装成为数据服务,最后根据业务的需要同过BPEL(注:关于BPEL的介绍:Q。什么是BPEL;A: BPEL是一门用于自动化业务流程的形式规约语言。 用XML文档写入BPEL中的流程能在Web 服务之间以标准化的交互方式得到精心组织。这些流程能够在任何一个符合BPEL规范的平台或产品上执行。 所以,通过允许顾客们在各种各样的创作工具和执行平台之间移动这些流程,BPEL使得他们保护了他们在流程自动化上的投资。尽管以前想使业务流程定义标准化,但BPEL已经引起了史无前例的兴趣,而且它最早在软件供应商中获得大量认可。 Q: BPEL、WSBPEL和 BPEL4WS之间的区别是什么? A: 除了历史参考文献不同外,没有什么其他的不同。这些名字都涉及到相同的未决标准。“BPEL4WS”是起初规范的名字,它由BEA、IBM和Microsoft编写和公布的。“WSBPEL”目前是规范和未决标准的名称。当这个规范提交到OASIS时,出于Web服务相关标准的努力,按照OASIS命名方案更换了这个名字。尽管如此,大部分团体仍然简单地称这个标准为“BPEL”。 Q: 什么是 BPELJ? A: BPELJ 是BPEL和Java 语言的组合,它允许一起运用这两种编程语言来构建完整的业务流程应用程序。通过允许BPEL和Java一起工作, BPELJ使得每种语言可以做它最擅长的事。BPELJ优于BPEL,但没有它那么有竞争力。 Q:如何把BPELJ和 BPEL联系起来,它们之间区别在哪里? A: BPEL基本上向编程发展,它支持业务处理流程的逻辑。这些业务处理流程是独立的应用程序,这些应用使用Web服务作为实现业务功能的活动。BPEL 不会成为一门通用的编程语言。然而,有人认为BPEL将和用来实现业务功能的其他语言(少部分的编程)结合起来。为了方便BPEL和Java 结合起来,BPELJ对BPEL做了一些小的改动并且做了一些扩展。 Q: BPEL不是针对业务分析员吗? 如果是,为什么把Java加进来? A: 有这么一个普遍的误解,那就是BPEL想达到非程序设计人员或者所谓的“业务分析员”也能使用的程度。这个错误的概念部分根源于市场上许多针对于这组用户的业务流程管理工具这样的一个事实。无可置疑,工具供应商为构建BPEL和BPELJ流程提供了广泛的可视化接口,但是语言本身的目的是为了开发人员。 Q: BPELJ如何工作? A: 通过允许在BPEL流程定义中包含Java代码段(称为Java片断),BPELJ使得Java 和BPEL能够相互协作。 Q: 难道不应该考虑允许使用任何语言(C#、JavaScript和Java等)来设计代码片断吗? A: 这个片断背后想法是有代表性,我们希望它能用于许多不同的语言。然而,要集成BPEL和一门特定的语言包含的不仅仅是用XML包装目标语言。集成变量绑定、事务管理、调用路径等问题必须周全地定义,然而,每种语言是用不同的方法解决这些问题,对所有语言进行统一的绑定是不现实的。所以, BPELJ集中解决 BPEL 和 Java的这些集成问题。我们期待着解决其他的语言的集成问题 。 Q: 难道BPELJ 没违反“ BPEL中活动是Web服务,数据是XML,数据结构用XML架构描述”这一原则吗? A: 并不是世界上所有的服务都是Web服务,它们也不应该是。用J2EE更适合紧密耦合的系统,在这种系统中,容器提供的功能如安全和事务是特别有价值的。那些把业务逻辑部署成J2EE组件的人员应该能够在业务流程中充分利用这些组件,BPEL是描述这个过程最好的一门语言。 一些人争论说在程序片断中用Java来完成少量计算和数据操作非常合适,但是应该通过XML/Web服务视图强制所有服务调用。这是一个特别站不住脚的观点。如果您有一个用Java代码片断写的流程,很明显,有一个Java开发人员参与创建这个流程。 这意味着您可能有下面的设想:有一个开发人员熟悉用Java调用组件,他

相关文档
最新文档