中间件0技术概述

上传人:pu****.1 文档编号:569296789 上传时间:2024-07-28 格式:PPT 页数:43 大小:517.01KB
返回 下载 相关 举报
中间件0技术概述_第1页
第1页 / 共43页
中间件0技术概述_第2页
第2页 / 共43页
中间件0技术概述_第3页
第3页 / 共43页
中间件0技术概述_第4页
第4页 / 共43页
中间件0技术概述_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《中间件0技术概述》由会员分享,可在线阅读,更多相关《中间件0技术概述(43页珍藏版)》请在金锄头文库上搜索。

1、山东大学计算机科学与技术学院基础技术教学部中间件技术中间件技术鹿旭东鹿旭东13708938881山东大学计算机科学与技术学院基础技术教学部发展路线发展路线主要技术介绍主要技术介绍山东大学计算机科学与技术学院基础技术教学部程序设计方法的发展程序设计方法的发展结构化程序设计结构化程序设计 以数据为中心以数据为中心面向对象程序设计面向对象程序设计 以对象为中心以对象为中心组件程序设计组件程序设计 以组件为中心以组件为中心综合使用山东大学计算机科学与技术学院基础技术教学部软件需求的变化软件需求的变化计算计算实用实用管理管理(MIS)分布式系统分布式系统山东大学计算机科学与技术学院基础技术教学部软件环境

2、的变化软件环境的变化单任务单任务多任务多任务文字界面文字界面图形界面图形界面单线程单线程多线程多线程平台相关平台相关跨平台跨平台单机单机(本地本地)网络网络(分布式分布式)单一语言单一语言多种语言多种语言山东大学计算机科学与技术学院基础技术教学部发展路线发展路线面向过程语言crpc面向对象语言javarmi组件Webservice中间件技术分布式技术山东大学计算机科学与技术学院基础技术教学部分布式技术分布式技术分布式就是把整个网络作为一台大型计算机,在不同的地方分布式就是把整个网络作为一台大型计算机,在不同的地方做不同的工作做不同的工作 分布式软件系统分布式软件系统(Distributed S

3、oftware Systems)是支持分布是支持分布式处理的软件系统式处理的软件系统,是在由通信网络互联的多处理机体系结构是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译计语言及其编译(解释解释)系统、分布式文件系统和分布式数据系统、分布式文件系统和分布式数据库系统等库系统等分布式计算是一门计算机科学,它研究如何把一个需要非常分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分

4、配给许多计算机进行处理,最后把这些计算结果这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果综合起来得到最终的结果 山东大学计算机科学与技术学院基础技术教学部分布式计算是近年提出的一种新的计算方式。所谓分布式计分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算比起其它算法具有以下几个优点:算机上运行。分布式计算比起其它算法具有以下几个优点:1

5、、稀有资源可以共享,、稀有资源可以共享,2、通过分布式计算可以在多台计算机上平衡计算负载,、通过分布式计算可以在多台计算机上平衡计算负载,3、可以把程序放在最适合运行它的计算机上,、可以把程序放在最适合运行它的计算机上,其中,共享稀有资源和平衡负载是计算机分布式计算的核心其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。思想之一。 山东大学计算机科学与技术学院基础技术教学部概念:类、对象概念:类、对象类是定义,它封装了状态和操作类是定义,它封装了状态和操作对象是实例,它反映了具体的事物对象是实例,它反映了具体的事物对象由类来定义对象由类来定义一个对象可以与多个具有继承关系的类相联系

6、一个对象可以与多个具有继承关系的类相联系山东大学计算机科学与技术学院基础技术教学部概念:组件概念:组件定义:可独立发布的二进制单元定义:可独立发布的二进制单元有的地方称作有的地方称作“package”比喻:零件比喻:零件容易混淆:容易混淆:服务器服务器(server)、对象、对象例如:例如:COM组件、组件、Java Applet山东大学计算机科学与技术学院基础技术教学部COM:组件组件COM对象的载体对象的载体包含多个包含多个COM对象对象进程内组件进程内组件DLLExport Entrys进程外组件进程外组件IPC:RPC/LPC山东大学计算机科学与技术学院基础技术教学部中间件中间件中间件

7、中间件( (Middleware)是一种软件,处于系统软件(操是一种软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使应用作系统和网络软件)与应用软件之间,它能使应用软件之间进行跨网络的协同工作(也就是互操作),软件之间进行跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的这时允许各应用软件之下所涉及的“系统结构、操系统结构、操作系统、通信协议、数据库和其它应用服务作系统、通信协议、数据库和其它应用服务”各不各不相同相同 中间件是一类软件,而非一种软件;中间件是一类软件,而非一种软件; 中间件不仅仅实现互连,还要实现应用之间的互操作;中间件不仅仅实现互连,还要实现应用

8、之间的互操作; 中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。山东大学计算机科学与技术学院基础技术教学部现代应用系统的基本特征现代应用系统的基本特征分分布布 任任务务已已不不只只是是在在单单机机上上运运行行,而而是是由由网网络络中中多多台台计计算算机机上上的的相相关关应应用用共共同同协协作作完完成成,需需考考虑虑网网络络传传输输、数数据据安安全全、数据一致性、同步等诸多问题;数据一致性、同步等诸多问题;异异构构 计计算算机机硬硬件件、操操作作系系统统、网网络络协协议议、数数据据库库系系统统以以及及开开发发工工具具种种类类

9、繁繁多多,需需考考虑虑数数据据表表示示、调调用用接接口口、处处理理方方式等诸多问题;式等诸多问题;动动态态协协作作 参参与与协协作作的的应应用用允允许许位位置置透透明明性性、迁迁移移透明性、负载平衡性等需求。透明性、负载平衡性等需求。山东大学计算机科学与技术学院基础技术教学部问题问题分布异构环境中,通常存在:分布异构环境中,通常存在:多种硬件系统平台,多种硬件系统平台,各种各样的系统软件,各种各样的系统软件,多种风格各异的用户界面,多种风格各异的用户界面,不同的网络协议和网络体系结构连接。不同的网络协议和网络体系结构连接。 山东大学计算机科学与技术学院基础技术教学部山东大学计算机科学与技术学院

10、基础技术教学部1.1山东大学计算机科学与技术学院基础技术教学部中间件的特性中间件的特性易用性易用性位置透明性:应用不必知道对方网络和应用的地址;不经重位置透明性:应用不必知道对方网络和应用的地址;不经重新编译,就可把一个应用从一台机器上转移到另一台机器新编译,就可把一个应用从一台机器上转移到另一台机器消息传输的完整性:消息不应丢失或重复消息传输的完整性:消息不应丢失或重复消息格式的完整性:消息格式不应被破坏消息格式的完整性:消息格式不应被破坏语言透明性:使用中间件的程序应能与另一个用不同语言编语言透明性:使用中间件的程序应能与另一个用不同语言编写的程序通信;如果用不同语言重写一个程序,其他程序

11、应写的程序通信;如果用不同语言重写一个程序,其他程序应不受影响不受影响山东大学计算机科学与技术学院基础技术教学部中间件中要解决的问题中间件中要解决的问题互操作问题(通信)互操作问题(通信)提供一个基本的环境(基础服务)提供一个基本的环境(基础服务)山东大学计算机科学与技术学院基础技术教学部互操作问题互操作问题Stub,skeleton注册注册山东大学计算机科学与技术学院基础技术教学部C语言中函数函数调用语言中函数函数调用f(int a2,int b2) int x,y,z; return (z)main() int a1,b1,c; c=f(a1,b1);a2b2xya1b1102102z30

12、c30山东大学计算机科学与技术学院基础技术教学部Java中的调用中的调用publicclassPassParameterstaticvoidshowMe(intpi,Objectpo)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)publicstaticvoidmain(Stringargs)inti=1;Objecto=newObject();System.out.println(i=+i+;o

13、=+o);/Step1(示意图:3-1-1)showMe(i,o);System.out.println(i=+i+;o=+o);/Step4(示意图:3-2-3)山东大学计算机科学与技术学院基础技术教学部inti=1;Objecto=newObject();System.out.println(i=+i+;o=+o);/Step1(示意图:3-1-1)山东大学计算机科学与技术学院基础技术教学部staticvoidshowMe(intpi,Objectpo)System.out.println(pi=+pi+;po=+po);/Step2(示意图:3-2-2山东大学计算机科学与技术学院基础技术

14、教学部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,被调用程序片(远程程序)称,被调用程序片(远程程序

15、)称为为rpc server。山东大学计算机科学与技术学院基础技术教学部RPC调用模型main().调用调用A.退出退出主程序A().调用B.退出过程A代码B().退出过程B代码机器1机器2机器3山东大学计算机科学与技术学院基础技术教学部rmi在分布式程序中,远程对象的方法能被运行在不同在分布式程序中,远程对象的方法能被运行在不同主机上的其他主机上的其他java虚拟机的方法调用虚拟机的方法调用类似于类似于rpc山东大学计算机科学与技术学院基础技术教学部山东大学计算机科学与技术学院基础技术教学部远程对象:远程对象:方法能被不同宿主机上的方法能被不同宿主机上的JavaJava虚拟机调用的对象。虚拟

16、机调用的对象。远程接口:一个声明远程对象的方法的接口远程接口:一个声明远程对象的方法的接口。远程服务器:创建远程对象的实例远程服务器:创建远程对象的实例客户端:使用远程对象客户端:使用远程对象基本概念基本概念山东大学计算机科学与技术学院基础技术教学部l存在于客户端存在于客户端l远程对象的本地映象:调用远程对象时,实际调用的是桩对远程对象的本地映象:调用远程对象时,实际调用的是桩对象上的方法象上的方法l负责负责初始化并与远程对象所在的远程VM连接将参数打包,传递到远程VM等待方法调用的结果解包返回值和异常将值返回给调用者Stub(存根(存根/桩)桩)山东大学计算机科学与技术学院基础技术教学部框架

17、框架存在于服务器存在于服务器接收客户桩的请求接收客户桩的请求和真正的远程对象进行交互和真正的远程对象进行交互传送服务器响应到客户传送服务器响应到客户负责负责解包客户端输入的远程方法的参数解包客户端输入的远程方法的参数调用实际的远程对象的方法调用实际的远程对象的方法将结果打包返回给调用者将结果打包返回给调用者传至远程引用层传至远程引用层山东大学计算机科学与技术学院基础技术教学部RMI 系统体系结构系统体系结构Client Virtual MachineClientServer Virtual MachineStubRemote ObjectSkeletonRegistry Virtual Mac

18、hine“Fred” Server山东大学计算机科学与技术学院基础技术教学部RMI 流程流程(1)Client Virtual MachineClientServer Virtual MachineStubRemote ObjectSkeletonRegistry Virtual Machine“Fred” Server121.ServerCreatesRemoteObject2.ServerRegistersRemoteObject山东大学计算机科学与技术学院基础技术教学部RMI 流程流程(2)Client Virtual MachineClientServer Virtual Machin

19、eStubRemote ObjectSkeletonRegistry Virtual Machine“Fred” Server43.ClientrequestsobjectfromRegistry4.Registryreturnsremotereference(andstubgetscreated)3山东大学计算机科学与技术学院基础技术教学部RMI 流程流程(3)Client Virtual MachineClientServer Virtual MachineStubRemote ObjectSkeletonRegistry Virtual Machine“Fred” Server65.Cl

20、ientinvokesstubmethod6.Stubtalkstoskeleton7.Skeletoninvokesremoteobjectmethod57山东大学计算机科学与技术学院基础技术教学部CORBA山东大学计算机科学与技术学院基础技术教学部客户程序与对象实现之间的界面客户程序与对象实现之间的界面(interface)是对象的接口定是对象的接口定义,对象接口是服务双方共同订立的合约义,对象接口是服务双方共同订立的合约对象实现可以采用多种方式实现:独立服务程序,一个程序对象实现可以采用多种方式实现:独立服务程序,一个程序库,被包装的非面向对象应用程序等库,被包装的非面向对象应用程序等对

21、象接口是对象结构与行为的外部可见的规格说明,用对象接口是对象结构与行为的外部可见的规格说明,用IDL描述描述对象实现提供对象内部的具体数据表示与可执行代码,同一接口的对象实现提供对象内部的具体数据表示与可执行代码,同一接口的实现可采用不同语言编写实现可采用不同语言编写所有接口均未规定组件的具体实现,为开发的实现活动留下自由所有接口均未规定组件的具体实现,为开发的实现活动留下自由山东大学计算机科学与技术学院基础技术教学部corba静态工作方式静态工作方式客户对象实现IDL stubs客户方代理Static IDL skeleton服务方代理ORB内核对象适配器OAORB内核山东大学计算机科学与技

22、术学院基础技术教学部基础服务基础服务定位定位消息消息安全安全事件事件事务事务数据数据山东大学计算机科学与技术学院基础技术教学部Web Service的概念的概念提供一个与操作系统无关、与程序设计语言无关、与机器类提供一个与操作系统无关、与程序设计语言无关、与机器类型无关、与运行环境无关的平台,实现网络上应用的共享型无关、与运行环境无关的平台,实现网络上应用的共享A Service is a piece of software that is not tightly coupled with Client applications. Services are dynamically discov

23、erable and composable entitiesWeb服务的体系结构与服务的体系结构与Web应用的应用的N层结构类似,区别在于顶层结构类似,区别在于顶层的面向浏览器的层的面向浏览器的Web Server被面向程序的(被面向程序的(Web Service Client)的)的Web服务所取代。服务所取代。山东大学计算机科学与技术学院基础技术教学部Web Service特点特点Web 服务是用标准的、规范的服务是用标准的、规范的 XML 概念描述一些操作的接概念描述一些操作的接口(利用标准化的口(利用标准化的 XML 消息传递机制可以通过网络访问这消息传递机制可以通过网络访问这些操作)

24、些操作)该接口该接口隐藏了实现服务的细节隐藏了实现服务的细节,允许,允许独立于独立于实现服务所基于实现服务所基于的的硬件或软件平台硬件或软件平台和编写服务所用的编程和编写服务所用的编程语言语言使用服务。使用服务。Web 服务履行一项特定的任务或一组任务。服务履行一项特定的任务或一组任务。Web 服务可以单独或同其它服务可以单独或同其它 Web 服务一起用于实现复杂的服务一起用于实现复杂的聚集或商业交易聚集或商业交易山东大学计算机科学与技术学院基础技术教学部部署在部署在Web上的对象上的对象对象界面描述对象界面描述: WSDL对象访问对象访问: SOAP对象界面发现对象界面发现: UDDI对象实现对象实现: EJB, COM+, CORBA以及任何可用于对象实以及任何可用于对象实现的技术现的技术UDDIWSDLSOAPEJB/COM+/CORBA山东大学计算机科学与技术学院基础技术教学部Web Service架构架构ServiceProviderServiceBrokerServiceRequesterFindBind/InvokePublishSOA模型模型

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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