使用 COM+ 参数化对象结构编程技术

原创 2001年02月23日 10:24:00

使用 COM+ 参数化对象结构编程技术

关键词:Delphi控件杂项

使用 COM+ 参数化对象结构编程技术
一、引言
    COM+ 服務技術的一個核心理念就是系統本身提供完成許多面向企業應用開發者的通用基本模組(如線程

、物件資源池管理、事務服務管理、事件服務管理等),讓系統設計人員把精力集中在企業應用本身的業務

邏輯上。
    COM+提供了許多新的服務和一致的管理運行環境,它還支援申明性編程模型(declarative programming

model),也就是說,開發人員可以按盡可能通用的方式開發元件程式,把一些細節留到配置時刻再確定。例

如,在開發一個COM+元件,它支援事務處理特性,但是我們在開發元件的時候,並不確定它是否使用事務處

理特性,而把是否支援事務處理特性留待配置時刻再作決定。有的應用可能會需要事務處理特性,而有的應

用可能並不需要,我們可以通過COM+管理程式配置元件的屬性來決定元件是否支援事務處理特性。MTS安全模

型實際上是一個典型的申明性編程技術,它把元件的安全角色資訊留到配置時刻再給出確切的定義,而非編

程時刻。COM+繼承了MTS的安全模型。
    利用COM+的服務和管理工具,開發一個COM+元件要比開發一個COM元件容易得多,因爲COM+元件實際上是

建立在COM+系統服務基礎上的應用程式,我們可以避免底層繁瑣的細節處理,如多線程的並發處理。通過

COM+系統服務,在獲得可靠性的同時,也使的元件和應用程式更趨於標準化,在更廣泛的範圍內體現元件或

者應用的多態性。
    COM+ 的推出终于有机的统一了 COM/DCOM/MTS 的编程模式,使得我们不需要区分我们编写的是什么类型

的COM 对象,所编写的对象既是 COM 对象也是 COM+对象;在 COM+ 中物件環境和截取(intercept) 技術都

被合併到標準的 COM代理/存根中,所以可以通過標準得 CoCreateInstance 方法來創建物件,並且通過

CreateInstance方法創建的MTS 元件同樣可以在COM+ 正常運行和完全相容。

二、参数化 COM+ 对象结构
    在COM+ 中引入了许多新的服务何功能,参数化对象结构就是其中一项功能。本功能是用来实现为COM+对

象创建提供一个字串参数,组件对象通过IObjectConstruct接口来查询管理员配置的字串参数。参数化对象

结构的一个典型用途就是可以应用到程序中作为 ADO 的连接字串参数。
    IObjectConstruct 让的方法或对象通过参数来控制相关对象处理功能,我们必须使用接口对象来实现此

接口,当管理员将组件对象的对象结构配置参数设置有效后,COM+ 将调用 IObjectConstruct.Construct 通

过IObjectConstructString来获取参数化 COM+ 对象结构中的字串参数。
    IObjectConstructString 接口用来存取建立者字符串。本对象是一个Automation COM 对象,但无须通

过接口对象来实现他,COM+ 支持在调用 IObjectConstruct.Construct 时暴露此对象。
    如何为元件输入对象结构字串。
    1、在组件管理器中选取相应的组件,右键弹出快捷菜单,然后点击属性
    2、在组件属性对话框,点击激活属性页。
    3、使能对象结构,输入建立者字符串(例如一个 ADO 连接字串)。

三、程序实现

    实现COMPlusServer
   
    1、Import Type library->COM+ Services Type Library->Create Unit
    2、建立一个新的 ActiveX Library Project
    3、创建一个新的 MTS Data Module
    4、到 Type Library 中选取 Project->Uses->点击右键选择 Show All Type Library->选择COM+

Services Type Library
    5、选择 COM 的接口对象->Implements->点击右键选择 Insert Interface ->IObjectConstruct
    6、在接口中定义一个新的的方法-> GetConString
    7、到组件对象实现单元中实现以下代码:
  private
    { Private declarations }
    objSonStr: IObjectConstructString;
    StrDemo: WideString;

function TXXXServer.Construct(const pCtorObj: IDispatch): HResult;
begin
  pCtorObj.QueryInterface(IID_IObjectConstructString, objSonStr);
  StrDemo := objSonStr.Get_ConstructString;
end;

procedure TXXXServer.GetConString;
begin
  if trim(StrDemo) = '' then
    ShowMessage('没有字串')
  else
    ShowMessage(StrDemo);
end;

    客户端程序
    客户端程序是最一般化的 Delphi 代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
  DCOMConnection1.AppServer.GetConString;
end;

 

使用 COM+ 参数化对象结构编程技术

2001年02月23日 10:24:00 使用 COM+ 参数化对象结构编程技术关键词:Delphi控件杂项使用 COM+ 参数化对象结构编程技术一、引言 COM+ 服務技術的一個核心理...
  • softart
  • softart
  • 2007年10月27日 07:53
  • 269

使用COM+参数化对象结构编程技术

使用COM+参数化对象结构编程技术 一、引言COM+ 服務技術的一個核心理念就是系統本身提供完成許多面向企業應用開發者的通用基本模組(如線程、物件資源池管理、事務服務管理、事件服務管理等),讓系統設計...
  • zou5655
  • zou5655
  • 2001年07月24日 15:19
  • 601

使用 COM+ 参数化对象结构编程技术

  • zgqtxwd
  • zgqtxwd
  • 2008年04月30日 21:17
  • 121

参数化的函数对象

#include "stdafx.h" #include #include #include #include using namespace std; class student { p...
  • sichuanpb
  • sichuanpb
  • 2017年03月22日 10:46
  • 178

QTP针对对象的参数化实例

参考文章地址:http://www.51testing.com/?26649/action_viewspace_itemid_608.html     在自动化测试当中,有时为了模拟真实效果,或者为...
  • achang21
  • achang21
  • 2013年09月15日 10:16
  • 745

QTP虚拟对象

最近在跑qtp,各种头疼,遇到好多问题,解决了不少,还有一些等待着解决,先来说一下已经解决的吧。 在录制qtp时,有些控件可能不被qtp支持,则可以考虑使用虚拟对象来解决问题,当然还有其他的方法,但...
  • w_y_loong
  • w_y_loong
  • 2012年06月26日 14:04
  • 2081

Java学习系列(十九)Java面向对象之数据库编程

JDBC(Java Data Base Connectivity:java数据库连接):它定义了一组标准的操作数据库的接口,既然是接口,那它就是一种规范,是Java操作数据库的技术规范。 Java数据...
  • JAVE_LOVER
  • JAVE_LOVER
  • 2013年11月26日 15:46
  • 2270

com 与com+加是有什么区别

COM的产生         在以前程序设计过程中,程序员把它们的函数库放在一个叫做目标(Object)文件的单独文件中,在这些文件中,包含了编译过的代码。当程序员要使用一个特别的目标文件的时...
  • guomei
  • guomei
  • 2007年06月23日 17:13
  • 618

COM+无法与Microsoft分布式事务协调程序交谈

此问题针对HTTP500内部错误解决方法中的第三步:[同步com+应用程序所用的IWAM_MACHINE的密码 ]而写因为无法完成第三步使得500的问题很难解决保证com+ 应用程序能正常运行一般情况...
  • zxzmww
  • zxzmww
  • 2007年08月15日 22:26
  • 3206

Jmeter中参数化的使用

在使用Jmeter进行接口测试时,如果提交的参数不变,那么就会读取缓存数据,无法测试出服务器真正的负载能力,所以要对提交的参数进行参数化来解决这一问题。在Jmeter中经常使用CSV Data Set...
  • zhangchaoy
  • zhangchaoy
  • 2017年02月26日 15:48
  • 3024
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用 COM+ 参数化对象结构编程技术
举报原因:
原因补充:

(最多只允许输入30个字)