Microsoft Transaction Server
Microsoft Transaction Server(MTS)は、他のアプリケーションに容易にトランザクションを実装しサポートするサービスコンポーネントである。
従って、クライアントがMTSコンポーネントを呼び出すと、ラッパー(Factory と Object)が常にそれを横取りし、独自のインスタンス管理アルゴリズム Just In Time Activation (JITA) を呼び出しに注入する。そしてラッパーが実際のMTSコンポーネントを呼び出す。
さらに、コンポーネントの展開属性の情報に基づき、それらラッパーオブジェクト内でトランザクションロジックとセキュリティチェックも行われる。
MTSコンポーネントそれぞれに対応して、IObjectContext インタフェースを実装した Context オブジェクトが存在する。Context オブジェクトは、トランザクションに関する情報、セキュリティ情報、展開情報など、そのコンポーネントに固有の情報を保持する。MTSコンポーネントは IObjectContext インタフェースを通して Context オブジェクトを呼び出す。
MTSでは、クライアントからの呼び出しがコンテナに到達して初めて中間層の実際のMTSコンポーネントが生成される。コンポーネントは常に動作しているわけではないので、システムリソースを浪費しない(ただし、ラッパーとスケルトンは常に動作している)。