COM运行环境及基于COM的通信模型的研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
程序设计方法学一直是软件工程领域的核心问题。传统的编程方法,如OOP(面向对象编程方法),已经很难满足应用系统复杂性和分布性的需要,组件化编程方法和组件模型应运而生。Microsft提出了COM(组件对象模型)以及一系列基于COM的技术,如DCOM、ActiveX、COM+,用于构建组件编程框架。基于COM可以构建可复用性好、易维护、稳健的系统。
     本文对COM技术底层实现机制进行了研究。文章从COM技术的支持环境出发,分析了COM底层的运行机制,阐述了COM组件的若干特征在Windows平台上的实现方式,并对COM进程内组件的运行环境进行模拟,为COM向非Windows平台的移植做了部分前期准备工作。模拟的主要内容包括组件对象的内存管理机制、组件的集成机制、COM库中部分核心API函数。
     本文对COM的通信机制进行了研究。文章分析了COM列集机制和可连接点机制对多点通信的支持,提出了一个新的通信模型—基于COM的多点通信模型,讨论了模型的负载平衡、容错性、安全性,初步实现了模型中主要对象,并规范了对象接口间的调用关系。提出了静态和动态相结合的集中式负载平衡解决方案。该方案应用可连结对象的回调机制,实现服务器负载信息的自动收集;通过客户动态配置DCOM服务器位置的方式,方便的实现任务调度;通过引入最优备用服务器和最优服务器的概念来作为任务再分配时的调度服务器的依据,实现较好的容错性能。
     文章最后对论文的研究工作进行了总结,并对基于COM的通信模型的进一步研究指出了方向。
The methodology of programming is one of the focuses in the field of software engineering. The traditional programming methods such as OOP(object-oriented programming) could not satisfy complex and distributed applications, so component software and component models come up. COM(component object model) and other technologies derived from COM, such as DOOM, ActiveX, COM+, are developed by Microsoft to establish component-based programming architecture. Reusable, maintainable and robust applications could be constructed based on COM.
    This paper researches the mechanism of COM, in which the supporting environment of COM technology is analyzed, the inner running mechanism is studied, the characteristics of COM component and their implementations on Windows platform are set forth, and the running environment is simulated, which is prepared for COM transplantation from Windows platform to others. Subjects of COM in-process server have been simulated: 1 . the mechanism of memory management; 2. the integration of component; 3. some of the kernel API functions in COM library.
    The paper researches the communication mechanism of COM, in which the technologies of marshaling and connection point support the COM group communication is analyzed, a new communication model?group communication model based on COM is put forward, load -balance, fault-tolerance and security of the model are studied, the main objects in the model are implemented and the interactions among their interfaces are normalized. The author presents a kind of new centralized load-balance algorithm based on static and dynamic task scheduling strategies. This algorithm can work better in realizing gathering load information automatically by applying call-back mechanism of connection object, assigning tasks conveniently by configuring DCOM server, and tolerating fault during several emergencies by introducing the concept of optimum-server and optimum-spare-server into task reallocation.
    A summary of the works is given and the future work of the communication model based on COM is pointed out in the end of this paper.
引文
[1] Ronald J.Norman著,Object-Oriented Systems Analysis And Design。北京:清华大学出版社影印版1998
    [2] 潘爱民著.COM原理与应用.北京:清华大学出版社1999
    [3] 张世琨,张文娟,常欣,王立福,杨芙清.基于软件体系结构的可复用构件制作和组装.软件学报,2001,12
    [4] 徐正权,张颢.基于构件复用的软件方法与COM支持.计算机工程与应用,2001,9
    [5] Dale Rogerson著.杨秀章,江英译.COM技术内幕-微软组件对象模型(Inside COm).北京:清华大学出版社1999
    [6] 胡恬,朱若磊.COM组件技术与软件的复用.微机发展,2001,2
    [7] 何克清,应时,田中茂,冈本泰次.业务应用框架的一种分析方法.软件学报,2001,12
    [8] 应时,吴霞,唐胜群,毋国庆.控件重用技术的成就与缺陷.小型微型计算机系统,2000,8
    [9] 汪广怡,龙源,张士峰,瞿兆荣,一个面向组件的软件分发框架.计算机工程,2000,7
    [10] 安静斌,李慧.基于COM的Windows shell扩展及实现.计算机系统应用,2001,6
    [11] 华奇兵,许文波,李琳,汪林林.COM及其程序设计.重庆邮电学院学报,2001,3
    [12] 陈志刚.CIMS环境中三层客户/服务计算模型与应用研究.博士论文1998
    [13] Keith Brown.Building a Lightweight COM Interception Framework PartⅡ:The Guts of the UD.Microsoft Systems Journal,1999,2
    [14] 潘建平,顾冠群.群组通信模型及运输协议映射.软件学报.1998,8
    [15] DON BOX着.潘爱民译.COM本质论(Essential COM).北京:中国电力出版社 2001
    [16] 曹晓阳,刘锦德.COM及其应用-面向对象的组件集成技术.计算机应用,1999,1
    [17] 刘江宁,等.几种构件模型的比较分析.计算机世界,1999,15
    [18] 郭弘.分布式对象技术的新进展.http://www.computerworld.com.cn
    [19] Foody Ma.OLE and COM vs CORBA.Unix Review.1996,14(4)
    [20] Schmid DC,Gokhale Aniruddha S,Harrison T.High performance system architecture for real time CORBA.IEEE Communications Magazine,1997,35(2)
    [21] 周小勇.基于COM/DCOM的分布式多层应用系统的研究和构建.硕士论文2001
    
    
    [22] 兑继英,沈卓炜,顾冠群.COM/CORBA互操作的研究与实现.东南大学学报,1995,5
    [23] http://www.intemetwk.com/news/news0126-8.htm
    [24] http://www.intemetwk.com/news/news0126-13.htm
    [25] Lawson Products Turns to Microsoft's COM for Platform-Independent, Web-Enabled Interface .http://www.microsoft.com/com/cstudy/lawson, asp
    [26] Douglas C. Schmidt, Mohamed E. Fayad. Building reusable OO frameworks for distributed software. Communications of the ACM, 1997, 40(10)
    [27] Jeffrey Richter著.王建华,张焕生,候丽坤等译.Windows核心编程(Programming Applications for Microsoft Windows,Fourth Edition).北京:机械工业出版社2000
    [28] 梅宏,谢涛,袁望洪,杨芙清.青鸟构建库的构件量度.软件学报,2001,12
    [29] 陈震,吴家蒙.COM组件的进程透明性及其实现.计算机应用研究,2001,11
    [30] 杨芙清.软件复用及其相关技术.计算机科学,1999,5
    [31] Len Bass, Bonnie E. John. Supporting usability through software architecture. Computer,innovative technology for computer professionals, 2001, 34(10)
    [32] Stanley B.Lippman著.侯杰译.深度探索C++对象模型(Inside The C++ Object Model).武汉:华中科技大学出版社,2001
    [33] Martin Gudgin著.宋亚男译.IDL 精髓(Essential IDL).北京:中国电力出版社 2002.
    [34] 赵新星,郭兵兵,陈文伟.COM组件属性方法自动提取何调度.计算机工程,2000,11
    [35] Ruediger R. Asche. A Homegrown RPC Mechanism. Microsoft Developer Network Technology Group, 1995, 5
    [36] Wilbur S, Bacarisse B. Building distributed system with remote procedure call. Software Engineering Journal, 1987, SE- 11(9)
    [37] 欧阳云,史殿习,王怀民,邹鹏.一种组通信模型在CORBA平台上的设计和实现.计算机工程与应用,1999,11
    [38] 傅强,郑纬民.一种适用于机群系统的任务动态调度方法.软件学报,1999,1
    [39] Ellen W. Zegura, Mostafa H. Ammar, Zongming Fei. Application-layer anycasting: A server selection architecture and use in a replicated web service. IEEE/ACM transaction on networking, 2000, 8(4)
    [40] 李志刚,纪玉波.Win32应用程序中进程间通信方法分析与比较.计算机应用研究,2000, 17(2):48-50
    
    
    [41] http://www.comcamp.myrice.com/techarticles/0005.htm
    [42] 唐旭.微软事物处理服务器构筑三层应用程序.微型机与应用,1999,11
    [43] 钱嘉伟.稳定分布式调度算法中任务的优化分配.深圳大学学报(理工版),1998,7
    [44] Willebeek-Lemair H, Reeves A P. Strategiesfordynamic load balancing on highly parallel computers. IEEE Transactions on Parallel and Distributed Systems, 1993, 4(9)
    [45] Rotithor H G. Taxonomy of dynamic task scheduling schemes in distributed computing system.IEEE proceedings, Computers and Digital Techniques, 1994, 141(1)
    [46] 徐松,胡金柱.局域网分布式系统的负荷分担及调整.华中师范大学学报(自然科学版),1999,7
    [47] Brian Whetten, Gursel Taskale. An overview of reliable Multicast Transport Protocol Ⅱ.IEEE Network, 2000, 14(1)
    [48] Dasd J Kruglinski.Visual C++6编程技术内幕.北京:机械工业出版社,2000
    [49] 王千祥.软件构件实现规范及标准.计算机世界,1999,9
    [50] Microsoft Corporation. Microsoft Developer Network, 2000, 7
    [51] http://www.microsoft.com/com(Microsoft的COM技术站点)
    [52] Microsft Corporation. The Component Object Model Specification[S], 1998
    [53] Shyam R Chidamaber, chris F Kemerer. A metrics suite for object oriented design. IEEE Transction on Software Engineering 1994, 20(6)
    [54] Elias Procopio Duarte Jr., Takashi Nanya. A hierarchical adaptive distributed system-level diagnosis algorithm. IEEE Transaction on Computers, 1998, 47(1)