中间件技术-山东大学课程中心课件

上传人:痛*** 文档编号:252947659 上传时间:2024-11-26 格式:PPT 页数:43 大小:525.50KB
返回 下载 相关 举报
中间件技术-山东大学课程中心课件_第1页
第1页 / 共43页
中间件技术-山东大学课程中心课件_第2页
第2页 / 共43页
中间件技术-山东大学课程中心课件_第3页
第3页 / 共43页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,山东大学计算机科学与技术学院基础技术教学部,中间件技术,发展路线,主要技术介绍,程序设计方法的发展,结构化程序设计,以数据为中心,面向对象程序设计,以对象为中心,组件程序设计,以组件为中心,综,合,使,用,软件需求的变化,计算,实用,管理,(,MIS),分布式系统,软件环境的变化,单任务,多任务,文字界面,图形界面,单线程,多线程,平台相关,跨平台,单机,(,本地,),网络,(,分布式,),单一语言,多种语言,发展路线,面向过程语言,c,rpc,面向对象语言,java,rmi,组件,Web service,中间件技术,分布式技术,分布式技术,分布式就是把整个网络作为一台大型计算机,在不同的地方做不同的工作,分布式软件系统,(Distributed Software Systems),是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译,(,解释,),系统、分布式文件系统和分布式数据库系统等,分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果,分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算比起其它算法具有以下几个优点:,1,、稀有资源可以共享,,2,、通过分布式计算可以在多台计算机上平衡计算负载,,3,、可以把程序放在最适合运行它的计算机上,其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。,概念:类、对象,类是定义,它封装了状态和操作,对象是实例,它反映了具体的事物,对象由类来定义,一个对象可以与多个具有继承关系的类相联系,概念:组件,定义:可独立发布的二进制单元,有的地方称作“,package”,比喻:零件,容易混淆:,服务器,(,server),、对象,例如:,COM,组件、,Java Applet,COM,:,组件,COM,对象的载体,包含多个,COM,对象,进程内组件,DLL,Export Entrys,进程外组件,IPC:RPC/LPC,中间件,中间件,(,Middleware),是一类软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使应用软件之间进行跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的“系统结构、操作系统、通信协议、数据库和其它应用服务”各不相同,中间件是一类软件,而非一种软件;,中间件不仅仅实现互连,还要实现应用之间的互操作;,中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。,现代应用系统的基本特征,分布,任务已不只是在单机上运行,而是由网络中多台计算机上的相关应用共同协作完成,需考虑网络传输、数据安全、数据一致性、同步等诸多问题;,异构,计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁多,需考虑数据表示、调用接口、处理方式等诸多问题;,动态协作,参与协作的应用允许位置透明性、迁移透明性、负载平衡性等需求。,问题,分布异构环境中,通常存在:,多种硬件系统平台,,各种各样的系统软件,,多种风格各异的用户界面,,不同的网络协议和网络体系结构连接。,1.1,中间件的特性,易用性,位置透明性:应用不必知道对方网络和应用的地址;不经重新编译,就可把一个应用从一台机器上转移到另一台机器,消息传输的完整性:消息不应丢失或重复,消息格式的完整性:消息格式不应被破坏,语言透明性:使用中间件的程序应能与另一个用不同语言编写的程序通信;如果用不同语言重写一个程序,其他程序应不受影响,中间件中要解决的问题,互操作问题(通信),提供一个基本的环境(基础服务),互操作问题,Stub,skeleton,注册,C,语言中函数函数调用,f(int,a2,int b2),int,x,y,z;,return(z),main(),int,a1,b1,c;,c=f(a1,b1);,a2,b2,x,y,a1,b1,10,2,10,2,z,30,c,30,Java,中的调用,publicclass,PassParameter,staticvoid,showMe,(int,pi,Object,po,),System.out.println(pi,=+pi+;,po,=+,po,);/Step2,(示意图:,3-2-2,),pi+;,po,=newObject,();,System.out.println(pi,=+pi+;,po,=+,po,);/Step3,(示意图:,3-2-3,),publicstaticvoid,main(String,args,),int,i=1;,Objecto=newObject();,System.out.println(i,=+i+;,o,=+o);/Step1,(示意图:,3-1-1,),showMe(i,o);,System.out.println(i,=+i+;,o,=+o);/Step4,(示意图:,3-2-3,),int,i=1;,Objecto=newObject();,System.out.println(i,=+i+;,o,=+o);/Step1,(示意图:,3-1-1),staticvoid,showMe,(int,pi,Object,po,),System.out.println(pi,=+pi+;,po,=+,po,);/Step2,(示意图:,3-2-2,po,=newObject,();,System.out.println(“pi,=”+pi+“;,po,=”+,po,);/Step3,(示意图:,3-2-3,),System.out.println(i,=+i+;,o,=+o);/Step4,(示意图:,3-2-3),Rpc,的调用,从一个程序片调用另一个程序片的过程称为远程过程调用,即,RPC,。,RPC,是一个,Client/Server,模型,调用程序片(本地程序)称为,rpc,client,,被调用程序片(远程程序)称为,rpc,server,。,RPC,调用模型,main(),.,.,.,调用,A,.,.,.,退出,主程序,A(),.,.,.,调用,B,.,.,.,退出,过程,A,代码,B(),.,.,.,.,.,.,.,退出,过程,B,代码,机器,1,机器,2,机器,3,rmi,在分布式程序中,远程对象的方法能被运行在不同主机上的其他,java,虚拟机的方法调用,类似于,rpc,远程对象:,方法能被不同宿主机上的,Java,虚拟机调用的对象。,远程接口:一个声明远程对象的方法的接口,。,远程服务器:创建远程对象的实例,客户端:使用远程对象,基本概念,存在于客户端,远程对象的本地映象:调用远程对象时,实际调用的是桩对象上的方法,负责,初始化并与远程对象所在的远程,VM,连接,将参数打包,传递到远程,VM,等待方法调用的结果,解包返回值和异常,将值返回给调用者,Stub,(存根,/,桩),框架,存在于服务器,接收客户桩的请求,和真正的远程对象进行交互,传送服务器响应到客户,负责,解包客户端输入的远程方法的参数,调用实际的远程对象的方法,将结果打包返回给调用者,传至远程引用层,RMI,系统体系结构,Client Virtual Machine,Client,Server Virtual Machine,Stub,Remote Object,Skeleton,Registry Virtual Machine,“Fred”,Server,RMI,流程,(1),Client Virtual Machine,Client,Server Virtual Machine,Stub,Remote Object,Skeleton,Registry Virtual Machine,“Fred”,Server,1,2,1.Server Creates Remote Object2.Server Registers Remote Object,RMI,流程,(2),Client Virtual Machine,Client,Server Virtual Machine,Stub,Remote Object,Skeleton,Registry Virtual Machine,“Fred”,Server,4,3.Client requests object from Registry,4.Registry returns remote reference,(and stub gets created),3,RMI,流程,(3),Client Virtual Machine,Client,Server Virtual Machine,Stub,Remote Object,Skeleton,Registry Virtual Machine,“Fred”,Server,6,5.Client invokes stub method,6.Stub talks to skeleton,7.Skeleton invokes remote object,method,5,7,CORBA,客户程序与对象实现之间的界面,(interface),是对象的接口定义,对象接口是服务双方共同订立的合约,对象实现可以采用多种方式实现:独立服务程序,一个程序库,被包装的非面向对象应用程序等,对象接口是对象结构与行为的外部可见的规格说明,用,IDL,描述,对象实现提供对象内部的具体数据表示与可执行代码,同一接口的实现可采用不同语言编写,所有接口均未规定组件的具体实现,为开发的实现活动留下自由,corba,静态工作方式,客户,对象实现,IDL stubs,客户方代理,Static IDL skeleton,服务方代理,ORB,内核,对象适配器,OA,ORB,内核,基础服务,定位,消息,安全,事件,事务,数据,Web Service,的概念,提供一个与操作系统无关、与程序设计语言无关、与机器类型无关、与运行环境无关的平台,实现网络上应用的共享,A Service is,a piece of software,that is not tightly coupled with Client applications.Services are,dynamically discoverable and,composable,entities,Web,服务的体系结构与,Web,应用的,N,层结构类似,区别在于顶层的面向浏览器的,Web Server,被面向程序的(,Web Service Client,)的,Web,服务所取代。,Web Service,特点,Web,服务是用标准的、规范的,XML,概念描述一些操作的接口(利用标准化的,XML,消息传递机制可以通过网络访问这些操作),该接口,隐藏了实现服务的细节,,允许,独立于,实现服务所基于的,硬件或软件平台,和编写服务所用的编程,语言,使用服务。,Web,服务履行一项特定的任务或一组任务。,Web,服务可以单独或同其它,Web,服务一起用于实现复杂的聚集或商业交易,部署在,Web,上的对象,对象界面描述,:WSDL,对象访问,:SOAP,对象界面发现,:UDDI,对象实现,:EJB,COM+,CORBA,以及任何可用于对象实现的技术,UDDI,WSDL,SOAP,EJB/COM+/CORBA,Web Service,架构,Service,Provider,Service,Broker,Service,Requester,Find,Bind/Invoke,Publish,SOA,模型,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!