基于Java的中间件的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Java的中间件的设计与实现
作者:于虎
单位:三星通信研究院
班号:G08061
学号:GS0806126
摘要:简要介绍了中间件的定义和原理,在此基础上讨论了基于异构网络环境下的一个具体中间件项目的实现,并对其采用的关键技术和设计思想进行了分析。
关键词:Java;中间件;网络技术
Abstract:Middleware, is a layer of software between the network and the applications. This software provides services such as identification, authentication, authorization, directories, and security. In today's Internet, applications usually have to provide these services themselves, which leads to competing and incompatible standards. By promoting standardization and interoperability, middleware will make advanced network applications much easier to use.
The definition and principles of middleware are introduced.The implementation of a middleware project based
on heterogeneous network environment is discussed.Its key techniques and designing methods are analyzed.
Key words:JAVA;middleware;network environment
1 引言
随着计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。这些,都需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件系统,而中间件正是在这个环境下应孕而生。
由于中间件技术正处于发展过程之中,因此目前尚不能对它进行精确的定义。
比较流行的定义是:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通讯。
从中间件的定义可以看出,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,定义中特别强调了其网络通讯功能。
2 中间件的定义和分类
中间件比较普遍接受的是IDC表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。该定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。如下图中间件的表示:
中间件的分类方法较多,按照IDC 的分类方法,中间件可分为六类。分别是数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件等。
数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的数据库实现联接或文件系统实现联接的中间件;
远程过程调用中间件:通过这种远程过程调用机制,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程;
消息中间件:用来屏蔽掉各种平台及协议之间的特性,进行相互通信,实现应用程序之间的协同;
交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台;
对象中间件:在分布、异构的网络计算环境中,可以将各种分布对象有机地结合在一起,完成系统的快速集成,实现对象重用。
目前国内外有不少厂商都开发出自己的中间件产品,其中有全球最大的独立中间件厂商BEA公司,还有像IBM、Oracl e和Microsoft、HP、Sun等大厂商也早已涉足电子商务中间件。
主流方向,它提供一种通讯机制,透明地在异构的分布计算环境中传递对象请求,而这些对象可以位于本地或者远程机器。
面向对象标准原本只有一个,即CORBA(公共对象请求代理体系结构),该标准由包括BEA、IBM、Oracle、Sun和Sybas e等公司在内的众多厂商一起制定,从而形成了一个庞大的CORBA联盟势力。后来,Sun推出了企业级JavaBeans(EJB),用自己易使用的程序模型来对CORBA做出了改进。微软COM(Component Object Model,组件对象模型)的出现,使面向对象中间件市场里又多了一个标准,这样,面向对象中间件产品实际上形成了两大标准,一是微软的COM,一是JavaBeans。
从宏观上看,中间件可以分为3大类:
数据类:用于数据的存取、利用和增值,此类中间件用于构建以数据为中心的应用。
处理类:把分布在网络结点上的各个应用或处理连接在一起,形成一个统一的分布式应用。
分布式构件类:支持构件式应用,未来应用的发展方向,目前竞争激烈。
3 中间件的原理
由中间件的定义可看出,中间件的核心在于网络通信,将不同时期、不同操作系统上开发的系统集成起来,彼此协调工作,这是单一的操作系统、数据库系统无法解决的问题。目前国际互联网络中事实上的网络通信协议是TCP/IP协议,许多应用层协议均以该协议为基础。
Java语言可用于网络编程,提供了功能强大的网络支持,URL访问网络资源的类和Socket通信的类来满足不同的需求。客户基于服务器之间的使用的大部分通信都是基于TCP/IP协议中传输层接口Socket来实现的,它解决了两进程间通信的问题。Socket其实就是进程间点对点的通信,是网络编程的一个接口。Socket通信模式如图1所示。Socket因为是基于传输层的,所以是比较原始的通信协议。通过Socket的数据表现形式为字节流,因此,通信双方要想完成某项具体应用必须按照双方约定的方式进行数据的格式化和解释。虽然使用Socket编程相对比较麻烦,但是它具有更强的灵活性和更广泛的使用空间。
Socket由主机地址、端口号、协议种类构成。一般一个主机会提供多种服务,一个服务会由一个或多