中间件-0技术概述.ppt
《中间件-0技术概述.ppt》由会员分享,可在线阅读,更多相关《中间件-0技术概述.ppt(43页珍藏版)》请在冰豆网上搜索。
山东大学计算机科学与技术学院基础技术教学部中间件技术中间件技术鹿旭东鹿旭东13708938881山东大学计算机科学与技术学院基础技术教学部发展路线发展路线主要技术介绍主要技术介绍山东大学计算机科学与技术学院基础技术教学部程序设计方法的发展程序设计方法的发展结构化程序设计结构化程序设计以数据为中心以数据为中心面向对象程序设计面向对象程序设计以对象为中心以对象为中心组件程序设计组件程序设计以组件为中心以组件为中心综合使用山东大学计算机科学与技术学院基础技术教学部软件需求的变化软件需求的变化计算计算实用实用管理管理(MIS)分布式系统分布式系统山东大学计算机科学与技术学院基础技术教学部软件环境的变化软件环境的变化单任务单任务多任务多任务文字界面文字界面图形界面图形界面单线程单线程多线程多线程平台相关平台相关跨平台跨平台单机单机(本地本地)网络网络(分布式分布式)单一语言单一语言多种语言多种语言山东大学计算机科学与技术学院基础技术教学部发展路线发展路线面向过程语言crpc面向对象语言javarmi组件Webservice中间件技术分布式技术山东大学计算机科学与技术学院基础技术教学部分布式技术分布式技术分布式就是把整个网络作为一台大型计算机,在不同的地方分布式就是把整个网络作为一台大型计算机,在不同的地方做不同的工作做不同的工作分布式软件系统分布式软件系统(DistributedSoftwareSystems)是支持分布是支持分布式处理的软件系统式处理的软件系统,是在由通信网络互联的多处理机体系结构是在由通信网络互联的多处理机体系结构上执行任务的系统。
它包括分布式操作系统、分布式程序设上执行任务的系统。
它包括分布式操作系统、分布式程序设计语言及其编译计语言及其编译(解释解释)系统、分布式文件系统和分布式数据系统、分布式文件系统和分布式数据库系统等库系统等分布式计算是一门计算机科学,它研究如何把一个需要非常分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果综合起来得到最终的结果山东大学计算机科学与技术学院基础技术教学部分布式计算是近年提出的一种新的计算方式。
所谓分布式计分布式计算是近年提出的一种新的计算方式。
所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。
分布式计算比起其它算法具有以下几个优点:
算机上运行。
分布式计算比起其它算法具有以下几个优点:
1、稀有资源可以共享,、稀有资源可以共享,2、通过分布式计算可以在多台计算机上平衡计算负载,、通过分布式计算可以在多台计算机上平衡计算负载,3、可以把程序放在最适合运行它的计算机上,、可以把程序放在最适合运行它的计算机上,其中,共享稀有资源和平衡负载是计算机分布式计算的核心其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。
思想之一。
山东大学计算机科学与技术学院基础技术教学部概念:
类、对象概念:
类、对象类是定义,它封装了状态和操作类是定义,它封装了状态和操作对象是实例,它反映了具体的事物对象是实例,它反映了具体的事物对象由类来定义对象由类来定义一个对象可以与多个具有继承关系的类相联系一个对象可以与多个具有继承关系的类相联系山东大学计算机科学与技术学院基础技术教学部概念:
组件概念:
组件定义:
可独立发布的二进制单元定义:
可独立发布的二进制单元有的地方称作有的地方称作“package”比喻:
零件比喻:
零件容易混淆:
容易混淆:
服务器服务器(server)、对象、对象例如:
例如:
COM组件、组件、JavaApplet山东大学计算机科学与技术学院基础技术教学部COM:
组件组件COM对象的载体对象的载体包含多个包含多个COM对象对象进程内组件进程内组件DLLExportEntrys进程外组件进程外组件IPC:
RPC/LPC山东大学计算机科学与技术学院基础技术教学部中间件中间件中间件中间件(Middleware)是一种软件,处于系统软件(操是一种软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使应用作系统和网络软件)与应用软件之间,它能使应用软件之间进行跨网络的协同工作(也就是互操作),软件之间进行跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的这时允许各应用软件之下所涉及的“系统结构、操系统结构、操作系统、通信协议、数据库和其它应用服务作系统、通信协议、数据库和其它应用服务”各不各不相同相同中间件是一类软件,而非一种软件;中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
山东大学计算机科学与技术学院基础技术教学部现代应用系统的基本特征现代应用系统的基本特征分分布布任任务务已已不不只只是是在在单单机机上上运运行行,而而是是由由网网络络中中多多台台计计算算机机上上的的相相关关应应用用共共同同协协作作完完成成,需需考考虑虑网网络络传传输输、数数据据安安全全、数据一致性、同步等诸多问题;数据一致性、同步等诸多问题;异异构构计计算算机机硬硬件件、操操作作系系统统、网网络络协协议议、数数据据库库系系统统以以及及开开发发工工具具种种类类繁繁多多,需需考考虑虑数数据据表表示示、调调用用接接口口、处处理理方方式等诸多问题;式等诸多问题;动动态态协协作作参参与与协协作作的的应应用用允允许许位位置置透透明明性性、迁迁移移透明性、负载平衡性等需求。
透明性、负载平衡性等需求。
山东大学计算机科学与技术学院基础技术教学部问题问题分布异构环境中,通常存在:
分布异构环境中,通常存在:
多种硬件系统平台,多种硬件系统平台,各种各样的系统软件,各种各样的系统软件,多种风格各异的用户界面,多种风格各异的用户界面,不同的网络协议和网络体系结构连接。
不同的网络协议和网络体系结构连接。
山东大学计算机科学与技术学院基础技术教学部山东大学计算机科学与技术学院基础技术教学部1.1山东大学计算机科学与技术学院基础技术教学部中间件的特性中间件的特性易用性易用性位置透明性:
应用不必知道对方网络和应用的地址;不经重位置透明性:
应用不必知道对方网络和应用的地址;不经重新编译,就可把一个应用从一台机器上转移到另一台机器新编译,就可把一个应用从一台机器上转移到另一台机器消息传输的完整性:
消息不应丢失或重复消息传输的完整性:
消息不应丢失或重复消息格式的完整性:
消息格式不应被破坏消息格式的完整性:
消息格式不应被破坏语言透明性:
使用中间件的程序应能与另一个用不同语言编语言透明性:
使用中间件的程序应能与另一个用不同语言编写的程序通信;如果用不同语言重写一个程序,其他程序应写的程序通信;如果用不同语言重写一个程序,其他程序应不受影响不受影响山东大学计算机科学与技术学院基础技术教学部中间件中要解决的问题中间件中要解决的问题互操作问题(通信)互操作问题(通信)提供一个基本的环境(基础服务)提供一个基本的环境(基础服务)山东大学计算机科学与技术学院基础技术教学部互操作问题互操作问题Stub,skeleton注册注册山东大学计算机科学与技术学院基础技术教学部C语言中函数函数调用语言中函数函数调用f(inta2,intb2)intx,y,z;return(z)main()inta1,b1,c;c=f(a1,b1);a2b2xya1b1102102z30c30山东大学计算机科学与技术学院基础技术教学部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=+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山东大学计算机科学与技术学院基础技术教学部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模型,调用程序片(本地程模型,调用程序片(本地程序)称为序)称为rpcclient,被调用程序片(远程程序)称,被调用程序片(远程程序)称为为rpcserver。
山东大学计算机科学与技术学院基础技术教学部RPC调用模型main().调用调用A.退出退出主程序A().调用B.退出过程A代码B().退出过程B代码机器1机器2机器3山东大学计算机科学与技术学院基础技术教学部rmi在分布式程序中,远程对象的方法能被运行在不同在分布式程序中,远程对象的方法能被运行在不同主机上的其他主机上的其他java虚拟机的方法调用虚拟机的方法调用类似于类似于rpc山东大学计算机科学与技术学院基础技术教学部山东大学计算机科学与技术学院基础技术教学部远程对象:
远程对象:
方法能被不同宿主机上的方法能被不同宿主机上的JavaJava虚拟机调用的对象。
虚拟机调用的对象。
远程接口:
一个声明远程对象的方法的接口远程接口:
一个声明远程对象的方法的接口。
远程服务器:
创建远程对象的实例远程服务器:
创建远程对象的实例客户端:
使用远程对象客户端:
使用远程对象基本概念基本概念山东大学计算机科学与技术学院基础技术教学部l存在于客户端存在于客户端l远程对象的本地映象:
调用远程对象时,实际调用的是桩对远程对象的本地映象:
调用远程对象时,实际调用的是桩对象上的方法象上的方法l负责负责初始化并与远程对象所在的远程VM连接将参数打包,传递到远程VM等待方法调用的结果解包返回值和异常将值返回给调用者Stub(存根(存根/桩)桩)山东大学计算机科学与技术学院基础技术教学部框架框架存在于服务器存在于服务器接收客户桩的请求接收客户桩的请求和真正的远程对象进行交互和真正的远程对象进行交互传送服务器响应到客户传送服务器响应到客户负责负责解包客户端输入的远程方法的参数解包客户端输入的远程方法的参数调用实际的远程对象的方法调用实际的远程对象的方法将结果打包返回给调用者将结果打包返回给调用者传至远程引用层传至远程引用层山东大学计算机科学与技术学院基础技术教学部RMI系统体系结构系统体系结构Client