中间件学习——技术平台三步曲

在前面两篇文章中,我们了解了中间件的基本概念和中间件的主要技术分类,在这篇文章中我们了解下基于中间件的主流技术平台。

技术平台

现有的基于中间件的主流技术平台一般典型的应用是为三层/多层结构的分布式软件系统提供各种开发支撑,因为三层结构的分布式软件的核心为中间层,因此支撑主要集中在对中间层开发的支撑上,目前应该最广泛的技术平台有三类:

基于 OMG(ObjectManagement Group,对象管理组织)CORBA规范

基于 Sun JEE(JavaEnterprise Edition,Java 企业版)规范

基于Microsoft的Distributed interNet Applications (DNA) 2000规范、

OMG的CORBA

CORBA规范是OMG组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范,用于开发和配置分布式应用的服务器端中间件模型的规范,让分布式应用程序中的远程对象可以相互通信,独立于系统平台和开发语言。

CORBA所基于的概念框架是对象管理体系结构(Object Management Architecture,OMA) ,OMA 描述了一个基于 CORBA的应用系统的基本结构与构成系统的构件的特性。

OMA的核心基础设施是象请求代理(ObjectRequest Broker,ORB),

,CORBA规范规定了ORB的标准体系结构。ORB 负责完成查找请求的对象实现、让对象实现准备好接收请求、传递构成请求的数据等完成远程调用时底层通信任务所需的全部机制

CORBA CCM(CORBAComponentModel)技术,是在支持POA的CORBA规范(版本2.3以后)基础上,结合EJB当前规范的基础上发展起来的。CORBA构件模型,是OMG组织制定的一个用于开发和配置分布式应用的服务器端中间件模型规范

CORBA的目标是支持多个层次的可互操作性,CORBA 规范经过多次改进与发展才达到这一目标。CORBA支持在可互操作性主要包括如下几个层次:

1、不同平台(如操作系统)与语言之间的可互操作性:这是早期的 CORBA版本强调解决的主要问题,解决方法包括制定IDL标准以及IDL到程序设计语言的映射。这使得使用同一供应商的
ORB 产品开发的客户程序与服务程序之间可以交互, 但使用不同供应商的ORB产品开发的客户程序与服务程序则未必是可互操作的。

2、不同厂商
ORB 产品之间的可互操作性:CORBA 2.0
版引入了GIOP 和 IIOP,从而实现了不同供应商的 ORB 产品之间的可互操作性,所有供应商的 ORB产品如果与 CORBA 2.0 兼容则彼此之间可互操作。

3、不同体系结构之间的可互操作性:更完善的可互操作性还应包括不同体系结构之间的可互操作,
例如一个CORBA对象可通过协议桥接操作一个DCOM对象,OMG通过引入ESIOP来解决这一问题。 但ESIOP只能解决CORBA与特定体系结构 (如DCOM)之间的互操作,并不能通过一套 ESIOP解决所有的问题。

关于CORBA的特点是大而全,互操作性和开放性非常好。CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所花的时间非常短,而再往上的版本的发布就相对十分缓慢了。在具体的应用中使用不是很多。

Sun的J2EE

为了推动基于Java的服务器端应用开发,Sun于是在1999年底推出了Java2技术及相关的J2EE规范,J2EE的目标是:提供平台无关的、可移植的、支持并发访问和安全的,完全基于Java的开发服务器端中间件的标准。

在J2EE中,Sun给出了完整的基于Java语言开发面向企业分布应用规范,其中,在分布式互操作协议上,J2EE同时支持RMI和IIOP,而在服务器端分布式应用的构造形式,则包括了JavaServlet、JSP(Java Server
Page)、EJB等多种形式,以支持不同的业务需求,而且Java应用程序具有"Writeonce,run anywhere"的特性,使得J2EE技术在发布计算领域得到了快速发展。

J2EE简化了构件可伸缩的、其于构件服务器端应用的复杂度,虽然微软的DNA也一样,但最大的区别是微软的DNA是一个产品,J2EE不是一系列产品,而是一个规范和标准,不同的厂家可以实现自己的符合J2EE规范的产品,J2EE规范,是众多厂家参与制定的,它不为Sun所独有,而且其支持跨平台的开发,目前许多大的分布计算平台厂商都公开支持与J2EE兼容技术。

J2EE的优点是,服务器市场的主流还是大型机和UNIX平台,这意味着以Java开发构件,能够做到"Writeonce,run anywhere",开发的应用可以配置到包括Windows平台在内的任何服务器端环境中去。

构件:Ejb技术

EJB是Sun推出的基于Java的服务器端构件规范J2EE的一部分,自从J2EE推出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。Sun的EJB技术是在JavaBean本地构件基础上,发展的面向服务器端分布应用构件技术。EJB技术的推出,使得用Java基于构件方法开发服务器端分布式应用成为可能。

从企业应用多层结构的角度,EJB是业务逻辑层的中间件技术,与JavaBeans不同,它提供了事务处理的能力,自从三层结构提出以后,中间层,也就是业务逻辑层,是处理事务的核心,从数据存储层分离,取代了存储层的大部分地位。

从分布式计算的角度,EJB像CORBA一样,提供了分布式技术的基础。提供了对象之间的通讯手段。  

从Internet技术应用的角度,EJB和Servlet,JSP一起成为新一代应用服务器的技术标准,EJB中的Bean可以分为会话Bean和实体Bean,前者维护会话,后者处理事务,现在Servlet负责与客户端通信,访问EJB,并把结果通过JSP产生页面传回客户端。

Microsoft DNA 2000

MicrosoftDNA 2000(Distributed interNetApplications)是Microsoft在推出Windows2000系列操作系统平台基础上,在扩展了分布计算模型,以及改造BackOffice系列服务器端分布计算产品后发布的新的分布计算体系结构和规范。

在服务器端,DNA2000提供了ASP、COM、Cluster等的应用支持。目前,DNA2000在技术结构上有着巨大的优越性。一方面,由于Microsoft是操作系统平台厂商,因此DNA2000技术得到了底层操作系统平台的强大支持;另一方面,由于Microsoft的操作系统平台应用广泛,支持该系统平台的应用开发厂商数目众多,因此在实际应用中,DNA2000得到了众多应用开发商的采用和支持。

DNA2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列、集群等内容。DNA使得开发可以基于Microsoft平台的服务器构件应用,其中,如数据库事务服务、异步通讯服务和安全服务等,都由底层的分布对象系统提供。

但是它的不足是依赖于Microsoft的操作系统平台,因而在其它开发系统平台(如Unix、Linux)上不能发挥作用。

构件

DNA构件有COM(Component Object Model)/DCOM/COM+构件。

以Microsoft为首的DCOM/COM/COM+阵营,从DDE,OLE到ActiveX等,提供了中间件开发的基础,如VC,VB,Delphi等都支持DCOM,包括OLEDB在内新的数据库存取技术,随着Windows2000的发布,Microsoft的DCOM/COM/COM+技术,在DNA2000分布计算结构基础上,展现了一个全新的分布构件应用模型。

首先,DCOM/COM/COM+的构件仍然采用普通的COM(ComponentObjectModel)模型。COM最初作为Microsoft桌面系统的构件技术,主要为本地的OLE应用服务,但是随着Microsoft服务器操作系统NT和DCOM的发布,COM通过底层的远程支持使得构件技术延伸到了分布应用领域。DCOM/COM/COM+更将其扩充为面向服务器端分布应用的业务逻辑中间件。通过COM+的相关服务设施,如负载均衡、内存数据库、对象池、构件管理与配置等等,DCOM/COM/COM+将COM、DCOM、MTS的功能有机地统一在一起,形成了一个概念、功能强的构件应用体系结构。而且,DNA2000是单一厂家提供的分布对象构件模型,开发者使用的是同一厂家提供的系列开发工具,这比组合多家开发工具更有吸引力。

比较

针对上述的各种分布计算平台技术,都出现了相似且具有可比性的分布式构件,即CORBACCM(CORBA Component Model)技术、SUN的EJB(Enterprise JavaBean)技术和DNA2000中的COM/DCOM/COM+技术。

我们从集成性、可用性、可扩展性进行比较之前,先了解下这三个特性。

集成性主要反映在基础平台对应用程序互操作能力的支持上。它要求分布在不同机器平台和操作系统上、采用不同的语言或者开发工具生成的各类商业应用必须能集成在一起,构成一个统一的企业计算框架。这一集成框架必须建立在网络的基础之上,并且具备对于遗留应用的集成能力;

可用性要求所采用的软件构件技术必须是成熟的技术,相应的产品也必须是成熟的产品,在至关重要的企业应用中能够稳定、安全、可靠地运行。另外,由于数据库在企业计算中扮演着重要角色,软件构件技术应能与数据库技术紧密集成;

可扩展性,集成框架必须是可扩展的,能够协调不同的设计模式和实现策略,可以根据企业计算的需求进行裁剪,并能迅速反应市场的变化和技术的发展趋势。通过保证当前应用的可重用性,最大程度地保护企业的投资。

下表从集成性,可用性,可扩展性三个方面,给出了上述三种主流分布计算平台的比较结果。

表格


CORBA(CCM)


Ejb


DCOM


集成性


跨语言性能



差(限于java)



跨平台性能




差(限于windows)


网络通讯




一般


公共服务构件




一般


可用性


事务处理



一般


一般


消息服务


一般


一般


一般


安全服务




一般


目录服务



一般


一般


容错性


一般


一般


一般


软件开发商支持度


一般




产品成熟性


一般


一般



可扩展性




一般

虽然这三种平台因为其形成的历史背景和商业背景有所不同,各自有自己的侧重和特点,其实在它们之间也有很大的相通性和互补性。目前许多平台都能实现EJB构件和CORBA构件的互操作。同EJB和CORBA之间相互之间方便的互操作性相比,DOCM和CORBA之间的互操作性要相对复杂些,因为商业利益的原因,在EJB和DCOM之间基本没有提供互操作方法。

后记

关于中间件的知识这篇文章就介绍到这里,下篇文章我们继续中间件的知识。

时间: 2024-10-13 15:37:49

中间件学习——技术平台三步曲的相关文章

企业核心人才培养三步曲

信息的价值,思考的价值,学习的价值,连接的价值,时间的价值,无形的价值,人才需要不断灌输有用的信息. 人是企业最宝贵的资源,是企业巨大的财富,更是企业核心竞争力的资本,企业核心人才决定企业是否能成为百年老店?基业长青.因此,稳定核心人才,培育核心人才是企业家和企业人力资源管理者的核心战略任务,需长抓不懈.IBM前任总裁郭仕纳曾经说过:"21世纪获得成功的企业,将会是那些尽力开发.培育核心人才的组织". 一.什么是企业核心人才? 要培养好企业核心人才,企业就要建立和制定核心人才标准.笔者

VC控件自绘制三步曲

http://blog.csdn.net/lijie45655/article/details/6362441 实现自定义绘制的三步曲 既然您已经了解了绘制控件可用的各种选项(包括使用自定义绘制的好处),那么,让我们来看看实现一个自定义绘制控件需要的三个主要步骤. 执行一个 NM_CUSTOMDRAW 消息处理程序. 指定处理所需的绘制阶段. 筛选特定的绘制阶段(在这些阶段中,您需要加入自己的特定于控件的绘制代码). 执行一个NM_CUSTOMDRAW 消息处理程序 当需要绘制一个公共控件时,M

[转]Membership三步曲之入门篇 - Membership基础示例

本文转自:http://www.cnblogs.com/jesse2013/p/membership.html Membership三步曲之入门篇 - Membership基础示例 Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Provider model Membership三步曲之高级篇 -  从Membership 到 .NET 4.5 之 A

高效阅读文章的“三步曲”

高效阅读文章的“三步曲” 通读杨春玲老师的两篇博文“我科研过程中走过的弯路及纠偏探索 ”.“如何有效阅读文献(图) ”及其中链接的文章How to Read a Paper http://blog.sciencenet.cn/home.php?mod=attachment&filename=howtoread.pdf&id=47254,现给出自己对于这一问题的思考,以下没有标注的引号里的内容均来自杨老师的两篇博文中. 一.认真研读自己专业的经典教材,“教材是一个领域里最佳参考,研究之前先查

OpenCV-2.4.2 安装三步曲

注意:本人未使用  ffmpeg 的全部依赖库,比如AAC 音频编码库(libfaac-dev),MP3 编码库(ibmp3lame-dev),具体的配置为: ./configure --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-x11grab --enable-libx264 --enable-libxvid ===========================================

LAMP环境配置三步曲之(一) CentOS 编译安装 Apache

LAMP环境的配置现今虽然已比之前大大的简化了,但对于一些不熟悉Linux系统的朋友来说,还是有一定难度的,这里将本人的配置过程记录下来,希望能对大家有一些帮助. 本期介绍CentOS下编译安装Apache的方法: 1. 下载Apache服务器 httpd-2.2.26 wget http://apache.fayea.com/apache-mirror//httpd/httpd-2.2.26.tar.gz 2. 安装gcc等必须的编译器 yum install autoconf automak

Office操作:图文混排三步曲

我们在编辑Word文档的时候,图片和文字的混排编辑可能是我们遇到的最为主要的情况,恰到好处的图文混排不仅可以起到美化文档的效果,对于阅读者阅读并理解文档内容也是大有裨益.因此,熟练掌握Word的图文混排是我们制作比如海报.杂志.刊物.贺卡等这类非纯文本文档的第一步,今天,我在这给大家介绍图文混排的基本知识及技巧,先给大家展示一个效果图. Office操作:图文混排三步曲效果展示准备工作:1.准备好文字材料:2.准备好图片素材:3.构思好排版效果. 图文混排第一步:在文档中插入图片.方法:通过[插

Android应用层View绘制流程之measure,layout,draw三步曲

概述 上一篇博文对DecorView和ViewRootImpl的关系进行了剖析,这篇文章主要是来剖析View绘制的三个基本流程:measure,layout,draw,只有把这三个基本流程搞清楚了,平时在自定义View的时候才会有清晰的思路!开始进入正题. View的measure过程 三个流程均是从ViewRootImpl的performTraversals方法开始的,如下所示: private void performTraversals() { ...... int childWidthM

工作流学习——Activiti流程定义管理三步曲

一.前言 在上一篇文章我们通过一个小demo对Activiti进行了宏观的介绍,让大家对Activiti有了整体的认识,这篇文章我们来学习具体的流程定义管理的CRUD. 二.正文 流程定义是什么 ProcessDefinition(流程定义)就是一个流程的步骤说明,比如我们接下来要说的这个流程,申请人王三发起提交申请,李四作为部门经理进行审批,审批完成后,此申请到达下一级总经理王五,进行审批.就这么整个流程说明其实就是流程定义,不过在Activiti中整个流程定义是以helloworld.bpm