JP5139220B2 - コンポジットアプリケーションフィールドのためのセキュリティ強化フレームワーク - Google Patents

コンポジットアプリケーションフィールドのためのセキュリティ強化フレームワーク Download PDF

Info

Publication number
JP5139220B2
JP5139220B2 JP2008244984A JP2008244984A JP5139220B2 JP 5139220 B2 JP5139220 B2 JP 5139220B2 JP 2008244984 A JP2008244984 A JP 2008244984A JP 2008244984 A JP2008244984 A JP 2008244984A JP 5139220 B2 JP5139220 B2 JP 5139220B2
Authority
JP
Japan
Prior art keywords
security
service
policy
pattern
intention
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008244984A
Other languages
English (en)
Other versions
JP2009099136A (ja
Inventor
ユーセル・カラバルト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
SAP SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAP SE filed Critical SAP SE
Publication of JP2009099136A publication Critical patent/JP2009099136A/ja
Application granted granted Critical
Publication of JP5139220B2 publication Critical patent/JP5139220B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本開示は、一般にセキュリティを保証されたコンピューティングに関する。
コンポジットアプリケーションは、サービス指向アプリケーションプラットフォームによってWebサービスとして提供されるデータや機能、および既存のパッケージアプリケーションやカスタムビルトアプリケーションを利用するアプリケーションである。コンポジットアプリケーションは、独自のビジネスロジックとユーザーインターフェイスによってサポートされており、こうしたWebサービスを組み合わせて利用中心のプロセスおよびビューを生成する。この点において、コンポジションは、既存のコンポーネントを絶え間なく進化するコンポジットアプリケーションに再編成することによって、こうしたコンポーネントを再利用できるようにする。したがって、コンポジットアプリケーションにより、ビジネスシナリオおよび/またはユーザーに固有のプロセスは複数の機能エリア(functional areas)にまたがることができる。
コンポジットアプリケーション開発者向けにモデル駆動型のセキュアなコンポジションフレームワークが提供されており、たとえば、基盤となるセキュリティポリシー、セキュリティオブジェクティブ、またはセキュリティインフラストラクチャの詳細を要約することにより、セキュリティオブジェクティブをスクリプトを使用した軽量のコンポジットアプリケーションに容易に統合することができる。
1つの一般的な実装によると、コンピュータに実装された方法には、ビジネスプロセスの仕様にアクセスするステップが含まれており、こうした仕様には、セキュリティインテンションを定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部を定義し、外部のサービスをコールするタスクが含まれている。セキュリティアノテーションに関連付けられたセキュリティパターンが呼び出され、呼び出されたセキュリティパターンに基づいてセキュリティインテンションを満足する外部のサービスに関連付けられたサービスプロバイダが識別される。識別されたサービスプロバイダを使用して、ビジネスプロセスが呼び出される。
実装には、次に示す1つまたは複数の機能を含めることができる。たとえば、セキュリティアノテーションはポリシードメイン固有言語を使用して表現することができる。セキュリティアノテーションは解析することができる。セキュリティポリシーデータベースは、セキュリティアノテーションに基づいて更新することができる。識別されたサービスプロバイダを使用してビジネスプロセスを呼び出すステップには、セキュリティインテンションに基づいて識別されたサービスプロバイダ向けのセキュアサービスプロキシを生成するステップがさらに含まれており、このセキュアサービスプロキシは外部のサービスへのセキュアサービスコールオペレーションを管理し、セキュアサービスプロキシを使用して外部のサービスをコールする。セキュアサービスプロキシは、暗号化して格納することができる。格納されたセキュアサービスプロキシを取得し、このセキュアサービスプロキシに関連付けられたセキュアサービスコールオペレーションを呼び出すことができる。外部のサービスから応答を受信し、セキュアサービスプロキシを使用して処理することができる。
別の例では、サービスプロバイダを識別するステップには、サービスプロバイダリストのサービスアクセス情報にアクセスするステップであって、このサービスアクセス情報にはサービスのエンドポイントとサービスのオペレーション署名が含まれるステップと、サービスプロバイダのリストに含まれるサービスプロバイダのそれぞれについて格納されたセキュリティオブジェクティブおよび格納されたセキュリティ機能にアクセスするステップと、サービスプロバイダのそれぞれについて格納されたセキュリティオブジェクティブおよび格納されたセキュリティ機能をセキュリティインテンションに関連付けられたセキュリティオブジェクティブおよびセキュリティ機能と比較するステップとをさらに含めることができる。サービスプロバイダを識別するステップには、サービスプロバイダのそれぞれについて格納されたセキュリティオブジェクティブおよび格納されたセキュリティ機能を比較するステップに基づいて選択されたサービスプロバイダを選択するステップと、この選択されたサービスプロバイダを識別されたサービスプロバイダとして知識ベースに格納するステップと、選択されたサービスプロバイダを格納するステップに基づいてサービスプロバイダ選択プロセスが完了したことを示すイベントを生成するステップとをさらに含めてもよい。
その他の例では、サービスはバックエンドエンタープライズサービス、外部のビジネスツービジネスサービスまたはローカルサービスのいずれでもよい。セキュリティアノテーションには、セキュリティインテンションを表現する変数を含めることができる。ただし、セキュリティパターンはこの変数を使用して呼び出される。セキュリティインテンションは、外部のWebサービスを使用する場合に外部の実施ポリシーを宣言でき、呼び出されたビジネスプロセスをWebサービスとして公開する場合にポリシーを宣言でき、タスクが人的インタラクションを必要とする場合にタスクベースの認可要件を宣言でき、さらにタスクが実行される順序を指定するタスクベースの認可制約を宣言できる。セキュリティインテンションは、タスクの実行を許可されるロールを指定することができる。
さらに、他の例では、セキュリティインテンションはタスクが実行される順序を指定することもできる。ビジネスプロセスを呼び出すステップには、タスクを実行するステップをさらに含めてもよい。セキュリティパターンには、サービスプロバイダが識別される前にセキュリティインテンションの実施をトリガするために使用される第1のエントリポイントと、タスクが実行される前にセキュリティインテンションの実施をトリガするために使用される第2のエントリポイントと、タスクが実行された後にセキュリティインテンションの実施をトリガするために使用される第3のエントリポイントとを含めることができる。ビジネスプロセスを呼び出すステップには、サービスプロバイダがまだ識別されていない場合に第1のエントリポイントを選択するステップと、タスクがまだ実行されていない場合に第2のエントリポイントを選択するステップと、タスクが実行された場合に第3のエントリポイントを選択するステップとをさらに含めることができる。サービスプロバイダを識別するステップには、サービス要求を生成するステップと、セキュリティパターンに基づいてサービス要求のセキュリティを強化するステップを含めてもよい。セキュリティインテンションは、メッセージの機密性、暗号化のセキュリティインテンション、整合性インテンション、ロールの割り当てインテンション、またはタスクの実行順序インテンションを定義することができる。
別の一般的な実装によると、コンピュータプログラム製品はマシン可読媒体内に明白に具体化される。コンピュータプログラム製品には、マシンで読み込まれた場合に、データ処理装置がビジネスプロセスの仕様にアクセスする結果となるように動作する命令が含まれており、こうした仕様には、セキュリティインテンションを定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部を定義し、外部のサービスをコールするタスクが含まれる。本プログラム製品には、さらにデータ処理装置がセキュリティアノテーションに関連付けられたセキュリティパターンを呼び出し、呼び出されたセキュリティパターンに基づいてセキュリティインテンションを満足する外部のサービスに関連付けられたサービスプロバイダを識別し、識別されたサービスプロバイダを使用してビジネスプロセスを呼び出す結果となるように動作する命令も含まれる。
別の一般的な実装によると、デバイスには記憶媒体とプロセッサが含まれる。記憶媒体には、ビジネスプロセスの仕様が格納されており、こうした仕様には、セキュリティインテンションを定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部を定義し、外部のサービスをコールするタスクが含まれる。プロセッサは、セキュリティアノテーションに関連付けられたセキュリティパターンを呼び出し、呼び出されたセキュリティパターンに基づいてセキュリティインテンションを満足する外部のサービスに関連付けられたサービスプロバイダを識別し、識別されたサービスプロバイダを使用してビジネスプロセスを呼び出すように設定されている。
別の一般的な実装によると、1つの方法にはビジネスプロセスにセキュリティフレームワークを適用するステップが含まれており、このセキュリティフレームワークは、コンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、セキュリティパターンに基づくコンポジットアプリケーション内のセキュリティアノテーションを使用して識別されたセキュリティオブジェクティブを実施する宣言フェーズを備えている。本方法には、外部のポリシーネゴシエーションを実行し、セキュリティフレームワークの適用に基づいてコンポジットアプリケーションと外部のサービスの間で共通のポリシーを指定するステップと、コンポジットアプリケーションと外部のサービスとのインタラクションのそれぞれについてこの共通のポリシーを実施するステップと、セキュリティオブジェクティブに基づいて外部のサービスからローカルサービスおよびローカルオブジェクトへのアクセスを規制するステップとがさらに含まれる。
実装には、次に示す1つまたは複数の機能を含めることができる。たとえば、定義フェーズには、セキュリティリスク分析を実行するセキュリティリスク分析コンポーネントと、セキュリティソリューションキャストをセキュリティパターンとして準備するセキュリティパターン定義コンポーネントと、セキュリティパターンを組み合わせることによって実現されるセキュリティインテンションを定義するセキュリティインテンション定義コンポーネントとをさらに含めることができる。セキュリティリスク分析を実行するステップには、ビジネスプロセスにおける脅威を分析するステップと、ビジネスプロセスにおいて関連のリスクを識別するステップとをさらに含めることができる。セキュリティリスク分析を実行するステップには、ビジネスプロセスに関連するサービスインタラクションメカニズムを識別するステップと、識別されたサービスインタラクションメカニズムの脅威分析を実行するステップとをさらに含めることができる。セキュリティソリューションを準備するステップは、セキュリティオブジェクティブの統一された定義を可能にするインテンションオントロジーを提供するステップをさらに備えている。
実現フェーズには、ドメインに依存しないパターンを特定のコンテクストに結合し、それによってセキュリティパターンを実装するセキュリティパターン実装コンポーネントと、実装されたセキュリティパターンをパターンリポジトリに格納するセキュリティパターンプロビジョニングコンポーネントを含めることができる。宣言フェーズには、コンポジットアプリケーションが従うセキュリティインテンションを宣言するアプリケーションレベルのインテンション宣言コンポーネントと、コンポジットアプリケーションをサービスとして公開する前にローカルコンポーネントへのセキュリティインテンションを定義するサービスレベルのインテンション宣言コンポーネントとをさらに含めることができる。本方法には、認可ポリシーを生成するステップと、ポリシー更新プロトコルを使用して欠落するポリシーをバックエンドポリシーデータベースに挿入するステップとをさらに含めることができる。セキュリティインテンションでは、タスクの実行を許可されるロールまたはタスクが実行される順序を指定することができる。セキュリティアノテーションは、ポリシードメイン固有言語を使用して表現することができる。セキュリティインテンションでは、外部のWebサービスを使用する場合に外部の実施ポリシーを宣言でき、呼び出されたビジネスプロセスをWebサービスとして公開する場合にポリシーを宣言でき、タスクが人的インタラクションを必要とする場合にタスクベースの認可要件を宣言でき、さらにタスクが実行される順序を指定するタスクベースの認可制約を宣言できる。
別の一般的な実装によると、コンピュータプログラム製品はマシン可読媒体内に明白に具体化されており、本コンピュータプログラム製品には、マシンで読み込まれた場合に、データ処理装置がビジネスプロセスにセキュリティフレームワークを適用する結果となるように動作する命令が含まれており、本セキュリティフレームワークにはコンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、セキュリティパターンに基づくコンポジットアプリケーション内のセキュリティアノテーションを使用して識別されたセキュリティオブジェクティブを実装する宣言フェーズが含まれる。本コンピュータプログラム製品には、マシンで読み込まれた場合に、データ処理装置が外部のポリシーネゴシエーションを実行し、セキュリティフレームワークの適用に基づいてコンポジットアプリケーションと外部のサービスの間で共通のポリシーを指定し、コンポジットアプリケーションと外部のサービスとのインタラクションのそれぞれについてこの共通のポリシーを実施し、さらにセキュリティオブジェクティブに基づいて外部のサービスからローカルサービスおよびローカルオブジェクトへのアクセスを規制する結果となるように動作する命令もさらに含まれる。
別の一般的な実装によると、1つのシステムにはビジネスプロセスにセキュリティフレームワークを適用するように設定されたエンタープライズが含まれており、本セキュリティフレームワークにはコンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、セキュリティパターンに基づくコンポジットアプリケーション内のセキュリティアノテーションを使用して識別されたセキュリティオブジェクティブを実装する宣言フェーズが含まれる。本エンタープライズは、外部のポリシーネゴシエーションを実行し、セキュリティフレームワークの適用に基づいてコンポジットアプリケーションと外部のサービスの間で共通のポリシーを指定し、コンポジットアプリケーションと外部のサービスとのインタラクションのそれぞれについてこの共通のポリシーを実施し、さらにセキュリティオブジェクティブに基づいて外部のサービスからローカルサービスおよびローカルオブジェクトへのアクセスを規制するようにさらに設定されている。
1つまたは複数の実装の詳細は、以下で添付の図面と説明において示されている。本開示のその他の機能と利点の可能性については、説明と図面から、また特許請求の範囲から明らかになるであろう。
全体を通して類似の参照番号は対応するコンポーネントを表している。
コンポジットビジネスアプリケーション(または「コンポジットアプリケーション」)は、複数のコンポーネントやサービス(たとえば、個々のWebサービスまたは出力がWebサービスとしてパッケージ化された他のアプリケーションまたはシステム全体の範囲内から選択された機能)を組み合わせることによって構築される。コンポジットビジネスアプリケーションは、ローカルアプリケーションロジックの編成を組み込むことによって、コンポジットWebサービス同士がいつ、どのようにしてインタラクションを行い、新しく抽出された機能を生成するかを制御することができる。このように、コンポジットアプリケーションの機能はサービス指向アーキテクチャ(SOA:service-oriented architecture)内のさまざまなソースから定義されている。
セキュリティは、ミッションクリティカルなサービス指向型コンポジットアプリケーションを開発する上で重要な問題の1つであるため、1つの一般的な実装によると、複数のサービスを安全な方法で組み合わせることによって堅牢なコンポジットアプリケーションを作成することができる。ビジネス駆動型アプリケーションのセキュリティアプローチに従って、ビジネスアプリケーションのセキュリティ要件(または「セキュリティインテンション」)は、ビジネスプロセス仕様レベルのセキュリティアノテーションとして表現され、このセキュリティアノテーションに対応するセキュリティ要件を満たすための関連のセキュリティインフラストラクチャが自動的に生成される。
こうしたセキュリティアノテーションは、ビジネスアプリケーションのセキュリティオブジェクティブを表しているが、セキュリティに関してトレーニングを受けたビジネスプロセス開発者によってビジネスプロセス仕様内で表現することができる。アノテーションは、セキュリティパターンリポジトリから選択され、ドメイン固有言語を使用することによって特定のアプリケーション向けにインスタンス化されてもよい。
ビジネスプロセス開発者がアプリケーションを配備する場合に、セキュリティオブジェクティブの実装に関連付けられたオペレーションプロセス(たとえば、サービスの選択、サービスの結合、およびセキュリティインフラストラクチャの生成)は、自動的に実行される。たとえば、サービスプロバイダの選択は、コンポジットビジネスプロセスとサービスプロバイダの両方のセキュリティ要件とセキュリティ機能の間のマッチメイキングプロセスを使用して実行することができる。ビジネスプロセス開発者は、専任のセキュリティ開発者が関わることなく、このようにして実行時のセキュリティオブジェクティブを宣言することができる。この点において、サービスプロバイダからのサービス(たとえばWebサービス)の選択は、コンポジットアプリケーションの希望するセキュリティオブジェクティブをサービスプロバイダの現在のセキュリティ機能とマッチングし、さらにサービスプロバイダの希望するセキュリティオブジェクティブをコンポジットアプリケーションの現在のセキュリティ機能とマッチングすることによって実行できる。
したがって、独立したビジネスプロセスとセキュリティポリシーは、抽象的な方法で設計でき、容易に実装できる。ビジネスプロセス仕様の設計は、多くの場合にビジネス分析技術者またはソフトウェア技術者によって実行されるため、ソフトウェアアノテーションはカスタマイズ可能なパターンからモデル化されており、場合によっては関連のビジネスプロセスを熟知していないセキュリティ開発者が有するセキュリティについての高レベルの知識やトレーニングを必要としない。
セキュリティアノテーションを使用すると、コンポジットアプリケーションはセキュリティオブジェクティブとセキュリティ設定とのギャップを手動で埋める必要がないため、セキュリティ違反の可能性が低下する。さらに、ビジネスプロセスモデルと関連のセキュリティアノテーションとを緊密に結合することにより、ビジネスプロセスの変更はより確実にセキュリティオブジェクティブに結合する。このようにして、抽象的なビジネス駆動型のセキュリティオブジェクティブは、ビジネスプロセス仕様レベルで定義されるオブジェクティブを使用して、明白なセキュリティポリシーとセキュリティ実装にマップされるのが効果的である。
手短に言えば、本明細書で説明するセキュリティフレームワークにより、ビジネスプロセス開発者は高度なセキュリティインテンションまたはセキュリティオブジェクティブをビジネスプロセス仕様に追加でき、こうしたセキュリティフレームワークにより、セキュリティの設定と実施のプロセスの自動生成が促進される。このようなセキュリティオブジェクティブには、たとえば、ビジネスプロセスの認可要件、Webサービスの保護品質(QoP:Quality of Protection)に関する要件、またはその他のセキュリティインテンションを含めることができる。
コンポジットアプリケーション開発者向けにモデル駆動型のセキュアコンポジションフレームワークが提供されており、たとえば、基盤となるセキュリティポリシー、セキュリティオブジェクティブ、またはセキュリティインフラストラクチャの詳細を要約することによって、セキュリティオブジェクティブを、スクリプトを使用した軽量のコンポジットアプリケーションに容易に統合することができる。コンポジションで使用するサービスは、Webサービスとして完成された企業内部のビジネス機能、サプライヤおよびその他のビジネスパートナーが提供する外部のWebサービス、または完全にローカルなサービスのいずれでもよいが、それによって組織間にまたがるコンポジットアプリケーションのセキュリティを保証するソリューションを提供する。
図1は、調整された順序で実行される一連のタスクまたはアクティビティを含む例示的なビジネスプロセス100を示している。タスクはアトミックなビジネスプロセスコンポーネントであり、アクティビティを説明し、またはプロセスの制御フローを変更する(たとえば、プロセスフローを分割しまたは結合する)。たとえば、例示的なビジネスプロセス100には、開始専用のタスク101、逐次的に実行される第1のタスク102("タスク1")、第2のタスク104("タスク2")、および第3のタスク105("タスク3")が含まれており、それぞれ終了専用のタスク106の前に実行される。特定のタスク(たとえば第1のタスク102または第3のタスク105)の実行では、ビジネスパートナーまたはサプライヤのビジネス機能を提供する外部のWebサービスの呼び出しを要求してもよい。他のタスク(たとえば第2のタスク104)の実行では、特定のロールを割り当てられた人物の介入を要求してもよい。
図2は、セキュリティアノテーションを使用してコンポジットアプリケーションを実装する例示的なシステムアーキテクチャ200を示すブロック図である。具体的には、システムアーキテクチャ200には、コンポジットアプリケーション("comp-app")を呼び出すエンタープライズ201、第1のサービスプロバイダ203("sp")、第2のサービスプロバイダ204、および第3のサービスプロバイダ205が含まれる。エンタープライズ201とサービスプロバイダ203〜205は、ネットワーク206を介して接続されている。
エンタープライズには、セキュリティアノテーションを使用するコンポジットアプリケーションを実装するデバイス208と、エンタープライズポリシーリポジトリ(EPR:enterprise policy repository)209、エンタープライズセキュリティ機能カタログ(ESCC:enterprise security capabilities catalog)210、ポリシー設定サーバー(PCS:policy configuration server)211、サービスブローカー(SB:service broker)212、およびサービスレジストリ(SR:service registry)214が含まれる。一般に、エンタープライズポリシーリポジトリ209にはエンタープライズ201のセキュリティポリシー、セキュリティオブジェクティブ、またはセキュリティゴール("comp-app-sg")がビジネスプロセス開発者によって取得されるために格納されており、エンタープライズセキュリティ機能カタログ210にはエンタープライズ201のセキュリティ機能("comp-app-cap")がビジネスプロセス開発者によって取得されるために格納されており、ポリシー設定サーバー211には開発中のコンポジットビジネスプロセス用に新しく作成されたセキュリティポリシーとセキュリティ機能が格納されており、サービスブローカー212は適合するサービスプロバイダを識別し、さらに、サービスレジストリ214には適合するサービスプロバイダを識別するプロセスを支援するためのすでに登録されたサービスプロバイダに関する情報が格納されている。
エンタープライズのセキュリティポリシーcomp-app-sgは、アクセス制御の指定と実施、QoPの宣言と実施、およびビジネスプロセスレベル、ビジネスプロセスタスクレベル、およびサービスレベルを含むさまざまなレベルで必要とされ得る分散ポリシー管理の問題に関連付けることができる。たとえば、このようなポリシーは、個々のビジネスプロセスタスクに関する認可の指定と実施、ビジネスプロセスに関する認可制約(たとえば職務の分離)の指定と実施、またはWebサービス(たとえば、ローカルサービス、コンポジットサービス、バックエンドサービス、外部サービス)に関するQoP要件(すなわちセキュリティ機能とセキュリティポリシー)の指定と実施に関連付けることができる。QoP要件には、セキュリティまたはプライバシーに関する要件(たとえば、特定の暗号化アルゴリズム)、または技術的なセキュリティ機能(たとえば、Webサービスセキュリティポリシー(WS-SecurityPolicy))における結合、またはセキュリティアサーションマークアップ言語(SAML:security assertion markup language)を定義できる。
さらに、セキュリティポリシーには、バックエンドサービスとのインタラクションを行う場合に自動化されたポリシー設定メカニズムを使用すべきであることを指定できる。ビジネスプロセス開発者は、コンポジットアプリケーションからバックエンドアプリケーションサービスに対して発行されたサービス要求を認可するポリシーがバックエンドシステムのポリシーデータベースに含まれていない場合に、必要なポリシーが生成され、バックエンドシステムのポリシーデータベースに格納されることを保証する必要がある。ポリシーには、外部のサービスとのインタラクションを行う場合に動的なポリシーネゴシエーションとポリシー実施を使用すべきであることをさらに指定できる。コンポジットアプリケーション実行の一部のステージでは、サプライヤまたは取引先が所有する外部のWebサービスにアクセスしてもよい。このような環境では、要求された個々のサービスインタラクションは、コンポジットアプリケーションと要求された外部のサービスのセキュリティオブジェクティブが実現された場合または満足された場合に実行することができる。
さらに、セキュリティポリシーには動的なポリシー管理を使用してオペレーションフェーズにおけるポリシーの変更に対処する必要があること、たとえば、コンポジットで使用するサービスのポリシーの変更は、アプリケーションを再起動せずに適用されることを指定してもよい。分散環境で相互運用性をサポートするために使用される標準に準拠したセキュリティサービス(たとえば、セキュリティトークンサービス)とセキュリティポリシー(たとえば、拡張可能なアクセス制御マークアップ言語(XACML:eXtensible Access Control Markup Language)互換のポリシー)をセキュリティポリシーとして記述することもできる。そうする上で、セキュリティポリシーによって、低レベルのWebサービスセキュリティ標準の抽象化を可能にするセキュリティAPI、セキュリティ対応のすべてのアプリケーションに対してエンタープライズレベルの保護を提供するセキュリティメカニズムの一貫した使い方、ビジネスプロセスとセキュリティポリシーの一貫した設計、および組織間にまたがるサービスインタラクションをサポートする信頼性の高い管理インフラストラクチャを提供できる。
1つの例として、セキュリティポリシーcomp-app-sgはすべてのビジネスツービジネス(B2B:business-to-business)接続が機密であることを要求できる。セキュリティ機能の例comp-app-capは、エンタープライズがセキュリティアサーションマークアップ言語(SAML)トークンを使用したトークンベースのアクセス制御をサポートすることを指定してもよい。
デバイス208には、ビジネスプロセス仕様のインスタンスを作成し、ビジネスプロセスの関連タスクをプロセスシーケンスに指定されたとおりに実行するビジネスプロセスエンジン(BPE:business process engine)215と、適切なサービスプロキシをインスタンス化して調整するイベントマネージャ(EM:event manager)216と、イベントマネージャ216によって取得されるためにサービスプロキシを格納するサービスプロキシレジストリ(SPI:service proxy registry)217と、ビジネスプロセスエディタ219と、コンポジットビジネスプロセス仕様言語(BPEL:business process specification language)220と、セキュリティアノテーションを解析するポリシードメイン固有言語(DSL:domain specific language)エンジン(PDSLE:policy DSL engine)221と、サービスプロバイダへのセキュアサービスコールを管理し、セキュリティオペレーション(たとえば、暗号化、検証、トークンの取得)を処理するためのオペレーションを提供するセキュアサービスプロキシ(SSP:secure service proxy)222と、SSPコードを格納するSSPレジストリ(SSPR:SSP registry)224と、セキュリティポリシーパターンを格納するポリシーパターンリポジトリ(PPR:policy pattern repository)225とがさらに含まれる。集合的に、ビジネスプロセスエンジン215、イベントマネージャ216、およびサービスプロキシレジストリ217は設計時コンポーネントと呼ばれており、ビジネスプロセスエディタ218とコンポジットビジネスプロセス仕様言語220は実行時コンポーネントと呼ばれている。
そのセキュリティ関連の機能を実装するために、セキュアサービスプロキシ222は、証明書を発行する属性サーバー、暗号化機能を提供する暗号サーバー、アクセス制御要求を評価するポリシー決定エンジン、証明書を検証する証明書エンジン、および/またはパブリックキーとプライベートキーを格納するセキュアキーエンジンを含むかまたはこれらにアクセスすることができる。
第1のサービスプロバイダ203には、Webサービス226と、第1のサービスプロバイダのセキュリティオブジェクティブまたはセキュリティポリシー("sp-pol")およびセキュリティ機能("sp-cap")を格納するセキュリティ機能レジストリ227が含まれる。サービス226は、ビジネス機能を提供し、少なくともサービス(またはオペレーション)名と入力および出力パラメータを含む説明を伴うWebサービスとして実装される。セキュリティポリシーsp-polはこのサービスにアクセスするために必要な証明書を説明するアクセスポリシーを指定でき、セキュリティ機能sp-capはサービス226のサポートされるセキュリティ機能を指定できる。
コンポジットアプリケーション環境には、コンポジットアプリケーションレイヤとサービスプロバイダレイヤが含まれる。コンポジットアプリケーションとサービスプロバイダは、いずれも実行時のインタラクションの間に発生するサービスコールの方向によってサービスコンシューマとサービスプロバイダのロールで動作できる。図示されていないが、第2のサービスプロバイダ204と第3のサービスプロバイダ205にもサービスおよびセキュリティ機能レジストリが関連付けられている。
1つの実装によると、コンポジットアプリケーションは設計時プロセスと実行時プロセスとを使用して生成される。設計時プロセスでは、開発者はプロセスエディタ219を使用してビジネスプロセスを指定し、このプロセスを配備する。実行時プロセスで、ビジネスプロセスエンジン215はプロセス仕様のインスタンスを作成し、プロセスシーケンスに指定されたとおりにタスクを実行する。外部のWebサービス呼び出しを行うタスクのそれぞれについて、ビジネスプロセスエンジン215はイベントマネージャ216をコールし、サービス要求をイベントマネージャ216に渡す。
イベントマネージャは、この要求に基づいてサービスプロキシレジストリから適切なサービスプロキシを選択し、このサービスプロキシをインスタンス化する。インスタンス化された各サービスプロキシは、結合された外部のWebサービスをコールし、コールの結果をイベントマネージャに返し、さらにイベントマネージャはビジネスプロセスエンジンに応答を転送する。ビジネスプロセスエンジンは、すべての外部のサービスコールからの応答を収集し、返されたデータに関するコンポジションオペレーションを実行してコンポジット出力を作成し、それによってコンポジットビジネスプロセスを配備する。
図3は、コンポジットアプリケーションレイヤで自動的なセキュアアプリケーションコンポジションを実装する例示的なプロセス300を示している。手短に言えば、コンピュータで実装するプロセス300には、ビジネスプロセスの仕様にアクセスするステップが含まれており、こうした仕様には、セキュリティインテンションを定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部を定義し、外部のサービスをコールするタスクが含まれる。プロセス300には、セキュリティアノテーションに関連付けられたセキュリティパターンを呼び出すステップと、呼び出されたセキュリティパターンに基づいてセキュリティインテンションを満足する外部のサービスに関連付けられたサービスプロバイダを識別するステップと、識別されたサービスプロバイダを使用してビジネスプロセスを呼び出すステップもさらに含まれる。
より詳細には、プロセス300が開始され(S301)、ビジネスプロセスの仕様にアクセスする。ただし、こうした仕様には、セキュリティインテンションを定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部を定義し、外部のサービスをコールするタスクが含まれる(S302)。
以上を簡単に参照すると、図4は設計時にビジネスプロセス開発者が行うビジネスプロセス仕様の準備を示すスイム図である。設計中のコンポジットアプリケーションのタイプは実施する必要のあるセキュリティポリシーを左右する可能性があるため、ビジネスプロセス開発者は、ポリシー管理ツール401を使用してエンタープライズポリシーリポジトリ402からエンタープライズのセキュリティポリシーcomp-app-sgを取得する。ビジネスプロセス開発者は、少なくともエンタープライズのセキュリティポリシーと同等に強固なアプリケーション固有のセキュリティポリシーをさらに定義することもできる。
さらに、ビジネスプロセス開発者は、エンタープライズセキュリティ機能カタログ405からセキュリティ機能comp-app-capを取得する。ビジネスプロセス開発者は、取得したセキュリティポリシーのそれぞれについて、ポリシーパターンリポジトリ404から適切なセキュリティポリシーパターンを選択し、選択されたポリシーパターンをコンポジットビジネスプロセスに実装されるようにカスタマイズする。カスタマイズされたポリシーパターンはポリシーアノテーションとしてビジネスプロセス仕様407に挿入される。ただし、アノテーションはポリシードメイン固有言語を使用して表現できる。
さらに、ビジネスプロセス開発者は、エンタープライズセキュリティ機能カタログ405から取得したセキュリティ機能を使用してポリシー設定サーバー406を更新する。コンポジットアプリケーションのそれぞれは、特定のコンポジットビジネスプロセスに関連付けられたセキュリティポリシーとセキュリティ機能を格納および参照するサービスを提供するポリシー設定サーバーに関連付けられる。
図4のスイム図に示すプロセスは、コンポジットアプリケーションレイヤで実行される。逆に、サービスプロバイダレイヤでWebサービスの説明と関連のセキュリティポリシーおよびセキュリティ機能が生成され、サービスとそれに関連するメタデータ(たとえばセキュリティポリシーやセキュリティ)がサービスレジストリに登録される。
以下でより詳細に説明するように、サービスは、バックエンドエンタープライズサービス、外部のビジネスツービジネスサービス、またはローカルサービスのいずれでもよい。セキュリティアノテーションには、セキュリティインテンションを表現する変数を含めることができる。ただし、セキュリティパターンはこの変数を使用して呼び出される。セキュリティインテンションでは、外部のWebサービスを使用する場合に外部の実施ポリシーを宣言でき、呼び出されたビジネスプロセスをWebサービスとして公開する場合にポリシーを宣言でき、タスクが人的インタラクションを必要とする場合にタスクベースの認可要件を宣言でき、またはタスクが実行される順序を指定するタスクベースの認可制約を宣言できる。セキュリティインテンションは、タスクの実行を許可されるロールを指定することができる。
さらに、セキュリティインテンションにはタスクが実行される順序を指定してもよい。ビジネスプロセスを呼び出すステップには、タスクを実行するステップをさらに含めてもよい。セキュリティパターンには、サービスプロバイダが識別される前にセキュリティインテンションの実施をトリガするために使用される第1のエントリポイントと、タスクが実行される前にセキュリティインテンションの実施をトリガするために使用される第2のエントリポイントと、タスクが実行された後にセキュリティインテンションの実施をトリガするために使用される第3のエントリポイントとを含めることができる。セキュリティインテンションでは、メッセージの機密性、暗号化のセキュリティインテンション、整合性インテンション、ロールの割り当てインテンション、またはタスクの実行順序インテンションを定義することができる。
セキュリティアノテーションに関連付けられたセキュリティパターンが呼び出される(S304)。図5のスイム図500に示すように、実行時に、セキュリティアノテーションを含むビジネスプロセスエンジン501はビジネスプロセス仕様のインスタンスを作成する。セキュリティアノテーションを実行するためまたは呼び出すために、ビジネスプロセスエンジン501はセキュリティアノテーションを解析するポリシードメイン固有言語エンジン502をコールする。
ポリシードメイン固有言語エンジン502で解析されると、作成された現在のコンポジットプロセスのセキュリティポリシーcomp-app-sgを使用してポリシー設定サーバー505が更新される。ポリシー設定サーバーには、こうして作成されたセキュリティポリシーcomp-app-sgの他に、コンポジットプロセスのセキュリティ機能comp-app-capも格納される。前述のように、機能comp-app-capは設計時にポリシー設定サーバー505にアップロードされている。
セキュリティインテンションを満足する外部のサービスに関連付けられたサービスプロバイダは、呼び出されたセキュリティパターンに基づいて識別される(S305)。図5に示すように、ポリシードメイン固有言語エンジン502は、適合するサービスプロバイダ511を識別するために、サービスブローカー507のトリガ、コール、実行、あるいは呼び出しを行う。ただし、候補となるサービスプロバイダのリストはサービスレジストリ510に登録されている。
サービスブローカー507は、候補となるすべてのサービスプロバイダ511に関するサービスアクセス情報をサービスレジストリ510から取得する。このサービスアクセス情報には、アドレスまたはWebサービスのエンドポイント(たとえば、URLやWebサービスのオペレーション署名)が含まれる。このようなWebサービスのオペレーション署名には、オペレーションの名前と入力または出力パラメータを含めることができる。
マッチング機能を実行するために、サービスブローカー507は登録された候補となるサービスプロバイダ511のそれぞれを呼び出し、そのそれぞれのセキュリティポリシーsp-polとセキュリティ機能sp-capを取得する。サービスブローカー507は、ポリシー設定サーバー505からコンポジットアプリケーションのセキュリティポリシーcomp-app-sgとセキュリティ機能comp-app-capも取得する。
コンポジットアプリケーションとサービスプロバイダのセキュリティポリシーとセキュリティ機能を取得すると、サービスブローカー507は少なくとも2つのテストを実行する。たとえば、サービスブローカーは、サービスプロバイダ511がコンポジットアプリケーションのセキュリティポリシーcomp-app-sgに適合するかそれを満足するセキュリティ機能sp-capを提供するかどうかを判定できる。さらに、サービスブローカー507はコンポジットアプリケーションがサービスプロバイダ511のセキュリティポリシーsp-polに適合するかそれを満足するセキュリティ機能comp-app-capを提供するかどうかを判定する。
両方のテストが成功した場合は、サービスプロバイダ511とコンポジットアプリケーションが相互にセキュアな通信を行う資格を持っているため、サービスプロバイダ511をセキュアコンポジットアプリケーションに使用できる。登録された候補となるサービスプロバイダ511のそれぞれについてこうしたテストを実行した後に、サービスブローカー507は識別された資格のある候補となるサービスプロバイダ511のセットを知識ベースに格納し、プロバイダの選択が完了したことと、サービスプロバイダが適切にフィルタされたことを示すイベントを生成する。
識別されたサービスプロバイダを使用してビジネスプロセスが呼び出され(S306)、これによってプロセス300が終了する(S307)。ビジネスプロセスエンジン501は、セキュリティアノテーションを解析し、サービスプロバイダを識別した後で、ビジネスプロセスに含まれるタスクを実行するかまたは呼び出す。ただし、少なくとも1つのタスクはセキュアサービスプロキシを使用して外部のWebサービスを呼び出す。イベントマネージャ504によって管理される内部と外部のサービスのコールは、ビジネスプロセスエンジン501によってトリガされる。
イベントマネージャ504は、外部のWebサービスコールのそれぞれについて、識別された資格のあるすべてのサービスプロバイダのリストをサービスブローカー507から取得し、コンポジットアプリケーションと識別された各サービスプロバイダ511の間のセキュアな通信を確立するために利用できる任意の情報にアクセスする。こうした情報には、サービスアクセス情報(たとえばエンドポイント情報)、コンポジットアプリケーションのセキュリティポリシーcomp-app-sgとセキュリティ機能comp-app-cap、サービスプロバイダのセキュリティポリシーsp-polとセキュリティ機能sp-cap、識別された資格のあるサービスプロバイダのリスト、およびパターン実装カタログに格納された適切なセキュリティ実装の参照を含めることができる。
ここで、イベントマネージャ504は、呼び出される個々のサービスプロバイダ511のセキュアサービスプロキシ506の実装を生成する。セキュアサービスプロキシ506の実装を内部の攻撃(たとえばコード修正)から保護するために、イベントマネージャ504はセキュアサービスプロキシ506のコードと、セキュアサービスプロキシレジストリ509内のセキュアサービスプロキシ506のコードを暗号化する。セキュアサービスプロキシ506は、サービスプロバイダ511へのセキュアサービスコールを管理し、セキュリティオペレーション(たとえば、暗号化、トークンの検証、またはトークンの取得)を処理するオペレーションを提供するタイプのサービスプロキシである。
セキュアサービスアクセスのそれぞれについて、イベントマネージャ504はセキュアサービスプロキシレジストリ509から暗号化されたセキュアサービスプロキシ506のコードを取得し、コードを復号化した後に、セキュアサービスプロキシ506をインスタンス化する。イベントマネージャ504は、セキュアサービスプロキシ506によって提供されるサービスオペレーションを呼び出し、これにより、セキュリティオペレーション(たとえば、要求にセキュリティトークンを添付することまたは要求を暗号化することによる)を適用し、外部のWebサービスオペレーションをコールする。
識別されたサービスプロバイダ511の各Webサービスは、コールを受信し、関連のセキュリティオペレーション(たとえば、トークンを検証することまたは復号化を実行することによる)を実行し、さらに着信するメッセージ要求を処理する。サービスプロバイダ511は、ここで、セキュアサービスプロキシ506への応答を生成し、この応答に適切なセキュリティオペレーション(たとえば、応答に署名することによる)を適用し、さらにセキュリティを保証された応答をセキュアサービスプロキシ506に送信する。
セキュアサービスプロキシ506は、セキュリティを保証された結果を受信し、応答に関連のセキュリティオペレーション(たとえば、署名を検証することによる)を適用し、さらに処理された応答をイベントマネージャ504に返す。次に、イベントマネージャ504は結果をビジネスプロセスエンジン501に転送し、これはビジネスプロセスに処理された応答を提供する。
以下は、輸送業のコンテクストで、識別されたサービスプロバイダを使用してビジネスプロセスを呼び出す例である。この簡単な例で、ICARRIERと呼ばれるコンポジットアプリケーションでは、自動車メーカーから新車の販売店まで自動車を輸送する資格のある輸送業者を選択するビジネスロジックが使用されている。
1つの例示的なプロセス仕様は、ICARRIERアプリケーション用のドメイン固有言語を使用して定義されており、以下の表1に示されている。
例示的なビジネスプロセス仕様において、タスク:GET_CARRIER_LIST()を実行することにより、セキュリティポリシーとセキュリティ機能の観点で資格のある輸送業者のリストが返される。このビジネスプロセスによって定義されたコンポジットアプリケーションには、輸送業者に対する少なくとも2つのインタラクション、すなわちさまざまな輸送業者の料金を検索するGETRATE(SHIPMENT_DATA)と、輸送を行う輸送業者を予約するBOOKCARRIER(SHIPMENTID)が含まれる。輸送業者はその機能をWebサービスとして提供しており、使用する適切な輸送業者の選択は、ICARRIERと候補となる輸送業者が互いにセキュリティポリシーとセキュリティ機能を満足するかどうかによっても決まる。
3つの候補となる輸送業者のセキュリティポリシーとセキュリティ機能が以下の表2に示されている。
この例では、たとえばICARRIER Webサービスは、LOOKUP_MYPOLICIES()またはLOOKUP_MYCAPABILITIES()サービスオペレーションを使用して、こうしたポリシーと機能を取得するオペレーションを提供する。
自動車メーカーのセキュリティポリシーは、既存のアプリケーションのすべてのB2B接続が機密性を保証する必要があることを示している。このポリシーを満足するために、ICARRIERは機密性を保証するセキュリティ機能を提供する輸送業者のみを選択する必要がある。しかし、同時に、ICARRIERは輸送業者(すなわちサービスプロバイダ)のセキュリティポリシーを満足するセキュリティ機能を提供する必要がある。
ビジネスプロセス仕様を準備する上で、ICARRIERビジネスプロセス開発者は以下に示す'B2Bconfidentiality'セキュリティパターンを取得する。B2Bconfidentialityは、すべてのB2B接続で機密性が保証されることを指定する。
PATTERN: ENFORCE "B2BCONFIDENTIALITY" DURING PROCESS <PROCESS_NAME>
他のセキュリティパターンと同様に、このパターンは特定のプロセスのそれぞれがインスタンス化されるテンプレートとして使用される。ビジネスプロセス開発者は、このパターンをカスタマイズして、ポリシードメイン固有言語を使用して表1に示すICARRIERビジネスプロセス仕様に以下のアノテーションを挿入する。
ENFORCE "B2BCONFIDENTIALITY" DURING PROCESS ICARRIER
アノテーションを挿入したプロセス仕様には、プロセスドメイン固有言語とポリシードメイン固有言語の組み合わせが含まれている。これは以下の表3に示されている。
このビジネスプロセス仕様を使用すると、セキュリティを保証されたICARRIERは資格のある輸送業者としてA-Transのみを選択するであろう。詳細には、A-TransはRSA暗号化および復号化機能(セキュアチャネル通信を実現するように使用される)を提供するため、さらにRSA暗号化および復号化機能はICARRIER自体によってサポートされるため(ICARRIERのセキュリティ機能リストに反映されている)、A-TransはICARRIERの「メッセージの機密性"message-confidentiality"」セキュリティポリシーを満足する。さらに、ICARRIERはRSA暗号化および復号化機能(セキュアチャネル通信を実現するように使用される)を提供するため、さらにRSA暗号化および復号化機能はA-Transによってサポートされるため(A-Transのセキュリティ機能リストに反映されている)、ICARRIERはA-Transの「メッセージの機密性"message-confidentiality"」セキュリティポリシーを満足する。
さらに、ICARRIERはX509証明書セキュリティ機能(メンバーシップロールなどの証明書エンコード属性に基づいてアクセス制御の決定に必要である)を提供するため、さらに同じX509証明書セキュリティ機能または処理機能はA-Transによってもサポートされるため(A-Transのセキュリティ機能リストに反映されている)、iCarrierはA-Transの"service-conf dentiality::certificate-based-access-control"セキュリティポリシーも満足する。こうした適合に基づいて、ICARRIERは要求されたセキュリティ機能が実行時に実装されることを保証するセキュリティプロキシを自動的に作成する。たとえば、サービスコールGETRATEとBOOKCARRIERの実装はセキュリティが保証される。輸送業者B-TransとC-TransはiCarrierのセキュリティポリシーを満足せず、そのため、資格のある輸送業者としては識別されない。
自動者メーカーがその独自のB2B接続セキュリティポリシーを変更する場合に、ビジネスプロセス開発者はiCarrierビジネスプロセス仕様に含まれるセキュリティアノテーションを容易に変更し、新しいセキュリティポリシーを反映するようにコンポジットアプリケーションを再配備することができる。たとえば、B2B接続で接続の機密性を保証する必要がないことを新しいセキュリティポリシーが示している場合は、ビジネスプロセス開発者がプロセスエディタを使用して古いアノテーション"B2Bconfidentiality"を"noB2Bsecurity"で置き換え、セキュリティ機能要件を除去することができる。この変更されたビジネスプロセス仕様は、以下の表4に示されている。
更新されたセキュリティポリシーとセキュリティ機能も、以下の表5に示すように調整される。
この変更されたセキュリティスキームに従うと、資格のある輸送業者として識別される唯一の輸送業者はC-Transである。この点において、このプロセスはドメインに固有のセキュリティアノテーションを使用することによって自動的に制御され、アノテーションで表現される高レベルのセキュリティインテンションを満足するために要求されたセキュリティオペレーションを実行する保護されたセキュリティプロキシを生成する。
次に、このセキュアサービスプロキシの特定の例示的な実装について説明する。セキュアサービスプロキシの1つの主要なタスクは、ビジネスプロセス仕様に含まれるセキュリティアノテーションに関連付けられたセキュリティポリシーを満足するために実行されるセキュリティ関連タスクを処理することである。このように、生成されたセキュアサービスプロキシによって"B2B confidentiality"セキュリティポリシーを実装するために実行されるプロセスについて、以下でより詳細に説明する。
この例では、ICARRIERとA-Transに関連付けられたセキュリティポリシーとセキュリティ機能は、表2に示されているように、「変更されていない」状態のものである。このように、指定されたセキュリティポリシーを満足するために、セキュアサービスプロキシを使用してタスクを実行する。
iCarrierからA-Transへの通信に関連して、属性サーバーからセキュアサービスプロキシはICARRIERの証明書を受信する。ただし、証明書はICARRIERの適格性を証明するために使用するICARRIERの属性をエンコードする(たとえばGOLDDHLPARTNER証明書)。また、セキュアサービスプロキシは、ICARRIERの公開鍵ストアからA-Transの公開鍵を取得し、A-Trans Webサービスハンドルにアクセスする。ICARRIERの秘密鍵ストアからICARRIERの秘密鍵がロードされ、A-Transの出荷要求が暗号化される。暗号化された出荷要求とICARRIERの証明書は、A-Trans Webサービスから提供されるWebサービスオペレーションを呼び出すことによって送信される。
A-Transの観点から見ると、A-Trans Webサービスは送信された証明書を検証し、証明書内でエンコードされたICARRIERの属性に基づいてアクセス制御に関する決定を行う。アクセスが許可されると、A-Transは送信された要求を復号化して処理し、証明書から抽出された公開鍵を使用して結果を暗号化する。暗号化された結果はセキュアサービスプロキシに送信され、ここでICARRIERの秘密鍵を使用して結果を復号化する。このように、A-Transは、結果をICARRIERに送信する前に暗号化することによって、ICARRIERのメッセージの機密性ポリシーを満足する。
この結果は、ICARRIERのセキュアサービスプロキシによって実施され、ここで結果が実際に暗号化されるかどうかを検査し、判定する。出荷要求と対応する結果が暗号化されるため、メッセージの機密性はこのようにして満足される。さらに、ICARRIERの証明書はA-Trans Webサービスから提供されるWebサービスオペレーションを呼び出すことによって送信されるため、service confidentiality::certificate-based-access-controlポリシーが満足される。
図6は、コンポジットアプリケーション開発フレームワーク600によってコールすることができるサービスのカテゴリを示すブロック図である。前述のように、たとえば、第1の企業602のコンポジットアプリケーション601によって呼び出されたタスクは、第2の企業605の外部のWebサービス604をコールすることができる。さらに、コンポジットアプリケーションは、バックエンドエンタープライズアプリケーション(たとえば、エンタープライズリソース計画アプリケーション)からも、コンポジットアプリケーション内にローカルコンポーネントとして構築されるローカルサービス607からも、バックエンドサービス606をコールすることができる。
ローカルサービス607が使用されるのは、多くの場合にビジネスプロセス開発者は1つまたは複数の既存のサービスによって完全にはキャプチャされない何らかのビジネスロジックを実装できるためである。ローカルサービスは、コンポジットアプリケーション開発者によって作成されても、その他のコンポーネントプロバイダからインポートされてもよい。ローカルサービス607は、他のコンポジットアプリケーションからアクセスできるように、Webサービスとして公開することもできる。
強化されたフレームワーク600は、特定の開発タスクを定義することによってコンポジットアプリケーションの開発を支援し、コンポジットアプリケーションのセキュリティを効率的に指定する。また、フレームワーク600は、さまざまな参加者が開発プロセスにおいて関与する他のパーティーとどの情報およびセキュリティ製品を交換するかに関する設計時プロトコルも定義する。開発タスク間の依存関係を定義するのは、設計プロセスを体系化する上で助けになる。
図7と8は、強化されたフレームワーク600を使用してコンポジットアプリケーションの開発のさまざまなフェーズを示している。たとえば、図7で、セキュリティをモデル化するプロセス全体には、セキュリティオブジェクティブが識別される定義フェーズ701と、識別されたセキュリティオブジェクティブを達成するためのメカニズムが提供される実現フェーズ702と、添付されたアノテーションを使用してコンポジットアプリケーションのセキュリティオブジェクティブまたはサービスが選択される宣言フェーズ704が含まれる。
定義フェーズ701で、セキュリティチームはセキュリティリスク分析705を実行することによって、ビジネスシナリオと関連のビジネスプロセスにおける脅威を分析し、それに伴うリスクを識別する。このような体系化された分析は、サービス指向のビジネスアプリケーションにおいてサービスインタラクションメカニズムを識別することによって、また、個々のサービスインタラクションメカニズムの脅威分析を実行することによって実行できる。
リスクを軽減するために、製品のセキュリティチームはセキュリティパターン定義706を準備し、セキュリティパターン内でキャストできるセキュリティソリューションを提示する。セキュリティパターンの定義によって、ソリューションは異なるコンポジットアプリケーション間で再利用可能になる。そうする上で、セキュリティを必要とする他のアプリケーションに及ぶセキュリティメカニズムの統一された使い方を準備できる。
また、定義フェーズ701で、製品のセキュリティチームはセキュリティインテンション定義707を準備し、セキュリティパターンの組み合わせを使用して実現できる高レベルのセキュリティインテンションのセットを定義する。セキュリティインテンション定義707は、アプリケーション開発ライフサイクルに関与する他のチームにまたがるセキュリティオブジェクティブの統一された定義を可能にするために役立つインテンションオントロジーを提供する。
実現フェーズ702で、セキュリティ開発者はセキュリティパターンの実装709を提供し、ドメインに依存しないパターンを特定のコンテクストに結合する。ドメインに依存しないパターンを再利用する場合は、セキュリティ開発チームは企業に固有のルールに従ってさまざまな実装を適応させる。セキュリティパターンプロビジョニング710を提供する上で、実装されたパターンはパターンリポジトリを介して使用できるようになる。
宣言フェーズ704で、コンポジットアプリケーション開発者はアプリケーションレベルのインテンション宣言711を準備し、コンポジットアプリケーションが従うべきセキュリティインテンションを宣言する。アプリケーションレベルのインテンション宣言711は、コンポジットアプリケーションのセキュリティインテンションをキャプチャするために使用され、コンポジットアプリケーションがコンポジットアプリケーションの構成要素(たとえば、ローカルコンポーネント、プロセスタスク、外部のWebサービス)とのインタラクションのセキュリティを保証するために適用するインテンションを定義する。
サービスレベルのインテンション宣言712を実行することによって、コンポジット開発チームはコンポジットアプリケーションまたはローカルコンポーネントをサービスとして公開できる。このようにして、コンポジットアプリケーションとローカルコンポーネントに公開の前にセキュリティインテンションを追加することによってQoP要件を定義できる。
図8で、コンポジットアプリケーションの安全な実行を保証するために使用されるプロセス全体には、起動フェーズ801と実施フェーズ802が含まれる。起動フェーズ801で使用するプロトコルは、実施フェーズ802で使用するプロトコルの基盤を保証する。
起動フェーズ801で、セキュリティ設定804はコンポジットアプリケーションを実行する前に行われる。たとえば、割り当てられたアプリケーションレベルのセキュリティインテンションがロードされ、実行時に実施されるように内部的に設定される。バックエンドサービスとのインタラクションで、サービスがバックエンドで実行される前に十分な認可が行われるように、対応するセキュリティ設定がセットアップされる。ポリシー更新プロトコルは、このように認可ポリシーを生成し、欠落するポリシーをバックエンドポリシーデータベースに挿入するために使用される。外部のサービスとのインタラクションでは、認証属性と認可属性を交換することによって信頼を確立できる。
外部のポリシーネゴシエーション805は、コンポジットアプリケーションで外部のサービス(たとえば、さまざまなセキュリティドメインに関連付けられたサービス)を使用する場合に行われる。コンポジットアプリケーション(たとえばサービスコンシューマとして)と外部のサービス(たとえばサービスプロバイダとして)は、それぞれのセキュリティポリシーとセキュリティ機能を、たとえばトークンのタイプ、暗号化のアルゴリズムや使用されるメカニズムに関して定義できる。インタラクションを実行する前に、コンポジットアプリケーションと外部のサービスの両方は共通のポリシーを指定する一致(agreement)に到達する。こうして到達した一致は、さまざまなソースのポリシーのマージをサポートするポリシーネゴシエーションプロセスによって達成される。
実施フェーズ802で、外部ポリシーの実施806は両パーティー間のインタラクションのそれぞれについて、共通のポリシーの実施に対処する。外部ポリシーの実施806は、交換されたメッセージが、たとえばメッセージにセキュリティトークンを追加することによって変更されるように要求することができる。ローカルセキュリティの実施807では、強化されたフレームワークはローカルサービスやローカルオブジェクトへのアクセスを規制するアクセス制御メカニズムを提供する。そうする上で、アプリケーションセキュリティポリシーの効率的な指定をサポートするとともに、こうしたポリシーの実施と管理に使用される実行時コンポーネントもサポートするドメイン固有言語のファミリが提供される。
前述のように、ビジネスプロセス仕様にインテンションを添付することによって、セキュリティポリシーが指定される。ビジネススクリプト言語は、コンポジットアプリケーションの機能要素を効率的に定義し、複数のタスクを含むプロセスを定義するように設計されている(さらに、タスクには複数のアクティビティを含めることができる)。タスクは、ローカルサービスを使用し、ローカルデータを変数として格納し、さらに外部のWebサービスまたはバックエンドシステムを呼び出すことができる。
少し先に進めると、図16は自動的なセキュアアプリケーションコンポジションを実装する別のプロセス1600を示している。手短に言えば、プロセス1600が開始されると(S1601)、ビジネスプロセスにセキュリティフレームワークが適用され、このセキュリティフレームワークはコンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、セキュリティパターンに基づくコンポジットアプリケーション内のセキュリティアノテーションを使用して識別されたセキュリティオブジェクティブを実装する宣言フェーズを備えている(S1602)。外部のポリシーネゴシエーションが実行され、セキュリティフレームワークの適用に基づいてコンポジットアプリケーションと外部のサービスとの共通のポリシーを指定する(S1604)。コンポジットアプリケーションと外部のサービスとのインタラクションのそれぞれについて、共通のポリシーが実施される(S1605)。外部のサービスからローカルサービスとローカルオブジェクトへのアクセスは、セキュリティオブジェクティブに基づいて規制され(S1606)、それによってプロセス1600は終了する(S1607)。
以下に示す表6は、候補となる輸送業者から資格のある輸送業者(自動車輸送業者など)を選択して予約する合理化されたプロセスを示すビジネスプロセス仕様の別の例を提供している。参照しやすいように、ビジネスプロセス仕様の各行には番号が付けられている。
選択プロセスは、発行された出荷要求の輸送業者の送料に基づいて実行され、逐次的に実行される4つのタスク(18〜20行目)を含んでいる。GET_CARRIERSタスクは、出荷要求の詳細に基づいて輸送業者の適格性をチェックした後に、輸送業者レジストリから輸送業者を選択する。GET_RATEタスクは、輸送業者ごとに見積もり要求(RFQ:request for quote)を生成し、その結果、各輸送業者はRFQを評価して提案書で応答する。HUMAN TASKタスクは、ユーザー(人間)が輸送業者を手動で選択する機能を実装する。さらに、BOOK_CARRIERタスクは選択された輸送業者の予約を実行する。
セキュリティオブジェクティブは、ビジネスプロセス仕様内でセキュリティインテンションの形で表現される。たとえば、図9はビジネスプロセスにおいてセキュリティを指定するために使用するモデル900を示す図である。定義フェーズは特定のセキュリティインテンション(たとえばセキュリティインテンション902)のインテンションオントロジー901を定義し、実現フェーズはパターン(たとえばパターン905)のパターンリポジトリ904を実現する。パターン905はセキュリティインテンション902を実装するため、セキュリティインテンション902はパターン905に関連付けられる。
セキュリティインテンションは、ビジネスプロセス仕様にセキュリティアノテーションを挿入することによって実装される。たとえば、プロセス906はビジネスプロセス仕様に添付されたセキュリティアノテーション907を使用することによって実施されるセキュリティインテンションのコンポジットセットを宣言できる。セキュリティアノテーションの3つの例には、サービスインタラクションセキュリティアノテーション909(たとえば、実施セキュリティアノテーション910または公開セキュリティアノテーション911)、割り当てセキュリティアノテーション912、または制約セキュリティアノテーション914が含まれる。
サービスインタラクションアノテーション909は、Webサービスを使用する場合、たとえばメッセージを送信するときにメッセージを暗号化する必要がある場合に、外部の実施セキュリティポリシーを宣言するために使用される。実施アノテーション910(enforce <サービス使用インテンション表現(service usage intention expression)>)ステートメントは、コンポジットアプリケーションで使用するWebサービスとのインタラクションのポリシーを宣言する。たとえば、表6の5行目で、B2BConfidentiality and B2Blntegrityが実施され、SOAP(Simple Object Access Protocol)メッセージは強制的に暗号化され、署名される。したがって、タスク915(WebサービスをコールするタスクGET_RATEまたはBOOK_CARRIERでもよい)を実行する場合は、SOAPメッセージが送信される前に暗号化され、署名される。
公開セキュリティアノテーション911(expose <サービス使用インテンション表現>)ステートメントは、コンポジットアプリケーションまたはローカルコンポーネントをWebサービスとして公開する場合に使用するセキュリティポリシーを宣言する。たとえば、表6の6行目では、コンポジットアプリケーションがWebサービスとして公開され、公開されたサービスを呼び出す任意のサービスコンシューマとの暗号化通信を要求する。
割り当てセキュリティアノテーション912(assign <ロール割り当てインテンション表現(role assignment intention expression)>)ステートメントは、所与のタスクの実行を許可されるロールを指定する。たとえば、ビジネスプロセス開発者は、表6の7行目で、タスクSELECT_CARRIERが"manager(管理者)"のロールを持つユーザーによって実行されるべきであるインテンションを宣言している。
制約セキュリティアノテーション914(constraint <実行順序インテンション表現(execution order intention expression)>)は、タスクが実行される順序または順番を指定する。たとえば、表6の8行目によると、タスクBOOK_CARRIERはタスクSELECT_CARRIERが完了した後、つまり管理者が輸送業者を選択した後に実行されるべきである。その他の制約のタイプ、たとえば、職務の分離、職務の結合、ロールの年功などを追加したり置き換えたりすることができる。
本明細書で説明する強化されたフレームワークは、セキュリティインテンション(またはセキュリティオブジェクティブ)は定義されたパターンに関連付けられており、こうしたパターンによって実装されるため、セキュリティポリシーを実装するためのパターン指向のアプローチを採用する。このことにより、セキュリティインテンションは、そのセキュリティインテンションを説明するセキュリティアノテーションに関連付けられたパターンによって実装することができる。コンポジットアプリケーションを実行する場合に、コンテナは特定のセキュリティインテンションに対応するパターンを検出し、このパターンの実装に従ってアプリケーションのセキュリティを保証する。以下の表7は、セキュリティパターンの抜粋を示している。
一般に、セキュリティパターンはインテンションを実施するための技術的な詳細(たとえば、特定のセキュリティの問題をどう実施すべきか)を提供するために使用される。こうしたパターンは、コンテナプロバイダで記述された汎用のセキュリティコンポーネントとして、または他の特定のパーティーによってパターンライブラリまたはアプリケーションインフラストラクチャと送達できるパターンリポジトリの一部によって提供できる。アプリケーションに固有のセキュリティインテンションがまだ定義されていない場合は、あらかじめ構成されたパターン実装を拡張または抽出することができる。セキュリティパターン用ドメイン固有言語を使用することによって、パターン実装はモジュールで構成され、効果的である。パターン内の実施コードは、スクリプト言語で記述することもできる。
表6に示す抜粋されたパターンにおいて、このパターンは複数のエントリポイントを備えるモジュールと見なすことができ、こうしたエントリポイントからパターンを呼び出すことによってセキュリティを実施できる。さまざまなタイプのエントリポイントを使用して、パターンによって実装された実施の特定の部分をトリガすることができる。たとえば、BEFORESERVICESELECTIONは、サービスレジストリが要求される前に指定されたコードが実行されるエントリポイントである。
図10は、コンポジットアプリケーションを開発するための設計および実行環境を提供するセキュリティモニタ1001を示すブロック図である。セキュリティポリシーの実施は、セキュリティモニタ1001を使用して実行され、セキュリティモニタはコンポジットアプリケーションコンテナ1000に統合されている。コンテナは、統合された設計時1003を提供し、ビジネススクリプト言語でのコンポジットアプリケーションを開発する。
ビジネスプロセス仕様(または「スクリプト」または「説明」)が保存され、スクリプトパーサー1002で解析されることによって、ビジネスプロセス仕様は実行エンジン1004が実行可能な形式で配置される。実行中に、基盤となるビジネスプロセスはコンテナサービス1005(サービスレジストリ1006、メッセージングサービス1007、またはその他のサービス1009を含めることができる)を使用する。人的タスクを実行する場合に、制御はタスクリストユーザーインターフェイス(UI:user interface)1010に渡され、UIを使用して手動のタスクを完了できる。
スクリプトパーサー1002は、ビジネスプロセス仕様におけるセキュリティインテンションの宣言をサポートするように拡張されている。コンテナ1000のコンポーネントによって、セキュリティモニタ1001は、ビジネスプロセスの実行を監視でき、適切な場合は干渉またはインタラクションを行うことができる。
セキュリティモニタ1001は、他のコンテナコンポーネント(たとえば、スクリプトパーサー1002またはメッセージングサービス1007)の状態および/または挙動を調査し、変更することができる。挙動は、そのコンポーネントによって生成されたイベントにアクセスすることによって監視される。状態は、イベントのコンテクストによって監視される。このようにして、セキュリティモニタ1001は、ビジネスプロセス仕様とセキュリティアノテーションにアクセスし、どのタイプのセキュリティを実施すべきかを判定することができる。同様に、セキュリティモニタ1001はパターンリポジトリにアクセスし、セキュリティアノテーション内で表現されたインテンションをどのように実施すべきかを判定する。
セキュリティモニタ1001は、実行エンジン1004内に導入されたフックを使用してビジネスプロセスの実行を監視する。このように、セキュリティモニタ1001は、総合的な調停の概念に従っており、ビジネスプロセスの実行におけるセキュリティに関連するすべてのイベントはセキュリティモニタ1001によって傍受される。モニタは、実際にイベントが発生する前に、選択されたパターンを呼び出し、実際の状態をチェックして更新し、傍受されたイベントの結果を変更することによってセキュリティを実施することができる。これを効果的に実現するために、実行エンジン1004はイベントを生成するアクティビティを認識している。さらに、セキュリティモニタ1001は、この特定のビジネスプロセスに使用するセキュリティインテンションのセットにアクセスする必要がある。
実行されたビジネスプロセスの各タスクは、1つまたは複数の特定のタイプのセキュリティ関連イベントを生成する。タスクを実行する間に、実行エンジン1007は実行時イベントを生成する。このイベントのタイプは、現在タスクで何が行われているかに対応する。生成されたイベントが有効になる前に、イベントは遅延されてセキュリティモニタ1001に配信され、セキュリティモニタは実行時プロトコルを実行でき(図8を参照)、さらに、イベントのタイプに対応するエントリポイントで選択されたパターンを呼び出すこともできる。
イベントのタイプには、プロセスモデル変更イベント、サービス選択イベント、サービスコール前イベント、サービスコール後イベント、人的タスク実行イベント、または別のイベントを含めることができる。プロセスモデル変更イベントは、ビジネスプロセス仕様またはそのセキュリティインテンションが変更され、保存された場合に、統合された設計時に生成される。統合された設計時がないシステムでは、開発時にアナログイベントを生成できる。コンテナ1000は、セキュリティ設定プロトコルを実行する。このイベントの場合は、呼び出される関連のパターンエントリポイントタイプは存在しない。
サービス選択イベントは、タスクがサービスレジストリ1006を使用して特定のカテゴリのサービスを選択する場合に生成される。このイベントによって、選択されたセキュリティポリシーに基づき、サービスプロバイダのフィルタが実行される。たとえば、コンテナ1000はBEFORESERVICESELECTIONエントリポイントをトリガし、コンポジットアプリケーションのコンポジットポリシーを生成し、さらにこのポリシーを使用してサービスを選択する。また、コンテナ1000は、選択されたカテゴリで使用可能なサービスプロバイダのリストを取得し、リスト内のサービスプロバイダごとにポリシーネゴシエーションプロトコルを使用する。特定のサービスプロバイダでポリシーの一致が見つからない場合に、このサービスプロバイダは使用可能なサービスプロバイダのリストから削除される。識別された資格のあるサービスプロバイダのフィルタされたリストがビジネスプロセスに返される。
サービスプロバイダへのコールが発生すると、イベントが生成され、送信されるメッセージを含むコンテクストがセットアップされる。コンテナはパターン内のBEFORESERVICECALLエントリポイントをトリガし、メッセージがコンテナ1000によって送信される前に、メッセージの内容を変更できる。同様に、サービスプロバイダがメッセージを返すと、イベントが生成され、受信したメッセージを含むコンテクストがセットアップされる。コンテナはパターン内のAFTERSERVICECALLエントリポイントをトリガし、メッセージに含まれるデータがビジネスプロセス内でさらに使用される前に、メッセージを変換する。
人的タスクが実行される前に、人的タスク実行イベントが生成される。セキュリティモニタ1001は、ユーザーがタスクを実行するための十分な許可を持っているかどうかを判定する。実施はイベントがトリガされたときに開始されるため、実施はセキュリティモニタでどんな種類のイベントがキャプチャされるかによって限定できる。このように、セキュリティモニタ1001は、新しいタイプのイベントに対応するように容易にカスタマイズしたり拡張したりすることができる。
図11は、セキュリティサービス間の例示的な関係を示すブロック図である。コンポジットアプリケーション環境では、各サービスはコンシューマサービスおよびプロバイダサービスとして動作できる。各サービスは、さまざまなセキュリティ要件に対処できるように、一連のセキュリティサービス1101を使用しており、そのそれぞれは適切に定義されたセキュリティ機能を提供する。
図11で、バックエンドポリシージェネレータ1102はバックエンドポリシー実施で使用する認可ポリシーを生成するために使用される。バックエンドポリシーアップデータ1104は、特定のポリシーがバックエンドポリシーデータベース内に存在するかどうかをチェックするために使用され、該当する場合はポリシーを挿入するために使用される。ポリシージェネレータ1105は、サービスインタラクションセキュリティアノテーションからWS-Security Policyポリシー1106を生成するために使用される。ポリシーマッチャ1107は、2つのWS-Securityポリシー間の互換性のあるアサーションをマッチングすることによって一致したポリシー1109を導出し、ポリシーレジストリ1110は、外部のサービスインタラクションのポリシーを格納し、取得するために使用される。
トークンエンジン1111は、SOAPメッセージにトークンを埋め込むために使用され、さらにトークン署名検証機能を提供するために使用される。セキュリティトークンサービス1112は、SAMLトークン1114を生成するために使用される。暗号化エンジン1115は、暗号化と復号化、およびSOAPメッセージの署名と検証の機能を提供し、ポリシー決定点1116は、XACMLにエンコードされたアクセス制御ポリシー1117を実施するために使用される。
プロセスモデル変更イベントが発生すると、ビジネスプロセス仕様の認可要件に基づいてバックエンドセキュリティポリシーとローカルポリシーが更新される。詳細には、ビジネスプロセス仕様から認可セキュリティインテンションが抽出されてバックエンドポリシージェネレータ1102に渡され、ここで対応するXACMLポリシー1117が生成される。バックエンドシステムは、その認可設定を管理するための個別の「認可ポリシーアップデータ"authorization policy updater"」Webサービスインターフェイスを提供する。
バックエンドポリシージェネレータ1102は、バックエンドシステムによって個別の認可ポリシーアップデータWebサービスとして提供されるバックエンドポリシーアップデータ1107に生成されたXACMLポリシー1117を渡す。バックエンドポリシーアップデータ1104は、ポリシー1117をXACML要求に埋め込み、次にこの要求がバックエンドポリシー決定点1116に送信される。ポリシー決定点1116は、受信したポリシー1117が存在するかどうかによって、XACML PERMIT応答またはDENY応答のいずれかを返す。ポリシーが存在しない場合は、バックエンドポリシーアップデータ1104によってポリシーデータベースにポリシーが挿入される。1つの実装例では、バックエンドポリシーアップデータ1104はJAVA(登録商標)プログラミング言語を使用して実装されており、ポリシー決定点1116はSUN(登録商標) XACMLマークアップ言語を使用して実装される。
ローカルポリシー更新プロセスは、ポリシーがローカルポリシーデータベース内で更新されることを除いて、バックエンドセキュリティポリシー更新プロセスと同様である。このようなローカルポリシーは、ユーザーインターフェイスレベルで認可を実施するために使用できる。
セキュリティイベント処理を行うセキュリティモニタの部分は、コンテナのさまざまなコンポーネントに含まれる。たとえば、設計時はプロセスモデル変更イベントを認識して処理し、バックエンドセキュリティ設定1119をトリガする。サービスレジストリは、サービス選択イベントを処理し、ポリシーネゴシエーション1120をトリガする。メッセージングサービスは、SOAPメッセージを送信するときにサービスコール前イベントを処理し、結果を受信するときにサービスコール後イベントを処理する。サービスコールイベントは、外部のポリシー実施1121をトリガすることによって処理される。ローカルサービスとローカルデータにアクセスする場合、およびユーザーインターフェイスが人的タスク実行イベントを処理する場合は、ローカルサービス実施1122がトリガされる。
図12は、表6に示す例示的なビジネスプロセスの実行時の実施を示している。このプロセスには、サービスインタラクションセキュリティアノテーション"enforce B2BConfidentiality and B2Blntegrity"と、割り当てセキュリティアノテーション"assign roles [manager] to select carrier"が含まれる。前者のセキュリティアノテーションは、B2B Webサービスインタラクションは交換されるSOAPメッセージに対して暗号化とデジタル署名によってセキュリティを保証する必要があることを示している。後者のアノテーションは、"manager(管理者)"のロールで動作しているユーザーのみが輸送業者の選択を許可されることを示している。
このようなセキュリティアノテーションを実施するために、実行エンジン1201はビジネスプロセスの各タスクを実行する間にイベントをトリガする。トリガされたイベントは、セキュリティモニタ1202に報告され、ここで適切なセキュリティ実施アクティビティに対処する。
セキュリティ実施の観点から、GET_CARRIERSタスク1204の実行には輸送業者の選択が含まれており、これに関して出荷プロセスと輸送業者のサービスとの相互の一致がある。これは、出荷ビジネスプロセスのセキュリティインテンション"B2Bconfidentiality"と"B2Bintegrity"は選択された各輸送業者のセキュリティ機能を満足する必要があることを意味する。
ポリシーネゴシエーション1205は、WS-Policy仕様に従ってポリシーマッチャで実行できる。具体的に、セキュリティアノテーションで説明されている高レベルのセキュリティインテンションを反映するWS-Policyポリシーが生成される。実行時に呼び出されたサービスのセキュリティポリシーの変更に対応するために、適切な場合は輸送業者のポリシーがポリシーレジストリ1206内で更新される。
次に、生成されたポリシーと選択された輸送業者(すなわちサービスプロバイダ)の他のWS-Policyポリシーとの共通集合が得られる。ポリシーの共通集合は、WS-Policyにおけるネゴシエーションプロセスの中心的な機能である。共通集合は、出荷ビジネスプロセスとサービスプロバイダの両方のセキュリティポリシーに含まれる互換性のある代替的ポリシーを識別する。共通集合は、可換の結合関数であり、複数のセキュリティポリシーを比較し、WS-SecurityPolicyで要求されるように、すべての有効な代替に関してクリアする必要のあり得るポリシーを返す。
資格のあるセキュリティポリシーは、一致したポリシーと呼ばれており、すべての有効で資格のある代替ポリシーから選択される。ポリシーマッチャは、サービスレジストリから使用可能なサービスを要求し、ここで非空の一致したポリシーが生成されたサービスを選択する。
WS-SecurityPolicy仕様に関しては、非空ポリシーには機密性のアサーションと整合性のアサーションが含まれる。さらに、一致したポリシーには輸送業者サービスの認可要件を指定するSAMLトークンアサーションが含まれる。1つの実装例では、ポリシーマッチャはJAVA(登録商標)プログラミング言語を使用し、Apache WS-Commonsポリシーを使用して実装できる。
GET_RATEタスク1207の実行では、それぞれ対応する一致ポリシーに基づいて規制できるWebサービス呼び出しを使用する。外部のWebサービス1209に要求を送信する前に、セキュリティモニタはサービスインタラクションセキュリティアノテーションに含まれるセキュリティインテンションのそれぞれに対応するパターンを取得する。セキュリティモニタは、ここで、BEFORESERVICECALLエントリポイントを呼び出すことによって、セキュリティアノテーションで指定された順序でパターンを実行する。
パターンコードは、実際のSOAPメッセージ(SOAPメッセージング1210を介して通信する)をメッセージの暗号化と署名によってセキュアメッセージに変換し、セキュリティインテンションで表されるセキュリティオブジェクティブを実現する。一致したセキュリティポリシーに従って、パターンコードは一致ポリシーによって要求されるように要求にSAMLトークンも追加する。さらに、セキュリティモニタはWS-SecurityにエンコードされたSOAPメッセージの形で要求を輸送業者サービスプロバイダに送信する。
輸送業者サービスプロバイダは、サービス要求を受信すると、SOAPメッセージの暗号化オペレーションを実行し、SAMLトークンを検証する。輸送業者サービスプロバイダのポリシー決定点は、ここでトークンの情報に基づいてサービス要求を評価する。サービス要求が肯定的に評価される場合は、料金が計算され、SOAPメッセージに料金が記載される。このSOAPメッセージは、暗号化され、署名されてから、出荷要求者に返送される。呼び出されたサービスプロバイダの応答を受信した後に、セキュリティモニタはAFTERSERVICECALLエントリポイントのパターン実施コードを実行する。この呼び出しによって署名が検証され、コンテンツが復号化される。
セキュリティ実施の観点から、SELECT_CARRIERタスク1214の実行によって、指定したロール割り当てインテンションに基づいて承認が行われる結果となる。また、SELECT_CARRIERタスク1214の実行には、ユーザーインターフェイスにおける輸送業者アクティビティの選択と、バックエンド1212における選択結果アクティビティの継続も含まれる。このようにして、2つのアクティビティの実行によって2フェーズのアクセス制御プロトコルを呼び出す。
ユーザーインターフェイス内でのセキュリティの実施により、"manager"のロールで活動するユーザーによってのみ、輸送業者選択タスクが出力され、完了する。選択結果を格納するには、バックエンドシステム内で特別な許可が必要になり得る。前述のように、許可がすでに更新されていると仮定すると、バックエンドポリシー実施によってSAMLアサーショントークンがSOAPメッセージに追加され、次にこのメッセージがバックエンドシステム1215に送信される。SAMLトークンは、ユーザーのロール"manager"をエンコードする。バックエンドシステム1215のトークンマネージャは、SOAPメッセージとトークンを含むサービス要求を受信すると、トークンを検証し、ロールの情報を抽出する。
最終的に、BOOK_CARRIERタスク1215は、GET_RATEタスクで実行したのと同様にポリシー実施を行うことによって、前に選択した輸送業者サービスをコールする。
図13は、別の例示的なビジネスプロセスの実行時の実施を示している。このプロセスには、サービスインタラクションセキュリティアノテーション"enforce confidentiality and integrity"と、割り当てセキュリティアノテーション"assign roles [manager] to select carrier"が含まれる。製品セキュリティチーム1301は、少なくとも1つの機密性パターン1302と少なくとも1つの整合性パターン1304をパターンリポジトリ1305に追加する。その他のパターンを(たとえばベンダーまたはコンテナプロバイダのパターンライブラリ1306から)パターンリポジトリ1305に追加することもできる。
設計時に、ビジネスプロセス開発者1307は、サービスインタラクションセキュリティアノテーション"enforce confidentiality and integrity"1309と割り当てセキュリティアノテーション"assign roles [manager] to select_carrier"1310をビジネスプロセス仕様に追加する。
GETCARRIERSタスク1311は、ビジネスプロセス仕様が実行されるときに呼び出され、これによってポリシーマッチャ1312はコンポジットアプリケーションポリシー1314とパートナーサービスポリシー1315を取得する。コンポジットアプリケーションポリシー1314はコンポジットポリシー生成1316に基づいて取得され、パートナーサービスポリシー1315はWebサービスプロバイダ1317の呼び出しに基づいて取得される。ポリシーマッチャ1312は、共通集合関数を使用して一致ポリシー1319を出力し、GETRATEタスク1320の実行中にSOAPメッセージング1322を使用した輸送業者のWebサービス1317とのメッセージング実施1321のため、およびSELECTCARRIERタスク1324の実行中にバックエンド1326による認可実施1325のために使用される。
図14は、別の一般的な実装に従ってコンポジットアプリケーションを実装する例示的なシステム1400の外観を示している。手短に言えば、システム1400には、コンポジットアプリケーションを呼び出すデバイス1401とWebサービスを提供するWebサービスプロバイダ1402が含まれる。以下でより詳細に説明するように、デバイス1401には特に記憶媒体とプロセッサが含まれる。記憶媒体には、ビジネスプロセスの仕様が格納されており、こうした仕様には、セキュリティインテンションを定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部を定義し、外部のサービスをコールするタスクが含まれる。プロセッサは、セキュリティアノテーションに関連付けられたセキュリティパターンを呼び出し、呼び出されたセキュリティパターンに基づいてセキュリティインテンションを満足する外部のサービスに関連付けられたサービスプロバイダを識別し、識別されたサービスプロバイダを使用してビジネスプロセスを呼び出すように設定されている。
代替として、デバイス1401はビジネスプロセスにセキュリティフレームワークを適用するように構成されており、このセキュリティフレームワークにはコンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、セキュリティパターンに基づくコンポジットアプリケーション内のセキュリティアノテーションを使用して識別されたセキュリティオブジェクティブを実装する宣言フェーズが含まれる。エンタープライズは、外部のポリシーネゴシエーションを実行し、セキュリティフレームワークの適用に基づいてコンポジットアプリケーションと外部のサービスの間で共通のポリシーを指定し、コンポジットアプリケーションと外部のサービスとのインタラクションのそれぞれについてこの共通のポリシーを実施し、さらにセキュリティオブジェクティブに基づいて外部のサービスからローカルサービスおよびローカルオブジェクトへのアクセスを規制するようにさらに設定されている。
より詳細には、デバイス1401のハードウェア環境には、ユーザーにテキストやイメージを表示するためのディスプレイモニタ1408、デバイス1401にテキストデータやユーザーコマンドを入力するためのキーボード1409、ディスプレイモニタ1408上に表示されるオブジェクトのポインティング、選択、調整を行うためのマウス1410、固定ディスクドライブ1411、取り外し可能なディスクドライブ1412、テープドライブ1414、ハードコピー出力デバイス1415、コンピュータネットワーク接続1416、およびビデオおよびオーディオ検出器(video and audio detector)1417が含まれる。
ディスプレイモニタ1408には、デバイス1401で使用するソフトウェアアプリケーションおよびデバイス1401を操作するために必要なオペレーティングシステムプログラムの表示を含むグラフィックス、イメージ、およびテキストが表示される。ユーザーはキーボード1409を使用してコマンドやデータを入力し、コンピュータのオペレーティングシステムプログラム、Webブラウザ、および/またはコンポジットアプリケーションを操作し、制御する。ユーザーは、デバイス1401およびデバイス1401上で動作するアプリケーションとのインタラクションおよびそれらの制御の一環として、マウス1410を使用してディスプレイモニタ1408上に表示されるグラフィックスやテキストのオブジェクトを選択および調整する。マウス1410は、任意のタイプのポインティングデバイスであり、ジョイスティック、トラックボール、タッチパッド、またはその他のポインティングデバイスのいずれでもよい。
ビデオおよびオーディオ検出器1417は、デバイス1401がデジタルイメージおよび/またはオーディオをキャプチャできるようにし、スキャナ、デジタルカメラ、デジタルビデオカメラ、マイクロフォン、またはその他のデジタル入力デバイスのいずれでもよい。コンポジットアプリケーションプラットフォームを提供するために使用されるソフトウェアは、コンピュータ可読の記憶媒体(たとえば固定ディスクドライブ1411)にローカルに格納される。
さらなる実装において、固定のディスクドライブ1411は、それ自体が多くの物理ドライブユニットを含んでいてもよい(たとえば、"RAID")。あるいは、物理的に別のコンピューティングユニット内に配置されたディスクドライブファームまたはディスクアレイでもよい。こうしたコンピュータ可読の記憶媒体により、デバイス1401は取り外し可能および不可能の記憶媒体に格納されたコンピュータで実行可能なプロセスステップ、アプリケーションプログラムなどにアクセスできる。
無線または有線のコンピュータネットワーク接続1416は、モデム接続、Ethernet(登録商標)を含むローカルエリアネットワーク("LAN")接続、またはデジタル加入者回線("DSL")などのブロードバンドワイドエリアネットワーク("WAN") 接続、ケーブルによる高速インターネット接続、ダイヤルアップ接続、T-1回線、T-3回線、光ファイバ接続、または衛星回線のいずれでもよい。ネットワーク1406は、LANネットワーク、企業または政府のWANネットワーク、インターネット、またはその他のネットワークの1つまたは複数でもよい。
コンピュータネットワーク接続1416は、有線または無線のコネクタを使用する。無線コネクタの例には、たとえば、INFRARED DATA ASSOCIATION(登録商標)("IrDA(登録商標)")無線コネクタ、光無線コネクタ、INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS(登録商標)("IEEE(登録商標)")標準802.11無線コネクタ、BLUETOOTH(登録商標)無線コネクタ、近距離通信("NFC":near field communication)コネクタ、直交周波数分割多重("OFDM":orthogonal frequency division multiplexing)超広域帯("UWB":ultra wide band)無線コネクタ、時間変調超広域帯("TM-UWB":time-modulated ultra wide band)無線コネクタ、またはその他の無線コネクタが含まれる。有線コネクタの例には、たとえば、IEEE(登録商標)-1394 FIREWIRE(登録商標)コネクタ、ユニバーサルシリアルバス("USB":Universal Serial Bus)コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、またはその他の有線コネクタが含まれる。
取り外し可能なディスクドライブ1412は、デバイス1401からデータをダウンロードしたり、デバイス1401にデータをアップロードしたりするために使用される取り外し可能なストレージデバイスである。取り外し可能なディスクドライブ1412は、フロッピー(登録商標)ディスクドライブ、IOMEGA(登録商標) ZIP(登録商標)ドライブ、"CD-ROM"(compact disk-read only memory)ドライブ、"CD-R"(CD-Recordable)ドライブ、"CD-RW"(CD-Rewritable)ドライブ、フラッシュメモリ、USBフラッシュドライブ、外付けのハードディスクドライブ、サムドライブ(thumb drive)、ペンドライブ、キードライブ、"HD-DVD"(High-Density Digital Versatile Disc)光ディスクドライブ、Blu-Ray光ディスクドライブ、ホログラフィックデジタルデータストレージ"HDDS"(Holographic Digital Data Storage)光ディスクドライブ、あるいは、"DVD-R"または"DVD+R"(DVD-Recordable)、"DVD-RW"または"DVD+RW"(DVD-Rewritable)、またはDVD-RAMなどの書き込み可能または書き換え可能なさまざまなデジタル多用途ディスク("DVD":digital versatile disc)ドライブのいずれでもよい。ディスクに格納されるオペレーティングシステムプログラム、アプリケーション、およびさまざまなデータファイルは、固定ディスクドライブ1411、または取り外し可能なディスクドライブ1412の取り外し可能な媒体に格納される。
テープドライブ1414は、デバイス1401からデータをダウンロードしたり、デバイス1401にデータをアップロードしたりするために使用されるテープストレージデバイスである。テープドライブ1414は、1/4インチカートリッジ("QIC")、4mmデジタルオーディオテープ("DAT")、8mm "DLT"(digital linear tape)ドライブ、または他のタイプのテープのいずれでもよい。
ハードコピー出力デバイス1415は、オペレーティングシステムプログラムやアプリケーションに出力機能を提供する。ハードコピー出力デバイス1415は、プリンタでもテキストまたはイメージデータあるいはテキストまたはイメージデータのグラフィック表現を含む実際の出力オブジェクトを生成する任意の出力デバイスでもよい。ハードコピー出力デバイス1415は、デバイス1401に直接接続されているように図示されているが、必ずしもそうでなくてもよい。たとえば、ハードコピー出力デバイス1415は有線または無線のネットワークなどのネットワークインターフェイスを経由してデバイス1401に接続されてもよい。
さらに、図14ではデバイス1401はデスクトップPCとして示されているが、他の実装ではデバイス1401はラップトップ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、埋め込みシステム、電話、ハンドヘルドまたはタブレットコンピュータ、PDA、または他のタイプのコンピュータのいずれでもよい。
図15は、図14に示す1台のコンピュータの内部アーキテクチャを示すブロック図である。コンピューティング環境には、オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理されるコンピュータの中央処理装置("CPU")1501、グラフィックス、イメージ、およびテキストをディスプレイモニタ1408上にレンダリングするための通信インターフェイスと処理機能を提供するディスプレイインターフェイス1502、キーボード1409への通信インターフェイスを提供するキーボードインターフェイス1504、マウス1410または同等のポインティングデバイスへの通信インターフェイスを提供するポインティングデバイスインターフェイス1505、ビデオおよびオーディオ検出器1417への通信インターフェイスを提供するデジタル入力インターフェイス1506、ハードコピー出力デバイス1415への通信インターフェイスを提供するハードコピー出力デバイスインターフェイス1508、コンピュータCPU 1501で処理されるコンピュータ命令とデータが揮発性のメモリデバイスに格納されるランダムアクセスメモリ("RAM")1510、基本的な入力および出力("I/O")、起動、またはキーボード1409からのキーストロークの受信などの基本的なシステム機能を実現する不変の低レベルのシステムコードまたはデータが不揮発性のメモリデバイスに格納される読み取り専用メモリ("ROM")1511、オペレーティングシステム1521、アプリケーションプログラム1522(Webブラウザアプリケーション1523、コンポジットアプリケーション1524、および必要に応じてその他のアプリケーション1525を含む)、およびデータファイル1526が格納されるストレージ1520またはその他の適切なタイプのメモリ(たとえば、ランダムアクセスメモリ("RAM")、読み取り専用メモリ("ROM")、プログラム可能ROM("PROM")、消去可能PROM("EPROM")、電気的消去可能PROM("EEPROM")、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク、ハードディスク、取り外し可能なカートリッジ、フラッシュドライブなど)、およびコンピュータネットワーク接続1416を経由してネットワーク1406への通信インターフェイスを提供するコンピュータネットワークインターフェイス1516が含まれる。構成要素となるデバイスとコンピュータCPU 1501は、コンピュータバス1527を経由して相互に通信する。
手短に言えば、コンピュータプログラム製品はマシン可読記憶媒体すなわちディスク1520に明白に具体化される。コンピュータプログラム製品には、マシンで読み込まれた場合に、データ処理装置がビジネスプロセスの仕様にアクセスする結果となるように動作する命令が含まれており、こうした仕様には、セキュリティインテンションを定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部を定義し、外部のサービスをコールするタスクが含まれる。本コンピュータプログラム製品には、データ処理装置がセキュリティアノテーションに関連付けられたセキュリティパターンを呼び出し、呼び出されたセキュリティパターンに基づいてセキュリティインテンションを満足する外部のサービスに関連付けられたサービスプロバイダを識別し、識別されたサービスプロバイダを使用してビジネスプロセスを呼び出す結果となるように動作する命令も含まれる。
代替として、コンピュータプログラム製品はディスク1520に明白に具体化されており、本コンピュータプログラム製品には、マシンで読み込まれた場合に、データ処理装置がビジネスプロセスにセキュリティフレームワークを適用する結果となるように動作する命令が含まれており、このセキュリティフレームワークにはコンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、セキュリティパターンに基づくコンポジットアプリケーション内のセキュリティアノテーションを使用して識別されたセキュリティオブジェクティブを実装する宣言フェーズが含まれている。本コンピュータプログラム製品には、マシンで読み込まれた場合に、データ処理装置が外部のポリシーネゴシエーションを実行し、セキュリティフレームワークの適用に基づいてコンポジットアプリケーションと外部のサービスの間で共通のポリシーを指定し、コンポジットアプリケーションと外部のサービスとのインタラクションのそれぞれについてこの共通のポリシーを実施し、さらにセキュリティオブジェクティブに基づいて外部のサービスからローカルサービスおよびローカルオブジェクトへのアクセスを規制する結果となるように動作する命令もさらに含まれている。
RAM 1510は、コンピュータバス1527とインターフェイスすることによって、ソフトウェアプログラム(オペレーティングシステムアプリケーションプログラム、およびデバイスドライバなど)の実行中にRAMストレージをコンピュータCPU 1501に迅速に提供する。より具体的に言えば、コンピュータCPU 1501はソフトウェアプログラムを実行するために、コンピュータ実行可能プロセスステップを固定ディスクドライブ1411またはその他の媒体からRAM 1510の領域にロードする。データはRAM 1510に格納され、データは実行中にコンピュータCPU 1501からアクセスされる。
図15にも示すように、デバイス1401には、オペレーティングシステム1521、およびアプリケーションプログラム1522(ワードプロセッサ、スプレッドシート、プレゼンテーション、ゲーム、Webブラウザ、Java(登録商標)Scriptエンジン、またはその他のアプリケーション)のコンピュータ実行可能コードが格納される。前述の実装を使用してコンポジットアプリケーションを提供できるが、本開示による機能をダイナミックリンクライブラリ("DLL")として、または他のアプリケーションプログラム(たとえば、APPLE(登録商標) SAFARI(登録商標)WebブラウザまたはMICROSOFT(登録商標) INTERNET EXPLORER(登録商標)WebブラウザなどのインターネットWebブラウザ)へのプラグインとして実装することもできる。
コンピュータCPU 1501は、多くの高パフォーマンスコンピュータプロセッサ(INTEL(登録商標)またはAMD(登録商標)プロセッサ、POWERPC(登録商標)プロセッサ、MIPS(登録商標) "RISC"(reduced instruction set computer)プロセッサ、SPARC(登録商標)プロセッサ、ACORN RISC Machine("ARM(登録商標)")アーキテクチャプロセッサ、HP ALPHASERVER(登録商標)プロセッサ、またはメインフレーム専用のコンピュータプロセッサを含む)の1つである。その他の編成において、コンピュータCPU 1501は、高パフォーマンスワークステーションおよびサーバーに見られる複数CPU 構成、またはメインフレームに見られる複数の拡張可能プロセシングユニットを含む複数のプロセッシングユニットである。
オペレーティングシステム1521は、INTEL(登録商標)およびPOWERPC(登録商標)ベースのワークステーションおよびサーバー向けのAPPLE(登録商標) MAC OS X(登録商標)、MICROSOFT(登録商標) WINDOWS(登録商標) NT/WINDOWS(登録商標) 2000/WINDOWS(登録商標) XP Workstation、MICROSOFT(登録商標) WINDOWS(登録商標) VISTA(登録商標)/WINDOWS(登録商標) NT/WINDOWS(登録商標) 2000/WINDOWS(登録商標) XP Server、さまざまなUNIX(登録商標)系の(-flavored)オペレーティングシステム(IBM(登録商標)ワークステーションおよびサーバー向けのAIX(登録商標)、SUN(登録商標)ワークステーションおよびサーバー向けのSUNOS(登録商標)、INTEL(登録商標) CPUベースのワークステーションおよびサーバー向けのLINUX(登録商標)、HP(登録商標)ワークステーションおよびサーバー向けのHP UX WORKLOAD MANAGER(登録商標)、SGI(登録商標)ワークステーションおよびサーバー向けのIRIX(登録商標)、Digital Equipment Corporationコンピュータ向けのVAX/VMS、HP ALPHASERVER(登録商標)ベースのコンピュータ向けのOPENVMS(登録商標)、SYMBIAN OS(登録商標)、NEWTON(登録商標)、IPOD(登録商標)、WINDOWS(登録商標) MOBILEまたはWINDOWS(登録商標) CE、PALM(登録商標)、NOKIA(登録商標) OS("NOS")、OSE(登録商標)、あるいはモバイルデバイス用EPOC(登録商標)、またはコンピュータまたは埋め込みシステム専用のオペレーティングシステムのいずれでもよい。オペレーティングシステム1521用のアプリケーション開発プラットフォームまたはフレームワークは、BINARY RUNTIME ENVIRONMENT FOR WIRELESS(登録商標)("BREW")、Java(登録商標) Platform, Micro Edition ("Java(登録商標) ME")またはJava(登録商標) 2 Platform, Micro Edition ("J2ME(登録商標)")、PYTHONTM、FLASH LITE(登録商標)、またはMICROSOFT(登録商標) .NET Compactのいずれでもよい。
図14および15は、コンポジットアプリケーションの呼び出しを実現するように設定されたプログラムコード、あるいはプログラムまたはプロセスステップを実行するコンピューティングシステムとして考えられる1つの実装を示しているが、他のタイプのコンピュータを使用することもできる。
形式的な問題に関しては、「ユーザー」という用語は、こうしたプロセスとのインタラクションを行う実体を説明するために一貫して使用されており、こうした一般化は、さまざまな重複または非重複の状態でこうしたプロセスとのインタラクションを行う関連または非関連の生物または自動の実体または存在を説明することも意図されている。同様にして、「選択」という用語は、人による手動の選択、人以外による自動の選択、または両方の組み合わせを表すように意図されている。最後に、簡潔にするために、全体を通じて、"Java(登録商標)Script"という用語はSUN MICROSYSTEMS(登録商標) JAVA(登録商標)SCRIPTプログラミング言語を表すように意図されており、"XML"という用語は'eXtensible Markup Language'を表すように意図されている。
前述の強化されたフレームワークは、ビジネス駆動型アプリケーションのセキュリティアプローチに従っており、これによってビジネスアプリケーションのセキュリティ要件はビジネスプロセス仕様レベルのセキュリティアノテーションとして表現され、表現されたセキュリティ要件を満たすために必要なセキュリティインフラストラクチャを自動的に生成できる。
具体的に、このフレームワークは、直感的なドメイン固有セキュリティ言語を使用することによってコンポジットプロセスレベルでセキュリティポリシーのパターンベースのアノテーションを提供し、セキュリティポリシーとセキュリティ機能とのマッチメイキングを実行することによってコンポジットアプリケーションとサービスプロバイダの間の自動的な調停をもたらし、コンポジットアプリケーションとサービスプロバイダの間のセキュアな通信を管理する保護されたセキュアサービスプロキシを自動的に生成する。
このように、コンポジットアプリケーションのスクリプトフレームワークは、より多くのビジネス指向開発者が既存または新規のビルディングブロックまたはサービスから新しいアプリケーションを容易に構築できるようにする統合モデル化環境とスクリプト言語を提供する。このフレームワークは、コンポジットアプリケーションの完全な仕様を統合モデルの形でサポートするモデルベースのスクリプトアプローチに従っている。このモデルの要素は、データモデル全体、サービスコールの編成、イベント管理、ユーザーインターフェイスなどを内部のドメイン固有言語として記述する。
このように、コンポジットアプリケーションのエンドツーエンドの開発は、ドメイン固有言語のファミリを提供することによってサポートされる。このように、コンポジットアプリケーションをサポートするすべての関連のロジックと設定は、1人のビジネスプロセス開発者がたった1つのツールセットを使用してできるだけシームレスに定義して配備することができる。これで、ビジネスプロセス開発者に、さまざまなソフトウェア開発フェーズの間にたびたび使用されるさまざまなツールや抽象概念を使用する必要のない開発および実行環境が提供される。
さまざまな実装について説明してきた。しかしながら、本開示の精神および範囲を逸脱することなくさまざまな変更が可能であることは理解されるであろう。したがって、他の実装は添付の請求項の範囲を逸脱しない。
調整された順序で実行される一連のタスクまたはアクティビティを含む例示的なビジネスプロセスを示す図である。 セキュリティアノテーションを使用してコンポジットアプリケーション(composition applications)を実装する例示的なシステムアーキテクチャを示すブロック図である。 セキュリティアノテーションを使用してコンポジットアプリケーションを実装する例示的なプロセスを示す図である。 設計時にビジネスプロセス開発者が行うビジネスプロセス仕様の準備を示すスイム図(swim diagram)である。 ビジネスプロセスの呼び出しを示すスイム図である。 コンポジットアプリケーション開発フレームワークによってコールできるサービスのカテゴリを示すブロック図である。 強化されたフレームワークを使用したコンポジットアプリケーションの開発のさまざまなフェーズを示す図である。 強化されたフレームワークを使用したコンポジットアプリケーションの開発のさまざまなフェーズを示す図である。 ビジネスプロセスにおいてセキュリティを指定するために使用するモデルを示す図である。 コンポジットアプリケーションを開発するための設計および実行環境を提供するセキュリティモニタを示すブロック図である。 セキュリティサービス間の例示的な関係を示すブロック図である。 例示的なビジネスプロセスの実行時の実施を示す図である。 例示的なビジネスプロセスの実行時の実施を示す図である。 例示的なシステムの外観を示す図である。 図14に示すデバイスの内部アーキテクチャを示すブロック図である。 セキュリティアノテーションを使用してコンポジットアプリケーションを実装する例示的なプロセスを示す図である。
符号の説明
100 ビジネスプロセス
101 開始専用タスク
102 第1のタスク
104 第2のタスク
105 第3のタスク
106 終了専用タスク
200 システムアーキテクチャ
201 エンタープライズ
203 第1のサービスプロバイダ
204 第2のサービスプロバイダ
205 第3のサービスプロバイダ
206 ネットワーク
208 デバイス
209 エンタープライズポリシーリポジトリ(EPR)
210 エンタープライズセキュリティ機能カタログ(ESCC)
211 ポリシー設定サーバー(PCS)
212 サービスブローカー(SB)
214 サービスレジストリ(SR)
215 ビジネスプロセスエンジン(BPE)
216 イベントマネージャ(EM)
217 サービスプロキシレジストリ(SPI)
219 ビジネスプロセスエディタ
220 コンポジットビジネスプロセス仕様言語(BPEL)
221 ポリシードメイン固有言語エンジン(PDSLE)
222 セキュアサービスプロキシ(SSP)
224 SSPレジストリ(SSPR)
225 ポリシーパターンリポジトリ(PPR)
226 Webサービス
227 セキュリティ機能レジストリ
300 コンポジットアプリケーションレイヤで自動的なセキュアアプリケーションコンポジションを実装する例示的なプロセス
S301 開始
S302 ビジネスプロセスの仕様にアクセス。仕様には、セキュリティインテンションを定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部を定義し、外部のサービスをコールするタスクが含まれる
S304 セキュリティアノテーションに関連付けられたセキュリティパターンを呼び出す
S305 呼び出されたセキュリティパターンに基づいてセキュリティインテンションを満足する外部のサービスに関連付けられたサービスプロバイダを識別
S306 識別されたサービスプロバイダを使用してビジネスプロセスを呼び出す
S307 終了
401 ポリシー管理ツール
402 エンタープライズポリシーリポジトリ
404 ポリシーパターンリポジトリ
405 エンタープライズセキュリティ機能カタログ
406 ポリシー設定サーバー
407 ビジネスプロセス仕様
501 ビジネスプロセスエンジン
502 ポリシードメイン固有言語エンジン
504 イベントマネージャ
505 ポリシー設定サーバー
506 セキュアサービスプロキシ
507 サービスブローカー
509 セキュアサービスプロキシレジストリ
510 サービスレジストリ
511 適合するサービスプロバイダ
600 コンポジットアプリケーション開発フレームワーク
601 コンポジットアプリケーション
602 第1の企業
604 外部のWebサービス
605 第2の企業
606 バックエンドサービス
607 ローカルサービス
701 定義フェーズ
702 実現フェーズ
704 宣言フェーズ
705 セキュリティリスク分析
706 セキュリティパターン定義
707 セキュリティインテンション定義
709 セキュリティパターン実装
710 セキュリティパターンプロビジョニング
711 アプリケーションレベルのインテンション宣言
712 サービスレベルのインテンション宣言
801 起動フェーズ
802 実施フェーズ
804 セキュリティ設定
805 外部のポリシーネゴシエーション
806 外部ポリシー実施
807 ローカルセキュリティ実施
900 セキュリティを指定するために使用するモデル
901 インテンションオントロジー
902 セキュリティインテンション
904 パターンリポジトリ
905 パターン
906 プロセス
907 セキュリティアノテーション
909 サービスインタラクションセキュリティアノテーション
910 実施セキュリティアノテーション
911 公開セキュリティアノテーション
912 割り当てセキュリティアノテーション
914 制約セキュリティアノテーション
915 タスク
1000 コンポジットアプリケーションコンテナ
1001 セキュリティモニタ
1002 スクリプトパーサー
1003 統合された設計時
1004 実行エンジン
1005 コンテナサービス
1006 サービスレジストリ
1007 メッセージングサービス
1009 その他のサービス
1010 タスクリストユーザーインターフェイス(UI)
1101 一連のセキュリティサービス
1102 バックエンドポリシージェネレータ
1104 バックエンドポリシーアップデータ
1105 ポリシージェネレータ
1106 WS-Security Policyポリシー
1107 ポリシーマッチャ
1109 一致したポリシー
1110 ポリシーレジストリ
1111 トークンエンジン
1112 セキュリティトークンサービス
1114 SAMLトークン
1115 暗号化エンジン
1116 ポリシー決定点
1117 アクセス制御ポリシー、XACMLポリシー
1119 バックエンドセキュリティ設定
1120 ポリシーネゴシエーション
1121 外部のポリシー実施
1122 ローカルサービス実施
1201 実行エンジン
1202 セキュリティモニタ
1204 GET_CARRIERSタスク
1205 ポリシーネゴシエーション
1206 ポリシーレジストリ
1207 GET_RATEタスク
1209 外部のWebサービス
1210 SOAPメッセージング
1212 バックエンド
1214 SELECT_CARRIERタスク
1215 バックエンドシステム
1215 BOOK_CARRIERタスク
1301 製品セキュリティチーム
1302 機密性パターン
1304 整合性パターン
1305 パターンリポジトリ
1306 ベンダーまたはコンテナプロバイダのパターンライブラリ
1307 ビジネスプロセス開発者
1309 サービスインタラクションセキュリティアノテーション"enforce confidentiality and integrity"
1310 割り当てセキュリティアノテーション"assign roles [manager] to select carrier"
1311 GETCARRIERSタスク
1312 ポリシーマッチャ
1314 コンポジットアプリケーションポリシー
1315 パートナーサービスポリシー
1316 コンポジットポリシー生成
1317 Webサービスプロバイダ、輸送業者のWebサービス
1319 一致ポリシー
1320 GETRATEタスク
1321 メッセージング実施
1322 SOAPメッセージング
1324 SELECTCARRIERタスク
1325 認可実施
1326 バックエンド
1400 システム
1401 デバイス
1402 Webサービスプロバイダ
1408 ディスプレイモニタ
1409 キーボード
1410 マウス
1411 固定ディスクドライブ
1412 取り外し可能なディスクドライブ
1414 テープドライブ
1415 ハードコピー出力デバイス
1416 コンピュータネットワーク接続
1417 ビデオおよびオーディオ検出器
1501 コンピュータの中央処理装置("CPU")
1504 キーボードインターフェイス
1505 ポインティングデバイスインターフェイス
1506 デジタル入力インターフェイス
1508 ハードコピー出力デバイスインターフェイス
1510 ランダムアクセスメモリ("RAM")
1511 読み取り専用メモリ("ROM")
1516 コンピュータネットワークインターフェイス
1520 ストレージ、ディスク
1521 オペレーティングシステム
1522 アプリケーションプログラム
1523 Webブラウザアプリケーション
1524 コンポジットアプリケーション
1525 その他のアプリケーション
1526 データファイル
1527 コンピュータバス
1600 自動的なセキュアアプリケーションコンポジションを実装する別のプロセス
S1601 開始
S1602 ビジネスプロセスにセキュリティフレームワークを適用。セキュリティフレームワークには定義フェーズと、実現フェーズと、宣言フェーズが含まれる
S1604 外部のポリシーネゴシエーションを実行し、セキュリティフレームワークの適用に基づいてコンポジットアプリケーションと外部のサービスとの共通のポリシーを指定
S1605 コンポジットアプリケーションと外部のサービスとのインタラクションのそれぞれについて共通のポリシーを実施
S1606 外部のサービスからローカルサービスとローカルオブジェクトへのアクセスをセキュリティオブジェクティブに基づいて規制
S1607 終了

Claims (12)

  1. データ処理装置によってセキュリティフレームワークを使用してコンポジットアプリケーションのセキュリティをモデル化するステップであって、前記セキュリティフレームワークは、
    コンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、
    前記識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、
    前記セキュリティパターンに基づく前記コンポジットアプリケーション内のセキュリティアノテーションを使用して前記識別されたセキュリティオブジェクティブを実装する宣言フェーズと
    を備えるステップと、
    外部のポリシーネゴシエーションを実行し、前記セキュリティフレームワークの適用に基づいて前記コンポジットアプリケーションと外部のサービスの間で共通のポリシーをデータ処理装置によって指定するステップと、
    前記コンポジットアプリケーションと前記外部のサービスとのインタラクションのそれぞれについて前記共通のポリシーをデータ処理装置によって実施するステップと、
    前記セキュリティオブジェクティブに基づいて前記外部のサービスからローカルサービスおよびローカルオブジェクトへのアクセスをデータ処理装置によって規制するステップと
    を備え、
    前記定義フェーズは、
    セキュリティリスク分析を実行するセキュリティリスク分析コンポーネントと、
    セキュリティソリューションキャストをセキュリティパターンとして準備するセキュリティパターン定義コンポーネントと、
    前記セキュリティパターンを組み合わせることによってセキュリティインテンションを定義するセキュリティインテンション定義コンポーネントと
    をさらに備える方法。
  2. 前記セキュリティリスク分析を実行するステップは、
    ジネスプロセスにおける脅威を分析するステップと、
    前記ビジネスプロセスにおいて関連のリスクを識別するステップと
    をさらに備える請求項1に記載の方法。
  3. 前記セキュリティリスク分析を実行するステップは、
    ジネスプロセスに関連するサービスインタラクションメカニズムを識別するステップと、
    前記識別されたサービスインタラクションメカニズムの脅威分析を実行するステップと
    をさらに備える請求項1に記載の方法。
  4. 前記セキュリティソリューションキャストを準備するステップは、セキュリティオブジェクティブの統一された定義を可能にするインテンションオントロジーを提供するステップをさらに備える請求項1に記載の方法。
  5. 前記実現フェーズは、
    ドメインに依存しないパターンを特定のコンテクストに結合し、それによって前記セキュリティパターンを実装するセキュリティパターン実装コンポーネントと、
    前記実装されたセキュリティパターンをパターンリポジトリに格納するセキュリティパターンプロビジョニングコンポーネントと
    をさらに備える請求項1に記載の方法。
  6. 前記宣言フェーズは、
    前記コンポジットアプリケーションが従うセキュリティインテンションを宣言するアプリケーションレベルのインテンション宣言コンポーネントと、
    前記コンポジットアプリケーションをサービスとして公開する前にローカルコンポーネントへのセキュリティインテンションを定義するサービスレベルのインテンション宣言コンポーネントと
    をさらに備える請求項2に記載の方法。
  7. 認可ポリシーを生成するステップと、
    ポリシー更新プロトコルを使用して欠落するポリシーをバックエンドポリシーデータベースに挿入するステップと
    をさらに備える請求項1に記載の方法。
  8. 前記セキュリティインテンションは、タスクの実行を許可されるロールまたは前記タスクが実行される順序を指定する請求項1に記載の方法。
  9. 前記セキュリティアノテーションはポリシードメイン固有言語を使用して表現される請求項1に記載の方法。
  10. 前記セキュリティインテンションは、外部のWebサービスを使用する場合に外部の実施ポリシーを宣言し、び出されたビジネスプロセスをWebサービスとして公開する場合にポリシーを宣言し、前記タスクが人的インタラクションを必要とする場合にタスクベースの認可要件を宣言し、さらに前記タスクが実行される順序を指定するタスクベースの認可制約を宣言する請求項1に記載の方法。
  11. コンピュータ読み取り可能な記録媒体であって、マシンで読み込まれた場合に、データ処理装置が、セキュリティフレームワークを使用してコンポジットアプリケーションのセキュリティをモデル化し、前記セキュリティフレームワークは、
    コンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、
    前記識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、
    前記セキュリティパターンに基づく前記コンポジットアプリケーション内のセキュリティアノテーションを使用して前記識別されたセキュリティオブジェクティブを実装する宣言フェーズと
    を備えており、
    外部のポリシーネゴシエーションを実行し、前記セキュリティフレームワークの適用に基づいて前記コンポジットアプリケーションと外部のサービスの間で共通のポリシーを指定し、
    前記コンポジットアプリケーションと前記外部のサービスとのインタラクションのそれぞれについて前記共通のポリシーを実施し、さらに
    前記セキュリティオブジェクティブに基づいて前記外部のサービスからローカルサービスおよびローカルオブジェクトへのアクセスを規制する結果となるように動作する命令を実行させるためのプログラムを記録し、
    前記定義フェーズは、
    セキュリティリスク分析を実行するセキュリティリスク分析コンポーネントと、
    セキュリティソリューションキャストをセキュリティパターンとして準備するセキュリティパターン定義コンポーネントと、
    前記セキュリティパターンを組み合わせることによってセキュリティインテンションを定義するセキュリティインテンション定義コンポーネントと
    をさらに備えるコンピュータ読み取り可能な記録媒体。
  12. セキュリティフレームワークを使用してコンポジットアプリケーションのセキュリティをモデル化し、前記セキュリティフレームワークは、
    コンポジットアプリケーションのセキュリティオブジェクティブを識別する定義フェーズと、
    識別されたセキュリティオブジェクティブを実現するセキュリティパターンを実装する実現フェーズと、
    前記セキュリティパターンに基づく前記コンポジットアプリケーション内のセキュリティアノテーションを使用して前記識別されたセキュリティオブジェクティブを実装する宣言フェーズと
    を備えており、
    外部のポリシーネゴシエーションを実行し、前記セキュリティフレームワークの適用に基づいて前記コンポジットアプリケーションと外部のサービスの間で共通のポリシーを指定し、
    前記コンポジットアプリケーションと前記外部のサービスとのインタラクションのそれぞれについて前記共通のポリシーを実施し、さらに
    前記セキュリティオブジェクティブに基づいて前記外部のサービスからローカルサービスおよびローカルオブジェクトへのアクセスを規制するように設定されたエンタープライズを備え、
    前記定義フェーズは、
    セキュリティリスク分析を実行するセキュリティリスク分析コンポーネントと、
    セキュリティソリューションキャストをセキュリティパターンとして準備するセキュリティパターン定義コンポーネントと、
    前記セキュリティパターンを組み合わせることによってセキュリティインテンションを定義するセキュリティインテンション定義コンポーネントと
    をさらに備え
    前記エンタープライズは、
    前記エンタープライズのセキュリティオブジェクティブを格納するエンタープライズポリシーリポジトリと、
    前記エンタープライズのセキュリティ機能を格納するエンタープライズセキュリティ機能カタログと、
    開発中のコンポジットビジネスプロセス用に新しく作成されたセキュリティポリシーとセキュリティ機能を格納するポリシー設定サーバーと、
    適合するサービスプロバイダを識別するサービスブローカーと、
    前記適合するサービスプロバイダを識別するプロセスを支援するためのすでに登録されたサービスプロバイダに関する情報を格納するサービスレジストリと
    を備えるシステム。
JP2008244984A 2007-10-15 2008-09-24 コンポジットアプリケーションフィールドのためのセキュリティ強化フレームワーク Expired - Fee Related JP5139220B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/872,358 2007-10-15
US11/872,358 US20090099882A1 (en) 2007-10-15 2007-10-15 Enhanced Security Framework for Composite Applications

Publications (2)

Publication Number Publication Date
JP2009099136A JP2009099136A (ja) 2009-05-07
JP5139220B2 true JP5139220B2 (ja) 2013-02-06

Family

ID=40535101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008244984A Expired - Fee Related JP5139220B2 (ja) 2007-10-15 2008-09-24 コンポジットアプリケーションフィールドのためのセキュリティ強化フレームワーク

Country Status (2)

Country Link
US (1) US20090099882A1 (ja)
JP (1) JP5139220B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495557B2 (en) * 2008-04-03 2013-07-23 Microsoft Corporation Highly available large scale network and internet systems
JP5234807B2 (ja) * 2009-05-13 2013-07-10 Necインフロンティア株式会社 ネットワーク装置及びそれに用いる自動暗号化通信方法
US8732094B2 (en) * 2010-07-30 2014-05-20 Hewlett-Packard Development Company, L.P. Enforcement of security requirements for a business model
US8650250B2 (en) 2010-11-24 2014-02-11 Oracle International Corporation Identifying compatible web service policies
US8635682B2 (en) 2010-11-24 2014-01-21 Oracle International Corporation Propagating security identity information to components of a composite application
US8650288B2 (en) 2010-11-24 2014-02-11 Oracle International Corporation Runtime usage analysis for a distributed policy enforcement system
US9589145B2 (en) 2010-11-24 2017-03-07 Oracle International Corporation Attaching web service policies to a group of policy subjects
US8726349B2 (en) * 2010-11-24 2014-05-13 Oracle International Corporation Optimizing interactions between co-located processes
US9021055B2 (en) 2010-11-24 2015-04-28 Oracle International Corporation Nonconforming web service policy functions
US8560819B2 (en) 2011-05-31 2013-10-15 Oracle International Corporation Software execution using multiple initialization modes
US9043864B2 (en) 2011-09-30 2015-05-26 Oracle International Corporation Constraint definition for conditional policy attachments
US9009473B2 (en) * 2011-10-13 2015-04-14 International Business Machines Corporation Providing consistent cryptographic operations across several applications
US9483279B2 (en) * 2011-10-31 2016-11-01 Oracle International Corporation Mechanism for providing unified access to decentralized user assistance repositories
US8914738B2 (en) * 2011-12-29 2014-12-16 Sap Se Community-based web service user interface annotations
US8892499B2 (en) 2011-12-30 2014-11-18 International Business Machines Corporation Life cycle management of rule sets
US20130179363A1 (en) * 2012-01-09 2013-07-11 Oracle International Corporation Functional model for rating events
US9317721B2 (en) * 2012-10-31 2016-04-19 Google Inc. Privacy aware camera and device status indicator system
US9754117B2 (en) * 2014-02-24 2017-09-05 Northcross Group Security management system
US9536073B2 (en) * 2014-07-24 2017-01-03 Google Technology Holdings LLC Device-based application security
US9565201B2 (en) * 2015-03-24 2017-02-07 Sap Se Security threat identification/testing using annotated sequence diagrams
US10379824B2 (en) 2016-02-26 2019-08-13 Oracle International Corporation Method for static security enforcement of a DSL
US10255054B2 (en) * 2016-04-13 2019-04-09 International Business Machines Corporation Enforcing security policies for software containers
US9973500B2 (en) * 2016-04-18 2018-05-15 Bank Of America Corporation Security architecture for authentication and audit
US10404749B2 (en) 2016-10-31 2019-09-03 Sap Se Enforcing application security requirement rules using security annotations
US11755363B2 (en) * 2016-12-19 2023-09-12 Vmware, Inc. Framework for workflow extensibility in a cloud computing system
US10904238B2 (en) * 2018-07-13 2021-01-26 Sap Se Access token management for state preservation and reuse
US11677785B2 (en) * 2019-02-12 2023-06-13 Sap Portals Israel Ltd. Security policy as a service

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3982848B2 (ja) * 1995-10-19 2007-09-26 富士通株式会社 セキュリティレベル制御装置及びネットワーク通信システム
JP2000235497A (ja) * 1999-02-15 2000-08-29 Nippon Telegr & Teleph Corp <Ntt> ポリシマクロ方法及びポリシマクロプログラムを格納した記憶媒体
JP2000324104A (ja) * 1999-05-10 2000-11-24 Matsushita Electric Works Ltd バーチャル通信ネットワークにおけるセキュリティーポリシー設定方法、セキュリティーポリシーマネージャ及びこれを用いたバーチャル通信ネットワークシステム
US6961858B2 (en) * 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US7107462B2 (en) * 2000-06-16 2006-09-12 Irdeto Access B.V. Method and system to store and distribute encryption keys
JP2002073855A (ja) * 2000-09-01 2002-03-12 Nikon Corp 製品メインテナンス事業システム
US7150045B2 (en) * 2000-12-14 2006-12-12 Widevine Technologies, Inc. Method and apparatus for protection of electronic media
US7080049B2 (en) * 2001-09-21 2006-07-18 Paymentone Corporation Method and system for processing a transaction
EP1303097A3 (en) * 2001-10-16 2005-11-30 Microsoft Corporation Virtual distributed security system
US7350226B2 (en) * 2001-12-13 2008-03-25 Bea Systems, Inc. System and method for analyzing security policies in a distributed computer network
US7093283B1 (en) * 2002-02-15 2006-08-15 Cisco Technology, Inc. Method and apparatus for deploying configuration instructions to security devices in order to implement a security policy on a network
US7937660B2 (en) * 2002-04-19 2011-05-03 Medtronic Vascular, Inc. Computer-based methods and structures for stent-graft selection
JP4405712B2 (ja) * 2002-07-04 2010-01-27 パイオニア株式会社 料金支払システム及び方法、サーバ装置及びこれによる料金支払処理方法並びにコンピュータプログラム
US7444522B1 (en) * 2002-09-18 2008-10-28 Open Invention Network, Llc Dynamic negotiation of security arrangements between web services
JP2004259197A (ja) * 2003-02-27 2004-09-16 International Network Securitiy Inc 情報セキュリティ監査システム
JP4513272B2 (ja) * 2003-03-24 2010-07-28 富士ゼロックス株式会社 処理サービス提供装置
JP3926778B2 (ja) * 2003-08-28 2007-06-06 株式会社亀田医療情報研究所 医療情報システム及びコンピュータプログラム
US7090128B2 (en) * 2003-09-08 2006-08-15 Systems And Software Enterprises, Inc. Mobile electronic newsstand
JP4625004B2 (ja) * 2003-09-10 2011-02-02 株式会社エヌ・ティ・ティ・ドコモ 安全で小額の信用課金をサービスプロバイダが認証可能に測定するための方法及び装置
JP4197311B2 (ja) * 2004-06-22 2008-12-17 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュリティポリシー生成方法、セキュリティポリシー生成装置、プログラム、及び記録媒体
US7478419B2 (en) * 2005-03-09 2009-01-13 Sun Microsystems, Inc. Automated policy constraint matching for computing resources
US7577704B1 (en) * 2005-08-31 2009-08-18 Sun Microsystems, Inc. Methods and systems for implementing customized data to control groupware environment data exchange

Also Published As

Publication number Publication date
US20090099882A1 (en) 2009-04-16
JP2009099136A (ja) 2009-05-07

Similar Documents

Publication Publication Date Title
JP5139220B2 (ja) コンポジットアプリケーションフィールドのためのセキュリティ強化フレームワーク
JP5166196B2 (ja) セキュリティアノテーションを使用した複合アプリケーション
US10348774B2 (en) Method and system for managing security policies
US8185916B2 (en) System and method for integrating a business process management system with an enterprise service bus
US9876822B2 (en) Administration of a context-based cloud security assurance system
Almorsy et al. Adaptable, model-driven security engineering for SaaS cloud-based applications
US20170041347A1 (en) Application-based security rights in cloud environments
US20080215358A1 (en) Method, system, and storage medium for implementing business process modules
US20030105887A1 (en) Method and system for integration of software applications
JP4848430B2 (ja) 仮想役割
US20120030120A1 (en) Enforcement of security requirements for a business model
Nagaratnam et al. Business-driven application security: From modeling to managing secure applications
EP2667301A1 (en) Decision service manager
Geebelen et al. A MVC Framework for policy-based adaptation of workflow processes: a case study on confidentiality
Welch et al. Re-engineering security as a crosscutting concern
Ramaratnam An analysis of service oriented architectures
Von Nethen et al. PMMP-PQC Migration Management Process✱
Dimitrakos et al. Service oriented infrastructures and cloud service platforms for the enterprise: a selection of common capabilities validated in real-life business trials by the BEinGRID consortium
Lassoued et al. Modeling contextualized flexible cloud workflow services: an MDE based approach
Yussupov et al. Protecting Deployment Models in Collaborative Cloud Application Development
Delessy A Pattern-driven Process for secure Service-oriented Applications
Daffara et al. Guide for SMEs
Ganek et al. An autonomic approach for managing security and identity management policies in enterprises
Delessy A Pattern-Driven Process for Secure Service-Oriented
Pasic et al. Security and Dependability in the Evolving Service-Centric Architectures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120628

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121016

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees