当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要:分布式对象中间件技术是为了解决分布计算和软件复用过程中存在的异构问题而提出的。,EJB,COM/是目前主要的3大中间件技术,他们都有自己的优势应用领域,和的结合在解决 WWW应用方面具有无比的优势。本文介绍了基于/ 的 WWW信息查询系统开发的一般方法。

关键词:中间件;分布式对象中间件;CORBA; ?

随着计算机技术,尤其是技术的发展,跨地域、跨企业、跨业务的计算机应用越来越广泛。但是不同硬件平台、网络环境、数据库等异质性因素影响了计算机系统集成应用。应用开发过程中大约有70%的时间和精力用于解决与业务逻辑没有直接关系的跨平台难题,因此,有必要将分布式应用所面临的共性问题进行提炼,抽象形成一个可复用的软件部件—中间件—供应用软件使用。过去中间件系统如DCE(Distributed Computing Environment)是面向过程的软件复用模式体系结构,随着面向对象技术的发展和客户/服务器模式的流行,分布式对象中间件技术已成为分布计算的主流技术。本文介绍了3大分布式对象中间件技术及基于CORBA/的WWW系统开发的一般过程。?

1中间件技术

中间件是一种独立的系统软件或服务程序,分布式应用借助这种软件可以在不同技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。中间件的目标是要解决系统的互连和互操作,他的核心是解决名字服务、安全控制、并发控制、可靠性保证、效率保证等方面的问题,要实现互联还要解决支持各种通讯协议、各种通讯服务模式、传播各种数据内容、数据格式翻译、流量控制、数据加密、数据压缩等。按照IDC的分类方法,中间件分为6类:终端仿真/屏幕转换中间件、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件和分布式对象中间件。

传统的对象技术通过封装、继承及多态性提供良好的代码重用功能。但是,这些对象只存在于一个程序中,外界并不知道他们的存在,也无法访问他们。分布式对象中间件就是要解决这些问题,他提供一个标准构件框架,能使不同厂家的软件通过不同地址空间、网络和操作系统进行交互访问。对象技术的优势和分布式对象中间件的标准化,促使对象中间件功能最终将涵盖几类中间件的功能,从而成为中间件产品的主流。
?
2分布式对象中间件技术?

2.1公共对象请求代理体系结构CORBA

CORBA由对象管理组织OMG于1991年提出,其旨在将错综复杂的网络编程从单独的组件和应用中移走。ORB是CORBA平台的核心,他提供了客户—对象间实现透明通信的方法,当客户激活一个方法时,ORB负责定位对象实现并透明激活将请求传输给对象实现并返回结果。IDL是不依赖于具体编程语言和计算平台的接口语言,用来定义对象接口,IDL对描述跨平台,跨语言应用程序提供一个公共的表示方式,IDL编译器可根据用户需要将IDL定义转化为应用程序语言,如C++,等。IDL桩为客户提供了静态调用对象方式,IDL构架为客户提供了静态实现方式,他们由IDL编译器产生,作为具有调用功能的子例程分别在客户方和服务器方使用。而动态调用接口DII( Invocation )和动态构架接口DSI( Skeleton )提供了动态调用方式和动态实现方式。在ORB核心和对象实现之间还有对象适配器,他负责服务对象的注册、对象引用的创建和解释、对象实现的激活和去活以及客户请求的分发等。ORB之间的互操作主要是由ORB桥,( InterORB Protocol)和EISP(Environment Specific InterORB Protocol)等互操作协议来规定。是建立在TCP协议之上的基于连接的协议。

2.2分布组件对象模式

是Microsoft与业界厂商合作提出的一种分布构件对象模型。DCOM起源于动态数据交换DDE技术。通过剪切/粘贴(cut/)实现2个应用程序之间共享数据的动态交换。对象连接和嵌入OLE就是从DDE引伸而来的,随后Microsoft引入了构件对象模型COM,形成了COM对象之间实现互操作的二进制标准。COM规定了对象模型和编程要求,使COM对象可以与对象相互操作。DCOM出现是为了弥补COM在支持远程组件方面的不足。他为分布在网络不同节点的2个COM组件提供了互操作的基础结构。

将COM,DCOM,OLE及这些服务结合起来形成了微软创造的分布式网络互联体系结构DNA。

2.3EJB企业JAVA平台

近年来,Sun Microsystem公司提出的基于JAVABean组件技术的EJB及 JAVA平台,JAVABean是JAVA向组件方面的发展,组件的单位叫Bean或JAVABean,这种组件模式是JAVA编写的可移植的,平台独立的组件模式,在分布计算模型中,可用来构建客户端程序。EJB于1998年提出,是服务器方的组件模式,定义了开发和布署可重用的JAVA服务器组件模式和API规范。JAVABeans和EJB体系结构之间,一个最明显的区别是事件处理。JAVABean是为紧耦合的桌面环境而设计,使用局部事件模式,不利于系统的集成。EJB体系结构对分布式的事件提供灵活的支持,允许远程客户通过远程方法调用API访问服务器功能。适应分布式体系结构中的多层应用。EJB还不是一个完整的平台,其提供服务也有限,于是在EJB的基础上,提出能适应广泛企业计算的 JAVA平台技术。 JAVA平台包括EJB ,JSP,Servlet,JDBC等组件。

上述3种中间件各有特点,CORBA可以跨各种操作平台,包括Windows OS ,甚至支持DOS操作系统而DCOM只支持Win 32; 同时CORBA跨多种语言,支持C++,Smalltalk,JAVA,,Ada等语言。DCOM主要以桌面Wintel同质平台对象跨应用使用见长,支持带有指针结构的语言如C,C++而不支持JAVA语言。Enterprise JAVA在Internet环境下集组件模式、跨异构平台、兼具事务处理、数据库连接等许多基础结构服务,但仅限于支持JAVA语言。因此我们利用JAVA语言具有简单、面向对象、分布式、解释型、健壮、安全、可移植性的特点结合CORBA的跨异构平台的特性实现对象的重用。
?
3CORBA/JAVA的WWW应用系统

我们设计的系统是要实现以下目标:在客户端用浏览器下载服务器上小程序Applet,通过Java虚拟机和CORBA的ORB实现对远端服务对象的调用,并通过服务对象访问远端数据库,最后返回查询结果并在浏览器上显示。其系统结构图如图1所示。

3.1程序设计与实现

该系统用Borlard Jbuilder 5.0进行开发, Jbuilder 5.0提供了JAVA语言的CORBA开发支持,VisiBroker for JAVA是一个内置于Jbuild 3.0 IDE的开发工具,可以用来建立、管理和开发分布式的跨多种平台的开放的、易用的、可交互的 CORBA Java应用程序。这里开发一个可以访问MS SQL 数据库3层C/S模式应用。在这个系统中要用到定义JDBC API的.sql包,该包定义了JDBC所有的类,接口和方法。主要的类和接口有Manager—处理驱动程序的装入;.sql.—驱动程序接口;.sql.Statement为sql语句提供一个容器,java.sql.Connection表示到特定数据的连接。

(1)定义CORBA objects和编译IDL接口

首先定义一个接口模块Query?idl,该模块包含的DataQuery接口提供了一个连接数据库并返回查询结果的方法dbQuery( ):

用visiBroker IDL编译器(idl2java)编译Query?idl产生一个JAVA接口DataQuery.java和其他必需的JAVA文件。其中_st_DataQuery.java是客户端的stub,_sk_DataQueryImplBase.java是服务器端的骨架(skeleton),另外还包括为传递参数提供支持的DataQueryHolder.java和提供辅助功能DataQueryHelper.java。

(2) CORBA接口的实现

对象实现类必须结合编译产生的骨架来完成,类DataQueryImpl.java需要继承由 IDL编译产生的骨架_sk_DataQueryImplBase类。其中dbQuery( ) 通过JAVA.JDBC.API实现连接数据库并返回查询结果:

(3)创建服务端应用程序

类?java服务程序负责下列任务:初始化ORB和BOA,建立服务对象DataQueryImpl,通知对象可用及准备接受请求。

(4)创建客户端程序

实现步骤:初始化CORBA环境,查找定位到DataQuery对象,然后调用dbquery( )方法。

最后编译服务器端和客户端程序,设置好程序中用到的数据源,启动提供对象查找服务的. Agent和服务端应用程序.java,最后在客户端IE 地址栏健入:http://:15000/clientApplet.html运行客户程序即可实现远端查询。
?
4结语

中间件屏蔽了操作系统和网络协议的差异,为应用层软件提供了多种通讯机制和统一的应用平台,简化了软件开发的复杂度,提高了开发的效率。CORBA已成为软件开发的主流。CORBA独立于网络协议,独立于编程语言,独立于软硬件平台,是目前最有生命力的跨平台分布计算技术。JAVA由于其健壮性,安全性,移动性和跨平台及“一次编写,各处运行”的优点,使其成为WWW网上开发最好的语言。毫无疑问,JAVA和CORBA的结合将会把分布计算和软件复用推向新的阶段。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭