ダウンロード サンプルファイル (92.1 KB)
この記事では、.NET Frameworkに用意されているさまざまなクラスやツールを使ってサービスコンポーネントを配置する方法を説明します。また、Windowsインストーラテクノロジを利用すると、サービスコンポーネントの配置を自動化するWindowsインストーラプロジェクトを簡単に作成できることも説明します。
はじめに
インターネットは数多くのネットワークアプリケーションが接続されることで成り立っていますが、このインターネットの世界で、Webサイトを訪れる数百万人のユーザーの要求に応えるべくWebアプリケーションをスケーラブルにしたいと思うのは当然のことです。COM+は、スケーラブルで、拡張性があり、保守可能な分散アプリケーションを作成するためのWindows DNA 2000アーキテクチャの中核要素です。ただし、.NETでは、COM+コンポーネントのことを「サービスコンポーネント」と呼んでいます。.NET戦略のたび重なる変更により、サービスコンポーネントの配置モデルは、従来のCOM+コンポーネントの配置方法とは異なっています。この記事では、.NET Frameworkに用意されている各種ツールを使ってサービスコンポーネントを配置する方法を学習します。また、配置モデルがサービスコンポーネントのタイプによってどう変わるかについても説明します。最後に、Windowsインストーラプロジェクトを使ってサービスコンポーネントの配置を自動化する方法を学習します。
Windows 2000のコンポーネントサービスは、エンタープライズアプリケーションのための機能を豊富に備えており、Web対応の分散アプリケーション開発に必要なすべての基本機能を提供します。COM+サービスはもともとCOMコンポーネントで使うために設計されたものですが、COM+ランタイムが提供するサービスは、オブジェクトプーリング、データベース接続プーリング、リソース共有、ロールベースセキュリティ、分散トランザクション処理の監視など、有益なものが多いので、.NETコンポーネントでも利用できれば便利です。
.NET Frameworkには、COM+サービスをアプリケーションに提供するために必要なすべてのクラスを含んだSystem.EnterpriseServicesという名前空間があります。COM+の概要については、TechNetの「Introduction to COM and COM+」を参照してください。
サービスコンポーネントのさまざまな配置方法の説明に入る前に、System.EnterpriseServices名前空間にある最も重要なクラスの1つ、ServicedComponentクラスについて説明しましょう。
ServicedComponent
COM+サービスを利用する.NETオブジェクトを作成するには、System.EnterpriseServices.ServicedComponentクラスからオブジェクトを派生する必要があります。このクラスは、COM+ランタイムとシームレスにやり取りするためのメソッドをオブジェクトに提供し、これによってオブジェクトはCOM+サービスを利用できるようになります。サービスコンポーネントの配置を説明するに当たって、サーバーアプリケーションとライブラリアプリケーションの違いを理解しておく必要があります。基本的に、COM+ライブラリアプリケーションは、そのライブラリアプリケーションを作成するクライアントのプロセスで実行されるのに対し、COM+サーバーアプリケーションは、COM+実行可能ファイル(dllhost.exe)のプロセス空間で実行されます。
サービスコンポーネントのさまざまな配置方法(前編)
COMコンポーネントをコンパイルすると、そのコンポーネントをCOM+にインストールするために必要な全情報を含んだタイプライブラリが作成されます。一方、.NETコンポーネントをコンパイルすると、マニフェスト、MSIL、メタデータなどを含んだアセンブリが作成されます。アセンブリは、タイプライブラリとはまったく異なるものです。そのため、アセンブリからタイプライブラリを作成し、アセンブリをCOM+にシームレスにインストールできるようする必要があります。
Windows 2000のコンポーネントサービスに.NETコンポーネントを配置するには、次の3とおりの方法があります。
- Regsvcsコマンドラインユーティリティを使う
- .NET Frameworkに用意されている自動登録メカニズムを使う
- System.EnterpriseServices名前空間の一部であるRegistrationHelperクラスを使う
RegistrationHelperクラスのInstallAssemblyメソッドを使って、コードからCOM+に.NETオブジェクトを登録することができます。アセンブリは、COM+に配置するだけでなく、次のいずれかの場所にも配置しなければなりません。
- クライアントアプリケーションのプライベートbinディレクトリ
- 共有の場所(GAC)
ライブラリアプリケーションにサービスコンポーネントを配置する場合は1つ目の配置方法(プライベート配置)を検討し、サーバーアプリケーションにサービスコンポーネントを配置する場合は2つ目の配置方法(GACに配置)を検討します。
サービスコンポーネントを使う前に、アセンブリに厳密に署名するためのキーファイルが必要です。キーファイルを生成するには、まず-kスイッチを使ってsn.exe(厳密名ユーティリティ)を実行します。この結果、公開/秘密キーのペアを含むファイルが作成されます。次に、公開/秘密キーのペアでアセンブリに署名し、「Assemblyinfo.cs」ファイルに<assembly: AssemblyKeyFile("..\\..\\LibraryApp.snk")>という行を追加します。
では、COM+ライブラリアプリケーションにサービスコンポーネントを配置する方法の説明から始めましょう。
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Thiru Thangarathinam(Thiru Thangarathinam)
オブジェクト指向アプリケーション開発方法論を用いたアプリケーションのアーキテクチャ設計、設計、開発、および実装に関して約6年の経験を持つ。ソフトウェアライフサイクル(設計、開発およびテスト)にも精通。ASP.NET、.NET Framework、Visual C#.NET、Visual Basic.NET、ADO.NET、XML Webサービス、および.NET Remotingのエキスパートであり、MCAD...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
