1、国防科技大学计算机学院国防科技大学计算机学院1基于分布构件的系统体系结构基于分布构件的系统体系结构国防科技大学计算机学院国防科技大学计算机学院2内容内容8.1 EJB分布构件框架分布构件框架8.2 DCOM分布构件框架分布构件框架8.3 CORBA分布构件框架分布构件框架国防科技大学计算机学院国防科技大学计算机学院38.1 EJB分布构件框架分布构件框架简介:简介:EJB(Enterprise Java Bean)分)分布构件框架由布构件框架由SUN公司主导制定,它基于公司主导制定,它基于Java语言,面向企业级的分布式系统开发。语言,面向企业级的分布式系统开发。国防科技大学计算机学院国防科技
2、大学计算机学院48.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld1.EJB构件构件HelloWorldBean文件文件HelloWorldBean.java:国防科技大学计算机学院国防科技大学计算机学院58.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld1.EJB构件构件HelloWorldBean文件文件HelloWorld.java:国防科技大学计算机学院国防科技大学计算机学院68.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld1.EJB构件构件HelloWorldBean编译上述两个文件,便能够得到两个类文件编译上述两个文件,
3、便能够得到两个类文件HelloWorldBean.class和和HelloWorld.class,它们分别描述了,它们分别描述了EJB构件构件HelloWorldBean和它的远程接口和它的远程接口HelloWorld。将这两个类放。将这两个类放在在Jboss安装目录的安装目录的examplesserver子目录子目录下,然后打包成一个文件下,然后打包成一个文件HelloWorld.jar。至。至此,此,EJB构件构件HelloWorldBean就开发好了。就开发好了。国防科技大学计算机学院国防科技大学计算机学院78.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld2.EJB
4、构件构件HelloWorldBean的部署的部署在开发完在开发完EJB构件之后,需要将其部署到构件之后,需要将其部署到EJB应用服务器中。对于应用服务器中。对于Jboss,在成功启动,在成功启动之后,只需要将上述的文件之后,只需要将上述的文件HelloWorld.jar直直接拷贝到接拷贝到Jboss安装目录下的一个特定子目安装目录下的一个特定子目录中,录中,Jboss就会自动完成就会自动完成EJB构件构件HelloWorldBean的部署。的部署。国防科技大学计算机学院国防科技大学计算机学院88.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld3.EJB客户客户HelloWo
5、rldClient的开发的开发国防科技大学计算机学院国防科技大学计算机学院98.1 EJB分布构件框架分布构件框架实例:实例:HelloWorld4.测试测试编译完文件编译完文件HelloWorldClient.java后,即可后,即可运行命令运行命令“java examples.client.HelloWorldClient”,结果,结果如下所示:如下所示:国防科技大学计算机学院国防科技大学计算机学院108.1 EJB分布构件框架分布构件框架原理分析:本实例中定义的三个类之间的原理分析:本实例中定义的三个类之间的关系如下图所示。构件关系如下图所示。构件HelloWorldBean的实例由构件
6、容器负责创建。的实例由构件容器负责创建。国防科技大学计算机学院国防科技大学计算机学院118.1 EJB分布构件框架分布构件框架原理分析:本实例中定义的三个类之间的原理分析:本实例中定义的三个类之间的关系如下图所示。构件关系如下图所示。构件HelloWorldBean的实例由构件容器负责创建。的实例由构件容器负责创建。国防科技大学计算机学院国防科技大学计算机学院128.1 EJB分布构件框架分布构件框架原理分析:原理分析:RMI原理原理国防科技大学计算机学院国防科技大学计算机学院138.1 EJB分布构件框架分布构件框架其它说明:在其它说明:在EJB构件框架下,客户端可构件框架下,客户端可以有各
7、种不同的形式,如下图所示。无论以有各种不同的形式,如下图所示。无论简单的简单的Java程序,还是程序,还是Web容器或者客容器或者客户容器中的户容器中的Java程序,它们都遵守上述的程序,它们都遵守上述的EJB构件框架,即通过远程对象的存根访构件框架,即通过远程对象的存根访问问EJB容器中的会话容器中的会话Bean。国防科技大学计算机学院国防科技大学计算机学院14内容内容8.1 EJB分布构件框架分布构件框架8.2 DCOM分布构件框架分布构件框架8.3 CORBA分布构件框架分布构件框架国防科技大学计算机学院国防科技大学计算机学院158.2 DCOM分布构件框架分布构件框架DCOM(Dist
8、ributed Component Object Model,分布构件对象模型分布构件对象模型)是一是一个二进制代码层面的构件模型个二进制代码层面的构件模型,由由微软公微软公司司于于1995年左右提出年左右提出,从从COM(Component Object Model,构,构件对象模型)件对象模型)扩充而成扩充而成。按照这个模型,按照这个模型,以二进制形式存在的构件可以被远程客户以二进制形式存在的构件可以被远程客户透明访问。透明访问。国防科技大学计算机学院国防科技大学计算机学院168.2 DCOM分布构件框架分布构件框架基本概念基本概念1.DCOM客户:泛指所有与客户:泛指所有与DCOM构件交
9、互的构件交互的程序片断。如果一个程序片断。如果一个DCOM构件要与其他构件要与其他DCOM构件交互,那它同时也是一个构件交互,那它同时也是一个DCOM客户。客户。2.DCOM构件:是具有特定格式要求的动态链构件:是具有特定格式要求的动态链接库(接库(DLL)文件或可执行()文件或可执行(EXE)文件。)文件。3.对象、类和类工厂对象、类和类工厂4.接口接口5.接口的代理接口的代理/残桩残桩DLL国防科技大学计算机学院国防科技大学计算机学院17国防科技大学计算机学院国防科技大学计算机学院188.2 DCOM分布构件框架分布构件框架整体结构整体结构国防科技大学计算机学院国防科技大学计算机学院198
10、.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld,共包含十个文件:,共包含十个文件:HelloComponent.cpp、HelloComponent.h:包含:包含EXE构件的主函数构件的主函数WinMain()和相关代码。和相关代码。HelloClass.cpp、HelloClass.h:包含:包含EXE构件向外构件向外提供的类提供的类CHelloClass的定义、以及向外提供的工厂的定义、以及向外提供的工厂类类CFactory的定义。的定义。Hello.idl:定义类:定义类CHelloClass向外提供的接口向外提供的接口IHello。既用于。既用于EXE构件,也
11、用于客户程序。构件,也用于客户程序。HelloClient.cpp:客户程序。:客户程序。Registry.cpp、Registry.h:包含一些辅助函数的定:包含一些辅助函数的定义,用于访问义,用于访问Windows注册表。注册表。Makefile、HelloProxy.def国防科技大学计算机学院国防科技大学计算机学院208.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld1.EXE构件主程序(构件主程序(HelloComponent.cpp)国防科技大学计算机学院国防科技大学计算机学院218.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld2.EX
12、E构件中的工厂类构件中的工厂类CFactory国防科技大学计算机学院国防科技大学计算机学院228.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld3.EXE构件中的类构件中的类CHelloClass国防科技大学计算机学院国防科技大学计算机学院238.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld4.类类CHelloClass的接口的接口IHello国防科技大学计算机学院国防科技大学计算机学院248.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld4.类类CHelloClass的接口的接口IHello:Hello.idl国防科技大学计
13、算机学院国防科技大学计算机学院258.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld5.EXE构件构件HelloComponent.exe的生成和部的生成和部署:部署时,需要将署:部署时,需要将HelloComponent.exe和和HelloProxy.dll拷贝到服务器上,并应该将拷贝到服务器上,并应该将它们都注册到服务器上的它们都注册到服务器上的DCOM系统中。注系统中。注册册HelloProxy.dll的命令是的命令是“Regsvr32 HelloProxy.dll”;注册;注册HelloComponent.exe的命令是的命令是“HelloComponent.e
14、xe -regserver”,也就,也就是说它能够自我注册。是说它能够自我注册。国防科技大学计算机学院国防科技大学计算机学院268.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld6.客户程序(客户程序(HelloClient.cpp)国防科技大学计算机学院国防科技大学计算机学院278.2 DCOM分布构件框架分布构件框架实例:实例:HelloWorld6.客户程序(客户程序(HelloClient.cpp):客户端请求):客户端请求服务器创建对象的过程服务器创建对象的过程国防科技大学计算机学院国防科技大学计算机学院288.2 DCOM分布构件框架分布构件框架实例:实例:H
15、elloWorld7.客户方的部署和测试:将客户方的部署和测试:将HelloClient.exe和和HelloProxy.dll拷贝到客户机上,并将拷贝到客户机上,并将HelloProxy.dll注册到客户机上的注册到客户机上的DCOM系统系统中。中。国防科技大学计算机学院国防科技大学计算机学院298.2 DCOM分布构件框架分布构件框架对原理的进一步分析:客户与对原理的进一步分析:客户与EXE服务构服务构件之间有三次直接的交互,如图上的数字件之间有三次直接的交互,如图上的数字6、8、9所标识。但在分布环境下,客户所标识。但在分布环境下,客户是不可能直接与是不可能直接与EXE构件在接口层面直接
16、构件在接口层面直接交互的。实际上,上述三次交互都是由本交互的。实际上,上述三次交互都是由本地机器上的代理对象或残根对象完成的,地机器上的代理对象或残根对象完成的,而这些代理对象和残根对象都是由前面生而这些代理对象和残根对象都是由前面生成的代理成的代理/残根动态链接库残根动态链接库HelloProxy.dll生成,只不过这个过程由生成,只不过这个过程由DCOM系统控制,系统控制,外界看不到而已。外界看不到而已。国防科技大学计算机学院国防科技大学计算机学院30国防科技大学计算机学院国防科技大学计算机学院31内容内容8.1 EJB分布构件框架分布构件框架8.2 DCOM分布构件框架分布构件框架8.3
17、 CORBA分布构件框架分布构件框架国防科技大学计算机学院国防科技大学计算机学院328.3 CORBA分布构件框架分布构件框架CORBA(Common Object Request Broker Architecture,分布对象请求代分布对象请求代理体系结构理体系结构)是一种异构平台下的语言无是一种异构平台下的语言无关的分布对象互操作模型。由关的分布对象互操作模型。由OMG(Object Management Group,对,对象管理组织)于象管理组织)于1990年首次提出,后经过年首次提出,后经过多版改进,最新的多版改进,最新的CORBA规范是规范是2008年年发布的发布的3.1版。版。国
18、防科技大学计算机学院国防科技大学计算机学院338.3 CORBA分布构件框架分布构件框架基本基本体系结构体系结构国防科技大学计算机学院国防科技大学计算机学院348.3 CORBA分布构件框架分布构件框架基本基本体系结构体系结构国防科技大学计算机学院国防科技大学计算机学院358.3 CORBA分布构件框架分布构件框架基本基本体系结构体系结构国防科技大学计算机学院国防科技大学计算机学院368.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld,包含四个文件和包含四个文件和七个七个Java类类国防科技大学计算机学院国防科技大学计算机学院378.3 CORBA分布构件框架分
19、布构件框架实例分析:实例分析:HelloWorld1.接口的定义(接口的定义(Hello.idl)国防科技大学计算机学院国防科技大学计算机学院388.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld2.服务器端的对象实现类的定义服务器端的对象实现类的定义HelloImpl.java国防科技大学计算机学院国防科技大学计算机学院398.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld3.服务器端的主程序(服务器端的主程序(Server.java)国防科技大学计算机学院国防科技大学计算机学院408.3 CORBA分布构件框架分布构件框架实例
20、分析:实例分析:HelloWorld4.客户端程序(客户端程序(Client.java)国防科技大学计算机学院国防科技大学计算机学院418.3 CORBA分布构件框架分布构件框架实例分析:实例分析:HelloWorld5.测试测试在服务器上使用在服务器上使用JacORB的的ns命令启动命令启动CORBA命命名服务。名服务。在服务器上启动服务器主程序,使用的命令是在服务器上启动服务器主程序,使用的命令是“jaco demo.helloworld.Server”。启动客户端主程序,使用的命令是启动客户端主程序,使用的命令是“jaco demo.helloworld.Client”。国防科技大学计算机学院国防科技大学计算机学院428.3 CORBA分布构件框架分布构件框架完整完整体系结构体系结构国防科技大学计算机学院国防科技大学计算机学院438.3 CORBA分布构件框架分布构件框架完整完整体系结构体系结构国防科技大学计算机学院国防科技大学计算机学院44
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100