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

摘 要:分布式对象中间件技术是为了解决分布计算和软件复用过程中存在的异构问题而提出的。,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的结合将会把分布计算和软件复用推向新的阶段。

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

近年来,电推进技术在汽车、动车等传统运输工具领域得到了较为广泛的应用。而航空飞行器对轻量化、可靠性、能源能量密度、发动机功率等要求较高,因此电推进技术在航空领域的应用仍处于探索阶段[1]。目前,应用于中小型飞行器的分布式...

关键字: 大展弦比 分布式 激励盘

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用
关闭
关闭