Chap8基于分布构件的体系结构

上传人:hs****ma 文档编号:588281220 上传时间:2024-09-07 格式:PPT 页数:45 大小:1.05MB
返回 下载 相关 举报
Chap8基于分布构件的体系结构_第1页
第1页 / 共45页
Chap8基于分布构件的体系结构_第2页
第2页 / 共45页
Chap8基于分布构件的体系结构_第3页
第3页 / 共45页
Chap8基于分布构件的体系结构_第4页
第4页 / 共45页
Chap8基于分布构件的体系结构_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《Chap8基于分布构件的体系结构》由会员分享,可在线阅读,更多相关《Chap8基于分布构件的体系结构(45页珍藏版)》请在金锄头文库上搜索。

1、国防科技大学计算机学院国防科技大学计算机学院 第第八章八章:基于分布构件的体系结构基于分布构件的体系结构董威,文艳军,陈振邦董威,文艳军,陈振邦国防科技大学计算机学院国防科技大学计算机学院软件设计与体系结构软件设计与体系结构国防科技大学计算机学院国防科技大学计算机学院基于分布构件的系统体系结构基于分布构件的系统体系结构2国防科技大学计算机学院国防科技大学计算机学院内容内容8.1 EJB分布构件框架分布构件框架8.2 DCOM分布构件框架分布构件框架8.3 CORBA分布构件框架分布构件框架3国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架简介:简介:EJB(E

2、nterprise Java Bean)分)分布构件框架由布构件框架由SUN公司主导制定,它基于公司主导制定,它基于Java语言,面向企业级的分布式系统开发。语言,面向企业级的分布式系统开发。4国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld1.EJB构件构件HelloWorldBean文件文件HelloWorldBean.java:5国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld1.EJB构件构件HelloWorldBean文件文件HelloWorld.jav

3、a:6国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld1.EJB构件构件HelloWorldBean编译上述两个文件,便能够得到两个类文件编译上述两个文件,便能够得到两个类文件HelloWorldBean.class和和HelloWorld.class,它们分别描述了,它们分别描述了EJB构件构件HelloWorldBean和它的远程接口和它的远程接口HelloWorld。将这两个类放。将这两个类放在在Jboss安装目录的安装目录的examplesserver子目录子目录下,然后打包成一个文件下,然后打包成一个文件HelloWo

4、rld.jar。至。至此,此,EJB构件构件HelloWorldBean就开发好了。就开发好了。 7国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld2.EJB构件构件HelloWorldBean的部署的部署在开发完在开发完EJB构件之后,需要将其部署到构件之后,需要将其部署到EJB应用服务器中。对于应用服务器中。对于Jboss,在成功启动,在成功启动之后,只需要将上述的文件之后,只需要将上述的文件HelloWorld.jar直直接拷贝到接拷贝到Jboss安装目录下的一个特定子目安装目录下的一个特定子目录中,录中,Jboss就会自

5、动完成就会自动完成EJB构件构件HelloWorldBean的部署。的部署。8国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld3.EJB客户客户HelloWorldClient的开发的开发9国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld4.测试测试编译完文件编译完文件HelloWorldClient.java后,即可后,即可运行命令运行命令“java examples.client.HelloWorldClient”,结果,结果如下所示:如下所示:10国防科技大

6、学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架原理分析:本实例中定义的三个类之间的原理分析:本实例中定义的三个类之间的关系如下图所示。构件关系如下图所示。构件HelloWorldBean的实例由构件容器负责创建。的实例由构件容器负责创建。11国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架原理分析:本实例中定义的三个类之间的原理分析:本实例中定义的三个类之间的关系如下图所示。构件关系如下图所示。构件HelloWorldBean的实例由构件容器负责创建。的实例由构件容器负责创建。12国防科技大学计算机学院国防科技大学计算机学院8.1 E

7、JB分布构件框架分布构件框架原理分析:原理分析:RMI原理原理13国防科技大学计算机学院国防科技大学计算机学院8.1 EJB分布构件框架分布构件框架其它说明:在其它说明:在EJB构件框架下,客户端可构件框架下,客户端可以有各种不同的形式,如下图所示。无论以有各种不同的形式,如下图所示。无论简单的简单的Java程序,还是程序,还是Web容器或者客容器或者客户容器中的户容器中的Java程序,它们都遵守上述的程序,它们都遵守上述的EJB构件框架,即通过远程对象的存根访构件框架,即通过远程对象的存根访问问EJB容器中的会话容器中的会话Bean。14国防科技大学计算机学院国防科技大学计算机学院内容内容8

8、.1 EJB分布构件框架分布构件框架8.2 DCOM分布构件框架分布构件框架8.3 CORBA分布构件框架分布构件框架15国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架DCOM(Distributed Component Object Model,分布构件对象模型分布构件对象模型)是一是一个二进制代码层面的构件模型个二进制代码层面的构件模型,由由微软公微软公司司于于1995年左右提出年左右提出,从从COM(Component Object Model,构,构件对象模型)件对象模型)扩充而成扩充而成。按照这个模型,按照这个模型,以二进制形式存在的构件可以被远

9、程客户以二进制形式存在的构件可以被远程客户透明访问。透明访问。 16国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架基本概念基本概念1.DCOM客户:泛指所有与客户:泛指所有与DCOM构件交互的构件交互的程序片断。如果一个程序片断。如果一个DCOM构件要与其他构件要与其他DCOM构件交互,那它同时也是一个构件交互,那它同时也是一个DCOM客户。客户。2.DCOM构件:是具有特定格式要求的动态链构件:是具有特定格式要求的动态链接库(接库(DLL)文件或可执行()文件或可执行(EXE)文件。)文件。3.对象、类和类工厂对象、类和类工厂4.接口接口5.接口的代理接

10、口的代理/残桩残桩DLL17国防科技大学计算机学院国防科技大学计算机学院18国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架整体结构整体结构19国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld,共包含十个文件:,共包含十个文件:HelloComponent.cpp、HelloComponent.h:包含:包含EXE构件的主函数构件的主函数WinMain()和相关代码。和相关代码。HelloClass.cpp、HelloClass.h:包含:包含EXE构件向外构件向外提供的类提供的类CHell

11、oClass的定义、以及向外提供的工厂的定义、以及向外提供的工厂类类CFactory的定义。的定义。Hello.idl:定义类:定义类CHelloClass向外提供的接口向外提供的接口IHello。既用于。既用于EXE构件,也用于客户程序。构件,也用于客户程序。HelloClient.cpp:客户程序。:客户程序。Registry.cpp、Registry.h:包含一些辅助函数的定:包含一些辅助函数的定义,用于访问义,用于访问Windows注册表。注册表。Makefile、HelloProxy.def20国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:

12、实例:HelloWorld1.EXE构件主程序(构件主程序(HelloComponent.cpp)21国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld2.EXE构件中的工厂类构件中的工厂类CFactory22国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld3.EXE构件中的类构件中的类CHelloClass23国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld4.类类CHelloClass的接口

13、的接口IHello24国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld4.类类CHelloClass的接口的接口IHello:Hello.idl25国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld5.EXE构件构件HelloComponent.exe的生成和部的生成和部署:部署时,需要将署:部署时,需要将HelloComponent.exe和和HelloProxy.dll拷贝到服务器上,并应该将拷贝到服务器上,并应该将它们都注册到服务器上的它们都注册到服务器上

14、的DCOM系统中。注系统中。注册册HelloProxy.dll的命令是的命令是“Regsvr32 HelloProxy.dll”;注册;注册HelloComponent.exe的命令是的命令是“HelloComponent.exe -regserver”,也就,也就是说它能够自我注册。是说它能够自我注册。26国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld6.客户程序(客户程序(HelloClient.cpp)27国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorl

15、d6.客户程序(客户程序(HelloClient.cpp):客户端请求):客户端请求服务器创建对象的过程服务器创建对象的过程28国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld7.客户方的部署和测试:将客户方的部署和测试:将HelloClient.exe和和HelloProxy.dll拷贝到客户机上,并将拷贝到客户机上,并将HelloProxy.dll注册到客户机上的注册到客户机上的DCOM系统系统中。中。29国防科技大学计算机学院国防科技大学计算机学院8.2 DCOM分布构件框架分布构件框架对原理的进一步分析:客户与对原理的

16、进一步分析:客户与EXE服务构服务构件之间有三次直接的交互,如图上的数字件之间有三次直接的交互,如图上的数字6、8、9所标识。但在分布环境下,客户所标识。但在分布环境下,客户是不可能直接与是不可能直接与EXE构件在接口层面直接构件在接口层面直接交互的。实际上,上述三次交互都是由本交互的。实际上,上述三次交互都是由本地机器上的代理对象或残根对象完成的,地机器上的代理对象或残根对象完成的,而这些代理对象和残根对象都是由前面生而这些代理对象和残根对象都是由前面生成的代理成的代理/残根动态链接库残根动态链接库HelloProxy.dll生成,只不过这个过程由生成,只不过这个过程由DCOM系统控制,系统

17、控制,外界看不到而已。外界看不到而已。30国防科技大学计算机学院国防科技大学计算机学院31国防科技大学计算机学院国防科技大学计算机学院内容内容8.1 EJB分布构件框架分布构件框架8.2 DCOM分布构件框架分布构件框架8.3 CORBA分布构件框架分布构件框架32国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架CORBA(Common Object Request Broker Architecture,分布对象请求代分布对象请求代理体系结构理体系结构)是一种异构平台下的语言无是一种异构平台下的语言无关的分布对象互操作模型。由关的分布对象互操作模型。由O

18、MG(Object Management Group,对,对象管理组织)于象管理组织)于1990年首次提出,后经过年首次提出,后经过多版改进,最新的多版改进,最新的CORBA规范是规范是2008年年发布的发布的3.1版。版。33国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架基本基本体系结构体系结构34国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架基本基本体系结构体系结构35国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架基本基本体系结构体系结构36国防科技大学计算机学院国防科技

19、大学计算机学院8.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld,包含四个文件和包含四个文件和七个七个Java类类37国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld1.接口的定义(接口的定义(Hello.idl)38国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld2.服务器端的对象实现类的定义服务器端的对象实现类的定义HelloImpl.java39国防科技大学计算机学院国防科技大学计算机学院8.3 COR

20、BA分布构件框架分布构件框架实例分析:实例分析:HelloWorld3.服务器端的主程序(服务器端的主程序(Server.java)40国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld4.客户端程序(客户端程序(Client.java)41国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld5.测试测试在服务器上使用在服务器上使用JacORB的的ns命令启动命令启动CORBA命命名服务。名服务。在服务器上启动服务器主程序,使用的命令是在服务器上启动服务器主程序,使用的命令是“jaco demo.helloworld.Server”。启动客户端主程序,使用的命令是启动客户端主程序,使用的命令是“jaco demo.helloworld.Client”。 42国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架完整完整体系结构体系结构43国防科技大学计算机学院国防科技大学计算机学院8.3 CORBA分布构件框架分布构件框架完整完整体系结构体系结构44国防科技大学计算机学院国防科技大学计算机学院45

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号