JP2009151755A - セキュリティアノテーションを使用した複合アプリケーション - Google Patents

セキュリティアノテーションを使用した複合アプリケーション Download PDF

Info

Publication number
JP2009151755A
JP2009151755A JP2008265745A JP2008265745A JP2009151755A JP 2009151755 A JP2009151755 A JP 2009151755A JP 2008265745 A JP2008265745 A JP 2008265745A JP 2008265745 A JP2008265745 A JP 2008265745A JP 2009151755 A JP2009151755 A JP 2009151755A
Authority
JP
Japan
Prior art keywords
security
service
policy
intention
business process
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.)
Granted
Application number
JP2008265745A
Other languages
English (en)
Other versions
JP5166196B2 (ja
Inventor
Yuecel Karabulut
ユーセル・カラバルト
Ming-Chien Shan
ミン−チェン・シャン
Murray Spark
マレー・スポーク
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 JP2009151755A publication Critical patent/JP2009151755A/ja
Application granted granted Critical
Publication of JP5166196B2 publication Critical patent/JP5166196B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • G06Q50/265Personal security, identity or safety

Abstract

【課題】セキュリティ目的の、スクリプトベースの、軽量複合アプリケーションへの直接的な統合を可能にするモデル駆動のセキュアな複合化フレームワークを、複合アプリケーション開発者に提供する。
【解決手段】ビジネスプロセスに対する仕様がアクセスされるセキュアな自動アプリケーション複合化であり、仕様は、セキュリティ意図を定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部分を定義するとともに、外部サービスを呼び出すタスクとを具備する。セキュリティアノテーションに関連付けられたセキュリティパターンが起動されるとともに、セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダが、起動されたセキュリティパターンをベースとして特定される。ビジネスプロセスは特定されたサービスプロバイダを使用して起動される。
【選択図】図3

Description

本開示は、全般的に、セキュアなコンピューティングに関する。
複合アプリケーションとは、サービス指向アプリケーションプラットフォーム及び既存のパッケージ化及びカスタム構築されたアプリケーションによって、Webサービスとして提供されるデータ及び機能を使用するアプリケーションである。複合アプリケーションは、それら自体のビジネスロジック及びユーザインターフェースによってサポートされ、これらのWebサービスを使用中心の(usage−centric)処理及び閲覧と組み合わせる。この点で、複合化によって、発展段階の複合アプリケーション内でそれらを再配置することで既存のコンポーネントが再使用されることが可能になる。従って、複合アプリケーションによって、複数の職務区域にまたがるビジネスシナリオ及び/又はユーザ固有の処理が可能になる。
基礎とするセキュリティポリシー、目的、又はインフラの詳細を抽象化することによるような、セキュリティ目的の、スクリプトベースの、軽量複合アプリケーションへの直接的な統合を可能にするモデル駆動のセキュアな複合化フレームワークが、複合アプリケーション開発者に提供される。
1つの一般的実施によると、コンピュータで実施される方法は、ビジネスプロセスの仕様にアクセスする段階を具備し、仕様は、セキュリティ意図を定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部分を定義するとともに外部サービスを呼び出すタスクとを具備する。セキュリティアノテーションに関連付けられたセキュリティパターンが起動されるとともに、セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダが、起動されたセキュリティパターンをベースとして特定される。ビジネスプロセスは、特定されたサービスプロバイダを使用して起動される。
実施は、1つ又は複数の次の特徴を具備しても良い。例えば、セキュリティアノテーションは、ポリシードメイン固有の言語を使用して表現されても良い。セキュリティアノテーションは、パースされても良い。セキュリティポリシーデータベースは、セキュリティアノテーションをベースとして更新されても良い。特定されたサービスプロバイダを使用してビジネスプロセスを起動する段階は、セキュリティ意図をベースとして、特定されたサービスプロバイダに対するセキュアなサービスプロキシを生成する段階をさらに具備しても良く、セキュアなサービスプロキシは、外部サービスへのセキュアなサービス呼び出し動作を管理するとともに、セキュアなサービスプロキシを使用して外部サービスを呼び出す。セキュアなサービスプロキシは、暗号化されるとともに格納されても良い。格納されたセキュアなサービスプロキシは回収されても良く、かつセキュアなサービスプロキシに関連付けられたセキュアなサービス呼び出し動作が起動されても良い。応答は、外部サービスから受信されるとともに、セキュアなサービスプロキシを使用して処理されても良い。
さらなる実施例では、サービスプロバイダを特定する段階は、サービスプロバイダの一覧のためのサービスアクセス情報をアクセスする段階と、サービスプロバイダの一覧内の各サービスプロバイダに対して格納されたセキュリティ目的及び格納されたセキュリティ機能にアクセスする段階と、各サービスプロバイダに対する格納されたセキュリティ目的及び格納されたセキュリティ機能を、セキュリティ意図に関連付けられたセキュリティ目的及びセキュリティ機能と比較する段階と、をさらに具備しても良く、サービスアクセス情報は、サービスエンドポイント及びサービス動作署名を具備する。サービスプロバイダを特定する段階は、また、各サービスプロバイダに対して、格納されたセキュリティ目的及び格納されたセキュリティ機能を比較することをベースとして選択されたサービスプロバイダを選択する段階と、選択されたサービスプロバイダを特定されたサービスプロバイダとして知識ベース内に格納する段階と、選択されたサービスプロバイダを格納する段階をベースとして、サービスプロバイダ選択プロセスが完了したことを指示するイベントを生成する段階と、を具備しても良い。
追加の実施例では、サービスは、バックエンド企業サービス、外部ビジネスツービジネスサービス、又はローカルサービスであっても良い。セキュリティアノテーションは、セキュリティ意図を表す変数を具備しても良く、セキュリティパターンは、変数を使用して起動される。セキュリティ意図は、外部Webサービスを使用するときに外部実施ポリシーを宣言しても良く、起動されたビジネスプロセスをWebサービスとして公開するときにポリシーを宣言しても良く、タスクが人間相互作用を要求するときに、タスクベースの承認要件を宣言しても良く、タスクが実行される順序を指定するタスクベースの承認制約を宣言しても良い。セキュリティ意図は、タスクを実行することが可能な職務を指定しても良い。
さらに、他の実施例では、セキュリティ意図は、タスクが実行される順序を指定しても良い。ビジネスプロセスを起動することは、タスクを実行することをさらに具備しても良い。セキュリティパターンは、サービスプロバイダが特定される前にセキュリティ意図の実施をトリガするのに使用される第1エントリポイントと、タスクが実行される前にセキュリティ意図の実施をトリガするのに使用される第2エントリポイントと、タスクが実行された後にセキュリティ意図の実施をトリガするのに使用される第3エントリポイントと、を具備しても良い。ビジネスプロセスを起動する段階は、もしサービスプロバイダが未だ特定されていないならば、第1エントリポイントを選択する段階と、もしタスクが未だ実行されていないならば、第2エントリポイントを選択する段階と、もしタスクが実行されていないならば、第3エントリポイントを選択する段階をさらに具備しても良い。サービスプロバイダを特定する段階は、サービス要求を生成する段階と、セキュリティパターンをベースとして、サービス要求をセキュリティ強化する段階とを具備しても良い。セキュリティ意図は、メッセージ機密性、暗号化セキュリティ意図、インテグリティ意図、職務割り当て意図、又はタスク実行順序の意図を定義しても良い。
他の一般的実施によると、コンピュータプログラム製品は、機械読み取り可能な媒体内に具体的に実現される。コンピュータプログラム製品は、機械によって読み出されたときに、データ処理装置にビジネスプロセスのための仕様にアクセスさせるように動作する命令を具備し、仕様は、セキュリティ意図を定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部分を定義するとともに外部サービスを呼び出すタスクとを具備する。プログラム製品は、データ処理装置に、セキュリティアノテーションに関連付けられたセキュリティパターンを起動させ、セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダを、起動されたセキュリティパターンをベースとして特定させるとともに、特定されたサービスプロバイダを使用してビジネスプロセスを起動させるように動作する命令も具備する。
他の一般的実施によると、装置は、ストレージ媒体及びプロセッサを具備する。ストレージ媒体は、ビジネスプロセスのための仕様を格納し、仕様は、セキュリティ意図を定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部分を定義するとともに外部サービスを呼び出すタスクを具備する。プロセッサは、セキュリティアノテーションに関連付けられたセキュリティパターンを起動し、セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダを、起動されたセキュリティパターンをベースとして特定するとともに、特定されたサービスプロバイダを使用してビジネスプロセスを起動するように構成される。
他の一般的実施によると、方法は、セキュリティフレームワークをビジネスプロセスに適用する段階を具備し、セキュリティフレームワークは、複合アプリケーションのセキュリティ目的を特定する定義フェーズと、特定されたセキュリティ目的を達成するセキュリティパターンを実施する実現化フェーズと、セキュリティパターンをベースとする複合アプリケーション内でセキュリティアノテーションを使用して特定されたセキュリティ目的を実施する宣言フェーズと、を具備する。方法は、また、セキュリティフレームワークを適用する段階をベースとして、複合アプリケーション及び外部サービスの間に共通のポリシーを指定する外部ポリシー交渉を行う段階と、複合アプリケーション及び外部サービスの間の各相互作用に対して共通のポリシーを実施する段階と、セキュリティ目的をベースとして、外部サービスによるローカルサービス及びオブジェクトへのアクセスを規制する段階とを具備する。
実施は、1つ又は複数の次の特徴を具備しても良い。例えば、定義フェーズは、セキュリティリスク分析を実行するセキュリティリスク分析コンポーネントと、セキュリティパターンとしてセキュリティソリューションキャストを準備するセキュリティパターン定義コンポーネントと、セキュリティパターンを組み合わせることによって実現されるセキュリティ意図を定義するセキュリティ意図定義コンポーネントとをさらに具備しても良い。セキュリティリスク分析を実行する段階は、ビジネスプロセス内の危険を分析する段階と、ビジネスプロセス内の関連付けられたリスクを特定する段階と、をさらに具備する。セキュリティリスク分析を実行することは、ビジネスプロセスに関連付けられたサービス相互作用機構を特定することと、特定されたサービス相互作用機構に対する危険分析を実行することと、をさらに具備しても良い。セキュリティソリューションを準備する段階は、統一されたセキュリティ目的の定義を可能にする意図オントロジを提供することをさらに具備する。
実現化フェーズは、ドメイン依存のパターンを特定の環境にバインドするセキュリティパターン実施コンポーネントを具備しても良く、それによって、セキュリティパターンと、パターンレポジトリ内に実施されたセキュリティパターンを格納するセキュリティパターンプロビジョニングコンポーネントと、を実施する。宣言フェーズは、複合アプリケーションが従うべきセキュリティ意図を宣言するアプリケーションレベル意図宣言コンポーネントと、複合アプリケーションをサービスとして公開するのに先立ちローカルコンポーネントへのセキュリティ意図を定義するサービスレベル意図宣言コンポーネントとをさらに具備しても良い。方法は、また、承認ポリシーを生成する段階と、欠けているポリシーをバックエンドポリシーデータベースに挿入する段階と、ポリシー更新プロトコルを使用する段階とを具備しても良い。セキュリティ意図は、タスクを実行することが可能な職務、又はタスクが実行される順序を指定しても良い。セキュリティアノテーションは、ポリシードメイン固有の言語を使用して表現されても良い。セキュリティ意図は、外部Webサービスを使用するときに、外部実施ポリシーを宣言しても良く、起動されたビジネスプロセスをWebサービスとして公開するときにポリシーを宣言しても良く、タスクが人間相互作用を要求するときにタスクベースの承認要件を宣言してもよく、かつタスクが実行される順序を指定するタスクベースの承認制約を宣言しても良い。
他の一般的実施によると、機械読み取り可能な媒体内に具体的に実現されたコンピュータプログラム製品であり、コンピュータプログラム製品は、機械によって読み出されたときに、データ処理装置に、セキュリティフレームワークをビジネスプロセスに適用させるように動作する命令を具備し、セキュリティフレームワークは、複合アプリケーションのセキュリティ目的を特定する定義フェーズと、特定されたセキュリティ目的を達成するセキュリティパターンを実施する実現化フェーズと、セキュリティパターンをベースとする複合アプリケーション内部でセキュリティアノテーションを使用して、特定されたセキュリティ目的を実施する宣言フェーズと、を具備する。コンピュータプログラム製品は、機械によって読み出されたときに、複合アプリケーション及び外部サービスの間の各相互作用に対して共通のポリシーを実施するとともに、セキュリティ目的をベースとして外部サービスによるローカルサービス及びオブジェクトへのアクセスを規制するために、セキュリティフレームワークを適用することをベースとして、複合アプリケーション及び外部サービスの間に共通のポリシーを指定するためにデータ処理装置に外部ポリシー交渉を行わせるように動作する命令をまた具備する。
他の一般的実施によると、システムは、セキュリティフレームワークをビジネスプロセスに適用するように構成される企業を具備し、セキュリティフレームワークは、複合アプリケーションのセキュリティ目的を特定する定義フェーズと、特定されたセキュリティ目的を達成するセキュリティパターンを実施する実現化フェーズと、セキュリティパターンをベースとする複合アプリケーション内部でセキュリティアノテーションを使用して特定されたセキュリティ目的を実施する宣言フェーズとを具備する。企業は、複合アプリケーション及び外部サービスの間の各相互作用に対して共通のポリシーを実施するとともに、セキュリティ目的をベースとして、外部サービスによるローカルサービス及びオブジェクトへのアクセスを規制するために、セキュリティフレームワークを適用することをベースとして、複合アプリケーション及び外部サービスの間の共通のポリシーを指定するように外部ポリシー交渉を行うようにさらに構成される。
1つ又は複数の実施の詳細は、添付図面及び説明内で下に説明される。本開示の他に考えられる特徴及び利点は、説明及び図、及び特許請求の範囲から明白である。
類似の符号は、全体を通して対応するコンポーネントを表す。
複合ビジネスアプリケーション(又は「複合アプリケーション」)は、個々のWebサービス又は他のアプリケーション内部から選択された機能、又は出力がWebサービスとしてパッケージ化されている全体のシステムのような、複数のコンポーネント又はサービスを組み合わせることによって構築される。複合ビジネスアプリケーションは、新規に導出された機能性を作成するために、いつ及びどのように編成されたWebサービスが互いに相互作用するのかを制御するローカルアプリケーションロジックの編成を組み込んでも良い。このように、複合アプリケーションの機能性は、サービス指向のアーキテクチャ(SOA)内部の異なるソースから定義される。
セキュリティは、ミッションクリティカルなサービス指向の複合アプリケーションを開発するときの主要な問題の1つであるので、堅牢な複合アプリケーションは、1つの一般的実施により、セキュアな仕方で複数のサービスを組み合わせることによって生成されても良い。ビジネス駆動アプリケーションのセキュリティアプローチに続いて、ビジネスアプリケーションのセキュリティ要件(又は「セキュリティ意図」)が、ビジネスプロセス仕様レベルでセキュリティアノテーションによって表現されるとともに、セキュリティアノテーションに対応するセキュリティ要件に合致する関連付けられたセキュリティインフラが自動的に生成される。
ビジネスアプリケーションのセキュリティ目的を表現するこれらのセキュリティアノテーションは、セキュリティを習得したビジネスプロセス開発者によって、ビジネスプロセス仕様内で表現されても良い。アノテーションは、セキュリティパターンレポジトリから選択されるとともに、ドメイン固有の言語を使用することによって特定のアプリケーションのためにインスタンス化されても良い。
ビジネスプロセス開発者がアプリケーションを配備するときに、(サービス選択、サービスバインド及びセキュリティインフラ生成のような)セキュリティ目的を実施することに関連付けられる動作の処理は、自動的に実行される。例えば、サービスプロバイダの選択は、複合ビジネスプロセス及びサービスプロバイダの両方のセキュリティ要件及び機能の間での一致生成プロセスを使用して発生させても良い。ビジネスプロセス開発者は、このように、専門のセキュリティ開発者を巻き込むことなくセキュリティ目的を実行時に宣言しても良い。この点で、サービスプロバイダからのサービス(例えばWebサービス)の選択は、複合アプリケーションの所望のセキュリティ目的をサービスプロバイダの現在のセキュリティ機能と合致することによって、及び、サービスプロバイダの所望のセキュリティ目的を複合アプリケーションの現在のセキュリティ機能と合致することによって発生させても良い。
従って、相互依存のビジネスプロセス及びセキュリティポリシーは、抽象的な仕方で設計されても良く、かつ容易に実施されうる。ビジネスプロセス仕様の設計は、度々ビジネス分析又はソフトウェアアーキテクトによって実行されるので、ソフトウェアアノテーションは、ハイレベルなセキュリティの知識及び関連付けられたビジネスプロセスになじみがないかもしれないセキュリティ開発者の習得を要求しないカスタム化可能なパターンからモデリングされる。
セキュリティアノテーションを使用すると、複合アプリケーションは、セキュリティ目的及び構成の間のギャップを手動で橋渡しする必要がなく、それによって、セキュリティ破りの可能性が低減される。さらに、ビジネスプロセスモデル及び関連付けられたセキュリティアノテーションを密に組み合わせることによって、ビジネスプロセスへの変更はセキュリティ目的により一貫的にバインドされる。このように、抽象化ビジネス駆動セキュリティ目的は、ビジネスプロセス仕様レベルで定義される目的を使用して、具体的なセキュリティポリシー及びセキュリティ実施に効果的にマッピングされる。
簡潔に述べると、本明細書で説明されるセキュリティフレームワークによって、ビジネスプロセス開発者が、ハイレベルなセキュリティ意図又は目的をビジネスプロセス仕様に追加することが可能になる。ここで、セキュリティフレームワークは、セキュリティ構成及び実施プロセスの自動的な生成を促進する。これらのセキュリティ目的は、例えば、ビジネスプロセス承認要件、Webサービスのプロテクション品質(QoP)要件、又は他のセキュリティ意図を具備しても良い。
基礎とするセキュリティポリシー、目的、又はインフラの詳細を抽象化することによるような、セキュリティ目的のスクリプトベースの軽量な複合アプリケーションへの直接的な統合を可能にするモデル駆動のセキュアな複合化フレームワークが、複合アプリケーション開発者に提供される。複合化によって使用されるサービスは、Webサービスとしてラップされる会社内部のビジネス機能、プロバイダ及び他のビジネスパートナーによって提供される外部Webサービス、又は純粋なローカルサービスであっても良く、それによって、組織横断的な複合アプリケーションをセキュアにするためのソリューションを提供する。
図1は、連携された順序で実行される一連のタスク又は動作を具備する、代表的なビジネスプロセス100を図説する。タスクは、アトミックなビジネスプロセスコンポーネントであり、動作を説明する、又は、処理の制御フローを更新する、例えばプロセスフローを分割又は結合している。例えば、代表的なビジネスプロセス100は、各々が専用終了タスク106に先立ち発生する、専用開始タスク101、及び順に実行される第1タスク102(「タスク1」)、第2タスク104(「タスク2」)、及び第3タスク105(「タスク3」)を具備する。第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)209と、企業セキュリティ機能カタログ(ESCC)210と、ポリシー構成サーバ(PCS)211と、サービスブローカー(SB)212と、サービスレジストリ(SR)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)のような特定トークンに対するサポートを定義しても良い。
さらに、セキュリティポリシーは、バックエンドサービスと相互作用するときに、自動化されたポリシー構成機構が使用されるべきであることを指示しても良い。ビジネスプロセス開発者は、もし要求されるポリシーが複合アプリケーションによって生成されるバックエンドアプリケーションサービスへのサービス要求を承認するポリシーを具備しないのであれば、それらが生成されるとともにバックエンドシステムポリシーデータベースに格納されることを保証しなければならない。ポリシーは、外部サービスと相互作用するときに、ポリシー交渉及びポリシー実施が使用されるべきであることをさらに指示しても良い。複合アプリケーションの実行の特定のステージは、プロバイダ又は取引パートナーに属する外部Webサービスをアクセスしても良い。これらの状況では、もし複合アプリケーション及び要求される外部サービスのセキュリティ目的が達成される、又はそうでなければ満足又は合致されるならば、各々の要求されるサービス相互作用が発生しうる。
さらに、セキュリティポリシーは、複合によって使用されているサービスのポリシー内の変更が、アプリケーションを再起動することなく適合されるように、動的なポリシー管理が動作のフェーズの間のポリシー変更を扱うように使用されるべきであることを指示しても良い。規格準拠のセキュリティサービス(例えばセキュリティトークンサービス)及び分散環境内での相互運用性をサポートするのに使用されるべきポリシー(例えば拡張可能アクセス管理マークアップ言語(XACML)互換のポリシー)も、セキュリティポリシー内で説明されても良い。そのようにすることにより、セキュリティポリシーは、下位なWebサービスのセキュリティ規格の抽象化を提供するセキュリティAPI、セキュリティを気にする全てのアプリケーションのための企業レベルのプロテクションを提供するセキュリティ機構の統一された使用法、ビジネスプロセス及びセキュリティポリシーの統一された設計、及び組織横断的なサービス相互作用をサポートする信頼性のある管理インフラを可能にする。
一実施例では、セキュリティポリシーcomp−app−sgは、全てのビジネスツービジネス(B2B)接続が、機密でなければならないことを要求しても良い。実施例のセキュリティ機能comp−app−capは、企業がセキュリティ主張マークアップ言語(SAML)トークンを使用する、トークンベースのアクセス管理をサポートすることを指示しても良い。
装置208は、ビジネスプロセス仕様のインスタンスを生成するビジネスプロセスエンジン(BPE)215をさらに具備するとともに、ビジネスプロセスに関連付けられたタスクを、処理シーケンス内で指定されたように実行する。適切なサービスプロキシをインスタンス化及び連携するイベント管理部(EM)216、イベント管理部216によって回収のためのサービスプロキシを格納するサービスプロキシレジストリ(SPI)217、ビジネスプロセスエディタ219、複合ビジネスプロセス仕様言語(BPEL)220、セキュリティアノテーションをパースするポリシードメイン固有の言語(DSL)エンジン(PDSLE)221、サービスプロバイダへのセキュアなサービス呼び出しを管理するとともに、セキュリティ動作(例えば暗号化、トークン検証、トークン回収)を処理するための動作を提供するセキュアなサービスプロキシ(SSP)222、SSPコードを格納するSSPレジストリ(SSPR)224、及び、セキュリティポリシーパターンを格納するポリシーパターンレポジトリ(PPR)225。集合的に、ビジネスプロセスエンジン215、イベント管理部216、及びサービスプロキシレジストリ217は、設計時コンポーネントとして参照されるとともに、ビジネスプロセスエディタ218及び複合ビジネスプロセス仕様言語220は、実行時コンポーネントとして参照される。
そのセキュリティの機能を実施するために、セキュアなサービスプロキシ222は、証明書を発行するアトリビュートサーバ、暗号化機能を提供する暗号化サーバ、アクセス管理要求を評価するポリシー決定エンジン、証明書を検証する証明書エンジン、及び/又は公開及び秘密鍵を格納するセキュアなキーエンジンを具備する、又はアクセスを具備しても良い。
第1サービスプロバイダ203は、Webサービス226と、セキュリティ目的又はポリシー(「sp−pol」)を格納するセキュリティ機能レジストリと、第1サービスプロバイダ227のためのセキュリティ機能(「sp−cap」)とを具備する。サービス226は、ビジネス機能性を提供するとともに、少なくともサービス(又は動作)名称、及び入出力パラメータを具備する説明を具備するWebサービスとして実施される。セキュリティポリシーsp−polは、どの信任状がこのサービスにアクセスするのに要求されるかを説明するアクセスポリシーを指示しても良く、かつセキュリティ機能sp−capは、サービス226のサポートされるセキュリティ機能を指示しても良い。
複合アプリケーション環境は、複合アプリケーション層及びサービスプロバイダ層を具備する。複合アプリケーション及びサービスプロバイダの両方は、ランタイム相互作用の間のサービス呼び出しの方向に依存して、サービス消費者及びサービス提供者の機能で動作可能である。図示されてないが、第2サービスプロバイダ204及び第3サービスプロバイダ205も、サービス及びセキュリティ機能レジストリに関連付けられている。
一実施形態によると、複合アプリケーションは、設計時プロセス及び実行時プロセスを使用して生成される。設計時プロセスでは、開発者はプロセスエディタ219を使用してビジネスプロセスを指定するとともに、プロセスを配備する。実行時プロセスでは、ビジネスプロセスエンジン215はプロセス仕様のインスタンスを生成するとともに、プロセスシーケンス内で指定されたようにタスクを実行する。外部Webサービス起動を起動する各タスクに対して、ビジネスプロセスエンジン215は、イベント管理部216を呼び出すとともに、サービス要求をイベント管理部216に渡す。
イベント管理部は、要求をベースとしてサービスプロキシレジストリから適切なサービスプロキシを選択するとともに、サービスプロキシをインスタンス化する。各々のインスタンス化されたサービスプロキシは、バインドされた外部Webサービスを呼び出すとともに、イベント管理部の呼び出し結果を返却し、次に応答をビジネスプロセスエンジンに転送する。ビジネスプロセスエンジンは、全ての外部サービス呼び出しからの応答を収集するとともに複合出力を生成し、それによって複合ビジネスプロセスを配備するために、返却されたデータ上で複合化動作を実行する。
図3は、複合アプリケーション層でのセキュアな自動アプリケーション複合化を実施する代表的プロセス300を図説する。簡潔には、コンピュータで実施されるプロセス300は、ビジネスプロセスの仕様にアクセスすることを具備し、仕様は、セキュリティ意図と、ビジネスプロセスの少なくとも一部分を定義するとともに外部サービスを呼び出すタスクとを定義するセキュリティアノテーションを具備する。プロセス300は、またセキュリティアノテーションに関連付けられたセキュリティパターンを起動することと、起動されたセキュリティパターン上でセキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダを特定することと、特定されたサービスプロバイダを使用してビジネスプロセスを起動することとを具備する。
より詳細には、プロセス300が開始する(S301)と、ビジネスプロセスのための仕様がアクセスされる(S302)。仕様は、セキュリティ意図を定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部分を定義するとともに、外部サービスを呼び出すタスクとを具備する。
後述事項を簡単に参照すると、図4は、設計時でのビジネスプロセス開発者によるビジネスプロセス仕様の準備を図示するスイム図(swim diagram)である。ビジネスプロセス開発者は、ポリシー運用ツール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によって一度パースされると、ポリシー構成サーバ505は、生成された現在の複合プロセスのセキュリティポリシーcomp−app−sgをもって更新される。これらの生成されたセキュリティポリシーcomp−app−sgに加えて、ポリシー構成サーバは複合プロセスのセキュリティ機能comp−app−capも格納する。上記で指示されたように、設計時に、機能comp−app−capはポリシー構成サーバ505内にアップロードされている。
セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダは、起動されたセキュリティパターンをベースとして特定される(S305)。図5内に示されるように、ポリシードメイン固有の言語エンジン502は、考えられるサービスプロバイダの一覧がサービスレジストリ510内に登録されている、合致するサービスプロバイダ511の特定のために、サービスブローカー507をトリガする、呼び出す、実行又はそうでなければ起動する。
サービスブローカー507は、サービスレジストリ510から、全ての考えられるサービスプロバイダ511のためのサービスアクセス情報を回収する。このサービスアクセス情報は、URL(URL)及びWebサービス動作署名のような、アドレス又はWebサービスエンドポイントを具備する。これらのWebサービス動作署名は、動作の名称、及び入力又は出力パラメータを具備しても良い。
合致する機能を実行するために、サービスブローカー507は、それらのセキュリティポリシーsp−pol及びセキュリティ機能sp−capをそれぞれ回収するために、登録された、考えられるサービスプロバイダ511の各々を起動する。サービスブローカー507は、また、ポリシー構成サーバ505から複合アプリケーションのセキュリティポリシーcomp−app−sg及びセキュリティ機能comp−app−capを回収する。
セキュリティポリシー及び複合アプリケーションの機能及びサービスプロバイダを回収したら、サービスブローカー507は、少なくとも2つのテストを実行する。例えば、サービスブローカーは、複合アプリケーションのセキュリティポリシーcomp−app−sgに合致する、又はそうでなければ満足するセキュリティ機能sp−capを、サービスプロバイダ511が提供するかどうかを判定しても良い。さらに、サービスブローカー507は、サービスプロバイダ511のセキュリティポリシーsp−polに合致する、又はそうでなければ満足するセキュリティ機能comp−app−capを複合アプリケーションが提供するかどうかを判定する。
もし両方のテストに合格したら、次いでサービスプロバイダ511は、セキュア複合アプリケーションのために使用されても良い。なぜなら、サービスプロバイダ511及び複合アプリケーションの両方は、互いにセキュアに通信する資格を有しているからである。登録された各々の考えられるサービスプロバイダ511に対するこれらのテストを実行した後に、サービスブローカー507は特定され、資格を有するサービスプロバイダ511の設定を知識ベース内に格納するとともに、プロバイダ選択が完了されるとともに、サービスプロバイダが適切にフィルタされたことを指示するイベントを生成する。
ビジネスプロセスは、特定されたサービスプロバイダを使用して起動され(S306)、それによってプロセス300を終了する(S307)。セキュリティアノテーションをパースするとともに、サービスプロバイダを特定した後に、ビジネスプロセスエンジン501は、少なくとも1つのタスクがセキュアなサービスプロキシを使用して外部のWebサービスを起動するビジネスプロセス内に具備されるタスクを実行又はそうでなければ起動する。内部及び外部サービスの呼び出しは、ビジネスプロセスエンジン501によってトリガされるイベント管理部504によって管理される。
各々の外部Webサービスの呼び出しに対して、イベント管理部504は、全ての特定された、資格を有するサービスプロバイダの一覧をサービスブローカー507から回収するとともに、複合アプリケーション及び各々の特定されたサービスプロバイダ511の間のセキュアな通信を確立するのに有用でありうる任意の情報にアクセスする。この情報は、エンドポイント情報のようなWebサービスアクセス情報、複合アプリケーションのセキュリティポリシー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として参照される複合アプリケーションは、自動車製造者から新規の車販売特約店に自動車を搬送するための資格を有するキャリアを選択するビジネスロジックを使用する。
ICARRIERアプリケーションのためのドメイン固有の言語を使用して定義される代表的プロセス仕様は、下の<表1>内に示される。
代表的なビジネスプロセス仕様では、タスクの実行:GET_CARRIER_LIST()は、セキュリティポリシー及び機能に関して、資格を有するキャリアの一覧を返却する。ビジネスプロセスによって定義された複合アプリケーションは、キャリアへの少なくとも2つの相互作用を具備する。異なるキャリアからのレートを回収するGET_RATE(SHIPMENT_DATA)及び出荷のためのキャリアを予約するBOOK_CARRIER(SHIPMENTID)。キャリアは、Webサービスとしてそれらの機能性を提供するとともに、使用すべき適切なキャリアの選択は、ICARRIER及び考えられるキャリアが、互いにセキュリティポリシー及びセキュリティ機能を満足するかどうかにも依存する。
考えられる3つのキャリアのセキュリティポリシー及びセキュリティ機能は、下で<表2>内に示される。
この実施例では、ICARRIER Webサービスは、LOOKUP_MYPOLICIES()又はLOOKUP_MYCAPABILITIES()サービス動作を使用することによるように、これらのポリシー及び機能を回収するための動作を提供する。
自動車製造者のセキュリティポリシーは、既存アプリケーションのための全てのB2B接続は機密性を保証すべきであることを指示することが前提とされる。このポリシーを満たすために、ICARRIERは、機密性を保証するセキュリティ機能を提供するキャリアのみを選択する必要がある。しかしながら、同時にICARRIERは、キャリア(即ちサービスプロバイダ)のセキュリティポリシーを満足するセキュリティ機能を具備すべきである。
ビジネスプロセス仕様を準備するときに、ICARRIERビジネスプロセス開発者は、全てのB2B接続が機密性を保証することを指示する、次の「B2BCONFIDENTIALITY」セキュリティパターンを回収する:PATTERN: ENFORCE ”B2BCONFIDENTIALITY” DURING PROCESS <PROCESS_NAME>。
他のセキュリティパターンのように、このパターンは、各々の特定プロセスに対してインスタンス化されるテンプレートとして使用される。ビジネスプロセス開発者は、このパターンをカスタム化して、ポリシードメイン固有の言語を使用して、<表1>内に示されるICARRIERビジネスプロセス仕様に、次のアノテーションを挿入する:ENFORCE ”B2BCONFIDENTIALITY” DURING PROCESS ICARRIER。
プロセスドメイン固有の言語及びポリシードメイン固有の言語の組み合わせを具備するアノテーションが付されたプロセス仕様は、下の<表3>内に示される。
このビジネスプロセス仕様を使用して、セキュアなICARRIERは、資格を有するキャリアとしてA−Transのみを選択する。特に、A−Transは、ICARRIERの「message−confidentiality」セキュリティポリシーを満足する。なぜなら、A−Transは、(セキュアなチャネル通信を実現するのに使用される)RSA暗号化及び復号化機能を提供するとともに、なぜなら、RSA暗号化及び復号化機能は、また、(ICARRIERのセキュリティ機能一覧内で反映されるように)ICARRIERそれ自体によってサポートされるからである。さらに、ICARRIERは、A−transの「message−confidentiality」セキュリティポリシーを満足する。なぜなら、ICARRIERは、(セキュアなチャネル通信を実現するのに使用される)RSA暗号化及び復号化機能を提供するとともに、なぜなら、RSA暗号化及び復号化機能は、また、(A−transのセキュリティ機能一覧内で反映されるように)A−Transによってサポートされるからである。
さらに、ICARRIERは、またA−transの「service−confidentiality::certificate−based−access−control」セキュリティポリシーを満足する。なぜなら、ICARRIERは、(メンバシップの職務のような証明書符号化されたアトリビュートをベースとしてアクセス管理決定を取得するために要求される)X509証明書セキュリティ機能を提供するとともに、なぜなら、同一のX509証明書セキュリティ機能又は処理機能性は、また、(A−transのセキュリティ機能一覧内に反映されているように)A−Transによってサポートされるからである。この一致をベースとして、ICARRIERは、要求されるセキュリティ機能性が実行時に実施されることを保証するセキュリティプロキシを自動的に生成する。例えば、サービス呼び出しGET_RATE及びBOOK_CARRIERは、セキュアに実施される。キャリアB−Trans及びC−Transは、ICARRIERのセキュリティポリシーを満たさず、かつこのように資格を有するキャリアとして特定されない。
もし自動車製造者が自身のB2B接続セキュリティポリシーを更新すると、ビジネスプロセス開発者は、ICARRIERビジネスプロセス仕様内のセキュリティアノテーションを容易に変更するとともに、新規のセキュリティポリシーを反映するために、複合アプリケーションを再配備しうる。例えば、もし新規のセキュリティポリシーは、機密の接続を確実にするのにB2B接続が必要でないことを指示するならば、ビジネスプロセス開発者は、プロセスエディタを使用して、古いアノテーション「B2Bconfidentiality」を「noB2Bsecurity」に置換するとともに、セキュリティ機能要件を消去しうる。この更新されたビジネスプロセス仕様は、下の<表4>内に示される。
更新されたセキュリティポリシー及び機能一覧は、また、<表5>内で示されるように調節されても良い。
この更新されたセキュリティスキームの下では、資格を有するキャリアとして特定される唯一のキャリアがC−Transでありうる。この点で、この処理は、アノテーション内で表現されるハイレベルセキュリティ意図に合致するように、所望のセキュリティ動作を実行するプロテクトされたセキュリティプロキシを生成するために、ドメイン固有のなセキュリティアノテーションを使用することによって自動的に制御される。
次に、セキュアなサービスプロキシの特定の代表的な実施が説明される。セキュアなサービスプロキシの1つの主要なタスクは、ビジネスプロセス仕様内に具備されるセキュリティアノテーションに関連付けられるセキュリティポリシーを満足するように実行されるセキュリティに関するタスクを取り扱うことである。そのようにして、「B2B機密性」セキュリティポリシーを実施するために生成されたセキュアなサービスプロキシによって実行される処理は、以下にさらに詳細に説明される。
この実施例では、ICARRIER及びA−Transに関連付けられるセキュリティポリシー及び機能は、<表2>内に反映されるように、「unaltered」状態のそれである。このように、セキュアなサービスプロキシは、指定されるセキュリティポリシーを満足するためにタスクを実行するのに使用される。
ICARRIERからA−Transへの通信に関して、セキュアなサービスプロキシは、アトリビュートサーバからICARRIERのための証明書を受信する。ここで、証明書は、Gold DHL Partner証明書のように、ICARRIERの適格性を証明するのに使用されるICARRIERのアトリビュートを符号化する。セキュアなサービスプロキシは、また、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のセキュアなサービスプロキシによって実施される。メッセージ機密性は、このように満足される。なぜなら、出荷要求及び対応する結果は暗号化されているからである。さらに、「confidentiality::certificate−based−access−control」ポリシー。なぜなら、ICARRIER証明書は、A−TransWebサービスによって提供されるWebサービス動作を起動することによって送信されるからである。
図6は、複合アプリケーション開発フレームワーク600によって呼び出されうるサービスのカテゴリを図説するブロック図である。上記で説明されたように、例えば、第1会社602の複合アプリケーション601によって起動されたタスクは、第2会社605の外部Webサービス604を呼び出しても良い。さらに、複合アプリケーションは、バックエンド企業アプリケーション(例えば企業資源計画アプリケーション)、又はさらにはローカルコンポーネントとして複合アプリケーションに構築されたローカルサービス607からもバックエンドサービス606を呼び出しても良い。
多くの場合に、ビジネスプロセス開発者は1つ又は複数の既存サービスによって充分に捕捉されていないいくつかのビジネスロジックを実施しているかもしれないため、ローカルサービス607が使用される。ローカルサービスは、複合アプリケーション開発者によって生成されても、又は他のコンポーネントプロバイダからインポートされても良い。これらのローカルサービス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は、複合アプリケーションを実行する前に発生する。例えば、割り当てられたアプリケーションレベルセキュリティ意図は、ロードされるとともに、実行時実施に対して内部的に構成される。バックエンドサービスとともに相互作用するときに、対応するセキュリティ構成は、十分な承認許可がバックエンド上のサービスの実行に先立ち配置されるようにセットアップされる。ポリシー更新プロトコルは、このように、承認ポリシーを生成するとともに、バックエンドポリシーデータベースに欠けているポリシーを挿入するのに使用される。外部サービスと相互作用するときに、信頼(trust)は、承認及び承認アトリビュートを交換することによって確立されうる。
外部ポリシー交渉805は、異なるセキュリティドメインに関連付けられるサービスのような外部サービスを複合アプリケーションが使用するときに発生する。(例えばサービス消費者としての)複合アプリケーション及び(例えばサービス提供者としての)外部サービスは、トークンタイプ、暗号化アルゴリズム及び使用される機構に関するような、それらの個々のセキュリティポリシー及びセキュリティ機能を定義しても良い。相互作用を保証する前に、複合アプリケーション及び外部サービスの両方は、共通のポリシーを指定する同意に到達する。この到達された同意は、種々のソースからのポリシーのマージをサポートするポリシー交渉プロセスによって発効される。
実施フェーズ802では、外部ポリシー実施806は、両者間の各相互作用のために共通のポリシーを実施することを取り扱う。外部ポリシー実施807は、例えば、セキュリティトークンをメッセージに追加することによって、交換されたメッセージが修正されることを要求しても良い。ローカルセキュリティ実施807に対して、強化されたフレームワークは、アクセスをローカルサービス及びオブジェクトに規制するために、アクセス管理機構を提供する。そのようにすることで、アプリケーションセキュリティポリシーの効率的な仕様をサポートするとともに、またこれらのポリシーの実施及び管理のために使用される実行時コンポーネントをサポートするドメイン固有言語のファミリーが提供される。
上記で指示されたように、セキュリティポリシーは、ビジネスプロセス仕様に意図を添付することによって指定される。同様に動作を具備しうるいくつかのタスクを具備するプロセスを定義するように、複合アプリケーションの機能の一部を効率的に定義するために、ビジネススクリプト言語が設計される。タスクは、ローカルサービスを使用しても、変数内にローカルデータを格納して、かつ外部Webサービス又はバックエンドシステムを起動しても良い。
後述の内容を簡潔に参照する。図16は、セキュアな自動アプリケーション複合を実施する他の処理1600を図説する。簡潔には、処理1600が開始するときに(S1601)、セキュリティフレームワークがビジネスプロセスに適用され(S1602)、セキュリティフレームワークは複合アプリケーションのセキュリティ目的を特定する定義フェーズと、特定されたセキュリティ目的を達成するセキュリティパターンを実施する実現化フェーズと、セキュリティパターンをベースとする複合アプリケーション内部でセキュリティアノテーションを使用して、特定されたセキュリティ目的を実施する宣言フェーズとを具備する。外部ポリシー交渉は、セキュリティフレームワークを適用することをベースとして、複合アプリケーション及び外部サービスの間の共通にポリシーを指定するように行われる(S1604)。共通のポリシーは、複合アプリケーション及び外部サービスの間の各相互作用に対して実施される(S1605)。外部サービスによるローカルサービス及びオブジェクトへのアクセスは、セキュリティ目的をベースとして規制され(S1606)、それによって、プロセス1600を終了する(S1606)。
下の<表6>は、考えられるキャリアの設定から、(自動車キャリアのような)資格を有するキャリアを選択及び予約するためのストリームライン化プロセスを図説する、他の実施例ビジネスプロセス仕様を提供する。参照の容易さのために、ビジネスプロセス仕様の各行には番号が付されている。
選択プロセスは、与えられた出荷要求に対してキャリアによって送信されるレートをベースとして発生するとともに、シーケンス(行18−20)で実行される4つのタスクを具備する。GET_CARRIERSタスクは、出荷要求詳細をベースとして、それらの資格を検査した後にキャリアレジストリからキャリアの組を選択する。GET_RATEタスクは、各キャリアに対して見積要求(RFQ)を生成し、それによって、各キャリアは、RFQを評価するとともに、申し出をもって応答する。タスクHUMAN_TASKは、人間ユーザによる、キャリアの手動選択を実行する機能性を実施する。追加的に、BOOK_CARRIERタスクは、選択されたキャリアの予約を実行する。
セキュリティ目的は、セキュリティ意図の形式で、ビジネスプロセス仕様内で表現される。例えば、図9は、ビジネスプロセス内でセキュリティを指定するのに使用されるモデル900を図説する。定義フェーズは、(セキュリティ意図902のような)名称の付されたセキュリティ意図の意図オントロジ901を定義するとともに、実現化フェーズは、(パターン905のような)パターンのパターンレポジトリ904を実現する。セキュリティ意図902は、パターン905に関連付けられる。なぜなら、パターン905は、セキュリティ意図902を実施するからである。
セキュリティ意図は、ビジネスプロセス仕様内でセキュリティアノテーションを具備することによって実施される。例えば、プロセス906は、ビジネスプロセス仕様に添付されたセキュリティアノテーション907を使用することによって、実施されるセキュリティ意図の編成された設定を宣言しても良い。3つの実施例セキュリティアノテーションは、(実施セキュリティアノテーション910又は公開セキュリティアノテーション911のような)サービス相互作用セキュリティアノテーション909、割り当てセキュリティアノテーション912、又は制約セキュリティアノテーション914を具備する。
サービス相互作用アノテーション909は、例えばメッセージが送出されるときに、それらが暗号化されなければならないといった、Webサービスを使用するときの、外部の実施セキュリティポリシーを宣言するのに使用される。(サービス使用法意図表現を実施する)実施アノテーション910ステートメントは、複合アプリケーションによって使用されるWebサービスを伴う相互作用に対するポリシーを宣言する。例えば、<表6>の行5では、B2BConfidentiality及びB2BIntegrityが実施され、Simple Object Access Protocol(SOAP)メッセージが暗号化されるとともに署名されることを強制する。従って、(Webサービスを呼び出すGET_RATE又はBOOK_CARRIERタスクであっても良い)タスク915を実行するときに、SOAPメッセージは、伝送に先立ち、暗号化及び署名される。
(サービス使用法意図表現を公開する)公開セキュリティアノテーション911ステートメントは、複合アプリケーション又はローカルコンポーネントをWebサービスとして公開するときに使用されるセキュリティポリシーを宣言する。例えば、<表6>の行6では、複合アプリケーションは、公開されたサービスを起動する任意のサービス消費者とともに暗号化された通信を要求するWebサービスとして公開される。
割り当てセキュリティアノテーション912(assign <role assignment intention expression>)ステートメントは、与えられたタスクをどの職務が実行可能であるかを指定する。例えば、<表6>の行7では、ビジネスプロセス開発者は、タスクSELECT_CARRIERは、「管理者」の職務を所有するユーザによって実行されるべきであるという意図を宣言する。
制約セキュリティアノテーション914(constraint <execution order intention expression>)は、タスクが実行すれ又は実行される順序又はシーケンスを指定する。例えば、<表6>の行8上では、タスクBOOK_CARRIERは、タスクSELECT_CARRIERが完了された後に、即ち管理者がキャリアを選択した後に実行されるべきである。職務の分離、職務のバインド、職務の年功序列、又は他のような、追加の制約タイプは、追加又は代替されても良い。
本明細書で説明される強化されたフレームワークは、セキュリティポリシーを実施することへのパターン指向アプローチに従う。なぜなら、セキュリティ意図(又はセキュリティ目的)は、定義されたパターンと関連付けられて、かつ定義されたパターンによって実施されるからである。これによって、セキュリティ意図は、セキュリティ意図を説明するセキュリティアノテーションに関連付けられたパターンによって実施されても良い。複合アプリケーションを実行するときに、コンテナは、特定のセキュリティ意図に対する対応するパターンを発見するとともに、アプリケーションをセキュアするためのパターン実施に従う。下の<表7>は、セキュリティパターンの抜粋を示す。
全般的に、セキュリティパターンは、例えばどのように特定のセキュリティ問題が実施されなければならないかといった、意図の実施に対する技術的な詳細を提供するのに使用される。これらのパターンは、コンテナプロバイダによって、又はいくつかの他のパーティーによって、パターンライブラリ又はレポジトリの一部として書かれる包括的なセキュリティコンポーネントとして提供されても良く、それは、アプリケーションインフラとともに分散されても良い。もしアプリケーション固有のセキュリティ意図が未だ定義されていないならば、既成のパターン実施が拡張又は抽象化されても良い。セキュリティパターンに対して、ドメイン固有の言語を使用することによって、パターン実施は、モジュール式及び効果的になる。パターン内部の実施コードは、また、スクリプト言語内で書かれても良い。
<表6>内に示される抜粋されたパターン内で、セキュリティを実施するためにパターンが起動されうるいくつかのエントリポイントを具備するモジュールとしてパターンを捕らえても良い。異なるタイプのエントリポイントは、パターンによって実施される実施の特定の一部分をトリガするのに使用されても良い。例えば、BEFORESERVICESELECTIONは、サービスレジストリが要求される前に指定されたコードが実行されるエントリポイントである。
図10は、複合アプリケーションの開発のための設計及び実行環境を提供するセキュリティモニタ1001を図説するブロック図である。セキュリティポリシー実施は、セキュリティモニタ1001を使用して実行され、それは、複合アプリケーションコンテナ1000に統合される。コンテナは、ビジネススクリプト言語で複合アプリケーションを開発するために、統合された設計時間1003を提供する。
ビジネスプロセス仕様(又は「スクリプト」又は「説明」)は、保存されるとともに、実行エンジン1004によって実行可能であるフォーマットでビジネスプロセス仕様を配置するためにスクリプトパーサ1002によってパースされる。実行の間に、基礎のビジネスプロセスは、コンテナサービス1005を使用し、それは、サービスレジストリ1006、及びメッセージングサービス1007、又は他のサービス1009を具備しても良い。人間タスクを実行するときに、制御は、タスク一覧ユーザインターフェース(UI)1010に渡され、それを通して手動タスクが完了されうる。
スクリプトパーサ1002は、ビジネスプロセス仕様内でのセキュリティ意図の宣言をサポートするように拡張される。コンテナ1000のコンポーネントによって、セキュリティモニタ1000が、ビジネスプロセスの実行を観察するとともに、適時に干渉する又はそうでなければ相互作用することが可能になる。
セキュリティモニタ1001は、スクリプトパーサ1002又はメッセージングサービス1007のような、他のコンテナコンポーネントの状態及び/又は動作を調査及び変更しても良い。動作は、コンポーネントによって生成されるイベントにアクセスすることによって観察される。イベントの文脈を経由して状態がモニタれる。このように、セキュリティモニタ1001は、どのようなタイプのセキュリティが実施されるべきかを判定するために、ビジネスプロセス仕様及びセキュリティアノテーションにアクセスしても良い。同様に、セキュリティモニタ1001は、どのようにセキュリティアノテーション内で表現される意図が実施されるべきかを決定するために、パターンレポジトリをアクセスする。
セキュリティモニタ1001は、実行エンジン1004内に導入されているフックを通して、ビジネスプロセスの実行を観察する。そのようにして、セキュリティモニタ1001は、ビジネスプロセスの実行での全てのセキュリティ関連のイベントが、セキュリティモニタ1001によって中断されるような、全調停の概念に従う。イベントが実際に発生する前に、モニタはセキュリティを実施するために、実際の状態を検査及び更新する、又は中断されたイベントの効果を更新するための機会を具備する、選択されたパターンを起動する。このことを効果的に達成するために、実行エンジン1004は、イベントを生成する動作を認識するように構成される。さらに、セキュリティモニタ1001は、当該特定のビジネスプロセスのために使用されるセキュリティ意図の設定に対するアクセスを具備すべきである。
実行されたビジネスプロセスの各タスクは、特定のタイプの1つ又は複数のセキュリティ関連のイベントを生成する。タスクを実行する間、実行エンジン1007は、実行時イベントを生成し、そのタイプは、タスクに何が現在発生しているかに対応する。生成されたイベントが発効する前に、それは、保留されるとともに、セキュリティモニタ1001に供給され、次いでセキュリティモニタ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を実施するのに使用される。
プロセスモデル変更イベントが発生すると、バックエンドセキュリティポリシー及びローカルポリシーは、ビジネスプロセス仕様の承認要件をベースとして更新される。特に、承認セキュリティ意図は、ビジネスプロセス仕様から抽出されるとともに、対応するXACMLポリシー1117を生成するバックエンドポリシー生成部1102に渡される。バックエンドシステムは、その承認構成を管理するための別個の「承認ポリシー更新部」Webサービスインターフェースを提供する。
バックエンドポリシー生成部1102は、生成されたXACMLポリシー1117を、分離の承認ポリシー更新部Webサービスとしてバックエンドシステムによって提供されるバックエンドポリシー更新部1107に渡す。バックエンドポリシー更新部1104は、ポリシー1117を、次いでバックエンドポリシー決定ポイント1116に送信されるXACML要求に組み込む。ポリシー決定ポイント1116は、受信されたポリシー1117が存在するかどうかに依存して、XACML許可応答又は否定応答のいずれかを返却する。もしポリシーが存在しないならば、バックエンドポリシー更新部1104によってそれはポリシーデータベースに挿入される。一実施例の実施では、バックエンドポリシー更新部1104は、Java(登録商標)プログラム言語を使用して実施されるとともに、ポリシー決定ポイント1116は、Sun XACMLマークアップ言語を使用して実施される。
ローカルポリシー更新プロセスは、あるポリシーがローカルポリシーデータベース内で更新されることを除いて、バックエンドセキュリティポリシー更新プロセスと類似である。これらのローカルポリシーは、ユーザインターフェースレベルで承認を実施するのに使用されても良い。
セキュリティイベントの取り扱いを処理するセキュリティモニタの一部分は、コンテナの異なるコンポーネント内に具備される。例えば、設計時間は、プロセスモデル変更イベントを認識する及び取り扱うとともに、バックエンドセキュリティ構成1119をトリガする。サービスレジストリは、サービス選択イベントを取り扱うとともに、ポリシー交渉1120をトリガする。メッセージングサービスは、SOAPメッセージを送信するときに、前サービス呼び出しイベントを取り扱うとともに、結果を受信したときに、後サービス呼び出しイベントを取り扱う。サービス呼び出しイベントは、外部ポリシー実施1121をトリガすることによって取り扱われる。ローカルサービス及びデータがアクセスされるとき、及びユーザインターフェースが人間タスク実行イベントを処理するときにも、ローカルサービス実施1122がトリガされる。
図12は、<表6>内に示された、サービス相互作用セキュリティアノテーション「enforce B2BConfidentiality and B2BIntegrity」と、割り当てセキュリティアノテーション「assign roles[manager] to select_carrier」とを具備する、代表的なビジネスプロセスの実行時実施を図説する。前者のセキュリティアノテーションは、B2BWebサービス相互作用は、交換されるSOAPメッセージを暗号化及びデジタル署名することによってセキュアにされなければならないことを指示する。後者のアノテーションは、「管理者」の職務で振舞うユーザのみが、キャリアを選択することが許可されることを表す。
これらのセキュリティアノテーションを実施するために、実行エンジン1201は、ビジネスプロセスの各タスクを実行する間にイベントをトリガする。トリガされたイベントは、次いで適切なセキュリティ実施動作を扱うセキュリティモニタ1202に報告される。
セキュリティ実施の観点から、GET_CARRIERSタスク1204の実行は、出荷プロセス及びキャリアサービスの間の双方の同意があるキャリアの選択を具備する。これは、出荷ビジネスプロセスのセキュリティ意図「B2B機密性及びB2Bインテグリティ」が、各々の選択されたキャリアのセキュリティ機能を満足しなければならないことを意味する。
ポリシー交渉1205は、WS−Policy仕様によりポリシー一致部によって実行されても良い。特に、セキュリティアノテーション内に説明された高レベルなセキュリティ意図を反映するWS−Policyポリシーが生成される。キャリアポリシーは、起動されたサービスのセキュリティポリシーを実行時に変更することに対処するために、適宜ポリシーレジストリ1206内で更新される。
生成されたポリシーは、次いで、選択されたキャリア(例えばサービスプロバイダ)の他のWS−Policyポリシーとともに横断(intersected)される。ポリシーの横断は、WS−Policy内の交渉処理のコア機能である。横断は、出荷ビジネスプロセス及びサービスプロバイダセキュリティポリシーの両方の内に具備される互換ポリシー選択肢を特定する。横断は、複数のセキュリティポリシーを比較するとともに、WS−SecurityPolicyによって要求されるように全ての無効な選択肢が明確にされることが未だ必要でありうるポリシーを返却する可換(commutative)、結合的(associative)な機能である。
同意されたポリシーとして参照される資格を有するセキュリティポリシーは、全ての有効な又は資格を有する選択肢から選択される。ポリシー一致部は、利用可能なサービスを、サービスレジストリから要求するとともに、次いで、空でない同意されたポリシーが生成されているサービスを選択する。
WS−SecurityPolicy仕様に関して、空でないポリシーは、機密性主張及びインテグリティ主張を具備する。さらに、同意されたポリシーは、キャリアサービスの承認要件を指定するSAMLトークン主張を具備する。一実施例の実施では、ポリシー一致部は、Java(登録商標)プログラム言語を使用し、Apache(登録商標)WS−Commonsポリシーを使用して実施されても良い。
GET_RATEタスクの実行1207は、Webサービス起動を使用し、その各々は、対応する同意されたポリシーをベースとして規制されても良い。要求を外部Webサービス1209に送出する前に、セキュリティモニタは、サービス相互作用セキュリティアノテーション内に具備される各セキュリティ意図に対して対応するパターンを回収する。セキュリティモニタは、次いで、BEFORESERVICECALLエントリポイントを起動することによって、セキュリティアノテーションによって指定された順序でパターンを実行する。
パターンコードは、セキュリティ意図によって表されるセキュリティ目的を達成するために、メッセージを暗号化及び署名することによって、(SOAPメッセージング1210を介して通信される)実際のSOAPメッセージを、セキュアなメッセージに変換する。同意されたセキュリティポリシーに従い、同意されたポリシーによる必要とされるように、パターンコードはSAMLトークンも要求に追加する。さらに、セキュリティモニタは、WS−Security符号化されたSOAPメッセージのフォームで、要求をキャリアサービスプロバイダに送信する。
サービス要求を受信したときに、キャリアサービスプロバイダは、SOAPメッセージ上で暗号化動作を実行するとともに、SAMLトークンを検証する。キャリアサービスプロバイダのポリシー決定ポイントは、次いで、トークン情報をベースとしてサービス要求を評価する。もしサービス要求が確実に評価されたら、レートが計算されるとともに、レートは、SOAPメッセージ内に具備される。このSOAPメッセージは暗号化及び署名されるとともに、出荷要求者に返却される。起動されたサービスプロバイダの応答を受信した後に、セキュリティモニタは、AFTERSERVICECALLエントリポイントのパターン実施コードを実行する。この起動は、署名が検証されるとともに、内容が復号化される結果になる。
セキュリティ実施の観点から、SELECT_CARRIERタスク1214の実行によって、指定された職務割り当て意図をベースとして承認が実行される。SELECT_CARRIERタスク1214の実行は、また、ユーザインターフェース内のキャリアの動作の選択と、バックエンド1212内での選択結果の動作を持続することを含む。2つの動作の動作は、このような2フェーズのアクセス管理プロトコルを起動する。
ユーザインターフェース内のセキュリティ実施は、キャリア選択タスクのみが、「管理者」の職務で振舞うユーザによって出力されるとともに完了されることを保証する。選択結果を格納することは、バックエンドシステム内で特別な許可を要求しても良い。これらの許可は、既に上記で検討されたように更新されたことを前提として、バックエンドポリシー実施は、次いでバックエンドシステム1215に送信されるSOAPメッセージにSAML主張トークンを追加する。SAMLトークンは、ユーザ職務「管理者」を符号化する。SOAPメッセージ及びトークンを具備するサービス要求を受信すると、バックエンドシステム1215のトークン管理部は、トークンを検証するとともに、職務情報を抽出する。
最後に、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をビジネスプロセス仕様に追加する。
GET_CARRIERSタスク1311は、ビジネスプロセス仕様が実行されたときに起動され、ポリシー一致部1312に、複合アプリケーションポリシー1314及びパートナーサービスポリシー1315を回収させる。複合アプリケーションポリシー1314は、編成されたポリシー生成1316をベースとして回収されるとともに、パートナーサービスポリシー1315は、Webサービスプロバイダ1317を起動することをベースとして回収される。横断機能を使用して、ポリシー一致部1312は、SOAPメッセージング1322を使用してキャリアWebサービス1317を伴うメッセージング実施1321のためのGET_RATEタスク1320の実行の間と、バックエンド1326を伴う承認実施1325のためのSELECT_CARRIERタスク1324の実行の間とに使用される、同意されたポリシー1319を出力する。
図14は、他の一般的実施により、複合アプリケーションを実施する代表的なシステム1400の外観を図説する。簡潔には、システム1400は複合アプリケーション及び、Webサービスを提供するWebサービスプロバイダ1402を起動する装置1401を具備する。以下でさらに詳細に説明されるように、装置1401は、とりわけ、ストレージ媒体及びプロセッサを具備する。ストレージ媒体は、ビジネスプロセスのための仕様を格納し、仕様は、セキュリティ意図を定義するセキュリティアノテーションと、ビジネスプロセスの少なくとも一部分を定義するとともに外部サービスを呼び出すタスクとを具備する。プロセッサは、セキュリティアノテーションに関連付けられたセキュリティパターンを起動し、セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダを、起動されたセキュリティパターンをベースとして特定するとともに、特定されたサービスプロバイダを使用してビジネスプロセスを起動するように構成されている。
その代わりとして、装置1401は、セキュリティフレームワークにビジネスプロセスを適用するように構成され、セキュリティフレームワークは、複合アプリケーションのセキュリティ目的を特定する定義フェーズと、特定されたセキュリティ目的を達成するセキュリティパターンを実施する実現化フェーズと、セキュリティパターンをベースとする複合アプリケーション内で、特定されたセキュリティ目的をセキュリティアノテーションを使用して実施する宣言フェーズとを具備する。複合アプリケーション及び外部サービスの間の各相互作用に対して共通のポリシーを実施するとともに、セキュリティ目的をベースとして外部サービスによるローカルサービス及びオブジェクトへのアクセスを規制するために、企業は、複合アプリケーション及び外部サービスの間に共通のポリシーをセキュリティフレームワークを適用することをベースとして指定するように、外部ポリシー交渉を行うようにさらに構成される。
より詳細には、装置1401のハードウェア環境は、ユーザにテキスト及び画像を表示するためのディスプレイモニタ1408と、テキストデータ及びユーザコマンドを装置1401に入力するためのキーボード1409と、ディスプレイモニタ1408上で表示されるオブジェクトを指示、選択及び調節するマウス1410と、固定ディスクドライブ1411と、取り外し可能なディスクドライブ1412と、テープドライブ1414と、ハードコピー出力装置1415と、コンピュータネットワーク接続1416と、ビデオ及びオーディオ検知部1417とを具備する。
ディスプレイモニタ1408は、装置1401及び装置1401を動作するのに必要なオペレーティングシステムプログラムによって使用されるソフトウェアアプリケーションのためのディスプレイを具備する、グラフィクス、画像、及びテキストを表示する。ユーザは、コマンド及びデータを入力するとともに、コンピュータのオペレーティングシステムプログラム、Webブラウザ、及び/又は複合アプリケーションを動作及び制御するのに、キーボード1409を使用する。ユーザは、装置1401及び装置1401上で実行しているアプリケーションの相互作用及び制御の一部としてディスプレイモニタ1408上で表示されているグラフィクス及びテキストオブジェクトを選択及び調節するのに、マウス1410を使用する。マウス1410は、任意のタイプのポインティングデバイスであっても良く、かつジョイスティック、トラックボール、タッチパッド、又は他のポインティングデバイスであっても良い。
ビデオ及びオーディオ検知部1417によって、装置1401は、デジタル画像及び/又はオーディオを捕捉することが可能になるとともに、ビデオ及びオーディオ検知部1417は、スキャナ、デジタルカメラ、デジタルビデオカメラ、マイクロフォン又は他のデジタル入力装置であっても良い。複合アプリケーションプラットフォームを構成するのに使用されるソフトウェアは、固定ディスクドライブ1411のようなコンピュータ読み取り可能なメモリ媒体内にローカルに格納される。
さらなる実施では、固定ディスクドライブ1411は、独立ディスク冗長アレイ(「RAID」)のように、それ自体多くの物理的ドライブユニットを具備しても良く、又は、ディスクドライブファーム、又は別個のコンピューティングユニット内に物理的に位置されるディスクアレイであっても良い。そのようなコンピュータ読み取り可能なメモリ媒体によって、装置1401は、取り外し可能及び除去不能なメモリ媒体上に格納される、コンピュータ実行可能な処理段階、アプリケーションプログラムおよびそれに類するものにアクセスすることが可能になる。
無線又は有線接続コンピュータネットワーク接続1416は、モデム接続、イーサネット(登録商標)を具備するローカルエリアネットワーク(「LAN」)接続、デジタル加入者線(「DSL」)のようなブロードバンドワイドエリアネットワーク(「WAN」)接続、ケーブルハイスピードインターネット接続、ダイアルアップ接続、T−1線、T−3線、光ファイバ接続、又はサテライト接続であっても良い。ネットワーク1406は、1つ又は複数のLANネットワーク、企業又は政府WANネットワーク、インターネット、又は他のネットワークであっても良い。
コンピュータネットワーク接続1416は、有線接続又は無線コネクタを使用する。実施例の無線コネクタは、例えば、INFRARED DATA ASSOCIATION(「IrDA」)無線コネクタ、光学無線コネクタ、INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS(「IEEE−」)規格802.11、無線コネクタ、ブルートゥース(登録商標)無線コネクタ、ニアフィールド通信(「NFC」)コネクタ、直交周波数分割多重(「OFDM」)超広帯域(「UWB」)無線コネクタ、時間変調超広帯域(「TM−UWB」)無線コネクタ、又は他の無線コネクタを具備する。実施例の有線接続コネクタは、例えば、IEEE−1394ファームウェア(登録商標)コネクタ、ユニバーサルシリアルバス(「USB」)コネクタ、シリアルポートコネクタ、パラレルポートコネクタ、又は他の有線接続コネクタを具備する。
取り外し可能なディスクドライブ1412は、装置1401からデータをオフロードする、又は装置1401上にデータをアップロードするのに使用される取り外し可能なストレージ装置である。取り外し可能なディスクドライブ1412は、フロッピー(登録商標)ディスクドライブ、IOMEGA ZIPドライブ、コンパクトディスク(登録商標)読み出し専用メモリ(「CD−ROM」)ドライブ、CD−Recordableドライブ(「CD−R」)、CD−Rewritableドライブ(「CD−RW」)フラッシュメモリ、USBフラッシュドライブ、外部ハードディスクドライブ、サムドライブ、ペンドライブ、キードライブ、高密度デジタル多目的ディスク(「HD−DVD」)光ドライブ、Blu−ray(登録商標)光ドライブ、ホログラフィックデジタルデータストレージ(「HDD」)光ドライブ、又は、DVD−Recordable(「DVD−R」又は「DVD+R」)、DVD−Rewritable(「DVD−RW」又は「DVD+RW」)又はDVD−RAMのような種々の記録可能又は再度書き込みデジタル多目的ディスク(「“DVD”」)ドライブの任意の1つであっても良い。オペレーティングシステムプログラム、アプリケーション、及び種々のデータファイルは、ディスク上に格納され、それは、固定ディスクドライブ1411上、又は取り外し可能なディスクドライブ1412のための取り外し可能な媒体上に格納される。
テープドライブ1414は、装置1401からデータをオフロードする、又は装置1401上にデータをアップロードするために使用されるテープストレージ装置である。テープドライブ1414は、1/4インチカートリッジ(「QIC」)、4mmデジタルオーディオテープ(「DAT」)、8mmデジタルリニアテープ(「DLT」)ドライブ、又は他のタイプのテープであっても良い。
ハードコピー出力装置1415は、オペレーティングシステムプログラム及びアプリケーションのための出力機能を提供しても良い。ハードコピー出力装置1415は、プリンタ、又は、テキスト又は画像データ、又はテキスト又は画像データのグラフィカル表現を具備する具体的な出力オブジェクトを生成する任意の出力装置であっても良い。ハードコピー出力装置1415は、装置1401に直接に接続されているように図示されているが、それは必須ではない。例えば、ハードコピー出力装置1415は、有線接続又は無線ネットワークのようなネットワークインターフェースを経由して、装置1401に接続されても良い。
さらに、装置1401は図14内でデスクトップPCとして図説されているが、さらなる実施では、装置1401は、ラップトップ、ワークステーション、ミドルレンジコンピュータ、メインフレーム、組み込みシステム、電話、ハンドヘルド又はタブレットコンピュータ、PDA、又は他のタイプのコンピュータであっても良い。
図15は、図14に示された1つのコンピュータの内部アーキテクチャを図説するブロック図である。コンピューティング環境は、オペレーティングシステム又はアプリケーションを具備するコンピュータ命令が処理されるコンピュータ中央処理ユニット(「CPU」)1501を具備する。通信インターフェース、及びディスプレイモニタ1408上にグラフィクス、画像、及びテキストをレンダリングする処理機能を提供するディスプレイインターフェース1502、キーボード1409との通信インターフェースを提供するキーボードインターフェース1504、マウス1410又は同等なポインティングデバイスに通信インターフェースを提供するポインティングデバイスインターフェース1505、ビデオ及びオーディオ検知部1417に通信インターフェースを提供するデジタル入力インターフェース1506、ハードコピー出力装置1415に通信インターフェースを提供するハードコピー出力装置インターフェース1508、コンピュータCPU1501によるプロセスのために、揮発性メモリ装置内にコンピュータ命令及びデータが格納されるランダムアクセスメモリ(RAM)1510、基礎入出力(「I/O」)、起動、又はキーボード1409からのキーストロークの受信のような基礎システム機能のための不変な低レベルシステムコード又はデータが不揮発性メモリ装置内に格納される読み出し専用メモリ(「ROM」)1511。ストレージ1520、又は他の適切なタイプのメモリ(例えば、ランダムアクセスメモリ(「RAM」)、読み出し専用メモリ(「ROM」)、プログラム可能なROM(「PROM」)、消去可能なプログラム可能なROM(EPROM)、電気的消去可能ROM(「EEPROM)、磁器ディスク、光学ディスク、フロッピー(登録商標)ディスク、ハードディスク、取り外し可能なカートリッジ、フラッシュドライブ)。ここに、オペレーティングシステム1521と、(Webブラウザアプリケーション1523、複合アプリケーション1524、及び必要ならば他のアプリケーション1525を具備する)アプリケーションプログラム1522と、データファイル1526とを具備するファイルが格納される。さらに、コンピュータネットワーク接続1416上でネットワーク1406に通信インターフェースを提供するコンピュータネットワークインターフェース1516及び構成要素装置及びコンピュータCPU1501は、コンピュータバス1527上で互いに通信する。
簡潔には、コンピュータプログラム製品は、ディスク1520、機械読み取り可能なストレージ媒体内に具体的に体現される。コンピュータプログラム製品は、機械によって読み出されたときに、データ処理装置に、ビジネスプロセスのための仕様と、ビジネスプロセスの少なくとも一部分を定義するとともに外部サービスを呼び出すタスクと、にアクセスさせるように動作する命令を具備し、仕様は、セキュリティ意図を定義するセキュリティアノテーションを具備する。コンピュータプログラム製品は、データ処理装置に、セキュリティアノテーションに関連付けられたセキュリティパターンを起動させ、起動されたセキュリティパターンをベースとしてセキュリティ意図を満足する外部サービスに関連付けられるサービスプロバイダを特定させるとともに、特定されたサービスプロバイダを使用してビジネスプロセスを起動させるように動作する命令をまた具備する。
その代わりとして、ディスク1520内に具体的に実現されるコンピュータプログラム製品であり、コンピュータプログラム製品は、機械によって読み出されたときに、データ処理装置に、セキュリティフレームワークをビジネスプロセスに適用させるように動作する命令を具備し、セキュリティフレームワークは、複合アプリケーションのセキュリティ目的を特定する定義フェーズと、特定されたセキュリティ目的を達成するセキュリティパターンを実施する実現化フェーズと、セキュリティパターンをベースとする複合アプリケーション内部でセキュリティアノテーションを使用して、特定されたセキュリティ目的を実施する宣言フェーズとを具備する。コンピュータプログラム製品は、機械によって読み出されたときに、複合アプリケーション及び外部サービスの間の各相互作用に対する共通のポリシーを実施するとともに、セキュリティ目的をベースとして、外部サービスによるローカルサービス及びオブジェクトへのアクセスを規制するために、データ処理装置に、セキュリティフレームワークを適用することをベースとして、複合アプリケーション及び外部サービスの間に共通のポリシーを指定するように、外部ポリシー交渉を行わせるように動作する命令をまた具備する。
RAM1510は、オペレーティングシステムアプリケーションプログラム、及び装置ドライバのようなソフトウェアプログラムの実行の間に、高速なRAMストレージをコンピュータCPU1501に提供するために、コンピュータバス1527と接続される。より詳細には、コンピュータCPU1501は、ソフトウェアプログラムを実行するために、固定ディスクドライブ1411又は他の媒体からのコンピュータ実行可能なプロセス段階を、RAM1510の領域にロードする。データは、RAM1510内に格納され、データは、実行の間にコンピュータCPU1501によってアクセスされる。
図15でも示されるように、装置1401は、オペレーティングシステム1521のためのコンピュータ実行可能なコードと、ワードプロセッサ、スプレッドシート、プレゼンテーション、ゲーム、Web閲覧、JavaScript(登録商標)エンジン、又は他のアプリケーションのようなアプリケーションプログラム1522とを格納する。上記された実施を使用して複合アプリケーションを構成することが可能であるが、ダイナミックリンクライブラリ(「DLL」)又はAPPLE(登録商標)Safari(登録商標)Webブラウザ又はMICROSOFTインターネットエクスプローラ(登録商標)WebブラウザのようなインターネットWebブラウザのような他のアプリケーションプログラムへのプラグインとして、本開示による機能を実施することも可能である。
コンピュータCPU1501は、INTEL又はAMDプロセッサ、POWERPCプロセッサ、MIPS縮小命令セットコンピュータ(「RISC」プロセッサ、Sparc(登録商標)プロセッサ、ACORN−RISCマシン(「ARM(登録商標)」)アーキテクチャプロセッサ、HP ALPHA(登録商標)サーバプロセッサ、又はメインフレームのための商用コンピュータプロセッサを具備する、多くのハイパフォーマンスコンピュータプロセッサの1つである。追加の配置では、コンピュータCPU1501は、ハイパフォーマンスワークステーション及びサーバ内で見出される複数のCPU構成、又はメインフレーム内で見出される複数のスケーラブルな処理ユニットを具備する、複数の処理ユニットである。
オペレーティングシステム1521は、INTEL(登録商標)及びPOWER PC(登録商標)ベースのワークステーション及びサーバのためのAPPLE(登録商標)MAC OS X(登録商標)、MICROSOFT WINDOWS(登録商標)NT/WINDOWS(登録商標)、2000/WINDOWS(登録商標)、XP WORKSTATION(登録商標)、MICROSOFT(登録商標)WINDOWS VISTA(登録商標)/WINDOWS NT(登録商標)/WINDOWS 2000(登録商標)/WINDOWS XP Server(登録商標)、IBMワークステーション及びサーバのためのAIX、Sunワークステーション及びサーバのためのSunOS(登録商標)、INTEL CPUベースのワークステーション及びサーバのためのLINUX(登録商標)、HPワークステーション及びサーバのためのHP UX WORKLOAD MANAGER(登録商標)、SGIワークステーション及びサーバのためのIRIX(登録商標)、Digital Equipment CorporationコンピュータのVAX/VMS(登録商標)、HP ALPHASERVER(登録商標)ベースのコンピュータのためのOpenVMS(登録商標)を具備する、種々のUNIX(登録商標)準拠のオペレーティングシステム、モバイル装置のための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(「JavaME(登録商標)」)又はJava2(登録商標) Platform, MicroEdition(「J2ME(登録商標)」)、PYTHON(登録商標)、FLASH(登録商標) LITE、又はMICROSOFT .NET(登録商標) Compactであっても良い。
図14及び15は、複合アプリケーションの起動を発効するように構成されるプログラムコード、又はプログラム又はプロセス段階を実行するコンピューティングシステムの1つの可能な実施を図説する一方で、他のタイプのコンピュータも、同様に使用されうる。
形式的な事項について、用語「ユーザ」は、これらのプロセスと相互作用するエンティティを説明するのに一貫してに使用されており、そのような一般化は、また、複数の関する又は関連のない、生物又は自動化されたエンティティ、又は種々の異なる、重なり合う又は重なり合わない状態でこれらのプロセスと相互作用する生物を説明することを意図している。類似の調子で、用語「選択」は、人間による手動選択、非人間による自動的な選択、又はそれらの何らかの組み合わせを全て意味することを意図する。最後に、簡潔さのために、本明細書を通して、用語「JavaScript(登録商標)」は、SunMicrosystems JavaScript(登録商標)プログラム言語を参照することを意図するとともに、用語「XML」は、「eXtensible Markup Language」を参照することを意図することに留意する。
上記で説明された強化されたフレームワークは、それによってビジネスアプリケーションのセキュリティ要件が、ビジネスプロセス仕様レベルでセキュリティアノテーションとして表現されるビジネス駆動アプリケーションセキュリティアプローチに従うとともに、表現されたセキュリティ要件に合致する要求されたセキュリティインフラが自動的に生成されうる。
特に、このフレームワークは、直感的なドメイン固有のセキュリティ言語を使用することによって、複合プロセスレベルでセキュリティポリシーのアノテーションをベースとするパターンを提供し、セキュリティポリシー及びセキュリティ機能の間の一致生成を実行することによって、複合アプリケーション及びサービスプロバイダの間の自動的な調停を発生させるとともに、複合アプリケーション及びサービスプロバイダの間のセキュアな通信を管理するプロテクトされたセキュアなサービスプロキシを自動的に生成する。
このように、複合アプリケーションのためのスクリプトフレームワークは、よりビジネス指向の開発者が既存の又は新規の構築ブロック又はサービスから新規のアプリケーションを構築するのをより容易にする統合されたモデル環境及びスクリプト言語を提供する。このフレームワークは、1つの統合モデルのフォームで、複合アプリケーションの完全な仕様をサポートする、モデルベーススクリプトアプローチに従う。このモデルの一部は、内部のドメイン固有の言語として、全体的なデータモデル、サービス呼び出しの編成、イベント管理、ユーザインターフェース等を説明する。
このように、複合アプリケーションのエンドツーエンド開発は、ドメイン固有の言語のファミリーを提供することによってサポートされる。複合アプリケーションをサポートするそのような全ての関連付けられたロジック及び構成は、1人のビジネスプロセス開発者によって、たった1つのツールセットを使用して、可能な限りシームレスな仕方で、定義及び配備されても良い。同様に、ビジネスプロセス開発者は、異なるソフトウェア開発フェーズの間に度々使用される異なるツール及び抽象化が使用される必要がない開発及び実行環境を提供する。
多くの実施が説明されている。それにもかかわらず、種々の修正が、本開示の趣旨及び範囲を逸脱することなく構成されうるものと理解する。従って、他の実施は、特許請求の範囲の範囲内である。
図1は、連携された順序で実行される一連のタスク又は動作を具備する代表的なビジネスプロセスを図説する。 図2は、セキュリティアノテーションを使用して複合アプリケーションを実施するための代表的なシステムアーキテクチャを図説するブロック図である。 図3は、セキュリティアノテーションを使用して複合アプリケーションを実施する代表的なプロセスを図説する。 図4は、設計時のビジネスプロセス開発者によるビジネスプロセス仕様の準備を図示するスイム図である。 図5は、ビジネスプロセスの起動を図示するスイム図である。 図6は、複合アプリケーション開発フレームワークによって呼び出されうるサービスのカテゴリを図説するブロック図である。 図7は、強化されたフレームワークを使用した複合アプリケーションの開発の種々のフェーズを図示する。 図8は、強化されたフレームワークを使用した複合アプリケーションの開発の種々のフェーズを図示する。 図9は、ビジネスプロセス内でセキュリティを指定するのに使用されるモデルを図説する。 図10は、複合アプリケーションの開発のための設計及び実行環境を提供するセキュリティモニタを図説するブロック図である。 図11は、セキュリティサービスの間の代表的な関係を図説するブロック図である。 図12は、代表的なビジネスプロセスの実行時の実施を図説する。 図13は、代表的なビジネスプロセスの実行時の実施を図説する。 図14は、代表的システムの外観を図説する。 図15は、図14内で示された装置の内部アーキテクチャを図説するブロック図である。 図16は、セキュリティアノテーションを使用して複合アプリケーションを実施する代表的なプロセスを図説する。
符号の説明
101 専用開始タスク
102 タスク1
104 タスク2
105 タスク3
106 専用終了タスク

Claims (20)

  1. ビジネスプロセスのための仕様にアクセスする段階と、
    セキュリティアノテーションに関連付けられたセキュリティパターンを起動する段階と、
    起動されたセキュリティパターンをベースとして、セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダを特定する段階と、
    前記特定されたサービスプロバイダを使用して前記ビジネスプロセスを起動する段階と、
    を具備し、
    前記仕様は、前記セキュリティ意図を定義する前記セキュリティアノテーションと、少なくとも前記ビジネスプロセスの一部分を定義するとともに、前記外部サービスを呼び出すタスクと、を具備することを特徴とするコンピュータで実施される方法。
  2. 前記セキュリティアノテーションは、ポリシードメイン固有の言語を使用して表現されることを特徴とする請求項1に記載の方法。
  3. 前記セキュリティアノテーションをパースする段階をさらに具備することを特徴とする請求項1に記載の方法。
  4. 前記セキュリティアノテーションをベースとしてセキュリティポリシーデータベースを更新する段階をさらに具備することを特徴とする請求項1に記載の方法。
  5. サービスプロバイダを特定する段階は、
    サービスプロバイダの一覧のためのサービスアクセス情報にアクセスする段階と、
    前記サービスプロバイダの一覧内の前記サービスプロバイダの各々に対して、格納されたセキュリティ目的及び格納されたセキュリティ機能にアクセスする段階と、
    前記サービスプロバイダの各々に対する前記格納されたセキュリティ目的及び前記格納されたセキュリティ機能と、前記セキュリティ意図に関連付けられたセキュリティ目的及びセキュリティ機能とを比較する段階と、
    前記サービスプロバイダの各々に対する、前記格納されたセキュリティ目的と前記格納されたセキュリティ機能との比較をベースとして、選択されたサービスプロバイダを選択する段階と、
    前記特定されたサービスプロバイダとして、知識ベース内に選択された前記サービスプロバイダを格納する段階と、
    選択された前記サービスプロバイダを格納する段階をベースとして、サービスプロバイダ選択プロセスが完了したことを指示するイベントを生成する段階と、
    をさらに具備し、
    前記サービスアクセス情報はサービスエンドポイント及びサービス動作署名を具備することを特徴とする請求項1に記載の方法。
  6. 特定された前記サービスプロバイダを使用して前記ビジネスプロセスを起動する段階は、
    前記セキュリティ意図をベースとして、前記特定されたサービスプロバイダに対して、セキュアなサービスプロキシを生成する段階と、
    前記セキュアなサービスプロキシを使用して前記外部サービスを呼び出す段階と、
    をさらに具備し、
    前記セキュアなサービスプロキシは、前記外部サービスへのセキュアなサービス呼び出し動作を管理することを特徴とする請求項1に記載の方法。
  7. 前記セキュアなサービスプロキシを暗号化する段階と、
    暗号化された前記セキュアなサービスプロキシを格納する段階と、
    をさらに具備することを特徴とする請求項6に記載の方法。
  8. 格納された前記セキュアなサービスプロキシを回収する段階と、
    前記セキュアなサービスプロキシに関連付けられたセキュアなサービス呼び出し動作を起動する段階と、
    前記外部サービスから応答を受信する段階と、
    前記セキュアなサービスプロキシを使用して前記応答を処理する段階と、
    をさらに具備することを特徴とする請求項7に記載の方法。
  9. 前記サービスはバックエンド企業サービス、外部ビジネスツービジネスサービス、又はローカルサービスであることを特徴とする請求項1に記載の方法。
  10. 前記セキュリティアノテーションは、前記セキュリティ意図を表す変数を具備するとともに、前記セキュリティパターンは、前記変数を使用して起動されることを特徴とする請求項1に記載の前記方法。
  11. 前記セキュリティ意図は、外部Webサービスを使用するときに外部実施ポリシーを宣言し、起動されたビジネスプロセスをWebサービスとして公開するときにポリシーを宣言し、前記タスクが人間による相互作用を要求するときに、タスクベースの承認要件を宣言するとともに、前記タスクが実行される順序を指定するタスクベースの承認制約を宣言することを特徴とする請求項1に記載の方法。
  12. 前記セキュリティ意図は、前記タスクを実行することが可能である職務を指定することを特徴とする請求項1に記載の方法。
  13. 前記セキュリティ意図は、前記タスクが実行される順序を指定することを特徴とする請求項1に記載の方法。
  14. 前記ビジネスプロセスを起動する段階は、前記タスクを実行する段階をさらに具備することを特徴とする請求項1に記載の方法。
  15. 前記セキュリティパターンは、
    前記サービスプロバイダが特定される前に、前記セキュリティ意図の実施をトリガするのに使用される第1エントリポイントと、
    前記タスクが実行される前に、前記セキュリティ意図の実施をトリガするのに使用される第2エントリポイントと、
    前記タスクが実行された後に、前記セキュリティ意図の実施をトリガするのに使用される第3エントリポイントと、
    を具備することを特徴とする請求項14に記載の方法。
  16. 前記ビジネスプロセスを起動する段階は、
    もし前記サービスプロバイダが未だ特定されていないならば、前記第1エントリポイントを選択する段階と、
    もし前記タスクが未だ実行されていないならば、前記第2エントリポイントを選択する段階と、
    もし前記タスクが実行されたならば、前記第3エントリポイントを選択する段階と、
    をさらに具備することを特徴とする請求項15に記載の方法。
  17. 前記サービスプロバイダを特定する段階は、
    サービス要求を生成する段階と、
    前記セキュリティパターンをベースとして前記サービス要求をセキュリティ強化する段階と、
    をさらに具備することを特徴とする請求項1に記載の方法。
  18. 前記セキュリティ意図は、メッセージ機密性、暗号化セキュリティ意図、インテグリティ意図、職務割り当て意図、又はタスク実行順序の意図を定義することを特徴とする請求項1に記載の方法。
  19. 機械読み取り可能な媒体内に具体的に実現されるコンピュータプログラム製品であり、機械によって読み出されたときに、データ処理装置に、
    ビジネスプロセスのための仕様にアクセスさせ、セキュリティアノテーションに関連付けられたセキュリティパターンを起動させ、起動された前記セキュリティパターンをベースとして、前記セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダを特定させるとともに、特定された前記サービスプロバイダを使用して前記ビジネスプロセスを起動させるように動作する命令を具備し、
    前記仕様は、セキュリティ意図を定義する前記セキュリティアノテーションと、前記ビジネスプロセスの少なくとも一部分を定義するとともに、前記外部サービスを呼び出すタスクと、を具備することを特徴とするコンピュータプログラム製品。
  20. ビジネスプロセスのための仕様を格納するストレージ媒体と、
    セキュリティアノテーションに関連付けられたセキュリティパターンを起動し、前記起動されたセキュリティパターンをベースとして、セキュリティ意図を満足する外部サービスに関連付けられたサービスプロバイダを特定するとともに、特定された前記サービスプロバイダを使用して前記ビジネスプロセスを起動するように構成されたプロセッサと、
    を具備し、
    前記仕様は、前記セキュリティ意図を定義する前記セキュリティアノテーションと、前記ビジネスプロセスの少なくとも一部分を定義するとともに、前記外部サービスを呼び出すタスクと、を具備することを特徴とする装置。
JP2008265745A 2007-10-15 2008-10-14 セキュリティアノテーションを使用した複合アプリケーション Expired - Fee Related JP5166196B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/872,330 US20090099860A1 (en) 2007-10-15 2007-10-15 Composite Application Using Security Annotations
US11/872,330 2007-10-15

Publications (2)

Publication Number Publication Date
JP2009151755A true JP2009151755A (ja) 2009-07-09
JP5166196B2 JP5166196B2 (ja) 2013-03-21

Family

ID=40343684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008265745A Expired - Fee Related JP5166196B2 (ja) 2007-10-15 2008-10-14 セキュリティアノテーションを使用した複合アプリケーション

Country Status (4)

Country Link
US (1) US20090099860A1 (ja)
EP (1) EP2051179A1 (ja)
JP (1) JP5166196B2 (ja)
CN (1) CN101415001B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013522773A (ja) * 2010-03-18 2013-06-13 マイクロソフト コーポレーション 複数のウェブサービスにわたって認証を実施するプラグ可能なトークンプロバイダモデル
JP2020514907A (ja) * 2017-03-13 2020-05-21 オラクル・フィナンシャル・サービシーズ・ソフトウェア・リミテッドOracle Financial Services Software Limited プロセス定義およびプロセス実行トラッキングのためのユーザインターフェイスおよびランタイム環境
KR102419219B1 (ko) * 2021-12-21 2022-07-08 주식회사 인피닉 어노테이션 작업을 위한 보안 관리 시스템, 보안 관리 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101048898B (zh) * 2004-10-29 2012-02-01 麦德托尼克公司 锂离子电池及医疗装置
US20090077118A1 (en) * 2007-03-16 2009-03-19 Novell, Inc. Information card federation point tracking and management
US20090077627A1 (en) * 2007-03-16 2009-03-19 Novell, Inc. Information card federation point tracking and management
US8151324B2 (en) 2007-03-16 2012-04-03 Lloyd Leon Burch Remotable information cards
US20090178112A1 (en) * 2007-03-16 2009-07-09 Novell, Inc. Level of service descriptors
US20090204622A1 (en) * 2008-02-11 2009-08-13 Novell, Inc. Visual and non-visual cues for conveying state of information cards, electronic wallets, and keyrings
US20090249430A1 (en) * 2008-03-25 2009-10-01 Novell, Inc. Claim category handling
US8087060B2 (en) * 2007-03-16 2011-12-27 James Mark Norman Chaining information card selectors
US20090228885A1 (en) * 2008-03-07 2009-09-10 Novell, Inc. System and method for using workflows with information cards
EP2235912A4 (en) * 2008-01-24 2016-05-04 Ericsson Telefon Ab L M METHOD AND DEVICE FOR CONTROLLING GLOBAL WEB SERVICES
US20090199284A1 (en) * 2008-02-06 2009-08-06 Novell, Inc. Methods for setting and changing the user credential in information cards
US20090205035A1 (en) * 2008-02-11 2009-08-13 Novell, Inc. Info card selector reception of identity provider based data pertaining to info cards
US20090204542A1 (en) * 2008-02-11 2009-08-13 Novell, Inc. Privately sharing relying party reputation with information card selectors
US8079069B2 (en) 2008-03-24 2011-12-13 Oracle International Corporation Cardspace history validator
US20090272797A1 (en) * 2008-04-30 2009-11-05 Novell, Inc. A Delaware Corporation Dynamic information card rendering
US20100011409A1 (en) * 2008-07-09 2010-01-14 Novell, Inc. Non-interactive information card token generation
US20100031328A1 (en) * 2008-07-31 2010-02-04 Novell, Inc. Site-specific credential generation using information cards
US8561172B2 (en) * 2008-08-29 2013-10-15 Novell Intellectual Property Holdings, Inc. System and method for virtual information cards
US20100095372A1 (en) * 2008-10-09 2010-04-15 Novell, Inc. Trusted relying party proxy for information card tokens
US8083135B2 (en) * 2009-01-12 2011-12-27 Novell, Inc. Information card overlay
US8632003B2 (en) * 2009-01-27 2014-01-21 Novell, Inc. Multiple persona information cards
US20100251353A1 (en) * 2009-03-25 2010-09-30 Novell, Inc. User-authorized information card delegation
US8495703B2 (en) * 2009-06-18 2013-07-23 Oracle International Corporation Security policy verification system
US8732094B2 (en) * 2010-07-30 2014-05-20 Hewlett-Packard Development Company, L.P. Enforcement of security requirements for a business model
US8068011B1 (en) 2010-08-27 2011-11-29 Q Street, LLC System and method for interactive user-directed interfacing between handheld devices and RFID media
US8650250B2 (en) 2010-11-24 2014-02-11 Oracle International Corporation Identifying compatible web service policies
US9021055B2 (en) 2010-11-24 2015-04-28 Oracle International Corporation Nonconforming web service policy functions
US8726349B2 (en) * 2010-11-24 2014-05-13 Oracle International Corporation Optimizing interactions between co-located processes
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
US8635682B2 (en) 2010-11-24 2014-01-21 Oracle International Corporation Propagating security identity information to components of a composite application
US8661500B2 (en) * 2011-05-20 2014-02-25 Nokia Corporation Method and apparatus for providing end-to-end privacy for distributed computations
US8560819B2 (en) 2011-05-31 2013-10-15 Oracle International Corporation Software execution using multiple initialization modes
US8914843B2 (en) 2011-09-30 2014-12-16 Oracle International Corporation Conflict resolution when identical policies are attached to a single policy subject
US9864873B2 (en) 2013-03-15 2018-01-09 Trustarc Inc Managing data handling policies
US9565211B2 (en) 2013-03-15 2017-02-07 True Ultimate Standards Everywhere, Inc. Managing exchanges of sensitive data
IN2013MU02095A (ja) * 2013-06-20 2015-06-05 Tata Consultancy Services Ltd
US9195833B2 (en) * 2013-11-19 2015-11-24 Veracode, Inc. System and method for implementing application policies among development environments
EP3016016A1 (en) * 2014-10-28 2016-05-04 BRITISH TELECOMMUNICATIONS public limited company Automated deployment and securitization of model-based composite applications
JP6508688B2 (ja) 2014-10-31 2019-05-08 コンヴィーダ ワイヤレス, エルエルシー エンドツーエンドサービス層認証
KR102001753B1 (ko) 2015-03-16 2019-10-01 콘비다 와이어리스, 엘엘씨 공개 키잉 메커니즘들을 사용한 서비스 계층에서의 종단간 인증
US11423343B2 (en) 2015-03-25 2022-08-23 Kyndryl, Inc. Dynamic construction of cloud services
US10754644B2 (en) 2015-08-04 2020-08-25 International Business Machines Corporation Annotations in software development
CN106603594B (zh) * 2015-10-15 2019-07-09 中国电信股份有限公司 一种分布式服务的管理方法和系统
WO2018033350A1 (en) 2016-08-16 2018-02-22 British Telecommunications Public Limited Company Reconfigured virtual machine to mitigate attack
GB2554980B (en) 2016-08-16 2019-02-13 British Telecomm Mitigating security attacks in virtualised computing environments
WO2018045139A1 (en) * 2016-08-31 2018-03-08 Genesys Telecommunications Laboratories, Inc. System and method for providing secure access to electronic records
US20180060871A1 (en) * 2016-08-31 2018-03-01 Genesys Telecommunications Laboratories, Inc. System and method for providing secure access to electronic records
US10356103B2 (en) * 2016-08-31 2019-07-16 Genesys Telecommunications Laboratories, Inc. Authentication system and method based on authentication annotations
US10404749B2 (en) 2016-10-31 2019-09-03 Sap Se Enforcing application security requirement rules using security annotations
US10853521B2 (en) * 2018-07-17 2020-12-01 Cisco Technology, Inc. Application security policy management agent
EP4145318A1 (en) * 2021-09-06 2023-03-08 AO Kaspersky Lab System and method for monitoring delivery of messages passed between processes from different operating systems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004287912A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd 処理サービス提供装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9912494D0 (en) * 1999-05-28 1999-07-28 Hewlett Packard Co Configuring computer systems
US8776230B1 (en) * 2001-10-02 2014-07-08 Mcafee, Inc. Master security policy server
JP2003140890A (ja) * 2001-10-31 2003-05-16 Asgent Inc 電子機器設定情報作成方法及び装置並びにセキュリティポリシー作成方法及び関連装置
US7350226B2 (en) * 2001-12-13 2008-03-25 Bea Systems, Inc. System and method for analyzing security policies in a distributed computer network
US6807636B2 (en) * 2002-02-13 2004-10-19 Hitachi Computer Products (America), Inc. Methods and apparatus for facilitating security in a 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
IL149583A0 (en) * 2002-05-09 2003-07-06 Kavado Israel Ltd Method for automatic setting and updating of a security policy
US20060069717A1 (en) * 2003-08-27 2006-03-30 Ascential Software Corporation Security service for a services oriented architecture in a data integration platform
CN1314221C (zh) * 2004-02-01 2007-05-02 中兴通讯股份有限公司 一种安全代理方法
US8271541B2 (en) * 2004-03-31 2012-09-18 Fusionops Corporation Method and apparatus for developing composite applications
US7774485B2 (en) * 2004-05-21 2010-08-10 Bea Systems, Inc. Dynamic service composition and orchestration
US20060136555A1 (en) * 2004-05-21 2006-06-22 Bea Systems, Inc. Secure service oriented architecture
US20060031354A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture
US20060184381A1 (en) * 2005-01-27 2006-08-17 Servicemagic, Inc. Computer-implemented method and system for matching a consumer to a home service provider
US20060184490A1 (en) * 2005-02-11 2006-08-17 Itamar Heim System and method for enterprise policy management
US7478419B2 (en) * 2005-03-09 2009-01-13 Sun Microsystems, Inc. Automated policy constraint matching for computing resources
EP1720123A1 (en) * 2005-05-03 2006-11-08 Sap Ag Method and system for automated generation of access control policies in cross-organizational workflows
US8184641B2 (en) * 2005-07-20 2012-05-22 Verizon Business Global Llc Method and system for providing secure communications between proxy servers in support of interdomain traversal
US8185916B2 (en) * 2007-06-28 2012-05-22 Oracle International Corporation System and method for integrating a business process management system with an enterprise service bus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004287912A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd 処理サービス提供装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013522773A (ja) * 2010-03-18 2013-06-13 マイクロソフト コーポレーション 複数のウェブサービスにわたって認証を実施するプラグ可能なトークンプロバイダモデル
JP2020514907A (ja) * 2017-03-13 2020-05-21 オラクル・フィナンシャル・サービシーズ・ソフトウェア・リミテッドOracle Financial Services Software Limited プロセス定義およびプロセス実行トラッキングのためのユーザインターフェイスおよびランタイム環境
JP7033609B2 (ja) 2017-03-13 2022-03-10 オラクル・フィナンシャル・サービシーズ・ソフトウェア・リミテッド プロセス定義およびプロセス実行トラッキングのためのユーザインターフェイスおよびランタイム環境
KR102419219B1 (ko) * 2021-12-21 2022-07-08 주식회사 인피닉 어노테이션 작업을 위한 보안 관리 시스템, 보안 관리 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Also Published As

Publication number Publication date
CN101415001B (zh) 2013-07-03
CN101415001A (zh) 2009-04-22
JP5166196B2 (ja) 2013-03-21
EP2051179A1 (en) 2009-04-22
US20090099860A1 (en) 2009-04-16

Similar Documents

Publication Publication Date Title
JP5166196B2 (ja) セキュリティアノテーションを使用した複合アプリケーション
JP5139220B2 (ja) コンポジットアプリケーションフィールドのためのセキュリティ強化フレームワーク
US9405529B2 (en) Designing and cross-configuring software
Nadkarni et al. Preventing accidental data disclosure in modern operating systems
US9779252B2 (en) Crowd-sourced security analysis
Armando et al. The AVANTSSAR platform for the automated validation of trust and security of service-oriented architectures
US20180027022A1 (en) Application-based security rights in cloud environments
US7340520B1 (en) System and method to facilitate manageable and agile deployment of services in accordance with various topologies
US9544327B1 (en) Prioritizing security findings in a SAST tool based on historical security analysis
US20090006167A1 (en) System and Method for Integrating a Business Process Management System with an Enterprise Service Bus
US8996447B2 (en) Decision service manager
Lang Openpmf scaas: Authorization as a service for cloud & soa applications
US8832643B2 (en) Composition of non-functional concerns
EP2667301B1 (en) Decision service manager
US20180210708A1 (en) Discovery and modeling of deployment actions for multiple deployment engine providers
Sorgalla et al. Applying model-driven engineering to stimulate the adoption of devops processes in small and medium-sized development organizations: the case for microservice architecture
Nagaratnam et al. Business-driven application security: From modeling to managing secure applications
Saatkamp et al. An Approach to Determine & Apply Solutions to Solve Detected Problems in Restructured Deployment Models using First-order Logic.
US9917922B2 (en) Extensibility bundles for a cloud and devices suite
da Costa Cordeiro et al. A template-based solution to support knowledge reuse in IT change design
Ramaratnam An analysis of service oriented architectures
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
Bakshi et al. Cloud Reference Frameworks
Schillinger Semantic service oriented architectures in research and practice
Aadamsoo Web Based Project Management System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120612

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: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121220

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

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5166196

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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