DCOM(分布式コンポーネントオブジェクトモデル)原理の浅い分析(一)


(分散コンポーネントオブジェクトモデル)は、マイクロソフトの概念とプログラムインタフェースの一連であり、このインタフェースを利用して、クライアントプログラムオブジェクトがネットワーク内の別のコンピュータ上のサーバプログラムオブジェクトを要求することができる.DCOMはコンポーネントオブジェクトモデル(COM)に基づいており、COMは同じコンピュータ上のクライアントとサーバとの間で通信を可能にするインタフェース(Windows 95以降のバージョンで実行)を提供している.
DCOM(分散コンポーネントオブジェクトモデル、分散コンポーネントオブジェクトモデル)は、マイクロソフトの概念とプログラムインタフェースの一連であり、このインタフェースを利用して、クライアントプログラムオブジェクトがネットワーク内の別のコンピュータ上のサーバプログラムオブジェクトから要求することができる.DCOMはコンポーネントオブジェクトモデル(COM)に基づいており、COMは同じコンピュータ上のクライアントとサーバとの間で通信を可能にするインタフェース(Windows 95以降のバージョンで実行)を提供している.
MicrosoftDistributed Component Object Model(DCOM)は、ローカルエリアネットワーク、広域ネットワーク、インターネット上で実行されているかにかかわらず、異なる2つのマシン上のコンポーネント間の通信をサポートするComponent Model(COM)の拡張です.DCOMを使用すると、アプリケーションは任意に空間分布を行うことができます.
DCOMはCOMというコンポーネント技術のシームレスなアップグレードであるため、既存のCOMに関する知識から利益を得ることができ、以前COMで開発したアプリケーション、コンポーネント、ツールは分散環境に移行することができます.DCOMは、最下位のネットワークプロトコルの詳細を遮断し、アプリケーションに集中するだけです.
 
COMはすでに単純な技術とプログラミング規範ではなく、研究開発思想であり、ここではCOMとDCOM思想を徐々に分析し、分布式システムの殿堂に導く.
今回は、COMオブジェクトの辞書オブジェクトを作成するCreateObject関数について説明します.
/*
CreateObject        ,      IUnknown     ,  QueryInterface    IDicitionary    ,  IDictionary               
*/
BOOL CreateObject(const CLSID& clsid, const IID& iid, void** ppv)
{
	hModual = LoadLibrary("DictComp.dll");
	if(NULL == hModual)
	{
		return FALSE;
	}
	
	typedef BOOL(_stdcall* MyFunctionType)(const CLSID& clsid, const IID& iid,void **ppv);
	MyFunctionType fnCreateObject;
	fnCreateObject = (MyFunctionType)GetProAddress(hModual, "CreateObject");
	if(NULL == fnCreateObject)
	{
		FreeLibrary(hModual);
		return FALSE;
	}
	return fnCreateObject(clsid,iid, ppv);
}