Java と COBOL の相互運用オプション

Enterprise Developer は、COBOL と Java を統合できるさまざまな方法を提供します。一部の方法では、既存のアプリケーションの変更を必要とする場合があります。特定のタイプのアプリケーションには、一部の方法が他より適切である場合があります。本トピックでは、それぞれの方法について概説し、選択する方法に影響する各種要素についてまとめます。

EJB と Java Bean に対する Enterprise Server のサポート

Enterprise Server は、COBOL アプリケーション用のアプリケーション サーバーです。Enterprise Server は、高いパフォーマンスとメインフレーム サブシステム エミュレーションを提供します。

Enterprise Developer の Interface Mapping Toolkit 機能 (IMTK) を使用して、Enterprise Server で動作する COBOL アプリケーションにアクセスする、EJB または J2SE Bean を生成します。次にこの Bean が、Java アプリケーション サーバーにディプロイされた JCA リソース アダプターを使用します。

制約事項:
  • COBOL アプリケーションから直接 Java クラスにアクセスすることはできません。

詳細については、「Tutorial: Interface Mapping Toolkit」を参照してください。

COBOL、Java Domain、および Java Native Interface (JNI) の使用

以下のシナリオは、最も高いパフォーマンスを必要とするデスクトップ アプリケーションに最適です。COBOL は、Enterprise Server ランタイムでネイティブ コードとして実行されます。COBOL と Java を同時に使用するには、提供されたサポート ライブラリを使用して呼び出しをコーディングします。

以下に示すのは、Java 2 Standard Edition (J2SE) と COBOL を統合する方法です。

  • Java からの手続き型 COBOL の呼び出し - com.microfocus.cobol.RuntimeSystem クラスのサポート関数を使用します。このクラスは CobolBean クラスを含むように拡張されています。RuntimeSystem クラス サポートによって、手続き型 COBOL から JNI (Java Native Interface) 経由で Java を呼び出すことも可能です。
  • オブジェクト指向 COBOL からの Java の呼び出し - INVOKE 文を介してオブジェクト指向 COBOL の Java オブジェクト ドメインを使用します。
  • Java からのオブジェクト指向 COBOL の呼び出し - クラス ウィザードを使用して、オブジェクト指向 COBOL クラス内の各メソッドに対応する関数を含む Java ラッパーを作成します。「ラッパー クラス」を参照してください。

詳細は、「関連情報」を参照してください。

以下に示すのは、各シナリオでサポートされている技術と、アプリケーションを Java と統合するメカニズムのまとめです。

表 1. COBOL および Java 統合オプション
Enterprise Server Java バイト コード COBOL Java ドメイン
Java アプリケーション サーバー サポート あり。定評のあるアプリケーション サーバーはすべてサポートしています。「追加ソフトウェア要件」を参照してください。 あり。「追加ソフトウェア要件」を参照してください。 NetExpress では、使用できません。

EJB 標準に準拠していないため、Java アプリケーション サーバーでは JNI を使用しないことを推奨します。

データベース サポート ODBC、またはサポートされているデータベース ベンダー プリコンパイラ。 OpenESQL を使用する JDBC。 ODBC、またはサポートされているデータベース ベンダー プリコンパイラ。
デスクトップ Java アプリケーション 一般的な用途ではありません。 あり あり
EJB サポート あり あり なし
ファイル IO トランザクション あり。Fileshare を介して行います。 Fileshare は Java アプリケーション サーバーではサポートされていないため、利用できません。
注: Fileshare はデスクトップでサポートされています*
あり。Fileshare を介して行います。
Fileshare サポート あり なし あり
相互運用性メカニズムおよびパフォーマンス COBOL アプリケーションは、Enterprise Server でネイティブ コードとして実行されます。IMTK を使用して、EJB または J2SE bean を生成します。これは、COBOL コードにアクセスし、Java アプリケーション サーバーにディプロイされた JCA リソース アダプターを使用します。 COBOL アプリケーションは、Java が直接アクセスする Java バイト コードにコンパイルされます。 ネイティブ コードや Java として動作する COBOL アプリケーションは、JNI を使用してアクセスされます。
メインフレーム サブシステム サポート あり なし なし
JEE コンテナー マネージ トランザクション サポート あり。

アプリケーション サーバーと Java の間に、別個のデータベース接続がありますが、協調的なトランザクションはありません。

アプリケーション マネージ トランザクション サポートのみです。 アプリケーション マネージ トランザクション サポートのみです。
COBOL からの Java SDK アクセス なし あり。完全にサポートされています。 すべての Java 型は、INVOKE 文を使用してサポートされます。

JNI インターフェイスを通してネイティブ コールを使用する場合、追加コードを追加する必要があります。

Micro Focus クラス ライブラリを使用して、ユーザー定義型およびマッピングを作成できます。

Web サービス エンドポイント あり 直接ではありません。Java は、エンドポイントとして動作し、COBOL を呼び出す必要があります。 なし