(57)【要約】  一実施形態に従うと、マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プログラムのマルチテナント実行をサポートするためのシステムおよび方法がここに記載される。例示的な方法は、複数のパーティションおよび複数のテナント認識型プログラムを提供することができる。複数のテナント認識型プログラムの各々はパーティションに関連付けられている。当該方法は、複数のパーティションの各々および複数のテナント認識型プログラムの各々を、複数のテナントのうちの１テナントに関連付けることができる。当該方法は、複数のパーティションのうちのコーリングパーティションからテナント非認識型プロセスを呼出すことができる。コーリングパーティションは、複数のテナントのうちのコーリングテナントに関連付けられている。当該方法は、コーリングテナントについてのテナンシ情報を収集することができる。さらに、収集されたテナンシ情報に基づいて、当該方法は、プロセス実行環境およびリソースを設定することにより、テナント非認識型プロセスの実行をコーリングテナントに範囲指定することができる。
2018536206.tif 000002
【特許請求の範囲】
【請求項１】
マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスの、テナント範囲指定された実行をサポートするための方法であって、
アプリケーションサーバ環境が実行されている１つ以上のコンピュータにおいて、
各々がドメインの管理および実行時間下位区分を備える複数のパーティションと、
複数のテナント認識型プログラムとを提供するステップを含み、前記複数のテナント認識型プログラムの各々は、前記複数のパーティションのうちの１パーティションに関連付けられており、前記方法はさらに、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々を、複数のテナントのうち１テナントによって使用されるように、前記１テナントに関連付けるステップと、
前記複数のパーティションのうちのコーリングパーティションから前記テナント非認識型プロセスを呼出すステップとを含み、前記コーリングパーティションは、前記複数のテナントのうちのコーリングテナントに関連付けられており、前記方法はさらに、
前記コーリングテナントについてのテナンシ情報を収集するステップと、
前記コーリングテナントについての収集された前記テナンシ情報に基づいて、テナント特有の仮想ファイルシステムを作成するステップと、
収集された前記テナンシ情報に基づいて、プロセス実行環境およびリソースを設定することによって前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップとを含み、前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップは、
前記テナント非認識型プロセスのストリームを前記テナント特有の仮想ファイルシステムにリダイレクトするステップを含み、前記テナント非認識型プロセスのストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも１つを含み、
実行を範囲指定するステップは、前記マルチテナント・ミドルウェア環境における他のテナントから前記コーリングテナントに範囲指定された前記テナント非認識型プロセスの実行を分離することを可能にする、方法。
【請求項２】
前記マルチテナント・ミドルウェア・アプリケーションは、前記複数のパーティションのうち前記コーリングパーティションに関連付けられており、前記マルチテナント・ミドルウェア・アプリケーションは、前記テナント非認識型プロセスを呼出すことに関連付けて前記テナンシ情報を渡す、請求項１に記載の方法。
【請求項３】
前記テナント特有の仮想ファイルシステム下にプロセス作業ディレクトリを作成するステップをさらに含み、前記プロセス作業ディレクトリは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項１または２に記載の方法。
【請求項４】
少なくとも１つのデータファイルで前記入力サブディレクトリを設定するステップと、
ウォレットで前記データベースサブディレクトリを設定するステップとを含み、前記ウォレットは、前記コーリングテナントに関連付けられた構成ファイルおよびクレデンシャルを含む、請求項３に記載の方法。
【請求項５】
前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスによってテナント特有のデータベースにアクセスするステップをさらに含み、アクセスは前記ウォレットを介して許可され、さらに、
前記テナント非認識型プロセスが完了し、前記テナント非認識型プロセスによってテナント特有のデータベースにアクセスするステップの後、前記テナント特有の仮想ファイルシステムをクリーンアップするステップを含み、前記テナント特有の仮想ファイルシステムをクリーンアップするステップは、前記プロセス作業ディレクトリを削除するステップを含む、請求項４に記載の方法。
【請求項６】
前記テナント非認識型プロセスの前記ストリームは、前記プロセス作業ディレクトリの前記入力サブディレクトリ、前記出力サブディレクトリおよび前記エラーサブディレクトリにそれぞれリダイレクトされる、請求項３から５のいずれか一項に記載の方法。
【請求項７】
前記複数のパーティションのうちの前記コーリングパーティションから呼出された前記テナント非認識型プロセスは複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうちの前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするためのシステムであって、
アプリケーションサーバ環境が実行されている１つ以上のコンピュータとともに、
各々がドメインの管理および実行時間下位区分を備える複数のパーティションと、
複数のテナント認識型プログラムとを含み、各々のテナント認識型プログラムは、前記複数のパーティションのうちの１つに関連付けられており、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々は、複数のテナントのうちの１テナントによって使用されるように、前記１テナントに関連付けられており、
前記複数のパーティションのうちのコーリングパーティションは前記テナント非認識型プロセスを呼出し、前記コーリングパーティションは、前記複数のテナントのうちのコーリングテナントに関連付けられており、
前記コーリングテナントについてのテナンシ情報が収集され、
テナント特有の仮想ファイルシステムは、前記コーリングテナントについての収集された前記テナンシ情報に基づいて作成され、
収集された前記テナンシ情報に基づいて、前記テナント非認識型プロセスの実行は、プロセス実行環境およびリソースを設定することによって前記１テナントに範囲指定され、前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップは、
前記テナント非認識型プロセスのストリームを前記テナント特有の仮想ファイルシステムにリダイレクトするステップを含み、前記テナント非認識型プロセスのストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも１つを含み、
前記テナント非認識型プロセスの実行を範囲指定するステップは、前記コーリングテナントに範囲指定された前記テナント非認識型プロセスの実行を前記マルチテナント・ミドルウェア環境における他のテナントから分離することを可能にする、システム。
【請求項９】
前記マルチテナント・ミドルウェア・アプリケーションは、前記複数のパーティションのうち前記コーリングパーティションに関連付けられており、前記マルチテナント・ミドルウェア・アプリケーションは、前記テナント非認識型プロセスを呼出すことに関連付けて前記テナンシ情報を渡す、請求項８に記載のシステム。
【請求項１０】
作業プロセスディレクトリは、前記テナント特有の仮想ファイルシステム下に作成され、前記プロセス作業ディレクトリは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項８または９に記載のシステム。
【請求項１１】
前記入力サブディレクトリは少なくとも１つのデータファイルで設定され、前記データベースサブディレクトリはウォレットで設定され、前記ウォレットは、前記コーリングテナントに関連付けられた構成ファイルおよびクレデンシャルを含む、請求項１０に記載のシステム。
【請求項１２】
前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスによって、前記ウォレットを用いて、テナント特有のデータベースにアクセスし、前記テナント特有の仮想ファイルシステムは前記テナント非認識型プロセスの完了後にクリーンアップされ、前記テナント特有の仮想ファイルシステムをクリーンアップすることは、前記プロセス作業ディレクトリを削除することを含む、請求項１１に記載のシステム。
【請求項１３】
前記テナント非認識型プロセスの前記ストリームは、前記プロセス作業ディレクトリの前記入力サブディレクトリ、前記出力サブディレクトリおよび前記エラーサブディレクトリにそれぞれリダイレクトされる、請求項１０から１２のいずれか一項に記載のシステム。
【請求項１４】
前記複数のパーティションのうち前記コーリングパーティションから呼出された前記テナント非認識型プロセスは複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうち前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項８から１３のいずれか一項に記載のシステム。
【請求項１５】
マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするための命令が格納された非一時的なコンピュータ読取り可能記憶媒体であって、前記命令は、１つ以上のコンピュータによって読出されて実行されると、前記１つ以上のコンピュータに、以下のステップを実行させ、前記以下のステップは、
アプリケーションサーバ環境が実行されている１つ以上のコンピュータにおいて、
各々がドメインの管理および実行時間下位区分を備える複数のパーティションと、
複数のテナント認識型プログラムとを提供するステップを含み、前記複数のテナント認識型プログラムの各々は、前記複数のパーティションのうちの１パーティションに関連付けられており、前記以下のステップはさらに、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々を、複数のテナントのうちの１テナントによって使用されるように、前記１テナントに関連付けるステップと、
前記複数のパーティションのうちのコーリングパーティションから前記テナント非認識型プロセスを呼出すステップとを含み、前記コーリングパーティションは、前記複数のテナントのうちのコーリングテナントに関連付けられており、前記１つ以上のステップはさらに、
前記コーリングテナントについてのテナンシ情報を収集するステップと、
前記コーリングテナントについての収集された前記テナンシ情報に基づいて、テナント特有の仮想ファイルシステムを作成するステップと、
収集された前記テナンシ情報に基づいて、プロセス実行環境およびリソースを設定することによって前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップとを含み、前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップは、
前記テナント非認識型プロセスのストリームを前記テナント特有の仮想ファイルシステムにリダイレクトするステップを含み、前記テナント非認識型プロセスのストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも１つを含み、
実行を範囲指定するステップは、前記マルチテナント・ミドルウェア環境における他のテナントから前記コーリングテナントに範囲指定された前記テナント非認識型プロセスの実行を分離することを可能にする、非一時的なコンピュータ読取り可能記憶媒体。
【請求項１６】
前記マルチテナント・ミドルウェア・アプリケーションは、前記複数のパーティションのうち前記コーリングパーティションに関連付けられており、前記マルチテナント・ミドルウェア・アプリケーションは、前記テナント非認識型プロセスを呼出すことに関連付けて前記テナンシ情報を渡す、請求項１５に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項１７】
前記以下のステップはさらに、
前記テナント特有の仮想ファイルシステム下にプロセス作業ディレクトリを作成するステップを含み、前記プロセス作業ディレクトリは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項１５または１６に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項１８】
前記以下のステップはさらに、
少なくとも１つのデータファイルで前記入力サブディレクトリを設定するステップと、
ウォレットで前記データベースサブディレクトリを設定するステップとを含み、前記ウォレットは、前記コーリングテナントに関連付けられた構成ファイルおよびクレデンシャルを含む、請求項１７に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項１９】
前記以下のステップはさらに、
前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスによって、テナント特有のデータベースにアクセスするステップを含み、アクセスは前記ウォレットを介して許可され、
前記テナント非認識型プロセスが完了し、前記テナント非認識型プロセスによってテナント特有のデータベースにアクセスするステップの後、前記テナント特有の仮想ファイルシステムをクリーンアップするステップを含み、前記テナント特有の仮想ファイルシステムをクリーンアップするステップは、前記プロセス作業ディレクトリを削除するステップを含む、請求項１８に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項２０】
前記テナント非認識型プロセスの前記ストリームは、前記プロセス作業ディレクトリの前記入力サブディレクトリ、前記出力サブディレクトリおよび前記エラーサブディレクトリにそれぞれリダイレクトされる、請求項１７から１９のいずれか一項に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項２１】
前記複数のパーティションのうち前記コーリングパーティションから呼出された前記テナント非認識型プロセスは、複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうち前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項１５から２０のいずれか一項に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項２２】
マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするための方法であって、
アプリケーションサーバ環境が実行されている１つ以上のコンピュータにおいて、
各々のパーティションがドメインの管理および実行時間下位区分を備える複数のパーティションと、
複数のテナント認識型プログラムとを提供するステップを含み、前記複数のテナント認識型プログラムの各々は、前記複数のパーティションのうちの１パーティションに関連付けられており、前記方法はさらに、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々を、複数のテナントのうちの１テナントによって使用されるように、前記１テナントに関連付けるステップと、
前記複数のパーティションのうちコーリングパーティションから前記テナント非認識型プロセスを呼出すステップとを含み、前記コーリングパーティションは、前記複数のテナントのうちコーリングテナントに関連付けられており、前記方法はさらに、
前記コーリングテナントについてのテナンシ情報を収集するステップと、
収集された前記テナンシ情報に基づいて、プロセス実行環境およびリソースを設定することによって前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップとを含み、前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップは、
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始するステップを含み、前記コンテナ化されたプロセスは、前記テナント非認識型プロセスに関連付けられたライブラリおよび実行ファイルを含み、
前記コンテナ化されたプロセスは、前記マルチテナント・ミドルウェア環境における他のテナントから前記コーリングテナントのための前記テナント非認識型プロセスの実行を分離することができるスタンドアロンのプロセスである、方法。
【請求項２３】
前記コーリングテナントについての収集された前記テナンシ情報に基づいて、テナント特有の仮想ファイルシステムを作成するステップをさらに含み、前記テナント特有の仮想ファイルシステムは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項２２に記載の方法。
【請求項２４】
前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスによって、テナント特有のデータベースにアクセスするステップをさらに含み、
前記テナント非認識型プロセスは、ウォレットを用いて、前記テナント特有のデータベースにアクセスする、請求項２２または２３に記載の方法。
【請求項２５】
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始するステップは、
コンテナ・デーモンによってアプリケーション画像にアクセスするステップを含み、前記アプリケーション画像は前記テナント非認識型プロセスに関連付けられており、さらに、
前記テナントに関連付けられたコンテナを作成するステップと、
前記コンテナ内の前記アプリケーション画像を開始するステップとを含む、請求項２２から２４のいずれか一項に記載の方法。
【請求項２６】
前記アクセスされたアプリケーション画像は、アプリケーション画像リポジトリに格納される、請求項２５に記載の方法。
【請求項２７】
前記アプリケーション画像のストリームは、前記テナント特有の仮想ファイルシステムにリダイレクトされ、前記アプリケーション画像のストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも１つを含む、請求項２５または２６に記載の方法。
【請求項２８】
前記複数のパーティションのうち前記コーリングパーティションから呼出された前記テナント非認識型プロセスは、複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうち前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項２２から２７のいずれか一項に記載の方法。
【請求項２９】
マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするためのシステムであって、
アプリケーションサーバ環境が実行されている１つ以上のコンピュータとともに、
各々がドメインの管理および実行時間下位区分を備える複数のパーティションと、
複数のテナント認識型プログラムとを含み、各々のテナント認識型プログラムは、前記複数のパーティションのうちの１つに関連付けられており、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々は、複数のテナントのうちの１テナントによって使用されるように、前記１テナントに関連付けられており、
前記複数のパーティションのうちコーリングパーティションは前記テナント非認識型プロセスを呼出し、前記コーリングパーティションは、前記複数のテナントのうちコーリングテナントに関連付けられており、
前記コーリングテナントについてのテナンシ情報が収集され、
収集された前記テナンシ情報に基づいて、プロセス実行環境およびリソースを設定することによって前記テナント非認識型プロセスの実行が前記１テナントに範囲指定され、
前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定することは、
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始することを含み、前記コンテナ化されたプロセスは、前記テナント非認識型プロセスに関連付けられたライブラリおよび実行ファイルを含み、
前記コンテナ化されたプロセスは、前記マルチテナント・ミドルウェア環境における他のテナントから前記コーリングテナントのための前記テナント非認識型プロセスの実行を分離することができるスタンドアロンのプロセスである、システム。
【請求項３０】
前記コーリングテナントについての収集された前記テナンシ情報に基づいて、テナント特有の仮想ファイルシステムが作成され、前記テナント特有の仮想ファイルシステムは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項２９に記載のシステム。
【請求項３１】
前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスは、ウォレットを用いて、テナント特有のデータベースにアクセスする、請求項２９または３０に記載のシステム。
【請求項３２】
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始することは、
コンテナ・デーモンからアプリケーション画像にアクセスすることを含み、前記アプリケーション画像は前記テナント非認識型プロセスに関連付けられており、さらに、
前記テナントに関連付けられたコンテナを作成することと、
前記コンテナ内の前記アプリケーション画像を開始することとを含む、請求項２９から３１のいずれか一項に記載のシステム。
【請求項３３】
前記アクセスされたアプリケーション画像は、アプリケーション画像リポジトリに格納される、請求項３２に記載のシステム。
【請求項３４】
前記アプリケーション画像のストリームは、テナント特有の仮想ファイルシステムにリダイレクトされ、前記アプリケーション画像のストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも１つを含む、請求項３２または３３に記載のシステム。
【請求項３５】
前記複数のパーティションのうち前記コーリングパーティションから呼出された前記テナント非認識型プロセスは複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうちの前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項２９から３４のいずれか一項に記載のシステム。
【請求項３６】
マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするための命令が格納された非一時的なコンピュータ読取り可能記憶媒体であって、前記命令は、１つ以上のコンピュータによって読出されて実行されると、前記１つ以上のコンピュータに以下のステップを実行させ、前記以下のステップは、
アプリケーションサーバ環境が実行されている１つ以上のコンピュータにおいて、
各々がドメインの管理および実行時間下位区分を備える複数のパーティションと、
複数のテナント認識型プログラムとを提供するステップを含み、前記複数のテナント認識型プログラムの各々は、前記複数のパーティションのうちの１パーティションに関連付けられており、前記以下のステップはさらに、
前記複数のパーティションの各々および前記複数のテナント認識型プログラムの各々を、複数のテナントのうちの１テナントによって使用されるように、前記１テナントに関連付けるステップと、
前記複数のパーティションのうちのコーリングパーティションから前記テナント非認識型プロセスを呼出すステップとを含み、前記コーリングパーティションは、前記複数のテナントのうちのコーリングテナントに関連付けられており、前記以下のステップはさらに、
前記コーリングテナントについてのテナンシ情報を収集するステップと、
収集された前記テナンシ情報に基づいて、プロセス実行環境およびリソースを設定することによって前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップとを含み、前記テナント非認識型プロセスの実行を前記コーリングテナントに範囲指定するステップは、
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始することを含み、前記コンテナ化されたプロセスは、前記テナント非認識型プロセスに関連付けられたライブラリおよび実行ファイルを含み、
前記コンテナ化されたプロセスは、前記マルチテナント・ミドルウェア環境における他のテナントから前記コーリングテナントのための前記テナント非認識型プロセスの実行を分離することができるスタンドアロンのプロセスである、非一時的なコンピュータ読取り可能記憶媒体。
【請求項３７】
前記以下のステップはさらに、
前記コーリングテナントについての収集された前記テナンシ情報に基づいて、テナント特有の仮想ファイルシステムを作成するステップを含み、前記テナント特有の仮想ファイルシステムは、入力サブディレクトリ、出力サブディレクトリ、データベースサブディレクトリおよびエラーサブディレクトリを含む、請求項３６に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項３８】
前記以下のステップはさらに、
前記テナント非認識型プロセスの完了後、前記テナント非認識型プロセスによってテナント特有のデータベースにアクセスするステップを含み、
前記テナント非認識型プロセスは、ウォレットを用いて、前記テナント特有のデータベースにアクセスする、請求項３６または３７に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項３９】
前記テナント非認識型プロセスをコンテナ化されたプロセスとして開始するステップは、
コンテナ・デーモンによってアプリケーション画像にアクセスするステップを含み、前記アプリケーション画像は前記テナント非認識型プロセスに関連付けられており、さらに、
前記テナントに関連付けられたコンテナを作成するステップと、
前記コンテナ内の前記アプリケーション画像を開始するステップとを含み、
前記アクセスされたアプリケーション画像は、アプリケーション画像リポジトリに格納される、請求項３６から３８のいずれか一項に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項４０】
前記アプリケーション画像のストリームは、前記テナント特有の仮想ファイルシステムにリダイレクトされ、前記アプリケーション画像のストリームは、入力ストリーム、出力ストリームおよびエラーストリームのうち少なくとも１つを含む、請求項３９に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項４１】
前記複数のパーティションのうちの前記コーリングパーティションから呼出された前記テナント非認識型プロセスは、複合アプリケーションの一部であり、前記複合アプリケーションはさらに、前記複数のパーティションのうちの前記コーリングパーティションの文脈において実行されるテナント認識型アプリケーションを含む、請求項３６から４０のいずれか一項に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項４２】
プログラム命令を含むコンピュータプログラムであって、前記プログラム命令は、１つ以上のコンピュータシステムによって実行されると、前記１つ以上のコンピュータシステムに請求項１から７および２２から２８のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項４３】
請求項４２に記載のコンピュータプログラムが格納された非一時的なコンピュータ記憶媒体。
【請求項４４】
請求項１から７のいずれか一項に記載の方法、および請求項２２から２８のいずれか一項に記載の方法の両方を実行するように構成されたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
【０００２】
発明の分野：
本発明の実施形態は、概して、アプリケーションサーバおよびクラウド環境に関し、特に、マルチテナント・ミドルウェア・プラットフォームから呼出されたアプリケーションをサポートするためのシステムおよび方法に関する。
【背景技術】
【０００３】
背景：
ソフトウェアアプリケーションサーバは、その例として、Oracle WebLogic Server（ＷＬＳ）およびGlassfishを含んでおり、概して、エンタープライズソフトウェアアプリケーションを実行するための管理された環境を提供する。近年、クラウド環境において使用するための技術も開発されており、ユーザまたはテナントが、クラウド環境内でそれらのアプリケーションを開発して実行することが可能になり、かつ、環境によって提供される分散型リソースを活用することが可能になっている。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
一実施形態に従うと、マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プログラムのマルチテナント実行をサポートするためのシステムおよび方法がこの明細書中に記載される。例示的な方法は、複数のパーティションおよび複数のテナント認識型プログラムを提供することができる。複数のテナント認識型プログラムの各々はパーティションに関連付けられている。当該方法は、複数のパーティションおよび複数のテナント認識型プログラムの各々を複数のテナントのうちの１テナントと関連付けることができる。当該方法は、複数のパーティションのうちのコーリングパーティションからテナント非認識型プロセスを呼出すことができる。コーリングパーティションは、複数のテナントのうちのコーリングテナントに関連付けられている。当該方法は、コーリングテナントについてのテナンシ情報を収集することができる。さらに、収集されたテナンシ情報に基づいて、当該方法は、プロセス実行環境およびリソースを設定することにより、テナント非認識型プロセスの実行をコーリングテナントに範囲指定することができる。
【０００５】
一実施形態に従うと、コンテナ化されたアプリケーションを用いた場合、範囲指定された実行により、マルチテナント・ミドルウェア環境における他のテナントからテナント非認識型プロセスの実行時間を分離することをサポートすることができ、結果として、ＯＳアプリケーションプログラムのマルチテナント動作が行われることとなる。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。
【図２】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。
【図３】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。
【図４】一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。
【図５】一実施形態に従った例示的なマルチテナント環境をさらに示す図である。
【図６】一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のためのシステムを示す図である。
【図７】一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のためのシステムを示す図である。
【図８】一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のためのシステムを示す図である。
【図９】一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のための環境およびリソースを作成するための例示的な方法を示すフローチャートである。
【図１０】一実施形態に従った、プロセス・ビルダを作成および構成するための例示的な方法を示すフローチャートである。
【図１１】一実施形態に従った、ＭＴミドルウェア・アプリケーション（たとえば、ＪＥＥアプリケーション）からのテナント非認識型ＯＳアプリケーションのマルチテナント実行のための例示的な方法を示すフローチャートである。
【図１２】マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【０００７】
詳細な説明：
一実施形態に従うと、マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型（この明細書中においては異なる呼び方で「テナント非認識の」とも称される）プロセスのテナント範囲指定された実行（この明細書中においては異なる呼び方で「マルチテナント実行」とも称される）をサポートするためのシステムおよび方法がこの明細書中に記載される。例示的な方法は、複数のパーティションおよび複数のテナント認識型（明細書中においては異なる呼び方で「テナント認識の」とも称される）プログラムを提供することができる。複数のテナント認識型プログラムの各々はパーティションに関連付けられている。当該方法は、複数のパーティションおよび複数のテナント認識型プログラムの各々を複数のテナントのうちの１テナントと関連付けることができる。当該方法は、複数のパーティションのうちのコーリングパーティションからテナント非認識型プロセスを呼出すことができる。コーリングパーティションは、複数のテナントのうちのコーリングテナントに関連付けられている。当該方法は、コーリングテナントについてのテナンシ情報を収集することができる。さらに、収集されたテナンシ情報に基づいて、当該方法は、プロセス実行環境およびリソースを設定することにより、テナント非認識型プロセスの実行をコーリングテナントに範囲指定することができる。
【０００８】
この明細書中に記載されるシステムおよび方法を用いることにより、一実施形態に従って、オペレーティングシステム上で固有のプログラム／プロセスとして実行される非Ｊａｖａ（登録商標）コンポーネントを含むテナント認識型ＪＥＥアプリケーション（たとえば、ＳａａＳアプリケーション）は、テナントが範囲指定された態様で機能し得ることにより、完全なアプリケーション（エンド・ツー・エンド）マルチテナントを認識させ、分離させることができる。すなわち、マルチテナント・アプリケーション・サーバ環境内に提供されるマルチテナンシ・サポートは、固有のＯＳ上におけるＭＴアプリケーションサーバ環境の外側でサポートされ得るが、ＭＴアプリケーションサーバ環境（たとえば、ＷｅｂＬｏｇｉｃ  ＭＴ）内で実行されるコンポーネント／プログラムには限定され得ない。
【０００９】
アプリケーションサーバ（たとえば、マルチテナント（MultiTenant：ＭＴ）環境
図１は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す。
【００１０】
図１に示されるように、一実施形態に従うと、アプリケーションサーバ（たとえば、マルチテナント（ＭＴ））環境１００または他のコンピューティング環境は、ソフトウェアアプリケーションのデプロイメントおよび実行を可能にするものであって、アプリケーションサーバドメインを定義するために実行時に用いられるドメイン１０２の構成を含み、当該ドメイン１０２の構成に従って動作するように構成することができる。
【００１１】
一実施形態に従うと、アプリケーションサーバは、実行時に使用されるよう定義される１つ以上のパーティション１０４を含み得る。各々のパーティションは、グローバルユニークパーティション識別子（identifier：ＩＤ）およびパーティション構成に関連付けることができ、さらに、リソースグループテンプレートの参照１２６および／またはパーティション特有のアプリケーションもしくはリソース１２８とともに、１つ以上のリソースグループ１２４を含み得る。ドメインレベルのリソースグループ、アプリケーションおよび／またはリソース１４０も、任意にはリソースグループテンプレートの参照とともに、ドメインレベルで定義することができる。
【００１２】
各々のリソースグループテンプレート１６０は、１つ以上のアプリケーションＡ１６２、Ｂ１６４、リソースＡ１６６、Ｂ１６８および／または他のデプロイ可能なアプリケーションもしくはリソース１７０を定義することができ、リソースグループによって参照することができる。たとえば、図１に例示されるように、パーティション１０４におけるリソースグループ１２４は、リソースグループテンプレート１６０を参照する（１９０）ことができる。
【００１３】
概して、システムアドミニストレータは、パーティション、ドメインレベルのリソースグループおよびリソースグループテンプレート、ならびにセキュリティ領域を定義することができるとともに、パーティションアドミニストレータは、たとえば、パーティションレベルのリソースグループを作成するか、アプリケーションをパーティションにデプロイするかまたはパーティションについての特定の領域を参照することによって、それら自体のパーティションのアスペクトを定義することができる。
【００１４】
図２は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
【００１５】
図２に示されるように、一実施形態に従うと、パーティション２０２は、たとえば、リソースグループテンプレート２１０の参照２０６を含むリソースグループ２０５と、仮想ターゲット（たとえば仮想ホスト）情報２０７と、プラグ接続可能なデータベース（pluggable database：ＰＤＢ）情報２０８とを含み得る。リソースグループテンプレート（たとえば２１０）は、たとえば、Ｊａｖａ（登録商標）メッセージサーバ（Java Message Server：ＪＭＳ）サーバ２１３、ストア・アンド・フォワード（store-and-forward：ＳＡＦ）エージェント２１５、メールセッションコンポーネント２１６またはＪａｖａデータベースコネクティビティ（Java Database Connectivity：ＪＤＢＣ）リソース２１７などのリソースとともに、複数のアプリケーションＡ２１１およびＢ２１２を定義することができる。
【００１６】
図２に例示されるリソースグループテンプレートが一例として提供される。他の実施形態に従うと、さまざまなタイプのリソースグループテンプレートおよび要素を提供することができる。
【００１７】
一実施形態に従うと、パーティション（たとえば２０２）内のリソースグループが、特定のリソースグループテンプレート（たとえば２１０）を参照する（２２０）と、パーティション特有の情報２３０（たとえば、パーティション特有のＰＤＢ情報）を示すために、特定のパーティションに関連付けられた情報を、参照されたリソースグループテンプレートと組合わせて用いることができる。次いで、パーティション特有の情報は、パーティションによって使用されるリソース（たとえば、ＰＤＢリソース）を構成するようにアプリケーションサーバによって使用可能である。たとえば、パーティション２０２に関連付けられたパーティション特有のＰＤＢ情報は、そのパーティションによって使用されるべき適切なＰＤＢ２３８を備えたコンテナデータベース（container database：ＣＤＢ）２３６を構成する（２３２）ようにアプリケーションサーバによって使用可能である。
【００１８】
同様に、一実施形態に従うと、特定のパーティションに関連付けられた仮想ターゲット情報を用いて、そのパーティションによって使用されるべきパーティション特有の仮想ターゲット２４０（たとえば、ユニフォーム・リソース・ロケータ（uniform resource locator：ＵＲＬ）（たとえば、http://baylandurgentcare.com）によってアクセス可能にすることができるbaylandurgentcare.com）を定義する（２３９）ことができる。
【００１９】
図３は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
【００２０】
一実施形態に従うと、config.xml構成ファイルなどのシステム構成を用いて、パーティションを定義する。当該パーティションは、そのパーティションに関連付けられたリソースグループについての構成エレメントおよび／または他のパーティション・プロパティを含む。値は、プロパティ名／値の対を用いてパーティションごとに指定することができる。
【００２１】
一実施形態に従うと、複数のパーティションは、管理されたサーバ／クラスタ２４２内で、または、ＣＤＢ２４３にアクセス可能でありかつウェブ層２４４を介してアクセス可能である同様の環境内で、実行することができる。これにより、たとえば、ドメインまたはパーティションを（ＣＤＢの）ＰＤＢのうち１つ以上のＰＤＢに関連付けることが可能となる。
【００２２】
一実施形態に従うと、複数のパーティションの各々、この例においてはパーティションＡ２５０およびパーティションＢ２６０は、そのパーティションに関連付けられた複数のリソースを含むように構成することができる。たとえば、パーティションＡは、アプリケーションＡ１  ２５２と、アプリケーションＡ２  ２５４と、ＪＭＳ  Ａ  ２５６と、さらには、ＰＤＢ  Ａ  ２５９に関連付けられたデータソースＡ２５７とをともに含むリソースグループ２５１を含むように構成することができる。この場合、パーティションは仮想ターゲットＡ２５８を介してアクセス可能である。同様に、パーティションＢ２６０は、アプリケーションＢ１  ２６２と、アプリケーションＢ２  ２６４と、ＪＭＳ  Ｂ  ２６６と、さらには、ＰＤＢ  Ｂ  ２６９に関連付けられたデータソースＢ２６７とをともに含むリソースグループ２６１を含むように構成することができる。この場合、パーティションは仮想ターゲットＢ２６８を介してアクセス可能である。
【００２３】
上述の例のうちいくつかはＣＤＢおよびＰＤＢの使用を例示しているが、他の実施形態に従うと、他のタイプのマルチテナントのデータベースまたは非マルチテナントのデータベースをサポートすることができる。この場合、特定の構成は、たとえば、スキーマを使用するかまたはさまざまなデータベースを使用することによって、各パーティション毎に提供することができる。
【００２４】
リソース
一実施形態に従うと、リソースは、環境のドメインにデプロイすることができるシステムリソース、アプリケーションまたは他のリソースもしくはオブジェクトである。たとえば、一実施形態に従うと、リソースは、アプリケーション、ＪＭＳ、ＪＤＢＣ、ＪａｖａＭａｉｌ、ＷＬＤＦもしくはデータソースであり得るか、または、サーバ、クラスタもしくは他のアプリケーションサーバターゲットにデプロイすることができる他のシステムリソースもしくは他のタイプのオブジェクトであり得る。
【００２５】
パーティション
一実施形態に従うと、パーティションは、パーティション識別子（partition identifier：ＩＤ）および構成に関連付けられ得るドメインのうち実行時間および管理の下位区分またはスライスであるとともに、アプリケーションを含み得て、ならびに／または、リソースグループおよびリソースグループテンプレートを使用することによってドメイン全体に渡るリソースを参照し得る。
【００２６】
概して、パーティションは、それ自体のアプリケーションを含み、リソースグループテンプレートを介してドメイン全体に渡るアプリケーションを参照し、それ自体の構成を有し得る。パーティション可能なエンティティは、リソース、たとえば、ＪＭＳ、ＪＤＢＣ、ＪａｖａＭａｉｌ、およびＷＬＤＦリソースや、他のコンポーネント、たとえばＪＮＤＩネームスペース、ネットワークトラフィック、ワークマネージャ、セキュリティポリシーおよび領域などを含み得る。マルチテナント環境のコンテキストにおいては、システムは、テナントに関連付けられたパーティションの管理および実行時間のアスペクトへのアクセスをテナントに提供するように構成することができる。
【００２７】
一実施形態に従うと、パーティション内の各々のリソースグループは、任意には、リソースグループテンプレートを参照することができる。パーティションは、複数のリソースグループを有し得るとともに、それらの各々はリソースグループテンプレートを参照し得る。各々のパーティションは、パーティションのリソースグループが参照するリソースグループテンプレートにおいて指定されていない構成データについてのプロパティを定義することができる。これにより、パーティションが、リソースグループテンプレートで定義されたデプロイ可能なリソースをそのパーティションで使用されるべき特定の値にバインドするものとして機能することが可能となる。場合によっては、パーティションは、リソースグループテンプレートによって指定される構成情報を無効にすることができる。
【００２８】
一実施形態に従うと、パーティション構成は、たとえば、config.xml構成ファイルによって定義されるように、複数の構成エレメントを含み得る。複数の構成エレメントは、たとえば、「パーティション（partition）」（そのパーティションを定義する属性および子エレメントを含む）；「リソース・グループ（resource-group）」（パーティションにデプロイされるアプリケーションおよびリソースを含む）；「リソース・グループ・テンプレート（resource-group-template）」（そのテンプレートによって定義されるアプリケーションおよびリソースを含む）；「ｊｄｂｃ・システム・リソース・無効化（jdbc-system-resource-override）」（データベース特有のサービス名、ユーザ名およびパスワードを含む）；ならびに、「パーティション・プロパティ（partition-properties）」（リソースグループテンプレートにおいてマクロ置換のために使用可能なプロパティキー値を含む）を含む。
【００２９】
始動後、システムは、構成ファイルによって提供される情報を用いて、リソースグループテンプレートから各々のリソースについてのパーティション特有の構成エレメントを生成することができる。
【００３０】
リソースグループ
一実施形態に従うと、リソースグループは、名前付けされ完全に修飾されたデプロイ可能なリソースの集合であって、ドメインまたはパーティションのレベルで定義することができ、かつ、リソースグループテンプレートを参照することができる。リソースグループにおけるリソースは、完全に修飾されているものと見なされる。というのも、アドミニストレータが、それらのリソースを開始させるのに必要とされるかまたはそれらのリソースに接続するのに必要とされるすべての情報、たとえば、データソースに接続するためのクレデンシャル、またはアプリケーションについての目標情報、を提供しているからである。
【００３１】
システムアドミニストレータは、ドメインレベルで、またはパーティションレベルでリソースグループを公開することができる。ドメインレベルでは、リソースグループは、関連するリソースをグループ化するのに好都合な方法を提供する。システムは、グループ化されていないリソースと同じドメインレベルのリソースグループにおいて公開されたリソースを管理することができる。このため、リソースは、システム起動中に開始させたり、システムのシャットダウン中に停止させたりすることができる。アドミニストレータはまた、グループ内のリソースを個々に停止させるか、開始させるかまたは削除することができ、グループ上で動作させることによって暗黙的にグループ内のすべてのリソースに対して機能することができる。たとえば、あるリソースグループを停止させることにより、まだ停止されていないグループにおけるすべてのリソースを停止させ；リソースグループを始動させることにより、まだ始動させていないグループにおけるいずれのリソースも始動させ、リソースグループを削除することにより、グループに含まれるすべてのリソースを削除する。
【００３２】
パーティションレベルでは、システムまたはパーティションアドミニストレータは、任意のセキュリティ制限下で、或るパーティションにおいて０個以上のリソースグループを構成することができる。たとえば、ＳａａＳ使用事例においては、さまざまなパーティションレベルのリソースグループは、ドメインレベルのリソースグループテンプレートを参照することができる。ＰａａＳ使用事例においては、リソースグループテンプレートを参照しないが代わりにそのパーティション内でのみ利用可能にされるべきアプリケーションおよびそれらの関連するリソースを表わすパーティションレベルのリソースグループを作成することができる。
【００３３】
一実施形態に従うと、リソースグループ化を用いることで、アプリケーションと、それらアプリケーションがドメイン内で別個の管理ユニットとして使用するリソースとをともにグループ化することができる。たとえば、以下に記載される医療記録（ＭｅｄＲｅｃ）アプリケーションにおいては、リソースグループ化によりＭｅｄＲｅｃアプリケーションおよびそのリソースが定義される。複数のパーティションは、各々がパーティション特有の構成情報を用いて、同じＭｅｄＲｅｃリソースグループを実行することができ、このため、各々のＭｅｄＲｅｃインスタンスの一部であるアプリケーションが各々のパーティションにとって特有のものにされる。
【００３４】
リソースグループテンプレート
一実施形態に従うと、リソースグループテンプレートは、リソースグループから参照することができドメインレベルで定義されるデプロイ可能なリソースの集合であり、そのリソースを起動するのに必要な情報のうちいくらかは、パーティションレベル構成の仕様をサポートするように、テンプレート自体の一部として記憶されない可能性がある。ドメインは、リソースグループテンプレートをいくつ含んでもよく、それらの各々は、たとえば、１つ以上の関連するＪａｖａアプリケーションと、それらのアプリケーションが依存するリソースとを含み得る。このようなリソースについての情報のうちのいくらかは、すべてのパーティションにわたって同じであってもよく、他の情報はパーティションごとに異なっていてもよい。すべての構成がドメインレベルで指定される必要はなく、代わりに、パーティションレベル構成が、マクロまたはプロパティ名／値の対を使用することによってリソースグループテンプレートで指定することができる。
【００３５】
一実施形態に従うと、特定のリソースグループテンプレートは、１つ以上のリソースグループによって参照可能である。概して、任意の所与のパーティション内では、リソースグループテンプレートは一度に１つのリソースグループによってのみ参照することができる。すなわち、同じパーティション内で同時に複数のリソースグループによって参照することはできない。しかしながら、異なるパーティションにおける別のリソースグループによって同時に参照することができる。リソースグループを含むオブジェクト、たとえばドメインまたはパーティションは、プロパティ名／値の割当てを用いて、任意のトークンの値をリソースグループテンプレートで設定することができる。システムは、参照するリソースグループを用いてリソースグループテンプレートを起動させると、それらのトークンを、リソースグループが含むオブジェクトにおいて設定された値と置換えることができる。場合によっては、システムはまた、静的に構成されたリソースグループテンプレートおよびパーティションを用いて、パーティション／テンプレートの組合せごとに実行時間構成を生成することができる。
【００３６】
たとえば、ＳａａＳ使用事例においては、システムは、同じアプリケーションおよびリソースを複数回を起動することができるが、そのうちの１回は、それらを用いるであろう各パーティションごとに起動され得る。アドミニストレータがリソースグループテンプレートを定義すると、これらは、どこか他のところで提供されるであろう情報を表わすためにトークンを用いることができる。たとえば、ＣＲＭ関連のデータリソースに接続する際に使用されるユーザ名は、リソースグループテンプレートにおいて＼＄｛ＣＲＭＤａｔａＵｓｅｒｎａｍｅ｝として示すことができる。
【００３７】
テナント
一実施形態に従うと、マルチテナント（ＭＴ）アプリケーションサーバ環境などのマルチテナント環境においては、テナントは、１つ以上のパーティションおよび／もしくは１つ以上のテナント認識型アプリケーションによって表現可能であるエンティティ、または１つ以上のパーティションおよび／もしくは１つ以上のテナント認識型アプリケーションに関連付けることができるエンティティである。
【００３８】
たとえば、テナントは、別個のユーザ組織、たとえばさまざまな外部会社、特定の企業内のさまざまな部門（たとえばＨＲおよび財務部）などを表わすことができ、それら各々は、異なるパーティションに関連付けることができる。テナントのグローバルユニークアイデンティティ（テナントＩＤ）は、特定の時点において特定のユーザを特定のテナントに関連付けるものである。システムは、たとえば、ユーザアイデンティティの記録を参照することによって、ユーザアイデンティティから、特定のユーザがどのテナントに属しているかを導き出すことができる。ユーザアイデンティティにより、ユーザが実行することを認可されているアクションをシステムが実施することが可能となる。ユーザアイデンティティは、ユーザがどのテナントに属し得るかを含むが、これに限定されない。
【００３９】
一実施形態に従うと、システムは、互いに異なるテナントの管理および実行時間を分離することを可能にする。たとえば、テナントは、それらのアプリケーションのいくつかの挙動、およびそれらがアクセスできるリソースを構成することができる。システムは、特定のテナントが別のテナントに属するアーティファクトを確実に管理することができないようにし、かつ、実行時に、特定のテナントの代わりに機能するアプリケーションがそのテナントに関連付けられたリソースのみを参照するが他のテナントに関連付けられたリソースは参照しないことを確実にすることができる。
【００４０】
一実施形態に従うと、テナント非認識型アプリケーションは、アプリケーションが応答している要求をどんなユーザが提示したかにかかわらず、アプリケーションが用いる如何なるリソースにもアクセス可能となるように明示的にテナントに対処する論理を含まないものである。対照的に、テナント認識型アプリケーションは、テナントに明示的に対処する論理を含む。たとえば、ユーザのアイデンティティに基づいて、アプリケーションは、ユーザが属するテナントを導き出すことができ、テナント特有のリソースにアクセスするためにその情報を用いることができる。
【００４１】
一実施形態に従うと、システムは、テナント認識型となるように明示的に書き込まれたアプリケーションをユーザがデプロイすることを可能にし、これにより、アプリケーション開発者は、現在のテナントのテナントＩＤを取得することができる。次いで、テナント認識型アプリケーションは、このテナントＩＤを用いて、アプリケーションの単一のインスタンスを用いている複数のテナントを処理することができる。
【００４２】
たとえば、単一の診療室または病院をサポートするＭｅｄＲｅｃアプリケーションは、２つの異なるパーティションまたはテナント（たとえばBayland Urgent CareテナントおよびValley Healthテナント）に対して公開することができ、その各々は、基礎をなすアプリケーションコードを変更することなく、別個のＰＤＢなどの別個のテナント特有のリソースにアクセスすることができる。
【００４３】
例示的なドメイン構成およびマルチテナント環境
一実施形態に従うと、アプリケーションは、ドメインレベルでリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されているかもしくはドメインに範囲指定されているリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーション毎またはパーティション毎に指定されたデプロイメントプランを用いて無効化することができる。
【００４４】
図４は、一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す。
【００４５】
一実施形態に従うと、システムがパーティションを始動させると、当該システムは、提供された構成に従って、それぞれのデータベースインスタンスに対して、各パーティションごとに１つずつ、仮想ターゲット（たとえば仮想ホスト）および接続プールを作成する。
【００４６】
典型的には、各々のリソースグループテンプレートは、１つ以上の関連するアプリケーションと、それらアプリケーションが依存するリソースとを含み得る。各々のパーティションは、それが参照するリソースグループテンプレートにおいて指定されていない構成データを提供することができるが、これは、場合によっては、リソースグループテンプレートによって指定されるいくつかの構成情報を無効にすることを含めて、パーティションに関連付けられた特定値に対するリソースグループテンプレートにおけるデプロイ可能なリソースのバインディングを行うことによって、実行可能である。これにより、システムは、各々のパーティションが定義したプロパティ値を用いて、パーティション毎にリソースグループテンプレートによってさまざまに表わされるアプリケーションを始動させることができる。
【００４７】
いくつかのインスタンスにおいては、パーティションが含み得るリソースグループは、リソースグループテンプレートを参照しないか、または、それら自体のパーティション範囲指定されたデプロイ可能なリソースを直接定義する。パーティション内で定義されるアプリケーションおよびデータソースは、概して、そのパーティションにとってのみ利用可能である。リソースは、パーティション：<partitionName>/<resource JNDI name>、またはドメイン：<resource JNDI name>を用いて、パーティションの中からアクセスすることができるようにデプロイ可能である。
【００４８】
たとえば、ＭｅｄＲｅｃアプリケーションは、複数のＪａｖａアプリケーション、データソース、ＪＭＳサーバおよびメールセッションを含み得る。複数のテナントのためにＭｅｄＲｅｃアプリケーションを実行させるために、システムアドミニストレータは、テンプレートにおけるそれらのデプロイ可能なリソースを公開している単一のＭｅｄＲｅｃリソースグループテンプレート２８６を定義することができる。
【００４９】
ドメインレベルのデプロイ可能なリソースとは対照的に、リソースグループテンプレートにおいて公開されたデプロイ可能なリソースは、テンプレートにおいて完全には構成されない可能性があるか、または、いくつかの構成情報が不足しているので、そのままでは起動させることができない。
【００５０】
たとえば、ＭｅｄＲｅｃリソースグループテンプレートは、アプリケーションによって用いられるデータソースを公開し得るが、データベースに接続するためのＵＲＬを指定しない可能性がある。さまざまなテナントに関連付けられたパーティション、たとえば、パーティションＢＵＣ−Ａ２９０（Bayland Urgent Care：ＢＵＣ）およびパーティションＶＨ−Ａ２９２（Valley Health：ＶＨ）は、各々がＭｅｄＲｅｃリソースグループテンプレートを参照する（２９６，２９７）ＭｅｄＲｅｃリソースグループ２９３，２９４を含むことによって、１つ以上のリソースグループテンプレートを参照することができる。次いで、当該参照を用いて、Bayland Urgent Careテナントによって使用されるＢＵＣ−Ａパーティションに関連付けられた仮想ホストbaylandurgentcare.com３０４と、Valley Healthテナントによって使用されるＶＨ−Ａパーティションに関連付けられた仮想ホストvalleyhealth.com３０８とを含む各々のテナントのための仮想ターゲット／仮想ホストを作成する（３０２，３０６）ことができる。
【００５１】
図５は、一実施形態に従った例示的なマルチテナント環境をさらに示す。図５に示されるように、２つのパーティションがＭｅｄＲｅｃリソースグループテンプレートを参照している上述の例から引続いて、一実施形態に従うと、サーブレットエンジン３１０は、この例においてはBayland Urgent Careの医師テナント環境３２０およびValley Healthの医師テナント環境３３０といった複数のテナント環境をサポートするために用いることができる。
【００５２】
一実施形態に従うと、各々のパーティション３２１および３３１は、そのテナント環境についての入来トラフィックを受入れるための異なる仮想ターゲットと、異なるＵＲＬ３２２，３３２とを定義することができる。異なるＵＲＬ３２２，３３２は、パーティションと、この例ではBayland Urgent Careデータベースまたはvalley healthデータベースを含むそれぞれのリソース３２４、３３４とに接続するためのものである。同じアプリケーションコードが両方のデータベースに対して実行され得るので、データベースインスタンスは互換性のあるスキーマを用いることができる。システムがパーティションを始動させると、当該システムは、それぞれのデータベースインスタンスに対する接続プールおよび仮想ターゲットを作成することができる。
【００５３】
ＯＳプログラムのテナント範囲指定された実行
一実施形態に従うと、この明細書中に記載される方法およびシステムによれば、ＯＳ（すなわちテナント非認識型）プログラム、アプリケーションおよびプロセス（この明細書中において、以降、「ＯＳプログラム」、「ＯＳアプリケーション」、「ＯＳプロセス」、「非テナント認識型プログラム」、「非テナント認識型アプリケーション」、および「非テナント認識型プロセス」とさまざまに称される）のテナント範囲指定された実行をサポートすることができる。
【００５４】
典型的には、アプリケーションがＭＴ環境内で実行されると、アプリケーションはテナント範囲指定される。これは、テナント認識型プログラムによってアクセスされるライブラリおよびリソースがたとえばＭＴ環境内の他のテナントから分離されることを意味している。
【００５５】
しかしながら、ＭＴ環境において動作するテナント認識型プログラムが固有のＯＳ上で動作するテナント非認識型アプリケーション（たとえば、Ｃ、Ｃ＋＋、Ｐｅｒｌなど）をコールすると、ＯＳ上で動作するこれらのプログラム間が、ほとんどまたはまったく分離されないという問題が生じる場合がある。すなわち、汎用オペレーティングシステムは、テナンシの概念を有さず、このため、ＭＴアプリケーション（すなわちＪＥＥアプリケーション）に関連付けられたテナンシ（すなわち、ＭＴアプリケーションからの発信コールに関連付けられたテナンシ情報）を認識しない。これにより、共通の環境内で共有のＯＳリソース（たとえば、ファイル、プロセス、データベース）を用いてＯＳプログラムを実行することが可能となり、さらには、別個のテナントアプリケーションが外部のＯＳアプリケーション（たとえば、テナント非認識型アプリケーション）をコールしたときに、テナント文脈が失われたり、実行時間の切離し／分離がもたらされたりする可能性がある。
【００５６】
図６は、一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のためのシステムを示す。図６に示されるように、マルチテナントアプリケーションサーバ環境６００（たとえば、ＷｅｂＬｏｇｉｃマルチテナント）は、テナント１パーティション６０１およびテナント２パーティション６０５などのいくつかのテナント・パーティションを含み得る。テナント１パーティションおよびテナント２パーティションは、それぞれ、ＪＥＥアプリケーション６０２およびＪＥＥアプリケーション６０６などのアプリケーションに関連付けることができ、ＪＥＥアプリケーション６０２およびＪＥＥアプリケーション６０６は、それぞれ、データソース６０３およびデータソース６０７に関連付けられ、データソース６０３およびデータソース６０７は、各々のテナントのそれぞれのデータベース６０４およびデータベース６０８にアクセスすることを可能にする。
【００５７】
一実施形態に従うと、テナント２に関連付けられたＪＥＥアプリケーションなどのアプリケーションは、たとえば、固有のＯＳ６１０におけるマルチテナントアプリケーションサーバの外側に位置する（プロセスを呼出す）ＯＳプログラムを呼出すことができる。これは、たとえば、ＭＴアプリケーションサーバ（たとえば、Ｐｅｒｌスクリプト、Ｃプログラムなど）に限定されないＭＴアプリケーションのコンポーネントが存在する場合に行われる可能性がある。このようなアプリケーション（すなわち、実行すべきＭＴアプリケーションサーバの外側で実行される外部ＯＳコンポーネントにも依拠するＭＴアプリケーション）は、複合アプリケーションと称され得る。テナント２に関連付けられたＪＥＥアプリケーションは、ＭＴ環境において実行され、実行時間に関連付けられたテナント文脈を有する。
【００５８】
一実施形態に従うと、ＭＴアプリケーション（たとえば、ＪＥＥアプリケーション）がＯＳプログラム／アプリケーション（すなわちプロセス６２０）を呼出すと、ＭＴアプリケーションは、ＪＥＥアプリケーションが利用可能なテナント文脈を拡張／伝搬するために、いくつかの変数６２５（すなわち環境変数）を設定することができる。これらの変数はテナントＩＤ、テナント名、テナント・ファイルシステム（tenant filesystem：ＴＦＳ）ルート；入出力サブディレクトリを備えた、ＴＦＳ下のプロセス作業ディレクトリ；テナントＤＢ接続文字列、およびテナント軽量ディレクトリアクセスプロトコル（lightweight directory access protocol：ＬＤＡＰ）ディレクトリＵＲＬを含み得る。
【００５９】
一実施形態に従うと、ＭＴアプリケーションサーバは、ＭＴアプリケーションサーバ環境６００に実装されていた各テナント毎に仮想テナント・ファイルシステム６３０を管理することができる。この仮想テナント・ファイルシステムは、テナントが実装されると、アプリケーションサーバ管理の一部として作成／設定することができる。仮想テナント・ファイルシステムはＯＳ６１０の一部であり、各テナント毎に１つの仮想テナント・ファイルシステムは、ＭＴアプリケーションサーバ環境において一般にアクティブになっている。
【００６０】
一実施形態に従うと、ＭＴアプリケーション（たとえば、ＪＥＥアプリケーション）がＯＳプロセス（すなわちテナント非認識型プロセス）を呼出すと、ＭＴアプリケーションは、付加的に、テナントの仮想ファイルシステム下において一時的プロセス作業ディレクトリを作成することができる。２つ以上のＯＳプロセスがＭＴアプリケーションによって呼出されると、ＭＴアプリケーションは、呼出された各ＯＳプロセス毎に１つの一時的作業ディレクトリを作成することができる。ＭＴアプリケーションは、仮想ファイルシステム下に一時的作業ディレクトリを作成する際に、付加的に、入力ディレクトリ、出力ディレクトリ、エラーディレクトリおよびデータベースディレクトリ用の一時的作業ディレクトリの下に、（呼出された各ＯＳプロセス毎に）サブディレクトリを作成することができる。これらのサブディレクトリは、呼出されたＯＳプロセスのうちリダイレクトされたstdin（入力ストリーム）、stdout（出力ストリーム）およびstderr（エラーストリーム）を受付けることができる。各々の入力サブディレクトリはプロセス入力ファイルで設定することができる。各々の出力サブディレクトリはプロセス出力ファイルを取込む役割を果たし得る。各々のエラーサブディレクトリはプロセスエラー（たとえば、stderr）メッセージを取込む役割を果たし得る。仮想テナント特有のファイルシステムは、ＯＳストレージ６４０などの固有のストレージに関連付けることができる。
【００６１】
一実施形態に従うと、プロセス・ビルダはＡＰＩ（たとえば、Ｊａｖａ  ＰｒｏｃｅｓｓＢｕｉｌｄｅｒ  ＡＰＩ）を含み得る。ＡＰＩは、クライアントが、実行すべきＯＳプログラム／アプリケーションのためのコマンドラインを指定し、プロセス環境において設定するように環境変数を構成し、プロセス作業ディレクトリを構成し、プロセス入力、出力およびエラーストリームをファイルシステム上のファイルにリダイレクトすることを可能にする。プロセス・ビルダは、プロセス環境、プロセス作業ディレクトリおよびプロセス入力ストリーム／出力ストリーム／エラーストリームのリダイレクトなどのプロセス（すなわちＯＳプロセス）が開始される前に、特定のプロセス特徴が設定されるかまたは構成されることを可能にし得る。
【００６２】
一実施形態に従うと、ＭＴアプリケーションがＯＳプロセスを呼出すと、当該ＭＴアプリケーションはプロセス・ビルダ（たとえば、プロセス・ビルダ・インスタンス）を作成して利用することができる。ＭＴアプリケーションからのテナンシ文脈は、環境変数を設定すること、およびプロセス作業ディレクトリを作成して構成することを含め、プロセス・ビルダＡＰＩ呼出しの一部として伝搬させることができる。プロセス作業ディレクトリと共に環境変数を利用することにより、リソース（環境変数、プロセス作業ディレクトリ、リダイレクトされた入力／出力ファイル、データベース接続記述子、ＬＤＡＰディレクトリ、ウォレット）を割当てるようにプロセス・ビルダを構成することができ、テナント非認識型プロセス（たとえば、ＯＳプロセス）の実行がテナンシ文脈内に範囲指定／制限されることを可能にする。このようにして、テナント非認識型プロセス（たとえば、ＯＳプロセス）は、テナント呼出しに特有の作業ディレクトリを得る。この作業ディレクトリは、テナントが指定されている仮想ファイルシステム下にあるとともに、ＭＴアプリケーションサーバ環境６００における他のテナントによって作成または所有されるファイルおよびリソースから分離されている。
【００６３】
一実施形態に従うと、テナント非認識型プロセスには、リダイレクトされたプロセス入出力ストリームのためにＯＳファイルシステム下にあるテナント特有のフォルダが割当てられており、当該テナント非認識型プロセスは、テナント特有のアクセスクレデンシャルを用いてテナントに関連付けられたデータベースに接続して、テナントＬＤＡＰディレクトリを用いる。テナント特有のデータベース接続文字列／記述子は、プログラムがテナントデータベースを用いて透過的に機能することを可能にし得る。テナント特有のクレデンシャルは、テナントの仮想ファイルシステムにおけるプロセス作業ディレクトリのデータベースサブディレクトリ下で設定されるウォレットにおいて構成することができる。
【００６４】
一実施形態に従うと、仮想テナント・ファイルシステムが（しばしば「コーリングテナント」と称され、テナントに関連付けられる）コーリングパーティションからコーリングＭＴアプリケーションのために作成された後、テナント非認識型プロセスに関連付けられたストリーム（たとえば、入力ストリーム、出力ストリーム、エラーストリーム）が、テナントの仮想ファイルシステムにおけるプロセス作業ディレクトリ下におけるそれぞれの入力サブディレクトリ、出力サブディレクトリおよびのエラーサブディレクトリにリダイレクトされ得る。
【００６５】
このようにして、ＯＳプログラムを呼出す別個のテナントに関連付けられたテナンシ文脈、環境およびデータは、互いから離散的に分離された状態で維持することができ、これにより、ＭＴコンテナ内部から（たとえば、ＭＴコンテナ内のパーティションに代わりに実行されるＪＥＥプログラムから）のコールに基づいて実行されるＯＳアプリケーション（テナント非認識型）を範囲指定して処理することが可能となり得る。
【００６６】
一実施形態に従うと、テナント非認識型プロセスが実行を完了すると、ＭＴアプリケーションサーバ環境において実行されるＭＴアプリケーションは、プロセス出力を検索し、プロセス作業ディレクトリをクリーンアップすることができる。
【００６７】
一実施形態に従うと、ＭＴアプリケーションは、プログラムの実行が成功したかどうかを知るために、（たとえば、ｊａｖａプロセスオブジェクトｅｘｉｔＶａｌｕｅ（）法から）プロセスｅｘｉｔＶａｌｕｅステータスコードを得ることができる。ＭＴアプリケーションはまた、プロセス実行が成功したかどうかを調べるために、出力サブフォルダおよびエラーサブフォルダ下において、リダイレクトされたstdoutファイルおよびstderrファイルを検索することができる。テナント非認識型プロセス実行が完了すると、テナントデータベースにおいて更新された結果が、パーティションにおいて実行されるＭＴアプリケーションによってデータベースから直接アクセスされ得る。
【００６８】
一実施形態に従うと、ＭＴアプリケーションはまた、プロセス作業ディレクトリおよびそのサブフォルダを削除することができ、これにより、ウォレットなどの出力ファイルおよびｄｂファイルがクリーンアップされる。
【００６９】
一実施形態に従うと、ＯＳプログラムをコールするＭＴアプリケーションにおいて構成される環境変数は、テナントＩＤ、テナント名；テナント・ファイルシステム（ＴＦＳ）ルート；ＴＦＳ下における、入力サブディレクトリ、出力サブディレクトリおよびエラーサブディレクトリを備えたプロセス作業ディレクトリ；テナントＤＢ接続文字列、およびテナントＬＤＡＰ（軽量ディレクトリアクセスプロトコル）ディレクトリＵＲＬ；を含み得る。
【００７０】
一実施形態に従うと、プロセス・ビルダ構成を用いれば、テナント非認識型ＯＳプログラムに対して、テナント文脈内での実行が範囲指定／制限されているリソース（環境変数、プロセス作業ディレクトリ、リダイレクトされた入出力ファイル、ＤＢ接続記述子、ＬＤＡＰディレクトリ、およびウォレット）が割当てられ得る。
【００７１】
ＯＳプログラムのマルチテナント実行−コンテナ化されたアプリケーション
一実施形態に従うと、この明細書中に記載された方法およびシステムは、実行時にテナントを分離させるためにコンテナ化されたアプリケーションを用いることによって、テナント非認識型プロセス（すなわちＯＳプロセス）のマルチテナント実行をサポートすることができる。
【００７２】
一実施形態に従うと、本開示は、コンテナ化されたアプリケーションを利用して、テナント非認識型プロセスの実行時間中にテナントを分離させることができる。
【００７３】
一実施形態に従うと、コンテナ化されたアプリケーションまたはプロセスは、コンテナとしてパッケージ化されたアプリケーションであって、ＯＳベース画像、アプリケーション実行ファイルおよびライブラリなどのアプリケーションを実行させるのに必要な情報を含む。コンテナ化されたアプリケーションは、Ｌｉｎｕｘ（登録商標）カーネル７５０などの同じＬｉｎｕｘカーネルを用いて、Ｌｉｎｕｘディストリビューション間で共有することができるポータブルアプリケーションであってもよい。コンテナ化されたアプリケーションは、開発者がポータブルアプリケーション／コンテナ化されたアプリケーションを作成し、画像を共有する場合に、同じｌｉｎｕｘカーネルであると想定して、コンテナ化されたアプリケーションが共有していたシステムが、コンテナ画像レジストリまたはリポジトリからコンテナ化されたアプリケーション画像をダウンロードして、コンテナ化されたアプリケーションを実行するためにコンテナを分離独立させることができるように、作成され得る。この点においては、当該アプリケーションは、他のコンテナおよびＯＳから分離された宛先ホスト上で利用可能になり得るとともに、依然として、必要なライブラリ（たとえば、アプリケーション／プロセスの開発者が意図したのと同じバージョンのライブラリ）を用いて利用可能になり得る。次いで、同じバージョンのライブラリを用いる別のコンテナ化されたアプリケーションインスタンスが存在し得るが、これは別個に実行されることとなる。ドッカー（Docker）はこのようなコンテナフレームワーク／インフラストラクチャの一例である。
【００７４】
図７は、一実施形態に従った、テナント非認識型プロセスについてのマルチテナント実行のためのシステムを示す。図７は、ソフトウェアコンテナをサポートするＯＳにおいて実行されるコンテナ化されたＯＳアプリケーションを用いて、ＭＴアプリケーションからコールされるＯＳプログラムのマルチテナント実行を示す。
【００７５】
図７に示されるように、ＭＴアプリケーションサーバ環境６００（たとえば、ＷｅｂＬｏｇｉｃマルチテナント）は、テナント１パーティション６０１およびテナント２パーティション６０５などのいくつかのテナント・パーティションを含み得る。テナント１パーティションおよびテナント２パーティションは、それぞれ、ＪＥＥアプリケーション６０２およびＪＥＥアプリケーション６０６などのアプリケーションに関連付けることができ、ＪＥＥアプリケーション６０２およびＪＥＥアプリケーション６０６は、それぞれデータソース６０３およびデータソース６０７に関連付けられ、これにより、各々テナントのそれぞれのデータベース６０４およびデータベース６０８にアクセスすることが可能となる。
【００７６】
一実施形態に従うと、ＭＴアプリケーション（たとえば、ＪＥＥアプリケーション）が（たとえば、コンテナ化されたアプリケーションとして）テナント非認識型アプリケーションを呼出すと、ＭＴアプリケーションはＪＥＥアプリケーションが利用可能なテナント文脈を拡張する／伝搬させるために、いくつかの変数（すなわち環境変数）を設定することができる。これらの変数はテナントＩＤ、テナント名；テナント・ファイルシステム（ＴＦＳ）ルート；ＴＦＳ下における、入力サブディレクトリ、出力サブディレクトリおよびエラーサブディレクトリを備えたプロセス作業ディレクトリ；テナントＤＢ接続文字列、およびテナントＬＤＡＰ（軽量ディレクトリアクセスプロトコル）ディレクトリＵＲＬ；を含み得る。
【００７７】
一実施形態に従うと、ＭＴアプリケーションサーバは、ＭＴアプリケーションサーバ環境６００に実装されていた各テナント毎に仮想テナント・ファイルシステム７３５を管理することができる。この仮想テナント・ファイルシステムは、テナントが実装されると、アプリケーションサーバアドミニストレーションの一部として作成／設定することができる。仮想テナント・ファイルシステムはＯＳ６１０の一部であり、一般には、各テナント毎に１つの仮想テナント・ファイルシステムがＭＴアプリケーションサーバ環境においてアクティブになっている。
【００７８】
一実施形態に従うと、ＭＴアプリケーション（たとえば、ＪＥＥアプリケーション）がテナント非認識型アプリケーションを呼出すと、ＭＴアプリケーションは、付加的に、テナントの仮想ファイルシステム下に（この明細書中において「プロセス作業ディレクトリ」とも称される）一時的プロセス作業ディレクトリを作成することができる。２つ以上のテナント非認識型アプリケーションがＭＴアプリケーションによって呼出されると、ＭＴアプリケーションは、呼出された各テナント非認識型アプリケーション毎に１つのプロセス作業ディレクトリを作成することができる。ＭＴアプリケーションは、仮想ファイルシステム下にプロセス作業ディレクトリを作成する際に、付加的に、入力ディレクトリ、出力ディレクトリ、エラーディレクトリおよびデータベースディレクトリ用のプロセス作業ディレクトリの下に、（呼出された各テナント非認識型アプリケーション毎に）サブディレクトリを作成することができる。これらのサブディレクトリは、呼出されたＯＳプロセスのうちリダイレクトされたstdin（入力ストリーム）、stdout（出力ストリーム）およびstderr（エラーストリーム）を受付けることができる。各々の入力サブディレクトリはプロセス入力ファイルで設定することができる。各々の出力サブディレクトリはプロセス出力ファイルを取込む役割を果たし得る。各々のエラーサブディレクトリはプロセスエラー（たとえば、stderr）メッセージを取込む役割を果たし得る。仮想テナント特有のファイルシステムは、ＯＳストレージ７３６などの固有のストレージに関連付けることができる。
【００７９】
一実施形態に従うと、プロセス・ビルダは、ＭＴアプリケーションによって利用可能であって、ＡＰＩ（たとえば、Ｊａｖａ  ＰｒｏｃｅｓｓＢｕｉｌｄｅｒ  ＡＰＩ）を含み得る。ＡＰＩは、クライアントが、実行すべきテナント非認識型アプリケーションのためのコマンドラインを指定し、プロセス環境において設定すべき環境変数を構成し、プロセス作業ディレクトリを構成し、プロセス入力、出力およびエラーストリームをファイルシステム上のファイルにリダイレクトすることを可能にする。プロセス・ビルダは、プロセス環境、プロセス作業ディレクトリおよびプロセス入力ストリーム／出力ストリーム／エラーストリームのリダイレクトなどのプロセス（すなわちテナント非認識型アプリケーション）が開始される前に、特定のプロセス特徴が設定または構成されることを可能にし得る。
【００８０】
一実施形態に従うと、ＭＴアプリケーションがテナント非認識型アプリケーションを呼出すと、当該ＭＴアプリケーションは、プロセス・ビルダ（たとえば、プロセス・ビルダ・インスタンス）を作成して利用することができる。ＭＴアプリケーションからのテナンシ文脈は、環境変数を設定すること、および一時的プロセス作業ディレクトリを作成することを含め、プロセス・ビルダＡＰＩ呼出しの一部として伝搬させることができる。一時的プロセス作業ディレクトリと共に環境変数を利用することにより、リソース（環境変数、プロセス作業ディレクトリ、リダイレクトされた入力／出力／エラーストリーム、データベース接続記述子、ＬＤＡＰディレクトリ、ウォレット）を割当てるようにプロセス・ビルダを構成することができ、テナント非認識型アプリケーションの実行がテナンシ文脈内に範囲指定／制限されることを可能にする。このようにして、テナント非認識型アプリケーションは、テナント呼出しに特有の作業ディレクトリを得る。この作業ディレクトリは、テナントが指定された仮想ファイルシステム下にあるとともに、ＭＴアプリケーションサーバ環境６００における他のテナントによって作成または所有されるファイルから分離されている。
【００８１】
一実施形態に従うと、テナント非認識型アプリケーションには、リダイレクトされたプロセスＩ／ＯストリームのためにＯＳファイルシステム下にあるテナント特有のフォルダが割当てられており、当該テナント非認識型アプリケーションは、テナント特有のアクセスクレデンシャルを用いて、テナントに関連付けられたデータベースに接続するとともに、テナント特有のＬＤＡＰディレクトリを用いる。テナント特有のデータベース接続文字列／記述子は、プログラムがテナントデータベースを用いて透過的に機能することを可能にし得る。テナント特有のクレデンシャルは、テナントの仮想ファイルシステムにおいてプロセス作業ディレクトリ下においてデータベースサブディレクトリ下で設定されたウォレットに構成することができる。
【００８２】
一実施形態に従うと、仮想テナント・ファイルシステムが、（テナントに関連付けられており、しばしば「コーリングテナント」と称される）コーリングパーティションからコーリングＭＴアプリケーションのために作成された後、テナント非認識型アプリケーション（たとえば、コンテナ化されたアプリケーション）に関連付けられたストリーム（たとえば、入力ストリーム、出力ストリーム、エラーストリーム）は、テナントの仮想ファイルシステムにおけるプロセス作業ディレクトリ下で、それぞれの入力サブディレクトリ、出力サブディレクトリおよびエラーサブディレクトリにリダイレクトすることができる。
【００８３】
一実施形態に従うと、（テナント２のパーティションからのＪＥＥアプリケーションコーリングといった、ＭＴアプリケーションから呼出される）テナント非認識型アプリケーションは、コンテナ化されたアプリケーションとしてパッケージ化することができる。例示的なプロセスにおいては、ＭＴアプリケーションはＯＳプログラムを呼出すことができる。このような場合、プロセス・ビルダ（たとえば、Java ProcessBuilder）はコンテナ化されたアプリケーションを呼出すことができる。コンテナフレームワークは軽量コンテナ仮想化技術を提供する。１つのこのようなコンテナフレームワークとしてドッカー（Docker）がある。
【００８４】
一実施形態に従うと、ドッカーなどのコンテナ実行時間は、アプリケーションをパッケージ化するためのフォーマットと、単一画像へのアプリケーションの依存性のすべてとを定義する。この画像はいずれのドッカー対応のマシンにも転送することができ、これは、アプリケーションにエクスポーズされた実行環境が同じになるだろうという保証付きで実行することができる。
【００８５】
ドッカーなどのコンテナフレームワークを備えたＯＳを用いれば、システムは、アプリケーション・バイナリと、所要のライブラリおよびコンポーネントとを含む階層化されたファイルシステムと共に、ベースＯＳ（たとえば、Ubuntu）を含むアプリケーションコンテナ画像を作成することができる。画像は、自己完結型であり（self-contained）得るとともにポータブルであり得るので、コンテナ化されたアプリケーションが開始されたときにホストに依存することなくアプリケーションを実行させることができる。
【００８６】
一実施形態に従うと、ＭＴアプリケーション（すなわちＪＥＥアプリケーション６０６）は、コンテナプロセス（たとえば、ドッカーまたはロケット）を開始することによってテナント非認識型アプリケーションを呼出すことができる。ドケットクライアントなどのコンテナクライアント７２０は、プロセス・ビルダ（たとえば、テナント２のパーティション６０５において実行されるＪＥＥアプリケーション６０６）を用いてＭＴアプリケーションによって呼出されて、要求の発信者（すなわちＪＥＥアプリケーション）からのテナンシ文脈を用いてＯＳ（テナント非認識型）アプリケーションを開始し得る。コンテナクライアントは、ドッカー・デーモンなどのコンテナ・デーモン７２５を呼出すことができる。次いで、コンテナ・デーモンは、要求されたコンテナ化されたアプリケーションのアプリケーション画像７４０をＪＥＥアプリケーションからダウンロードして開始することができる。アプリケーション画像７４０は、アプリケーション・バイナリと、所要のライブラリおよびコンポーネントとを含む階層化されたファイルシステムと共に、ベースＯＳ（たとえば、Ubuntu）を含み得る。画像は、自己完結型であり得るとともにポータブルであり得るので、ホストに依存することなくアプリケーションを実行させることができる。加えて、コンテナ化されたアプリケーションは、分離されたインスタンスとして実行させることができる。コンテナ化されたアプリケーションは、同じＯＳ上で動作するが、分離して実行される。これは、２つ以上のテナントが、別個のコンテナとして分離された状態で、同じアプリケーションのうち異なるインスタンスを実行させることができることを意味している。
【００８７】
一実施形態に従うと、コンテナが（コンテナ・デーモンによって）作成されて、アプリケーション画像がコンテナにロードされて、コンテナ化されたアプリケーション７３０が実行されると、当該アプリケーションはホストに依存することなく実行させることができる。
【００８８】
一実施形態に従うと、コンテナ化されたアプリケーション７３０は、（テナント文脈、たとえば、ＯＳストレージ７３６と通信し得るテナント２のパーティションに基づいて）テナントの仮想テナント・ファイルシステム７３５と通信することができる（Ｉ／Ｏ）。
【００８９】
一実施形態に従うと、テナント（たとえば、テナント２）の代わりに動作するコンテナ化されたアプリケーションは、必要なクレデンシャルを用いてテナントのデータベース６０８にアクセスすることができる。
【００９０】
一実施形態に従うと、ＭＴアプリケーションは、プログラムの実行が成功したかどうかを知るために、（たとえば、ｊａｖａプロセスオブジェクトｅｘｉｔＶａｌｕｅ（）法から）プロセスｅｘｉｔＶａｌｕｅステータスコードを得ることができる。ＭＴアプリケーションはまた、プロセス実行が成功したかどうかを調べるために、出力サブフォルダおよびエラーサブフォルダ下にあるリダイレクトされたstdoutファイルおよびstderrファイルを検索することができる。テナント非認識型のコンテナ化されたアプリケーションの実行が完了すると、テナントデータベースにおいて更新された結果は、パーティションにおいて実行されるＭＴアプリケーションによってデータベースから直接アクセスすることができる。
【００９１】
一実施形態に従うと、ＭＴアプリケーションはまた、プロセス作業ディレクトリおよびそのサブフォルダを削除することができ、これにより、ウォレットなどの出力ファイルおよびｄｂファイルがクリーンアップされる。
【００９２】
図８は、一実施形態に従った、テナント非認識型プロセスについてのマルチテナント実行のためのシステムを示す。図８は、コンテナにおいて実行されるコンテナ化されたＯＳアプリケーションを用いて、ＭＴアプリケーションからコールされるＯＳプログラムのマルチテナントの実行を示している。
【００９３】
図８に示されるように、ＭＴアプリケーションサーバ環境６００（たとえば、ＷｅｂＬｏｇｉｃマルチテナント）は、テナント１パーティション６０１およびテナント２パーティション６０５などのいくつかのテナント・パーティションを含み得る。テナント１パーティションおよびテナント２パーティションは、それぞれ、ＪＥＥアプリケーション６０２およびＪＥＥアプリケーション６０６などのアプリケーションに関連付けることができ、ＪＥＥアプリケーション６０２およびＪＥＥアプリケーション６０６は、それぞれデータソース６０３およびデータソース６０７に関連付けられ、これにより、各々のテナントのそれぞれのデータベース６０４およびデータベース６０８にアクセスすることが可能となる。
【００９４】
一実施形態に従うと、ＭＴアプリケーション（たとえば、ＪＥＥアプリケーション）が（たとえば、コンテナ化されたアプリケーションとして）テナント非認識型アプリケーションを呼出すと、ＭＴアプリケーションは、ＪＥＥアプリケーションが利用可能なテナント文脈を拡張する／伝搬するために、いくつかの変数（すなわち環境変数）を設定することができる。これらの変数はテナントＩＤ、テナント名；テナント・ファイルシステム（ＴＦＳ）ルート；ＴＦＳ下における、入力サブディレクトリおよび出力サブディレクトリを備えたプロセス作業ディレクトリ；テナントＤＢ接続文字列、およびテナントＬＤＡＰ（軽量ディレクトリアクセスプロトコル）ディレクトリＵＲＬ；を含み得る。
【００９５】
一実施形態に従うと、ＭＴアプリケーションサーバは、ＭＴアプリケーションサーバ環境６００に実装されていた各テナント毎に仮想テナント・ファイルシステム７３５を管理することができる。この仮想テナント・ファイルシステムは、テナントが実装されると、アプリケーションサーバアドミニストレーションの一部として作成／設定することができる。仮想テナント・ファイルシステムはＯＳ６１０の一部であり、一般には、各テナント毎に１つの仮想テナント・ファイルシステムがＭＴアプリケーションサーバ環境においてアクティブになっている。
【００９６】
一実施形態に従うと、ＭＴアプリケーション（たとえば、ＪＥＥアプリケーション）がテナント非認識型アプリケーションを呼出すと、ＭＴアプリケーションは、付加的に、テナントの仮想ファイルシステム下に一時的プロセス作業ディレクトリを作成することができる。２つ以上のテナント非認識型アプリケーションがＭＴアプリケーションによって呼出されると、ＭＴアプリケーションは、呼出された各テナント非認識型アプリケーション毎に１つのプロセス作業ディレクトリを作成することができる。ＭＴアプリケーションは、仮想ファイルシステム下にプロセス作業ディレクトリを作成する際に、付加的に、入力ディレクトリ、出力ディレクトリ、エラーディレクトリおよびデータベースディレクトリ用のプロセス作業ディレクトリの下に、（呼出された各テナント非認識型アプリケーション毎に）サブディレクトリを作成することができる。これらのサブディレクトリは、リダイレクトされた（stdin）入力ストリーム、（stdout）出力ストリームおよび（stderr）エラーストリームを受付けることができる。各々の入力サブディレクトリはプロセス入力ファイルで設定する役割を果たし得る。各々の出力サブディレクトリはプロセス出力ファイルを取込む役割を果たし得る。各々のエラーサブディレクトリはプロセスエラー（たとえば、stderr）メッセージを取込む役割を果たし得る。仮想テナント特有のファイルシステムは、ＯＳストレージ７３６などの固有のストレージに関連付けることができる。
【００９７】
一実施形態に従うと、プロセス・ビルダはＡＰＩ（たとえば、Ｊａｖａ  ＰｒｏｃｅｓｓＢｕｉｌｄｅｒ  ＡＰＩ）を含み得る。ＡＰＩは、クライアントが、実行すべきテナント非認識型アプリケーションのためのコマンドラインを指定し、プロセス環境において設定すべき環境変数を構成し、プロセス作業ディレクトリを構成し、プロセス入力、出力およびエラーストリームをファイルシステム上のファイルにリダイレクトすることを可能にする。プロセス・ビルダは、プロセス環境、プロセス作業ディレクトリおよびプロセス入力ストリーム／出力ストリーム／エラーストリームのリダイレクトなどのプロセス（すなわちテナント非認識型アプリケーション）が開始される前に、特定のプロセス特徴が設定または構成されることを可能にし得る。
【００９８】
一実施形態に従うと、ＭＴアプリケーションがテナント非認識型アプリケーションを呼出すと、当該ＭＴアプリケーションは、プロセス・ビルダ（たとえば、プロセス・ビルダ・インスタンス）を作成して利用することができる。ＭＴアプリケーションからのテナンシ文脈は、環境変数を設定することを含め、プロセス・ビルダＡＰＩ呼出しの一部として伝搬させることができる。ＭＴアプリケーションは、ＶＴＦＳ（仮想テナント・ファイルシステム）下においてプロセス作業ディレクトリおよびサブディレクトリ（入力、出力、エラーおよびデータベース）を作成することができる。次いで、ＭＴアプリケーションはプロセス・ビルダＡＰＩを用いて、環境変数、一時的プロセス作業ディレクトリパスを備えたプロセス作業ディレクトリ、リダイレクトされたストリームを構成し得る。プロセス作業ディレクトリと共に環境変数を利用することにより、リソース（環境変数、プロセス作業ディレクトリ、リダイレクトされた入力／出力ファイル、データベース接続記述子、ＬＤＡＰディレクトリ、ウォレット）を割当てるようにプロセス・ビルダを構成することができ、テナント非認識型アプリケーションの実行がテナンシ文脈内に範囲指定／制限されることを可能にする。このようにして、テナント非認識型アプリケーションは、テナント呼出しに特有の作業ディレクトリを得る。この作業ディレクトリは、テナントが指定された仮想ファイルシステム下にあるとともに、ＭＴアプリケーションサーバ環境６００における他のテナントによって作成または所有されるファイルから分離されている。
【００９９】
一実施形態に従うと、テナント非認識型アプリケーションは、Ｉ／Ｏ動作のためにＯＳファイルシステム下にあるテナント特有のフォルダを用い、テナント特有のアクセスクレデンシャルを用いてテナントに関連付けられたデータベースに接続し、さらに、テナントＬＤＡＰディレクトリを用いる。テナント特有のデータベース接続文字列／記述子は、プログラムがテナントデータベースを用いて透過的に機能することを可能にし得る。テナント特有のクレデンシャルは、テナントの仮想ファイルシステムにおいてプロセス作業ディレクトリ内においてデータベースサブディレクトリ下で設定されたウォレットに構成することができる。
【０１００】
一実施形態に従うと、仮想テナント・ファイルシステムが、（テナントに関連付けられており、しばしば「コーリングテナント」と称される）コーリングパーティションからコーリングＭＴアプリケーションのために作成された後、テナント非認識型アプリケーション（たとえば、コンテナ化されたアプリケーション）に関連付けられたストリーム（たとえば、入力ストリーム、出力ストリーム、エラーストリーム）は、テナントの仮想ファイルシステムにおけるプロセス作業ディレクトリ下で、それぞれのサブフォルダにリダイレクトすることができる。
【０１０１】
一実施形態に従うと、（テナント２のパーティションからのＪＥＥアプリケーションコーリングといった、ＭＴアプリケーションからコールされる）テナント非認識型アプリケーションは、コンテナ化されたアプリケーションとしてパッケージ化することができる。例示的なプロセスにおいては、ＭＴアプリケーションはＯＳプログラムを呼出すことができる。このような場合、プロセス・ビルダＡＰＩは、コンテナプロセスを呼出すためにＭＴアプリケーションによって構成される。このようなコンテナフレームワーク／インフラストラクチャの１つとしてドッカーがある。
【０１０２】
一実施形態に従うと、ドッカーなどのコンテナフレームワーク／インフラストラクチャは、アプリケーションをパッケージ化するためのフォーマットと、単一の画像に対するそのすべての依存性とを定義することができる。この画像はドッカー・ハブ／リポジトリにアップロードすることができ、この画像は、アプリケーションにエクスポーズされた実行環境が同じになるという保証付きで、当該ドッカー・ハブ／リポジトリからダウンロードして実行することができる。
【０１０３】
一実施形態に従うと、ドッカーなどのコンテナフレームワークを用いれば、システムは、予め作成されたコンテナ画像８１５をアプリケーション画像ライブラリ８１０からダウンロードすることができる。アプリケーション画像８１５は、アプリケーション・バイナリと、所要のライブラリおよびコンポーネントとを含む階層化されたファイルシステムと共に、ベースＯＳ（たとえば、Ubuntu）を含み得る。画像は、自己完結型であり得るとともにポータブルであり得るので、コンテナが作成されてその内部でアプリケーションが開始されたときに、ホストに依存することなくアプリケーションを実行させることができる。
【０１０４】
一実施形態に従うと、アプリケーション画像ライブラリ８１５は、ホストローカルファイルシステム上で設定することができるともに、ＭＴアプリケーションサーバ内で実行されるアプリケーションから呼出すことができる所望のプログラムおよびアプリケーションのためにいくつかのコンテナ化されたアプリケーション画像（たとえば、.tarファイル）を含み得る。このようなアプリケーション画像は、たとえば、一般的に要求されているＯＳプログラムおよびアプリケーションを含み得る。
【０１０５】
一実施形態に従うと、ＭＴアプリケーション（すなわちＪＥＥアプリケーション６０６）は、コンテナプロセス（たとえば、ドッカーまたはロケット）を開始することによりテナント非認識型アプリケーションを呼出すことができる。ドケットクライアントなどのコンテナクライアント７２０は、プロセス・ビルダ（たとえば、テナント２のパーティション６０５において実行されるＪＥＥアプリケーション６０６）を用いてＭＴアプリケーションによって呼出されて、要求の発信者（すなわちＪＥＥアプリケーション）からのテナンシ文脈を用いてＯＳ（テナント非認識型）アプリケーションを開始することができる。コンテナクライアントは、ドッカー・デーモンなどのコンテナ・デーモン７２５を呼出すことができる。次いで、コンテナ・デーモンは、要求されたコンテナ化されたアプリケーションのアプリケーション画像７４０をＪＥＥアプリケーションからダウンロードして開始することができる。アプリケーション画像７４０は、アプリケーション・バイナリと、所要のライブラリおよびコンポーネントとを含む階層化されたファイルシステムと共に、ベースＯＳ（たとえば、Ubuntu）を含み得る。画像は、自己完結型であり得るとともにポータブルであり得るので、ホストに依存することなくアプリケーションを実行させることができる。加えて、コンテナ化されたアプリケーションは、分離されたインスタンスとして実行させることができる。コンテナ化されたアプリケーションは、同じＯＳ上で動作するが、分離して実行される。これは、２つ以上のテナントが、別個のコンテナとして分離された状態で、同じアプリケーションのうち異なるインスタンスを実行させることができることを意味している。
【０１０６】
一実施形態に従うと、コンテナリポジトリ８１０にはいくつかのアプリケーション画像８１５がポピュレートされ得る。これらのアプリケーション画像はアプリケーション画像ライブラリに予めポピュレートされ得るか、または、図８のコンテナプロセスがアプリケーション画像を作成した後にアプリケーション画像ライブラリに保存され得る。
【０１０７】
一実施形態に従うと、コンテナが（コンテナ・デーモンによって）作成されて、アプリケーション画像がコンテナにロードされてコンテナ化されたアプリケーション７３０が実行されると、当該アプリケーションはホストに依存することなく実行させることができる。
【０１０８】
一実施形態に従うと、コンテナ化されたアプリケーション７３０は、（テナント文脈、たとえば、ＯＳストレージ７３６と通信し得るテナント２のパーティションに基づいて）テナントの仮想テナント・ファイルシステム７３５と通信することができる（Ｉ／Ｏ）。
【０１０９】
一実施形態に従うと、テナント（たとえば、テナント２）の代わりに動作するコンテナ化されたアプリケーションは、必要なクレデンシャルを用いてテナントのデータベース６０８にアクセスすることができる。
【０１１０】
一実施形態に従うと、ＭＴアプリケーションは、プログラムの実行が成功したかどうかを知るために、（たとえば、ｊａｖａプロセスオブジェクトｅｘｉｔＶａｌｕｅ（）法から）プロセスｅｘｉｔＶａｌｕｅステータスコードを得ることができる。ＭＴアプリケーションはまた、プロセス実行が成功したかどうかを調べるために、出力サブフォルダおよびエラーサブフォルダ下にあるリダイレクトされたstdoutファイルおよびstderrファイルを検索することができる。テナント非認識型のコンテナ化されたアプリケーションの実行が完了すると、テナントデータベースにおいて更新された結果は、パーティションにおいて実行されるＭＴアプリケーションによってデータベースから直接アクセスすることができる。
【０１１１】
一実施形態に従うと、ＭＴアプリケーションはまた、プロセス作業ディレクトリおよびそのサブフォルダを削除することができ、これにより、ウォレットなどの出力ファイルおよびｄｂファイルがクリーンアップされる。
【０１１２】
図９は、一実施形態に従った、テナント非認識型プロセスのテナント範囲指定された実行のための環境およびリソースを作成するための例示的な方法を示すフローチャートである。ステップ９１０において、プロセス作業ディレクトリはテナント・ファイルシステム（たとえば、仮想テナント・ファイルシステム）の下に作成することができる。ステップ９２０において、プロセス作業ディレクトリ下のサブディレクトリは、入力フォルダ、出力フォルダ、エラーフォルダおよびデータベースフォルダ用に作成することができる。ステップ９３０において、入力フォルダはデータファイルを用いて設定することができる。ステップ９４０において、データベースフォルダは、テナントデータベース構成ファイルおよびクレデンシャル（たとえば、ウォレット）を用いて設定することができる。ステップ９５０において、テナント文脈に基づいて実行するために、テナント非認識型アプリケーション（たとえば、ＯＳアプリケーション／プロセス）のための環境を完成させることができる。
【０１１３】
図１０は、一実施形態に従った、コンテナ化されたアプリケーションを開始させるためにプロセス・ビルダを作成および構成するための例示的な方法を示すフローチャートである。ステップ１０１０において、プロセス・ビルダ・インスタンス（たとえば、Ｊａｖａ  ＰｒｏｃｅｓｓＢｕｉｌｄｅｒ  ＡＰＩ）が作成され得る。ステップ１０２０において、プロセス環境は（たとえば、テナント文脈を用いて）構成され得る。ステップ１０３０において、プロセス作業ディレクトリが構成され得る。ステップ１０４０において、当該方法により、コンテナ化されたアプリケーションを開始するために実行可能なコマンドラインを構成することができる。ステップ１０５０において、入力ストリーム、出力ストリームおよびエラーストリームなどの、コンテナ化されたアプリケーションからのストリームは、プロセス作業ディレクトリの入力サブディレクトリ、出力サブディレクトリおよびエラーサブディレクトリにリダイレクトすることができる。
【０１１４】
図１１は、一実施形態に従った、ＭＴミドルウェア・アプリケーション（たとえば、ＪＥＥアプリケーション）からのテナント非認識型ＯＳアプリケーションのマルチテナント実行のための例示的な方法を示すフローチャートである。この例示的な方法の前提条件として、ＯＳアプリケーション（すなわちＭＴアプリケーションサーバ環境から呼出されるよう意図されたＯＳアプリケーション）は、コンテナ化されたアプリケーション（たとえば、コンテナ化されたアプリケーション画像）としてパッケージ化することができる。ステップ１１１０において、テナント範囲指定された実行のためのプロセス環境およびリソースは、図９におけるフローチャートによって識別されるように、作成することができる。ステップ１１２０において、プロセス・ビルダ（たとえば、Ｊａｖａ  ＰｒｏｃｅｓｓＢｕｉｌｄｅｒ  ＡＰＩインスタンス）は、図１０におけるフローチャートによって識別されるように、作成および構成することができる。ステップ１１３０において、当該方法によれば、プロセス・ビルダ開始方法を用いて、コンテナ化されたＯＳアプリケーションプロセスを呼出すことができる。このステップにより、構成されたテナント特有の実行環境が作成され、コンテナプロセスが開始される。コンテナ化されたアプリケーションは、コンテナ実行時間によって実施される他のコンテナ＆ＯＳプロセスから実行時間を分離させた状態で、テナント特有の環境およびリソースで実行することができる。ステップ１１４０において、当該方法では、コンテナ化されたアプリケーションプロセス実行が完了するのを待機し得る。ステップ１１５０において、プロセス作業ディレクトリのstdoutファイルから出力されたプロセスと、テナントデータベースから出力されたプロセスとを検索し、いずれかの必要な後処理を実行し、結果を反映してテナント特有のデータベースを更新する。ステップ１１６０において、当該方法では、プロセス作業ディレクトリおよびそのコンテンツを削除しクリーンアップし得る。
【０１１５】
図１２は、マルチテナント・ミドルウェア・アプリケーションから呼出されたテナント非認識型プロセスのテナント範囲指定された実行をサポートするための例示的な方法を示すフローチャートである。ステップ１２１０において、当該方法は、アプリケーションサーバ環境が実行されている１つ以上のコンピュータにおいて、各々がドメインの管理および実行時間下位区分を備える複数のパーティションと、複数のテナント認識型プログラムとを提供し、複数のテナント認識型プログラムの各々は、複数のパーティションのうちの１パーティションに関連付けられている。
【０１１６】
ステップ１２２０において、当該方法は、複数のパーティションおよび複数のテナント認識型プログラムの各々を、複数のテナントのうちの１テナントによって使用されるように当該１テナントに関連付けることができる。
【０１１７】
ステップ１２３０において、当該方法は、複数のパーティションのうちのコーリングパーティションからテナント非認識型プロセスを呼出すことができる。コーリングパーティションは、複数のテナントのうちのコーリングテナントに関連付けられている。
【０１１８】
ステップ１２４０において、当該方法は、コーリングテナントについてのテナンシ情報を収集することができる。
【０１１９】
ステップ１２５０において、当該方法は、収集されたテナンシ情報に基づいて、テナント非認識型プロセスの実行をコーリングテナントに範囲指定することができる。実行を範囲指定することにより、コーリングテナントに範囲指定されたテナント非認識型プロセスの実行をマルチテナント・ミドルウェア環境における他のテナントから分離することが可能になる。
【０１２０】
この発明は、この開示の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ読取り可能記憶媒体を含む、１つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
【０１２１】
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または（１つまたは複数の）コンピュータ読取り可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
【０１２２】
本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅すること、または本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。変更例および変形例は開示された特徴の如何なる適切な組合わせをも含み得る。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。
【図１】
2018536206.tif 000003
【図２】
2018536206.tif 000004
【図３】
2018536206.tif 000005
【図４】
2018536206.tif 000006
【図５】
2018536206.tif 000007
【図６】
2018536206.tif 000008
【図７】
2018536206.tif 000009
【図８】
2018536206.tif 000010
【図９】
2018536206.tif 000011
【図１０】
2018536206.tif 000012
【図１１】
2018536206.tif 000013
【図１２】
2018536206.tif 000014
【国際調査報告】
2018536206.tif 000015
2018536206.tif 000016