このドキュメントでは、一般的な前提条件の概要を説明し、Natural リモートプロシージャコール(RPC)環境を実装するために Natural で使用できる機能について簡単に説明します。
次のトピックについて説明します。
RPC 環境を異なるプラットフォームに実装する場合、Natural for Mainframes、Windows、UNIX、または OpenVMS の対応する最新バージョンが必要になります。 また、次の必須またはオプションの製品、サブ製品、および機能を Natural RPC 環境で使用できます。
製品 | 目的 |
---|---|
EntireX Communicator(EntireX Broker) | Software AG 製品 EntireX Communicator の EntireX Broker は、通常、Natural クライアントと Natural サーバー間のミドルウェア層を確立します。 ACI プロトコルを使用し、適切なクライアント/サーバースタブで構成されます。 |
Entire Net-Work | この Software AG 製品は、EntireX Broker が使用するトランスポートメソッドが Entire Net-work である場合に必要です。 これは、推奨されるトランスポートメソッドです。 |
TCP/IP | EntireX Broker が使用するトランスポートメソッドが TCP/IP である場合に必要です。
「Natural RPC 環境の設定」の「トランスポートメソッドとしての TCP/IP の使用」も参照してください。 |
EntireX 開発者キット | EntireX Communicator 製品に含まれているこのキットは、Natural 以外のプログラミング言語サポートのために必要です。 |
ディレクトリサービス | リモートディレクトリサーバー(RDS)を使用すると、そのサービスを RPC 環境内の全クライアントが使用できるよう、1 つの場所にディレクトリ定義を定めることが可能となります。
RDS は、EntireX Broker が提供するロケーショントランスペアレンシを使用する場合に必要です。 |
Natural Security | オプション。
この Software AG アドオン製品は、クライアントでセキュリティがアクティブな場合に、Natural RPC サーバーおよびサービスを保護するためにサーバー側で必要です。その逆も同様です。 |
EntireX RPC | オプション。
Natural RPC は、EntireX RPC for 3GL を完全にサポートします。 EntireX RPC は、EntireX Communicator 製品に含まれています。 |
EntireX Security | オプション。
Natural RPC は、クライアント側およびサーバー側の EntireX Security を完全にサポートします。 EntireX Security は、EntireX Broker 製品に含まれています。 |
サポートされる Software AG 製品のバージョンについては、Natural for Mainframes の最新リリースノートの「Natural および他の Software AG 製品」を参照してください。
Natural RPC ベースの環境に関係する可能性がある他の製品の詳細については、該当する製品のドキュメントを参照してください。
次の Natural ステートメントが、Natural RPC 環境の作成に使用されます。
セクション「制限および制約事項」の「Natural ステートメントの動作」および「サーバーに対する Natural ステートメントの注意事項」には、これらのステートメントを Natural RPC 環境で使用するときに、これらのステートメントの異常な動作について知っておく必要があることが記載されています。
次の Natural ユーティリティが、Natural RPC 環境の作成および管理に使用されます。
SYSRPC
このユーティリティは、リモートプロシージャコール環境を管理するために使用されます。
このユーティリティは、現在のシステムライブラリ SYSEXT
に含まれる Natural アプリケーションプログラミングインターフェイス(API。以下を参照)を配置およびテストするために使用されます。
メインフレームでは、このユーティリティは、プロファイル名を付けて保存される Natural プロファイルパラメータセットを作成および管理するために使用されます。
コンフィグレーションユーティリティ
Windows、UNIX、および OpenVMS では、このユーティリティは、グローバルおよびローカルコンフィグレーションファイルを変更し、パラメータファイルを作成および変更するために使用されます。
Natural アプリケーションプログラミングインターフェイス(API)の目的は、Natural ステートメントではアクセス不可能な情報の検索や修正、またはサービスを使用することにあります。
Natural ライブラリ SYSEXT
で使用可能な次のアプリケーションプログラミングインターフェイスは、Natural RPC での使用が想定されています。
API | 目的 |
---|---|
USR1071N |
Natural RPC のユーザー ID、パスワード、およびチケット基準を設定できます。
「Security の使用」を参照してください。 |
USR2007N |
リモートプログラムをサービスディレクトリ経由でアドレスできないときに使用されるデフォルトのサーバーアドレスを指定できます。
「Natural RPC 環境の運用」の「Natural セッション内のデフォルトサーバーアドレスの指定」を参照してください。 |
USR2032N |
クライアント側での CLOSE CONVERSATION ステートメントのコミットをサポートします。 呼び出されると、この API により、個々の会話の終了時に暗黙的な END TRANSACTION が生じます。
「Natural RPC について」の「データベーストランザクション」の「会話型 CALLNAT」セクションを参照してください。 |
USR2035N |
EntireX Broker への TCP/IP 通信のために Secure Socket Layer(SSL)が使用される場合に、必要な SSL パラメータ文字列を設定できます。
「Natural RPC 環境の運用」の「Secure Socket Layer の使用」を参照してください。 |
USR2071N |
Natural Security 以外のクライアントの場合に、サーバーに渡されるログオンデータを指定するために呼び出す必要があります。 「Security の使用」の「Natural Security での Natural RPC の使用」を参照してください。 |
USR2072N |
プロファイルパラメータ RPC またはパラメータマクロ NTRPC のキーワードサブパラメータ SRVUSER とともに LOGON に使用されるパスワードを指定できます。
「Security の使用」の「サーバー側」の「EntireX Security での Natural RPC の使用」セクションを参照してください。 |
USR2073N |
アプリケーション内から RPC サーバーを ping または終了できます。
「Natural RPC サーバーの終了」の「アプリケーションプログラミングインターフェイス USR2073N の使用」を参照してください。 |
USR2074N |
Natural RPC サービス要求によって、RPC サーバーの Natural Security パスワードを変更できます。
「Security の使用」の「パスワードの変更」を参照してください。 |
USR2075N |
アプリケーション内から EntireX Broker サービスを終了できます。
「EntireX Broker サービスの終了」の「アプリケーションプログラミングインターフェイス USR2075N の使用」を参照してください。 |
USR4008N |
クライアント側で、サーバーがログオンするライブラリの代替名を指定できます。
「Natural RPC 環境の運用」の「ログオンオプションの使用」を参照してください。 |
USR4009N |
Natural RPC クライアントまたはサーバー環境の EntireX のパラメータを設定/取得できます。
「Natural RPC 環境の運用」の「EntireX のパラメータの設定/取得」を参照してください。 |
USR4010N |
クライアント側で、サーバーのランタイム設定を取得できます。
「Natural RPC 環境の運用」の「サーバーのランタイム設定の取得」を参照してください。 |
USR6304N |
信頼性の高い Natural RPC の信頼性状態を設定/取得できます。
「Reliable RPC」の「Natural RPC クライアント側の Reliable RPC」を参照してください。 |
USR6305N |
Reliable RPC メッセージをコミットまたはロールバックできます。 この API は、Reliable RPC の状態が "クライアントコミット" に設定されている場合に必要です。
「Reliable RPC」の「Natural RPC クライアント側の Reliable RPC」を参照してください。 |
USR6306N |
現在 EntireX Broker にログオンしているユーザーの、すべての Reliable RPC メッセージのステータスを取得できます。
「Reliable RPC」の「Natural RPC サーバー側の Reliable RPC」を参照してください。 |
RPC 固有の API は、すべての値を混在モードでも受け入れます。 大文字変換は、プログラム例 USRnnnnP
(ソースオブジェクト)が、対応するサブプログラム USRnnnnN
を呼び出すために使用される場合にのみ行われます。 例外:パスワードを処理するすべての USRnnnnP
プログラムには、大文字小文字混在モードでパスワードを入力するオプションがあります。
各 API に一般的に指定される Natural オブジェクトタイプについては、Natural ユーティリティ SYSEXT
を参照してください。
このセクションでは、Software AG IDL のデータタイプ、グループ、配列、および構造の、Natural プログラミング言語への対応関係について説明します。 (EntireX ドキュメントの)「Software AG IDL File」に記載されている、すべての言語バインディングについて有効な、IDL データタイプに関する補記やヒントも参照してください。
下の表では、IDL に対して、次のメタ記号およびプレースホルダが使用されています。
メタ記号 [ および ] で囲まれているのはオプションの字句エンティティとなります。
プレースホルダ number(場合によっては number.number)は、一連の数字を示します。例:123。
Software AG IDL | 説明 | Natural データフォーマット | 注 |
---|---|---|---|
Anumber | 英数字 | Anumber | |
AV | 英数字変数長 | A DYNAMIC | |
AVnumber | 最大長指定付き英数字変数長 | A DYNAMIC | |
Bnumber | バイナリ | Bnumber | |
BV | バイナリ変数長 | B DYNAMIC | |
BVnumber | 最大長指定付きバイナリ変数長 | B DYNAMIC | |
D | 日付 | D | 3,5 |
F4 | 浮動小数点(小) | F4 | 2 |
F8 | 浮動小数点(大) | F8 | 2 |
I1 | 整数(小) | I1 | |
I2 | 整数(中) | I2 | |
I4 | 整数(大) | I4 | |
Knumber | 漢字 | Anumber | 1 |
KV | 漢字変数長 | A DYNAMIC | 1 |
KVnumber | 最大長指定付き漢字変数長 | A DYNAMIC | 1 |
L | 論理 | L | |
Nnumber[.number] | アンパック小数 | Nnumber[.number] | |
NUnumber[.number] | 符号なしアンパック小数 | Nnumber[.number] | |
Pnumber[.number] | パック小数 | Pnumber[.number] | |
PUnumber[.number] | 符号なしパック小数 | Pnumber[.number] | |
T | 時刻 | T | 3,4 |
numberU | Unicode | numberU | |
UV | Unicode 変数長 | U DYNAMIC | |
UVnumber | 最大長指定付き Unicode 変数長 | U DYNAMIC |
(『EntireX』ドキュメントの)「Software AG IDL Data Types」に記載されている、すべての言語バインディングに有効なヒントや制限事項も参照してください。
データタイプ K は、RPC 固有のデータフォーマットで、Natural 言語の一部ではありません。
浮動小数点データタイプが使用された場合は、丸めが原因でエラーが発生する場合があるため、送信側と受信側で値が多少異なることがあります。 このことは、特に、使用している浮動小数点データ表現(IEEE、HFP)がクライアントとサーバーで異なる場合に当てはまります。
AD(紀元後の西暦)の日数のカウント。 有効な範囲は 1.1.0001~28.11.2737 です。 数値から 1.1.0001 以降の全日付範囲への対応関係は、ユリウス暦およびグレゴリオ暦に従い、以下のルールを考慮します。
4 で割り切れる年は閏年です。
100 で割り切れる年は、次の規則 3 が該当する場合を除き、閏年ではありません。
400 で割り切れる年は閏年です。
西暦 1582 年より前は、ユリウス暦の規則 1 が使用されます。 西暦 1582 年以降は、グレゴリオ暦の規則 1、2、および 3 が使用されます。
パック型の数値と実際の日付との関係については、次の表を参照してください。
日付/日付の範囲 | 値/値の範囲 |
---|---|
1.1.0000 | 0(特別な値 - 日付なし) |
未定義の日付 | 1~364(使用しないでください) |
1.1.0001 | 365 |
1.1.1970 | 719527(日付カウント機能の始点) |
28.11.2737 | 999999(上限の日付) |
AD(紀元後の西暦)の 1/10 秒のカウント。 有効な範囲は 1.1.0001 00:00:00.0~16.11.3168 9:46:39 + 0.9 秒です。 パック型の数値と実際の時刻との関係については、次の表を参照してください。
時刻/時刻の範囲 | 値/値の範囲 |
---|---|
1.1.0000 00:00:00.0 | 0(特別な値 - 日付なし) |
未定義の時刻 | 1 - 315359999 |
1.1.0001 00:00:00.0 | 315360000 |
1.1.1970 00:00:00.0 | 621671328000(時間カウント機能の始点) |
パック型数値と日時データタイプとの関係は、次のとおりです。
1 日に含まれる 1/10 秒数 = 24*60*60*10 = 864000
時刻数 | = 日付数 | * 864000 |
315360000 | = 365 | * 864000 1.1.0001 00:00:00.0 |
621671328000 | = 719527 | * 864000 1.1.1970 00:00:00.0 |
日付数 | = 時刻数 | / 864000 |
365 | = 315360000 | / 864000 1.1.0001 |
719527 | = 621671328000 | / 864000 1.1.1970 |
IDL ファイルに指定されているライブラリ名は、Natural ではサポートされません。 デフォルトで、Natural クライアントはライブラリ名 SYSTEM
をサーバーに送信します。 クライアントからサーバーへ SYSTEM
以外のライブラリ名を送信するには、クライアントで次の手順を実行する必要があります。
クライアントからサーバーへ SYSTEM
以外のライブラリ名を送信するには
クライアントでログオンオプションをオンにします。
アプリケーションプログラミングインターフェイス USR4008N
を呼び出し、ライブラリ名を指定します。このようにしない場合は、現在のライブラリの名前が送信されます。
ライブラリ名の最大長は 8 文字です。
プログラム名はクライアントからサーバーへ送信されます。 特殊文字は置き換えられません。 プログラムのエイリアスはサーバーに送信されません。
生成された Natural インターフェイスオブジェクト(スタブサブプログラム)は同じ名前になります。
RPC サーバーでは、送信された IDL プログラム名が Natural サブプログラムの特定に使用されます。
プログラム名の最大長は 8 文字です。
IDL ファイルのパラメータデータ定義に指定されているパラメータ名は、生成された Natural インターフェイスオブジェクト(スタブサブプログラム)の生成名で置き換えられます。
『EntireX』ドキュメントのセクション「Software AG IDL Grammar」の「parameter-data-definition」を参照してください。
IDL ファイルに含まれる固定サイズ配列は、固定サイズの Natural 配列になります。 下限は 1 に設定され、上限は IDL ファイルに指定されている上限に設定されます。
IDL ファイルに固定サイズ配列を記述して固定境界の配列の添字を参照する構文については、「array-definition」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。
IDL ファイルに含まれる境界なし配列は、Natural X-array になります。 下限は常に固定で 1 に設定されます。
IDL ファイルに境界なし配列を記述して境界なし配列の添字を参照する構文については、「array-definition」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。
注意:
Natural 可変配列(Natural 表記 (../1:V))は、Natural RPC サーバー側で Natural 固定サイズ配列または X-array の代わりに使用できます。 RPC クライアントでは、このような Natural 可変配列を使用して、IDL
固定サイズ配列または IDL 境界なし配列のいずれかを Natural RPC サーバーに渡すことができます。 RPC サーバーでは、可変配列のサイズを変更できません。つまり、配列オカレンス数は変更できず、Natural RPC サーバーは常に同じ数のオカレンスを返します。
IDL ファイルに含まれるグループは、Natural グループになります。 IDL ファイルにグループを作成する構文については、「group-parameter-definition」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。
IDL ファイルに含まれる構造は、Natural グループになります。 IDL ファイルに構造を作成する構文については、「structure-definition」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。
IDL 構文では、パラメータを IN パラメータ、OUT パラメータ、または INOUT パラメータ(指定がない場合のデフォルト)として定義できます。 この方向指定は、Natural に次のように反映されます。
OUT
属性を持つパラメータは、RPC クライアントから RPC サーバーへ送信されます。 このようなパラメータは参照渡しで指定されます。
IN
属性を持つパラメータは、RPC サーバーから RPC クライアントへ送信されます。 このようなパラメータは参照渡しで指定されます。
INOUT
属性を持つパラメータは、RPC クライアントから RPC サーバーへ送信され、その後、RPC クライアントに返されます。
最上位フィールド(レベル 1)の方向情報のみが関係します。 グループフィールドは、常に親の指定を継承します。 異なる指定は無視されます。
IDL ファイルに属性を記述して direction-attribute を参照する構文については、「attribute-list」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。
注意:
インターフェイスオブジェクトレイアウトを Natural アプリケーション SYSRPC
に定義する場合、方向属性 IN および OUT は IDL での記述に対して反転されます。
SYSTRPC
での IN
は IDL での OUT
SYSTRPC
での OUT
は IDL での IN
ALIGNED
属性は、Natural プログラミング言語とは関係ありません。 ただし、Natural クライアントは必要に応じて ALIGNED
属性を RPC サーバーに送信できます。 このことを実行するには、IDL ファイルを基に生成された Natural インターフェイスオブジェクト(スタブサブプログラム)が必要です。
IDL ファイルで属性を記述して aligned-attribute を参照する構文については、「attribute-list」(『EntireX』ドキュメントの「Software AG IDL Grammar」)を参照してください。
IDL 構文で定義できるのはプロシージャのみです。 IDL 構文に関数という概念はありません。 関数とは、パラメータの他に値を返すプロシージャです。 プロシージャおよび関数は、クライアントとサーバーとの間で透過的です。 つまり、関数を使用するクライアントは、プロシージャとして実装されているサーバーを呼び出すことができ、その逆も可能です。
Natural RPC では関数がサポートされていません。