バージョン 6.3.3
 —  オペレーション  —

NaturalX サーバー

このドキュメントでは、次のトピックについて説明します。


COM クラスとサーバー

各 COM クラスは、サーバープロセスによってホストされる必要があります。 サーバープロセスは、管理および技術的な役割を数多く果たします。例えば、クラスおよびそのインターフェイスを DCOM で使用可能にしたり、作成されたオブジェクトによって占有されているメモリを管理したりします。 クライアントが特定クラスの新しいオブジェクトを要求するたびに、DCOM は対応するサーバープロセスがすでに実行されているかどうかをチェックします。 実行されていない場合は、DCOM はサーバープロセスを開始し、要求をサーバーに渡します。 サーバーが起動すると、そのクラスが DCOM で使用可能になります。 稼働中のサーバーは、クライアント要求を実行して、オブジェクトを作成または削除したり、メソッドを実行したりします。 サーバーで管理していた最後のオブジェクトが削除されると、サーバーは自動的にシャットダウンします。 DCOM クラスとサーバーの詳細については、Microsoft DCOM 仕様を参照してください。

Top of page

NaturalX クラスとサーバー

Natural で実装されたクラスは、DCOM クラスとしてアクセスできます。 ただし、Natural では、クラスをホストするために DCOM サーバーを実装する必要はありません。 代わりに、NaturalX 自体が DCOM サーバーのタスクを実行します。 NaturalX は、Natural で記述されたすべてのクラス用の汎用 DCOM サーバーとして動作します。 Natural クラス開発者が行うタスクは、クラスを実装し、それらを NaturalX サーバーに割り当てるだけです。

Top of page

Windows での NaturalX サーバーと Natural セッション

Windows では、各 Natural セッションはそれ自体の排他的な NaturalX サーバープロセスで実行されます。

Sessions and server processes

Top of page

サーバー ID の役割

DCOM サーバーのタスクの 1 つは、起動時にそのクラスを DCOM で使用可能にすることです。 NaturalX は汎用 DCOM サーバーとして動作するので、NaturalX には提供するクラスの情報は組み込まれていません。 代わりに、システムレジストリでサーバー ID のキーの下にあるクラスリストを確認します。 サーバー ID はシステムレジストリ内に Natural が所有するキーであり、特定の NaturalX サーバーに属するすべてのクラスがまとめられています。 これは 32 文字の任意の英数字文字列で、空白を含まず、大文字と小文字は区別されません。

NaturalX サーバーは、実行に使用しているサーバー ID をどのように認識するのでしょうか。 サーバー ID は、Natural パラメータ COMSERVERID で定義されます。 このパラメータは、ダイナミックパラメータとして NaturalX サーバーに渡されるか、Natura パラメータファイルに定義されます。

クラスはどのようにサーバー ID に割り当てられるのでしょうか。 あるサーバー ID で Natural が起動されたとします。 この Natural セッション中にユーザーが登録するクラスはすべて、このサーバー ID でシステムレジストリに入力されます。

サーバー ID は、Natural で作成されたクラスを分類して各 NaturalX サーバープロセスに割り当てるのに使用されます。 ただし、サーバー ID の使用は必須ではありません。サーバー ID なしで Natural を起動した場合は、すべての Natural クラスは事前定義されたサーバー ID "Default" で登録されます。

サンプルの Employees アプリケーションは、クラス DepartmentListEmployeesList、および Employee で構成されています(このアプリケーションは、サンプルライブラリ SYSEXCOM にあります)。 これらの 3 つのクラスは、Employees という名前の NaturalX サーバーによってホストされます。

  1. 任意のサーバー ID を使用して Natural を起動します。

  2. ライブラリ SYSEXCOM にログオンします。

    LOGON SYSEXCOM
  3. Natural コマンド行に REGISTER コマンドを入力してクラスを登録します。

    REGISTER *

これで、3 つのクラスはサーバー ID "Employees" で登録されました。

これらのクラスのオブジェクトが要求されるたびに、DCOM はサーバー ID "Employees" で NaturalX サーバープロセスを開始し、クラスを提供します。

Top of page

サーバー ID の編成

サーバー ID は、対応する NaturalX サーバーの開始時に DCOM で使用可能になるすべてのクラスの集合を表しています。 業務の観点から 1 つのアプリケーションを形成するクラスや、論理的に同属のクラスは、同じサーバー ID でグループ化することをお勧めします。 同様に、絶対に同じコンテキストで使用されないクラスは、異なるサーバー ID で登録することをお勧めします。 サーバー ID へのクラスの割り当てでは、セキュリティも基準にします(「NaturalX でのセキュリティ」を参照)。 この点から、共通の権限が定義されるクラスを同じサーバー ID でグループ化することは意味があります。

Top of page