図面 (/)

技術 変更管理システム、変更管理方法および変更管理プログラム

出願人 日本電気株式会社バンダービルト・ユニバーシティ
発明者 黒田貴之アニルダスレッシュゴカリェ
出願日 2015年4月24日 (5年0ヶ月経過) 出願番号 2015-089590
公開日 2015年12月3日 (4年5ヶ月経過) 公開番号 2015-215887
状態 特許登録済
技術分野 特定用途計算機
主要キーワード 角丸四角形 変更計画 遷移順序 コンポネント 導出結果 接続部同士 一行程 適切な作業
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2015年12月3日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

状態マシンを含むシステムの定義から多数の状態マシン群の情報を効率的に作成できる変更管理システムを提供する。

解決手段

変更管理システム10は、システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成するシステム定義展開部11を含み、システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、プリミティブは、任意個のワイヤポートを含み、ワイヤポートは、1つの状態マシンを含み、ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、システム定義展開部11は、プリミティブの既存の定義をワイヤリングで接続することによって、状態マシン群の情報を作成する。

概要

背景

変更管理の目的は、あるシステムを変更する際に生じる、変更するシステムの管理者および変更作業者の手間と、変更するシステムの利用者への影響を少なくすることである。変更するシステムが、例えば、複数の部品から構成されるような複雑なシステムである場合、変更作業は複雑になる。変更作業が複雑になると、作業者の手間や、作業者の作業を監督する管理者の手間は増大する。その結果、システム利用者への影響も増大する。

特に、システムを構成する部品間に依存性が存在する場合、各部品に対する変更作業の順序が問題になるため、作業が複雑になりやすい。部品間の依存性は、例えば、部品Aと部品Bがある場合、部品Aが正しく機能するためには部品Bが正しく機能することが必要であるというような、2つの要素間の関係性である。

上記の例の場合、部品Aは部品Bに依存するという。このような部品Aと部品Bから構成されるシステムを構築する作業では、最初に部品Bを構築し、次に部品Aを構築するというように、実施する作業に順序性が求められる。

このような依存性を考慮しつつ、システムの変更に必要な作業の計画を自動的に作成するシステムを変更管理システムと呼ぶ。ただし、本発明における変更管理システムは、各部品の現在の状態(現在状態)と、変更後の要求される状態(要求状態)とを入力データとして、必要な作業と適切な作業手順を導出するシステムである。変更管理システムでは、予め部品間の依存性に関する情報、および部品に対する作業に関する情報が定義されている。

上記の変更管理システムを用いることで、管理者は、複雑な変更作業の実施に効果的な作業手順を効率的に作成できる。また、作業者も、作成された効果的な作業手順に基づいて、効率的に作業を実施できる。その結果、変更されるシステムの利用者への影響も少なくなることが期待される。

このような変更管理システムに関して、既に多数の関連研究や関連製品が知られている。非特許文献1には、管理対象のシステムを複数の状態マシン群として定義する方法が記載されている。非特許文献1に記載された方法では、各状態マシン群が持つ遷移遷移条件は、遷移が含まれる状態マシン以外の状態マシン内の状態を用いて記述される。

状態マシンは、システムを構成する部品を表す。状態マシンの状態は、部品がとり得る状態を表す。また、遷移には、部品の状態を変更する際の作業の情報が含まれる。遷移条件は、遷移に含まれる情報に対応する作業が持つ依存性を表す。

以上のようなシステムの定義方法に基づく変更計画は、計画可能な状況が広範である点や、定義の再利用可能な点において、他の手法を用いた変更計画よりも有効であると期待される。本発明において、上記の定義方法に基づくシステムが対象のシステムになる。以下、対象になるシステムを単に変更管理システムと呼ぶ。

上記の状態マシン群を用いて作業手順を計算するには、最初に全ての状態マシンに現在状態を設定し、少なくとも1つの状態マシンに要求状態を設定する。現在状態と要求状態が設定された状態マシン群から、遷移条件を満たしつつ、要求状態が指定された全ての状態マシンを現在状態から要求状態に遷移させる遷移順序を求めることによって、作業手順が計算される。すなわち、変更計画の作成が実施される。非特許文献1には、作業手順の計算手法の一例が記載されている。

概要

状態マシンを含むシステムの定義から多数の状態マシン群の情報を効率的に作成できる変更管理システムを提供する。変更管理システム10は、システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成するシステム定義展開部11を含み、システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、プリミティブは、任意個のワイヤポートを含み、ワイヤポートは、1つの状態マシンを含み、ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、システム定義展開部11は、プリミティブの既存の定義をワイヤリングで接続することによって、状態マシン群の情報を作成する。

目的

変更管理の目的は、あるシステムを変更する際に生じる、変更するシステムの管理者および変更作業者の手間と、変更するシステムの利用者への影響を少なくすることである

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成するシステム定義展開部を含み、前記システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、前記プリミティブは、任意個のワイヤポートを含み、前記ワイヤポートは、1つの状態マシンを含み、前記ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、前記システム定義展開部は、前記プリミティブの既存の定義を前記ワイヤリングで接続することによって、前記状態マシン群の情報を作成することを特徴とする変更管理ステム

請求項2

ワイヤポートに含まれる状態マシン内の状態は、前記ワイヤポートを含むプリミティブに含まれる他のワイヤポートが含む状態マシン内の状態に関連する遷移条件に従って他の状態に遷移し、システム定義展開部は、システム定義内の全てのワイヤリングそれぞれから導出される状態マシンを含み、ワイヤポートに関連する遷移条件を前記ワイヤポートと接続するワイヤリングから導出される状態マシンに関連付け直すように状態マシン群の情報を作成する請求項1記載の変更管理システム。

請求項3

プリミティブは、任意個のパートを含み、前記パートは、1つの状態マシンを含み、前記プリミティブ内の状態マシン内の状態は、前記プリミティブに含まれる他のパートまたはワイヤポートが含む状態マシン内の状態に関連する遷移条件に従って他の状態に遷移し、システム定義展開部は、システム定義内の全てのプリミティブに含まれる全てのパートそれぞれから導出される状態マシンと、前記全てのパート間の遷移条件とを含むように状態マシン群の情報を作成する請求項1記載の変更管理システム。

請求項4

システム定義は、1または複数のコンポジットを含み、前記コンポジットは、1または複数のプリミティブまたはコンポジットと、任意個のワイヤポートと、任意個のワイヤリングと、任意個のプロモートとを含み、前記ワイヤリングは、前記コンポジットが含む異なるプリミティブまたはコンポジットに含まれる2つのワイヤポートと接続し、前記プロモートは、前記コンポジットが含むワイヤポートと、前記コンポジットが含むプリミティブまたはコンポジットに含まれるワイヤポートとを接続し、前記コンポジットが含むワイヤポート、コンポジットまたはプリミティブのいずれかに含まれる任意の状態マシン内の状態は、他の状態マシン内の状態に関連する遷移条件に従って他の状態に遷移し、システム定義展開部は、コンポジットのワイヤポートに接続されたワイヤリングに関連付けられている遷移条件を、前記ワイヤポートとプロモートで接続された前記コンポジット内部のワイヤポートに移す請求項1記載の変更管理システム。

請求項5

現在のシステム定義と新規のシステム定義の2つのシステム定義から、前記2つのシステム定義のいずれかに含まれる全てのプリミティブとワイヤリングを重複無く含むシステム差分定義を生成するシステム定義比較部を含む請求項1記載の変更管理システム。

請求項6

システム定義比較部は、現在のシステム定義と新規のシステム定義の2つのシステム定義に含まれるプリミティブを維持または更新するプリミティブと判断し、現在のシステム定義のみに含まれるプリミティブを廃止するプリミティブと判断し、新規のシステム定義のみに含まれるプリミティブを追加するプリミティブと判断し、維持または更新するプリミティブ同士を接続するワイヤリングを維持または更新するワイヤリングと判断し、廃止するプリミティブを少なくとも1つ接続するワイヤリングを廃止するワイヤリングと判断し、追加するプリミティブを少なくとも1つ接続するワイヤリングを追加するワイヤリングと判断する請求項5記載の変更管理システム。

請求項7

システム定義展開部は、システム差分定義から、維持または更新されるプリミティブ内のパートから、現在のシステム定義における前記パートの状態を現在状態、新規のシステム定義における前記パートの状態を要求状態として含む状態マシンを生成し、廃止されるプリミティブ内のパートから、現在のシステム定義における前記パートの状態を現在状態として含む状態マシンを生成し、追加されるプリミティブ内のパートから、前記パートの初期の状態を現在状態、新規のシステム定義における前記パートの状態を要求状態として含む状態マシンを生成し、維持または更新されるワイヤリングから、現在状態と要求状態を共に接続状態として含む状態マシンを生成し、廃止されるワイヤリングから、現在状態を接続状態、要求状態を非接続状態として含む状態マシンを生成し、追加されるワイヤリングから、現在状態を非接続状態、要求状態を接続状態として含む状態マシンを生成する請求項6記載の変更管理システム。

請求項8

システム定義展開部は、ワイヤリングを接続する遷移に、同一のワイヤポートに接続する他のワイヤリングが非接続であることを条件にする遷移条件を追加する請求項6記載の変更管理システム。

請求項9

システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成する変更管理システムにおいて実行される変更管理方法であって、前記システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、前記プリミティブは、任意個のワイヤポートを含み、前記ワイヤポートは、1つの状態マシンを含み、前記ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、前記プリミティブの既存の定義を前記ワイヤリングで接続することによって、前記状態マシン群の情報を作成することを特徴とする変更管理方法。

請求項10

コンピュータで実行されるときに、システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成し、前記システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、前記プリミティブは、任意個のワイヤポートを含み、前記ワイヤポートは、1つの状態マシンを含み、前記ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、前記プリミティブの既存の定義を前記ワイヤリングで接続することによって、前記状態マシン群の情報を作成する変更管理プログラムを記録した非一時的なコンピュータ読み取り可能な記録媒体

技術分野

0001

本発明は、変更管理ステム、変更管理方法および変更管理プログラムに関する。

背景技術

0002

変更管理の目的は、あるシステムを変更する際に生じる、変更するシステムの管理者および変更作業者の手間と、変更するシステムの利用者への影響を少なくすることである。変更するシステムが、例えば、複数の部品から構成されるような複雑なシステムである場合、変更作業は複雑になる。変更作業が複雑になると、作業者の手間や、作業者の作業を監督する管理者の手間は増大する。その結果、システム利用者への影響も増大する。

0003

特に、システムを構成する部品間に依存性が存在する場合、各部品に対する変更作業の順序が問題になるため、作業が複雑になりやすい。部品間の依存性は、例えば、部品Aと部品Bがある場合、部品Aが正しく機能するためには部品Bが正しく機能することが必要であるというような、2つの要素間の関係性である。

0004

上記の例の場合、部品Aは部品Bに依存するという。このような部品Aと部品Bから構成されるシステムを構築する作業では、最初に部品Bを構築し、次に部品Aを構築するというように、実施する作業に順序性が求められる。

0005

このような依存性を考慮しつつ、システムの変更に必要な作業の計画を自動的に作成するシステムを変更管理システムと呼ぶ。ただし、本発明における変更管理システムは、各部品の現在の状態(現在状態)と、変更後の要求される状態(要求状態)とを入力データとして、必要な作業と適切な作業手順を導出するシステムである。変更管理システムでは、予め部品間の依存性に関する情報、および部品に対する作業に関する情報が定義されている。

0006

上記の変更管理システムを用いることで、管理者は、複雑な変更作業の実施に効果的な作業手順を効率的に作成できる。また、作業者も、作成された効果的な作業手順に基づいて、効率的に作業を実施できる。その結果、変更されるシステムの利用者への影響も少なくなることが期待される。

0007

このような変更管理システムに関して、既に多数の関連研究や関連製品が知られている。非特許文献1には、管理対象のシステムを複数の状態マシン群として定義する方法が記載されている。非特許文献1に記載された方法では、各状態マシン群が持つ遷移遷移条件は、遷移が含まれる状態マシン以外の状態マシン内の状態を用いて記述される。

0008

状態マシンは、システムを構成する部品を表す。状態マシンの状態は、部品がとり得る状態を表す。また、遷移には、部品の状態を変更する際の作業の情報が含まれる。遷移条件は、遷移に含まれる情報に対応する作業が持つ依存性を表す。

0009

以上のようなシステムの定義方法に基づく変更計画は、計画可能な状況が広範である点や、定義の再利用可能な点において、他の手法を用いた変更計画よりも有効であると期待される。本発明において、上記の定義方法に基づくシステムが対象のシステムになる。以下、対象になるシステムを単に変更管理システムと呼ぶ。

0010

上記の状態マシン群を用いて作業手順を計算するには、最初に全ての状態マシンに現在状態を設定し、少なくとも1つの状態マシンに要求状態を設定する。現在状態と要求状態が設定された状態マシン群から、遷移条件を満たしつつ、要求状態が指定された全ての状態マシンを現在状態から要求状態に遷移させる遷移順序を求めることによって、作業手順が計算される。すなわち、変更計画の作成が実施される。非特許文献1には、作業手順の計算手法の一例が記載されている。

先行技術

0011

S. Hagen and A. Kemper, “Model-based planning for state-relatedchanges to infrastructure and software as a service instances in largedata centers,” in Cloud Computing (CLOUD), 2010IEEE 3rd InternationalConference on, July 2010, pp. 11-18.

発明が解決しようとする課題

0012

非特許文献1に記載された手法に基づいて変更計画の作成を実施するためには、管理対象システムを示す状態マシン群を記述することが求められる。特に、多数の部品から構成される実用的なシステムを対象にする場合、多くの状態マシンを記述することが求められる。多くの状態マシンを記述する場合、状態マシンを記述するための工数の増加が問題になる。非特許文献1において、状態マシンを記述する作業は、特に取り扱われていない。

0013

そこで、本発明は、状態マシンを含むシステムの定義から多数の状態マシン群の情報を効率的に作成できる変更管理システム、変更管理方法および変更管理プログラムを提供することを目的とする。

課題を解決するための手段

0014

本発明による変更管理システムは、システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成するシステム定義展開部を含み、システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、プリミティブは、任意個のワイヤポートを含み、ワイヤポートは、1つの状態マシンを含み、ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、システム定義展開部は、プリミティブの既存の定義をワイヤリングで接続することによって、状態マシン群の情報を作成することを特徴とする。

0015

本発明による変更管理方法は、システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成する変更管理システムにおいて実行される変更管理方法であって、システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、プリミティブは、任意個のワイヤポートを含み、ワイヤポートは、1つの状態マシンを含み、ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、プリミティブの既存の定義をワイヤリングで接続することによって、状態マシン群の情報を作成することを特徴とする。

0016

本発明による変更管理プログラムを記録した非一時的なコンピュータ読み取り可能な記録媒体は、コンピュータで実行されるときに、システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成し、システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、プリミティブは、任意個のワイヤポートを含み、ワイヤポートは、1つの状態マシンを含み、ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、プリミティブの既存の定義をワイヤリングで接続することによって、状態マシン群の情報を作成する変更管理プログラムを記憶する。

発明の効果

0017

本発明によれば、状態マシンを含むシステムの定義から多数の状態マシン群の情報を効率的に作成できる。

図面の簡単な説明

0018

本発明による変更管理システムの第1の実施形態の構成例を示すブロック図である。
状態マシン群の概念を示す説明図である。
状態マシン群のテキストによる定義の一例を示す説明図である。
遷移順序の導出結果の一例を示す説明図である。
プリミティブの一例を示す説明図である。
プリミティブのテキストによる定義の一例を示す説明図である。
ワイヤインタフェースのテキストによる定義の一例を示す説明図である。
接続されたプリミティブの一例を示す説明図である。
接続されたプリミティブから展開された状態マシン群の一例を示す説明図である。
システムの変更計画の生成結果の一例を示す説明図である。
コンポジットの一例を示す説明図である。
コンポジットのテキストによる定義の一例を示す説明図である。
プリミティブとコンポジットとで構成されるシステム定義の一例を示す説明図である。
プリミティブの他の一例を示す説明図である。
コンポジットから展開されたプリミティブの一例を示す説明図である。
プリミティブから展開されたシステム定義の状態マシン群の一例を示す説明図である。
変更管理システム100によるシステム定義展開処理の動作を示すフローチャートである。
変更管理システム100によるコンポジット展開処理の動作を示すフローチャートである。
本発明による変更管理システムの第2の実施形態の構成例を示すブロック図である。
2つの異なるバージョンのシステム定義の一例を示す説明図である。
プリミティブの他の一例を示す説明図である。
2つのシステム定義から生成されるシステム差分定義の一例を示す説明図である。
システム差分定義から展開される状態マシン群の一例を示す説明図である。
変更管理システム100によるシステム差分定義の生成処理と展開処理の動作を示すフローチャートである。
変更管理システム100によるシステム差分定義生成処理の動作を示すフローチャートである。
変更管理システム100によるシステム差分定義展開処理の動作を示すフローチャートである。
本発明による変更管理システムの概要を示すブロック図である。

実施例

0019

実施形態1.
[構成の説明]
以下、本発明の第1の実施形態を、図面を参照して説明する。図1は、本発明による変更管理システムの第1の実施形態の構成例を示すブロック図である。図1に示す変更管理システム100は、システム定義展開部101を含む。

0020

システム定義展開部101は、システム定義を、1または複数の状態マシンから構成される状態マシン群に展開する機能を有する。システム定義展開部101は、外部の入出力部201と、通信ネットワークなどを介して通信可能に接続されている。

0021

入出力部201には、システム定義が入力される。システム定義展開部101は、入出力部201を介して、入力されたシステム定義を受信する。システム定義展開部101は、受信したシステム定義を状態マシン群に変換し、入出力部201に送信する。入出力部201は、送信された状態マシン群を出力する。

0022

本実施形態における状態マシン群は、管理対象になるシステム、および管理対象になるシステムに対する変更要求を示す。状態マシン群は、1または複数の状態マシンから構成される。状態マシンは、システムを構成する部品を示す。

0023

状態マシンは、複数の状態を含む。状態は、同一状態マシン内の他の状態への遷移を含む。状態マシンは、必ず1つの現在状態と、任意個の要求状態を含む。ただし、要求状態が複数指定された場合、要求状態は、指定されたいずれかの状態であればよい。要求状態が指定されない場合、要求状態は、どの状態でもよい。また、遷移の遷移条件は、遷移が含まれる状態マシン以外の状態マシン内の状態によって指定される。

0024

図2は、状態マシン群の概念を示す説明図である。図2において、状態マシンを長方形で表す。また、状態を楕円形で表す。また、遷移を実線の矢印で表す。また、遷移条件を点線の矢印で表す。また、現在状態を破線の楕円形で表す。また、要求状態を黒塗りの楕円形で表す。また、遷移を示す矢印の途中に存在する丸印は、遷移条件の矢印の始点を示す。他の図においても、図2と同じ方法で状態マシンなどが示される。

0025

図2は、"e1"と"e2"の2つの状態マシンから構成される状態マシン群を示す。"e1"と"e2"は、共に"s1"と"s2"の2つの状態を含む。

0026

図2に示すように、"e1"における"s1"は、"s2"への遷移を含む。また、"e2"における"s1"と"s2"は、互いの状態への遷移を含む。また、"e2"の"s1"から"s2"への遷移は、"e1"の状態"s2"を遷移条件にする。また、"e1"は、"s1"を現在状態にする。また、"e2"は、"s1"を現在状態にし、"s2"を要求状態にする。

0027

以下、便宜的に、例えば、状態マシン"e1"の状態"s1"のことを"e1(s1)"と記載する。また、状態マシン"e1"の状態"s1"から状態"s2"への遷移を、"e1(s1,s2)"と記載する。

0028

図3は、状態マシン群のテキストによる定義の一例を示す説明図である。図3は、XML(Extensible Markup Language)形式を用いた表現の一例として、図2に示す状態マシン群の定義例を示す。

0029

図3に示すように、例えば、状態マシンは、"stateMachine"タグによって表される。また、状態マシンのIDは、"stateMachine"の"id"属性によって表される。また、状態マシンが持つ状態は、"stateMachine"タグの子要素としての"state"タグによって表される。また、状態のIDは、"state"の"id"属性によって表される。

0030

また、図3に示すように、状態が持つ遷移は、"state"タグの子要素としての"transition"タグによって表される。また、遷移先の状態を示すIDは、"transition"の"to"属性によって表される。遷移に伴って実行されるシステム変更タスクは、"transition"タグの"task"属性によって表される。

0031

また、図3に示すように、遷移が持つ遷移条件は、"transition"タグの子要素としての"conditions"タグによって表される。遷移が状態マシン"e1"の状態"s2"を遷移条件にする場合、遷移条件は、"conditions"タグの子要素として"depends"タグを記述し、"depends"の"on"属性に"e1(s2)"を記述することによって表される。1つの遷移が複数の遷移条件を持つ場合、複数の遷移条件を記述するには、"conditions"タグの子要素として複数の"depends"タグを記述すればよい。

0032

システム変更タスクは、システム変更タスクがコンピュータによって実行される場合、例えば、プログラムとして記述される。また、人間の作業者によって実行される場合、システム変更タスクは、例えば、自然言語で記述される。

0033

図3に示す例では、システム変更タスクが人間の作業者によって実行される場合が想定されているため、システム変更タスクが自然言語で記述されている。なお、"task"属性に直接内容が記述される代わりに、外部のファイルにシステム変更タスクが記述され、"task"属性にファイルへの参照ポインタが記述されてもよい。また、図3に示すような一行程度の説明の代わりに、システム変更タスクに関する詳細な説明が記述されてもよい。

0034

上述したような状態マシン群に基づくシステムの変更計画の作成は、常に全ての遷移条件を満たしつつ、要求状態が指定された全ての状態マシンの状態を現在状態から要求状態へ遷移させるような遷移順序を発見することによって達成される。図2に示す状態マシン群の例であれば、"(e1(s1,s2), e2(s1,s2))"という遷移順序が、最も単純な唯一の解になる。

0035

図4は、遷移順序の導出結果の一例を示す説明図である。図4において、左の角丸四角形は遷移を示す。また、遷移間の矢印は、遷移間の依存性を表す。すなわち、遷移間の矢印は、"e1(s1,s2)"が実施された後にのみ"e2(s1,s2)"が実施されるという関係性を示す。

0036

また、図4において、遷移から点線で結ばれている底辺曲線のブロックは、遷移に関連付けられたシステム変更タスクを示す。実施される遷移の順序通りにシステム変更タスクが実行されることによって、システムの変更計画が正しく実行される。

0037

次に、本実施形態におけるシステム定義を説明する。本実施形態では、状態マシン群を所定の構造で表現することによって、より大きく複雑なシステムを示す状態マシン群が簡潔に定義される。システム定義は、システム定義展開部101によって状態マシン群に変換される。

0038

本実施形態において、システム定義は、システムを構成する部品を表す概念であるコンポネント集合によって表現される。コンポネントは、システムを構成する状態マシン群の定義の一部を含む。

0039

コンポネントの種類には、プリミティブとコンポジットがある。プリミティブは、システムを構成する特定の部品を表す。コンポジットは、いくつかのコンポネントが組み合せられた構成を表す。コンポジットは、複数のコンポジットやプリミティブを含む。すなわち、コンポジットを用いると、より大きく複雑な部品が簡潔に定義される。ただし、コンポジットは、状態マシン群に変換される前に、全てプリミティブに分解される。

0040

図5は、プリミティブの一例を示す説明図である。図5(a)は、ネットワークインタフェースカードである"nic"のプリミティブの例を示す。図5(b)は、物理サーバマシンである"server"のプリミティブの例を示す。

0041

プリミティブは、主にパートとワイヤポートの2つの種類の状態マシンから構成される。パートは、プリミティブが持つ、単独で変更可能な状態マシンを表す。ワイヤポートは、プリミティブが他のプリミティブと接続する際に用いられる状態マシンを表す。パートとワイヤポートは、それぞれ独自の状態を持つため、独立した状態マシンとして表される。また、同一プリミティブ内の状態マシン間で、遷移条件が自由に設定される。

0042

本実施形態において、ワイヤポートには、アクセプトコンシュームの2種類がある。アクセプトは、他のプリミティブに含まれるコンシュームからの接続を受け付ける機能を有する。コンシュームは、他のプリミティブに含まれるアクセプトに接続する機能を有する。なお、図5において、アクセプトは縦線模様で、コンシュームは横線の模様でそれぞれ示される。アクセプトとコンシュームは、他の図においても同様の方法で示される。

0043

2つのプリミティブは、一方のプリミティブに含まれるコンシュームが、もう一方のプリミティブに含まれるアクセプトに接続することによって接続される。ただし、互いに接続するコンシュームとアクセプトは、特定の規格に従った接続部同士であることが求められる。本実施形態において、特定の規格を表す概念をワイヤインタフェースと呼ぶ。

0044

図5(b)に示す"server"は、コンシュームと、2つのアクセプトと、パートである"box"と、パートである"top"とを有する。

0045

図5に示す各ワイヤポートの近傍に記載された下線付き文字は、各ワイヤポートが従うワイヤインタフェースに対応する。例えば、図5(b)において、コンシュームはワイヤインタフェース"RS"に従う。また、上側のアクセプトはワイヤインタフェース"NW"に、下側のアクセプトはワイヤインタフェース"PCI"にそれぞれ従う。ワイヤインタフェースは、他の図においても同様の方法で示される。

0046

"RS"は、サーバラックへの設置に関するワイヤインタフェースである。"NW"は、ネットワークケーブルに関するワイヤインタフェースである。"PCI"は、PCIExpressに関するワイヤインタフェースである。

0047

各ワイヤポート内の"sep"は、ワイヤポートが非接続状態(Separate)であることを表す。また、"con"は、ワイヤポートが接続状態(Connect)であることを表す。

0048

また、"box"は、"server"が箱に入っているか否かを示すパートである。"box(out)"は、"server"が箱に入っていない状態を示す。また、"box(in)"は、"server"が箱に入っている状態を示す。

0049

また、"top"は、"server"の筐体の蓋に関するパートである。"top(open)"は、"server"の蓋が開いている状態を示す。また、"top(close)"は、"server"の蓋が閉まっている状態を示す。

0050

"box"以外の全ての状態マシンは、"box(out)"を遷移条件に指定する。その理由は、"server"が箱に入っている場合、作業者は、何の作業も実施できないためである。

0051

また、"RS"に従うコンシュームは、"top(close)"を遷移条件に指定する。その理由は、"server"をラックに設置したりラックから外したりする際、筐体の蓋が閉まっている必要があるためである。また、"top"は、"RS(sep)"を遷移条件に指定する。その理由は、蓋を開け閉めする際、"server"がラックから外れている必要があるためである。

0052

また、"RS"に従うコンシュームは、"NW(sep)"を遷移条件に指定する。その理由は、ネットワークケーブルは"server"がラックに設置された後に接続され、"server"がラックから外される前に抜かれる必要があるためである。

0053

また、"PCI"に従うアクセプトは、"top(open)"を遷移条件に指定する。その理由は、PCIExpressスロットへの部品の抜き差しをする際には、筐体の蓋が開いている必要があるためである。

0054

なお、図5は、図2と異なり、状態マシン自体から他の状態マシン内の状態に対する遷移条件に対応する矢印を示す。矢印は、状態マシン内の全ての遷移が、矢印が示す遷移条件と同様の遷移条件を持つことを示す。他の図においても、同様の表記が用いられる。

0055

図6は、プリミティブのテキストによる定義の一例を示す説明図である。図6は、JSON(JavaScript(登録商標) Object Notation)形式を用いた表現の一例として、図5(a)に示すプリミティブである"nic"をテキストで定義した例を示す。図6に示す定義は、プリミティブのIDを示すid要素と、ワイヤポートを示すports要素と、パートを示すparts要素とを持つ。ports要素は、consume要素とaccept要素を持つ。

0056

"nic"は、id要素として"nic"を、consume要素として"pciExpress"を、accept要素として"networkPort"を、parts要素として"box"をそれぞれ持つ。ports内の各要素は、ワイヤインタフェースを示すinterface要素と、状態のリストを示すstates要素を持つ。

0057

"pciExpress"は、interface要素として"pciExpress"を持ち、states要素として"connect"と"separate"を持つ。

0058

states内の各要素は、状態マシンの状態を表す。states内の各要素は、遷移可能な他の状態のリストと、状態に遷移する際の遷移条件を示す"depends"要素を持つ。

0059

"pciExpress"の状態"connect"は、"separate"への遷移を持つ。また、"pciExpress"の状態"separate"も、"connect"への遷移を持つ。各遷移は、いずれもdepends要素として"box(out)"と"networkPort(separate)"を持つ。

0060

なお、図5(a)に示すaccept要素である"networkPort"にも見られるように、ワイヤポートは、いずれも"pciExpress"と同様の状態と遷移の構造を持つ。ただし、図6に示すように、"networkPort"におけるdepends要素には、"box(out)"と"pciExpress(connect)"が指定されている。

0061

parts内の各要素は、状態のリストを示すstates要素と、現在状態を示すcurrentState要素と、要求状態を示すdesiredState要素を持つ。parts内の状態を示す要素が持つ遷移は、システム変更タスクを示すtask要素を持つ。

0062

parts要素である"box"は、"in"と"out"の2つの状態を持つ。"in"から"out"の遷移には、task要素として"nicをパッケージから取り出します。"というシステム変更タスクが記載されている。状態"out"からの遷移はないため、要素"out"の内部には何も記載されていない。

0063

"box"は、現在状態を示すcurrentState要素として"in"を持ち、要求状態を示すdesiredState要素として何も持たない。なお、プリミティブにおいて、現在状態には常に何らかの値が必要になる。よって、現在状態が設定されていなかった場合に使用されるように、初期状態が設定されてもよい。図6に示す"box"の例では、defaultState要素として"in"が設定されている。初期状態は、例えば、プリミティブが販売業者から出荷された当初の状態に基づいて設定される。

0064

なお、図6に示すように、ports内の各要素における遷移は、システム変更タスクを持たない。その理由は、システム変更タスクがワイヤインタフェースによって定義されるためである。

0065

図7は、ワイヤインタフェースのテキストによる定義の一例を示す説明図である。図7に示す例では、ワイヤインタフェースは、name要素とtasks要素のみを持つ。tasks要素は、connect要素とseparate要素のみを持つ。connect要素は、ワイヤインタフェースに部品を接続する際のシステム変更タスクを示す。separate要素は、ワイヤインタフェースから部品を取り外す際のシステム変更タスクを示す。

0066

図7は、PCIExpressのワイヤインタフェースの定義の例を示す。name要素には、"pciExpress"が記載されている。tasks内のconnect要素には、"{{consumer.id}}を{{acceptor.id}}のPCIスロットに差し込みます。"が記載されている。tasks内のseparate要素には、"{{consumer.id}}を{{acceptor.id}}のPCIスロットから抜き取ります。"が記載されている。

0067

なお、システム変更タスクは、テンプレートとして記述されていてもよい。上記の例では、"{{consumer.id}}"などの記述は、システム定義の展開処理時に適切な値に置き換えられる。例えば、ワイヤインタフェース"pciExpress"を介して"nic"のコンシュームと"server"のアクセプトが接続される場合であれば、上記のconnect要素のシステム変更タスクは、"nicをserverのPCIスロットに差し込みます。"のように変換される。

0068

図8は、接続されたプリミティブの一例を示す説明図である。図8は、プリミティブ"server"とプリミティブ"nic"とが"PCI"のワイヤインタフェースに従うワイヤポートを介して接続された様子を示す。本実施形態において、2つのワイヤポートの接続を示す概念をワイヤリングと呼ぶ。図8において、ワイヤリングは、太い曲線で示される。なお、ワイヤリングを用いたプリミティブの接続に関する定義は、後述のようにコンポジットの説明の中で説明する。

0069

図9は、接続されたプリミティブから展開された状態マシン群の一例を示す説明図である。図9は、図8に示すプリミティブとワイヤリングから構成されるシステム定義を展開することによって生成される状態マシン群を示す。

0070

システム定義の展開時に、接続していないワイヤポート、および接続していないワイヤポートに関連する遷移条件は除去される。パートは、全て状態マシンとして展開結果移管される。移管される際、各状態マシンが唯一のIDを持つように、例えば、展開元のプリミティブのIDとパートの名前が"."で連結された文字列が、状態マシンのIDとして付加される。

0071

ワイヤリング、およびワイヤリングを介して接続する両端のワイヤポートは、1つの状態マシンとして展開結果に移管される。両端のワイヤポートに関連する遷移条件は、全て状態マシンに引き継がれる。すなわち、パートからワイヤポートへの遷移条件や、ワイヤポートからパートへの遷移条件は削除される。代わりに、パートから、ワイヤポートとワイヤリング由来の状態マシンへの遷移条件や、ワイヤポートとワイヤリング由来の状態マシンからパートへの遷移条件が作成される。

0072

また、パート由来の状態マシンの現在状態と要求状態には、パートに指定されていた現在状態と要求状態が引き継がれる。本実施形態において、ワイヤポートとワイヤリング由来の状態マシンの現在状態には"separate"が、要求状態には"connect"が、それぞれ必ず設定される。また、ワイヤポートとワイヤリング由来の状態マシンの遷移やシステム変更タスクには、ワイヤポートのワイヤインタフェースに定義されている遷移やシステム変更タスクが設定される。

0073

図10は、システムの変更計画の生成結果の一例を示す説明図である。図10は、図9に示す状態マシン群に基づいて計算することによって得られるタスクの一例を示す。図10に示すように、上記に示すプリミティブの定義とプリミティブの接続の定義に基づいて、実行可能なシステム変更タスクが生成されることが分かる。

0074

次に、もう1つのコンポネントであるコンポジットを説明する。図11は、コンポジットの一例を示す説明図である。図11は、上記の"server"と"nic"を組み合わせた構成を1つの部品のように扱うためのコンポジットの例である、"serverWithNIC"を示す。

0075

コンポジットは、主に内部のコンポネントとワイヤポートから構成される。コンポジットのワイヤポートは、コンポジット内部のコンポネントのいずれかのワイヤポートを参照する。すなわち、コンポジットのワイヤポートは、参照先になるコンポジット内部のコンポネントのワイヤポートに接続されている。本実施形態において、この接続の概念をプロモートと呼ぶ。

0076

プロモートされるワイヤポートは、プロモートするワイヤポートと同じワイヤインタフェースを持つ必要がある。よって、アクセプトは、アクセプトにプロモートされる。また、コンシュームは、コンシュームにプロモートされる。

0077

また、コンポジットが持つワイヤポートや、コンポジット内部のコンポネントが持つ状態マシン間において、任意の遷移条件が定義される。

0078

システム定義を展開する際、システム定義展開部101は、コンポジット自体の定義をシステム定義から除去し、代わりに内部のコンポネントの定義をシステム定義に追加する。例えば、システム定義展開部101は、コンポジットのワイヤポートに関連付けられているワイヤリングや遷移条件を、ワイヤポートがプロモートするコンポジット内部のコンポネントのワイヤポートに関連付け直す。その結果、コンポジットの定義が、コンポジット内部のコンポネントの定義に変換される。

0079

図11に示す"serverWithNIC"の場合、ワイヤポートとして、"RS"に従う1つのコンシュームと、"NW"に従う2つのアクセプトが定義されている。なお、図11に示すように、"RS"と"NW"は、共にワイヤインタフェースである。

0080

また、図11に示すように、コンポジット内部のコンポネントとして、"nic"と"server"の2つのプリミティブが定義されている。"nic"と"server"は、ワイヤインタフェース"PCI"に従うワイヤポートを介してワイヤリングで接続されている。

0081

"serverWithNIC"内の"NW"に従う上側のアクセプトは、"server"内の"NW"に従うアクセプトにプロモートされている。また、"NW"に従う下側のアクセプトは、"nic"内の"NW"に従うアクセプトにプロモートされている。

0082

"serverWithNIC"内の"RS"に従うコンシュームは、"server"内の"RS"に従うコンシュームにプロモートされている。なお、"serverWithNIC"内の"RS"に従うコンシュームは、"NW"に従う下側のアクセプトの状態"sep"に対して遷移条件を定義する。

0083

コンポジット内のワイヤポートに関連付けられたワイヤリングや遷移条件は、展開時に全てプロモート先のワイヤポートに移管される。図11に示す例の場合、"RS"、"NW"のワイヤインタフェースにそれぞれ従う"serverWithNIC"内の各ワイヤポートが持つ遷移条件と同様の遷移条件が、"server"内にある"RS"に従うコンシュームと、"nic"内にある"NW"に従うアクセプトの間に移管される。"RS"に従うワイヤポートが持つ遷移条件は、移管される遷移条件に該当する。

0084

図12は、コンポジットのテキストによる定義の一例を示す説明図である。図12は、JSON形式を用いた表現の一例として、図11に示す"serverWithNIC"をテキストで定義した例を示す。

0085

図12に示す定義は、コンポジットのIDを示すid要素と、ワイヤポートを示すports要素と、コンポジット内部のコンポネントを示すcomponents要素と、コンポジット内部のコンポネントの接続を示すwires要素とを持つ。

0086

図12に示すports要素の構造は、図6に示すプリミティブの定義におけるports要素の構造とほぼ同様であるが、プロモートを示すpromote要素が含まれる点が異なる。components要素には、内包される各コンポネントのIDのリストが定義される。wires要素には、2つの内部コンポネントの参照先のワイヤポートから構成されるワイヤリングのリストが定義される。

0087

図12に示す例において、components要素には"server"と"nic"が定義されている。また、consume要素には"rackspace"が定義されている。また、accept要素には"networkPort1"と"networkPort2"が定義されている。

0088

"rackspace"のワイヤインタフェースには"rackspace"が定義されている。この定義は、図11に示す"RS"のワイヤインタフェースに従うコンシュームに対応する。"networkPort1"と"networkPort2"は、図11に示す"NW"のワイヤインタフェースに従う2つのアクセプトにそれぞれ対応する。

0089

"rackspace"のpromote要素には"server.rackspace"が定義されている。この定義は、"rackspace"が内部コンポネントである"server"のワイヤポート"rackspace"にプロモートされることを示す。同様に、"networkPort1"のpromote要素には"server.networkPort"が定義されている。また、"networkPort2"のpromote要素には"nic.networkPort"が定義されている。

0090

また、wires要素には、"nic.pciExpress:server.pciExpress"が定義されている。この定義は、内部コンポネント"nic"のワイヤポート"pciExpress"と、内部コンポネント"server"のワイヤポート"pciExpress"とが、ワイヤリングで接続されることを示す。

0091

なお、図8に示すようなシステム定義も、ワイヤポートを持たないコンポジットとして、図12に示す定義と同様に記述される。

0092

上記の定義方法によれば、複数のプリミティブやコンポジットを組み合わせることによって構成されるシステムが定義される。図13は、プリミティブとコンポジットとで構成されるシステム定義の一例を示す説明図である。図13において、特に示す必要のない状態の表示は省略する。

0093

図13は、上記の"serverWithNIC"と、"cable"、"switch"、および"rack"の3つのプリミティブとで構成されるコンピュータスタックのシステムの定義の例を示す。"cable"、"switch"、および"rack"の定義を、図14に示す。図14は、プリミティブの他の一例を示す説明図である。

0094

図15は、コンポジットから展開されたプリミティブの一例を示す説明図である。図15は、図13に示すコンポジットがプリミティブにまで展開された様子を示す。

0095

図16は、プリミティブから展開されたシステム定義の状態マシン群の一例を示す説明図である。図16は、図15に示すプリミティブが、さらに状態マシン群にまで展開された様子を示す。

0096

本実施形態においてシステムを定義する際、コンポジットの内部コンポネントには既に定義されたコンポネントが再利用される。図13に示す例では、"serverWithNIC"と"cable"と"switch"と"rack"の4つの定義が再利用されている。各定義を単にワイヤリングを用いてつなげることで、図16に示すような、12個の状態マシンと、状態マシン間の複雑な遷移条件とで構成される状態マシン群が簡単に定義される。

0097

なお、本実施形態のシステム定義展開部101は、例えば、非一時的なコンピュータ読み取り可能な記録媒体に記憶されたプログラムの制御に従って処理を実行するCPU(Central Processing Unit)によって実現される。

0098

[動作の説明]
以下、本実施形態の変更管理システム100の動作を図17を参照して説明する。図17は、変更管理システム100によるシステム定義展開処理の動作を示すフローチャートである。

0099

システム定義展開部101は、入出力部201からシステム定義の情報を受信する。システム定義展開部101は、受信した情報に基づくシステムをコンポジットとみなす。すなわち、システム定義展開部101は、コンポジットを再起的にプリミティブとワイヤリングに分解する処理を実施する(ステップS101)。

0100

ステップS101における処理により、システムの内部に含まれるコンポジットや、コンポジットの内部にさらに含まれるコンポジットが、全てプリミティブとワイヤリングのみに分解される。

0101

次いで、システム定義展開部101は、全てのプリミティブ内にある、全てのパート内の状態マシンを、出力結果にする状態マシン群の情報にコピーする(ステップS102)。

0102

次いで、システム定義展開部101は、全てのワイヤリング内の状態マシンを、出力結果にする状態マシン群の情報にコピーする。コピーする際、システム定義展開部101は、ワイヤリングの両端のワイヤポートに対する遷移条件や、ワイヤポートが持つ遷移条件の情報を除去する。

0103

除去した後、システム定義展開部101は、除去した遷移条件と同様の遷移条件をワイヤリング由来の状態マシンに対して再定義する(ステップS103)。ワイヤリングを展開した後、システム定義展開部101は、処理を終了する。

0104

次に、ステップS101における処理を図18を参照して具体的に説明する。図18は、変更管理システム100によるコンポジット展開処理の動作を示すフローチャートである。

0105

コンポジットを受信すると、システム定義展開部101は、コンポジットの基であるシステム定義からコンポジットの定義を除去する。除去した後、システム定義展開部101は、コンポジットの定義の代わりに、コンポジットの内部のコンポネントの定義を追加する(ステップS1011)。

0106

次いで、システム定義展開部101は、コンポジットが含む全てのワイヤポートに関連付けられている全てのワイヤリングと遷移条件を、ワイヤポートとプロモートで結ばれた内部のコンポネントのワイヤポートに移管する(ステップS1012)。

0107

ステップS1012における移管では、具体的には、元のワイヤリングや遷移条件の定義が変換される。例えば、定義におけるコンポジットのワイヤポートである部分を、移管先の内部のコンポネントのワイヤポートに変更することが、定義の変換に該当する。

0108

例えば、図13に示すシステム定義を図15に示すプリミティブに展開する例では、"rack"と"serverWithNIC"を接続する"RS"をワイヤインタフェースとして持つワイヤリングが、"rack"と"server"を接続するワイヤリングに変換される。

0109

より具体的には、システム定義内のワイヤリングの定義における、"serverWithNIC.rackspace1:rack.rackspace2"の記述が、例えば、"server.rackspace:rack.rackspace2"の記述に変更される。

0110

同様に、"serverWithNIC"のコンシューム"rackspace"が持つ"serverWithNIC.networkPort2(separate)"への遷移条件は、"nic.networkPort(separate)"への遷移条件として、"server"のコンシューム"rackspace"に追加される。

0111

次いで、システム定義展開部101は、コンポジットの内部のコンポネントの中にコンポジットがあれば、コンポジットを1つずつ取得する。取得した後、システム定義展開部101は、展開する処理を取得した全てのコンポジットに対して再度繰り返す。

0112

システム定義展開部101は、コンポジットの内部のコンポネントにコンポジットがあるかを確認する(ステップS1013)。コンポジットがない場合(ステップS1013におけるNO)、システム定義展開部101は、処理を終了する。

0113

コンポジットがある場合(ステップS1013におけるYES)、システム定義展開部101は、コンポジットを取得し、再度展開処理を実施する(ステップS1014)。コンポジットを展開した後、システム定義展開部101は、再度ステップS1013における処理を行う。

0114

[効果の説明]
本実施形態の変更管理システムによれば、予め定義された部品情報を再利用しつつ、部品情報を組み合わせることによって、効率的に状態マシン群が記述される。

0115

実施形態2.
[構成の説明]
以下、本発明の第2の実施形態を、図面を参照して説明する。図19は、本発明による変更管理システムの第2の実施形態の構成例を示すブロック図である。図19において、第1の実施形態と同様の構成要素には同一の符号を付し、説明を省略する。

0116

図19に示すように、本実施形態における変更管理システム100は、システム定義展開部101に加えて、システム定義比較部102を備える。システム定義比較部102は、現在のシステム定義と新規のシステム定義の2つの定義から、システム差分定義を生成する機能を有する。システム定義展開部101は、システム定義比較部102と通信ネットワークなどを介して通信可能に接続されている。

0117

本実施形態におけるシステム定義展開部101は、入出力部201から新旧の2つの状態マシン群の情報を受信する。システム定義展開部101は、受信した情報をシステム定義比較部102に入力する。

0118

システム定義比較部102は、入力された2つの状態マシン群を比較してシステム差分定義を生成する。システム定義比較部102は、生成したシステム差分定義をシステム定義展開部101に返す。

0119

次いで、システム定義展開部101は、システム差分定義に基づいて状態マシン群を生成する。システム定義展開部101は、生成した状態マシン群を入出力部201に返す。

0120

図20は、2つの異なるバージョンのシステム定義の一例を示す説明図である。図20(a)に示す、version1と記載されているシステム定義が、現在のシステム定義である。また、図20(b)に示す、version2と記載されているシステム定義が、新しいシステム定義である。

0121

2つのシステム定義の違いは、図20(a)に示す現在のシステム定義におけるプリミティブである"gatewayServer"の部分が、図20(b)に示す新しいシステム定義ではコンポジットである"serverWithNIC"に変更されている点である。

0122

すなわち、システム変更計画には、"gatewayServer"をシステムから取り除き、次いで"serverWithNIC"をシステムに組み込むというシステム変更タスクが加えられる。なお、"gatewayServer"は、例えば、図21に示す構成を取る。図21は、プリミティブの他の一例を示す説明図である。

0123

本実施形態において、入力されるシステム定義内のプリミティブが持つパートは、いずれも現在状態のみを持つとする。すなわち、新しいシステム定義においても、プリミティブは要求される状態を現在状態として持つ。ただし、全てのプリミティブ内の各パートは、必ず初期状態を持つとする。初期状態は、例えば、プリミティブが販売業者から出荷された当初の状態に基づいて設定される。

0124

図22は、図20に示す2つのシステム定義から生成されるシステム差分定義の一例を示す説明図である。システム差分定義において、元になったシステム定義に含まれるコンポジットは、全てプリミティブに展開された状態で存在する。

0125

図22に示すシステム差分定義には、"cable"、"switch"、"rack"、"gatewayServer"、"nic"、および"server"の6つのプリミティブが含まれる。6つのプリミティブの中で、"cable"、"switch"、および"rack"の3つは、新旧両方のシステム定義に含まれる。よって、3つのプリミティブそのものは、システム差分定義内に維持されるプリミティブとしてマーキングされる。また、3つのプリミティブの各パートの状態は、必要に応じて更新される。

0126

"gatewayServer"は、現在のシステム定義のみに含まれる。よって、"gatewayServer"のプリミティブは、廃止されるプリミティブとしてマーキングされる。"nic"と"server"は、新しいシステム定義のみに含まれる。よって、"nic"と"server"のプリミティブは、システム差分定義に新たに追加されるプリミティブとしてマーキングされる。

0127

また、維持されるプリミティブ同士を接続するワイヤリングは、維持されるワイヤリングとしてマーキングされる。図22に示す"NW1"、"RS1"と付されたワイヤリングが、維持されるワイヤリングに該当する。

0128

また、維持されるプリミティブと廃止されるプリミティブを接続するワイヤリングは、取りはずされるワイヤリングとしてマーキングされる。図22に示す"NW2"、"RS2"と付されたワイヤリングが、取りはずされるワイヤリングに該当する。

0129

また、維持されるプリミティブと追加されるプリミティブを接続するワイヤリング、または追加されるプリミティブ同士を接続するワイヤリングは、新たに設定されるワイヤリングとしてマーキングされる。図22に示す"NW3"、"RS3"および"PCI"と付されたワイヤリングが、新たに設定されるワイヤリングに該当する。

0130

なお、廃止されるプリミティブ同士を接続するワイヤリングは、取りはずされてもよいし、維持されてもよい。

0131

図23は、システム差分定義から展開される状態マシン群の一例を示す説明図である。図23は、図22に示すシステム差分定義を展開することによって生成される状態マシン群の例を示す。本実施形態におけるプリミティブとワイヤリングの状態マシンへの展開方法は、基本的に第1の実施形態における展開方法と同様である。

0132

しかし、本実施形態における展開方法では、現在状態と要求状態を新旧のシステム定義に応じて設定し直す点が、第1の実施形態における方法と異なる。また、同一のワイヤポートに接続される新旧2つのワイヤリングがある場合、一方のワイヤリングを接続する遷移が、他方のワイヤリングが外れていることを遷移条件にするように、遷移条件を追加する点も異なる。

0133

維持または更新されるプリミティブ内のパートは、現在のシステム定義におけるパートの現在状態を現在状態、新規のシステム定義におけるパートの現在状態を要求状態として含む。

0134

廃止されるプリミティブ内のパートは、現在のシステム定義におけるパートの現在状態を現在状態として含む。廃止されるプリミティブ内のパートの要求状態は、任意の状態で構わないため、設定されなくてもよい。

0135

追加されるプリミティブ内のパートは、パートの初期状態を現在状態、新規のシステム定義におけるパートの現在状態を要求状態として含む。

0136

また、維持されるワイヤリングは、現在状態と要求状態を共に接続状態として含む。取りはずされるワイヤリングは、現在状態を接続状態、要求状態を非接続状態として含む。新たに接続されるワイヤリングは、現在状態を非接続状態、要求状態を接続状態として含む。

0137

図23に示す例において、廃止されるプリミティブ同士を接続するワイヤリングは存在しない。仮に廃止されるプリミティブ同士を接続するワイヤリングが存在する場合、ワイヤリングは、現在状態を接続状態として含み、要求状態として何も含まない。

0138

また、図23に示す例において、遷移順序の計算結果に影響を与える遷移条件であるワイヤリングへの遷移条件には、新しいワイヤリングから現在のワイヤリングへの遷移条件のみが追加されている。図23に示す遷移"NW3(sep, con)"から"NW2(sep)"への遷移条件と、遷移"RS3(sep, con)"から"RS2(sep)"への遷移条件が、追加された遷移条件に相当する。

0139

[動作の説明]
以下、本実施形態の変更管理システム100の動作を図24を参照して説明する。図24は、変更管理システム100によるシステム差分定義の生成処理と展開処理の動作を示すフローチャートである。

0140

本実施形態のシステム定義展開部101は、入出力部201から新旧2つのバージョンのシステム定義の情報を受信する。システム定義展開部101は、受信した情報に基づくシステムをコンポジットとみなす。システム定義展開部101は、各コンポジットをそれぞれプリミティブとワイヤリングに分解する(ステップS201)。

0141

システム定義展開部101は、プリミティブとワイヤリングのみに展開された各システム定義をシステム定義比較部102に入力する。なお、ステップS201における具体的な処理は、第1の実施形態におけるステップS101における処理と同様である。

0142

次いで、システム定義比較部102は、入力された2つのシステム定義からシステム差分定義を生成する(ステップS202)。システム定義比較部102は、生成したシステム差分定義をシステム定義展開部101に返す。

0143

次いで、システム定義展開部101は、システム定義比較部102から入力されたシステム差分定義を展開して状態マシン群を生成する(ステップS203)。システム定義展開部101は、生成した状態マシン群を入出力部201に返す。状態マシン群を返した後、システム定義展開部101は、処理を終了する。

0144

次に、ステップS202における処理を図25を参照して具体的に説明する。図25は、変更管理システム100によるシステム差分定義生成処理の動作を示すフローチャートである。

0145

システム定義比較部102は、現在のシステム定義の内容を、暫定のシステム差分定義にコピーする。コピーした後、システム定義比較部102は、現在のシステム定義における全てのプリミティブを廃棄するように記録する(ステップS2021)。記録するためには、例えば、図6に示すデータ内にprimitiveState要素を1つ追加し、追加したprimitiveStateの値を"old"にすればよい。

0146

次いで、システム定義比較部102は、新規のシステム定義内のプリミティブとワイヤリングを1つずつ取得する。システム定義比較部102は、取得した内容で、暫定のシステム差分定義の内容を上書きする(ステップS2022)。

0147

システム定義比較部102は、暫定のシステム差分定義内に同一のIDを持つプリミティブが存在するか否かを確認する。同一のIDを持つプリミティブが存在する場合、システム定義比較部102は、暫定のシステム差分定義内のプリミティブを維持するように記録する。同一のIDを持つプリミティブが存在しない場合、システム定義比較部102は、プリミティブを暫定のシステム差分定義に追加した上で、プリミティブの定義内の要素にプリミティブを追加するように記録する。

0148

維持するように記録するためには、例えば、primitiveState要素の値を"update"に変更すればよい。追加するように記録するためには、例えば、primitiveState要素の値を"new"に変更すればよい。

0149

また、暫定のシステム差分定義内に同一のIDを持つプリミティブが存在する場合、システム定義比較部102は、プリミティブが含む各パートの要求状態に新規のプリミティブ内の対応するパートが持つ現在状態を設定する。

0150

暫定のシステム差分定義内に同一のIDを持つプリミティブが存在しない場合、システム定義比較部102は、追加するプリミティブが含む各パートの要求状態にパートの現在状態を設定し、各パートの現在状態にパートの初期状態を設定する。

0151

システム定義比較部102は、ワイヤリングを単にシステム差分定義に追加する。

0152

なお、ワイヤリングがプログラムにおけるオブジェクトとして実現される場合が考えられる。その場合、ステップS2022以後、ワイヤリングの両端のワイヤポートとして、新規のシステム定義内のプリミティブが含むワイヤポートではなく、暫定のシステム差分定義内のプリミティブが含むワイヤポートが参照されるように、システム定義比較部102は、参照関係を更新する。

0153

次いで、システム定義比較部102は、全てのプリミティブの各ワイヤポートを参照する。参照した上で、新旧2つのワイヤリングが関連付けられているワイヤポートがあれば、システム定義比較部102は、関連付けられているワイヤリングのうち新しい方のワイヤリングに関する遷移条件を追加する(ステップS2023)。追加される遷移条件は、新しいワイヤリングを非接続から接続に変更する遷移に対する、古い方のワイヤリングの非接続の状態という遷移条件である。遷移条件を追加した後、システム定義比較部102は、処理を終了する。

0154

次に、ステップS203における処理を図26を参照して具体的に説明する。図26は、変更管理システム100によるシステム差分定義展開処理の動作を示すフローチャートである。

0155

システム定義比較部102からシステム差分定義が入力されると、システム定義展開部101は、システム差分定義の全てのプリミティブ内にある全てのパート内の状態マシンを、出力結果にする状態マシン群の情報にコピーする(ステップS102)。

0156

次いで、システム定義展開部101は、全てのワイヤリング内の状態マシンを、出力結果にする状態マシン群の情報にコピーする。コピーする際、システム定義展開部101は、ワイヤリングの両端のワイヤポートに対する遷移条件や、ワイヤポートが持つ遷移条件の情報を除去する。

0157

除去した後、システム定義展開部101は、除去した遷移条件と同様の遷移条件の定義を、ワイヤリング由来の状態マシンに対して再定義する。再定義した上で、システム定義展開部101は、ワイヤリングの両端のワイヤポートを含むプリミティブのprimitiveState要素を確認する。

0158

システム定義展開部101は、維持または更新されるプリミティブを両端に持つワイヤリング由来の状態マシンの現在状態と要求状態とを、共に“接続”状態に設定する。

0159

システム定義展開部101は、廃止されるプリミティブを少なくとも一端に持つワイヤリング由来の状態マシンの現在状態を“接続”状態に設定し、状態マシンの要求状態を“非接続”状態に設定する。

0160

システム定義展開部101は、追加されるプリミティブを少なくとも一端に持つワイヤリング由来の状態マシンの現在状態を“非接続”状態に設定し、状態マシンの要求状態を“接続”状態に設定する(ステップS2031)。ワイヤリングを展開した後、システム定義展開部101は、処理を終了する。

0161

[効果の説明]
本実施形態の変更管理システムによれば、現在のシステム定義を編集した新しいシステム定義が入力されることで、より直感的かつ効率的に状態マシン群が記述される。

0162

次に、本発明の概要を説明する。図27は、本発明による変更管理システムの概要を示すブロック図である。本発明による変更管理システム10は、システム定義から、1または複数の状態マシンから構成される状態マシン群の情報を作成するシステム定義展開部11(例えば、システム定義展開部101)を含み、システム定義は、1または複数のプリミティブと、任意個のワイヤリングとを含み、プリミティブは、任意個のワイヤポートを含み、ワイヤポートは、1つの状態マシンを含み、ワイヤリングは、異なるプリミティブに含まれる2つのワイヤポートと接続し、システム定義展開部11は、プリミティブの既存の定義をワイヤリングで接続することによって、状態マシン群の情報を作成する。

0163

そのような構成により、変更管理システムは、状態マシンを含むシステムの定義から多数の状態マシン群を効率的に記述できる。

0164

また、ワイヤポートに含まれる状態マシン内の状態は、ワイヤポートを含むプリミティブに含まれる他のワイヤポートが含む状態マシン内の状態に関連する遷移条件に従って他の状態に遷移し、システム定義展開部11は、システム定義内の全てのワイヤリングそれぞれから導出される状態マシンを含み、ワイヤポートに関連する遷移条件をワイヤポートと接続するワイヤリングから導出される状態マシンに関連付け直すように状態マシン群の情報を作成してもよい。

0165

そのような構成により、変更管理システムは、遷移条件を関連する状態マシンに引き継ぐことができる。

0166

また、プリミティブは、任意個のパートを含み、パートは、1つの状態マシンを含み、プリミティブ内の状態マシン内の状態は、プリミティブに含まれる他のパートまたはワイヤポートが含む状態マシン内の状態に関連する遷移条件に従って他の状態に遷移し、システム定義展開部11は、システム定義内の全てのプリミティブに含まれる全てのパートそれぞれから導出される状態マシンと、全てのパート間の遷移条件とを含むように状態マシン群の情報を作成してもよい。

0167

そのような構成により、変更管理システムは、パートが含まれるシステム定義を展開できる。

0168

また、システム定義は、1または複数のコンポジットを含み、コンポジットは、1または複数のプリミティブまたはコンポジットと、任意個のワイヤポートと、任意個のワイヤリングと、任意個のプロモートとを含み、ワイヤリングは、コンポジットが含む異なるプリミティブまたはコンポジットに含まれる2つのワイヤポートと接続し、プロモートは、コンポジットが含むワイヤポートと、コンポジットが含むプリミティブまたはコンポジットに含まれるワイヤポートとを接続し、コンポジットが含むワイヤポート、コンポジットまたはプリミティブのいずれかに含まれる任意の状態マシン内の状態は、他の状態マシン内の状態に関連する遷移条件に従って他の状態に遷移し、システム定義展開部11は、コンポジットのワイヤポートに接続されたワイヤリングに関連付けられている遷移条件を、ワイヤポートとプロモートで接続されたコンポジット内部のワイヤポートに移してもよい。

0169

そのような構成により、変更管理システムは、コンポジットが含まれるシステム定義を展開できる。

0170

また、変更管理システム10は、現在のシステム定義と新規のシステム定義の2つのシステム定義から、2つのシステム定義のいずれかに含まれる全てのプリミティブとワイヤリングを重複無く含むシステム差分定義を生成するシステム定義比較部(例えば、システム定義比較部102)を含んでもよい。

0171

そのような構成により、変更管理システムは、2つのシステム定義からシステム差分定義を生成できる。

0172

また、システム定義比較部は、現在のシステム定義と新規のシステム定義の2つのシステム定義に含まれるプリミティブを維持または更新するプリミティブと判断し、現在のシステム定義のみに含まれるプリミティブを廃止するプリミティブと判断し、新規のシステム定義のみに含まれるプリミティブを追加するプリミティブと判断し、維持または更新するプリミティブ同士を接続するワイヤリングを維持または更新するワイヤリングと判断し、廃止するプリミティブを少なくとも1つ接続するワイヤリングを廃止するワイヤリングと判断し、追加するプリミティブを少なくとも1つ接続するワイヤリングを追加するワイヤリングと判断してもよい。

0173

そのような構成により、変更管理システムは、2つのシステム定義から維持または変更するプリミティブとワイヤリングを判別できる。

0174

また、システム定義展開部11は、システム差分定義から、維持または更新されるプリミティブ内のパートから、現在のシステム定義におけるパートの状態を現在状態、新規のシステム定義におけるパートの状態を要求状態として含む状態マシンを生成し、廃止されるプリミティブ内のパートから、現在のシステム定義におけるパートの状態を現在状態として含む状態マシンを生成し、追加されるプリミティブ内のパートから、パートの初期の状態を現在状態、新規のシステム定義におけるパートの状態を要求状態として含む状態マシンを生成し、維持または更新されるワイヤリングから、現在状態と要求状態を共に接続状態として含む状態マシンを生成し、廃止されるワイヤリングから、現在状態を接続状態、要求状態を非接続状態として含む状態マシンを生成し、追加されるワイヤリングから、現在状態を非接続状態、要求状態を接続状態として含む状態マシンを生成してもよい。

0175

そのような構成により、変更管理システムは、2つのシステム定義における状態マシンの状態を反映させた状態マシン群を作成できる。

0176

また、システム定義展開部11は、ワイヤリングを接続する遷移に、同一のワイヤポートに接続する他のワイヤリングが非接続であることを条件にする遷移条件を追加してもよい。

0177

そのような構成により、変更管理システムは、同一のワイヤポートに新旧2つのワイヤリングが接続される場合でも、正しい作業順序が作成されるような状態マシン群を作成できる。

0178

10、100変更管理システム
11、101システム定義展開部
102 システム定義比較部
201入出力部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ