您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 中间件技术原理与应用初学者必看
长春工业大学软件学院中间件技术原理与应用刘冰长春工业大学liubingnet@gmail.com长春工业大学软件学院课程目标•构造大型的分布式软件系统时将遇到什么样的问题•解决这些问题的原理与技术:构件技术与中间件技术•相关的工业标准–如COM、CORBA、J2EE等长春工业大学软件学院•1、操作系统•2、计算机网络•3、数据库原理•4、软件工程•5、Java/C相关课程长春工业大学软件学院开放系统互操作性中间件123远地过程调用及其增强分布式计算环境45第1章中间件产生背景及分布式计算环境长春工业大学软件学院什么是分布式软件•软件面临的问题–软件正变得无处不在,同时软件所面临的挑战也正在日益加剧•复杂度高•开发周期长•可靠性保证难长春工业大学软件学院什么是分布式软件•本课程关注分布式软件系统的开发支撑–随着网络与通信技术的发展,分布式软件的应用越来越广泛,分布式软件在计算机软件应用领域扮演者非常重要的角色。–分布式软件一般比集中式软件规模大、复杂,是软件开发复杂性的集中体现。长春工业大学软件学院什么是分布式软件•分布式软件–网络环境:一群通过网络互相连接的处理系统,每个处理节点由处理机硬件、操作系统及基本通信软件等组成。–分布式软件:运行在网络环境中的软件系统。–两种典型的应用途径•将分布式软件系统看做直接反映了现实世界中的分布性•用于改进某些应用的运行性能长春工业大学软件学院计算模式的发展过程•基于主机的系统(分时共享、资源共享)•两层Client/Server系统客户端负担仍然比较重仍然需要客户端进行较复杂的数据处理客户端的可移植性不好处理复杂必然牵涉更多的移植性问题每个客户端上都要安装数据库驱动程序系统的可维护性不好客户端包含过多的商业逻辑商业逻辑与人机交互界面交织在一起数据的安全性不好1.1开放系统与互操作性概述长春工业大学软件学院计算模式的发展过程•三层(n层)体系架构表示层——用户层业务逻辑层——应用层数据层——数据库服务器•基于Web的三层(N层)体系结构1.1开放系统与互操作性概述长春工业大学软件学院开放系统基本组成硬件包括PC,工作站,大中型机,各式各样的嵌入式设备,移动设备;软件各类操作系统、应用软件;网络各类网络结构、网络协议。开放系统面临的问题⑴远程性⑵并发行⑶无全局状态⑷部分失败⑸异步性⑹异质性⑺自主性⑻联合型⑼伸缩性⑽发展性⑾移动性1.1续长春工业大学软件学院开放系统特点⑴开放的:提供可移植性和协同工作;⑵集成的:有助于对付异质性;⑶灵活的:有助于对付移动性;⑷模块化的:灵活性的基础;⑸可联合的⑹可管理的⑺安全的⑻透明的:支撑软件和硬件的异质性;⑼满足服务质量需求1.1续长春工业大学软件学院开放系统必具特性•可移植性(Portability)•可互操作性(Interoperability)•可伸缩性(Scalability)•易获得性(Availability)1.1续长春工业大学软件学院开放系统构造用轮廓勾划;轮廓由系统管理A用户界面U安全性S编程服务P互操作服务I通信服务C信息实体E七个成分组成;对轮廓的各成分标准化,即成开放系统。1.1续长春工业大学软件学院开放系统开放程度表1.1续长春工业大学软件学院互操作性本质:从异质环境(异种体系结构、异种操作系统、异种网络等)中获得资源的透明动用能力。⑴面向计算资源的互操作性⑵面向信息资源的互操作性(如数据库)定义:在一个由异质实体构成的网络环境中,当应用在网络的结点上运行时,它可以透明地动用网中其他结点上的资源,并借助这些资源与本结点上的资源共同来完成某个或某组任务。1.1续长春工业大学软件学院互操作性定义:在一个由异质实体构成的网络环境中,当应用在网络的结点上运行时,它可以透明地动用网中其他结点上的资源,并借助这些资源与本结点上的资源共同来完成某个或某组任务。本质:从异质环境(异种体系结构、异种操作系统、异种网络等)中获得资源的透明动用能力。⑴面向计算资源的互操作性⑵面向信息资源的互操作性(如数据库)1.1续长春工业大学软件学院现代应用系统的基本特征分布任务已不只是在单机上运行,而是由网络中多台计算机上的相关应用共同协作完成,需考虑网络传输、数据安全、数据一致性、同步等诸多问题;异构计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁多,需考虑数据表示、调用接口、处理方式等诸多问题;动态协作参与协作的应用允许位置透明性、迁移透明性、负载平衡性等需求。1.2中间件概述长春工业大学软件学院1.2续应用1应用2应用3服务器1服务器2服务器3长春工业大学软件学院1.2续应用1应用2应用3服务器1服务器2服务器3中间件长春工业大学软件学院应用软件中间件网络软件操作系统应用软件中间件网络软件操作系统可协同工作利用中间件进行协同工作的系统1.2续长春工业大学软件学院中间件定义中间件(Middleware)是一种软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的“系统结构、操作系统、通信协议、数据库和其它应用服务”各不相同。1.2续长春工业大学软件学院应用软件中间件网络协议操作系统硬件平台应用软件中间件网络协议操作系统硬件平台DBMS两者内含有进行协同工作的应用成分中间件定义1.2续长春工业大学软件学院中间件组成1.执行环境(ExecutionEnvironment)软件如果一个网络的各个节点上安装了EE软件,各节点上的应用软件之间就可以实现相互合作。EE软件使各节点的下层设备对应用软件透明化了,EE软件是中间件中的主体部分。2.应用开发(ApplicationDevelopment)工具AD工具用来帮助开发内含“透明动用对方”成分的应用软件,或改造原有的无透明动用能力的应用软件。AD工具是中间件中的必备部分。1.2续长春工业大学软件学院合作方B下层设备透明设施T2平台网络网络平台平台合作方C合作方A合作对象透明设施T1中间件的层次结构1.2续长春工业大学软件学院中间件基本框架第四层应用接口(API)层中间件服务层(通信,控制,计算,管理,输出,信息等)应用平台层(Unix、NetWare、NT、VAX、OPENVMS等)传输协议层(TCP/IP、IPX/SPX、NetBIOS、OSI等)第三层第二层第一层中间件的基本功能框架结构1.2续长春工业大学软件学院基于中间件的软件系统基本模型1.2续长春工业大学软件学院中间件工作原理中间件服务器1服务器2服务器n客户机1客户机2客户机n…………服务器端客户端同/异构环境1.2续长春工业大学软件学院中间件的基本分类⑴事务处理中间件(交易中间件,TPM)原子性A一致性C隔离性I耐久性D⑵消息中间件(MOM)消息队列发布-预定⑶分布式中间件1.2续长春工业大学软件学院中间件的发展情况1.2续长春工业大学软件学院中间件的主要厂商第一梯队Oracle(BEA)、IBM、东方通科技,占70%以上份额;第二梯队Sun、中软、中创、微软等;第三梯队国内若干中小软件企业和系统集成企业。1.2续长春工业大学软件学院中间件的作用⑴它提供了通道的功能,可保证应用系统数据的可靠传输;⑵它起着桥梁的作用,达成异构应用资源之间的互联互通;⑶它是分布式应用的集成开发框架,促成企业分布式应用的有机集成;⑷作为平台,它可有效实现分布应用的分阶段顺利部署;⑸它起着过滤网的作用,可有力保护关键信息的安全。1.2续长春工业大学软件学院中间件的优越性:1.企业应用方面缩短应用开发周期减少项目开发风险应用程序质量可维护性增加产品吸引力2.应用程序方面透明地同其他应用程序交互与运行平台提供的网络通信服务无关具有良好的可靠性和可用性具有良好的可扩展性1.2续长春工业大学软件学院中间件发展面临的问题⑴不同厂商的实现很难互操作⑵只提供了一部分平台的实现⑶应用开发者要面临设计选择①过分追求中间件功能的全面性②过分强调选择国外产品③不能准确认识中间件的作用1.2续长春工业大学软件学院中间件技术发展趋势•⑴中间件的发展需要规范化•⑵应用需求导致技术格局多样化•⑶构件化和松散耦合•⑷底层的中间件持续走稳•⑸高层的中间件成为市场新宠•⑹新技术与产品的推出速度放缓•⑺实用化是重要的发展趋势1.2续长春工业大学软件学院RPC背景在传统的编程概念中,过程是只能局限在本地运行的一段代码,主程序和过程之间的运行关系是本地调用关系——本地过程调用LPC。LPC模式无法充分利用网络上其他主机的资源,也无法提高代码在实体间的共享程度,使得主机资源大量浪费。RPC是对LPC的扩展。通过这种调用机制,程序员编写客户方应用时,可根据需要透明地调用位于远端服务器上的过程。1.3远程过程调用及其增强长春工业大学软件学院main(…)...调用A...退出A(…)...调用B...退出B(…).......退出主程序过程A代码过程B代码机器1机器2机器3RPC调用模型主程序子程序子程序1.3续长春工业大学软件学院远程过程调用RPC概念RPC是从一台机器或一个进程调用另一台机器或另一个进程的服务或方法。远程过程调用是创建分布式应用的一种方法,来源于Unix操作系统的处理思想,被普遍认为是创建分布式应用的有效方法。从程序员的角度,RPC采用常规的编程模式:程序代码调用远端过程并将结果返回。当使用RPC时,只需编写很少的网络程序代码,绝大部分代码由IDL(InterfaceDefineLanguage)生成。1.3续长春工业大学软件学院IDL编译器结构IDL规范IDL编译器头文件客户存根头文件对象实现框架图2-4IDL编译器结构1.3续长春工业大学软件学院远程过程调用中间件工作机理①用中间件中的IDL对调用顺序加以描述;②利用IDL编译器对这种定义和描述进行编译,从而生成支持客户机和服务器进行通信的管道;③在服务器端,被调用的远端过程需单独编写,并被置入服务器端框架,同时要在远程过程调用中间件中进行注册,以备调用。④启动本地客户端存根——〉存根捆绑远端过程名和参数——〉利用网络传输到服务器端框架,从而实现数据格式的转换和参数的传递⑤采用调用/返回模式具体地完成远端过程调用。1.3续长春工业大学软件学院RPC工作流程客户运行客户继续执行服务调用过程调用服务过程执行过程返回请求返回RPC调用RPC返回Network图2-5RPC工作流程RPC一般采用调用/返回模式,多用于应用程序之间的通信,采用同步方式。RPC程序之间的同步通信一般采用Request-Wait-Reply方式,因此RPC更适应小型简单而不需要采用异步通信方式的应用。1.3续长春工业大学软件学院ClientSend(remotecallpi(…))(发送“请求服务”信息)Receive(ans)接收回复信息server接收调用信息;抽取参数并分析;调用所指的过程;执行远程过程返回执行结果Send(ans)发送回复信息等待回复请求服务等待调用继续返回调用结果RPC的通信模型1.3续长春工业大学软件学院3callworkreturnServerProcessOP2Server-stubOP3RPCRoutinereceivetransmit45678LocalreturnLocalcallClientProcessOP4Client-stubOP1waitRPCRoutinereceivetransmit12910RPC执行过程1.3续长春工业大学软件学院通信协议支持两种传输协议:TCP、UDPTCP:连接、可靠、低效。保证要么把调用传递到远程过程且接受应答,要么报告通信无法进行。UDP:无连接、不可靠、高效。使用UDP的远程过程调用也许会丢失或重复。1.3续长春工业大学软件学院RPC的语义Last-of-many:被调用的过程可能执行若干次,但规定其最后一次执行的结果作为返回结果。At-most-once:若调用者收到了回复消息,则称被调用的过程正确地完成了它的一次(仅仅一次)执行。At-least-
本文标题:中间件技术原理与应用初学者必看
链接地址:https://www.777doc.com/doc-4650359 .html