关键字 WEB ,COM ,应用软件,服务器
1 引言因为顾客服务器两层结构存在灵活性差、升级困难、维护工作量大等缺点,已较难适应目前信息技术与互联网技术进步的需要。伴随WEB技术的日益成熟,Browse/Server结构已成为取代Browser/Server结构的一种全新技术。使用该结构软件的优势在于:无须开发推广客户端软件,维护和升级便捷;可跨平台操作,任何一台机器只须装有WWW浏览器软件,均可作为顾客机来访问系统;具备好的开放性和可扩充性;可使用防火墙技术来保证系统的安全性,有效地适应了目前用户对管理信息管理软件的新需要。因此该结构在管理信息管理软件开发范围中获得高速发展,成为应用软件研制中一种时尚的体系结构。本文在对B/S体系结构剖析的基础上,提出了一种新的体系结构,把B/S与C/S相结合,将组件技术和ActiveX技术分别应用在服务器端和推广客户端,开发高效、安全的应用系统。最后给出了一个应用实例。2 . COM组件技术和ActiveX技术COM是一种技术指标。它是由Microsoft公司成立,提供了使多个应用程序或组件对象协同工作并相互通信的能力。COM组件是遵循COM规范撰写、以WIN32动态链接库(DLL)或可实行文件(EXE)的形式发布的可实行的二进制代码。遵循COM的规范标准,使组件与应用、组件与组件之间可以相互操作,极其便捷地打造可伸缩的应用系统。从工程的角度看,组件在应用开发方面具备以下特征:组件与开发的工具语言无关。开发职员可以参考需要和喜好选择特定语言工具达成组件的开发。常见的开发工具是VB、VC和Delphi。将组件编译成DLL或EXE置于服务器端。可有效保护商业秘密。 通过接口有效保证了组件的复用性。一个组件具备若干个接口,每一个接口代表组件的某个属性或办法。其它组件或应用程序可以设置或调用这类属性和办法来进行特定的逻辑处置。组件和应用程序的连接是通过其接口达成的。负责集成的开发职员无须知道组件功能的怎么样达成,而只须创建组件对象与其接口打造连接。在保证接口一致性的首要条件下,可以调换组件、更新版本,也可以将组件应用在不一样的系统中。组件运行效率高、便于用和管理。由于组件是二进制代码,比ASP脚本运行效率高,所以核心的商务逻辑计算任务需要由组件来负责,ASP脚本只起组装组件的角色。而且组件在互联网上的地方可被透明地分配,组件和用它的程序既能在同一进程中运行,也可在不同进程或不一样的机器上运行。组件之间是相互离别和独立的。借助MTS或COM+对组件管理愈加便捷。ActiveX是遵循COM/DCOM流程而开发的用于INTERNET的一种对象链接与嵌入技术(OLE)。COM是应OLE设计者的需要而诞生的。其基本的出发点是想让某个软件通过一个通用的机构为另一个软件提供服务。对于基于WEB的应用而言,它提供了使组件嵌入到WEB页面以扩展交互功能的应用机制。推广客户端控件是面向用户的,以可视化的图形视频或文字界面、或者音频形式在浏览器上出现。但它可能并非浏览器的组成部分。这类控件原先是放在服务器上的。当浏览器发出请求时,WEB服务器回传页面,由浏览器负责讲解。在讲解过程中,若发现页面中需要调用ActiveX控件时,则用该控件的在页面中注明的ID值先在当地的注册表内进行查看。若已经存在,则说明该控件已经在当地安装,然后通过注册表中的有关信息直接用该控件;不然就要依据页面中所提示的该控件所在的服务器上的路径到服务器上去下载并且自动完成在当地的安装注册,使该控件成为当地资源,供以后用,这就是所谓“一次下载,永久用“。推广客户端控件一旦在当地安装完毕,就等价于一个可实行的应用程序,它能访问用当地的资源,甚至进行远程访问。当然,这可能带来了安全性问题。3 基于B/S体系结构开发应用系统 3.1 B/S三层体系结构在B/S体系结构系统中,用户通过浏览器向分布在互联网上的很多服务器发出请求,服务器对浏览器的请求进行处置,将用户所需信息返回到浏览器。B/S结构简化了顾客机的工作,顾客机上仅需配置少量的推广客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的实行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回与动态网页生成等工作全部由Web Server完成。事实上B/S体系结构是把二层C/S结构的事务处置逻辑模块从顾客机的任务中离别出来,由Web服务器单独组成一层来负担其任务,如此顾客机的重压减轻了,把负荷分配给了Web服务器。这种三层体系结构如图1所示。


4 实例
下面以某学校学生管理软件为例说明B/S结构软件的设计办法,该系统使用B/S体系结构与COM+技术相结合。通过该系统管理职员可以对学生的学籍、学生的平时表现、学生的学习成绩、学校教师、学校的资产进行管理与维护。任课教师可以通过浏览器查看所教班级学生各种有关信息。学校管理职员通过浏览器对学校的学生、教师等信息进行管理与维护与有关查看统计功能。学校资产管理职员通过C/S体系结构达成对学校资产的管理维护。本系统结合了ASP技术和COM+技术,是一个三层结构。表示层由ASP页面组成,用以达成WEB页面显示和调用COM+组件,业务逻辑和数据访问由一组用VC达成的COM+组件构成。为了便于维护、升级和达成分布式应用,在达成过程中,又将业务逻辑层和数据访问层离别开,ASP页面不直接调用数据访问层,而是通过业务逻辑层来调用数据库。4.1 COM组件技术应用该系统的达成主要分为三个部分:数据库、COM+组件和ASP页面。其中数据库与ASP页面的达成与一般B/S结构的WEB应用相似。COM+达成可分为三个步骤:COM+组件的设计、COM+应用程序的生成和组件注册、基于属性编程。该管理软件借助VC中的ATL开发COM+组件。下面是该系统中一个定制组件部分主要代码在showscore.asp页面中同意、分辨用户的查看请求,做出不一样的查看处置。当顾客的身分为教师或教务员时,可以查看所有学生的成绩;当顾客的身分为学生时,只能查看本人的成绩。定制COM组件Score.dll进行查看处置。第一设计该组件的接口,为组件设计四个属性:SubjNo(课程号),Term(课程所属学期),ClassNo(班级号)和StuNo(学号)。概念两个办法RequeryScores和RequeryAllScores,分别对教师、教务部门和学生的请求做出相应的处置,并将查看结果集返回给用户。以下是达成该组件Score.dll接口描述与达成办法的部分代码,从中可以看到组件的接口是怎么样达成的:import "ocidl.idl"; [ object, uuid, dual, helpstring, pointer_default ] interface IStudentScore : IDispatch{ [propget, id, helpstring] HRESULT SubjNo; [propput, id, helpstring] HRESULT SubjNo; //其它接口部分从略 [id, helpstring] HRESULT RequeryScores); };STDMETHODIMP CStudentScore::RequeryScores{ HRESULT hr=S_OK; IobjectContext* m_spObjectContext=NULL; //借助ADO访问数据库 ::CoInitialize; _RecordsetPtr pRecordSet=NULL,pRecordSetClone=NULL; BSTR bstrDSN=::SysAllocString; BSTR bstrSQL; try{ GetObjectContext; pRecordSet.CreateInstance); //依据查看需要进行不同操作生成相应SQL语句,程序具体处置从略 pRecordSet->CursorLocation = adUseClient;pRecordSet->Open; pRecordSet->PutRefActiveConnection; pRecordSetClone = pRecordSet->Clone; pRecordSetClone->QueryInterfaceppRecordset); pRecordSet->Close; pRecordSet = NULL; ::SysFreeString; ::SysFreeString; //事物成功完成,则提交该事物 I f m_spObjectContext->SetComplete;} catch{ if //事物失败,回滚事物处置 m_spObjectContext->SetAbort // 其他错误处置,从略 } return hr;} RequeryAllScores达成部分从略。另外ASP调用达成部分比较简单从略。组件编译结束后可以用COM+组件服务管理工具来管理COM+组件及其所在的应用程序。COM+组件服务是个图形界面的管理工具,借助它可以安装和发布组件、配置组件及其所在应用程序的属性,以达成组件安全性、MTS支持、排对组件、设置组件架构参数等。4。2 ActiveX技术应用 在本系统中很多报表的打印如学生成绩打印、学籍报表、学籍卡打印等需要特殊的格式。而浏览器所提供的打印功能没办法达成。为此可使用ActiveX技术,达成在WEB环境下的当地端打印和报表生成。具体达成过程为:(1)WWW服务器在接到用户请求后调用WEB应用程序中的相应组件,通过组件访问数据库,对数据处置生成报表数据,以文件形式存储于WEB服务器中相应目录下。(2)WWW服务器向用户浏览器发送内嵌ActiveX控件的HTML页面,并在HTML页面里的(OBJECT)标志中的param属性里指明数据文件的URL地址。(3)HTML页面依据所提供的ActiveX标志从WWW服务器上下载ActiveX控件到当地端,并在浏览器里实行。ActiveX控件在顾客浏览器里完成初始化工作将来,则需直接与服务器端联系,以获得报表数据。ActiveX控件与服务器端的连接使用HTTP协议所提供的GET办法,依据数据文件在WWW服务器上的URL地址,直接将数据文件从WWW服务器下载到当地端。(4)对数据文件进行分析,输入到控件的存储显示模块里,用以存储显示。(5)当用户按下打印按钮时,ActiveX调用打印模块进行打印输出。5 结束语伴随INTERNET普及,基于B/S体系结构开发应用程序变为时尚的方法。将组件技术应用到B/S体系结构中,达成业务逻辑封装,提升软件的可重性和可维护性。
参考文献:[1]余英 ,梁刚 VC实践与提升COM和COM+篇. 中国铁道出版社[2]林子禹等 基于WEB与组件技术的企业应用系统设计模型 计算机工程与应用 2000.6.[3]夏骄雄等 基于Intranet的管理信息管理软件 小型微型计算机系统 2001、4 [4]楼伟进,应飚.COM/DCOM/COM+组件技术 :计算机应用2000、4.[5]张震、张曾科 一种新的WEB数据库系统结构 小型微型计算机系统 2001、5