DOM组件编程.doc
《DOM组件编程.doc》由会员分享,可在线阅读,更多相关《DOM组件编程.doc(53页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第9章 组件编程组件(component)技术是各种软件重用方法中最重要的一种方法,也是分布式计算和Web服务的基础。网络应用中的软件组件,又被称为中间件(middleware)。组件技术的应用现在已经十分广泛,从Windows编程中使用的各种控件和公用对话框,到ActiveX控件和DirectX的应用;从微软公司的COM,到Sun公司的JavaBean。其中最流行的组件技术的应用是客户端的COM(微软/VB、VC)、服务器端的EJB(Sun/Java)、以及可用于客户端和服务器端的.NET(微软/C#、VB、C+/CLI)。在网络及其应用都很发达的今天,对组件服务的需求十分强烈,因此组件技术
2、近年来得到了飞速的发展和广泛的应用。9.1 概述面向过程的编程重用函数、面向对象的编程重用类、范型编程重用的是算法的源代码,而组件编程则重用特定功能完整的程序模块。每个组件会提供一些标准且简单的应用接口,允许使用者设置和调整参数和属性。用户可以将不同来源的多个组件有机地结合在一起,快速构成一个符合实际需要(而且价格相对低廉)的复杂(大型)应用程序。组件区别于一般软件的主要特点,是其重用性(公用/通用)、可定制性(设置参数和属性)、自包容性(模块相对独立,功能相对完整)和互操作性(多个组件可协同工作)。可以简单方便地利用可视化工具来实现组件的集成,也是组件技术一个重要优点。普通的面向过程和面向对
3、象的编程,一般会生成两种类型的软件针对特定应用的可执行程序和面向通用编程的API库。前者包含你需要的各种特殊的具体功能,但必须从头到尾自己来创建,其中很多是低层次的重复劳动;后者虽然通用,但是却不能满足你的具体应用的特殊需要。组件技术提供了第三种途径,它将库的可重用性与特定程序的可定制性结合起来,让用户可以用可重用的组件来定制自己特定的应用程序。所以组件在某些方面类似于“可执行程序”,在另一些方面又类似于“库”。采用MFC编程,可选的项目类型为:MFC应用程序、MFC DLL和MFC ActiveX控件,刚好对应于上面所讨论的可执行程序、库和组件这三类软件。使用组件来构造应用程序的工作(组件集
4、成)非常简单,不需要专业程序员,普通用户就可以很快做到。但是设计和创建组件(组件编写)的工作却十分复杂,只有高水平的程序员才有可能完成。这也是为什么VB和Delphi会如此流行的真正理由(组件功能强大,编写又非常简单),同样也是ATL和EJB等(创建组件)编程少有人问津的原因。1组件模型软件组件的核心技术是组件模型,它定义了组件的体系结构、及如何操作此结构并与外部交互。组件模型的两个基本要素是组件和容器。模型的组件部分,提供构造组件的模版,是各种组件创建和使用的基础;模型的容器部分,定义了将多个组件结合成有用结构的方法,为组件的结合和交互提供环境支持。一个功能完整的组件模型应该提供如下6种主要
5、的服务:l 自检(introspection内省)向外部显示本组件功能和信息的机制,是组件模型的最关键方面;l 事件处理使组件产生响应某个内部状态变化的事件通知的机制,相关的组件之间是通过事件的消息传递来协同工作的;l 持久性(persistence)从一个固定位置(如磁盘)存储和检索组件的方法;l 设计规划支持组件的物理设计规划(可视化界面);l 应用程序构造器支持支持组件的GUI交互创建工具(如VB);l 分布式计算支持需要考虑网络定位、远程调用、传输错误或失败、以及通信速率的限制等方面的问题。2中间件中间件(middleware)是一种软件,它能使处于应用层的各种应用组件之间实现异构网络
6、平台上的协同工作。它是组件技术的最重要方面,也是分布式计算和Web服务等网络应用技术的主要组成部分。可协同工作应用软件中间件网络协议操作系统硬件平台应用软件DBMS中间件网络协议操作系统硬件平台中间件的定义中间件一般由执行环境和应用开发工具两部分组成,可以分成事务处理中间件、消息中间件和分布式中间件等三种类型。传统网络应用采用的是C/S(客户/服务器)双层结构模式:客户程序操作系统数据库的C/S通信规程服务程序DBMS操作系统客户端服务器端C/S双层结构应用表示层业务处理逻辑数据库的C/S通信规程应用软件数据库管理系统客户端服务器端双层结构的客户/服务器关系这种模式,开发简捷,但效率低下,而且
7、不适应于Web和组件应用的需要。中间件一般采用三层结构:请求应答客户程序中间件操作系统服务程序中间件DBMS操作系统客户端服务器端C/S三层结构第一层客户端进程中间层业务逻辑服务企业信息层服务器端进程数据库三层结构的客户/服务器关系9.2 组件标准组件应用的基础是标准,没有统一的接口描述、没有规范的组件通信、没有标准的对象请求和远程调用,就没有组件应用的可能。目前的主要标准有CORBA(国际通用)、EJB(Sun的Java)、COM和CLR(Microsoft的Windows和.NET)。1CORBA最早而且最权威的组件标准是CORBA (Common Object Request Broke
8、r Architecture公共对象请求代理体系结构),它由OMG所制定的,1991年10月推出1.0版、1996年8月推出2.0、2002年7月推出3.0,目前的最新标准为2006年4月1日推出的CORBA 4.0版。OMG(Object Management Group对象管理组,http:/www.omg.org/)是一个开放型非赢利组织,负责制定和维护协同企业应用的计算机工业规范。OMG是1989年4月由3COM、Apple、美国航空、佳能、DG、HP、IBM、Philips、Unisys和Sun等11个公司所创建的,后来发展到800多个公司、大学和国际组织,包括Adobe、AT&T、
9、Borland、CA、加州大学、富士通、HP、IBM、MIT、NEC、Oracle、Sun、东芝、东京大学、清华大学、W3C等。(注意,Intel和Microsoft并没有参加)。OMG制定的其他标准还有:UML(Unified Modeling Language统一建模语言)和IDL(Interface Definition Language接口定义语言)等。CORBA是一种独立于语言的分布式对象模型,其核心是ORB(Object Request Broker对象请求代理),对象的接口用IDL描述,在各个对象之间采用IIOP(Internet Inter-ORB Protocal因特网ORB
10、交互协议)进行通信。OMG的OMA(Object Management Architecture对象管理体系结构)从客户传递到对象实现的请求使用ORB-to-ORB通信的协同工作的能力CORBA的C/S模型2EJBSun公司于1997年在Java的JDK 1.1中引入了JavaBean组件技术,后来又于2000年随J2EE(Java 2 Platform, Enterprise Edition,Java 2平台企业版,2005年6月后更名为Java EE)引入服务器端的组件技术EJB(Enterprise JavaBeans,企业爪哇豆)和网页编程工具JSP(JavaServer Page,
11、Java,服务器网页)。至此,Java成为了一种功能完备的分布式计算环境。这对(一心想进入利润丰厚的服务器端网络应用软件领域的)微软公司,造成了极大的威胁。1998年3月24日Sun公司在第3届Java开发者会议(JavaOne 1998)上发布了EJB 1.0版、1999年12月17日推出1.1版、2001年8月22日推出2.0版、2003年11月24日又推出2.1版,当前最新版是2006年5月2日推出的3.0版。Java EE 6体系结构图Applet容器(Applet)Web容器(JSP、Servlet)EJB容器(EJB)应用客户容器(应用客户)JAX-PRCJAX-WSJAXRJMS
12、Web BeansWeb服务WS元数据管理Java持久性JAX-RSJASPICJACC连接器JTAJava邮件JSFJSTLSAAJJava SE数据库Java EE 6平台Java SE 6平台l J2EE(1.2)引入的新概念与技术:n EJB(Enterprise Java Beans,企业爪哇豆)n JSP(Java Server Pages,爪哇服务器页面)n Servlet(小服务器程序)n Container(容器)l J2EE 1.2(为首个J2EE版本)原有的API:n JDBC(Java Database Connectivity,爪哇数据库联接)从J2EE 1.4起被放
13、进J2SEn JNDI(Java Naming and Directory Interface,命名与目录接口)从J2EE 1.3起被放进J2SEn JMS(Java Message Service,爪哇消息服务)n JavaMail(爪哇邮件)n JAF(Java Beans Activation Framework,爪哇豆激活框架)用于JavaMail,从Java EE 6起被放进Java SEn JavaIDL(Java IDL, 爪哇IDL),其中:IDL = Interface Description Language(接口描述语言)从J2EE 1.3起被放进J2SE?l J2EE
14、1.3新引进的API:n JAXP(Java API for XML Processing,爪哇XML解析API)从J2EE 1.4起被放进J2SEn JTA(Java Transaction API,爪哇事务API)n JAAS(Java Authentication and Authorization Service,爪哇验证和授权服务)从J2EE 1.4起被放进J2SEn Connectors(连接器)l J2EE 1.4新引进的API:n SAAJ(SOAP with Attachments API for Java,用于爪哇的带有附件的SOAP),其中:SOAP = Simple O
15、bject Access Protocol(简单对象访问协议)n JAX-RPC(Java API for XML-Based Remote Procedure Calls,基于XML的远程过程调用之爪哇API)n JAXR(Java API for XML Registries,XML注册的爪哇API)n JACC(Java Authorization service provider Contract for Containers,爪哇授权服务提供者容器合同)n Web Services(Web服务)n JMX(Java Management Extensions,爪哇管理扩展)用于Man
16、agement,从Java EE 5起被放进Java SEn Management(管理)l Java EE 5新引进的API:n JAX-WS(Java API for XML Web Services,XML Web服务的爪哇API)n WS Metadata(Web Services Metadata,Web服务元数据)n Java Persistence(爪哇持久性)n JSF(Java Server Faces,爪哇服务器外观)n JSTL(Java server pages Standard Tag Library,爪哇服务器页面标准标签库)n StAX(Streaming API
17、s for XML Parsers,XML解析器的流API)从Java EE 6起被放进Java SEl Java EE 6新引进的API:n JAX-RS(Java API for RESTful Web Services,完全REST的Web服务之爪哇API),其中:REST = Representational State Transfer(代表状态转移)n JASPIC(Java Authentication Service Provider Interface for Containers,爪哇验证服务提供者容器接口)n Web Beans(Web豆)因特网表单显示Web服务Web服
18、务器Web应用业务逻辑EJB容器EJBData数据库客户端界面基于Web应用的J2EE应用编程模型简单的EJB体系结构JavaBean是一种可复用的平台独立的软件组件,开发者可以在软件构造器工具(如网页构造器、可视化应用程序构造器、GUI设计器、服务器应用程序构造器等)中对其直接进行可视化操作。而EJB则是用于开发企业级的服务器端应用程序的JavaBean组件,可以分为会话bean(维护会话)、实体bean(处理事务)和消息bean(提供异步消息机制)等三种类型。JavaBean的接口采用标准的IDL定义,在各个EJB之间采用RMI(Remote Method Invocation远程方法调用
19、)进行通信,而且J2EE还为EJB与CORBA的集成提供了适配器和RMI的扩展RMI-IIOP,可以用于EJB与CORBA对象之间进行通信。而对数据库的访问,采用的则是JDBC(Java DataBase Connection,Java数据库连接)。JavaBean应用程序JavaBean组件JavaBean组件JavaBean组件JDBC数据库服务器CORBA服务器Java服务器数据库协议RMI-IIOPRMIJavaBean的三种远程对象交互机制EJB与CORBA的比较与结合EJB的体系结构3COM / .NETCOM(Component Object Model,组件对象模型)是微软公司
20、于1993年提出的一种组件技术,是软件对象组件之间相互通信的一种方式和规范,它是一种平台无关、语言中立、位置透明、支持网络的中间件技术。COM是OLE(Object Linking and Embedding,对象链接和嵌入)的发展(而OLE又是DLL Dynamic Link Libraries,动态链接库的发展),DCOM(Distributed COM分布式COM,1996年)和COM+(DCOM+管理,1999年)则是COM的发展。ActiveX控件是COM的具体应用(如VBX和DirectX都是基于ActiveX的)。ATL(Active Template Library活动模板库)
21、是开发COM的主要工具,也可以用MFC来直接开发COM,但是非常复杂。作为组件技术的进一步发展,微软公司又于2002年推出了.NET框架,其中的核心技术就是用来代替COM组件功能的CLR(Common Language Runtime公共语言运行库),可采用各种编程语言,利用托管代码来访问(例如C#、VB、MC+),使用的是.NET的框架类库FCL(Framework Class Library)。微软公司的各种组件技术之间的关系与发展可以参见下图:ATL / MFC FCL / C#、VB、MC+、C+/CLI开发 开发1981 1991 1993 1996 1999 2002DLLOLEC
22、OMDCOMCOM+.NET应用 应用 应用VBXActiveXDirectX ASP.NET/ADO.NET/ Web服务替换 应用 分布式计算本地 网络 Web微软组件技术之间的关系与发展示意图下面分别对这几种组件技术加以简单的介绍:1)DLLDLL(Dynamic Link Libraries,动态链接库)还不能算组件技术,但它是软件重用的鼻祖。普通的静态链接库,虽然也能做到代码共享,但是只能是在编译链接阶段。在运行时,程序调用的是已经链接到自己程序内的库函数。如果每个程序都包含所有用到的公共库函数,则这是很大的浪费,即增加了链接器的负担,也增大了可执行程序的大小,还加大了内存的消耗。而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DOM 组件 编程
限制150内