《软件典型架构》PPT课件.ppt
第二讲软件典型架构,内 容,一、软件架构二、OMA三、JEE四、DNA五、SOA六、应用服务器,人们必须 不断地提取 软件的共性成份屏蔽 系统低层的复杂度 从而 在高层保持复杂度的相对稳定,一、软件架构,1、系统软件及发展特点,不断提取共性!沉淀成为一层软件保持应用软件的复杂性相对稳定,初始状态:硬件(ENIAC?ABC!)如何提高算法适应性?分离出了程序(汇编=),程序,硬件,硬件,初始状态:硬件+程序,程序的共性(稳定)成分:计算资源管理,操作系统(FMS=),应用程序,产生了:,分离出了:,软件,硬件,操作系统,$END,$RUN,Data for program,$LOAD,Fortran program,$FORTRAN,$JOB,10,429754,Typical FMS(FORTRAN Monitor System)JOB Structure,初始状态:硬件+操作系统+应用程序,程序的共性(稳定)成分:数据管理,产生了:数据库管理系统(IMS=),分离出了:应用软件,操作系统,操作系统,数据存储文件,数据库管理系统,应用程序,程序的共性(稳定)成分:网络资源管理,产生了:中间件(应用服务器),分离出了:业务逻辑(构件),初始状态:硬件+操作系统+数据库管理系统+应用软件,2、中间件,位于 操作系统之上(分布式)应用之下的一层软件为网络环境中软件的开发、部署、运行和管理 提供支持框架?,(1)终端仿真/屏幕转换中间件 用以实现 客户机图形用户接口 与 已有的字符接口方式的服务器应用程序的互操作(2)数据访问中间件为了建立数据应用资源互操作的模式 对异构环境下的数据库实现联接或文件系统实现联接的中间件(3)远程过程调用中间件程序员方便地编写客户端应用程序 调用位于远端服务器上的过程,中间件分类,(4)面向消息中间件用来屏蔽各种平台及协议之间的特性进行相互通信实现应用程序之间的协同(5)事务(交易)中间件在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台(6)对象中间件在分布、异构的网络计算环境中将各种分布对象有机地结合在一起完成 系统的快速集成实现 对象重用,与架构相关,的技术,与质量相关的技术,过程之,间通信,异步数,据通信,松散耦,合通信,客户,/,服务器,架构,三层,架构,业务逻,辑构件,数据持,久存储,安全,可靠,时间,监测,O,M,A,DCE,SOA,对象之,间通信,用户显,示界,面,控制,EJB,JSP,JPA,M,Q,ORB,W,S,RPC,J2EE(DNA),二、OMA,OMA:Object Management Architecture 由 OMG(Object Management Group)提出,世界上最大的计算机工业联盟、非赢利性组织于1989年4月由8个公司发起目前有800多家成员 全职工作人员只有一个20人左右自身不做标准制订和开发工作仅提供一种组织和机制支持OMG成员进行 交流、合作制订 技术规范开发 符合标准的商用产品,两个重要的基石:面向对象方法、商业可用性,OMG:(对象管理组织),CORBA=UML=MDA,OMG的组织结构,Board of Directors(BOD),Platform Technology Committee(PTC),Domain Technology Committee(DTC),Architecture Board(AB),Task Force(TF),Special Interest Groups(SIG),Task Force(TF),Task Force(TF),Special Interest Groups(SIG),Special Interest Groups(SIG),OMG技术采纳过程:,RFI,RFP,Specification,Specification,Specification,everyone,Part of members,TF起草DTC或PTC发行,TF起草AB评审DTC或PTC发行,TF评估、推荐AB评审DTC或PTC批准,BOD批准,总线,计算机硬件中的模块及互联方式:,Object Services,Application Interfaces,Domain Interfaces,Common Facilities,OMA:Object Management Architecture,ORB:,“Object interoperate bus”,Services:,“Abstractions for Classic System-Programming Functionality”,Facilities:,“High Level Services:Domain Specific and Generic”,SystemMgt.,Comp.Doc.,Bus.Object,Manuf.,1994,Relationships,Transactions,Concurrency,Externalization,1993,Naming,Lifecycle,Event,Persistent,1995,Security,Time,Licensing,Properties,Query,1996,Trading,Collections,2000,Enhanced View of Time,Notification,计划:,Archive,Backup/Restore,Change Management,Data Interchange,Implem,entation Repository,Internationalization,Logging,Recovery,Replication,COS发布过程,三、DNA,DNA(Distributed interNet Architecture)is an abstract methodology.It is a way of designing applications with growth,deployment,and load taken as major considerations.More specifically,DNA is a software application engineering design pattern.It is a solution to a set of common problems that are described in a generic,abstracted enough manner as to enable the application of the pattern in a wide variety of situations.,另一种视图,Presentation Level,DNA 提供多种表示服务开发者可以根据具体情况选择最佳方案HTMLScriptingDHTMLComponentsWin32 API以支持丰富的界面与客户环境从手持无线设备到高端工作站,Business Logic Level,Component Services基于互操作模型Component Object Model(COM)增强分布处理功能Microsoft Transaction Server(MTS)目前已发展为COM+通过降低为利用底层系统服务而编写的代码量使开发分布式应用系统更为快速容易廉价,COM+服务包括新的或增强的服务包括:Bring your own transaction.COM 构件可以参与由非COM+事务处理环境管理的事务 只要它支持Transaction Internet Protocol(TIP)Load balancing.基于构件的应用程序可以以客户透明的方式在应用程序群中分布工作负载In-memory database.内存数据库是一个事务性数据库系统用以支持对数据的快速访问,Messaging ServicesMicrosoft Message Queue Server 提供松耦合、可靠的通讯服务通过实现 push 风格的商务事件方便了应用系统的集成在不可靠、代价低的网络上建立起可靠的应用系统Microsoft Message Queue Server 还提供了与其它消息队列产品的无缝连接例如:IBMs MQSeries等,Web Application ServicesInternet Information Server(IIS)可用于开发基于Web的商务应用系统这样的系统便于扩展、便于部署作为IIS技术之一的Active Server Pages(ASP)具有语言中立编译省缺 的特点是服务器端脚本环境用于创建、运行动态且交互的Web服务器应用程序利用ASP脚本及其它协调构件构造的应用程序可以与现有的系统、应用程序及数据协同工作,Data Level,Universal Data Access 提供对各种信息资源的高性能访问包括关系、非关系数据提供独立于工具与语言的编程接口Universal Data Access 基于开放的工业规范得到了工业界及数据库厂商的广泛支持,DNA中基于Universal Data Access的框架包含两层:在系统层:OLE DB 定义了一个基于构件的体系结构封装了各种数据库管理系统服务OLE DB 不对数据源进行约束在应用层:ActiveX Data Objects(ADO)提供了高层接口使开发者可以从任何编程语言访问数据在每一层:eXtensible Markup Language(XML)使开发者可以在应用程序客户之间进行描述、交付、交换结构化数据XML 也可以在服务器之间进行结构化数据的传送,四、J2EE,Java 2 Platform Enterprise Edition(1.2)JAVA:Language Runtime(virtual machine)Platform:J2SE J2EE J2ME,背景,JavaTM 2 Platform,Standard Edition(J2SETM)J2SE 为构造并部署网络为核心的企业应用系统提供一个完整的、安全的基础,其范围从PC桌面到工作组服务器。J2SE 包括:Java 2(SDK),Standard Edition and Java 2 Runtime Environment,Standard Edition,JavaTM 2 Platform,Enterprise Edition(J2EE)J2EE是Java 2平台的一个完整版本,将业务紧要(Mission Critical)的企业应用系统推向任何 web 浏览器。J2EE将SUN公司的多种技术集成到一个体系结构中,并提供了一种应用程序编程模型、兼容性测试套件,以降低开发网络软件的复杂性与代价。,JavaTM 2 Platform,Micro Edition(J2ME)J2ME是端到端(end-to-end)的Java 技术,适于正在增长的消费类与嵌入式市场。J2ME 是一个被高度优化的运行环境,以下列消费类产品为目标:pagerscellular phonesscreenphonesdigital set-top boxes 以及 car navigation systems,总体结构,J2EE 支持4类构件:Application clientsAppletsServlets and JSP pagesEnterprise JavaBeans,包含的构件,容器为应用构件提供了运行态支持在J2EE服务与应用构件之间增加一个服务器,使得容器可以透明地利用构件的部署信息(deployment descriptors)获取J2EE服务提供的功能。例如:事务管理、安全检查、资源缓冲、以及状态管理等。一个典型的 J2EE 产品为每一类的构件提供一种容器:application client container,applet container,web component container,以及 enterprise bean container。,构件容器,一个资源管理驱动器(驱动器)是一个系统级软件构件实现与外部资源管理器的网络连接。一个驱动器能够扩展J2EE平台的功能途径为:实现J2EE的一个标准服务接口 API(例如 JDBC driver)为一个外部应用系统的连接器(connector)定义并实现一个资源管理器驱动器。,资源管理器驱动器,J2EE 平台包含可以通过JDBC API访问的数据库,用于存储业务数据。数据库可以从 web components,enterprise beans,以及 application client components 访问 但不可以从 applets访问,数据库,J2EE 标准服务,HTTPHTTPSJTARMI-IIOPJavaIDLJDBCJMSJNDIJavaMailJAFConnectorJAXPJAAS,HTTPHTTP client-side API 由 package 定义。HTTP server-side API 由 servlet and JSP 接口定义。HTTPS支持HTTP的上述接口同样支持基于SSL协议的HTTP。,Java Transaction API(JTA)Java Transaction API 包括两部分:应用级接口,容器与应用构件用它来声名事务边界 J2EE SPI级接口,事务管理器与资源管理器之间的接口 SPI:service provider interface,RMI-IIOP 组成RMI-IIOP 的APIs 包括:独立于底层协议的 RMI风格的编程接口 上述API的实现,支持J2SE RMI protocol(JRMP)及CORBA IIOP J2EE 应用系统可以使用RMI-IIOP(在IIOP协议的支持下)访问与RMI编程约束兼容的 CORBA services,JavaIDL JavaIDL 使得J2EE 应用构件可以利用IIOP调用外部的CORBA 对象 这些 CORBA 对象可以用任何语言编写,运行在 J2EE 之外 J2EE 应用程序可以使用JavaIDL,角色为CORBA services的客户,JDBC JDBC API 是与数据库连接的 API,Java Message Service(JMS)JMS是支持可靠的点对点(point-to-point)与发布-订阅(publish-subscribe)消息模型 的标准API,JNDIJNDI API 是命名与目录访问的标准接口,用于定位构件包含两部分:应用构件访问命名与目录服务时使用的应用级接口(API)提供增加命名与目录服务时使用的服务提供接口(SPI),JavaMail 许多Internet 应用程序需要发送email的能力,因此J2EE 平台包含 JavaMail API 及JavaMail SPI,使得应用构件能够发送Internet mail。,JavaBeans Activation Framework(JAF)JavaMail API 所使用的一种功能,Java API for XML Parsing(JAXP)JAXP 为工业标准 SAX 与 DOM 提供支持以 parsing XML 文档SAX:The Simple API for XMLevent-based APIDOM:Document Object Model tree-based API,J2EE Connector Architecture Connector architecture 是将访问EIS(Enterprise Information Systems)的资源适配器插装到任何J2EE产品中的 J2EE SPI Connector architecture 定义了J2EE 服务器与资源适配器之间的系统级合约(Contract)包括:J2EE与外部资源的连接管理合约事务管理器与EIS的事务管理合约访问EIS的安全管理合约,Java Authentication and Authorization Service(JAAS)JAAS 提供用户认证及授权服务 JAAS 提供了 PAM(Pluggable Authentication Module)框架标准的Java版实现 并扩展了支持基于用户授权的访问控制结构,五、SOA,Service Oriented Architecture:面向服务的架构 Gartner 1996 年最早提出应用程序是通过组合一些松耦合并且具有统一接口定义方式的服务而构建起来的 更加关注业务流程而不仅仅是底层的IT基础结构松散耦合、集成之星从购买软件到订阅、定制服务的转变!,SOA是一种架构模型根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用服务层是SOA的基础,可以直接被应用调用,从而 有效控制系统中与软件代理的人为依赖性。SOA的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义适配器进行通讯,不涉及 底层编程适配器和通讯模型 Web 服务并不是实现 SOA 的惟一方式 RPC、CORBA也是实现方式,客户/服务请求者,服务提供者,注册,请求/应答,查找,基本结构:,服务信息注册库,六、应用服务器,支持构件技术、中间件技术实现J2EE、DNA结构“To Bean or Not to Bean?”,应用服务器的纵向位置,操作系统,应用,应用服务器,应用服务器的横向位置,应用服务器,数据库,服务器,因特网,浏览器,浏览器,浏览器,应,用,层,系,统,层,显示代码,逻辑代码,数据,应用服务器的功能,构件运行环境应用服务器一般通过构件容器为构件提供基本的运行环境具体功能包括:管理构件的生命周期管理构件的实例管理构件的元信息等,提供构件运行环境提供互操作机制提供公共服务,互操作机制这是针对分布性、异构性所提供的功能所有的应用服务器皆提供了很强的高层通信服务以屏蔽节点的物理特性以及各节点在处理器、操作系统等方面的异构性具体功能包括:业务层与表示层之间的通信业务层与数据层(含遗留系统)之间的通信业务层内部公共服务与应用层之间的通信以及业务层内部构件之间的通信等等,公共服务应用服务器提供的主要公共服务包括:查找服务事务服务安全服务以及:消息服务、集群服务、目录服务、日志服务、邮件服务等对于面向领域的应用服务器还可以提供更多的与领域业务密切相关的领域公共服务,根据开发组织的背景,可以将现有的应用服务器产品进行如下划分:中间件厂商开发的产品例如:BEA公司开发的WebLogicIONA公司开发的iPortal ApplicationServer等数据库厂商开发的产品例如:Oracle公司开发的 Oracle 9i Application Server等操作系统厂商开发的产品例如:IBM公司开发的WebsphereSUN开发的SUN ONE Application ServerMicrosoft公司开发的以MTS为核心的系统开发工具厂商开发的产品例如:Inprise公司开发的Borland Application Server等,产品分类:,其它大量由独立开发组织完成的产品例如:JBOSS组织开发的JbossOpenEJB组织开发的OpenEjbObjectWeb开发的JonasIronflare AB开发的OrionMacromedia开发的JRUN 等等国内在应用服务器的研究与开发上也取得了显著的进展国家863计划支持了若干与应用服务器密切相关的项目北京大学自行开发的PKUAS在支持在线演化、支持多互操作协议等方面具有明显特色金蝶公司发布了Apusic东方通公司发布了TongWeb 等等,PKUAS的结构,符合J2EE1.3/EJB2.0标准EJB容器标准J2EE服务标准互操作协议支持多种平台LinuxWindows应用开发与部署Eclipse插件组装部署工具定制与扩展容器、协议、服务、工具,未来:,尽管应用服务器处于不断发展之中与应用软件相比它仍然是相对稳定的这是系统软件所具有的一般特性尽管新技术、新需求令人应接不暇但几乎所有的系统都需要系统软件的支持新技术的出现 会对系统软件提出新的需求 并进行适当的扩展、调整但这些变化不会改变系统软件的基本功能新技术、新需求的出现不会替代应用服务器 不仅如此,它们的实现通常需要应用服务器的支持,问 题,什么是中间件?中间件目前的发展状况如何?,