`
javatar
  • 浏览: 1709469 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论
阅读更多
《深入理解COM+》

前言

       COM是一项位于底层的有效技术。

       1992年,Tony Williams 和Bob Atkinson定义了一个简单的结构,从而使Microsoft公司内部和外部的各种组织一次又一次的用它来处理各种各样的问题。

       复合文档或者对象链接和嵌入?COM;脚本语言支持和自动化?COM;AciiveX控件和身份鉴定技术(Authentication)?COM;统一数据访问?COM;Microsoft事务服务系统(MTS)和Microsoft分布式事务协调器(MS DTS)?COM;Microsoft SNA服务器事务集成器?COM。

       Microsoft Windows DNA?COM。

       COM+1.0对COM具有非常重要的意义,它也为COM增加了许多新的、更为先进的特性。在设计的时候,已经充分考虑并增强了用户原先在COM、MTS和其他基于COM应用上的投资效益。

       第一:由于COM+1.0集成了COM和MTS这两种原先相互分离的技术,所以它既是一个更好的COM,也是一个更好的MTS。环境、类属性、截取的概念已经被植入系统内部,所以各种功能强大的服务在实现的时候表现的更为独立,清晰。各种服务之间可以无缝的结合,增强了性能和可靠性。

      第二:所有的服务比如事务、安全性、可管理性和代理进程等,不仅由于内部高级的截取结构而变得更好,而且他们的特征更为丰富,在深度和广度上都有所增强。那些已经使用这些服务的COM应用可以瞬间变的强大、更为灵活。

      第三:COM+1.0新增加了一些基本的服务,比如用于非连接方式的队列组件、针对松散连接的发布-订阅事件的时间服务、用于高速事务一致数据缓存的内存数据(IMDB),以及用于建立可扩展应用集群系统的组件负载平衡和对象池机制。

      “我们继续前进,让COM+帮助我们”!

      译者前言

      本书向读者展现了COM+的所有关键特性,尤为可贵的是,作者并不是简单的按照指导编程的模式介绍这些内容,而是从COM+的各项服务所蕴含的思想出发,深入剖析了这些服务的内在动机以及他们所提供的有效解决方案。

      COM+并不是一个虚的体系结构,而是一个实实在在的产品,是一个进入了我们应用系统的基础平台。

      COM+着眼于应用层,它的目标是通过一系列系统服务为企业应用提供通用的基础设施;而COM是一个组件对象模型,它为组件对象提供了基本的规范以及相应实现上的支持。


一、COM+基础结构

            COM+其实是一个高级的COM运行环境,它预先提供了许多面向企业应用设计者的通用基础设施解决方案,特别是三层结构模型的中间业务层上的基础设施模块。如果您把COM+理解为“Microsoft 企业应用预置功能工具包”,那么你也就领会了COM+模型的本质。

            事务服务:事务是保证分布式系统数据完整性的一种机制,特别是在通信失败或者机器故障的情况下。COM+事务服务为COM对象提供了一种用来创建、使用、表决事务结果的简单方法。

            安全服务:从本质上讲,所有的企业应用都必须关心安全问题。他们必须保证只有授权的用户才能被允许执行重要的操作(authentication,authorization)。可以通过管理手段以及编写安全代码逻辑手段使用。

            同步服务:分布式系统的设计人员必须要保护他们的组件程序的关键部分,以便允许多线程并发访问。可以通过管理手段以及编写同步代码逻辑手段使用。

            队列组件:队列组件是指一种通信机制,它允许COM客户对COM对象的调用即时当对象所在的服务器并不能通过网络到达的时候也可以进行(recorder,player )。

            事件服务:发布者(publisher)是指企业应用中提供信息变化情况的程序,比如股票价格的变化;订阅者(subscriber)是指企业应用中接受这些变化信息的程序。COM+事件服务为订阅者提供了一条简单的途径可以进行登记,以便接收来自发布者的变化通知;它也为发布者提供了简单的途径可以确定订阅者的位置并调用到这些订阅者。

            内存数据库:内存数据库(IMDB,in-memory database)也是一种服务,它为中间层机器上的后台数据库提供了自动的内存缓存功能。极大的提高了速度。(不确定加入了W2K)。

            负载平衡:COM+负载平衡服务提供了一种自动机制可以把对象的创建请求分布到一组服务器池中,从而把负载散开。(不确定加入了W2K)。

            COM+别名:W2KVoC(windows 2000 version of COM)。活动目录(active service)。

            COM+提供了企业范围内的COM应用所需要的各种预制服务。

            犹太法典讲到一个很急躁的人来到著名犹太学者Hillel跟前,说:“趁我现在还有耐心的时候,请教我圣经律法吧。”Hillel想了想说:“你自己都不能保证有耐心去做的事情,就不要要求别人去做。静下心来,继续学习吧。”


二、COM+系统结构

             首先从管理角度介绍COM+,COM+通过Windows MMC进行管理,在运行中输入dcomcnfg可以进行配置。COM+配置管理器以属性结构管理COM+应用:

             1)COM+目录: 可以使用progID为“COMAdmin.COMAdminCatalog”的组件进行程序控制。

             COMAdminCatalog:代表COM+目录数据库,是最高级对象,用户必须通过它获得COM+应用程序集合(COMAdminCatalogCollection)以及进行其他配置有关的工作。暴露了GetCollection()方法;

             COMAdminCatalogCollection:当用户从COMAdminCatalog对象获得一个COMAdminCatalogObjects集合时使用,比如组件集合、应用程序集合。

             COMAdminCatalogObjects:代表集合中的一个对象,比如组件、应用程序。

             2)COM+应用程序:添加一个新应用程序,可以通过程序控制的方式,也可以通过COM+安装程序向导的方式。

             激活类型:服务应用 or 库应用。

             3)COM+组件:组件是业务逻辑的软件实现形式。我们首先编写业务逻辑,然后以COM的形式包装,然后继承COM+所提供的企业基础设施(安装COM+应用程序)。

             截取器

             代理进程:dllhost.exe

            4)接口、方法、各级角色、组件永久以及临时订阅者。

            COM+企业基础设施的体现:COM+环境

            1) 环境:IObjectContext接口方法,通过GetObjectContext函数可以得到,该接口暴露了事务方法、安全方法。我们可以通过CoGetObejectContext函数或者通过向IObjectContext接口请求任何可以得到的环境对象。比如:IObjectContextInfo、IContextState、ISecurityCallContext接口。

            2) 安全性:

            鉴定(authentication ):CoInitializeSecurity、SSP(安全支持提供者)、鉴定级别。

            授权(authorization):与角色(role)相关。

            3)服务器进程身份:交互用户 or 指定用户。

            4)线程套间:

            CoInitializeEx函数:指定参数COINIT_APARTMENTTHREADED则创建并进入了一个单线程套间(single thread apartment,STA)。指定参数COINIT_MULTITHREADED则进入了一个多线程套间(multi thread apartment ,MTA)。

            注册表项ThreadingModel:apartment(STA)、free(MTA)、both(either STA or MTA)。single or 无此注册项表示继承以前的情形。

            标准套间(neutral apartment, NA or TNA):注册表项ThreadingModel可以设为neutral,则此对象总是创建于标准套间中。

           同步:可以通过配置器配置。

            COM+提供了企业应用共同的基础设施,只要你编写了业务逻辑,包装成COM组件的形式,你就可以将其安装到COM+环境中,使用它的基础设施。


三、COM+事务

            涉及到企业应用,就会涉及到一些敏感数据,对这些数据的操作就要保持一致性,比如网上缴费业务,不能用户的帐户余额减少了,但是缴费项目的帐户没有增加,这就提出了事务这一概念。

            事务的特征:

            原子性(automicity):事务的所有操作作为一个整体要么全部成功、要么全部失败。

            一致性(consistency):理解为合法性,即事务前后数据库要保持合法性,这边减了多少,那边相应的要增加多少。

            隔离性(isolation):事务处理过程中,事务外部无法看到事务的状态,事务对外是不可见的。

            持久性(durability):数据库文件的持久性、即使失败了,日志文件的持久性,持久性就是说存储在磁盘而不是ROM。

            真实的事务处理:

           分布式事务协调器(distributed transaction coordinator, DTC),事务中的每一个组件只是做它自己的事情,然后指示DTC它是否已经顺利的完成了任务。如果所有参与事务的操作都很顺利,则DTC会告诉它们把所有的变化保存起来,并且把变化公布出来,即“提交(commiting)”事务。如果其中任何一个对象拒绝变化,则DTC会丢弃这些变化并恢复到系统的原始状态,即“放弃(aborting)”事务。

          COM+资源管理器(resource manager,RM),它是一个可以跨越COM+事务并管理持久系统状态的软件(如SQL Server 2000),RM知道当参与事务的对象改变它所管理的资源时,如何把资源的变化缓存起来。然后,如果事务被提交了,则RM知道如何把这些变化发不出去;如果事务被放弃了,则RM知道如何把这些变化丢弃掉。

          COM+配置管理器(DCOMCNFG.EXE)可以对加入到COM+环境中的组件进行事务配置,可以配置事务支持的级别、事务隔离的级别、事务超时……。事务根据组件配置的事务支持级别传播事务。

          IDL语言属性,比如TRANSACTION_REQUIRED等等。

          通过IObectContext or IContextState接口提交或者丢弃事务。

          ADO编程模型,connection对象方法(begintran、committran、rollbacktran)。


分享到:
评论

相关推荐

    深入理解com+

    深入理解COM+,首先需要了解其关键特性: 1. **事务管理**:COM+支持自动事务处理,使得跨越多个组件的操作能够以原子性执行,确保数据的一致性。 2. **安全性**:通过集成的安全模型,COM+允许对组件和方法级别的...

    深入理解COM+.rar

    深入理解COM+,还需要掌握如何创建和使用COM+组件,包括使用Visual Studio创建COM+项目、配置组件属性、编写组件代码、注册组件以及在应用程序中消费这些组件。同时,了解COM+的应用场景,如企业级的数据库应用、Web...

    深入理解COM+

    关于COM+编程的一本好书!!!

    深入理解 COM+组件技术

    本篇文章将深入探讨COM+组件技术的核心概念、设计原则以及在实际应用中的使用。 一、COM+基础 COM+是在COM的基础上构建的,它引入了服务组件的概念,使得开发者能够更加容易地创建和管理分布式应用程序。在COM中,...

    深入理解COM+,潘爱民翻译

    潘爱民翻译的《深入理解COM+》一书,作为入门教程,深入浅出地介绍了这一技术的核心概念和实际应用。 1. **COM基础**:COM是组件模型的基础,它定义了组件之间的交互规范。COM组件是二进制级别的可重用代码单元,...

    深入学习COM+高级编程

    本书包括以下内容 OLE.COM.DCOM.COM+的发展及现状 Window DNA及分布系统结构 COM+基本概念 COM+的多线程控制及套间 COM+服务,如消息队列MSMQ,事务 ADO.ATL等.

    深入理解 COM+

    深入理解COM+,首先要了解COM的基础概念。COM是一种接口定义语言,它允许不同编程语言编写的组件之间进行无缝交互。COM组件是二进制可重用的代码单元,通过接口来暴露其功能,确保了组件的独立性,使得组件可以不...

    深入理解COM+(pdf版本)

    把pdg版本的合并起来,看起来容易一点;-)

    深入理解COM+(代码)

    本书向读者展现了COM+的所有关键特性,尤为可贵的是,作者并不是简单的按照指导编程的模式介绍这些内容,而是从COM+的各项服务所蕴含的思想出发,深入剖析了这些服务的内在动机以及他们所提供的有效解决方案。

    COM+ 技术大全COM+ 技术大全

    通过阅读《COM+技术大全》,开发者可以深入理解COM+的技术原理,掌握其强大的功能,并能运用到实际项目中,提升软件的稳定性和可维护性。虽然现代开发中已有很多替代技术,如.NET Framework的WCF、ASP.NET等,但对...

    全面理解COM+(潘爱民)

    本文旨在通过解析《全面理解COM+》一书的部分内容,深入探讨COM+技术的核心概念、应用场景以及实现原理,帮助读者更好地掌握这一技术。 #### COM+ 技术简介 COM+是一种基于组件的软件开发模型,它扩展了原有的COM...

    com+编程代码

    通过对这些源代码的学习,你可以深入理解COM+的内在机制,提升你的企业级应用开发能力。同时,也可以借鉴和复用已有的组件,提高开发效率。不过,由于标签为"1",可能意味着这是一个初级级别的资源,适合初学者入门...

    VC++实践与提高COM和COM+篇

    学习和掌握COM和COM+对于深入理解Windows应用程序的开发和系统级组件的集成至关重要。通过VC++的实践,开发者可以构建高效、可复用的组件,提高软件的开发效率和质量。在实际工作中,了解COM和COM+技术,可以帮助...

    COM+编程 (COM+ PROGRAMMING)

    COM+(Component Object Model Plus)是微软提出的一...通过深入理解和熟练运用这些知识点,开发者可以构建出高效、可靠的企业级应用,充分利用COM+提供的服务,如事务处理、安全性等,来提升系统的整体性能和稳定性。

    COM+编程参考 COM+开发人员参考库之第2卷

    总的来说,"COM+编程参考 COM+开发人员参考库之第2卷"应该是一本深入探讨COM+技术的宝典,涵盖了从基础概念到高级特性的全方位内容,对于想深入理解并使用COM+的开发者来说,是不可或缺的参考资料。

    delphi com+入门实例

    COM+是微软Windows操作系统中的一种组件服务技术,它在COM(Component Object Model)的基础上扩展了分布式计算的...这个入门实例是一个很好的起点,通过实践,你可以深入理解COM+的各种服务和Delphi的组件开发能力。

    C# COM+ Programming

    `C# COM+ Programming(英文).pdf`可能包含了C#编写COM+组件的实例代码,通过阅读和实践可以深入理解COM+编程。 10. **资源链接**:`codepub.com说明.txt`和`源码网.url`可能是指向更多学习资源或示例代码的链接,...

    Visual+C++实践与提高COM和COM+篇+随书源码

    《Visual C++实践与...总之,《Visual C++实践与提高:COM和COM+篇》是一本深入浅出的教程,结合随书源码,读者可以全面理解并掌握COM和COM+的核心技术和实际应用,对于提升在Windows平台上的软件开发能力大有裨益。

Global site tag (gtag.js) - Google Analytics