JP2009534773A - プロセス符号化 - Google Patents
プロセス符号化 Download PDFInfo
- Publication number
- JP2009534773A JP2009534773A JP2009507681A JP2009507681A JP2009534773A JP 2009534773 A JP2009534773 A JP 2009534773A JP 2009507681 A JP2009507681 A JP 2009507681A JP 2009507681 A JP2009507681 A JP 2009507681A JP 2009534773 A JP2009534773 A JP 2009534773A
- Authority
- JP
- Japan
- Prior art keywords
- package
- information
- workflow
- readable media
- artifact
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
説明されるのは、プロセスの符号化を含むポータブルなパッケージである。これらのパッケージは、ポータブルであり、技術スタックとは異なる。これらのパッケージは、技術スタックを構成するための宣言コードの形態であることが可能であり、技術スタックが、これらのパッケージを実行して、パッケージによって符号化されたプロセスを自動化することを可能にするように技術スタックにプラグインされることが可能である。やはり説明されるのが、パッケージ、パッケージを実行するための技術スタック、パッケージをロードし(「プラグインし」)、場合により、パッケージの実行を制御するためのアプリケーションを作成するための方法である。
Description
いくつかの異なるエンティティが、IT(情報技術)管理プロセスに関する案内書を編集している。例えば、IBMは、Redbookシリーズを発行する。英国のITIL(IT Information Library)は、ITサービスを管理するための、ベンダ独立の好ましい慣行について説明する。本件特許出願人は、ITILガイドラインを特定のソフトウェア製品に適用するMOF(Microsoft Operations Framework)を提供する。いくつかの組織は、しばしば人間のアクティビティと自動化をともに含む、独自のカスタムのIT慣行およびIT手続きを有する可能性がある。一般に、ITシステムおよびITサービスを管理するための多くの異なる好ましい慣行が存在する。これらの慣行のいくつかは、例えば、ITシステムの変更を管理すること、ITインシデントを報告し、ITインシデントに対応することなどと関係する。
多くのIT部門は、形式的なIT管理プロセスを実施に移すことに問題を抱えてきた。一部のIT部門は、ITILプロセスを実施することに数年を費やす可能性がある。プロセス自動化をサポートするのに必要なインフラストラクチャの欠如などの、技術的な問題がある可能性がある。CMDB(構成管理データベース)が、必要とされる可能性があり、あるいは新たなアプリケーションが、ユーザーのコンピュータ上で展開される必要がある可能性がある。また、新たなプロセスについて学習すること、スタッフを再教育すること、情報を普及させること、実施の詳細を決定することなどの人的問題が存在する可能性もある。一般に、これらの種類の問題は、IT業界では、好ましい、または形式的なIT管理慣行を採用する、または自動化することが、なぜ遅れているかを部分的に説明する可能性がある。
もちろん、これらの同じ問題に、多くの異なる会社または組織のIT部門が直面する可能性がある。作業の相当な重複が存在する可能性がある。例えば、異なる2つのIT部門が、それぞれのITシステム上で同一のビジネスプロセスまたはIT管理プロセスを実施することを望むシナリオを考慮されたい。これらの部門は、獲得プロセス(例えば、経理の詳細、承認系統、通信など)について学び、理解すること、その新たなプロセスに対応するように、これらの部門の技術を構成すること、そのプロセスが、どのように実施されるかについての知識をITユーザーおよびIT管理者に提供することなどのほぼ同一のステップを行わなければならない。現在、IT部門が、好ましいIT管理プロセスを効率的に、または自動的に実施する方法は、全く存在しない。さらに、ITプロセスまたはビジネスプロセスの符号化を、そのようなプロセスを自動化するための基礎をなす技術とは切り離された仕方で人々が共有する方法は、全く存在しない。
以下の概要は、単に、後段の詳細な説明において説明されるいくつかの概念について概説するために含められる。この概要は、包括的ではなく、添付の特許請求の範囲によって示される保護可能な主題の範囲を線引きすることは意図していない。
説明されるのは、プロセスの符号化を含むポータブルなパッケージである。これらのパッケージは、ポータブルであり、技術スタックとは異なる。これらのパッケージは、技術スタックを構成するための宣言コードの形態であることが可能であり、技術スタックにプラグインされて、技術スタックが、これらのパッケージを実行して、これらのパッケージによって符号化されたプロセスを自動化することを可能にすることが可能である。やはり説明されるのが、パッケージ、パッケージを実行するための技術スタック、パッケージをロードする(「プラグインする」)ため、さらに、場合により、パッケージの実行を制御するためのアプリケーションを作成するための方法である。
付随する特徴の多くは、添付の図面と併せて考慮される以下の詳細な説明を参照することによって、より容易に理解されよう。
添付の図面における同様の部分を示すのに、同様の符号が使用される。
(概略)
以下の説明は、通常のITシステムの説明、およびこのITシステム上で利用可能なソフトウェアサービスまたはソフトウェア構成要素のスタックの簡単な説明から始まる。そのような説明の後に、プロセスパッケージ、ならびに、どのようにプロセスパッケージが、技術スタック上で「実行される」、つまり、ITインフラストラクチャ上のビジネスプロセスまたはITプロセスを自動化するのに使用されることが可能であるかの説明が続く。その後、ソフトウェアサービススタックの構成要素、およびこれらの構成要素の特性が、より詳細に説明される。その後、パッケージの他の態様が、説明される。
以下の説明は、通常のITシステムの説明、およびこのITシステム上で利用可能なソフトウェアサービスまたはソフトウェア構成要素のスタックの簡単な説明から始まる。そのような説明の後に、プロセスパッケージ、ならびに、どのようにプロセスパッケージが、技術スタック上で「実行される」、つまり、ITインフラストラクチャ上のビジネスプロセスまたはITプロセスを自動化するのに使用されることが可能であるかの説明が続く。その後、ソフトウェアサービススタックの構成要素、およびこれらの構成要素の特性が、より詳細に説明される。その後、パッケージの他の態様が、説明される。
(ITシステムまたはITインフラストラクチャ)
IT(情報技術)という用語は、特に大きい組織における技術に広くかかわり、特に、情報を管理し、処理する態様にかかわる。ITには、情報を格納し、処理し、伝送し、取得するコンピュータおよびコンピュータソフトウェアの使用がかかわる。組織のITインフラストラクチャまたはITシステムとは、その組織に提供される資産、主にITサービス、ならびにその組織にITサービスを提供するのに使用されるハードウェアおよびソフトウェア(アーティファクト)を指す。通常、大きいITインフラストラクチャは、専門のスタッフまたは専門の部門によって管理される。
IT(情報技術)という用語は、特に大きい組織における技術に広くかかわり、特に、情報を管理し、処理する態様にかかわる。ITには、情報を格納し、処理し、伝送し、取得するコンピュータおよびコンピュータソフトウェアの使用がかかわる。組織のITインフラストラクチャまたはITシステムとは、その組織に提供される資産、主にITサービス、ならびにその組織にITサービスを提供するのに使用されるハードウェアおよびソフトウェア(アーティファクト)を指す。通常、大きいITインフラストラクチャは、専門のスタッフまたは専門の部門によって管理される。
図1は、例示的なITシステム100を示す。ITシステム100は、いくつかのハードウェアアーティファクトおよびソフトウェアアーティファクト102を有する。ハードウェアアーティファクトの例は、サーバ、ルータ、ブリッジ、バックボーン、ケーブルなどのネットワーク機器、ワークステーション、移動デバイス、PC、プリンタなどの周辺デバイス、場合により、電話機器、および列挙するには多過ぎるその他である。ソフトウェアアーティファクトの例は、データベースサーバ、デスクトップアプリケーション、ウェブサーバ、ウェブポータル、ファイルサーバ、電子メールサーバ、IT管理ソフトウェア、生産性スイート、経理パッケージ、ならびにIT部門によってしばしば、展開され、管理されるほとんど限りのない様々な他のソフトウェアサービスである。
また、図1は、例示的な技術スタック104も示す。技術スタックは、緩くリンクされ、互いに協働して、または通信して、全体的なITサービスを提供し、全体的なITサービスを管理して、維持することができるITインフラストラクチャにおけるソフトウェアサービスまたはソフトウェア製品と考えられることが可能である。つまり、技術スタックは、ITインフラストラクチャにおけるユーティリティおよび機能を提供する。図1に示される例示的な技術スタック104において、技術スタック104は、ITインフラストラクチャ100全体にわたって分散された、いくつかの構成要素106〜116を有する。重要度の順ではなく、これらの構成要素が、後段で全体的に説明され、さらに後段で、より詳細に説明される(「技術スタック」という題名のセクションを参照)。
例示的な技術スタック104は、組織の従業員が、エンタープライズ情報およびエンタープライズアプリケーションにアクセスする開始点、つまり、ゲートウェイの役割を通常、果たすセルフサービスポータル106を有する。ウェブポータルとして通常、実施されるものの、セルフサービスポータル106は、他の形態をとることも可能である。セルフサービスポータル106は、様々なソフトウェアベンダのいずれかからの製品を使用して実現されることが可能である。例えば、本件特許出願人のSharePoint Portal Serverの現在のバージョン、または将来のバージョンが、コアポータル機能のために使用されることが可能である。SQLサーバなどの他の製品が、報告サービスなどを供給するのに使用されることが可能である。IBM社のWebSphere Portalが、セルフサービスポータル106のために使用されることが可能な製品の別の例である。
また、技術スタック104は、フォームフレームワーク108も含む。フォームフレームワーク108は、ITシステム100全体にわたって広く利用可能な何らかのフレームワークである。名前が暗示するとおり、フォームフレームワーク108は、フォーム様の仕方で、アーティファクト、タスクなどの何らかの作業アイテムについての情報を記入することを目的とする。全く基本的なフォームは、通常、フィールドを有し、場合により、サイズ設定されて、型付けされ、フォームフィールドを格納するため、またはバックファイルするための何らかのバックエンドデータソースに結合されることが可能である。また、フォームフレームワーク108におけるフォームは、対話型であることも可能であり、つまり、フィールドフォームを単に埋めることに留まらないことを含むことが可能である。また、データ完全性の軽量ロジックまたは軽量規則が、フォームに存在することも可能である。多種多様な既製の製品が、フォームフレームワーク108を実施するのに使用されることが可能である。例えば、本件特許出願人からのOffice 12、またはIBM社のWorkplace Formsその他が、使用されることが可能である。好ましくは、フォームフレームワーク108は、フォームが、様々な仕方で表示されることを可能にし、例えば、フォームは、直接ユーザーインタフェース(例えば、SharePointフォームまたはInfoPathフォーム)であることが可能であり、あるいはフォームは、Microsoft Outlookなどのアプリケーションにおいて、ワードプロセッサにおいてなど、ポップアップされることが可能である。フォームフレームワーク108を介してユーザーによって入力されたデータは、場合により、1つまたは複数のデータベースの中に、または専用アーティファクトストア110(後段で説明される)の中で、通常、永続させられる。フォームフレームワーク108におけるフォームは、技術スタック104における他の構成要素によって駆動されることが可能であり、フォームフレームワーク108を介して入力されたデータは、技術スタック104における他の構成要素に影響を与えることが可能である。
また、技術スタック104は、知識ソース、知識リポジトリ、または知識フレームワーク112を有することも可能である。知識フレームワーク112は、知識を管理するのに使用されるサービスまたはアプリケーションセットである。知識フレームワーク112は、項目および文書を格納し、索引付けを行うこと、知識を探索すること、関連する文書を相互参照すること、またはリンクすること、メタデータタグ付け、カタログ作成などの機能を提供することが可能である。知識フレームワーク112は、組織の知識を継続的にキャプチャし、そのような知識に継続的にアクセスすることを可能にするシステムと考えられることが可能である。好ましくは、ユーザーは、構造化された情報であることも、構造化されていない情報であることも可能な格納された知識を照会し、ブラウズすることができる。知識のアドレス指定可能な部分が、望ましい可能性がある(例えば、文書のURI)。トラブルシューティング案内書、項目、白書、ユーザーマニュアル、手続き文書などが、知識フレーム112の中で見つかることが可能な、いくつかのタイプの知識の例である。知識フレームワーク112のために使用されることが可能な製品の例には、本件特許出願人のOffice 12、Factiva、Interwoven社のWorksiteスイート、その他が含まれる。
また、ワークフローエンジンまたはワークフローフレームワーク114も、ITシステム100の技術スタック104の一部である。ワークフローフレームワーク114は、自動化されたワークフローの作成、実行、および監視を可能にする。ほとんどのワークフロー製品に関して、ワークフローは、様々な別々のアクティビティの間の、場合により、条件付きのフローから成る。アクティビティの過程は、条件付きイベントに依存することが可能である。ワークフローは、自動化を扱う単純なインシデントから、ユーザーによって定義された長期継続の複雑なワークフローにまで及ぶことが可能である。ワークフローは、通常、何がワークフローの或る特定のインスタンスをトリガするか、作業がどのように流れるか、およびワークフローを実行するアクティビティの何らかの記述である。後段で詳細に説明されるとおり、ワークフローは、別の接続されたシステムまたは技術スタック構成要素における状態変化イベントによってトリガされることが可能である。さらに、アーティファクトは、リンクフレームワーク116(後段で説明される)によって提供されるリンクによってリンクされることが可能であるため、ワークフローアクティビティ(ワークフローにおける「ノード」)は、インタフェース、例えば、ウェブサービスを介して、それらのアーティファクトを操作する、またはそれらのアーティファクトにアクセスすることができる。このことにより、ITインシデントのライフサイクルを扱うインシデントワークフローを作成するIT管理システム警報などのシナリオが可能になり得る。
ワークフローフレームワーク114のために使用されることが可能な、多数の市販の製品が存在する。例えば、WWF(Windows(登録商標) Workflow Foundation)は、ワークフローを実行するためのWindows(登録商標)ベースのワークフローエンジンを提供し、Microsoft Office(Visio)は、ワークフローのグラフィカルな構築を可能にする。Skelta社が、.NETベースのワークフローフレームワークを販売する。また、Java(登録商標)ベースのオープンソースワークフローエンジンが使用されることも可能であり、JBoss jBPMを参照されたい。
例示的な技術スタック104における別の構成要素が、リンクサービスまたはリンクフレームワーク116である。リンクフレームワーク116は、技術スタック104における様々な構成要素を一緒に結び付けるのに役立つ。リンクフレームワーク116は、アーティファクトのリンク、交換、または同期、およびマッピングを可能にする。例えば、リンクフレームワーク116は、MOM(Microsoft Operations Management)またはSMS(Systems Management Server)などのIT管理プラットフォームを使用して開発プラットフォームをリンクすることができる。リンクフレームワーク116におけるリンクは、自動化されたワークフローがトリガされることを可能にし、リンクされたシステムにおける関連するアーティファクトを操作する。使用されることが可能なリンク付け製品の一例が、本件特許出願人のTFS(Team Foundation Server)であり、TFSは、スタック構成要素が、それらの構成要素のアーティファクトおよび関係をリンクサーバに登録することを可能にする。TFSが使用される場合、ウェブサービスを介して利用可能なアーティファクトが、例えば、これらのアーティファクトの関係およびロケーションを保持することが可能なリンクフレームワーク116によって使用されることが可能である。
技術スタック104は、好ましくは、通常、CMDB(構成管理データベース)であるアーティファクトストア110を含む。CMDBは、ITアイテムのレコードを保持する機能を主に果たし、ITアイテムの、相互の関係を追跡する。ほとんどのIT管理アクティビティは、ITシステム100における物事について決定を行うため、およびそのような物事について情報共有するために、アーティファクトストア110について推論する。好ましくは、アーティファクトストア110は、SDM(システム定義モデル)言語に基づき、SDM言語は、アーティファクトのタイプ、およびアーティファクトの間の関係をモデル化することを円滑にし、さらに、MOMやSMSなどの他のSDMベースの構成要素との対話も円滑にする。CMDBタイプのアーティファクトストア110については、後段でより詳細に説明する。
技術スタック104は、ITシステムが有する可能性がある1つの可能な技術スタックの例に過ぎない。他のITシステムは、異なる構成要素セットを有する可能性がある。さらに、これらの構成要素は、任意のベンダからの任意の様々な市販のソフトウェア製品を使用して実現されることが可能である。これらの構成要素は、ITシステムにおける多くの異なるコンピュータにわたって分散されることが可能である(例えば、フォームフレームワーク108、セルフサービスポータル106など)。一部の構成要素は、1つのコンピュータまたはサーバにインストールされて、そのコンピュータ上、またはそのサーバ上で実行されることが可能である(例えば、知識フレームワーク112、アーティファクトストア110など)。一部の構成要素は、同一のサーバ上でホストされることが可能である。インストール構成は、重要ではない。むしろ、関係があるのは、様々な技術構成要素の入手のしやすさ、およびそれらの技術の、互いに通信する能力である。さらに、これらの構成要素は、それぞれの機能に関して自律的動作ができる可能性がある。つまり、例えば、ワークフローフレームワーク114は、技術スタック104における他の構成要素を要求することなしに、ユーザーにワークフロー機能を提供することができる。あるいは、フォームフレームワーク108が、他の構成要素とは別個に存在し、動作するフォームを有することが可能である一方で、同時に、後段で説明されるとおり、他の技術スタック104構成要素と相互運用されるフォームを有することが可能である。技術スタック104は、緩い連合または相互運用が可能である(場合により、間接的に、またはリンクフレームワーク116によって円滑にされて)が、スタンドアロンの機能も提供する自律的構成要素のコレクションである。
(パッケージ)
図2は、パッケージ130を示す。例示的な技術スタック104などの任意の技術スタックを所与として、パッケージ130は、その技術スタックを制御するのに使用されることが可能である。パッケージ130は、技術スタックの構成の、好ましくは、宣言型の、符号化を含み、つまり、パッケージは、技術スタックによって解釈され、技術スタックを制御する。より具体的には、パッケージ130は、プロセスの符号化であり、そのプロセスを実施するのにスタックによって使用されるメタデータなどの関連する情報を含む。パッケージ130は、事実上、技術スタックに「プラグインされ」、技術スタックによって「実行される」ことが可能である。パッケージ130は、おおまかにDVDに類似し、つまり、パッケージ130は、プレーヤ(技術スタック)にプラグインされることが可能であり、パッケージ130のプロセスが、技術スタックによって実行されることが可能である。
図2は、パッケージ130を示す。例示的な技術スタック104などの任意の技術スタックを所与として、パッケージ130は、その技術スタックを制御するのに使用されることが可能である。パッケージ130は、技術スタックの構成の、好ましくは、宣言型の、符号化を含み、つまり、パッケージは、技術スタックによって解釈され、技術スタックを制御する。より具体的には、パッケージ130は、プロセスの符号化であり、そのプロセスを実施するのにスタックによって使用されるメタデータなどの関連する情報を含む。パッケージ130は、事実上、技術スタックに「プラグインされ」、技術スタックによって「実行される」ことが可能である。パッケージ130は、おおまかにDVDに類似し、つまり、パッケージ130は、プレーヤ(技術スタック)にプラグインされることが可能であり、パッケージ130のプロセスが、技術スタックによって実行されることが可能である。
背景技術において説明されるとおり、紙の知識、または人間の知識からITプロセスまたはビジネスプロセスを解釈することは、誤りが生じやすい可能性があり、プロセスが既存の管理ツールで機能するようにプロセスを自動化することは、あまりにも複雑である可能性があり、実施するのに数年かかる可能性があり、保守するのに費用がかさむ可能性がある。パッケージ130は、技術中立のITプロセスまたはビジネスプロセスが、ポータブルな、マシンによって使用可能である、拡張可能な形態に符号化されることを可能にする。このため、異なるITシステム(およびそれぞれの異なる技術スタック)が、同一のパッケージを有する場合、そのパッケージの中の符号化されたプロセスは、それらの異なるITシステムにおいて実施される(自動化される)ことが可能である。このパッケージアプローチは、パッケージのプロセスを実行するように技術スタックを構成するパッケージの中の情報から、(プロセスを実施する)技術スタックを切り離すことを可能にする。後段で説明されるとおり、このパッケージは、好ましくは、プロセスを協働して実行するようにスタック構成要素を構成し、制御する宣言情報を含む。例えば、パッケージは、以下を含む可能性がある。すなわち、パッケージのプロセスにおける様々な人的ステップ、または自動化されたステップを定義するワークフロー情報、アーティファクトストア110にプラグインするためのアーティファクトスキーマおよび関係タイプ、知識フレームワーク112の中に格納されることが可能である、プロセスに関与する人々に向けられた知識項目または知識命令、役割定義、ビュー、フォーム、およびレポート、サービス、資産、ユーザー、ロケーション、組織などのオブジェクトを表す構成アイテムである。
パッケージ130の内容は、好ましくは、宣言構成情報およびメタデータであり、この情報およびメタデータのいくつかの部分は、技術スタック104における様々な対応する構成要素に向けられ、それらの構成要素によって解釈されることが可能である(図5参照)。パッケージ130の内容の形態にかかわらず、プログラムまたはアプリケーション132は、パッケージ130を読み取り、パッケージ130を技術スタック104にプラグインする。プラグインが行われると(図2の下側部分)、技術スタックは、パッケージ130の中に符号化されたビジネスプロセスまたはITプロセスを自動化する、すなわち、パッケージを「実行する」ことを開始することができる。
図3は、どのようにパッケージが、プロセスを共有するのに使用されることが可能であるかを示す。いくつかの異なる組織、個人、またはエンティティ150a、150b、150cが、プロセス152a、152b、152cをパッケージ154a、154b、154cに符号化することができる。エンティティ150a、150b、150cは、ビジネスプロセスまたはITプロセスを自動化することを専門とする会社であることが可能である。エンティティは、IT部門、またはこの部門のためにIT管理プロセスを符号化していることが可能な、この部門のスタッフであることが可能である。プロセス152aなどの1つのプロセスは、プロセスの大部分が、1名または複数名の個人の個人的知識である、またはプロセスの別の部分が、おおまかに文書化されている可能性がある、非公式に理解された、または部分的に文書化されたプロセスであることが可能である。プロセス152bなどの別のプロセスは、ITIL、MOF、IBM Redbookシリーズ、IT部門ドキュメンテーションなどにおいて通常、見られるタイプの文書化されたプロセスであることが可能である。別のそのようなプロセス152cは、そのようなプロセス152cをパッケージ152cの中に符号化しながら、準備なしに開発される、または設計されることが可能である。いずれにしても、パッケージ154a、154b、154cは、異なる組織の間で共有されることが可能なプロセスまたは手続きの、好ましくは、宣言型の、ポータブルな符号化である。
また、図3は、異なる組織、ビジネス、会社などに、場合により、対応する2つの別々の、自立的なITシステム156a、156bも示す。各ITシステム156a、156bは、対応する技術スタック158a、158bを有する。技術スタック158a、158bは、前述した技術スタック104と同様であるが、異なる構成要素セット、および、場合により、同様な機能を実行する、またはそれらの様々なスタック構成要素の代わりを務める異なる製品を有することが可能である。例えば、技術スタック158aは、ワークフロー管理のために本件特許出願人のWWFを使用する可能性があり、技術スタック158bは、オープンソースのワークフローエンジンを使用する可能性がある。
図3に示されるとおり、パッケージ154a、154b、154cは、異なるITシステム156a、156bにおいて分散され、共有され、実行されて、技術スタック158a、158bが、プロセス152a、152b、152cを実行するのを可能にすることが可能である。パッケージ154a、154b、154cは、ネットワーク伝送によって電子的に分配される、物理記憶媒体の分散によって物理的に分散される、またはIT管理システムの一環としてあらかじめインストールされることなどが可能である。いずれにしても、パッケージが受け取られると、そのパッケージは、受け取り側の技術スタックにプラグインされ、この技術スタック上で実行されて、対応するプロセスを自動化することが可能である。図3の例では、技術スタック158aが、パッケージ154a、154b、および154cを実行している。技術スタック158bは、パッケージ154b、154cを実行している。異なるプロセスが、1つのエンティティによって符号化されるが、それでも、多くの異なるエンティティによって効率的に共有され、自動化される(「実行される」)ことが可能であることを見て取ることができる。さらに、図4に関連して後段で説明されるとおり、必要とされる場合、パッケージ154a、154b、154cの任意のパッケージが、その他のパッケージ154a、154b、154cの任意のパッケージを参照することが可能であり、したがって、相互参照されるパッケージから導き出された作業アイテム、またはクラス、またはデータファイル(例えば、知識項目)、または任意の情報を使用することができる。
各ITシステム156a、156bは、任意のパッケージを、そのITシステム156a、156bのそれぞれの技術スタック158a、158bにプラグインする能力を有するはずであることに留意されたい。アプリケーション132などのスタンドアロンのプログラムが、使用されることが可能であるものの、同様の機能が、技術スタック158a、158bの構成要素の一部として提供されることも可能である。CSD(統合されたサービスデスク)が、そのような機能を提供するための理想的なロケーションである。実際、アプリケーション132は、CSDアプリケーションであることが可能である。
図4は、例示的なパッケージ170を示す。一実施形態では、パッケージ170は、技術スタックにおけるそれぞれの構成要素に対応するコード部分172a〜172fを有する。例えば、コード部分172a〜172fは、技術スタック104における構成要素106〜116(図2)に対応することも可能である。しかし、パッケージは、そのようなパッケージによって符号化されたプロセスによって使用されるスタック構成要素のサブセットだけに対応するコード部分を有することが可能であり、つまり、パッケージは、技術スタックにおける各構成要素を使用しなくてもよいことに留意されたい。より複雑な、構造化されたプロセスは、より多くのスタック構成要素に及ぶ傾向がある符号化パッケージを有する。例示的なパッケージ170が、技術スタック104に向けられるものと想定すると、各コード部分172a〜172fは、対応する技術スタック構成要素にプラグインされることが可能なコードを有する。パッケージ170の中に符号化されたプロセスが、例えば、ITアセット獲得プロセスである場合、コード部分172aは、要求のステータスを調べるため、または要求を開始するためのセルフサービスポータルオブジェクトの型/クラスおよびインスタンスを宣言することが可能である。コード部分172bは、ユーザーが、要求と関係するデータを入力するフォーム、例えば、要求を承認するための承認フォームを宣言的に記述することが可能である。コード部分172cは、アーティファクトストア110に関して、インスタンスがアーティファクトストア110の中に格納される可能性がある要求と関係するオブジェクトのクラスを定義することが可能である。例えば、作業アイテムまたは作業順序、要求されているアーティファクト(例えば、ソフトウェアパッケージ、コンピュータなど)、または「要求者」、「承認者」、「経理部門」などの役割。コード部分172dは、パッケージ170に付加されたいくらかの知識174を含めることを命令することが可能である。知識174は、電子文書、教育用のビデオなどのメディア、あるいは知識174に対する新たなハイパーリンク、新たなテキスト、または他の類似した情報などの、知識フレームワーク112の中の既存の文書の変更または更新さえ含む可能性がある。
例示的なパッケージ170の中で、コード部分172eは、プロセスに関する全体的なワークフロー、例えば、資産獲得ワークフローを定義する。コード部分172eは、アクティビティ、アクティビティ間のフローに関するイベントおよび/または条件を宣言する。コード部分172fは、リンク付けフレームワーク116に追加されるべきリンクを宣言する。例えば、コード部分172fは、IT管理システム(例えば、MOM)からの警報が、アーティファクトストア110の中に格納された問題またはアーティファクトにリンクされることを宣言することが可能である。任意のスタック構成要素の中の任意のデータが、別のスタック構成要素の中の別のデータアイテムに潜在的にリンクされることが可能である。
図4に破線176で示されるとおり、コード部分172a〜172fのいずれも、別の部分172a〜172fの中で宣言されるクラスもしくはオブジェクト、または他の情報に対するリファレンスを有することが可能である。前述したとおり、コード部分は、知識174などの、パッケージ170に付加された、または含められたいくらかのビットまたはハードデータに対するリンクまたはリファレンス177を有することも可能である。また、そのようなハードデータには、ソフトウェアライブラリ、コード部分172a〜172fの1つに補足的なロジックを追加するソースコードまたは「code−beside」、あるいはパッケージ170または1つまたは複数のコード部分172a〜172fと互換性があるように技術スタック構成要素をアップグレードするためのアップグレードパックさえ含まれることも可能である。
パッケージ170などのパッケージは、好ましくは、グローバルデータまたはパッケージデータ178と呼ばれる、パッケージ170全体に適用可能ないくらかの情報を含む。パッケージデータ178は、パッケージ154a、154b、154cおよびパッケージ170などのパッケージのフォーマットを定義するマスタスキーマまたはコンテナスキーマを示すことが可能である。パッケージデータ178は、名前またはグローバル一意識別子または他のID情報を提供することによって、パッケージ170を識別することが可能である。パッケージデータ178は、パッケージ170に関する名前空間を定義し、パッケージ170のバージョンを識別し、パッケージの発行者または作成者を識別し、真正性情報および完全性情報(例えば、暗号化されたチェックサム、公開鍵または真正性証明書など)、またはグローバルな性質の他の情報を含むことが可能である。また、パッケージデータ178は、別のパッケージ180に対する依存関係179、要求されるプラットフォーム、必要とされるスタック構成要素、およびそれらの構成要素のバージョンなどの依存関係情報を含むことも可能である。また、パッケージデータ178は、配信データ181またはインストールデータ182などのパッケージ170のマニフェストリスト部分の役割をすることも可能である。一実施形態では、パッケージ170は、オプションとして、キャビネットファイル(すなわち、CABファイル)、MSI(Microsoft Windows(登録商標) Installer)パッケージ、または他の何らかの配信パッケージフォーマットとして形成されることが可能である。
一実施形態では、パッケージ170は、XMLスキーマ定義ファイル(XSDファイル)、または他の何らかのタイプのスキーマファイルであることが可能なパッケージスキーマ184に従ってフォーマットされた、構造化された文書である。前述したとおり、パッケージスキーマ184は、パッケージ170に付加される、またはパッケージ170を包むようにされることが可能であるが、そうすることは、必須ではない。XMLベースの実施形態では、コード部分172a〜172fおよびパッケージデータ178は、パッケージスキーマ184に従ってフォーマットされ、構成されたXMLマークアップまたはXMLタグ185から成る。この実施形態では、コード部分172a〜172fは、ロードアプリケーション132によって構成要素特有のコードに変換されることが可能である。
別の実施形態において、パッケージ170は、やはり、パッケージスキーマ182に従ってフォーマットされた構造化された文書である。しかし、コード部分172a〜172fは、対応する技術スタック構成要素に特有のコードのスニペットであり、変換される必要はなく、ただし、マクロ拡張(すなわち、コンパイラ様の前処理)が、パラメータ、マクロ、名前付きオブジェクトなどが、パッケージ170、またはパッケージ170が実行される技術スタックに特有であることを確実にするのに役立つ可能性がある。
いずれの実施形態においても、パッケージは、XML(拡張マークアップ言語)、またはXMLから派生した言語、またはその他の言語などの言語を使用して実施されることが可能である。いくつかの部分は、SDM(システム定義モデル化言語)、例えば、アーティファクトストアの中に格納されるべきアーティファクトの定義を使用して実施されることが可能である。技術スタック構成要素が、宣言コードを介してアクセス可能であるAPIおよび/またはオブジェクトモデルを有する場合、パッケージのコード部分は、対応するスタック構成要素に直接にプラグインされることが可能である。技術スタックが、標準化された宣言型アクセスを提供しない構成要素(例えば、構成要素特有のXMLスキーマ)を有する場合、その構成要素に関するパッケージコードは、その構成要素のために特別に書かれることが可能であり、あるいはモデル化言語(例えば、SDM)、または、パッケージスキーマ184によって定義される可能性がある別の言語で書かれることが可能である。そのようなコードは、アプリケーション132によって、対応する構成要素に特有のコードに変換されることが可能である。
パッケージの中でキャプチャされる情報の性質に関して、多くのタイプのプロセスが、パッケージの中に符号化されることが可能であることに留意されたい。構造化されていないプロセス(例えば、単一のアクティビティ、または順序付けられていないアクティビティを有するプロセス)、例えば、通信プロセスおよび協力プロセス、知識および訓練の使用、格付け、および更新、診断アプリケーションおよびデバッグアプリケーションのブラウズ、IT問題を解決しながらのエンドユーザーとチャットすること、ウェブベースのセルフサービス、報告、ITインシデント、およびITインシデントのサービスステータスを調べること、ITシステム変更の通知、調査票に記入すること、使用、利用可能性、およびSLA(サービスレベル契約)の遵守に関するレポートを発行すること、およびその他が符号化されることが可能である。また、長期の状態持続(例えば、数日、数週間、数ヶ月、数年さえもの)を有し、場合より、アクティビティの合間の長い間隔、およびアクティビティ間の非常に構造化されたフローを有する構造化されたプロセスが、符号化されることも可能である。構造化されたプロセスの例には、ルーティングおよびエスカレーション(escalation)などの作業アイテムライフサイクル、場合により、経理アクティビティを含む許可および承認、受領、試験、展開、および撤収などの資産ライフサイクルプロセス、変更管理ライフサイクルプロセス、知識ライフサイクル、およびその他が含まれる。IT管理プロセスは、様々なITリソースが利用可能であるという想定で、しばしば、設計されるため、パッケージ化によく適しているが、他の非ITプロセスが、パッケージ化されることも可能である。経理プロセス、保険金請求処理プロセス、およびその他のビジネスプロセスが、パッケージ化されることも可能である。
(ローダー/コントローラーアプリケーション)
図2に関連して前述したとおり、アプリケーション132を使用して、パッケージが、そのパッケージを実行する技術スタックにロードされることが可能である。図5は、アプリケーション132が、パッケージ202を技術スタック204にロードするのを実行することが可能なプロセス200を示す。最初に、アプリケーション132が、パッケージ202を読み取り(206)、グローバルデータまたはパッケージデータ(例えば、パッケージデータ178)を調べる。パッケージデータに基づき、アプリケーション132は、パッケージ202の依存関係が満たされているかどうかを判定することができる。例えば、アプリケーション132は、技術スタック構成要素が存在し、さらに/または十分なバージョンレベルであることを検証することができる。また、アプリケーション132は、相互参照されるパッケージが、技術スタック204にインストールされている、またはインストールされるように利用可能であるかを調べて検証することもできる。また、初期読み取り(206)時に、アプリケーションは、必要なスキーマをロードし、名前空間を調べ、または他の仕方で、パッケージ202をプラグインする準備をすることも可能である。
図2に関連して前述したとおり、アプリケーション132を使用して、パッケージが、そのパッケージを実行する技術スタックにロードされることが可能である。図5は、アプリケーション132が、パッケージ202を技術スタック204にロードするのを実行することが可能なプロセス200を示す。最初に、アプリケーション132が、パッケージ202を読み取り(206)、グローバルデータまたはパッケージデータ(例えば、パッケージデータ178)を調べる。パッケージデータに基づき、アプリケーション132は、パッケージ202の依存関係が満たされているかどうかを判定することができる。例えば、アプリケーション132は、技術スタック構成要素が存在し、さらに/または十分なバージョンレベルであることを検証することができる。また、アプリケーション132は、相互参照されるパッケージが、技術スタック204にインストールされている、またはインストールされるように利用可能であるかを調べて検証することもできる。また、初期読み取り(206)時に、アプリケーションは、必要なスキーマをロードし、名前空間を調べ、または他の仕方で、パッケージ202をプラグインする準備をすることも可能である。
グローバルパッケージデータが読み取られ(206)、処理された後、アプリケーション132は、技術スタック構成要素に向けられたパッケージ202の部分を識別する(208)。例えば、アプリケーション132は、パッケージ202を解析する際、或るコード部分、例えばコード部分172a〜172fの1つを識別する、または区別するタグを読み取ることが可能である。必要な場合、そのように識別された(208)ノード、要素、またはコード部分が、そのコード部分が向けられたスタック構成要素によって規定されたフォーマットまたは言語に変換される(210)ことが可能である。前述したとおり、標準の宣言型言語(例えば、SDM、XAMLなど)を使用して直接にプログラミング/構成されることが可能な技術スタックの場合、そのようなスタックのためのパッケージのコード部分は、対応するスタック構成要素に直接にプラグインされることが可能である。いずれにしても、次に、識別され(208)、場合により、変換された(210)コード部分を使用して、適切な技術スタック構成要素が構成される(212)。つまり、パッケージ202のその部分が、技術スタック構成要素にプラグインされる。例えば、識別された(208)部分が、ワークフロー定義であった場合、ワークフローフレームワーク114が、そのワークフロー定義で構成される(212)。識別された(208)部分が、アーティファクトストア110に関し、オブジェクトのクラスおよび/またはインスタンスを定義する場合、アーティファクトストアが、その部分で構成されると(212)、定義されたクラスまたは型のオブジェクトを格納することができるようになることが可能である。識別された(208)部分が、パッケージ202に関するポータルを定義するポータル情報214であった場合、ポータル構成要素216が構成されて(212)、定義されたポータルを提供することが可能である。さらに、コード部分のいくつかの部分が、複数の構成要素にプラグインされて、例えば、それらの構成要素を、必要なタイプのオブジェクトクラス、作業アイテム、リンク、またはその他のデータで構成することが可能である。
識別し(208)、場合により、変換し(210)、構成する(212)プロセスは、パッケージ全体202が解析されるまで、繰り返される(218)。パッケージ202が、致命的な誤りなしにロードされた、またはプラグインされたものと想定すると、アプリケーション132は、技術スタック204上でパッケージ202を起動する(220)ことによって、パッケージ132の「実行」を開始することができる。そうすることには、パッケージ202またはコード部分がすべて、ロードされることに成功して、ワークフローフレームワークが、パッケージ202によって定義されたワークフローのインスタンスを扱うことを始め、さらに、場合により、スタック構成要素の再スタート、再設定、または再起動をシグナルすることを可能にしていることを検証することがかかわる可能性がある。
流れ図で示されていないものの、アプリケーション132は、他の主要な機能を有することも可能である。例えば、アプリケーション132は、パッケージのワークフローを無効にすることによって、または有効にするコードをスタック構成要素からアンロードすることによって、パッケージの「実行」を「停止する」こともできる。また、アプリケーション132は、様々なスタック構成要素の誤りメッセージまたは誤りログを分析することによって、パッケージのステータスを監視することもできる。この場合も、例示的なアプリケーション132の機能は、任意の場所に存在することも可能であり、専用のプログラムに委任されなくてもよい。また、アプリケーション132は、一般的な統合されたサービスデスクアプリケーションの役割をすることも可能である。
図6は、パッケージをプラグインするための別のプロセスを示す。いずれかの任意のソースからのいずれかの任意のパッケージが、受け取られる(230)。このパッケージの中に、別個にインストールされる、またはプラグインされる(234)、受け取られた(232)パッケージに組み込まれる、または技術スタック上で、現在、「実行されている」と検証されることが可能な他のパッケージに対するリファレンスがないか探される(232)。次に、パッケージは、起動され(236)、その後、スタック構成要素が、パッケージからの内容のそれぞれの部分を実行し(238)、必要に応じて、相互動作を行う。
(技術スタック)
パッケージで構成されると、技術スタックは、そのパッケージによって符号化されたプロセスを自動化すること、すなわち、そのパッケージをプレイする、つまり、実行することを始める。技術スタックの自律的な構成要素は、これらの構成要素の通常の機能を実行するが、これらの構成要素は、今や、それらの機能が、パッケージによって符号化されたプロセスを一緒に自動化するように構成されている。構成要素は、他の構成要素を認識していなくてもよい。例えば、ワークフローエンジンは、或る特定のワークフローが、例えば、フォームフレームワークにおけるフォームによる影響を受けることを知らなくてもよい。
パッケージで構成されると、技術スタックは、そのパッケージによって符号化されたプロセスを自動化すること、すなわち、そのパッケージをプレイする、つまり、実行することを始める。技術スタックの自律的な構成要素は、これらの構成要素の通常の機能を実行するが、これらの構成要素は、今や、それらの機能が、パッケージによって符号化されたプロセスを一緒に自動化するように構成されている。構成要素は、他の構成要素を認識していなくてもよい。例えば、ワークフローエンジンは、或る特定のワークフローが、例えば、フォームフレームワークにおけるフォームによる影響を受けることを知らなくてもよい。
単純なプロセス、または構造化されていないプロセスに関して、最小限の量のアクティビティが、技術スタック構成要素上で行われることが可能である。例えば、ITシステムの変更についてユーザーに通知する単純なパッケージによって符号化されたプロセスには、ユーザーが、セルフサービスポータルにおいて変更通知を開始し、このことによって、そのポータルに関するデータソースであるバックエンドデータベースサーバにおけるトリガが呼び出されることが可能であるという程度のことしか、かかわらないことが可能である。トリガは、そのポータルイベントが、アーティファクトストアの中の作業アイテムにリンクされていることを特定することが可能なリンク付けフレームワークに向かうことが可能である。その結果、リンクサーバが、変更通知に関する作業アイテムを格納するようにアーティファクトストアにメッセージを送ることが可能であり、さらに、新たな変更通知ワークフローを開始するようにフォームフレームワークにメッセージを送ることが可能である。次に、ワークフローエンジンは、作業アイテム(変更通知の詳細)を記入するためのフォームをユーザーに送信することによって、ワークフローの初期アクティビティを実行することが可能である。ユーザーは、このフォームを受信し、このフォームに記入し、変更通知に記入することができる。変更通知に記入することにより、アーティファクトストアが、変更通知が更新されたことをリンクフレームワークに通知することが可能である。次に、リンクサーバが、ワークフローエンジンにメッセージを送り、変更通知プロセスが完了するまで、以下同様である。見て取ることができるとおり、スタック構成要素は、それぞれが、その他のスタック構成要素とは独立にインストールされ、使用されることが可能であるスタンドアロンの、または自律的な構成要素である可能性があるものの、まとまりのある単位としてパッケージをプレイする、つまり、実行する。
図7は、技術スタックが例示的なパッケージを実行する際の技術スタックの例示的なプロセスフローを示す。パッケージが実行される、または起動されると(250)、ユーザーアクティビティまたはシステムイベントが、例えば、作業アイテム、または他のアーティファクト表現を生成する(252)ことが可能である。ユーザーアクティビティのいくつかの例は、パッケージによって構成された電子メールアドレスに電子メールを送信すること、ポータルページにアクセスすること、またはフォーム(場合により、パッケージによって定義された)に入力されたデータをサブミットすることなどである。システムアクティビティの例は、MOMまたはSMSなどの管理システムからの警報、またはワークフローアクティビティによって生成されたメッセージ、またはITシステムの技術スタックによって受け取られる、または認識されるITシステム上の他の自動化された出来事である。作業アイテムの生成(252)は、その作業アイテムが、CMDBまたは他のアーティファクトストアの中に格納される(254)ことをもたらす。技術スタックにおける構成要素が、ワークフローアクティベーションを生成する。次に、ワークフローエンジンが、トリガする作業アイテムに応じて、リンクされたワークフローインスタンスにおけるアクティビティを実行する。これらは、技術スタックにおける様々な構成要素が、パッケージで構成されると、どのように協働して、パッケージによって符号化されたプロセスを実行することができるかのいくつかの例に過ぎない。
図8は、CMDB(構成管理データベース)280を示す。前述したとおり、CMDBは、アーティファクトストア110の役割をするための好ましい(ただし、必須ではない)タイプのデータベースである。CMDBは、構成アイテム、つまり、CI(便宜のため、CIの表現とCI自体は、互いに区別なく使用される)の表現を格納する。CIは、通常、IT構成管理制御を受ける何らかのIT構成要素である。ITILの下で、CIは、いくつかの例を挙げると、サービス、資産、ユーザー、ロケーション、および組織のようなオブジェクトを表す。CIのライフサイクルは、しばしば、変更オーダ(次のセクションにおいて説明される)によって駆動される。ボックス外アーティファクトテンプレートが、作成者に提供されて、作成者が、コンピュータやアプリケーションなどの一般的なアーティファクトのためのCIを使用するパッケージを書くことを容易にすることが可能である。作成者は、新たなタイプを追加する、または既存のタイプを拡張することができる。
また、関係は、CMDBの中でも、通常、見られる。作業アイテムとCIは、包含、所有、サービス依存関係、因果関係などの様々なタイプの関係によって互いに、または作業アイテムおよびCIそれぞれの間で関連することが可能である。CMDBの中で、CIは、他のCIから成ることが可能である。CIは、複雑度とタイプが多種多様であることが可能であり、システム全体(ハードウェア、ソフトウェア、およびドキュメンテーションを含む)から単一のソフトウェアモジュール、またはそれほど重要でないハードウェア構成要素にまで及ぶことが可能である。CIは、CIの名前、記述、ロケーション、詳細な技術的構成設定、オプションなどの属性を有することが可能である。要するに、CMDBは、各CIの適切な詳細、およびCI間の関係の詳細を含むデータベースである。このデータベースは、いくつかを挙げると、CIのコピーおよび通し番号、カテゴリ、ステータス、バージョン、モデル、ロケーション、責任、またはアイテムについての履歴情報などの、CIについての情報を含むことが可能である。
CMDBが、好ましい可能性があるのは、多くのITプロセスが、CMDBの中に都合よく格納されるITアーティファクトおよび関係を扱うためである。図8で見られるとおり、インシデント管理、変更管理、リリース管理などのIT管理機能282が、ITインフラストラクチャ284を管理しながら、情報交換および情報永続のポイントとしてCMDB280を使用することが可能である。さらに、IT管理機能282におけるほとんどの意思決定は、これらのアーティファクトおよび関係について推論され、プロセスの自動化は、通常、これらのアーティファクトおよび関係の表現を操作する。また、CMDBは、ポータブルであるとともに拡張可能である明確に定義されたベースラインシステムモデルを提供することも可能である。さらに、やがて、より多くの管理製品が、他の製品またはスタック構成要素との相互接続性を容易にすることが可能なCMDB、特に、SDMベースのCMDBを使用しはじめる。
CMDBが使用されるか否かにかかわらず、アーティファクトストア110は、好ましくは、いくつかの特性を有する。好ましくは、CMDBは、オブジェクト関係型でなければならない。つまり、クラス、関係、合成、グループ化、および制約の概念が、有益である。さらに、パッケージが、事実上、既存の技術スタックを拡張することから、アーティファクトストア110が、拡張性および継承を可能にすれば役立つ。したがって、新たなパッケージの作成者は、場合により、他のパッケージ、または他のテンプレートの中で定義されたクラスおよび関係タイプを基礎にして、引き続き新たなクラスおよび関係タイプを定義することができる。また、CI(構成アイテム)、管理されたエンティティ、サービス、資産、およびネットワークデバイス、またはクライアント−サーバのような関係タイプのような事前定義された抽象クラスからのサブクラス化(sub−classing)により、パッケージを作成するのに必要とされる作業が減らされることが可能である。
図9は、例示的なワークフローエンジン300を示す。前述したとおり、ワークフローフレームワーク114は、様々な既存のワークフローエンジンのいずれかを使用して実現されることが可能である。図9におけるワークフローエンジン300は、一部のワークフローエンジンが、どのように構成され、機能するかの例を与えることだけを意図している。ワークフローエンジン300は、新たなワークフロー定義304を解析するパーサ302を有する。コントローラー306は、ワークフロー304のインスタンスを実行するユニットである。コントローラー306は、ワークフローの主題を管理し、ワークフローのアクティビティを実行し、リスナーを呼び出し、イベントをリッスンし、タイムアウトを扱い、ログ記録を実行するといったことを行う。リスナー308は、同期的なアクティビティとして実施されることが可能であり、前提条件が満たされた際にコントローラー306によって呼び出される。リスナー308は、ワークフローの入ってくるイベントをリッスンする。ローダー310が、ワークフローの主題を、idにより、CMDB280などの永続ストアからロードする。
図10は、インシデントを扱うための例示的なワークフロー330を示す。ワークフロー330は、パッケージを使用して実施されることが可能な構造化されたプロセスのタイプの典型である。アクティビティ332(パッケージのワークフロー部分において定義される)は、ワークフロー330のノードである。ワークフロー330の主題は、作業アイテム、ユーザー、電子メールなどを含む。アクティビティ332のいずれも、技術スタックの他の何らかの構成要素によってトリガされることが可能である。他のタイプのアクティビティには、タスクを送ること、サービスを呼び出すこと、人々に通知を送信すること、アーティファクトを操作すること、またはリンクサーバ(アーティファクトに対するリファレンスを有する可能性がある)を経由することによって別のスタック構成要素のアーティファクトを操作することが含まれることが可能である。また、パッケージのワークフローコード部分は、そのワークフローの或る特定のインスタンスを何がトリガするかを定義する、または記述する情報を含むことも可能である。また、パッケージのワークフローコード部分は、フローロジック、すなわち、アクティビティの間のフローに関するパスおよび条件も記述しなければならない。ワークフローが、他のスタック構成要素とどのように対話することが可能であるかのいくつかの例を考慮されたい。ワークフローが、CMDBの中の作業アイテムおよびアーティファクトを取得する、作成する、更新する、または削除することが可能である。ワークフローは、リンク付けフレームワークを介して外部システムと対話することができ、例えば、管理構成要素(例えば、MOM)によって監視されるサービス上のタスクを実行することができる。また、ワークフローは、通知を電子メール送信する、または他の手段によって送ることも可能である。ワークフローは、特定の情報で知識項目に注釈を付けることさえできる。
前述したとおり、パッケージは、パッケージの中で記述されるワークフローが、自動的に作成され、実行され、監視されることが可能なように、ワークフローエンジンを構成することができなければならない。ワークフローには、自動化を扱う単純なインシデントから、ユーザーによって定義される長期継続の複雑なワークフローまで任意の物事がかかわることが可能である。次のセクションにおいて説明されるとおり、パッケージ作成者は、変更許可、エスカレーション、通知、インシデント処理、資産ライフサイクル管理などのITプロセスに関するワークフローを定義することができる。ベースラインパッケージまたは標準パッケージ(作成されるほとんどのパッケージによって使用される)が、例えば、MOFにおいて見られる標準の動作に基づくテンプレートを提供することができる。
やはり前述したとおり、WWFが、ワークフローフレームワークとして使用されることが可能である。しかし、コードを書かなければならないことを避けるのに、作成は、Visual Studioワークフローデザイナにおいて実行されることが可能である。ワークフロータイプは、作業アイテムまたはアーティファクトの状態変化イベントに結び付けられることが可能である。特定の状態変化、例えば、或る問題の状態を「解決済み」に設定することにより、問題解決を扱うワークフローの新たなインスタンスが開始されることが可能である。ワークフローのコンテキストは、作業アイテムを含むことが可能であり、したがって、ワークフローにおけるロジックは、その作業アイテムの特性、または関連するアーティファクトの特性、例えば、その問題による影響を受けるサービスの所有者の電子メールアドレスにアクセスすることができる。解決−インシデント、エスカレート−インシデント、更新−インシデント、更新−CMDBなどのようなアクティビティを含む、ボックス外の標準ワークフローアクティビティのライブラリが、アーティファクトを操作するのに提供されることが可能である。標準ワークフローアクティビティのパレットが、WWFデザイナにおいて提供されることが可能である。これらのアクティビティには、電子メールを送信すること、バグをエスカレートさせること、あるいはMOS、SMS、Exchange、SharePoint、またはTFSのようなリンクされた製品を呼び出すことによってソフトウェアを展開することが含まれることが可能である。このアプローチでは、パッケージ作成者は、コードを必ずしも書かなければならないことなしに、アクティビティをドラッグアンドドロップすることによって、事前定義されたプロセスを作成することができる。
図11は、ワークフローを宣言的に定義するためのマークアップ350を示す。この例におけるマークアップ350は、XAML(拡張アプリケーションマークアップ言語)で書かれる。マークアップ350は、パッケージから抽出され、ワークフローフレームワークにプラグインされるコード部分であることが可能なタイプのコードの例である。
前述したとおり、技術スタックは、パッケージが、関連する知識でプロセスを補足するのに使用することができる知識フレームワークを含むことが可能である。知識フレームワークは、理想的には、文書のコレクションを超えたものであり、むしろ、知識フレームワークは、索引を作成すること、探索を許すこと、関係する項目を関連付けることなどの知識管理機能を有さなければならない。項目間の関係を追い、或る特定のパッケージのコンテキストなどの所与のコンテキストにおいて、いずれの項目が所与の項目と関係しているかを知る能力が、存在しなければならない。バグレポート、インシデント、または問題のような作業アイテムは、目的またはコンテキストを示す分類を有することが可能である。例えば、作業アイテムは、作業アイテムがパスワードリセットを求める要求であることを示すフィールドを有することが可能である。何らかの関連する知識が存在することを示すいくらかの情報が、作業アイテムのパッケージの中に存在することが可能である。その情報は、作業アイテムを分類にリンクするリンクであることが可能である。ユーザーが、パスワード変更をどのように要求すべきかについて知る必要がある場合、ユーザーは、例えば、パスワードを要求する際に、電子メールがユーザーのマネージャーに送信される必要があること、または符号化されたプロセスに従って、何であれステップが行われる必要があることを示す知識を獲得することができる。知識集約型の使用シナリオにおいて、知識のライフサイクルを定義するワークフローまたはパッケージが存在することが可能であり、例えば、何らかの個人または役割が、或るトピックに関する項目の必要性が存在することを決定し、何らかの個人または役割が、原案を書き、誰かが、この原案を点検し、誰かが、この原案を生産に移すといったことなどである。知識フレームワークは、Microsoft SharePoint、ウェブフロントエンドを有するデータベース、Factiva、AskMe、SiteScapeなどの市販の製品を使用して実施されることが可能である。
図12は、リンクサーバまたはリンク付けフレームワークによってリンクされることが可能な作業アイテム、アーティファクト、警報およびその他の物事の例370を示す。リンク付けフレームワークは、新たなデータ型、または新たなデータクラスの間で新たなコネクタを作成するのに使用されることが可能である。ソリューション空間に依存して、他の外部ストアが、接続される、またはリンクされることが可能である。また、リンク付けは、スタック構成要素の上にウェブサービスが置かれている場合にも可能であり得る。この場合、リンクされたアイテムの間で何らかのリンク付けおよび変換を宣言的に表現することが容易である可能性がある。つまり、リンク付けフレームワークは、1つの構成要素に対応するアーティファクトを、別の構成要素(またはMOMまたはSMSなどのIT管理プラットフォーム)に対応するアーティファクトに対してリンクし、交換/同期し、さらにマップする能力を提供することが可能である。TFSリンク付け−ルーティングサーバ(前述された)を使用して、システムが接続されることが可能である。アーティファクト、およびアーティファクトの関係は、リンク付けサーバにおいて登録される。一実施形態では、これらのアーティファクトが、ウェブサービスを介して利用可能である場合、リンクサーバは、これらのアーティファクトの関係およびロケーションを保持することができる。MOM接続性、SMS接続性、およびTSF接続性のためのコネクタは、標準のテンプレートライブラリの中で提供されるとおり作成される、または使用されることが可能である。単純な実施形態では、リンクは、第1のオブジェクト/アーティファクトに関する第1の一意識別子と、第2のオブジェクト/アーティファクトに関する第2の一意識別子との間の関連付けであることが可能である。この実施形態において、例370の間のリンクは、例370に対応する一意識別子のペアの間の関連付けセットである。
前述したとおり、一実施形態では、技術スタックは、拡張可能である。このため、新たなパッケージが、新たなクラス、新たなアーティファクト、新たなタイプのアクティビティ、アーティファクト間のリンク、新たなワークフローなどを定義する場合、スタック構成要素は、この新たな情報を学習し、この新たな情報に適応することができる。スタック構成要素は、パッケージからの新たな情報に従って再構成される、または拡張される。スタック構成要素は、好ましくは、スタック構成要素の機能を拡張するのに使用されることが可能である拡張可能なAPIまたは抽象化層を有する。技術スタックのこれらの特徴は、パッケージが、プロセスを自動化する技術スタックから、プロセスの定義がきれいに切り離されることを可能にするプロセス、および関連するメタデータの自立型の符号化の役割をすることを、より容易にすることができる。
(プロセスのパッケージフィーチャおよび例)
パッケージは、動作環境または技術スタックにプラグインされることが可能なプロセスの外部表現またはモデルの役割をすることが可能であり、つまり、技術スタックと、作成環境と、パッケージ自体との間の区別が存在することに留意されたい。同一のパッケージが、様々なITシステムの様々な技術スタックにプラグインされることが可能である。パッケージは、新たなリンク、スタックにおける様々な箇所で行われる作業を有する新たなワークフロー、新たな文書、およびそれらの新たな文書に対するリンク、および新たなフォームを持ち込むことが可能である。さらに、この情報は、宣言的な仕方で符号化されることが可能である。つまり、作成者は、パッケージの中で、フォームを宣言する、例えば、ブログにおけるドロップダウンメニューの配置を定義する、別の箇所でテキストフィールドを定義する、別の箇所でボックスを定義する、ドロップダウンが、宣言された選択肢リストから選択されたデータソースに付加されることを宣言する、インタフェース要素が、選択肢に応じてインタフェース要素が何を表示するかを制限することを宣言するといったことなどである。このタイプの情報は、このタイプの情報を実行するスタックまたは動作環境において表現されることが可能である。同様に、レポートが、ハードコードされるのではなく、抽象で宣言されることが可能である。
パッケージは、動作環境または技術スタックにプラグインされることが可能なプロセスの外部表現またはモデルの役割をすることが可能であり、つまり、技術スタックと、作成環境と、パッケージ自体との間の区別が存在することに留意されたい。同一のパッケージが、様々なITシステムの様々な技術スタックにプラグインされることが可能である。パッケージは、新たなリンク、スタックにおける様々な箇所で行われる作業を有する新たなワークフロー、新たな文書、およびそれらの新たな文書に対するリンク、および新たなフォームを持ち込むことが可能である。さらに、この情報は、宣言的な仕方で符号化されることが可能である。つまり、作成者は、パッケージの中で、フォームを宣言する、例えば、ブログにおけるドロップダウンメニューの配置を定義する、別の箇所でテキストフィールドを定義する、別の箇所でボックスを定義する、ドロップダウンが、宣言された選択肢リストから選択されたデータソースに付加されることを宣言する、インタフェース要素が、選択肢に応じてインタフェース要素が何を表示するかを制限することを宣言するといったことなどである。このタイプの情報は、このタイプの情報を実行するスタックまたは動作環境において表現されることが可能である。同様に、レポートが、ハードコードされるのではなく、抽象で宣言されることが可能である。
一部の実施形態では、パッケージは、メタデータによって駆動されるソリューションである。ソリューションが開発されるべき技術スタックを所与として、新たなデータ型をスタック構成要素に追加することが可能であり得る。しかし、今やワークフローが、例えば、正しいデータ型を有さないために機能しない可能性があるため、そのステップだけでは、実際的ではない可能性があり、つまり、作成者は、既存のワークフローに入り込み、例えば、追加された新たな属性について知るように新たなデータ型を扱うことができるようにワークフローのデータを変更しなければならない可能性がある。同様に、既存のフォームは、フォーム作成者が、属性について知ってさえいなかったために、直ちにそのデータ型を「実行する」ことができない可能性がある。このため、これらの物事をパッケージの中で一緒に関連させることにより、パッケージは、プロセスの自立型の符号化となることが可能であり、つまり、パッケージは、技術スタックの中に投入されることが可能であり、パッケージが記述する機能およびデータが、その技術スタック全体にわたってアクティブになる。このことは、技術スタックのいくつかの部分が、パッケージの中のメタデータ言語を理解し、したがって、パッケージをまとまりのある単位として一緒に「実行する」ことができる場合、特に実現可能である。さらに説明すると、パッケージは、新たな属性を有する新たな物事が存在することなどをスタックに知らせることができ、パッケージは、それらの新たな物事を、システムの様々な部分における他の物事にリンクすることができる。次に、スタックレベルで、パッケージは、それらのリンク可能な新たな物事が、技術スタック全体にわたって操作可能であるという想定の下で作成されることが可能である。例えば、アクティビティを有する新たなワークフローは、それらの新たな物事を操作することができ、あるいは、新たな物事が或る仕方で変更された際に、構成要素におけるトリガが呼び出されることが可能である。
さらに説明すると、アーティファクトストア(例えば、オブジェクト指向データベース、CMDBなど)、フォームフレームワーク(例えば、Office 12)、ワークフローエンジン(例えば、WWF)、情報労働者生産性スイート、および前述した他の製品などの、様々なソフトウェア製品が利用可能であるものと考慮されたい。これらの種類の製品(スタック構成要素)は、いくつかの仕方で収斂している。例えば、多くは、SDMベースの、または他のXMLベースのモデル化言語などの宣言コードを使用して拡張されることが可能なオブジェクトモデルおよび機能である、またはそのようなオブジェクトモデルおよび機能を有することになる。つまり、これらの種類の製品は、異なる構成要素に関して同一の言語になっていることが可能な宣言コードによって構成されることが可能である。しかし、組織の技術スタックのこれらの異なる構成要素は、まとまりのある単位として前もってプログラミング(構成)または拡張されていない。本明細書で説明される一部の実施形態によれば、今や、ポータブルなパッケージを使用して、標準であれ、非標準であれ、XML、SDM、または他の言語などのモデル化言語を使用して、オブジェクトモデルを宣言的に拡張させるパッケージの一般的な能力を利用することによって、これらの構成要素が「一緒につなげられる(wire together)」ことが可能である。
プログラミング言語が、標準ライブラリのセットを有するのと同様に、技術スタックは、他のパッケージが参照し、使用する、または拡張することができる標準パッケージのセットを有することが可能である。これらの標準パッケージは、特定のシナリオに的を絞っていることが可能であり、後段で説明される、そのようなシナリオに関係する基本アーティファクト、アクティビティ、リンクなどを定義する。
IT管理の分野において、サービス管理シナリオが、パッケージ化されたポータブルソリューションを使用して自動化されることが可能である。多くのスタック構成要素に関係することが可能なコール管理のためのプロセスが、符号化されることが可能であり、つまり、電話、チャット、電子メール、またはウェブさえ介する着信「コール」が、コールキュー管理、CTI(コンピュータ電話統合)、IVR(インテリジェント音声応答)、監査、自動フォームポピュレーション、およびプレゼンスと一体化されることが可能である。また、インシデント管理シナリオ、例えば、インシデントのライフサイクルを通じたインシデントの状態遷移および所有権を管理することがかかわるインシデント追跡が、符号化されることも可能である。インシデント管理プロセスには、分類の自動ポピュレーション、知識の問題および可視性に対するサービスおよび資産の関連付け、資産データの事前発見、および変更履歴が含まれることが可能である。また、要求管理プロセスが、パッケージの中に符号化されることも可能である。情報、およびハードウェアアップグレードまたはソフトウェアアップグレードを求める要求を扱うことを含むことが可能なプロセス。サービス管理プロセスパッケージは、例えば、MOMなどのイベント管理システムもしくはパフォーマンス管理システム、または外部サービスデスクからインシデントを自動的に生成することによって、サービス監視プロセスと一体化されることが可能である。また、問題管理ソリューションが、自動化されることも可能である。そのようなパッケージは、基礎をなす問題の徴候としてインシデントを認識して、インシデント間の構成、トポロジ、知識、および共通性の可視性をもたらして、パッケージが問題を解決するのを助けることを含むことが可能である。別のタイプのサービス管理プロセスが、根本的原因分析である。これらのタイプのプロセスは、CMDBの中の相互関係マップ、ならびにサービスおよび資産の現在の状態を使用して、基礎をなす真性の問題を自動的に認識する。サービスレベル管理プロセスが、パッケージの中に符号化されることが可能である。これらは、インシデント優先順位付け、エスカレーション、場合によりSLA(サービスレベル契約)に結び付けられた通知、またはサービスおよび問題タイプによるきめ細かいSLAの設定を自動化することが可能である。通知ソリューションおよび簿記ソリューションが、パッケージの中に格納されることが可能である。例えば、そのようなパッケージは、インシデントを扱う際に記録を取り、適切な時点で利害関係者に要求される通知を送信するプロセスを自動化することができる。別の例が、バグエスカレーションであり、この場合、バグであると考えられる問題が、TFSなどのバグ追跡システムを介してエスカレートされる。サービス管理タイプのソリューションパッケージの別のタイプは、インシデント分類および事前収集された構成データに基づいて、場合により、知識ベースの中のランク付けに基づく、適切な対応する知識がアナリストに提示される、知識使用および知識維持と関係する。より上層のアナリストは、知識を定期的に更新して、大量の問題を食い止めることができる。
変更管理は、パッケージの中に符号化されることが可能なプロセスを有する別の領域である。誤った管理をされたIT変更は、ITシステムにおけるインシデントおよびダウンタイムの大きな原因である。変更管理プロセスは、ダウンタイムを最小限に抑えるように制御された仕方で変更を導入するプロセスである。変更の基本アイテムは、しばしば、変更オーダと呼ばれ、変更を通じて追跡されるアイテムの基本単位は、構成アイテム、つまり、CI(前述した)と呼ばれる。CIは、モデルベースの管理アプローチの部分である、管理されたエンティティ、または関係であることが可能である。しかし、CIは、ポリシー、ユーザーグループ、または連絡先および関連する関係であることも可能である。いくつかの特定の符号化可能な変更管理シナリオまたは変更管理プロセスには、以下が含まれる。変更オーダの作成から完了までワークフローを駆動して、利害関係者(例えば、リスク管理者、予算管理者、スケジューラ、サービス所有者、およびエンドユーザー)から必要な許可および承認を確保するものとして構造化されることが可能な変更許可および変更承認。変更管理のためのプロセスは、作成される、またはカスタマイズされることが可能である。影響を受ける関係者に、電子メール、ポータルなどを介して、差し迫った変更について常に知らせておくことが可能な変更通知プロセスが、作成されることが可能である。リスク管理者が、1つまたは複数のサービスにわたる、要求された変更を行うことの影響(またはリスク)を評価することを助ける影響分析プロセスが、符号化されることが可能である。そのようなプロセスは、CMDBの中の関係を利用することによって自動化されることが可能である。スケジューラが、場合により、変更窓、サービススケジュール、および要求されるスタッフの利用可能性に基づいて、最も少ない悪影響を伴って変更を行う適切な機会を見つけ出すのを助けることを含むことが可能な変更スケジューリングプロセスが、作成されることが可能である。また、構成監査プロセスが、パッケージ化されることも可能であり、そのようなプロセスは、例えば、構成情報を、SMS DCM(Desired Configuration Management)ツールおよび物理的インベントリツールを使用してスキャンされた現実世界の情報と比較することを含むことが可能である。
また、パフォーマンス管理およびセキュリティ管理のためのプロセスが、プロセスパッケージの中に捕捉されることも可能である。セキュリティ管理プロセスの例には、調査アクティビティおよび通知アクティビティと組み合わされた警報、推奨される知識が管理者に提供されることにつながる自動化された分析、およびその他が含まれる。
また、資産管理と関係するプロセスが、ポータブルなスタックにプラグイン可能なパッケージの中に捕捉されることも可能である。資本設備決定は、しばしば、サービス情報を考慮に入れるTCP(総所有コスト)レポートに基づく。そのような決定は、変更管理を介する変更を駆動することが可能である。より具体的には、資産−構成追跡プロセスを使用して、サービス、資産、ユーザー、構成、ポリシー、および以上の、互いに対する関連付けなどのCIが、時間を通じて追跡されることが可能である。このことにより、資産の所有権、資産がどこに設置されるか、いずれのサービスに資産が関与するか、または資産が壊れた場合、誰が呼び出されるべきかに関して問い合わせることなどの、付加的なプロセスが可能になる可能性がある。変更オーダの自動化された実行は、好ましくは、エンタープライズアーティファクトストアの中で、このデータを最新に保つ。別の符号化可能な資産管理プロセスが、環境におけるソフトウェアの存在および使用に関する自動化された検査を含み、費用および使用許可リスクを低減する措置をとるソフトウェアライセンス遵守管理である。TCO追跡プロセスが、或る特定のサービス、または資産に関して、時間を通じたサービス費用および変更費用を報告することができる。この情報は、料金請求、アウトソーシング、資本財およびベンダの選択にまつわる決定を行うのに使用されることが可能である。
(結論)
要約すると、1つまたは複数の実施形態において、単一のプラグアンドプレイパッケージ(他のプラグアンドプレイパッケージを参照し、そのため、そのようなパッケージを論理的に含むことが可能な)が、他の接続された製品上で(スタックの外部で)人々および自動化がかかわる完全なIT/ビジネスプロセスの編成を首尾一貫した仕方で提供するように、構成要素のスタックを駆動する能力を有することが可能である。スタックの構成要素は、それらの構成要素の性質を所与として、互いに直接に通信しても、しなくてもよい。しかし、関係のある構成要素のすべてが、協働することができる。とりわけ、スタック構成要素(例えば、フォーム、ワークフロー、アーティファクトのクラス)の宣言型構成が、基礎をなす宣言型構成の知識のために、例えば、スキーマおよびワークフローアクティビティが、同一のプラグアンドプレイパッケージの中に入っているため、スキーマおよびワークフローアクティビティの知識のために、基礎をなす構成要素(例えば、CMDBまたはワークフローエンジン)の振舞いの知識で表現されることが可能である。
要約すると、1つまたは複数の実施形態において、単一のプラグアンドプレイパッケージ(他のプラグアンドプレイパッケージを参照し、そのため、そのようなパッケージを論理的に含むことが可能な)が、他の接続された製品上で(スタックの外部で)人々および自動化がかかわる完全なIT/ビジネスプロセスの編成を首尾一貫した仕方で提供するように、構成要素のスタックを駆動する能力を有することが可能である。スタックの構成要素は、それらの構成要素の性質を所与として、互いに直接に通信しても、しなくてもよい。しかし、関係のある構成要素のすべてが、協働することができる。とりわけ、スタック構成要素(例えば、フォーム、ワークフロー、アーティファクトのクラス)の宣言型構成が、基礎をなす宣言型構成の知識のために、例えば、スキーマおよびワークフローアクティビティが、同一のプラグアンドプレイパッケージの中に入っているため、スキーマおよびワークフローアクティビティの知識のために、基礎をなす構成要素(例えば、CMDBまたはワークフローエンジン)の振舞いの知識で表現されることが可能である。
プログラム命令を格納するのに使用される記憶デバイスは、ネットワーク全体にわたって分散されることが可能であることが、当業者には認識されよう。例えば、リモートコンピュータが、ソフトウェアとして説明されたプロセスの例を格納することができる。ローカルコンピュータまたは端末コンピュータが、リモートコンピュータにアクセスして、プログラムを実行すべきソフトウェアの一部分または全部をダウンロードすることができる。代替として、ローカルコンピュータは、必要に応じて、ソフトウェアの部分をダウンロードする、または一部のソフトウェア命令をローカル端末装置において実行し、一部のソフトウェア命令をリモートコンピュータ(またはコンピュータネットワーク)において実行することによって、分散処理を行うことも可能である。また、当業者に知られている従来の技術を利用することによって、ソフトウェア命令のすべて、または一部分が、DSP、プログラマブルロジックアレイなどの専用回路によって実行されてもよいことが、当業者には認識されよう。
前述した実施形態および特徴のすべては、揮発性および/または不揮発性のコンピュータ可読媒体またはデバイス可読媒体の中に格納された情報の形態で実現されることが可能である。この媒体には、前述した様々な実施形態を実行するようにコンピューティングデバイスに能力を与える、またはそのようにコンピュータを構成するのに使用されることが可能なマシン実行可能命令、またはソースコード、または他の任意の情報を(実行前に、実行中に、または実行前と実行中の両方で)格納するCD−ROM、磁気媒体、フラッシュROMなどが少なくとも含まれるものと考えられる。また、この媒体には、実施形態を実行するプログラムの実行中にCPU命令などの情報を格納するRAMなどの揮発性メモリが、少なくとも含まれるものとも考えられる。
Claims (34)
- パッケージを格納する1つまたは複数の揮発性コンピュータ可読媒体および/または1つまたは複数の不揮発性コンピュータ可読媒体であって、
前記パッケージは、拡張可能なアーティファクトストア、拡張可能なワークフローエンジン、および拡張可能なフォームフレームワークを含むエンタープライズ技術スタックのディスクリートの構成要素を、前記パッケージによって定義されるビジネスプロセスを協力的に自動化するように構成するための構成情報を含み、
前記構成情報は、
前記パッケージのビジネスプロセスに関与する人的役割のタイプ、および前記パッケージのビジネスプロセスに関与するコンピューティングデバイスおよび/またはソフトウェアサービスのタイプを少なくとも含む、前記パッケージのビジネスプロセスの一部である1つまたは複数のタイプのエンタープライズアーティファクトを定義するアーティファクト定義情報と、
前記パッケージのビジネスプロセスと関係する情報を入力するため、および/または閲覧するための1つまたは複数の対話型フォームを定義するフォーム定義情報と、
前記アーティファクト定義情報によって定義される前記タイプのエンタープライズアーティファクトに対するリファレンスまたはリンク、および前記フォーム定義情報によって定義される前記1つまたは複数のフォームに対するリンクまたはリファレンスを含む、前記パッケージのビジネスプロセスの1つまたは複数のワークフローを定義するワークフロー定義情報とを含むことを特徴とする媒体。 - 前記アーティファクト定義情報は、前記アーティファクト情報によって定義される前記1つまたは複数のタイプのエンタープライズアーティファクトの表現をインスタンス化し、格納するように前記アーティファクトストアを構成するのに使用されることが可能であることを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読媒体。
- 前記ワークフロー定義情報は、前記ワークフローエンジンが、前記ワークフロー情報によって定義される前記ワークフローのワークフローインスタンスをインスタンス化することができるようにするのに使用されることが可能であることを特徴とする請求項2に記載の1つまたは複数のコンピュータ可読媒体。
- 前記フォーム定義情報は、エンタープライズ全体にわたるディスプレイが、情報を入力するため、および閲覧するための対話型フォームを表示することができるようにするのに使用されることが可能であることを特徴とする請求項3に記載の1つまたは複数のコンピュータ可読媒体。
- 前記構成情報の少なくとも一部分は、SDM(システム定義モデル化)言語の形態である、またはSDM言語からコンパイルされることを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読媒体。
- 前記SDM言語は、標準のマークアップ言語に基づくことを特徴とする請求項5に記載の1つまたは複数のコンピュータ可読媒体。
- 前記標準のマークアップ言語は、XMLを含むことを特徴とする請求項6に記載の1つまたは複数のコンピュータ可読媒体。
- 前記パッケージは、異なるアプリケーションが、前記パッケージを使用して、前記パッケージによって定義される前記ビジネスプロセスを実行するようにエンタープライズ技術スタックの異なるインスタンスを構成することができるようにポータブルであることを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読媒体。
- 前記パッケージは、他の1つまたは複数のパッケージに対する1つまたは複数のリファレンスをさらに含むことを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読媒体。
- 前記構成情報は、宣言コードを含むことを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読媒体。
- 前記宣言コードは、XMLベースの言語を含むことを特徴とする請求項10に記載の1つまたは複数のコンピュータ可読媒体。
- 前記パッケージによって定義される前記ビジネスプロセスは、IT(情報技術)管理プロセスを含むことを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読媒体。
- 前記IT管理プロセスは、変更管理プロセスを含むことを特徴とする請求項12に記載の1つまたは複数のコンピュータ可読媒体。
- 前記IT管理プロセスは、インシデント管理プロセスを含むことを特徴とする請求項12に記載の1つまたは複数のコンピュータ可読媒体。
- 前記IT管理プロセスは、リリース管理プロセスを含むことを特徴とする請求項12に記載の1つまたは複数のコンピュータ可読媒体。
- 前記プロセスは、ITIL(Information Technology Infrastructure Library)の中で定義されるプロセスに対応することを特徴とする請求項10に記載の1つまたは複数のコンピュータ可読媒体。
- 前記パッケージは、前記パッケージのプロバイダを認証するのに使用されることが可能な前記パッケージのデジタルシグネチャをさらに含むことを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読媒体。
- 前記パッケージは、前記パッケージのバージョンを示すバージョン情報をさらに含むことを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読媒体。
- プロセスを記述するパッケージを生成するための方法であって、
ワークフローエンジンにプラグインされた場合、前記ワークフローエンジンが、ワークフローのインスタンスをインスタンス化して、実行することができるようにする、前記プロセスに対応する前記ワークフローを定義するワークフロー定義情報と、
フォームフレームワークにプラグインされた場合、前記フォームフレームワークが、フォームをユーザーに表示することができるようにする、フォームと、前記ワークフロー定義情報によって定義された前記ワークフローに前記フォームをリンクする情報とを定義するフォーム定義情報と、
アーティファクトストアにプラグインされた場合、前記アーティファクトストアが、アーティファクト定義情報によって定義されたタイプのアーティファクトを格納することができるようにする、1つまたは複数のクラスのアーティファクトと、前記ワークフロー定義に前記アーティファクトをリンクする情報とを定義する前記アーティファクト定義情報とを含むプロセス定義情報をポータブルなパッケージの中に格納することを含むことを特徴とする方法。 - 前記格納することは、前記パッケージの中に、前記パッケージの作成者を識別する情報、別のパッケージに対する前記パッケージの依存関係、および前記パッケージが準拠するパッケージ化スキーマを含むパッケージ情報を格納することをさらに含むことを特徴とする請求項19に記載の方法。
- リンク付けフレームワークにプラグインされた場合、前記リンク付けフレームが、前記ワークフローエンジン、前記フォームフレームワーク、または前記アーティファクトストアのいずれか1つの中のアイテムを、前記ワークフローエンジン、前記フォームフレームワーク、または前記アーティファクトストアの別の1つの中のアイテムにリンクすることができるようにするリンク付け情報を、前記パッケージの中に格納することをさらに含むことを特徴とする請求項19に記載の方法。
- 前記プロセス定義情報を前記格納することは、前記プロセス定義情報を宣言コードとして形成することを含み、前記ワークフロー定義情報、前記フォーム定義情報、および前記アーティファクト定義情報は、それぞれ、前記ワークフローエンジン、前記フォームフレームワーク、および前記アーティファクトストアによって実施される言語におけるコードのそれぞれの部分を含むことを特徴とする請求項19に記載の方法。
- 他のプロセス定義情報を含む別のパッケージに対するリファレンスを、前記パッケージの中に格納することをさらに含むことを特徴とする請求項22に記載の方法。
- 前記プロセス定義情報は、リンク付けフレームワークにプラグインされた場合、前記リンク付けフレームワークが、前記ワークフローエンジン、前記フォームフレームワーク、および前記アーティファクトストア異なる物の上に格納された前記プロセス定義情報の異なる部分によって定義された異なるアイテムをリンクすることができるようにするリンク情報をさらに含むことを特徴とする請求項19に記載の方法。
- 前記プロセス定義情報は、ポータルフレームワークにプラグインされた場合、前記ポータルフレームワークが、前記プロセス定義情報によって定義される前記プロセスの一部であるポータルを表示することができるようにするポータル情報をさらに含むことを特徴とする請求項19に記載の方法。
- 前記プロセス定義情報は、知識フレームワークにプラグインされた場合、前記知識フレームワークが、前記プロセス定義情報によって定義される前記プロセスと関係する知識をユーザーに提供することができるようにする知識情報をさらに含むことを特徴とする請求項25に記載の方法。
- パッケージを格納する1つまたは複数の揮発性コンピュータ可読媒体または1つまたは複数の不揮発性コンピュータ可読媒体であって、
前記パッケージは、
IT(情報技術)スタックにプラグインされて、前記ITスタックが、宣言コードによって定義されるプロセスを実行することができるようにすることが可能である、前記プロセスのワークフロー、前記プロセスのアーティファクトのタイプ、および前記プロセスの形態を含むビジネスプロセスまたはIT管理プロセスを定義する前記宣言コードと、
前記パッケージを識別するパッケージ識別情報と、
前記パッケージがフォーマットされるスキーマ、またはスキーマに対するリファレンスを含むスキーマ情報とを含むことを特徴とする媒体。 - 前記パッケージ識別情報は、前記パッケージの製造者または作成者、前記パッケージのバージョン番号、前記パッケージが依存する別のパッケージ、または前記パッケージを認証するためのセキュリティ証明書の2つ以上を含むことを特徴とする請求項27に記載の1つまたは複数のコンピュータ可読媒体。
- 前記宣言コードは、システム定義モデル化言語に準拠することを特徴とする請求項27に記載の1つまたは複数のコンピュータ可読媒体。
- 前記ビジネスプロセスまたはIT管理プロセスを定義する宣言コードは、前記ITスタックにおいてワークフローフレームワークによって使用されることが可能な部分、前記ITスタックにおいてフォームフレームワークによって使用されることが可能な部分、および前記ITスタックにおいてアーティファクトストアによって使用されることが可能な部分を含むことを特徴とする請求項27に記載の1つまたは複数のコンピュータ可読媒体。
- 前記ワークフローフレームワーク、前記フォームフレームワーク、および前記アーティファクトストアは、その他の構成要素とは無関係にインストールされて、使用されることが可能な前記ITスタックの別々の自律的な構成要素であることを特徴とする請求項30に記載の1つまたは複数のコンピュータ可読媒体。
- 前記アーティファクトストアは、構成アイテム、および前記構成アイテム間の関係を格納することを特徴とする請求項31に記載の1つまたは複数のコンピュータ可読媒体。
- 前記アーティファクトストアは、CMDB(構成管理データベース)を含むことを特徴とする請求項32に記載の1つまたは複数のコンピュータ可読媒体。
- 前記ビジネスプロセスまたは前記ITプロセスを定義する前記宣言コードは、前記プロセスに関与する人々または役割、前記ITスタックを介する、前記人々または前記役割へのアクティビティフロー、および/または前記人々または前記役割からのアクティビティフローを定義することを特徴とする請求項27に記載の1つまたは複数のコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/379,964 US20070250812A1 (en) | 2006-04-24 | 2006-04-24 | Process Encoding |
PCT/US2007/005798 WO2007130204A1 (en) | 2006-04-24 | 2007-03-08 | Process encoding |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009534773A true JP2009534773A (ja) | 2009-09-24 |
Family
ID=38620903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009507681A Pending JP2009534773A (ja) | 2006-04-24 | 2007-03-08 | プロセス符号化 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070250812A1 (ja) |
EP (1) | EP2024848A4 (ja) |
JP (1) | JP2009534773A (ja) |
KR (1) | KR20090009813A (ja) |
CN (1) | CN101432715B (ja) |
WO (1) | WO2007130204A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7756828B2 (en) * | 2006-02-28 | 2010-07-13 | Microsoft Corporation | Configuration management database state model |
US10838714B2 (en) | 2006-04-24 | 2020-11-17 | Servicenow, Inc. | Applying packages to configure software stacks |
US7971187B2 (en) * | 2006-04-24 | 2011-06-28 | Microsoft Corporation | Configurable software stack |
US9122719B2 (en) * | 2006-04-28 | 2015-09-01 | Bmc Software, Inc. | Database application federation |
US20070282801A1 (en) * | 2006-06-05 | 2007-12-06 | Ajay A Apte | Dynamically creating and executing an application lifecycle management operation |
US8745188B2 (en) | 2010-06-07 | 2014-06-03 | Novell, Inc. | System and method for managing changes in a network datacenter |
US8661444B2 (en) * | 2011-05-17 | 2014-02-25 | International Business Machines Corporation | Creation of flexible workflows using artifacts |
WO2013142433A2 (en) * | 2012-03-19 | 2013-09-26 | Enterpriseweb Llc | Declarative software application meta-model and system for self-modification |
JP5853828B2 (ja) * | 2012-03-30 | 2016-02-09 | 富士通株式会社 | ワークフロー作成方法、プログラム |
US11215961B2 (en) * | 2019-08-30 | 2022-01-04 | Tata Consultancy Services Limited | System and method of declarative modeling of a process for automation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020138321A1 (en) * | 2001-03-20 | 2002-09-26 | Applied Materials, Inc. | Fault tolerant and automated computer software workflow |
JP2004046895A (ja) * | 2003-09-08 | 2004-02-12 | Toshiba Corp | ワークフロー変換方法 |
US20040078105A1 (en) * | 2002-09-03 | 2004-04-22 | Charles Moon | System and method for workflow process management |
US20040111284A1 (en) * | 2002-08-26 | 2004-06-10 | Uijttenbroek Adriaan Anton | Method and system to perform work units through action and resource entities |
US20050044173A1 (en) * | 2003-02-28 | 2005-02-24 | Olander Daryl B. | System and method for implementing business processes in a portal |
JP2005063404A (ja) * | 2003-07-31 | 2005-03-10 | Fujitsu Ltd | Xmlドリブンアーキテクチャにおける情報処理方法及びプログラム |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04195461A (ja) * | 1990-11-28 | 1992-07-15 | Hitachi Ltd | 日程表作成システム |
US6298476B1 (en) * | 1995-12-04 | 2001-10-02 | International Business Machines Corporation | Object oriented software build framework mechanism |
US5754857A (en) * | 1995-12-08 | 1998-05-19 | Sun Microsystems, Inc. | Distributed asynchronous workflow on the net |
US5848394A (en) * | 1996-09-18 | 1998-12-08 | Leonard & Caroline White | Method and system for producing a work breakdown structure for a project |
US5950010A (en) * | 1996-11-25 | 1999-09-07 | J.D. Edwards World Source Co. | System and method for customized application package building and installation |
US5890161A (en) * | 1997-10-28 | 1999-03-30 | Microsoft Corporation | Automatic transaction processing of component-based server applications |
US6208345B1 (en) * | 1998-04-15 | 2001-03-27 | Adc Telecommunications, Inc. | Visual data integration system and method |
US6880155B2 (en) * | 1999-02-02 | 2005-04-12 | Sun Microsystems, Inc. | Token-based linking |
JP2000305796A (ja) * | 1999-04-22 | 2000-11-02 | Hitachi Ltd | 電子計算機間のジョブ転送方法およびジョブ転送システム |
US6876993B2 (en) * | 2001-09-14 | 2005-04-05 | International Business Machines Corporation | Method and system for generating management solutions |
US7506302B2 (en) * | 2002-10-22 | 2009-03-17 | The Boeing Company | System and methods for business process modeling |
US7610575B2 (en) * | 2003-01-08 | 2009-10-27 | Consona Crm Inc. | System and method for the composition, generation, integration and execution of business processes over a network |
US20040176968A1 (en) * | 2003-03-07 | 2004-09-09 | Microsoft Corporation | Systems and methods for dynamically configuring business processes |
US20040187140A1 (en) * | 2003-03-21 | 2004-09-23 | Werner Aigner | Application framework |
US7240327B2 (en) * | 2003-06-04 | 2007-07-03 | Sap Ag | Cross-platform development for devices with heterogeneous capabilities |
US20050096937A1 (en) * | 2003-11-04 | 2005-05-05 | Subash Ghaisas S. | Method of automation of business processes and apparatus therefor |
US8533233B2 (en) * | 2004-01-21 | 2013-09-10 | Siemens Industry, Inc. | Generic framework for porting legacy process automation assets to a new control system |
US20050188203A1 (en) * | 2004-02-19 | 2005-08-25 | Jp Mobile Operating L.P. | Method for packaging information with digitally signed software without breaking signature |
US20060064481A1 (en) * | 2004-09-17 | 2006-03-23 | Anthony Baron | Methods for service monitoring and control |
US20060112122A1 (en) * | 2004-11-23 | 2006-05-25 | International Business Machines Corporation | Method, system, and storage medium for implementing business process modules |
US8239498B2 (en) * | 2005-10-28 | 2012-08-07 | Bank Of America Corporation | System and method for facilitating the implementation of changes to the configuration of resources in an enterprise |
-
2006
- 2006-04-24 US US11/379,964 patent/US20070250812A1/en not_active Abandoned
-
2007
- 2007-03-08 EP EP07752492A patent/EP2024848A4/en not_active Ceased
- 2007-03-08 CN CN2007800149048A patent/CN101432715B/zh active Active
- 2007-03-08 WO PCT/US2007/005798 patent/WO2007130204A1/en active Application Filing
- 2007-03-08 JP JP2009507681A patent/JP2009534773A/ja active Pending
- 2007-03-08 KR KR1020087025431A patent/KR20090009813A/ko not_active Application Discontinuation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020138321A1 (en) * | 2001-03-20 | 2002-09-26 | Applied Materials, Inc. | Fault tolerant and automated computer software workflow |
US20040111284A1 (en) * | 2002-08-26 | 2004-06-10 | Uijttenbroek Adriaan Anton | Method and system to perform work units through action and resource entities |
US20040078105A1 (en) * | 2002-09-03 | 2004-04-22 | Charles Moon | System and method for workflow process management |
US20050044173A1 (en) * | 2003-02-28 | 2005-02-24 | Olander Daryl B. | System and method for implementing business processes in a portal |
JP2005063404A (ja) * | 2003-07-31 | 2005-03-10 | Fujitsu Ltd | Xmlドリブンアーキテクチャにおける情報処理方法及びプログラム |
JP2004046895A (ja) * | 2003-09-08 | 2004-02-12 | Toshiba Corp | ワークフロー変換方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2024848A1 (en) | 2009-02-18 |
CN101432715A (zh) | 2009-05-13 |
KR20090009813A (ko) | 2009-01-23 |
US20070250812A1 (en) | 2007-10-25 |
CN101432715B (zh) | 2011-06-29 |
EP2024848A4 (en) | 2011-07-06 |
WO2007130204A1 (en) | 2007-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7971187B2 (en) | Configurable software stack | |
US7873940B2 (en) | Providing packages for configuring software stacks | |
JP2009534773A (ja) | プロセス符号化 | |
CN103336705B (zh) | 脚本处理和工作流系统间的自动转码和语义自适应 | |
US8015546B2 (en) | Rapidly assembling and deploying selected software solutions | |
US8250521B2 (en) | Method and apparatus for the design and development of service-oriented architecture (SOA) solutions | |
US8271949B2 (en) | Self-healing factory processes in a software factory | |
US7895572B2 (en) | Systems and methods for enterprise software management | |
US9852382B2 (en) | Dynamic human workflow task assignment using business rules | |
KR20060087996A (ko) | 작업 흐름 도메인에서 횡단적인 거동 관심사를 모델링하는컴퓨터 구현 방법 | |
US9256400B2 (en) | Decision service manager | |
US20130254162A1 (en) | Governing information | |
Zhou et al. | Legacy asset analysis and integration in model-driven soa solution | |
US20140278814A1 (en) | Contract-based process integration | |
US10838714B2 (en) | Applying packages to configure software stacks | |
Annett | Working with Legacy Systems: A practical guide to looking after and maintaining the systems we inherit | |
Krishna et al. | A methodology for evolving e-contracts using templates | |
US10644939B2 (en) | Decision service manager | |
Ellermann et al. | Microsoft system center optimizing service manager | |
Chen et al. | DRIVE: A tool for developing, deploying, and managing distributed sensor and actuator applications | |
Banerjee et al. | Evaluation of object oriented requirements engineering frameworks: A study | |
Youssef | Developing an enterprise operating system for the monitoring and control of enterprise operations | |
Popović et al. | A domain-specific language for managing ETL processes | |
WO2023096504A1 (en) | Reconfigurable declarative generation of business data systems from a business ontology, instance data, annotations and taxonomy | |
CN117940891A (zh) | 管理应用、尤其是开发包括事件工件的应用的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111104 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120206 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120727 |