(57)【要約】  セキュアなアプリケーションへのアクセスを制御するセキュリティモデルが提供される。本セキュリティモデルの下では、サブミットするユーザは、そのユーザがメッセージをサブミットしアプリケーションにアクションを実施させる時に、認証される。次に、アプリケーションを利用して、サブミットするユーザがメッセージに記憶されたソースエンドポイントの代わりにメッセージをサブミットすることを許可されるかどうかを判定する。次にアプリケーション内のメソッドが呼び出され、メッセージに記憶されたソースエンドポイントユーザになりすまし、アクションを実行する。
2009545090.tif 000002
【特許請求の範囲】
【請求項１】
サブミットするユーザがメッセージをサブミットしアプリケーションにアクションを実施させる時に、前記サブミットするユーザを認証するステップ（３００、４００）と、
前記アプリケーションを利用して、前記サブミットするユーザは前記メッセージに記憶されたソースエンドポイントの代わりにメッセージをサブミットすることを許可されるかどうかを判定するステップ（３１６，４１２）と、
前記メッセージに記憶されたソースエンドポイントユーザになりすまし（３０４、４０６）、前記アプリケーション内の前記アクションを実施するメソッドを呼び出すステップ（３１８、４１６）と
を含むことを特徴とする方法。
【請求項２】
前記サブミットするユーザは前記ソースエンドポイントユーザと同一ではないことを特徴する請求項１に記載の方法。  
【請求項３】
前記ソースエンドポイントからのメッセージは前記メッセージに記憶されたデスティネーションエンドポイントに対して有効であるかどうかを判定するステップ（３１４、４１０）をさらに含むことを特徴する請求項１に記載の方法。
【請求項４】
前記デスティネーションエンドポイントは前記アプリケーション内のアカウントを表示することを特徴する請求項３に記載の方法。
【請求項５】
前記ソースエンドポイントユーザは前記ソースエンドポイントに対して有効であるかどうかを判定するステップ（３１６、４１２）をさらに含むことを特徴する請求項３に記載の方法。
【請求項６】
前記アクションは前記ソースエンドポイントに対して有効であるかどうかを判定するステップ（３１６、４１２）をさらに含むことを特徴する請求項５に記載の方法。  
【請求項７】
前記ソースエンドポイントユーザに対する承認を利用して、前記アプリケーション内の行レベルのセキュリティを強化するステップ（３１８、４１６）をさらに含むことを特徴する請求項１に記載の方法。  
【請求項８】
少なくとも１つの制約を前記メソッドから受信するステップ（３２０、４１８）と、少なくとも１つの制約を制約リストと比較し、前記メソッドによりなされた変更をコミットするかどうかを判定するステップ（３２２、４２０）とをさらに含むことを特徴する請求項１に記載の方法。
【請求項９】
前記制約リストは前記メッセージ内で検出されたソースエンドポイントに関連することを特徴する請求項８に記載の方法。
【請求項１０】
サブミットするユーザからメッセージを受信するステップ（３００、４００）であって、前記メッセージはデスティネーションエンドポイントおよびソースエンドポイントを含むステップと、
前記メッセージ内の前記ソースエンドポイントは前記メッセージ内の前記デスティネーションエンドポイントに対して適切であるかどうかを判定するステップ（３１４、４１０）と、
前記サブミットするユーザは前記メッセージを前記所与のソースエンドポイントに対してサブミットすることを許可されるかどうかを判定するステップ（３１６、４１２）と
を含むステップを実施するためのコンピュータ実行可能命令を有するコンピュータ可読媒体。
【請求項１１】
前記サブミットするユーザはソースエンドポイントユーザであることを特徴する請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記サブミットするユーザはインターミディアリユーザであって、前記インターミディアリユーザは、ソースエンドポイントによりインターミディアリに送信された情報に基づいて前記メッセージを生成する前記インターミディアリ（２１０、２１３、２２０、２２３）に関連することを特徴する請求項１０に記載のコンピュータ可読媒体。
【請求項１３】
前記インターミディアリ（２１０、２１３、２２０、２２３）は前記メッセージを生成する前に前記ソースエンドポイントユーザ（２６３、２６０、２８３、２８０）を認証することを特徴する請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記ソースエンドポイントユーザは前記ソースエンドポイントに対して構成されているかどうかを判定するステップ（３１６、４１２）をさらに含むことを特徴する請求項１２に記載のコンピュータ可読媒体。
【請求項１５】
前記ソースエンドポイントユーザとしてアプリケーションにアクセスするステップ（３０４、４０６）をさらに含むことを特徴する請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記アプリケーションのメソッドを実行し、前記メソッドが前記メッセージの本文内の情報に基づき少なくとも１つの制約を与えるステップ（３２０、４１８）と、前記少なくとも１つの制約を前記ソースエンドポイントに関連する制約リストと比較するステップ（３２２、４２０）とをさらに含むことを特徴する請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
ソースエンドポイントユーザ、デスティネーションエンドポイントおよびソースエンドポイントを有するメッセージを受信するステップ（３００、４００）と、
前記ソースエンドポイントユーザは前記メッセージに関連するアプリケーションにアクセスすることを許可されるかどうかを判定するステップ（３０４、４０６）と、
前記ソースエンドポイントは前記デスティネーションエンドポイントに対して構成されているかどうかを判定するステップ（３１４、４１０）と、
前記ソースエンドポイントユーザは前記ソースエンドポイントに対して構成されているかどうかを判定するステップ（３１６、４１２）と
を含むことを特徴とする方法。
【請求項１８】
前記メッセージを前記ソースエンドポイントユーザとは異なるサブミットするユーザから受信するステップと、前記サブミットするユーザをインターミディアリユーザとして認証するステップ（３００、４００）と、前記インターミディアリユーザは前記ソースエンドポイントに対して有効であるかどうかを判定するステップ（３１６，４１２）とをさらに含むことを特徴する請求項１７に記載の方法。
【請求項１９】
前記アプリケーション内のメソッドをコールし前記メッセージに関連するアクションを実施するステップ（３１８、４１６）と、少なくとも１つの制約を前記メソッドから受信するステップ（３２０、４１８）と、前記少なくとも１つの制約を前記ソースエンドポイントに関連する制約リストと比較するステップ（３２２、４２０）と、前記少なくとも１つの制約と前記制約リストとの間の比較に基づき前記メソッドによってなされた変更をコミットするかどうかを判定するステップ（３２２、４２０）とをさらに含むことを特徴する請求項１７に記載の方法。
【請求項２０】
前記メッセージに関連するアクションは前記ソースエンドポイントに対して有効であるかどうかを判定するステップ（３１６、４１２）をさらに含むことを特徴する請求項１７に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
企業間（Ｂ２Ｂ）統合のシナリオは、１つのビジネスの、アプリケーションによって設けられたサービスおよびデータにアクセスできるアプリケーションまたはユーザを、別のビジネスに関係させるものである。アプリケーション間（Ａ２Ａ）のシナリオでは、あるビジネス内のアプリケーションが、同一のビジネス内の別のアプリケーションのサービスおよびデータにアクセスする。そのようなサービスおよびデータへのアクセスによって、アプリケーションに対しセキュリティホールが作成され、ここを通して有害なユーザがアプリケーションを攻撃および／または機密データを盗む可能性がある。  
【発明の概要】
【発明が解決しようとする課題】
【０００２】
上記の考察は、単に一般的な背景情報として提供したものであり、請求の主題の範囲を決定する助けとして利用されることは意図していない。
【課題を解決するための手段】
【０００３】
セキュアなアプリケーションへのアクセスを制御するセキュリティモデルを提供する。本モデルの下では、サブミットするユーザは、そのユーザがメッセージをサブミットしアプリケーションにアクションを実施させる時に、認証される。次にアプリケーションを利用して、サブミットするユーザがメッセージに記憶されたソースエンドポイントの代わりにメッセージをサブミットすることを許可されるかどうかを判定する。次にアプリケーションのメソッドが呼び出され、メッセージに記憶されたソースエンドポイントユーザになりすまし、アクションを実施する。
【０００４】
ここで述べる要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この「課題を解決するための手段」は、請求の主題の重要な特徴または主要な特徴を特定することを意図していない。また、請求の主題の範囲を決定するために使用されることも意図していない。請求の主題は、背景技術における任意のまたは全ての欠点を解決する実装に制限されない。
【図面の簡単な説明】
【０００５】
【図１】ソースエンドポイントとセキュアなアプリケーションとの間の接続を示す一般化されたブロック図である。
【図２】図１の要素をさらに詳細に示す、より詳細なブロック図である。
【図３】一実施形態のセキュリティモデルを利用して、ウェブサービスを介してメッセージを通すためのフロー図である。
【図４】一実施形態のセキュリティモデルを利用して、メッセージングゲートウェイを介してメッセージを通すためのフロー図である。
【図５】インターミディアリとしてＥＤＩサーバを利用する実例の構成のブロック図である。
【図６】インターミディアリとしてカスタム．ＮＥＴアプリケーションを利用する構成のブロック図である。
【図７】インターミディアリとしてサーバを利用する構成のブロック図である。
【図８】カスタムＷｉｎ  Ｆｏｒｍｓアプリケーションがソースエンドポイントとして動作する構成のブロック図である。
【図９】複数の販売員がソースエンドポイントとして動作する構成のブロック図である。
【図１０】ローカルアプリケーションがソースエンドポイントとして動作し、．ＮＥＴアプリケーションがインターミディアリとして動作する構成を提供する図である。
【図１１】ローカルアプリケーションがメッセージングゲートウェイを介して通信するソースエンドポイントとして動作する構成を提供する図である。
【図１２】１つのまたは複数のサーバまたはアプリケーションを含むことのできる、一般的なコンピューティング環境のブロック図である。
【発明を実施するための形態】
【０００６】
ここに提供する実施形態は、アプリケーションへのセキュアなアクセスを提供するためのフレームワークまたはモデルを提供する。図１は、下記で議論される実施形態において熟考される、一般的な相互関係を示す要素のブロック図である。
【０００７】
図１において、ソースエンドポイント１００、ソースエンドポイント１０１またはソースエンドポイント１０３におけるアプリケーションまたはユーザは、セキュアなアプリケーション１０２にアクセスする。ソースエンドポイント１００および１０３は、確かな情報を提供すると信頼されていないため、外部エンドポイントであると見なされる。ソースエンドポイント１００は、ネットワーク１０６および統合レイヤ１０８を介してセキュアなアプリケーション１０２にアクセスする。ソースエンドポイント１０３は、統合レイヤ１０８を介してセキュアなアプリケーション１０２にアクセスする。ソースエンドポイント１０１もまた、統合レイヤ１０８を介してセキュアなアプリケーション１０２にアクセスするが、セキュアなアプリケーション１０２によって信頼されている。
【０００８】
統合レイヤ１０８は、統合レイヤ１０８にメッセージをサブミットするユーザを認証し、そのメッセージをセキュアなアプリケーション１０２の他の部分に処理のために転送する。ほとんどの実施形態において、統合レイヤ１０８は、ウェブサービスまたはメッセージングゲートウェイの形態をとる。統合レイヤ１０８はまた、ウェブサービスまたはメッセージングゲートウェイと、ソースエンドポイント１００および１０３との間に位置する、信頼されるインターミディアリを含む。統合レイヤ１０８の一部分は、セキュアなアプリケーション１０２の一部であると見なされ、他の部分はセキュアなアプリケーション１０２の外側であり得る。
【０００９】
図２は、図１の要素のより詳細なブロック図を提供する。図２において、ソースエンドポイント１００は、２つの別個のソースエンドポイント２６０および２８０により図示される。ソースエンドポイントはそれぞれ外部ネットワーク２６８および２８８を介して統合レイヤ１０８に接続する。一実施形態の下、ネットワーク２６８および２８８は、インターネットである。他の実施形態では、各ネットワークは異なるネットワーク接続である。ソースエンドポイント１０１は、ソースエンドポイント２６１および２８１として図示される。ソースエンドポイント２６１および２８１は、統合レイヤに直接、またはイントラネットと称する内部ネットワークを介して接続する。ソースエンドポイント１０３は、ソースエンドポイント２６３および２８３として図示され、また、直接または内部ネットワークを介して統合レイヤに接続する。
【００１０】
ソースエンドポイント２６１、２６３および２６０は、ゲートウェイメッセージングを利用して、セキュアなアプリケーション１０４にメッセージを送信する。そのようなゲートウェイメッセージングは、ファイル共有およびＭＳＭＱ（Ｍｉｃｒｏｓｏｆｔ  Ｍｅｓｓａｇｅ  Ｑｕｅｕｅｉｎｇ）等のゲートウェイトランスポートを利用するステップを含むことができる。ソースエンドポイント２６１は、内部ネットワーク（不図示）を介して、ゲートウェイトランスポート２００へ直接メッセージを与える。ソースエンドポイント２６３は、内部ネットワーク上にあるインターミディアリ２１３を介して、ゲートウェイトランスポート２００にメッセージを送信する。ソースエンドポイント２６０は、外部ネットワーク２６８を介してインターミディアリ２１０にメッセージを送信する。次にインターミディアリ２１０は、ゲートウェイトランスポート２００に直接または内部ネットワーク（不図示）を介してメッセージを送信する。
【００１１】
インターミディアリ(注：仲介者)２１０および２１３は、それぞれのソースエンドポイントの代わりにインバウンド要求(注：外から中へ入ることの要求)をサブミット(提供)することを許可される。インターミディアリは、アプリケーションまたはサーバ等、ソースエンドポイントとアプリケーションとの間の、アプリケーションにより信頼される任意の論理上の「仲介者」であり得る。インターミディアリ２１０および２１３は、誰がインターミディアリに要求をサブミットしたのかを確実に正確に示すことを信頼される。信頼されるインターミディアリは、以下の特徴を有する。
【００１２】
ａ．信頼されるインターミディアリのユーザアカウント（インターミディアリユーザとして公知の）は、信頼されるインターミディアリが要求をサブミットすることを許可するアプリケーション内で、確立されなければならない。
【００１３】
ｂ．信頼されるインターミディアリは、ソースエンドポイントの代わりにサブミットするように構成されなければならない。
【００１４】
ｃ．信頼されるインターミディアリは、何らかの認証の形式を利用して、ソースエンドポイントユーザ（さらに後述する）を設定しなければならない。
【００１５】
ｄ．単一のソースエンドポイントに対して、複数の信頼されるインターミディアリが存在できる。
【００１６】
ゲートウェイトランスポートアダプタ２０２は、ゲートウェイトランスポート２００からメッセージを取り出し、ゲートウェイキュー２０４にそれらを配置する。インバウンドバッチプロセッサ２０６は、新規メッセージを求めてゲートウェイキュー２０４を周期的にスキャンし、メッセージを読み出し、さらに後述するように統合フレームワーク２１８を利用してそれらを処理する。
【００１７】
ソースエンドポイント２８１は、ＩＩＳ（Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ）２１４に直接メッセージを送信することによって、セキュアなアプリケーション１０４にメッセージを送信し、ウェブサービス２１６を呼び出す。一般的には、ソースエンドポイント２８１は、ＩＩＳ２１４と同じ内部ネットワーク上にある。ソースエンドポイント２８３は、インターミディアリ２２３を介してメッセージを送信することによってセキュアなアプリケーション１０４にメッセージを送信し、次にインターミディアリ２２３がＩＩＳ２１４にメッセージを送信する。ソースエンドポイント２８３およびインターミディアリ２２３は、ＩＩＳ２１４と同じ内部ネットワーク上にある。ソースエンドポイント２８０は、外部ネットワーク２８８を介してインターミディアリ２２０と通信することによってセキュア(安全)なアプリケーション１０４にメッセージを送信する。インターミディアリは、次に、ＩＩＳ２１４にメッセージを送信し、ウェブサービス２１６を呼び出す。一般的には、インターミディアリ２２０は、ＩＩＳ２１４と同じ内部ネットワーク上にある。
【００１８】
ウェブサービス２１６は、メッセージに関連するアクションを実施するために、アプリケーション１０４内の統合フレームワーク２１８と通信する。統合フレームワーク２１８は、メッセージを処理し、後述のようにアクションを実施する。
【００１９】
一実施形態の下では、メッセージングゲートウェイまたはウェブサービスへの各インバウンドメッセージが、以下のメッセージヘッダデータ、すなわち、ソースエンドポイント、デスティネーションエンドポイント、ソースエンドポイントユーザ（任意）、アクション、およびメッセージＩＤを特定する。加えて、各メッセージは、関連するサブミットするユーザを持たなければならない。
【００２０】
ソースエンドポイントは、インバウンドメッセージの生成に関連するパートナまたはアプリケーションを識別する。各ソースエンドポイントは、セキュアなアプリケーションと共に登録され、ソースエンドポイントに関わるデータは、登録中に記憶されなければならない。このデータは、ソースエンドポイントに関連するソースエンドポイントユーザアカウント、ソースエンドポイントがそのメッセージを通すことができる信頼されるインターミディアリユーザ、およびソースエンドポイントが起動できるアクションを含む。
【００２１】
ソースエンドポイントユーザは、メッセージのペイロードに記載されるアクションを実行することを試みているソースエンドポイントに関連するユーザアカウントである。アクションの実行中、このソースエンドポイントユーザのアカウント情報は、ユーザの代わりにアプリケーションを実行するのに利用されて、メッセージのアクションに関連するデータベース内の変更が、ソースエンドポイントユーザによって実施されているようにログをとることができ、また、ある実施形態では、行レベルのセキュリティが実装され、ソースエンドポイントユーザに対してデータベースのアクセスを制限することができる。
【００２２】
ソースエンドポイントユーザは、インターミディアリによって設定されるか、またはサブミットするユーザに一致するように設定されるもので、ゲートウェイトランスポートまたはウェブサービスにメッセージを与えるユーザアカウントである。ソースエンドポイントは、ソースエンドポイントユーザを直接設定することは許可されない。
【００２３】
デスティネーションエンドポイントは、アカウントを識別し、セキュアなアプリケーション内ではカンパニーと称されることもある。各アカウントまたはカンパニーは、データベースエントリおよびデータベーステーブル構造の関連する組を有する。各メッセージは、メッセージヘッダ内のデスティネーションエンドポイントに関連するカンパニーに関連するデータに作用することのみ許可される。  
【００２４】
ソースエンドポイントおよびデスティネーションエンドポイントは一般的に、インターミディアリが利用される場合は、ソースエンドポイントにより、またはインターミディアリによりヘッダ内に配置される。インターミディアリが利用される時は、ソースエンドポイントユーザの認証に基づき、ソースエンドポイントユーザがインターミディアリにより追加される。インターミディアリが利用されない時は、ソースエンドポイントユーザが、サブミットするユーザに一致するように設定される。
【００２５】
アクションは、セキュアなアプリケーション内のビジネスクラスにより実施される動作を特定する。各アクションは、ビジネスクラスおよびアクションを実施することになるクラス内のメソッドにマッピングする。ウェブサービスに対しては、各ウェブサービスメソッドが異なるアクションに関連する。その結果、ウェブサービスメソッドをコールする動作がアクションを選択することになる。このような実施形態において、アクションはメッセージヘッダ内にリストアップされる必要が無い。
【００２６】
メッセージＩＤは、冪等性を可能にする識別子をメッセージに設け、メッセージが一度だけ処理されることを保証する。
【００２７】
サブミットするユーザは、メッセージをウェブサービスにサブミットするかまたはメッセージをゲートウェイトランスポート上に配置するエンティティのユーザ名である。例えば、インターミディアリ２２０がメッセージをウェブサービス２１６内に配置する場合、インターミディアリ２２０はユーザアカウントの下で実行される。ユーザアカウントはインターミディアリユーザとしても知られ、サブミットするユーザと見なされる。ソースエンドポイント２８１がメッセージをウェブサービス２１６にサブミットする場合、ソースエンドポイント２８１に関連するユーザアカウントがサブミットするユーザになる。サブミットするユーザは、ＩＩＳ２１４およびゲートウェイトランスポート２００により認証処理を介して判定され、メッセージヘッダまたはメッセージのペイロードから取り出されない。ユーザ認証の技術は公知であり、ユーザ名、およびパスワード（プレーンテキスト、暗号化されたテキストまたはハッシュされたテキスト）、サブミットするユーザにより利用されるマシン上にパスワードが記憶されることを表す指示，またはデジタル証明書等の何らかの形式のセキュリティ証明書を要求するステップを含む。セキュリティ証明書は検査され、ユーザ名に対して記憶されるセキュリティ証明書に一致するかどうかを判定する。一致する場合、ユーザ名は認証される。一致しない場合、認証処理は失敗し、ソースエンドポイントまたはインターミディアリは、ＩＩＳ２１４またはゲートウェイトランスポート２００にアクセスすることを拒否される。  
【００２８】
メッセージのペイロードはまた、ビジネスクラス２０８がパートナ識別子または従業員識別子等のソースエンドポイントの制約を生成することを可能にする情報を含んでも良い。この制約は、あるパートナに関連するソースエンドポイントが別のパートナに文書を送信するなりすましを阻止するのに役立つ。従って、以下にさらに議論するように変更がコミットされるためには、文書のペイロードは、ソースエンドポイントと一致しなければならない。
【００２９】
図３は、ウェブサービスメソッドを介してメッセージを通す一実施形態の下で、セキュリティモデルを強化するための処理のフロー図を提供する。ステップ３００において、ＩＩＳ２１４は、ソースエンドポイント２８１等のソースエンドポイントから、またはインターミディアリ２２０および２２３等のインターミディアリから、メッセージを受信する。ユーザアカウントは、ＩＩＳ２１４により認証され、上述のようにソースエンドポイントまたはインターミディアリに対するユーザ名を判定する。このユーザ名は、サブミットするユーザである。ユーザアカウントが認証されることができない場合、ＩＩＳ２１４はエラーを返し、処理が終了する。
【００３０】
サブミットするユーザが一度認証されると、ＩＩＳ２１４に送信されたメッセージに関連するウェブサービスメソッドが、ステップ３０２において起動される。ステップ３０４において、ソースエンドポイントユーザのユーザ名をパラメータとして利用してＬｏｇｏｎＡｓ  ＡＰＩ２４０を呼び出すことにより、ウェブサービス２１６は、ソースエンドポイントユーザとしてセキュアなアプリケーション１０４にログインする。インターミディアリ２２０および２２３からやってくるメッセージには、インターミディアリによって、ソースエンドポイントユーザがそのメッセージのヘッダに配置されている。ソースエンドポイント２８１からやってくるメッセージには、ソースエンドポイントがソースエンドポイントユーザを特定しない場合、サブミットするユーザがソースエンドポイントユーザとして利用される。ソースエンドポイントがソースエンドポイントユーザを特定する場合、ソースエンドポイントユーザはサブミットするユーザと一致しなければならない。
【００３１】
ＬｏｇｏｎＡｓ  ＡＰＩ２４０は、ウェブサービス２１６がその下で作動するプロキシユーザアカウントを認証し、その後アプリケーション１０４にパラメータを設定し、アプリケーション１０４がＬｏｇｏｎＡｓのコールで与えられたユーザによって直接ログオンされたかのようにアプリケーション１０４内のビジネスクラスが作動するようにする。
【００３２】
このタイプのログオンは、本明細書においてソースエンドポイントユーザのなりすましと称される。いくつかの実施形態の下では、ＬｏｇｏｎＡｓ２４０は、ソースエンドポイントユーザに対するパスワードを要求しない。そのようにして、ウェブサービス２１６は、ソースエンドポイントユーザのパスワードを要求することなしに、ソースエンドポイントユーザとしてセキュアなアプリケーション１０４にログオンすることができる。ソースエンドポイントユーザが、アプリケーションへのアクセスを許可されない場合、ＬｏｇｏｎＡｓ  ＡＰＩ２４０のコールは失敗である。
【００３３】
ステップ３１０において、ウェブサービス２１６は、ヘッダ、メッセージ本文およびサブミットするユーザを、セキュアなアプリケーション１０４内の統合フレームワーク２１８へ通す。多くの実施形態において、ウェブサービス２１６は、文書コンテキストパラメータを利用してメッセージヘッダデータを特定する。従って、文書コンテキストパラメータは、ソースエンドポイント、デスティネーションエンドポイント、ソースエンドポイントユーザ、メッセージＩＤおよびアクション用のフィールドを含む。サブミットするユーザは、別個のパラメータとして渡される。
【００３４】
ステップ３１２において、統合フレームワーク２１８は、デスティネーションエンドポイントを利用してアカウントまたはカンパニーを選択する。次にメッセージの検証は、選択されたカンパニーに関連する属性を利用して実施される。  
【００３５】
ステップ３１４において、統合フレームワーク２１８は、アカウント／カンパニーデータ２４２を探し出し、指定されたソースエンドポイントがカンパニーに対して有効であるかどうかを判定する。カンパニーに対して有効でない場合、エラーが返される。ソースエンドポイントが有効である場合、処理はステップ３１６に続き、そこで統合フレームワーク２１８はソースエンドポイントデータ２４４を読み出し、ソースエンドポイントユーザ、インターミディアリユーザ（ある場合）、およびアクションがソースエンドポイントに対して有効であるかどうかを判定する。ソースエンドポイントユーザおよびインターミディアリユーザ（ある場合）の検証は、まず、サブミットするユーザがソースエンドポイントユーザと異なるかどうかをチェックすることによって実施される。サブミットするユーザが異なる場合、処理は次に、サブミットするユーザがソースエンドポイントに対して信頼されるインターミディアリとして構成されているかどうかを判定する。サブミットするユーザが、ソースエンドポイントユーザと同一の場合、処理はそのユーザがソースエンドポイントに対してソースエンドポイントユーザとして構成されているかどうかを判定する。どの検証も失敗の場合、エラーがソースエンドポイントに返され、アクションは実施されない。
【００３６】
ステップ３１８において、統合フレームワーク２１８は、ビジネスクラス２０８のメソッドを呼び出し、メッセージに関連するアクションを処理する。いくつかの実施形態の下では、ビジネスクラス２０８が呼び出されるとき、ビジネスクラスが、行レベルのセキュリティをアクセスするテーブルに対して起動する。行レベルのセキュリティは、特定のユーザがどのデータを読み込み、書き込みまたは作成できるかを制御する。セキュアなアプリケーション１０４がソースエンドポイントユーザアカウントの元で作動しているので、この行レベルのセキュリティは、ソースエンドポイントユーザに与えられた承認に基づいてセキュリティ判定を行うことになる。従って、特定のユーザがテーブル内のあるレコードを見ることを許可されない場合、行レベルのセキュリティを作動させることによって、それらのレコードへのアクセスを試みるアクションが失敗になるか、ソースエンドポイントユーザが受信することを許可されるデータを単に返すことになる。  
【００３７】
処理中、ビジネスクラス２０８が、メッセージのペイロードに基づいて制約を識別する。ステップ３２０において、ビジネスクラス２０８は、これらの制約をレスポンスと共に統合フレームワークに返す。ステップ３２２において、統合フレームワーク２１８は、ビジネスクラスから受信した制約をソースエンドポイントデータ２４４に記憶された制約リストと比較し、ビジネスクラス２０８によってなされた変更をコミットするかどうか、またはビジネスクラス２０８によってなされた変更をロールバックするかどうかを判定する。制約リストとの比較には、制約が無いことを示す値をビジネスクラスが返す場合に有利な比較を示すこと、リスト内のある制約属性に対する個々の値とビジネスクラスによって返された制約との間のマッチングに基づき有利な比較を示すこと、および多数の制約属性に対する値を含む複雑な論理式が真の値を返す場合に有利な比較を示すこと、が含まれる。比較が有利でない場合、変更はロールバックされ、エラーがソースエンドポイントに返される。比較が有利な場合、ビジネスクラスによってなされた変更がコミットされる。
【００３８】
ステップ３２４において、統合フレームワーク２１８はアクションに対するレスポンスをウェブサービス２１６に返し、ウェブサービス２１６はレスポンスをソースエンドポイントに返す。統合フレームワーク２１８はまた、行われたアクション、ソースエンドポイントユーザ、ソースエンドポイント、デスティネーションエンドポイント、メッセージＩｄ、およびサブミットするユーザを示すログ２４６をアップデートする。この情報は、後にセキュリティ侵害において可能性のある攻撃を識別するのに利用することが可能である。
【００３９】
ＩＩＳ２１４において常にサブミットするユーザを認証する一方で、ソースエンドポイントユーザと異なるサブミットするユーザを規定することによって、実施形態では、アプリケーションを深刻なセキュリティの脅威にさらすことなく、アプリケーションの機能性がインターミディアリを介して外部パートナに公開されることを可能にする。さらに、インターミディアリユーザをソースエンドポイントに結ぶことが、ソースエンドポイントがインターミディアリになりすますのを防ぐ助けとなる。なぜなら、たとえソースエンドポイントがインターミディアリにおけるセキュリティをくぐり抜けることができるとしても、インターミディアリユーザがソースエンドポイントの代わりにサブミットするように構成されていない場合は、本実施形態のセキュリティモデルはメッセージを処理しないからである。
【００４０】
図４は、ゲートウェイメッセージングを利用してメッセージを通す一実施形態の下で、セキュリティモデルを強化するための処理のフロー図を提供する。図４のステップ４００では、ゲートウェイトランスポート２００が、ソースエンドポイントユーザまたはインターミディアリユーザのどちらかであるサブミットするユーザを認証する。認証に基づいて、ゲートウェイトランスポート２００がメッセージをサブミットするユーザから受信し、メッセージをサブミットするユーザのユーザ名でスタンプする。ステップ４０１では、ゲートウェイトランスポートアダプタ２０２がメッセージおよびサブミットするユーザをトランスポートから読み込み、メッセージおよびサブミットするユーザをゲートウェイキュー２０４に配置する。
【００４１】
ステップ４０２において、インバウンドバッチプロセッサ２０６が、メッセージをゲートウェイキュー２０４からロードする。ステップ４０４において、バッチプロセッサ２０６がメッセージおよびその対応するサブミットするユーザを選択する。ステップ４０６において、インバウンドバッチプロセッサ２０６が、ソースエンドポイントユーザに対するユーザ名を判定する。インターミディアリからのメッセージに対して、ソースエンドポイントユーザがメッセージヘッダから抽出される。直接ソースエンドポイントからきたメッセージに対して、ソースエンドポイントユーザはサブミットするユーザに設定される。次にバッチプロセッサは、ユーザＩＤ変換２３９をコールし、ユーザＩＤ変換２３９は、外部ソースエンドポイントユーザの証明書を内部アプリケーションユーザＩＤにマッピングする。その後バッチプロセッサは、ＲｕｎＡｓ  ＡＰＩ２４８をコールし、ＲｕｎＡｓ  ＡＰＩ２４８は、内部アプリケーションユーザＩＤを利用して、インバウンドバッチプロセッサをソースエンドポイントユーザとして作動させる。この文脈で、バッチプロセッサは、ソースエンドポイントユーザになりすましている。ここで、ソースエンドポイントユーザがアプリケーションをコールすることを許可されていない場合は，ＲｕｎＡｓ  ＡＰＩは失敗する。  
【００４２】
ステップ４０７において、インバウンドバッチプロセッサ２０６は、メッセージ、メッセージヘッダおよびサブミットするユーザを統合フレームワーク２１８へ通す。
【００４３】
統合フレームワーク２１８は、ステップ４０８において、メッセージヘッダ内のデスティネーションエンドポイントに基づいてアカウント／カンパニーを選択し、ステップ４１０において、アカウント／ローカルカンパニーデータデータ２４２を利用して、ソースエンドポイントがアカウント／カンパニーに対して有効であるかチェックする。ソースエンドポイントがアカウント／カンパニーに対して有効でない場合、処理は終了し、エラーが返される。  
【００４４】
ステップ４１２において、統合フレームワーク２１８は、ソースエンドポイントユーザ、インターミディアリユーザ、およびアクションがソースエンドポイントに対して有効であるかどうかを、ソースエンドポイントデータ２４４を利用してチェックする。ソースエンドポイントユーザおよびインターミディアリユーザ（ある場合は）の検証は、まずサブミットするユーザがソースエンドポイントユーザと異なるかどうかをチェックすることにより実施される。サブミットするユーザが異なる場合は、処理は次に、サブミットするユーザがソースエンドポイントに対して信頼されるインターミディアリとして構成されているかどうかを判定する。サブミットするユーザが、ソースエンドポイントユーザと同一の場合、処理はそのユーザがソースエンドポイントに対してソースエンドポイントユーザとして構成されているかどうかを判定する。どの検証も失敗の場合、処理は終了し、エラーが返される。  
【００４５】
ステップ４１６において、統合フレームワーク２１８は、ビジネスクラス２０８内のメソッドをコールし、メッセージヘッダ内で検出されたアクションを実施する。いくつかの実施形態において、ビジネスクラス２０８は、それがアクセスする各テーブルに対して、そのテーブル内のレコードへのアクセスがソースエンドポイントユーザへ与えられた承認に基づくものであるべく、行レベルのセキュリティを設定する。ビジネスクラス２０８はまた、アクションの実行中に、メッセージに基づいて制約を抽出する。
【００４６】
ステップ４１８において、統合フレームワーク２１８は、アクションのレスポンスと同様に、ビジネスクラス２０８から制約を受信する。ステップ４２０において、統合フレームワーク２１８は、制約を、ソースエンドポイントに対するソースエンドポイントデータ２４４内で検出された制約リストと比較する。比較が有利な場合、統合フレームワーク２１８は、ビジネスクラス２０８によりなされた変更をコミットする。比較が有利でない場合、統合フレームワーク２１８は、ビジネスクラス２０８によりなされた変更をロールバックする。
【００４７】
ステップ４２２において、統合フレームワーク２１８は、ソースエンドポイント、デスティネーションエンドポイント、ソースエンドポイントユーザ、サブミットするユーザ、メッセージＩｄ、および実施されたアクションを有するログ２４６をアップデートする。統合フレームワーク２１８は、アクションのレスポンスをバッチプロセッサ２０６に返し、バッチプロセッサ２０６は、ゲートウェイキュー２０４にレスポンスを書き込む。
【００４８】
ステップ４２４において、バッチプロセッサ２０６は、処理すべきさらなるメッセージがあるかどうかを判定する。さらなるメッセージがある場合、処理はステップ４０４に戻り、ステップ４０６から４２２がそのメッセージに対して実施される。さらなるメッセージが無い場合、処理はステップ４２６に続き、そこにおいて、別個のアウトバウンドバッチプロセッサ（不図示）が、レスポンスメッセージをゲートウェイキュー２０４から送信する。
【００４９】
図５は、本実施形態のセキュリティモデルが利用され得る環境の例を提供する。図５において、一組のトレーディングパートナ５００、５０２、５０４および５０６が、付加価値ネットワーク５０８を介してアプリケーション施設５１２に配設されたＥＤＩ（ｅｌｅｃｔｒｏｎｉｃ  ｄａｔａ  ｉｎｔｅｒｃｈａｎｇｅ）サーバ５１０に接続される。トレーディングパートナ５００は、一組のブランチロケーション５１４、５１６および５１８を有する。図５において、ブランチロケーション５１４内のソースエンドポイントが、付加価値ネットワーク５０８を介してＥＤＩサーバ５１０へ購買注文書５２０を送信する。
【００５０】
ＥＤＩサーバ５１０は、ユーザを上述のように認証し、ソースエンドポイントユーザが「Ｅｘｔｒａｎｅｔ＼ＮＷ＿Ｕｓｅｒ」であると判定する。その認証に基づいて、ＥＤＩサーバ５１０は、ソースエンドポイントが「Ｎｏｒｔｈｗｉｎｄ」であると判定することができる。ＥＤＩサーバ５１０はまた、ＥＤＩサーバ５１０に記憶された購買注文書５２０内の情報またはソースエンドポイントとデスティネーションエンドポイントとの間の関連についての情報に基づき、デスティネーションエンドポイントを「ＭｙＡｘａｐｔａ」として識別することもできる。ＥＤＩサーバはまた、購買注文書５２０に基づき「ＣｒｅａｔｅＳＯ」のアクションを判定する。この情報を利用して、ＥＤＩサーバ５１０は、メッセージＩＤ、ソースエンドポイントユーザ、ソースエンドポイント、デスティネーションエンドポイント、およびアクションを含むメッセージヘッダを有するメッセージ５２４を生成する。メッセージ５２４はまた、メッセージの本文に購買注文書５２０からの情報を含む。
【００５１】
メッセージ５２４は、ＩＩＳ＆ウェブサービス５２６に与えられ、ＩＩＳ＆ウェブサービス５２６はＥＤＩサーバ５１０を認証してサブミットするユーザのユーザ名が「Ｉｎｔｒａｎｅｔ＼ＥＤＩ＿Ｓｙｓ」であると判定する。次にサブミットするユーザおよびメッセージは、上述のように、統合フレームワーク５２８へ送られる。
【００５２】
統合フレームワーク５２８は、メッセージを検証してソースエンドポイント「Ｎｏｒｔｈｗｉｎｄ」がデスティネーションエンドポイント「ＭｙＡｘａｐｔａ」に対して有効であることを保証する。統合フレームワーク５２８はまた、ソースエンドポイントユーザ「Ｅｘｔｒａｎｅｔ＼ＮＷ＿Ｕｓｅｒ」、インターミディアリユーザ「Ｉｎｔｒａｎｅｔ＼ＥＤＩ＿Ｓｙｓ」およびアクション「ＣｒｅａｔｅＳＯ」が、ソースエンドポイント「Ｎｏｒｔｈｗｉｎｄ」に対して有効であるかどうかを判定する。
【００５３】
統合フレームワーク５２８は、ビジネスクラス５３０内のメソッドを呼び出し、アクション「ＣｒｅａｔｅＳＯ」を実施する。ビジネスクラス５３０は、アクションを実施し、レスポンスおよび統合フレームワーク５２８が制約リストに対照してチェックする制約５３２を返す。次に統合フレームワーク５２８はレスポンスを返し、ログをアップデートする。
【００５４】
図６は、本実施形態のセキュリティモデルが利用され得る別の環境の例を提供する。図６において、各トレーディングパートナ６００、６０２、６０４および６０６はそれぞれＦＴＰフォルダ６１０、６１２、６１４および６１６を有する。トレーディングパートナ６００のブランチロケーション６１８におけるユーザは、ＦＴＰサーバによって認証された後、購買注文書６２０をＦＴＰフォルダ６１０に記憶する。この認証に基づき、購買注文書はＦＴＰフォルダ６１０内に購買注文書を配置したユーザのユーザ名でスタンプされる。
【００５５】
カスタム．ＮＥＴアプリケーション６２２は、購買注文書６２０をＦＴＰフォルダ６１０から読み出し、メッセージ６２４を形成するのに利用する。具体的には、．ＮＥＴアプリケーション６２２は、メッセージ上にスタンプされたユーザ名から取り出された、ソースエンドポイントユーザ「Ｅｘｔｒａｎｅｔ＼ＮＷ＿Ｕｓｅｒ」の識別表示、およびＦＴＰフォルダのアイデンティティに基づき判定されるソースエンドポイント「Ｎｏｒｔｈｗｉｎｄ」およびデスティネーションエンドポイント「ＭｙＡｘａｐｔａ」の識別表示を含むヘッダを、メッセージ６２４内に作成する。．ＮＥＴアプリケーション６２２はまた、ＦＴＰフォルダ内に記憶されたメッセージのタイプに基づいて、アクションフィールドに「ＣｒｅａｔｅＳＯ」として書き込む。．ＮＥＴアプリケーション６２２は、購買注文書を利用してメッセージ６２４の本文を形成する。  
【００５６】
．ＮＥＴアプリケーション６２２は、アプリケーション６２８およびＩＩＳ＆ウェブサービス６３０もまた包含するアプリケーション施設６２６に存在する。メッセージ６２４は、．ＮＥＴアプリケーション６２２のユーザ名を「Ｉｎｔｒａｎｅｔ／ＣｕｓｔＡｐｐ＿Ｓｙｓ」として認証するＩＩＳ＆ウェブサービス６３０に与えられる。本構成では、このユーザ名が、サブミットするユーザおよびインターミディアリユーザとして指定される。ウェブサービス６３０は、サブミットするユーザ「Ｉｎｔｒａｎｅｔ／ＣｕｓｔＡｐｐ＿Ｓｙｓ」およびメッセージ６２４を、アプリケーション６２８内の統合フレームワーク６３２に与える。統合フレームワーク６３２は、ソースエンドポイント「Ｎｏｒｔｈｗｉｎｄ」がデスティネーションエンドポイントアカウント「ＭｙＡｘａｐｔａ」に対して許可されるかどうか、および、ソースエンドポイントユーザ「Ｅｘｔｒａｎｅｔ＼ＮＷ＿Ｕｓｅｒ」、インターミディアリユーザ「Ｉｎｔｒａｎｅｔ＼ＣｕｓｔＡｐｐ＿Ｓｙｓ」およびアクション「ＣｒｅａｔｅＳＯ」がソースエンドポイント「Ｎｏｒｔｈｗｉｎｄ」に対して許可されるかどうかを判定することによって、メッセージを認証する。メッセージが検証された後、統合フレームワーク６３２はビジネスクラス６３４を呼び出し、ビジネスクラス６３４はメッセージの本文に基づいて制約を読み出す。図６の例において、メッセージの本文内のカスタマＩＤ「ＮＴＥａｓｔ」がビジネスクラス６３４によって利用され、制約「Ｃ−Ｎｏ１」を読み出す。統合フレームワーク６３２は、制約を制約リストと比較し、ビジネスクラス６３４によりなされた変更をコミットするかロールバックするかを判定する。次に、統合フレームワーク６３２は、ソースエンドポイントユーザ、ソースエンドポイント、デスティネーションエンドポイント、サブミットするユーザ、メッセージＩｄおよびアクションのログを行い、ビジネスクラス６３４からカスタム．ＮＥＴアプリケーション６２２へＩＩＳ＆ウェブサービス６３０を介してレスポンスを返す。
【００５７】
図７は、本実施形態のセキュリティモデルが利用され得る別の環境の例を提供する。図７において、外部パートナ７０２、７０４、７０６および７０８は、一実施形態において本件特許出願人のＢＩＺＴＡＬＫ（商標）ブランドのサーバであるサーバ７００と通信する。サーバ７００は、施設７１０に配設され、施設７１０はまたアプリケーション７１２を包含する。外部パートナ７０２は、リモートロケーション７１４、７１６および７１８を含む。
【００５８】
リモートロケーション７１８におけるユーザは、購買注文書７２０をサーバ７００に送信する。サーバ７００は、ユーザを「Ｅｘｔｒａｎｅｔ／ＮＷ＿Ｕｓｅｒ」として認証し、このユーザはソースエンドポイント「Ｎｏｒｔｈｗｉｎｄ」およびデスティネーションエンドポイント「ＭｙＡｘａｐｔａ」と関連があると判定する。サーバ７００は、メッセージ７２２の本文を作成し、「ＣｒｅａｔｅＳＯ」のアクションを購買注文書７２０の内容に基づいて識別する。サーバ７００は、メッセージＩＤ、ソースエンドポイントユーザのアイデンティティ、ソースエンドポイント、デスティネーションエンドポイント、およびアクションをメッセージ７２２のメッセージヘッダに配置する。
【００５９】
サーバ７００は、アプリケーション７１２内のトランスポートアダプタ７４０と通信する。トランスポートアダプタ７４０は、サーバ７００と関連するユーザアカウント「Ｉｎｔｒａｎｅｔ＼ＢＴＳ＿Ｓｙｓ」をサブミットするユーザとして識別する。トランスポートアダプタは、メッセージおよびサブミットするユーザをゲートウェイキュー７４２上に配置する。バッチプロセッサ７４４は、メッセージおよびサブミットするユーザをゲートウェイキューから取り出し、ＲｕｎＡｓＡＰＩを呼び出し、ソースエンドポイントユーザ「Ｅｘｔｒａｎｅｔ＼ＮＷ＿Ｕｓｅｒ」の代わりに作動させる。次に、バッチプロセッサ７４４は、メッセージおよびサブミットするユーザを統合フレームワーク７２４へ通す。
【００６０】
統合フレームワーク７２４は、ソースエンドポイント「Ｎｏｒｔｈｗｉｎｄ」がデスティネーションエンドポイント「ＭｙＡｘａｐｔａ」に対して有効であるかどうかを判定する。統合フレームワーク７２４はまた、ソースエンドポイントユーザ「Ｅｘｔｒａｎｅｔ＼ＮＷ＿Ｕｓｅｒ」、インターミディアリユーザ「Ｉｎｔｒａｎｅｔ＼ＢＴＳ＿Ｓｙｓ」およびアクション「ＣｒｅａｔｅＳＯ」がソースエンドポイント「Ｎｏｒｔｈｗｉｎｄ」に対して有効であるかどうかを判定する。
【００６１】
メッセージパラメータが有効である場合、統合フレームワーク７２４はビジネスクラス７２６をコールし、ビジネスクラス７２６はアクションを実行し、レスポンスおよび制約７２８を返す。統合フレームワーク７２４は、制約を制約リストと比較し、変更をコミットするか、または変更をロールバックするかを判定する。次に、統合フレームワーク７２４は、ログをアップデートし、レスポンスをプロセッサ７４４に返す。次いでプロセッサ７４４は、レスポンスをゲートウェイキューに配置し、そこからアダプタ７４０がレスポンスをサーバ７００へ送信する。サーバ７００はさらに、リモートロケーション７１８へレスポンスを返す。
【００６２】
図８は、販売入力員（ｓａｌｅｓ  ｅｎｔｒｙ  ｃｌｅｒｋ）８０８が１つまたは複数のパートナ８００、８０２、８０４および８０６の代わりに動作する構成のブロック図を提供する。例えば、販売入力員８０８は、パートナ８００に対するロケーション８１２からの電話を受け取ることができ、その電話に基づき購買注文書８１０を作成することができる。
【００６３】
販売入力員８０８は、カスタムＷｉｎ  ｆｏｒｍｓアプリケーション８１４を利用して購買注文書情報を入力する。カスタムＷｉｎ  ｆｏｒｍｓアプリケーション８１４は、販売入力員８０８を認証して、ソースエンドポイントユーザとして販売入力員８０８に対するユーザ名「Ｉｎｔｒａｎｅｔ＼Ｃｌｅｒｋ＿Ｕｓｅｒ」を、およびソースエンドポイントとして「ＷｉｎＦｏｒｍｓＡｐｐ」を指定する。販売入力員８０８によって購買注文書８１０に入力された情報に基づいて、Ｗｉｎ  Ｆｏｒｍｓアプリケーション８１４は、「ＭｙＡｘａｐｔａ」のデスティネーションエンドポイントおよび「ＣｒｅａｔｅＳＯ」のアクションを識別する。この情報はメッセージ８１６のヘッダに置かれ、メッセージの本文は、購買注文書８１０内の他の情報に基づいて生成される。
【００６４】
カスタムＷｉｎ  ｆｏｒｍｓ８１４は、メッセージ８１６をＩＩＳ＆ウェブサービス８１８へ送信する。ＩＩＳ８１８は、販売員８０８を、メッセージ８１６のサブミットするユーザとして認証する。従って、販売入力員８０８は、サブミットするユーザおよびソースエンドポイントユーザの両方である。この場合、ソースエンドポイントユーザをメッセージで特定することは、それがサブミットするユーザと同一であるので、任意である。メッセージ上で特定されない場合、ソースエンドポイントユーザは、サブミットするユーザと同一のものに設定される。ＩＩＳ＆ウェブサービス８１８は、サブミットするユーザおよびメッセージ８１６を、アプリケーション８２２内の統合フレームワーク８２０へ通す。
【００６５】
統合フレームワーク８２０は、ソースエンドポイント「ＷｉｎＦｏｒｍｓＡｐｐ」がデスティネーションエンドポイント「ＭｙＡｘａｐｔａ」に対して有効であるかどうかを判定し、また、ソースエンドポイントユーザ「Ｉｎｔｒａｎｅｔ＼Ｃｌｅｒｋ＿Ｕｓｅｒ」およびアクション「ＣｒｅａｔｅＳＯ」がソースエンドポイント「ＷｉｎＦｏｒｍｓＡｐｐ」に対して有効であるかどうかを判定する。これらのパラメータが有効である場合、統合フレームワーク８２０は、ビジネスクラス８２４を呼び出し、メッセージ内に表示されるアクションを実行する。ビジネスクラス８２４は、レスポンスおよび統合フレームワーク８２０が「ＷｉｎＦｏｒｍｓＡｐｐ」に対する制約リストに対照して比較する制約８２６を返す。次に、統合フレームワーク８２０は、ログをアップデートし、ＩＩＳ＆ウェブサービス８１８を介してレスポンスを販売入力員へ返す。
【００６６】
図９は、トレーディングパートナ９００、９０２、９０４および９０６が複数の販売代理人９０８、９１０および９１２の１人と通信する構成を提供する。各販売代理人は、カスタムＷｉｎ  Ｆｏｒｍｓアプリケーション９１４で作業し、販売注文書９２０を生成する。例えば、トレーディングパートナ９００と関連するリモートロケーション９１８におけるユーザは、彼らに代わって販売注文書９２０を生成する販売代理人９０８とコンタクトをとる。
【００６７】
カスタムＷｉｎ  Ｆｏｒｍｓアプリケーション９１４は、販売代理人を認証し、ソースエンドポイントユーザとして販売代理人のユーザ名「Ｉｎｔｒａｎｅｔ＼ＲｅｐＡ」、および「ＳａｌｅｓＲｅｐＡ」としてソースエンドポイントを設定する。カスタムＷｉｎ  Ｆｏｒｍｓアプリケーション９１４はまた、販売注文書９２０内の情報を利用してデスティネーションエンドポイントを「ＭｙＡｘａｐｔａ」として、およびアクションを「ＣｒｅａｔｅＳＯ」として識別する。この情報および購買注文書９２０内の他の情報を利用して、カスタムＷｉｎ  Ｆｏｒｍｓアプリケーション９１４は、販売注文書情報をメッセージの本文内に含み、ソースエンドポイント、ソースエンドポイントユーザ、デスティネーションエンドポイント、アクション、およびメッセージＩＤのアイデンティティを示すヘッダを含むメッセージ９２２を生成する。
【００６８】
カスタムＷｉｎ  Ｆｏｒｍｓ９１４は、メッセージをＩＩＳ＆ウェブサービス９１６へ送信する。ＩＩＳ９１６は、販売代理人９０８に対するユーザ名「Ｉｎｔｒａｎｅｔ＼ＲｅｐＡ」をサブミットするユーザとして認証する。従って、サブミットするユーザおよびソースエンドポイントユーザは同一である。ウェブサービス９１６は、メッセージおよびサブミットするユーザのアイデンティティを、アプリケーション９２６内の統合フレームワーク９２４へ与える。
【００６９】
統合フレームワーク９２４は、ソースエンドポイント「ＳａｌｅｓＲｅｐＡ」がデスティネーションエンドポイント「ＭｙＡｘａｐｔａ」に対して有効であることを検証する。統合フレームワーク９２４はまた、ソースエンドポイントユーザ「Ｉｎｔｒａｎｅｔ＼ＲｅｐＡ」およびアクション「ＣｒｅａｔｅＳＯ」がソースエンドポイント「ＳａｌｅｓＲｅｐＡ」に対して有効であることを検証する。次に、統合フレームワーク９２４は、ビジネスクラス９２６を起動してアクションを実施する。ビジネスクラス９２６は、レスポンスおよびアプリケーションインターフェイスがソースエンドポイント「ＳａｌｅｓＲｅｐＡ」に対する制約リストに対照して比較する制約９２８を返す。次に、統合フレームワーク９２４は、トランザクションのログを行い、ＩＩＳ＆ウェブサービス９１６を介してレスポンスを販売代理人９０８へ返す。
【００７０】
図１０は、アプリケーション１００４と同じ施設１００２に配設されるローカルアプリケーション１０００がソースエンドポイントである構成を提供する。  
【００７１】
図１０において、ローカルアプリケーション１０００は、ファイルフォルダ１００８および．ＮＥＴアプリケーション１０１０を包含するサーバによって認証される。次に、ローカルアプリケーション１０００は、販売注文書１００６をファイルフォルダ１００８内に記憶する。この記憶処理の間、購買注文書１００６はユーザ名「Ｉｎｔｒａｎｅｔ＼ＬｏｃａｌＡｐｐ」でスタンプされる。
【００７２】
．ＮＥＴアプリケーション１０１０は、購買注文書１００６をファイルフォルダ１００８から読み出し、購買注文書１００６内の情報を利用してメッセージ１０１２を構成する。特に、．ＮＥＴアプリケーション１０１０は、ソースエンドポイントユーザをローカルアプリケーション１０００に対するユーザ名「Ｉｎｔｒａｎｅｔ＼ＬｏｃａｌＡｐｐ」に、またソースエンドポイントを「ＬｏｃａｌＡｐｐ」に、メッセージ上にスタンプされたユーザ名に基づいて設定する。．ＮＥＴアプリケーション１０１０は、ソースエンドポイントまたは販売注文書１００６の内容に基づいて、デスティネーションエンドポイントを「ＭｙＡｘａｐｔａ」に設定し、販売注文書１００６の内容に基づいてアクションを「ＣｒｅａｔｅＳＯ」に設定する。  
【００７３】
メッセージ１０１２は、サブミットするユーザとして．ＮＥＴアプリケーション１０１０と関連するユーザ名「Ｉｎｔｒａｎｅｔ＼Ｌｏｃａｌ＿Ｓｙｓ」を認証するＩＩＳ＆ウェブサービス１０１４へ与えられる。ウェブサービス１０１４は、アプリケーション１００４内の統合フレームワーク１０１６にサブミットするユーザおよびメッセージ１０１２を与える。統合フレームワーク１０１６は、ソースエンドポイント「ＬｏｃａｌＡｐｐ」がデスティネーションエンドポイント「ＭｙＡｘａｐｔａ」に対して有効であることを検証し、インターミディアリユーザ「Ｉｎｔｒａｎｅｔ＼Ｌｏｃａｌ＿Ｓｙｓ」、ソースエンドポイントユーザ「Ｉｎｔｒａｎｅｔ＼ＬｏｃａｌＡｐｐ」およびアクション「ＣｒｅａｔｅＳＯ」がソースエンドポイント「ＬｏｃａｌＡｐｐ」に対して有効であることを検証する。次に、ビジネスクラス１０１８を起動してアクションを処理する。
【００７４】
ビジネスクラス１０１８は、レスポンスおよび統合フレームワーク１０１６がソースエンドポイントに対する制約リストに対照して比較する制約１０２０を返す。制約と制約リストとの間に有利な比較がなされる場合、統合フレームワーク１０１６は、ビジネスクラス１０１８によってなされた変更をコミットし、トランザクションのログを行う。次に、統合フレームワーク１０１６は、ウェブサービス１０１４を介してレスポンスをアプリケーション１０１０へ返す。
【００７５】
図１１は、アプリケーション１１０４と同じ施設１１０２に配設されるローカルアプリケーション１１００が、ソースエンドポイントであり、メッセージゲートウェイに直接通信する構成を提供する。
【００７６】
図１１において、ローカルアプリケーション１１００は、ゲートウェイトランスポートとして動作するファイルフォルダ１１０８包含するサーバによって認証される。次にローカルアプリケーション１１００は、メッセージ１１１２をファイルフォルダ１１０８に記憶する。メッセージ１１１２は、ローカルアプリケーション１１００により作成され、「ＬｏｃａｌＡｐｐ」がソースエンドポイントであり、「ＭｙＡｘａｐｔａ」がデスティネーションエンドポイントであり、「ｃｒｅａｔｅＳＯ」がアクションであることを示すメッセージヘッダを含む。ここで、インターミディアリが利用されない時はソースエンドポイントユーザの指定が任意であるため、ソースエンドポイントユーザはメッセージヘッダ内に指定されないことに留意されたい。記憶処理の間、メッセージ１１１２は、サブミットするユーザとして、アプリケーション１１００と関連するユーザ名「Ｉｎｔｒａｎｅｔ＼ＬｏｃａｌＡｐｐ」でスタンプされる。
【００７７】
メッセージ１１１２およびサブミットするユーザは、アプリケーション１１０４内のトランスポートアダプタ１１１４に与えられる。トランスポートアダプタ１１１４は、メッセージ１１１２およびサブミットするユーザをゲートウェイキュー１１１６に記憶する。次に、バッチプロセッサ１１１８は、メッセージをゲートウェイキュー１１１６から削除し、ＲｕｎＡｓＡＰＩをコールしてソースエンドポイントユーザの下で作動させる。
【００７８】
バッチプロセッサ１１１８は、サブミットするユーザおよびメッセージ１１１２を統合フレームワーク１１２０に与える。統合フレームワーク１１２０は、ソースエンドポイント「ＬｏｃａｌＡｐｐ」がデスティネーションエンドポイント「ＭｙＡｘａｐｔａ」に対して有効であることを検証し、ソースエンドポイントユーザ「Ｉｎｔｒａｎｅｔ＼ＬｏｃａｌＡｐｐ」およびアクション「ＣｒｅａｔｅＳＯ」がソースエンドポイント「ＬｏｃａｌＡｐｐ」に対して有効であることを検証する。次に、ビジネスクラス１１２２を起動してアクションを処理する。
【００７９】
ビジネスクラス１１２２は、レスポンスおよび統合フレームワーク１１２０がソースエンドポイントに対する制約リストに対照して比較する制約１１２４を返す。有利な比較が制約と制約リストとの間でなされる場合、統合フレームワーク１１２０は、ビジネスクラス１１２２によってなされた変更をコミットし、トランザクションのログを行う。次に、統合フレームワーク１１２０は、レスポンスをバッチプロセッサ１１１８に返し、バッチプロセッサ１１１８はレスポンスをゲートウェイキュー１１１６上に配置する。次いでレスポンスは、ローカルアプリケーション１１００へ戻し通される。
【００８０】
図１２は、実施形態を実施するのに適切なコンピューティングシステム環境１２００の例を図解する。コンピューティングシステム環境１２００は、適切なコンピューティング環境の単なる一例であり、請求の主題の利用または機能性の範囲に関して、いかなる制限も示唆することを意図していない。コンピューティング環境１２００が、例示的オペレーティング環境１２００に図解される構成要素の任意の一つまたは組み合わせに関するいかなる依存も要件も有すると、解釈されるべきではない。
【００８１】
実施形態は、多数の他の汎用目的または特定の目的のコンピューティングシステム環境または構成と共に動作可能である。種々の実施形態と共に利用するのに適切である周知のコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、携帯用またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、電話技術システム、上述の任意のシステムまたはデバイス含む分散型コンピューティング環境等を含むが、これに限定されない。  
【００８２】
実施形態は、プログラムモジュール等のコンピュータにより実行されるコンピュータ実行可能命令の一般的な文脈で記述され得る。一般的に、プログラムモジュールは、特定のタスクを実施または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。いくつかの実施形態は、タスクが通信ネットワークを介してリンクされるリモート処理装置によって実施される、分散型コンピューティング環境において実践されるように設計される。分散型コンピューティング環境において、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモート両方のコンピュータ記憶媒体内に配置される。
【００８３】
図１２を参照すると、いくつかの実施形態を実装するための例示的システムは、コンピュータ１２１０の形をとる汎用コンピューティングデバイスを含む。コンピュータ１２１０の構成要素は、システムメモリを含む種々のシステム構成要素を処理ユニット１２２０に結合する、処理ユニット１２２０、システムメモリ１２３０、およびシステムバス１２２１を含むことができるが、これに限定されない。
【００８４】
コンピュータ１２１０は一般的には、種々のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１２１０によりアクセス可能な任意の市販の媒体でよく、揮発性および不揮発性媒体、着脱可能および着脱不可能媒体を含む。例として、制限ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ等の情報の記憶のための任意の方法または技術で実装される揮発性および不揮発性、着脱可能および着脱不可能媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋｓ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報を記憶するのに利用できる、およびコンピュータ１２１０によりアクセス可能な任意の他の媒体を含むが、これに限定されない。通信媒体は、一般的には、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波等の変調データ信号もしくは他のトランスポート機構の他のデータを具現化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号内の情報をエンコードするような方法で設定または変更された、１つまたは複数の特徴を有する信号を意味する。例として、限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続等の有線媒体、および、音響、ＲＦ、赤外線および他の無線媒体等の無線媒体を含む。上記の任意の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれる。
【００８５】
システムメモリ１２３０は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）１２３１およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１２３２等の揮発性および／または不揮発性メモリの形をとるコンピュータ記憶媒体を含む。ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）１２３３は、スタートアップ中等にコンピュータ１２１０内部の要素間の情報を転送する助けとなる基本ルーチンを包含し、一般的にはＲＯＭ１２３１に記憶される。ＲＡＭ１２３２は一般的には、処理ユニット１２２０に直接アクセス可能な、および／または、処理ユニット１２２０によって現在操作されているデータおよび／またはプログラムモジュールを包含する。例として、限定ではなく、図１２は、オペレーティングシステム１２３４、アプリケーションプログラム１２３５、他のプログラムモジュール１２３６、およびプログラムデータ１２３７を図解する。
【００８６】
コンピュータ１２１０はまた、他の着脱可能／着脱不可能、揮発性／不揮発性コンピュータ記憶媒体を含むことができる。単なる例として、図１２は、着脱不可能不揮発性磁気媒体を読み出しまたは書き込みを行うハードディスクドライブ１２４１、着脱可能不揮発性磁気ディスク１２５２を読み出しまたは書き込みを行う磁気ディスクドライブ１２５１、およびＣＤ  ＲＯＭまたは他の光媒体等の着脱可能不揮発性光ディスク１２５６を読み出しまたは書き込みを行う光ディスクドライブ１２５５を図解する。例示的オペレーティング環境で利用できる他の着脱可能／着脱不可能、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ、等を含むが、これに限定されない。ハードディスクドライブ１２４１は、一般的にはインターフェース１２４０等の着脱不可能メモリインターフェースを介してシステムバス１２２１に接続され、磁気ディスクドライブ１２５１および光ディスクドライブ１２５５は、一般的にはインターフェース１２５０等の着脱可能メモリインターフェースによってシステムバス１２２１に接続される。
【００８７】
上述し図１２に図解した、ドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの記憶装置をコンピュータ１２１０に与える。図１２において、例えば、ハードディスクドライブ１２４１は、オペレーティングシステム１２４４、アプリケーションプログラム１２４５、他のプログラムモジュール１２４６、およびプログラムデータ１２４７を記憶するように図解される。ここで、これらの構成要素は、オペレーティングシステム１２３４、アプリケーションプログラム１２３５、他のプログラムモジュール１２３６、およびプログラムデータ１２３７と同じでも異なっていてもよいことに留意されたい。オペレーティングシステム１２４４、アプリケーションプログラム１２４５、他のプログラムモジュール１２４６、およびプログラムデータ１２４７は、ここでは異なる番号が付され、それらが最低限の異なるものであることを図解している。
【００８８】
ユーザは、キーボード１２６２、マイクロフォン１２６３、およびマウス、トラックボールまたはタッチパッド等のポインティングデバイス１２６１等の入力装置を介してコンピュータ１２１０にコマンドおよび情報を入力することができる。これらのおよび他の入力装置はしばしば、システムバスに結合されるユーザ入力インターフェース１２６０を介して処理ユニット１２２０に接続されるが、他のインターフェースおよび、パラレルポート、ゲームポートまたはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）等のバス構造によって接続されてもよい。モニタ１２９１または他のタイプの表示装置もまた、ビデオインターフェース１２９０等のインターフェースを介してシステムバス１２２１に接続される。モニタに加えて、コンピュータはまた、出力周辺インターフェース１２９５を介して接続されることができる、スピーカ１２９７およびプリンタ１２９６等の他の周辺出力装置を含むことができる。
【００８９】
コンピュータ１２１０は、リモートコンピュータ１２８０等の１つまたは複数のリモートコンピュータへの論理接続を利用してネットワーク接続された環境内で操作される。リモートコンピュータ１２８０は、パーソナルコンピュータ、携帯用デバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードであることができ、一般的にはコンピュータ１２１０に関連する多数のまたは全ての上述の要素を含む。図１２に描かれた論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）１２７１およびＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）１２７３を含むが、他のネットワークを含むこともできる。そのようなネットワーク接続する環境は、企業内では一般的な、企業規模のコンピュータネットワーク、イントラネットおよびインターネットである。  
【００９０】
ＬＡＮのネットワーク接続する環境で使用される時、コンピュータ１２１０は、ネットワークインターフェースまたはアダプタ１２７０を介してＬＡＮ１２７１に接続される。ＷＡＮのネットワーク接続する環境で使用される時、コンピュータ１２１０は、一般的にはモデム１２７２またはインターネット等のＷＡＮ１２７３全体に通信を確立する他の手段を含む。内部または外部であり得るモデム１２７２は、ユーザ入力インターフェース１２６０、または他の適切な機構を介してシステムバス１２２１に接続されることができる。ネットワーク接続された環境において、コンピュータ１２１０に関連して描かれたプログラムモジュールまたはその一部は、リモートメモリ記憶装置に記憶されることができる。例として、限定ではなく、図１２は、リモートアプリケーションプログラム１２８５がリモートコンピュータ１２８０上に存在するように図解する。当然のことながら、図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段が利用できる。  
【００９１】
主題が、構造の特徴および／または方法論的な動作に特有の言葉で記述されたが、添付の請求項で定義される主題は、必ずしも上述の特有の特徴または動作に限定されないことは理解されよう。むしろ、上述の特有の特徴および動作は、請求項を実装するための例示の形として開示される。
【図１】
2009545090.tif 000003
【図２】
2009545090.tif 000004
【図３】
2009545090.tif 000005
【図４】
2009545090.tif 000006
【図５】
2009545090.tif 000007
【図６】
2009545090.tif 000008
【図７】
2009545090.tif 000009
【図８】
2009545090.tif 000010
【図９】
2009545090.tif 000011
【図１０】
2009545090.tif 000012
【図１１】
2009545090.tif 000013
【図１２】
2009545090.tif 000014
【国際調査報告】
2009545090.tif 000015
2009545090.tif 000016