组件对象模型Web开发的软件工程方法1.doc
《组件对象模型Web开发的软件工程方法1.doc》由会员分享,可在线阅读,更多相关《组件对象模型Web开发的软件工程方法1.doc(12页珍藏版)》请在咨信网上搜索。
1、-精品 word 文档 值得下载 值得拥有-精品 word 文档 值得下载 值得拥有-组件对象模型组件对象模型 WebWeb 开发的软件工程方法开发的软件工程方法 夏长虹夏长虹 尹绯尹绯 陈文博陈文博 一 组件对象模型 COM 及其重用范畴 -COM 组件是遵循 COM 规范编写、以 Win32 动态链接库(DLLs)或可执行文件(EXEs)的形式发布的可执行二进制代码。遵循 COM 规范编写的组件将能够满足对组件架构的所有需求。遵循 COM 的规范标准,组件与应用、组件与组件之间可以互操作,极其方便地建立可伸缩的应用系统。COM 是一种技术标准,其商业品牌则称为 ActiveX。-近几年来,
2、组件在软件开发中得到了广泛的应用,尤其是 Windows DNA 将组件应用于 Internet,进行各种事务处理,使组件显示了强大的功力。从组件机制和接口标准方面探讨组件不是一件轻松的事情,我们这里仅从工程应用的范畴讨论组件的开发与使用问题。在应用开发方面组件具有以下特点:-第一 组件是与开发的工具语言无关的。开发人员可以根据特定情况选择特定语言工具实现组件的开发。对于 Internet 应用而言,完成事务逻辑处理计算任务的组件以 MS Visual Basic 进行开发是首选方案。其开发迅速,调试方便,编译之后的组件以二进制的形式发布,跨 Windows 平台使用。源程序代码不会外泄,有效
3、保证了组件开发者的版权。-第二 通过接口有效保证了组件的复用性。一个组件具有若干个接口,每个接口代表组件的某个属性或方法。其它组件或应用程序可以设置或调用这些属性和方法来进行特定的逻辑处理。组件和应用程序的连接是通过其接口实现的。负责集成的开发人员无须了解组件功能是如何实现的,而只须简单的创建组件对象,和其接口建立连接。在保证接口一致性的前提之下,可以调换组件、更新版本;也可以把组件安插在不同的应用系统中。-第三 组件运行效率高、便于使用和管理。因为组件是二进制代码,比ASP 脚本运行效率高多了。核心的商务逻辑计算任务必须由组件来担纲,ASP 脚本只起组装组件的角色。而且组件在网络上的位置可被
4、透明的分配,组件和使用它的程序能在同一进程中、不同进程中或不同机器上运行。组件之间是相互分离、独立的,利用 MTS 使对组件的管理更加简便。组件对象负责管理它自己的生存期。它通过一个内部引用计数器来实现,这个计数器存放任何时候连接到该对象的客户数。当引用计数变为 0 时,对象可以把自己从内存中释放掉。这使程序员不必考虑与提供可共享资源有关的问题。-对于使用组件的集成开发者而言,一个组件就是一个接口集,只能通过接口才能与组件进行通信;而对于组件来说,接口是包含一个函数指针数组的内存结构,每个数组元素包含的是一个由组件所实现的函数地址。在一个应用程序中,起决定作用的是组件的接口而不是组件本身。只要
5、组件的接口保持不变,组件可以任意升级或更换,而应用程序不必做任何修改。接口将特定的行为封装起来,一方面使客户可以用同样的方式处理不同组件,一方面同一组件可以在不同的应-精品 word 文档 值得下载 值得拥有-精品 word 文档 值得下载 值得拥有-用中使用。这些特点决定了组件必然有很好的重用性。其重用性主要表现在以下的使用场合:1.COM 组件并不是专为一种 Windows 平台而设计的,同一 COM 组件可以在 Win95,Win98,Workstation 及 Win NT 上使用。组件既可以被嵌入动态 Web 页面,还可以在 LAN 或桌面环境的 VB,VC 等应用中使用。如图示:2
6、.COM 组件之间是彼此独立的。当应用需求发生变更时,可能需要更换中间层的个别 COM 组件,但这并不会影响其它组件的继续使用。如图示:3.COM 组件具有若干对外接口(属性和方法),相当于芯片的“管脚”。根据不同的应用需求,可以有选择地使用不同的管脚。即使当其某些管脚被“废弃”时,COM 组件本身仍然可继续使用。如图所示:4.同一 COM 组件可以在不同的应用环境中重复使用。COM 组件不一定是为专门的系统而设计,可以有较宽的应用领域,不会因为某一系统的“过时”而被“废弃”。-COM 组件及其较高的可重用性为我们展示了一种崭新的软件设计思路,以组件对象为中心的设计方法把硬件以芯片为中心的工艺
7、思想恰如其分地融合于软件的面向对象的分析、设计和施工之中,使面向对象的概念和方法从工具语言的层次一下子跃上了系统的应用层,也为 DNA 的思想奠定了物质基础。二 基于组件对象 COM 的软件工程方法 -与传统的软件开发不同,在基于组件对象的软件工程中应着重进行组件的规划、设计与开发。如何将传统的软件工程学和组件对象合理地结合在一起,至今还处在不断的发展和完善阶段,达成共识仍须时日。一般而言,在软件开发的过程中,首先应逐步深入地对组件进行功能分析、规划,进行对外接口的设计,进而落实内部细节的实现,最终完成组件的部署与管理。下图显示了进行基于组件对象的软件工程开发过程。1.按常规的软件工程方法,在
8、进行系统需求分析后,将得到系统的数据流图 DFD 和系统结构图 SC,由此我们确定了系统需要处理的各种不同的应用请求。此时我们可以初步确定所需的 COM 组件,再由划分出的若干组件,规划其需要实现的功能。组件的规划是否合理对于基于 Web 的软件工程至关重要,规划不合理往往导致工程的延期或反复。这一步完成 COM 组件的初步设计。-一般来说,一般来说,COM 组件的规划应遵循以下原则:组件的规划应遵循以下原则:用户对于数据库的请求应通过 COM 组件实现。将访问权限授予 COM 组件,保证了访问数据库的安全性;把对每个用户的连接变成和 COM 组件的连接,以避免数据库资源的浪费和崩溃的危险。组
9、件粒度不宜过大,争取每一个 COM 组件实现某一个或一类相似的应用请求,而不要追求其功能的过分庞大。保证每个组件对象完成的商务逻辑功能相对单一,有助于重用机制的发挥和调节 DNA 的适应性。COM 组件与用户的接口应尽量简单、友好。COM 组件如果是可视的(ActiveX 控件),则只能有一个可视化界面。-精品 word 文档 值得下载 值得拥有-精品 word 文档 值得下载 值得拥有-2.进行系统的详细设计时,需进行数据库设计。由于我们已经初步划分出需要定制的COM 组件,此时可以根据库表结构进一步确定组件的对外接口,即组件支持的事件、方法和属性。一般访库操作由组件完成,所以 COM 组件
10、应能识别不同的访库命令,进行特定处理,并将处理结果作为对外接口返回给用户。这一步完成 COM 组件的接口设计。与传统的软件工程学有所不同,基于组件对象的应用系统是由组件实现特定应用处理和商务逻辑计算任务,而其具体实现对集成开发人员来说是封装好的,他们不必耗费精力去关心实现细节,只需规定应用系统与组件的接口,指明在何时、何处调用哪个组件即可。-组件接口设计的考虑组件接口设计的考虑:-组件的接口在整个应用系统中起决定性作用。接口设计不合理,不仅影响组件本身的可重用性,并且将影响整个应用系统的升级,缩短系统的生命周期。所以确定组件的接口要经过深思熟虑,以使其能支持各种不同的应用。-一般接口应具有较高
11、的通用性,以提高整个应用系统的复用能力,同时还要兼顾简单和实用性。举例说,如果我们需要定制一个组件访问特定的数据库并将结果返回给用户。若只是为该系统设计,可以将库名、表名、访库语句全部封装在组件内部,这样组件的接口十分简单,但组件本身的重用性很小。若将库名、表名等作为组件的接口,组件的重用性大大提高了,但接口复杂了,不利于组件的拆换。建议的做法是:如果希望系统有再次开发或移植的潜力,可以将库表名作为接口,访库语句应封装在组件内部,否则将访库权限交给用户,既不利于数据库的安全性,也会给应用程序带来很大的负担。-组件的内部实现细节不能反映到接口中,接口同内部实现细节的隔离程度越高,组件或应用发生变
12、化对接口的影响将越小。在设计组件的接口时,还要尽量估计到将来可能出现的各种情况,力争设计出具有高复用性、适应性和灵活性的接口。-用用 VBVB 实现组件接口的原理简介实现组件接口的原理简介:-在严格意义上讲,COM 组件的接口是一个包含一个函数指针数组的内存结构,而 VB 并没有提供指针,那么用 VB 开发的组件是如何与客户应用程序进行通信呢?事实上,应用程序是通过自动化方式来控制组件的。-自动化是建立在 COM 基础上的,一个自动化服务器实际上是一个实现了IDispatch 接口的 COM 组件;而一个自动化控制器是一个通过 IDispatch 接口同自动化服务器进行通信的 COM 客户。C
13、OM 接口提供的任何服务都可以通过一个标准的 IDispatch 接口实现。-IDispatch 接口可以接受一个函数的名称并执行它。该接口有两个函数GetIDsOfNames 和 Invoke。GetIDsOfNames 将读取一个函数名并返回其调度标识DISPID(每个函数的唯一标识);自动化控制程序将 DISPID 作为函数指针数组的索引传给 Invoke 成员函数,以找到该索引对应的函数地址。也就是说,Invoke函数定义了一个调度接口,其实现如下图所示:-精品 word 文档 值得下载 值得拥有-精品 word 文档 值得下载 值得拥有-我们在实现调度接口时,还可以使用双重接口,其是
14、将接口函数的地址直接存放于 Idispatch 接口中以可使用 pVtbl 指针直接指向。即我们不仅可以使用Invoke 方法,还可以通过 pVtbl 进行函数调用。VB 程序既可以连接到双重接口的调度接口部分,也可连接到其 pVtbl 部分。当变量定义为 Object 类型时,连接到调度接口上:Dim doc As Object Set doc=Application.ActiveDocument Doc.Activate 当变量指定某种对象类型时,VB 将通过 vtbl 完成函数的调用:Dim doc As Document Set doc=Application.ActiveDocume
15、nt Doc.Activate -似乎有些奇怪,接口的所有成员都是函数,为什么 VB 制作的组件却支持“属性”的概念?其实 COM 接口是通过“Set”和“Get”类函数模拟对其成员函数的访问的,VB 中支持的属性实际上就是 VB 程序员可以当成变量对待的“Set/Get”函数。当然对于一般的组件开发人员,以上组件的接口实现是透明的,我们可以方便地利用 VB 进行开发。-3.完成系统的详细设计,接下来进行组件的开发和测试。组件不依赖于特定语言,开发者可根据实际需要选择使用 VB、VC、Java 等作为开发工具。COM组件的开发工作可委任给专门的开发组。组件的接口一旦确定,组件的开发和应用系统实
16、现的其它工作可由各个专门小组同时进行,大大节省了开发时间。-在最后实现阶段,把经过测试的 COM 组件集成到动态 Web 的 ASP 页面脚本中,并进行系统测试。在集成过程中,一般要交替使用 Visual InterDev 和FrontPage 作为工具。具体实施步骤如下:通过 Visual InerDev 建立 Web 站点,连接服务器并在 Web 服务器的根目录下建立站点主页。于是在服务器上同时建立了一个指向新Web目录的与站点同名的新虚拟根。InterDev 还会自动在项目中放置文件 Global.asa 和文件夹 Images,前者负责存储整个应用程序中用到的全局设置,后者包含了 We
17、b 页面上所要显示的各种图形。在 FrontPage 中规划,编辑页面。可以设计页面的背景色、标题字体,快速建立超链接,插入图象,插入系统的或定制的 ActiveX 控件,Java 小程序等。当插入一个ActiveX 控件时,利用 ActiveX Properties 设置控件的有关属性值,用 Script Wizard编写用于在嵌入在页面中的 ActiveX 控件之间进行交互操作的脚本。返回 Visual InterDev 中编写 ASP 脚本,着重功能上的设计。通过 ASP 引用 ActiveX DLL,ActiveX DLL 承载着商务逻辑计算的重任。对页面进行本地测试,在浏览器中显示编
18、辑好的动态 Web 页面。应避免在 FrontPage 中的工作区编辑 ASP 文件。返回 FrontPage,对页面进行进一步地修饰。并可以利用 PhotoShop 等多媒体编辑工具加入图画,动画,声音,视频等丰富、美化你的页面。在 FontPage Explorer 下利用其提供的 Publish 功能将其导入 IIS 服务器,从而使客户用前端的浏览器从服务器上下载这些应用程序。具体过程如下图描述:-精品 word 文档 值得下载 值得拥有-精品 word 文档 值得下载 值得拥有-系统实现过程 -下面简要介绍一下在程序中引用组件 ActiveX DLL 的几种方式。-组件 ActiveX
19、 DLL 的引用方法很多。它既可以在 ASP 脚本中被直接引用,也可在另一个 ActiveX DLL 中引用,还可通过编写 VBScript 及 ASP 脚本将若干个 ActiveX DLL 连接起来。这些引用方式用软芯片的图示描述如下:-上述三种引用方式可用抽象代码来表述。直接引用 包含引用-在定制的 ActiveX DLL 的 VB 程序中使用以下代码引用另一个 ActiveX DLL(ObjectName)Dim obj As Object Set obj=New ObjectName 连接引用-在 VBScript 或 ASP 脚本中使用以下代码:4.至此基本上完成了应用系统的设计与实
20、现,而后,我们还必须对此应用系统进行反复测试。由于应用系统由若干个封装好的组件组装而成,只需着重测试组件与应用系统的接口是否将它们良好地“对接”在一起。若某个处理要求不能正确完成,则只需修改实现该功能的组件。同时也不可忽视的是该系统的安全性和健壮性。可能出现多个用户同时访问同一主页的情况,要在带宽一定的条件下尽量缩短页面下载的时间(例如在同一页面中定制的 ActiveX 控制不宜过多),并避免造成服务器因网络拥塞而产生崩溃。在基于组件的系统中,我们利用 MTS 对组件进行管理,实现对组件的多线程支持并按权限等级把组件划分给具有相应权限的使用人员组。-总的来说,基于组件对象的软件工程方法较传统的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组件 对象 模型 Web 开发 软件工程 方法
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。