(57)【特許請求の範囲】
【請求項１】
企業資源計画システムに使用されるビジネスプログラミングライブラリを有効化する方法であって、前記企業資源計画システムは、ビジネスアプリケーション、メタデータプロバイダ、サービス層、データベース及びクライアントを含み、前記方法は、
ａ）前記企業資源計画システムをサポートするランタイム環境を提供するステップと、
ｂ）ライブラリサービスのためのランタイムアプリケーションプログラムインタフェース（ＡＰＩ）を提供するステップであって、
ビジネスロジック起動ＡＰＩのセットを提供するステップであって、前記企業資源計画システムのクラスにおける少なくとも１つのビジネスメソッドに対応する少なくとも１つのＡＰＩを提供するステップを有し、前記クラスは、ベースクラス、テーブルクラス及びコードユニットクラスを含むグループの１つを含む、ステップと、
データベースアクセスＡＰＩのセットを提供するステップであって、データベース取得、データベース変更、レコード挿入及びレコード削除を含むグループの少なくとも１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、ステップと、
データベース管理機能ＡＰＩのセットを提供するステップであって、データベースサーバ設定、データベースバックアップ、データベース復元、データベーステスト及びデータベース最適化を含むグループの少なくとも１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、ステップと、
メタデータ公開機能ＡＰＩのセットを提供するステップであって、テーブルメタデータの提供及びフォームメタデータの提供を含むグループの少なくとも１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、ステップと、
共通データ型のＡＰＩのセットを提供するステップであって、前記共通データ型のセットの少なくとも１つのメンバに対応する少なくとも１つのＡＰＩを提供するステップを有する、ステップと
を含む、ステップと、
ｃ）前記ビジネスアプリケーション、前記サービス層及び前記メタデータプロバイダの少なくとも１つに対応するビジネスアプリケーションオブジェクトのためにビジネスプログラミングライブラリへの多重スレッドアクセスを提供するステップと、
ｄ）前記ビジネスアプリケーションオブジェクト及び前記サービス層に対するセキュリティ承認チェックを提供するステップであって、前記ビジネスアプリケーションオブジェクトによってまたは前記サービス層によって前記ランタイムＡＰＩが起動された場合にセキュリティ承認チェックを提供するステップを有する、ステップと
を含み、
前記多重スレッドアクセスを提供するステップは、前記データベースのリソースを第１のスレッドに割当てるステップを含み、
前記データベースのリソースを第１のスレッドに割当てるステップは、
前記リソースをクロスコネクトとパーコネクトのうちの１つとしてカテゴリ付けするステップと、
前記リソースがクロスコネクトとしてカテゴリ付けされて、第１のクライアントの接続が前記リソースのプライベートコピーを要求した場合に、前記接続が生成された際に前記プライベートコピーを生成するステップと、
第１のスレッドが第１の要求されたライブラリサービスの第１のランタイムＡＰＩを起動して前記リソース上で動作する場合には、
前記第１のスレッドと前記第１のクライアントと前記第１のクライアントの前記接続との間の関連付けを有する接続オブジェクトを取得し、
前記リソースと前記接続オブジェクトと前記第１のスレッドとの間の関連付けを有する要求された参照を生成し、
前記リソースがクロスコネクトとしてカテゴリ付けされた場合に、前記第１のランタイムＡＰＩが前記リソース上で動作している間に前記リソースをロックし、前記第１のランタイムＡＰＩの動作が終了した後に前記リソースへのロックを解除し、
前記リソースがパーコネクトとしてカテゴリ付けされた場合に、前記リソースを前記接続オブジェクトの子として保存する動作と、前記リソースがパーサービスコールであれば前記リソースをスタックベースのデータとして示す動作とを含む動作のグループの１つを選択する、
ステップと
を含むことを特徴とする方法。
【請求項２】
前記サービス層が前記企業資源計画システムのウェブサービスハブを含み、前記データベースがリレーショナルデータベースを含むことを特徴とする請求項１に記載の方法。
【請求項３】
１または複数のライブラリサービス及び前記ライブラリサービスの各々のランタイムＡＰＩを追加、削除及び変更するためにインタフェースを有効化するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記多重スレッドアクセスを提供するステップは、１または複数のライブラリサービスの１または複数のランタイムＡＰＩへの１または複数のスレッドアクセスを非シーケンシャルな態様で提供するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記セキュリティ承認チェックを提供するステップは、ライセンス承認及び顧客によって定義された承認を含むグループの少なくとも１つに対応するセキュリティ承認を付与するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記セキュリティ承認チェックを提供するステップは、
間接的承認データの第１のセットを含むリソースハンドルを生成するステップを有する、前記データベースのリソースに対する間接的承認をランタイムにおいて付与するステップと、
間接的承認データの第２のセットを含むアプリケーションオブジェクトハンドルを生成するステップを含む、第２のビジネスアプリケーションに対応するアプリケーションオブジェクトに関する間接的承認を確認するステップと、
第２のスレッドと第２のクライアントと前記第２のクライアントの接続との間の関連付けを含む接続オブジェクトを取得するステップと、
前記第２のスレッド及び前記第２のクライアントの接続が前記第２のビジネスアプリケーションに対応する場合には、
前記アプリケーションオブジェクトを取得し、
前記第２のスレッドが第２の要求されたライブラリサービスの第２のランタイムＡＰＩを起動して前記リソースにアクセスする場合に、前記アプリケーションオブジェクトハンドル及び前記リソースハンドルの両方がアクセスは許可されていることを示しているならば、間接的承認を付与する、
ステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記セキュリティ承認チェックを提供するステップは、
間接的承認データの第３のセットを含むアプリケーションオブジェクトハンドルを生成するステップを有する、第３のビジネスアプリケーションに対応するアプリケーションオブジェクトに対する実行可能承認をランタイムにおいて付与するステップと、
第３のスレッドと第３のクライアントと第３のクライアントの接続との間の関連付けを含む接続オブジェクトを取得するステップと、
前記第３のスレッド及び前記第３のクライアントの接続が前記第３のビジネスアプリケーションに対応し、かつ前記第３のスレッドが第３の要求されたライブラリサービスの第３のランタイムＡＰＩを起動した場合には、前記アプリケーションオブジェクトハンドルが、アクセスが許可されていることを示しているならば実行可能承認を付与するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
企業資源計画システムに使用されるビジネスプログラミングライブラリを有効化する方法であって、前記企業資源計画システムは、
ビジネスアプリケーションと、
メタデータプロバイダと、
前記企業資源計画システムのウェブサービスハブを含むサービス層と、
リレーショナルデータベースを含むデータベースと、
クライアントと、を含み、
前記方法は、
ａ）前記企業資源計画システムをサポートするランタイム環境を提供するステップと、
ｂ）ライブラリサービスに対するランタイムアプリケーションプログラムインタフェース（ＡＰＩ）を提供するステップと、を含み、
前記ステップｂ）は、
前記企業資源計画システムのクラスであって、ベースクラス、テーブルクラス及びコードユニットクラスを含むグループの１つを含むクラスにおいて少なくとも１つのビジネスメソッドに対応する少なくとも１つのＡＰＩを提供するステップを有する、ビジネスロジック起動ＡＰＩのセットを提供するステップと、
データベース取得、データベース変更、レコード挿入及びレコード削除を含むグループの１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、データベースアクセスＡＰＩのセットを提供するステップと、
データベースサーバ設定、データベースバックアップ、データベース復元、データベーステスト及びデータベース最適化を含むグループの少なくとも１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、データベース管理機能ＡＰＩのセットを提供するステップと、
テーブルメタデータの提供及びフォームメタデータの提供を含むグループの少なくとも１つに対応する少なくとも１つのＡＰＩを提供するステップを含む、メタデータ公開機能ＡＰＩのセットを提供するステップと、
共通データ型のセットのメンバの少なくとも１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、共通データ型のＡＰＩのセットを提供するステップと、を含み、
前記方法が、さらに、
ｃ）前記ビジネスアプリケーション、前記サービス層及び前記メタデータプロバイダの少なくとも１つに対応するビジネスアプリケーションオブジェクトに対して前記ビジネスプログラミングライブラリへの多重スレッドアクセスを提供するステップと、
ｄ）前記ランタイムＡＰＩが前記ビジネスアプリケーションオブジェクトによってかまたは前記サービス層によって起動された場合にセキュリティ承認チェックを提供するステップを有する、前記ビジネスアプリケーションオブジェクト及び前記サービス層に対するセキュリティ承認チェックを提供するステップと、
を含み、
前記多重スレッドアクセスを提供するステップは、
１）１または複数のライブラリサービスの１または複数のランタイムＡＰＩへの１または複数のスレッドアクセスを非シーケンシャルな態様で提供するステップと、
２）前記データベースのリソースを第４のスレッドに割当てるステップと
を含み、
前記ステップ２）は、
前記リソースをクロスコネクトとパーコネクトのうちの１つとしてカテゴリ付けするステップと、
前記リソースがクロスコネクトとしてカテゴリ付けされて、第４のクライアントの接続が前記リソースのプライベートコピーを要求した場合に、前記接続が生成された際に前記プライベートコピーを生成するステップと、
第４のスレッドが第４の要求されたライブラリサービスの第４のランタイムＡＰＩを起動して前記リソース上で動作する場合には、
前記第４のスレッドと前記第４のクライアントと前記第４のクライアントの前記接続との間の関連付けを有する接続オブジェクトを取得し、
前記リソースと前記接続オブジェクトと前記第４のスレッドとの間の関連付けを有する要求された参照を生成し、
前記リソースがクロスコネクトとしてカテゴリ付けされた場合に、前記第４のランタイムＡＰＩが前記リソース上で動作している間に前記リソースをロックし、前記第４のランタイムＡＰＩの動作が終了した後に前記リソースへのロックを解除し、
前記リソースがパーコネクトとしてカテゴリ付けされた場合に、前記リソースを前記接続オブジェクトの子として保存する動作と、前記リソースがパーサービスコールであれば前記リソースをスタックベースのデータとして示す動作とを含む動作のグループの１つを選択する、
ステップと
を含むことを特徴とする方法。
【請求項９】
セキュリティ承認チェックを提供するステップは、
前記データベースのテーブルへアクセスするための第５の要求されたライブラリサービスが、パトロンのアプリケーションであって前記ビジネスアプリケーション及び前記サービス層からなるグループの１つを含むアプリケーションに対応したパトロンアプリケーションオブジェクトによって起動された場合に、セキュリティ承認チェックを提供するステップを含み、
前記セキュリティ承認チェックを提供するステップは、
前記パトロンアプリケーションオブジェクトに対応するアプリケーションオブジェクトハンドルであって、間接的承認データ及び実行可能承認データからなるグループの１つを含む前記アプリケーションオブジェクトに関する承認データの第２のセットを含むアプリケーションオブジェクトハンドルを生成するステップと、
承認が前記パトロンアプリケーションオブジェクトに付与されているかを判定するために前記アプリケーションオブジェクトハンドルを使用するステップと
を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記パトロンアプリケーションオブジェクトに承認が付与されているかを判定するステップは、間接的承認及び実行可能承認をからなるグループの１つが付与されているかを判定するステップを含み、
間接的承認が付与されているかを判定するステップは、前記テーブルに対する間接的承認データの第２のセットを含む前記アプリケーションオブジェクトハンドル及び前記テーブルのハンドルの両方がアクセスが許可されていることを示している場合に間接的承認を付与するステップを含み、
実行可能承認が付与されているかを判定するステップは、前記アプリケーションオブジェクトハンドルがアクセスが許可されていることを示している場合に、実行可能承認を付与するステップを含む
ことを特徴とする請求項９に記載の方法。
【請求項１１】
企業資源計画システムに使用されるビジネスプログラミングライブラリを有効化する方法をコンピュータに実行させるプログラムを記録したコンピュータ可読記憶媒体であって、前記企業資源計画システムが、ビジネスアプリケーション、メタデータプロバイダ、サービス層、データベース及びクライアントを含み、
前記プログラムは、前記コンピュータに、
ａ）前記企業資源計画システムをサポートするランタイム環境を提供するステップと、
ｂ）ライブラリサービスのためのランタイムアプリケーションプログラムインタフェース（ＡＰＩ）を提供するステップと
を実行させ、
前記ステップｂ）が、
前記企業資源計画システムのクラスであって、ベースクラス、テーブルクラス及びコードユニットクラスを含むグループの１つからなるクラスにおける少なくとも１つのビジネスメソッドに対応する少なくとも１つのＡＰＩを提供するステップを有する、ビジネスロジック起動ＡＰＩのセットを提供するステップと、
データベース取得、データベース変更、レコード挿入及びレコード削除からなるグループの１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、データアクセスＡＰＩのセットを提供するステップと、
データベースサーバ設定、データベースバックアップ、データベース復元、データベーステスト及びデータベース最適化からなるグループの少なくとも１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、データベース管理機能ＡＰＩのセットを提供するステップと、
テーブルメタデータの提供及びフォームメタデータの提供からなるグループの少なくとも１つに対応する少なくとも１つのＡＰＩを提供するステップを有する、メタデータ公開機能ＡＰＩのセットを提供するステップと、
共通データ型のセットのメンバの少なくとも１つに対応する少なくとも１つのＡＰＩを含む共通データ型のＡＰＩのセットを提供するステップと、を含み、
前記プログラムは、さらに前記コンピュータに、
ｃ）前記ビジネスアプリケーション、前記サービス層及び前記メタデータプロバイダの少なくとも１つの対応するビジネスアプリケーションオブジェクトに関する前記ビジネスプログラミングライブラリへの多重スレッドアクセスを提供するステップと、
ｄ）前記ランタイムＡＰＩが前記ビジネスアプリケーションオブジェクトによって起動されたかまたは前記サービス層によって起動された場合に、セキュリティ承認チェックを提供するステップを有する、前記ビジネスアプリケーションオブジェクトに関するセキュリティ承認チェック及び前記サービス層に関するセキュリティ承認チェックを提供するステップと
を実行させ、
前記多重スレッドアクセスを提供するステップは、前記データベースのリソースを第１のスレッドに割当てるステップを含み、
前記データベースのリソースを第１のスレッドに割当てるステップは、
前記リソースをクロスコネクトとパーコネクトのうちの１つとしてカテゴリ付けするステップと、
前記リソースがクロスコネクトとしてカテゴリ付けされて、第１のクライアントの接続が前記リソースのプライベートコピーを要求した場合に、前記接続が生成された際に前記プライベートコピーを生成するステップと、
第１のスレッドが第１の要求されたライブラリサービスの第１のランタイムＡＰＩを起動して前記リソース上で動作する場合には、
前記第１のスレッドと前記第１のクライアントと前記第１のクライアントの前記接続との間の関連付けを有する接続オブジェクトを取得し、
前記リソースと前記接続オブジェクトと前記第１のスレッドとの間の関連付けを有する要求された参照を生成し、
前記リソースがクロスコネクトとしてカテゴリ付けされた場合に、前記第１のランタイムＡＰＩが前記リソース上で動作している間に前記リソースをロックし、前記第１のランタイムＡＰＩの動作が終了した後に前記リソースへのロックを解除し、
前記リソースがパーコネクトとしてカテゴリ付けされた場合に、前記リソースを前記接続オブジェクトの子として保存する動作と、前記リソースがパーサービスコールであれば前記リソースをスタックベースのデータとして示す動作とを含む動作のグループの１つを選択する、
ステップと
を含むことを特徴とするコンピュータ可読記憶媒体。
【請求項１２】
前記サービス層が、前記企業資源計画システムのウェブサービスハブを含み、前記データベースがリレーショナルデータベースを含むことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記プログラムは、さらに前記コンピュータに、
インタフェースを有効化して、１または複数のライブサービス及びこれら各々に対応するランタイムＡＰＩを追加、削除及び変更するステップを実行させることを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記多重スレッドアクセスを提供するステップが、１または複数のライブラリサービスの１または複数のランタイムＡＰＩへの１または複数のスレッドアクセスを非シーケンシャルな態様で提供するステップを含むことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記セキュリティ承認チェックを提供するステップが、ライセンス承認及び顧客によって定義された承認からなるグループの１つに対応するセキュリティ承認を付与するステップを含むことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１６】
セキュリティ承認チェックを提供するステップは、
間接的承認データの第１のセットを含むリソースハンドルを生成するステップを有する、ランタイムにおいて前記データベースのリソースに対して間接的承認を付与するステップと、
間接的承認データの第２のセットを含むアプリケーションオブジェクトハンドルを生成するステップを有する、ランタイムにおいて第２のビジネスアプリケーションに対応するアプリケーションオブジェクト、に対して間接的承認を付与するステップと、
第２のスレッドと第２のクライアントと前記第２のクライアントの接続との間の関連づけを含む接続オブジェクトを取得するステップと、
前記第２のスレッド及び前記第２のクライアントの接続が前記第２のビジネスアプリケーションに対応する場合に、前記アプリケーションオブジェクトを取得し、前記第２のスレッドが第２の要求されたライブラリサービスの第２のランタイムＡＰＩを起動して前記リソースにアクセスすると、前記アプリケーションオブジェクトハンドル及び前記リソースハンドルの両方がアクセスが承認されていることを示している場合に間接的承認を付与するステップと
を含むことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１７】
セキュリティ承認チェックを提供するステップは、
間接的承認データの第３のセットを含むアプリケーションオブジェクトハンドルを生成するステップを有する、ランタイム環境において第３のビジネスアプリケーションに対応するアプリケーションオブジェクトに対して実行可能承認を付与するステップと、
第３のスレッドと第３のクライアントと第３のクライアントの接続との間の関連付けを含む接続オブジェクトを取得するステップと、
前記第３のスレッド及び前記第３のクライアントの接続が前記第３のビジネスアプリケーションに対応しかつ前記第３のスレッドが第３の要求されたライブラリサービスの第３のランタイムＡＰＩを起動した場合に、前記アプリケーションオブジェクトハンドルがアクセスが許可されていることを示しているならば、実行可能承認を付与するステップと
を含むことを特徴とする請求項１１に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
企業資源計画システム（ＥＲＰ）は、カスタマイズされたアプリケーションを生成するための開発者経験を開放してユーザ経験を拡張及び向上させるために、従来よりもさらに広く公開されるようになってきている。このため、ＥＲＰのアーキテクチャは、複数の言語、データベース技術及びビジネスフレームワーク（business framework）のサポートをＥＲＰで可能にさせることによって、これらの変更を許容するように変化している。
【０００２】
しかし、アーキテクチャの変更は、製品におけるＥＲＰシステムのプロバイダ及びＥＲＰシステムのクライアントの両方による実質的な投資を維持する方法を模索して、現行のシステム及びアプリケーションが廃止を宣告されないようにするべきである。アーキテクチャの変更は、更新中の時間消費及び／またはコスト消費を最小化する必要がある。また、追加の複数の言語及び／またはビジネスフレームワークへの移行のような将来の変更が行われるプラットフォームを提供する必要もある。発生するセキュリティの問題及びセキュリティの性能も解決する必要がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
この発明の概要の欄は、発明を実施するための形態において以下でさらに説明されるコンセプトを単純な形式で紹介するものである。この発明の概要は、本発明の重要な特徴または本質的な特徴を特定することを意図されておらず、本発明の範囲を限定するために使用されることも意図されていない。
【０００４】
ビジネスプログラミングライブラリ（business programming library）は、企業資源計画システム（ＥＲＰ）における使用に関して開示している。当該ライブラリのアーキテクチャは、複数の次世代の言語、データベース技術及びビジネスフレームワークをサポートするのに十分なだけロバスト（robust）である。当該ライブラリは、企業資源計画システムにおいて様々な役目を果たすことができる。当該ライブラリは、ＥＲＰのコンポーネントによって使用される共通のデータ型（data type）及び共通ビジネスメソッド機能（business method function）にアクセスしてクライアントリクエストを提供するためのアプリケーションプログラムインタフェース（ＡＰＩ）のクラスライブラリとして提供される。当該ライブラリは、ＥＲＰコンパイラに対するランタイム環境として提供されて要求されたランタイムコール（run-time call）を出力してもよい。当該ライブラリは、ＥＲＰのコンポーネントに関するデータベースアクセスメカニズムとして提供されて、ＥＲＰデータとインタフェースを取ってもよい。当該ライブラリは、テーブル、フォーム（form）、フォームパーソナリゼーション（form personalization）等のメタデータを提供する。また、当該ライブラリは、ＥＲＰデータベースに管理機能を提供できる。この態様において、これらのサービスは、ライブラリ内に統合されてもよい。従って、タイプ、メソッド、データベース情報及びアクセスの集中管理環境を提供できる。これらのサービスを集中化されたライブラリ内に集めてこれらをＡＰＩとして実装することによって、データアクセスがＥＲＰ全体にではなく単一の場所に集中させられるので、変更のコスト及び不便さが軽減される。次世代の言語またはフレームワークの追加は、集中化されたライブラリの存在によってコスト効率の良い態様で行うことができる。加えて、データアクセスのための現行のクライアントインタフェースは、ビジネスプログラミングライブラリの最小限の変更によって提供されることが可能であり、それらの投資が保護される。
【０００５】
ビジネスプログラミングライブラリが動作する企業資源システムは、ＥＲＰシステム、サービスリクエストのハブのように機能するサービス層（service tier）、メタデータプロバイダ、リレーショナルまたは非リレーショナルなデータベース、及び会社のためのアプリケーションをカスタマイズするためにクライアント開発者によって生成されるビジネスアプリケーションオブジェクトに、クライアント（エンドユーザまたは開発者）がアクセスするためのインターネットインタフェースを有していてもよい。これらのコンポーネントは、同一のコンピュータ（単数または複数）またはサーバ（単数または複数）に存在しても良いしそうでなくとも良い。サービス層、メタデータプロバイダ及びビジネスアプリケーションオブジェクトは、ビジネスプログラミングライブラリのパトロンであってもよいし、他のコンポーネントが同様のインタフェースを介して当該ライブラリを使用してもよい。
【０００６】
ビジネスプログラミングライブラリのアーキテクチャは、ライブラリサービスのタイプに対応するＡＰＩをグループ化できる。当該ライブラリのパトロンは、タスクを行うのに必要である必須ライブラリサービス（単数または複数）に対応するＡＰＩ（単数または複数）を起動する。ビジネスロジック起動サービスは、限定するものではないが、ベースクラス、テーブルクラス、コードユニットクラス及び使用される他のクラス等のＥＲＰのクラスにおいて動作するビジネスメソッドで構成されていても良い。データベースアクセスサービスは、読み込み、変更、挿入及び削除で構成されていても良い。データベース管理サービスは、限定するものではないが、サーバ設定、データベースバックアップ、データベース修復、データベーステスト及びデータベース最適化等の機能を含んでいても良い。メタデータ公開機能は、テーブル、フォーム及び他のメタデータをＥＲＰに公開しても良い。そして、限定する訳ではないが、ブーリアン（boolean）、整数、日付、ＧＵＩＤ、文字列等は、当該ビジネスプログラミングライブラリを介してアクセス可能である。当該ライブラリは、管理者のためのインタフェース、ＥＲＰのコンポーネント、または当該ライブラリグループ及び当該ライブラリグループのコンテンツを追加、削除及び変更するいくつかの他のプロセスを提供することも可能である。
【０００７】
ビジネスプログラミングライブラリは、ＥＲＰのデータベースへのマルチスレッドアクセスが可能である。リソースすなわち当該ライブラリのＡＰＩが動作するデータベースのオブジェクトは、接続の存続期間全体に亘って、必要であるか否かに基づいて当該ライブラリによって管理される。当該ライブラリは、２以上のスレッドがＡＰＩを起動して非シーケンシャルな態様でリソースにアクセスすることを可能とする。
【０００８】
ビジネスプログラミングライブラリは、セキュリティ承認チェックの層を提供しても良い。当該セキュリティ承認は、ライセンス契約及び顧客が定義した承認に基づいて付与されても良い。間接的承認チェック（indirect permission check）及び実行可能承認チェック（executable permission check）は、ライブラリのパトロン（限定する訳ではないが通常はサービス層またはビジネスアプリケーションオブジェクトである）がＡＰＩを起動する際に行われる。サービス層における全セキュリティチェックと組み合わされたセキュリティ承認チェックは、ＥＲＰシステムサーバ側のセキュリティチェックを集中化して、セキュリティの強度を向上させる。
【図面の簡単な説明】
【０００９】
【図１】本願請求項に従って動作し得る例示のコンピュータシステムのブロック図である。
【図２】例示の企業資源計画システムを示し、かつ当該システムにビジネスプログラミングライブラリを如何に適合させるか示した図である。
【図３】ビジネスプログラミングを有効にするプロセスの実施形態の図である。
【図４】ビジネスプログラミングライブラリへのマルチスレッドアクセスを提供する方法の実施形態の図である。
【図５】ビジネスプログラミングライブラリにおける間接的セキュリティ承認のチェックの例示の方法の図である。
【図６】ビジネスプログラミングライブラリにおける実行可能承認のチェックの方法の実施形態を示した図である。
【発明を実施するための形態】
【００１０】
多数の異なった実施形態を以下に詳細に説明するが、当該説明の法的な範囲は、本願の最後に記載される特許請求の範囲の文言によって定義されると理解されるべきである。この発明を実施するための形態は、単なる例示として解釈され、全ての可能な実施形態を記載してはいない。全ての可能な実施形態を記載することは、不可能ではないにしても非現実的であるからである。現在の技術又は本願出願日以降に発展した技術を使用して、多数の代替実施形態を実施でき、これらも本発明の範囲内にある。
【００１１】
本願において、用語は「本明細書において、用語ＯＯはＯＯを意味すると定義される」という文またはこれに類似した文を使用して明示的に定義される。しかし、当該用語の意味を、明白な意味又は普通の意味を越えて明示的にまたは暗に限定する意図はなく、このような用語は、（特許請求の範囲の文言以外の）本願のどのセクションにおけるどの記述に基づいた範囲内にも限定されるべきではない。単に読者を混乱させないように明確にする目的で、本願の最後にある特許請求の範囲に記載されている用語が、一貫して単一の意味で本願において言及されている場合において、特許請求の範囲の用語は、暗示等によって当該単一の意味に限定されることは意図されていない。最終的に、特許請求の範囲の要素が、構造を全く記載しないで、「手段」及び機能で記載されることによって定義されるが、特許請求の範囲の全ての請求項の要素の範囲が、米国特許法１１２条の第６段落に基づいて解釈されることは意図されてはいない。
【００１２】
図１を参照すると、特許請求の範囲に記載された方法及び装置を実装する例示のシステムが、コンピュータ１１０である汎用コンピュータデバイスを含んでいる。破線の枠内に示されたコンポーネントは、厳密に言えばコンピュータ１１０の一部ではないが、図１の例示の実施形態を示すために使用される。コンピュータ１１０のコンポーネントは、限定する訳ではないが、プロセッサ１２０と、システムメモリ１３０と、ノースブリッジ（Northbridge）チップとしても知られるメモリ／グラフィクスインタフェース１２１と、サウスブリッジ（Southbridge）チップとしても知られるＩ／Ｏインタフェースと、を含んでもよい。システムメモリ１３０及びグラフィックプロセッサ１９０は、メモリ／グラフィクスインタフェース１２１に接続されていてもよい。モニタ１９１または他のグラフィック出力デバイスは、グラフィックプロセッサ１９０に接続されていてもよい。
【００１３】
一連のシステムバスは、プロセッサ１２０とメモリ／グラフィクスインタフェース１２１とシステムメモリ１３０との間にある高速システムバス１２３、メモリ／グラフィクスインタフェース１２１とＩ／Ｏインタフェース１２２との間にあるフロントサイドバス１２４、及びメモリ／グラフィクスインタフェース１２１とグラフィクスプロセッサ１９０との間にあるＡＧＰ（advanced graphics processing）バス１２５を含む様々なシステムコンポーネントを接続してもよい。システムバス１２３は、例示であって限定するものではないが、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス及びＥＩＳＡ（Enhanced ISA）バスを含むアーキテクチャ等を含む様々なバスのいずれかであってもよい。システムアーキテクチャ進化すると、他のバスアーキテクチャ及びチップセットが使用され得るが、多くの場合はこの例示のパターンに従い得る。例えば、インテル及びＡＭＤ等の企業は、インテルハブアーキテクチャ（Intel hub Architecture（ＩＨＡ））及びハイパートランスポートアーキテクチャを各々サポートしている。
【００１４】
コンピュータ１１０は、通常は様々なコンピュータ可読媒体を含んでいる。コンピュータ可読媒体は、コンピュータ１１０によってアクセス可能な市販の媒体であり、揮発性及び不揮発性媒体、リムーバブル及び非リムーバブル媒体の両方を含む。例示であって、限定するものではないが、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含んでもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ用の情報の保存のための方法又は技術において実装される、揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体の両方を含む。コンピュータ記憶媒体は、限定する訳ではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤもしくは他の光学ディスク媒体、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイスまたは他の任意の媒体であって所望の情報を保存可能かつコンピュータ１１０によってアクセス可能な媒体を含む。通信媒体は、通常はコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを搬送波または他の搬送メカニズム等の変調データ信号内に包含し、通信媒体には、任意の情報伝送媒体を含む。用語「変調データ信号」は、当該信号内でエンコードされる態様等で設定又は変更された１または複数の特徴を有する信号を意味する。例示であって、限定する訳ではないが、通信媒体は、有線ネットワーク即ち直接ワイヤ接続等の有線媒体並びに音波、ＲＦ、赤外線及び他の無線媒体等を含む。上記したいずれかのものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００１５】
システムメモリ１３０は、ＲＯＭ１３１、ＲＡＭ１３２等の揮発性及び／または不揮発性メモリであるコンピュータ記憶媒体を含む。システムＲＯＭ１３１は、識別情報及び製造情報等の不変のシステムデータ１４３を含む。いくつかの実施形態において、ＢＩＯＳ（basic input/output system）もシステムＲＯＭ１３１内に保存される。ＲＡＭ１３２は、通常は、プロセッサ１２０によって速やかにアクセス可能でありかつ／またはプロセッサ１２０によってすぐに実行されるデータ並びに／またはプログラムモジュールを含む。例示であって、限定するものではないが、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６及びプログラムデータ１３７を示している。
【００１６】
Ｉ／Ｏインタフェース１２２は、システムバス１２３を、様々な内部及び外部デバイスをコンピュータ１１０に接続するいくつかのバス１２６、１２７及び１２８に接続される。シリアルペリフェラルインタフェース（serial peripheral interface（ＳＰＩ））バス１２６は、例えば起動中にコンピュータ１１０内の要素間で情報を伝達する基本ルーチンを含むＢＩＯＳメモリ１３３に接続していてもよい。
【００１７】
スーパー入力／出力チップ（super input/output chip）１６０は、例えば、フロッピー（登録商標）ディスク１５２、キーボード／マウス１６２及びプリンタ等のいくつかの「レガシー（legacy）」周辺機器に接続するために使用されてもよい。いくつかの実施例において、スーパー入力／出力チップ１２２は、Ｉ／Ｏインタフェース１２１に、ローピンカウント（ＬＰＣ）バスで接続されてもよい。スーパーＩ／Ｏチップ１２１は、商業市場において広く入手可能である。
【００１８】
１つの実施形態において、バス１２８は、ＰＣＩ（Peripheral Component Interconnect）、またはＩ／Ｏインタフェースへのさらに高速な接続のために使用され得るＰＣＩの変形例であってもよい。ＰＣＩバスは、メザニンバスとしても知られている。ＰＣＩバスの変形例は、ＰＣＩ−Ｅ（PCI-Express）バス及びＰＣＩ−Ｘ（PCI-Extended）バスを含む。前者はシリアルインタフェースを有し、後者は下位互換性のあるパラレルインタフェースである。他の実施形態において、バス１２８は、シリアルＡＴＡ（ＳＡＴＡ）またはパラレルＡＴＡ（ＰＡＴＡ）であるＡＴＡ（advanced technology attachment）バスでもよい。
【００１９】
コンピュータ１１０は、他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体を含んでもよい。単に例示であるが、図１は、非リムーバブルで不揮発性の磁気媒体から読み出しまたは書き込みを行うハードディスクドライブ１４０を示している。ＵＳＢメモリ１５２またはＣＤ／ＤＶＤドライブ１５６等のリムーバブル媒体は、直接かまたはインタフェース１５０を介してＰＣＩバス１２８に接続されている。例示の動作環境において使用され得る他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体は、限定するものではないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等を含む。
【００２０】
上述されかつ図１内に示されているドライブ及びそれに付随するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びコンピュータ１１０に関する他のデータを保存する。例えば、図１において、ハードディスクドライブ１４０は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６及びプログラムデータ１４７を保存しているように示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６及びプログラムデータ１３７と同一であるかまたは異なっていてもよい。本明細書において、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６及びプログラムデータ１４７には異なった参照符号が付され、それらが少なくとも異なったコピーであることが示されている。ユーザは、マウス／キーボード１６２又は他の入力デバイス組み合わせ等の入力デバイスを介してコンピュータ２０内にコマンド及び情報を入力しても良い。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ（satellite dish）、スキャナ等を含んでもよい。これら及び他の入力デバイスは、しばしば、ＳＰＩ１２６、ＬＰＣ１２７又はＰＣＩ１２８等のＩ／Ｏインタフェースバスの１つを介して処理ユニット１２０に接続されているが、他のバスが使用されてもよい。いくつかの実施形態において、他のデバイスが、スーパーＩ／Ｏチップ１６０を介して、パラレルポート、赤外線インタフェース、ゲームポート等（図示せず）に接続されてもよい。
【００２１】
コンピュータ１１０は、ネットワーク環境において動作させられ、ネットワークインタフェースコントローラ（ＮＩＣ）１７０を経由して、リモートコンピュータ１８０等の１又は複数のリモートコンピュータとの論理接続を使用する。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードであってもよく、コンピュータ１１０に関して上述された要素の多く又は全てを含む。図１に示されたＮＩＣ１７０とリモートコンピュータ１７０との論理接続は、ＬＡＮ、ＷＡＮまたはその両方を含んでもよいし、他のネットワークを含んでもよい。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット及びインターネット内において一般的である。
【００２２】
いくつかの実施形態において、ネットワークインタフェースは、ブロードバンド（広帯域）接続が利用できないまたは使用されない場合にモデム（図示せず）を使用してもよい。図示されたネットワーク接続は例示であり、コンピュータ間の接続リンクを確立する他の手段が使用されてもよい。
【００２３】
図２は、例示の企業資源計画システム環境２００を示しており、この中にビジネスプログラミングライブラリ２０３が存在する。企業資源計画システム（ＥＲＰ）２００は、ＥＲＰのウェブサービスをホストするインターネット情報サーバ（ＩＩＳ）（２０５）からなっていてもよい。ＩＩＳ（２０５）は、当該ＥＲＰサービスのインタフェースであって１または複数のクライアント２０８に対するインタフェースとして機能する。クライアント２０８は、ＥＲＰシステム２００のエンドユーザであるか、または当該ＥＲＰシステム２００のプラットフォームを使用してカスタムされたビジネスアプリケーションオブジェクト２１０を生成する開発者である。ビジネスアプリケーションオブジェクト２１０は、管理されたコード、管理されていないコードまたはこれらの任意の組み合わせから構成されていてもよい。当該ＥＲＰサービスは、サービス層２１５によって統合及び管理されていてもよく、サービス層２１５は、クライアント２０８からＩＩＳ２０５を介したリクエストを提供するハブのように機能する。サービスブローカー２１８は、ウェブサービスの構築及びカスタマイズのためにＩＩＳを介して当該ＥＲＰ開発環境を使用することをクライアント開発者２０８に可能にさせるエンティティである。ビジネスアプリケーションオブジェクト２１０は、カスタマイズのためにサービスブローカー２１８と直接対話してもよい。メタデータプロバイダ２２０は、サービス層２１５及びサービスブローカー２１８によって要求されたメタデータ（限定する訳ではないが、フォーム、フォームパーソナリゼーション（form personalization）及びテーブル）を提供することに関与してもよい。サービス層２１５、メタデータプロバイダ２２０及びビジネスアプリケーションオブジェクト２１０は、ビジネスプログラミングライブラリ２０３との直接のインタフェースを有していてもよい。図２では示されていないが、企業資源計画システム環境２００の他のコンポーネントがＥＲＰ２００内に存在してもよい。これらのコンポーネントも、ビジネスプログラミングライブラリ２０３とのインタフェースを有する。
【００２４】
ビジネスプログラミングライブラリ２０３は、要求されたランタイムコードをＥＲＰコンパイラが出力するためのランタイム環境を提供してもよい。ライブラリ２０３は、ＥＲＰに関する実データ（テーブル、フォーム、メソッド等）を有していなくてもよいが、ライブラリサービスのセットに対応し、パトロンがデータにアクセスするためのアプリケーションプログラムインタフェース（ＡＰＩ）２２３、２２５、２２８、２３０、２３３のセットを含んでもよい。当該データ自体は、１または複数のＥＲＰデータベース２３５内に保存されていてもよい。ＥＲＰデータベース２３５は、リレーショナルであってもリレーショナルでなくともよい。ライブラリ２１０、２１５、２１８のパトロンは、必要なライブラリサービス２２３、２２５、２２８、２３０、２３３のＡＰＩを起動してクライアントリクエストを提供してもよい。
【００２５】
ビジネスプログラミングライブラリ２０３に関する説明を行うために、企業資源計画システム２００におけるコンセプトを以下に説明する。新しい接続が、クライアント２０８からＩＩＳ２０５を介して確立されて、システム２００における一連の動作が実行される。サービス層２１５は、このＩＩＳセッションに関する接続オブジェクトを生成して、当該接続オブジェクトにスレッドを割り当てる。任意の時刻において、接続に関する唯一のスレッドが存在し得る。接続の存続期間に亘って、様々なアプリケーションオブジェクトが起動されてタスクを実行できる。アプリケーションオブジェクトは、サードパーティの開発者によって生成されるか、またはサービス層２１５の一部である。使用中において、アプリケーションオブジェクトは、接続、スレッド及びセキュリティデータに付随していてもよい。アプリケーションオブジェクトのタスクを実行するために、アプリケーションオブジェクトは、メタデータプロバイダ２２０及び任意の必要なＡＰＩ２２３、２２５、２２８、２３０、２３３を起動することによってライブラリ２０３を利用して、データベース２３５のフォーム、テーブル、レコード及び他の同様のリソースを生成、削除または変更してもよい。
【００２６】
従って、ライブラリ２０３は、データ型及びビジネスロジックメソッド機能にアクセスするためのランタイムクラスライブラリＡＰＩとして機能してもよい。ライブラリ２０３は、公開されていてもいなくともよい。ビジネスロジックライブラリサービスＡＰＩ２２３のセットは、ＥＲＰのクラスにおける１または複数のビジネスメソッドに対するＡＰＩを含んでいてもよい。この場合、クラスは、テーブルクラス、コードユニットクラスまたはベースクラスでよいし、他のクラスでもよい。ビジネスメソッドのセットは、ビジネスロジックライブラリサービスＡＰＩ２２３によってサポートされる。同様に、共通型（common type）２２５のセットは、ビジネスプログラミングライブラリ２０３を介してアクセスされる。実行可能なビジネスメソッド及び共通タイプの包括的なリストは、ＥＲＰシステムの当業者に一般的に知られており、本特許出願の対象外である。
【００２７】
ライブラリ２０３内のデータベースアクセスライブラリサービス２２８に対応するＡＰＩのセットは、限定する訳ではないが、取得、変更、挿入及び削除等の１または複数のデータベース機能に関するＡＰＩを含んでもよい。データベース管理（database administration）２３０に対応するＡＰＩのセットは、限定する訳ではないが、サーバ設定、サーババックアップ、サーバ復元、サーバテスト及びサーバ最適化等の１または複数の管理機能に関するＡＰＩを含んでいてもよい。メタデータ公開ライブラリサービス２３３に対応するＡＰＩのセットは、ライブラリのパトロンが、クライアントリクエストの提供において使用するテーブル、フォーム及び他のメタデータを取得するためのＡＰＩを提供する。
【００２８】
ビジネスプログラミングライブラリ２０３は、ライブラリ２０３へのマルチスレッド化されたアクセスコントロール２３８も提供する。スレッドは、ＥＲＰ２００によって割り当てられて管理され、リクエストを完遂するために必要とされる複数（の可能性がある）のステップの実行に亘ってクライアントリクエストをトラッキングする。ライブラリ２０３のスレッドコントロール２３８は、複数のスレッドがライブラリサービス（及びデータベース２３５）に関するＡＰＩに非シーケンシャルな態様でアクセスすることを可能にする。マルチスレッド化されたアクセスコントロール２３８の詳細は、後のセクションにおいてさらに完全に説明される。
【００２９】
セキュリティチェック２４０もビジネスプログラミングライブラリ２０３によって実行され、特に間接的（indirect）承認チェック及び実行可能承認チェックによって実行される。セキュリティ承認は、間接的承認であろうが実行可能承認であろうが、ライセンス契約及び顧客によって定義された承認に基づいて付与される。ライブラリサービス２２３、２２５、２２８、２３０、２３３に関するＡＰＩが、パトロン２１０、２１５、２２０によって起動された場合、ＡＰＩを起動するものに関する間接的承認及び実行可能承認及び／または当該サービスのデータベースオブジェクトに関する間接的承認及び実行可能承認が検証されて、データベースへのアクセスを許可するかしないかが決定される。セキュリティチェックメソッド２４０が、後のセクションにおいてさらに完全に説明される。
【００３０】
図２の例示のＥＲＰシステム２００のコンポーネントの各々は、コンピュータ１１０であるコンピュータまたはサーバに存在してもよい。複数のコンポーネントが単一のコンピュータまたはサーバに存在したり、いくつかが１つのサーバに存在して他のいくつかが他のサーバに存在したり、または他の組み合わせが可能である。１つのコンポーネント、例えばデータベース２３５、に関して複数のインスタンスがあってもよい。
【００３１】
図３は、図２のライブラリ２０３及びＥＲＰシステム２００等の企業資源計画システムによって使用されるビジネスプログラミングライブラリを有効化する例示の方法３００を示す。開始３０２において、ライブラリは、ＥＲＰシステムのためのランタイム環境を提供する（３０５）。当該ライブラリは、そのアーキテクチャの構造を用いて次世代のＥＲＰシステムのためのランタイム環境も提供できる。この構造は、ライブラリのパトロンによって使用されるライブラリサービスのアプリケーションプログラムインタフェース３１０を提供する（３０８）。当該ＡＰＩは、限定するものではないが、当該データベース内のフォーム、テーブル、レコード及び他のデータ等のリソースにおいて動作できる。当該ＡＰＩは、限定するものではないが、ビジネスロジック起動機能３１２、データベースアクセス機能３１５、データベース管理機能３１８、メタデータ公開３２０及び共通データ型３２２を含むカテゴリにグループ分けできる。他のカテゴリがあってもよい。ＡＰＩライブラリ３１０とのインタフェースがライブラリの管理のために提供されるので（３２５）、ＡＰＩのカテゴリ及び当該カテゴリの内容を追加・削除、または変更できる。このインタフェースは、管理者、ＥＲＰの他のコンポーネント、他のプロセスまたは任意の他のエンティティによってアクセスされてもよい。方法３００は、ライブラリサービス３１０への複数スレッドアクセスを提供し（３２８）、かつセキュリティ承認チェックも提供し（３３０）、終了する（３３３）。
【００３２】
図４は、図２００のライブラリ２０３等のビジネスプログラミングライブラリへのマルチスレッド化されたアクセスを提供する方法４００を示している。開始４０２において、データベースのリソースが、クロスコネクト（cross-connect）、即ち多重に存在する接続によって使用可能であるとして、またはパーコネクト（per-connect）、すなわちある接続の存続期間中に単一の接続によってのみ使用可能であるとして、カテゴリ付けされる（４０５）。リソースがクロスコネクトとしてカテゴリ付けされて、接続がリソースのプライベートコピーを要求した場合（４０８）、当該接続が形成された際にプライベートコピーが開かれ、当該方法が終了する（４１２）。そうでなければ、当該ビジネスプログラムライブラリの環境において、第１のスレッドがＡＰＩを起動してリソース上で動作する場合、接続オブジェクトが取得され（４１８）、当該リソースへの参照が生成される（４２２）。この参照がスレッドの存続期間に亘って使用されて、必要とされるリソースへの迅速なアクセスが可能となる。リソースがクロスコネクトとしてカテゴリ付けされた場合（４２５）、当該リソースは、ＡＰＩの実行の存続期間中にはロックされる。ＡＰＩが終了した後にはロックは解除される（４２８）。当該リソースが、パーコネクトとしてカテゴリ付けされた場合（４２５）であって、パーサービス（per-service）コールベースで使用された場合（４３０）、当該リソースは、スタックベースのデータ（stack based data）として示される（４３３）。そうでなければ、パーコネクト、非パーサービスコールリソースは、接続オブジェクトの子として保存され（４３５）、当該方法が終了する（４１２）。
【００３３】
図５は、間接的セキュリティ承認をビジネスプログラミングライブラリによってチェックする方法５００を示している。開始５０２において、アプリケーションオブジェクトのための間接的承認５０５が、ランタイムにおいて付与される（５０８）。当該間接的承認は、ライセンス契約、顧客によって定義された承認、他のソースまたはこれらの任意の組み合わせに基づいてもよい。アプリケーションオブジェクト５１０の当該アプリケーションオブジェクト承認５０５に対応するアプリケーションオブジェクトハンドル（application object handle）が生成される（５１２）。同時に、リソースのために、必ずというわけではないが、通常はテーブルのために、間接的承認５１５がランタイムにおいて付与され（５１８）、リソースハンドルが当該リソース承認に対応して生成される（５２０）。第２のスレッドがＡＰＩを起動してリソース上で動作する場合（５２２）、関連する接続オブジェクトが取得される（５２５）。アプリケーションハンドルによって示された承認（５２８）及びリソースハンドルによって示された承認（５３０）が両方とも許可を示した場合、ＡＰＩは、当該リソースにおける動作を継続することを許可される（５３３）。ハンドル（５２８、５３０）の１または両方による承認が拒否を示している場合、ＡＰＩは、リソースにおいて動作することを許可されずに当該方法は終了する（５３７）。
【００３４】
図６は、実行可能なセキュリティ承認のビジネスプログラミングライブラリによるチェックの例示の方法を示している。開始６０２において、アプリケーションオブジェクトのための実行可能承認（６０５）が、ランタイムにおいて付与される（６０８）。実行可能承認は、ライセンス契約、顧客によって定義された承認、他のソースまたはそれらの任意の組み合わせでよい。アプリケーションオブジェクト（６１０）のアプリケーションオブジェクト承認（６０５）に対応するアプリケーションハンドルが生成される（６１２）。第３のスレッドがＡＰＩを起動してリソースにおいて動作する場合（６１５）、関連する接続オブジェクトが取得される（６１８）。アプリケーションハンドルによって示された承認が許可を示した場合、ＡＰＩは動作を許可される（６２３）。その他の場合、当該ＡＰＩは、許可されなくともよい（６２５）。その後、例示の方法６００が終了する（６２８）。
【００３５】
ここまでにいくつかの異なる実施形態を詳細に説明したが、本願の範囲は、本願の最後に記載された特許請求の範囲の文言によって定義されることが理解されるべきである。この発明を実施するための形態は、単に例示であると解釈され、全ての可能な実施形態を記載してはいない。全ての可能な実施形態を記載することは、不可能ではないにしても非現実的であるためである。現在の技術又は本願出願日以降に発展した技術を使用して、多数の代替実施形態を実施でき、これらも本発明の範囲内にある。
【００３６】
従って、多くの変形例及び変更例が、本発明の精神及び範囲から逸脱することなく、本明細書及び図面において説明され図示された技術及び構成内で行われ得る。よって、本明細書に記載された方法及び装置は、単なる例であり、特許請求の範囲を限定するものではないと理解されるべきである。
【図１】
0004832595.tif 000002
【図２】
0004832595.tif 000003
【図３】
0004832595.tif 000004
【図４】
0004832595.tif 000005
【図５】
0004832595.tif 000006
【図６】
0004832595.tif 000007