软件中间件.ppt
《软件中间件.ppt》由会员分享,可在线阅读,更多相关《软件中间件.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ShanghaiJiaoTongUniversity讲师:沈备军博士Module:Distributed Computing Middleware分布计算中间件分布计算中间件高级专题高级专题2DistributedComputingMiddleware沈备军本节内容w概述w分布对象中间件wWeb服务中间件3DistributedComputingMiddleware沈备军开发分布系统面临的问题 w网络通信分布系统往往建立在传输层之上w协调同步,激活/去活,并发等w可靠性通信可靠性,事务性,容错性等w伸缩性访问透明性,位置透明性,迁移透明性,复制透明性等w异构性平台异构,编程语言异构等4Dist
2、ributedComputingMiddleware沈备军中间件的定义 wIEEE中间件通过提供简单、一致、集成的分布编程环境,简化分布应用的设计、编程和管理。本质上,中间件是一个分布软件层(或平台),抽象了底层分布环境(网络、主机、操作系统、编程语言)的复杂性和异构性。wCMU-SEI中间件是一组支持软件连接的服务的集合,允许在一个或多个主机上运行的多个过程通过网络进行交互。w美国国家自然基金委员会中间件是连接分布在Internet或局域网上的多个应用的软件。具体而言,中间件是一组驻留在网络与传统应用之间的一组服务,用以管理安全、访问以及信息交换。5DistributedComputingM
3、iddleware沈备军中间件的分类 1)数据访问中间件允许应用程序和本地或者异地的数据库进行通信,并提供一系列的应用程序接口(如ODBC、JDBC等)。该类中间件技术上最成熟,但局限于与数据库相关的应用。2)消息中间件可以屏蔽平台和协议上的差异进行远程通信,实现应用程序之间的协同,如IBM的MQSeries、BEA的MessageQ等、其优点在于提供高可靠的同步和异步通信,缺点在于不同的消息中间件产品之间不能互操作,开放性差3)远程过程调用RPC中间件该类中间件解决了平台异构的问题,但编程复杂且不支持异步操作。Gartner Group将目前可用的主流中间件划分为五类:6Distribute
4、dComputingMiddleware沈备军中间件的分类 (2)4)事务中间件是在分布、异构环境下提供保证事务完整性和数据完整性的一种平台,如BEA的TUXEDO和IBM的CICS。事务中间件的优势在于对关键业务的支持,但机制复杂、对用户要求较高。5)对象中间件在分布、异构的网络计算环境中,可以将各种分布对象有机地结合在一起,完成系统的快速集成,是中间件技术发展的主流。主流的对象中间件包括CORBA、RMI和DCOM。7DistributedComputingMiddleware沈备军中间件的发展趋势 w支持基于构件的软件开发对象中间件=构件中间件,如J2EE/EJB、CORBA/CCM、C
5、OM+/.NETw支持Internet应用Internet中间件技术WebServicesw支持移动应用-移动计算中间件w支持自治计算XML、工作负载管理、软件Agent技术等,下一代中间件的主要特性之一w支持服务质量中间件的QoS,包括QoS规约、映射和执行等w支持自反(Reflection)机制“黑盒”=”白盒”,两种基本能力:introspection与intercession8DistributedComputingMiddleware沈备军本节内容w概述w分布对象中间件分布对象中间件 wWeb服务中间件9DistributedComputingMiddleware沈备军构件接口技术的
6、基本概念从构件的开发和使用角度看:构件使用者构件构件接口接口构件开发者开发开发使用使用10DistributedComputingMiddleware沈备军构件接口技术的基本概念从构件的运行角度看:构件构件运行协议运行协议构件运行环境的构件运行环境的标准化将更好地标准化将更好地支持构件之间的支持构件之间的互操作互操作 构件运行的环境构件运行的环境(container)协议保证了构协议保证了构件的易移植性件的易移植性 11DistributedComputingMiddleware沈备军构件接口技术的基本概念从构件的部署和维护角度看:构件构件部署和维护部署和维护 部署和维护的工具部署和维护的工具
7、构件运行的环境构件运行的环境(App ServerApp Server)部署和维护的部署和维护的工具应符合一工具应符合一定的标准。定的标准。12DistributedComputingMiddleware沈备军企业应用构架企业应用构架 -n-tier C/S 架构架构 HTML,ScriptLanguages,.JSP,Servlets,CGI,.EJB,CORBA,COM+NativelanguagesClient/BrowserWeb ServerApplication Server 1LegendSystemDatabaseServerApplication Server n客户机表示层
8、业务服务层后端系统13DistributedComputingMiddleware沈备军应用服务器 -服务器端的构件容器和中间件服务 w获得多层体系结构的优点是需要代价的,服务器端存在着诸如构件的生命周期管理、多层次间的负载平衡、同一构件的多客户并发访问控制、安全认证等一系列复杂问题。w解决这些问题需要专家级别的中间件知识和行业规范w应用服务器的诞生就是为了让人们能够共享这样的服务,而不需要自己去开发。w应用服务器为构件提供了服务器端的运行环境,提供常用的中间件服务,比如资源缓冲,网络操作等等14DistributedComputingMiddleware沈备军构件接口模型-服务器端构件容器的
9、标准化及其与构件的接口协议 w应用服务器在保证可靠性和可扩展性的前提下,提供了构件所需要的运行环境和中间服务。但仅此不够,我们还需要一个统一的服务器端构件接口模型。w构件接口模型为构件的应用服务器及其部署工具提供了一个接口标准,并完善地定义应用服务器和构件本身之间的接口,从而保证了构件的易移植性。15DistributedComputingMiddleware沈备军构件接口模型-三种主流的模型wMicrosoft:DNA/COM+DistributedinterNetApplicationArchitecture/CommonObjectMode+wOMG:OMA/CORBAObjectMan
10、agementArchitecture/CommonObjectRequestBrokerArchitecturewSun:J2EE/EJBJava2PlatformEnterpriseEdition/EnterpriseJavaBean16DistributedComputingMiddleware沈备军EJB/J2EE 技术1J2EE概述1)Java平台的发展历程2)J2EE核心技术3)J2EE应用开发过程中的不同角色2EJB技术1)EJB简介2)EJB的体系结构3)EJB的编程模型4)EJB构件的开发17DistributedComputingMiddleware沈备军Java平台的发展
11、历程 wJava平台的第一个参考实现是JDK。但JDK并未支持服务器端构件开发。w为了提供服务器端部署的企业级服务,Sun公司开始开发一些EnterpriseAPI。这些服务包括命名和查找服务,事务服务,和EJB1.0APIw为了解决EnterpriseAPI的问题,Sun公司提出了三个不同的Java平台:J2ME(Java2Platform,MicroEdition)、J2SE(Java2Platform,StandardEdition)和J2EE(Java2Platform,EnterpriseEdition)。18DistributedComputingMiddleware沈备军J2EE
12、核心技术-n-tier 应用架构RMI客户机表示层业务服务层后端系统浏览器应用程序浏览器AppletWeb/HTTP服务器JSPsServlets分布式CORBA对象遗产系统数据库应用服务器Java IDLJNDIJDBCJMSEJBEJBEJBEJB19DistributedComputingMiddleware沈备军J2EE核心技术 J2EE1.3/EJB2.0 规约Java2Platform,EnterpriseEdition(J2EE)v1.3JSPs和Servlets安全认证服务/JAASJava2Platform,StandardEdition(J2SE)v1.3JavaIDL/I
13、IOPRMI/JRMPJDBC核心HTTPJavaSecurityJDBC扩展RMI/IIOP命名目录接口JNDIXML/JAXP消息服务JMS交易管理JTS/JTAConnectors会话、实体、消息驱动等类型EJB的容器BMP和CMP机制EJB2.0EJB部署EJBQLEJB异常处理机制20DistributedComputingMiddleware沈备军J2EE核心技术 -EJB(Enterprise JavaBeans)wEJB是J2EE规约中最重要的部分。wEJB提供了让客户端使用远程的分布式对象的框架,极大地简化了具有良好的可扩充性的企业级软件的开发。wEJB规约规定了EJB构件(
14、指符合EJB规约的构件)如何与EJB容器(container)进行交互,而EJB容器则提供诸如目录服务、事务管理、安全、连接池管理、容错等服务。21DistributedComputingMiddleware沈备军J2EE核心技术 -RMI 和 RMI-IIOP wJavaRMI(RemoteMethodInvocation)是EJB构件和客户端的通信API,它和Java语言本身紧密结合,允许进程间通信并提供其他通信相关的服务。wRMI-IIOP是一个可移植的RMI扩展,它利用OMG的IIOP(InternetInter-ORBProtocal)协议作为通信协议,IIOP对J2EE与CORBA
15、系统集成也是必需的。22DistributedComputingMiddleware沈备军J2EE核心技术 -JNDI wJNDI(JavaNamingandDirectoryInterface)是命名和目录服务的标准。wEJB依赖JNDI通过网络来查找分布式构件。wJNDI是客户端代码连接EJB构件所必需的关键技术。23DistributedComputingMiddleware沈备军J2EE核心技术 -JDBC wJDBC(JavaDatabaseConnectivity)同ODBC一样,隐蔽了程序访问数据库的细节,允许程序员使用相同的接口来访问各种不同的数据库。wJDBC是使用纯Java
16、写的,它可以跨平台的访问各种数据库。24DistributedComputingMiddleware沈备军J2EE核心技术 -JTA和JTS JTA :Java Transaction API JTS:Java Transaction Service 25DistributedComputingMiddleware沈备军J2EE核心技术 -JMS wJMS(JavaMessagingService)是一套与面向消息的中间件(MOM)通信的API。JMSisanAPIthatdescribesaninterfacetoclient/servermessagingsystems.Client/se
17、rvermessagingsystemsarecommonlyreferredtoasmessage-orientedmiddleware(MOM)wJMS同时支持点对点的消息队列服务和发布-订阅消息服务。wJMS支持可靠消息传递、消息传递事务、持续消息等特性。wJMS是实现EJB中消息驱动Bean的基础。26DistributedComputingMiddleware沈备军J2EE核心技术 -JSP 和 Servlets wJSP:JavaServerPagesw客户端请求JSP页面时,服务器会先对该页面中的Java代码进行处理,将返回的HTML送还给客户端。wwServlet是一种扩展We
18、bServer功能的Java代码,是服务器端的程序,在用户请求时执行。wServlet是纯粹的Java代码,但它可以输出合法的HTML代码。27DistributedComputingMiddleware沈备军J2EE核心技术 -JCA JCA:Java Connector ArchitectureJava Connector Architecture JCA定义了J2EE平台连接异构的企业信息系统EIS的标准架构。28DistributedComputingMiddleware沈备军J2EE核心技术 -XML wXML(eXtensibleMarkupLanguage,广泛标记语言)是由万维
19、网联盟(W3C)制订、得到业界广泛支持的标准,被专门设计为描述数据的标准元语言。w在Java中可以使用JAXP(JavaAPIforXMLParsing)来对XML文件进行解析。wwJ2EE中的许多配置文件使用了XML。29DistributedComputingMiddleware沈备军J2EE应用开发过程中的不同角色应用组装者容器提供者服务器提供者应用部署者系统管理员EJBEJB模块模块部署描述部署描述JAR模块模块EJB JAR模块模块J2EE应用应用部署描述部署描述WEB WAR模块模块EAR应用应用构件开发者EJB构件构件DevelopPackageEnterprise Applic
20、ation Server(Vendor Implementation of J2EE APIs/Services)Enterprise Application Container(J2EE Container)DevelopDevelopPackageDeployManage30DistributedComputingMiddleware沈备军EJB的架构对象池EJB客户机业务方法创建、删除、查找Bean实现EJB部署描述Bean代理。Home接口Remote接口EJB服务器EJB容器31DistributedComputingMiddleware沈备军EJB架构 -EJB客户机 wEJB客户
21、机是指请求EJB构件服务的应用程序。EJB规约为创建EJB构件的客户接口定义了一套标准。这套标准主要包括:EJBHome接口:EJBHome接口为客户机创建、删除、查找EJBRemote接口对象的句柄提供了相应的操作。EJB客户机使用JNDI来查找对EJBHome接口的引用。EJBRemote接口:EJB客户机通过EJBRemote接口调用EJB构件的业务方法。RMI/IIOP或RMI/JRMP协议:RMI/IIOP或RMI/JRMP是EJB客户机与EJB服务器进行通信的标准协议,这些底层的分布式通信机制对于EJB客户机和EJB构件开发者都是透明的。32DistributedComputing
22、Middleware沈备军EJB架构 -EJB服务器 wEJB服务器为使用EJB构件的应用程序提供操作环境,并提供所有必需的服务,来支持EJB架构。wEJB规约为每个支持Java的应用程序服务器定义了一个标准模型。任何厂商都可以使用此模型来实现对EJB构件的支持。w多种系统(如TP监视器、CORBA运行系统、COM运行系统、数据库系统、Web服务器系统或其它基于服务器的运行系统)都可以调整到能够支持易移植的EJB构件。33DistributedComputingMiddleware沈备军EJB架构 -EJB服务器的主要功能w管理EJB容器(EJB容器则管理Bean)w提供对操作系统服务的存取w
23、提供Java相关的服务,尤其是-通过JNDI访问命名空间-基于OTS的事务处理服务34DistributedComputingMiddleware沈备军EJB架构 -EJB容器 EJB构件并不在 EJB 服务器的顶部直接执行。一个称为EJB容器的中间件在EJB服务器环境中运行,EJB 容器为EJB构件提供操作环境。主要来说,EJB容器管理了以下的系统级问题:持久性(Persistence):容器决定何时载入储存状态,又可分为CMP(Container-Managed Persistence)和BMP(Bean-Managed Persistence)。生成周期管理(Life Cycle Man
24、agement):容器管理EJB构件的实例,使EJB构件实现最大的效能和内存利用率。容器能够激活和失效EJB构件,管理实例池,等等。事务管理(Transaction Management):容器负责管理分布式事务处理的复杂问题。安全性(Security):部署描述文件定义了客户能够访问的不同的应用函数。容器只允许授权的客户访问这些函数。远程连接(Remote Connectivity):容器为远程连接管理底层的通信问题,而且对EJB构件的开发者和客户都隐蔽了通信问题。35DistributedComputingMiddleware沈备军EJB的编程模型 -EJB构件的分类w会话(Session
25、)Bean无状态会话(StatelessSession)Bean:仅对单个用户提供服务,并不保留任何程序状态。系统结束时其生成周期也同时结束。有状态会话(StatefulSession)Bean:提供与单个用户的交互,为每个用户记录各自的状态,但系统结束时其生命周期也同时结束。w实体(Entity)Bean:提供了持久数据的操作与表示。可以同时与多个客户机进行交互,系统结束时其运行状态仍能保留。w消息驱动(MessageDriven)Bean:不能由客户端直接获得其引用而调用其方法,只能由系统消息来启动。在EJB v2.0规约中,EJB构件分为3种类型:36DistributedComputi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 中间件
限制150内