JP2015052875A - Software component generation apparatus, software component generation method, and management system - Google Patents

Software component generation apparatus, software component generation method, and management system Download PDF

Info

Publication number
JP2015052875A
JP2015052875A JP2013184828A JP2013184828A JP2015052875A JP 2015052875 A JP2015052875 A JP 2015052875A JP 2013184828 A JP2013184828 A JP 2013184828A JP 2013184828 A JP2013184828 A JP 2013184828A JP 2015052875 A JP2015052875 A JP 2015052875A
Authority
JP
Japan
Prior art keywords
role
property
software component
roll
code
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
Application number
JP2013184828A
Other languages
Japanese (ja)
Inventor
賢治 湊
Kenji Minato
賢治 湊
文裕 沈
Seon-Il Shim
文裕 沈
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013184828A priority Critical patent/JP2015052875A/en
Publication of JP2015052875A publication Critical patent/JP2015052875A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To describe a roll definition statement using ontology, and generate a software component corresponding to a roll from the roll definition statement described by ontology.SOLUTION: A software component generation apparatus which generates a software component from a roll definition statement described using ontology, comprises: property parts storage means for storing property parts which are code of property indicating the relationship between rolls; code of the interface definition for an object generated by the software component; code generation means for generating the code to use the property parts of the property described in the roll definition statement; and software component generation and output means for acquiring from the property parts storage means the property parts of the property described in the roll definition statement so as to generate a software component containing the property parts and the code generated by the code generation means and output the software component.

Description

本発明は、オントロジーを用いてソフトウェアコンポーネントを構築する技術に関連するものである。本発明の適用先の一つとしてネットワークマネジメントシステムの自動構築技術がある。   The present invention relates to a technique for constructing software components using an ontology. One application of the present invention is a network management system automatic construction technique.

オントロジーは、語彙(概念)を体系化して表現するために標準化されたコンセプトと表記方法である。オントロジーでは語彙をクラスとして定義する。クラスは複数のプロパティで構成される。各プロパティはそのクラスと他のクラスの関係を表す。オントロジーは、例えばXMLを使ったOWL(Web Ontology Language)で表記される(例えば非特許文献1参照)。   Ontology is a standardized concept and notation method for systematically expressing vocabulary (concepts). Ontology defines vocabulary as a class. A class consists of multiple properties. Each property represents the relationship between that class and other classes. The ontology is expressed in, for example, OWL (Web Ontology Language) using XML (for example, see Non-Patent Document 1).

一方、ネットワークマネジメントシステムは、ネットワーク設備の物理実体を直接管理するのに加えて、ネットワーク中にパスやチャネル等の管理オブジェクトを適用して、パスやチャネル単位の管理を実施している。更に、ネットワーク設備を提供サービス毎や利用ユーザ毎等に仮想表現する仮想化ネットワークも、ネットワークに対してそれぞれの仮想表現に応じた管理オブジェクトを適用する必要がある。   On the other hand, in addition to directly managing the physical entities of network equipment, the network management system applies management objects such as paths and channels in the network to manage paths and channels. Furthermore, a virtualized network that virtually represents network facilities for each provided service or each user needs to apply a management object corresponding to each virtual representation to the network.

W3C Recommendation,"OWL Web Ontology Language Overview,"10 February 2004, http://www.w3.org/TR/owl-features/W3C Recommendation, "OWL Web Ontology Language Overview," 10 February 2004, http://www.w3.org/TR/owl-features/ 湊 賢治,築島 幸男,沈 文裕,"ロール階層モデルを適用したマネジメントエンジンの検討,"信学技報,ICM2012-38,pp.7-12,January 2013.Kenji Tsuji, Yukio Tsukishima, Fumihiro Shimbu, “Examination of management engine using role hierarchy model,” IEICE Technical Report, ICM2012-38, pp.7-12, January 2013.

提供サービス毎や利用ユーザ毎に仮想化ネットワークを提供するためには、それぞれの仮想表現に応じた管理オブジェクトを動的に構築して適用する必要がある。その解決方法として、非特許文献2に記載されているロール階層モデルを適用したマネジメントエンジンがある。   In order to provide a virtual network for each provided service and each user, it is necessary to dynamically construct and apply management objects according to each virtual expression. As a solution, there is a management engine to which the role hierarchy model described in Non-Patent Document 2 is applied.

非特許文献2に記載されているとおり、ロール階層モデルは、各管理対象を表すロールが積み重なってネットワークを表現するモデルである。そこで重要なのはロールとロールの間の関係を表現することであるが、非特許文献2に記載された技術ではロール間の関係を表現する具体的な方法は未定であった。   As described in Non-Patent Document 2, the role hierarchy model is a model in which roles representing each management target are stacked to represent a network. Therefore, what is important is to express the relationship between rolls, but the technique described in Non-Patent Document 2 has not yet determined a specific method for expressing the relationship between roles.

本発明は上記の点に鑑みてなされたものであり、ロール定義書をオントロジーを用いて記載し、オントロジーで記載されたロール定義書からロールに対応するソフトウェアコンポーネントを生成する技術を提供することを目的とする。   The present invention has been made in view of the above points, and provides a technique for describing a role definition document using an ontology and generating a software component corresponding to the role from the role definition document described in the ontology. Objective.

本発明の一実施形態によれば、オントロジーを用いて記載されたロール定義書からソフトウェアコンポーネントを生成するソフトウェアコンポーネント生成装置であって、
ロール間の関係を示すプロパティのコードであるプロパティ部品を格納したプロパティ部品記憶手段と、
前記ソフトウェアコンポーネントにより生成されるオブジェクトのインタフェース定義のコードと、前記ロール定義書に記載されているプロパティのプロパティ部品を利用するためのコードを生成するコード生成手段と、
前記プロパティ部品記憶手段から、前記ロール定義書に記載されているプロパティのプロパティ部品を取得し、当該プロパティ部品と、前記コード生成手段により生成されたコードとを含むソフトウェアコンポーネントを生成し、出力するソフトウェアコンポーネント生成・出力手段とを備えたことを特徴とするソフトウェアコンポーネント生成装置が提供される。
According to an embodiment of the present invention, there is provided a software component generation device that generates a software component from a role definition document described using an ontology,
Property part storage means storing property parts which are property codes indicating the relationship between roles;
Code for generating an interface definition of an object generated by the software component, and code for using a property part of a property described in the role definition document;
Software that acquires a property part of the property described in the role definition document from the property part storage unit, generates a software component including the property part and the code generated by the code generation unit, and outputs the software component There is provided a software component generation apparatus including a component generation / output unit.

前記ロール定義書に記載されているプロパティは、例えば、対象のロールが持つ属性情報を表すプロパティ、当該ロールが外部に提供する操作を表すプロパティ、又は、当該ロールが存在するための制約条件を表すプロパティである。また、前記オントロジーの言語として、例えばウェブオントロジー言語(OWL)を用いて前記ロール定義書が記載されている。   The property described in the role definition document represents, for example, a property representing attribute information of the target role, a property representing an operation provided by the role to the outside, or a constraint condition for the role to exist. It is a property. In addition, as the ontology language, for example, the role definition document is described using a web ontology language (OWL).

また、本発明の一実施形態によれば、上記ソフトウェアコンポーネント生成装置を備え、当該ソフトウェアコンポーネント生成装置により生成されたソフトウェアコンポーネントであるロールコンポーネントを用いてネットワークマネジメントシステムを構築するマネジメントエンジンシステムであって、
前記ロール定義書で定義されるロールは、ネットワークの管理オブジェクトを表現したロールであり、
前記ロール定義書から生成された前記ロールコンポーネントを格納する格納手段と、
前記格納手段から読み出されたロールコンポーネントを動作させ、ロールコンポーネントに、管理オブジェクトに対応するロールオブジェクトを生成させる手段とを有することを特徴とするマネジメントエンジンシステムが提供される。
According to an embodiment of the present invention, there is provided a management engine system that includes the software component generation device and constructs a network management system using a roll component that is a software component generated by the software component generation device. ,
The role defined in the role definition document is a role expressing a management object of the network,
Storage means for storing the role component generated from the role definition document;
There is provided a management engine system, characterized by comprising means for operating a roll component read from the storage means and causing the roll component to generate a roll object corresponding to a management object.

本発明の一実施形態によれば、ロール定義書をオントロジーを用いて記載し、オントロジーで記載されたロール定義書からロールに対応するソフトウェアコンポーネントを生成する技術が提供される。   According to an embodiment of the present invention, a technique is provided in which a role definition document is described using an ontology, and a software component corresponding to the role is generated from the role definition document described in the ontology.

ロール定義書をオントロジーで表記する例を示す図である。It is a figure which shows the example which describes a role definition document by ontology. ロール定義書からロールコンポーネントを生成する際の全体イメージを示す図である。It is a figure which shows the whole image at the time of producing | generating a roll component from a role definition document. ロール定義書30からロールコンポーネント10を生成する手順等を示す図である。It is a figure which shows the procedure etc. which produce | generate the roll component 10 from the roll definition document. ロール生成装置100の機能構成図である。2 is a functional configuration diagram of a roll generation device 100. FIG. ロールのインタフェースのイメージを示す図である。It is a figure which shows the image of the interface of a role. 実施例におけるネットワークの管理モデルの例を示す図である。It is a figure which shows the example of the management model of the network in an Example. 実施例で扱うクラスの継承関係を示す図である。It is a figure which shows the inheritance relationship of the class handled by the Example. 実施例で定義したプロパティとその継承関係を示す図である。It is a figure which shows the property defined in the Example, and its inheritance relationship. Attributeプロパティの実装例を示す図である。It is a figure which shows the example of mounting of Attribute property. Actionプロパティの実装例を示す図である。It is a figure which shows the implementation example of Action property. Constraintプロパティの実装例を示す図である。It is a figure which shows the example of mounting of Constraint property. ロール階層モデルの例を示す図である。It is a figure which shows the example of a role hierarchy model. ロール階層に繰り返しを示す図である。It is a figure which shows repetition to a roll hierarchy. マネジメントエンジンシステム210の構成図である。2 is a configuration diagram of a management engine system 210. FIG. ロール整合部212の構成例である。2 is a configuration example of a roll matching unit 212.

以下、図面を参照して、オントロジーで記載されたロール定義書からロールコンポーネントを生成する技術について説明する。ここで、ロールコンポーネントとはロール定義書から作るJava(登録商標)言語を用いたソフトウェアコンポーネントを指す。ただし、ソフトウェアコンポーネントの言語はJava(登録商標)に限定されるわけではなく、他の言語でもよい。   Hereinafter, a technique for generating a roll component from a roll definition document described in an ontology will be described with reference to the drawings. Here, the role component refers to a software component using Java (registered trademark) language created from a role definition document. However, the language of the software component is not limited to Java (registered trademark), and may be another language.

また、本実施の形態における「ロール」は、例えば非特許文献2に記載されているネットワーク設備を仮想的に表現するロール階層モデルにおける管理対象(通信装置、パス、回線等)を想定しているが、本発明における技術は、このようなネットワークに関するロール以外の対象にも適用可能である。当該対象を示すロールのソフトウェアコンポーネントは、コンピュータ等の装置(例:マネジメントエンジンシステム)において動作し、オブジェクトを生成し、当該オブジェクトがロール利用者(外部システム、他のロール等)と情報をやりとりすることで、所望の動作が実現される。   The “role” in the present embodiment is assumed to be a management target (communication device, path, line, etc.) in a role hierarchy model that virtually represents network equipment described in Non-Patent Document 2, for example. However, the technology in the present invention can be applied to objects other than such roles related to the network. The software component of the role indicating the target operates on a device such as a computer (eg, management engine system), generates an object, and the object exchanges information with the role user (external system, other role, etc.). Thus, a desired operation is realized.

(オントロジーによるロール定義書)
ロール定義書をオントロジーで表記する例を図1に示す。オントロジーのクラス名の個所にロール名を記載し、ロールとロールの関係をオントロジーのpropertyで定義して記載する。実際の表記はOWLを使用し、XMLで記載する。
(Role definition document by ontology)
An example in which a role definition document is represented by ontology is shown in FIG. The role name is described in the ontology class name, and the relationship between the roles is defined and described in the ontology property. The actual notation is written in XML using OWL.

(ロールコンポーネントの生成イメージ)
ロール定義書からロールコンポーネントを生成する際の全体イメージを図2に示す。
(Role component generation image)
FIG. 2 shows an overall image when a roll component is generated from a roll definition document.

ロール定義書はOWLで記載するが、ここでは説明の便宜のため、図 1の表現を採用する。図1の表現でも、OWLで記載した場合と実質的な相違はない。図2に示すロール定義書にはproperty A、property C、property Dの3個のプロパティが記載されている。このロール定義書から生成したロールコンポーネント10のソフトウェア(プログラム、又はコードと呼んでもよい)構成をその下に示している。   The role definition document is written in OWL, but for the convenience of explanation, the expression in Fig. 1 is adopted here. The representation of FIG. 1 is not substantially different from the case described in OWL. The role definition document shown in FIG. 2 describes three properties, property A, property C, and property D. The software configuration (which may be called a program or code) of the roll component 10 generated from this roll definition document is shown below.

図2に示すとおり、ロールコンポーネント10は、ロール定義書に記載された各propertyに対応したプロパティ部品11と、それらプロパティ部品11を操作する振舞コード部12で構成される。プロパティ部品11は予め用意されたプロパティ部品棚15(例:コンピュータにおけるメモリ)から取得される。つまり、各プロパティ部品11は予めコーディングし、プロパティ部品棚15に格納しておく。振舞コード部12は、ロール毎に内容が異なるので、ロール毎にコーディングする。   As shown in FIG. 2, the role component 10 includes a property part 11 corresponding to each property described in the role definition document, and a behavior code part 12 that operates the property part 11. The property component 11 is acquired from a property component shelf 15 (for example, memory in a computer) prepared in advance. That is, each property component 11 is coded in advance and stored in the property component shelf 15. The behavior code unit 12 is coded for each role because the content is different for each role.

本構成によりロール定義書に対応して振舞コード部12をコーディングすればロールコンポーネントを生成することができる。プロパティ部品11は他のロールにも再利用される。   With this configuration, a role component can be generated by coding the behavior code unit 12 corresponding to the role definition document. The property component 11 is reused for other roles.

(処理手順、装置構成例)
図3に、オントロジーを用いたロール定義書30からロールコンポーネント10を生成する手順、及び、生成されるロールコンポーネント10の詳細構成例を示す。図3に示すロールコンポーネント10における各部は、当該部位の機能を実現するプログラムに対応する。
(Processing procedure, device configuration example)
FIG. 3 shows a procedure for generating the roll component 10 from the role definition document 30 using the ontology, and a detailed configuration example of the generated roll component 10. Each part in the roll component 10 shown in FIG. 3 corresponds to a program that realizes the function of the part.

また、図中のcall、import等は、ロールコンポーネント10が、対象装置において実行された場合における呼び出し等の動作を示している。対象装置とは、コンピュータや、後述するマネジメントエンジンシステム等である。   Further, call, import, and the like in the figure indicate operations such as a call when the roll component 10 is executed in the target device. The target device is a computer, a management engine system described later, or the like.

また、図3には、ロール生成装置100(ソフトウェアコンポーネント生成装置の例)が示されている。後述するように、当該ロール生成装置100が、オントロジーで記載されたロール定義書からインタフェース定義のコード、プロパティ部品を利用するためのコード等を生成する。   FIG. 3 shows a role generation device 100 (an example of a software component generation device). As will be described later, the role generation device 100 generates an interface definition code, a code for using a property component, and the like from a role definition document described in an ontology.

図3に示すように、最初にプロパティを定義して(ステップ10)、そのプロパティ定義に応じたプログラム(コード)を作成し、それをプロパティ部品11としてプロパティ部品棚15に置く(ステップ11)。つまり、コンピュータにおいてプロパティ部品棚15として使用される記憶部に、プロパティ部品11を格納する。例えば、プロパティ部品棚15がロール生成装置100に備えられることとしてもよい。   As shown in FIG. 3, a property is first defined (step 10), a program (code) corresponding to the property definition is created, and it is placed on the property component shelf 15 as a property component 11 (step 11). That is, the property component 11 is stored in a storage unit used as the property component shelf 15 in the computer. For example, the property component shelf 15 may be provided in the roll generation device 100.

次に、作成したプロパティ定義を使ってロール定義書30を作成する。そして、ロール定義書30はロール生成装置100によって2種類のコードに変換される(ステップ13)。一つは、ロールオブジェクトとファクトリのインタフェース定義18であり、もう一つは自動生成コード部16である。   Next, a role definition document 30 is created using the created property definition. Then, the role definition document 30 is converted into two types of codes by the role generation device 100 (step 13). One is a role object / factory interface definition 18, and the other is an automatically generated code unit 16.

インタフェース定義18はロール定義書に記載されたロールコンポーネント名から生成される。   The interface definition 18 is generated from the role component name described in the role definition document.

自動生成コード部16は、ロール定義書内のプロパティの利用定義とプロパティ部品の仲介を行う。プロパティの利用定義とはロール定義書毎に異なるプロパティの制約やプロパティで使っている引数情報である。ロール生成装置100は、ロール定義書に記載されたこれらの内容を基にコード(プログラム)を自動生成して自動生成コード部16を作る。   The automatically generated code unit 16 mediates property usage definition and property parts in the role definition document. Property usage definition is the property information that is different for each role definition document and the argument information used in the property. The roll generation apparatus 100 automatically generates a code (program) based on these contents described in the roll definition document to create an automatic generation code unit 16.

ここで、図3に示すファクトリ部品17はロールコンポーネントが生成するロールオブジェクトの検索機能を持ち、予め作成しておくプログラムである。ファクトリ部品17をロールコンポーネント10の外部におき、各種のロールコンポーネントに対してファクトリ部品17を汎用的に使用することとしてもよい。なお、本例のように検索機能を持つファクトリを備えることは本発明において必須ではない。   Here, the factory component 17 shown in FIG. 3 is a program that has a search function for a roll object generated by a roll component and is created in advance. The factory part 17 may be placed outside the roll component 10 and the factory part 17 may be used for various types of roll components. Note that it is not essential in the present invention to provide a factory having a search function as in this example.

振舞コード部12は、自動生成できない部分を最終的に利用者が記載するコード部(プログラム)であり、ロール毎に異なる内容を記載する。振舞コード部12は自動生成コード部16・ファクトリ部品17・プロパティ部品11のそれぞれから呼び出される。例えば、自動生成コード部16から振舞コード部12への呼び出しは、複数のプロパティ部品にまたがる処理が必要な場合に行われ、プロパティ部品11から振舞コード部12への呼び出しは、プロパティ部品11を汎用化した時に各ロール定義の差分を振舞コード部12に記載する場合に行われるものである。   The behavior code part 12 is a code part (program) in which a user finally writes a part that cannot be automatically generated, and describes different contents for each role. The behavior code part 12 is called from each of the automatically generated code part 16, the factory part 17, and the property part 11. For example, the call from the automatically generated code unit 16 to the behavior code unit 12 is performed when processing across a plurality of property parts is required, and the call from the property part 11 to the behavior code part 12 uses the property part 11 as a general purpose. This is performed when the difference of each role definition is described in the behavior code part 12 when the change is made.

図4に、ロール定義書30からロールコンポーネント10を生成するロール生成装置100の機能構成例を示す。   FIG. 4 shows a functional configuration example of the role generation device 100 that generates the roll component 10 from the role definition document 30.

図4に示すように、ロール生成装置100は、ロール定義書入力部110、ロール定義書格納部120、インタフェース定義生成部130、プロパティ利用コード生成部140、作成済プログラム格納部150、ロールコンポーネント生成・出力部160を備える。   As shown in FIG. 4, the role generation device 100 includes a role definition document input unit 110, a role definition document storage unit 120, an interface definition generation unit 130, a property use code generation unit 140, a created program storage unit 150, and a role component generation. An output unit 160 is provided.

ロール定義書入力部110から、オントロジー言語で記載されたロール定義書が入力され、ロール定義書格納部120に格納される。インタフェース定義生成部130は、ロール定義書格納部120からロール定義書を読み出し、前述したようにインタフェース定義のコードを生成し、プロパティ利用コード生成部140は、ロール定義書格納部120からロール定義書を読み出し、前記ロール定義書に記載されているプロパティのプロパティ部品を利用するためのコード、例えば、ロール定義書内のプロパティの利用定義とプロパティ部品の仲介を行うコードを生成する。なお、インタフェース定義生成部130とプロパティ利用コード生成部140を1つの機能部とし、当該機能部がロール定義書を読み出し、インタフェース定義のコードと、プロパティ部品を利用するためのコードを生成してもよい。   A role definition document written in an ontology language is input from the role definition document input unit 110 and stored in the role definition document storage unit 120. The interface definition generation unit 130 reads the role definition document from the role definition document storage unit 120 and generates the interface definition code as described above. The property use code generation unit 140 reads the role definition document from the role definition document storage unit 120. , And a code for using the property part of the property described in the role definition document, for example, a code for mediating property usage definition and property part in the role definition document is generated. Note that even if the interface definition generation unit 130 and the property use code generation unit 140 are one function unit, the function unit reads the role definition document and generates an interface definition code and a code for using the property component. Good.

作成済プログラム格納部150には、複数のプログラム部品を含むプログラム部品棚、振舞コード部12等の作成済みのプログラムが格納されており、ロールコンポーネント生成・出力部160は、生成目的のロールコンポーネントで用いるプログラム部品11と振舞コード部11を作成済プログラム格納部150から読み出し、これらと、インタフェース定義生成部130及びプロパティ利用コード生成部140により生成されたプログラムとを合わせることでロールコンポーネント10を生成し、出力する。出力されたロールコンポーネント10は、所定の記憶装置に格納しておき、必要なときに使用することとしてもよいし、出力されたロールコンポーネントを対象装置(マネジメントエンジンシステム等)に入力し、目的の動作(例:ネットワークマネジメント)を行わせることとしてもよい。   The created program storage unit 150 stores created programs such as a program parts shelf including a plurality of program parts, a behavior code unit 12, and the like, and the roll component generation / output unit 160 is a roll component to be generated. The program component 11 and the behavior code unit 11 to be used are read from the created program storage unit 150, and these are combined with the programs generated by the interface definition generation unit 130 and the property use code generation unit 140 to generate the roll component 10. ,Output. The output roll component 10 may be stored in a predetermined storage device and used when necessary, or the output roll component may be input to a target device (such as a management engine system) to It is good also as performing operation | movement (example: network management).

ロール生成装置100は、ロール生成装置100として使用するコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、ロール生成装置100の各機能部は、コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。   The roll generation apparatus 100 can be realized by causing a computer used as the roll generation apparatus 100 to execute a program describing the processing content described in the present embodiment. That is, each functional unit of the role generation device 100 can be realized by executing a program corresponding to a process performed by each unit using hardware resources such as a CPU, a memory, and a hard disk built in the computer. Is possible. The above-mentioned program can be recorded on a computer-readable recording medium (portable memory or the like), stored, or distributed. It is also possible to provide the program through a network such as the Internet or electronic mail.

なお、ロール生成装置100を対象装置(例:マネジメントエンジンシステム)の内部に備えることとしてもよい。   In addition, it is good also as providing the roll production | generation apparatus 100 inside the object apparatus (example: management engine system).

図5に、ロール定義書から生成されたロールコンポーネントが対象装置で実行される場合において、外部に提供するインタフェースのイメージを示す。   FIG. 5 shows an image of an interface provided to the outside when the roll component generated from the roll definition document is executed by the target device.

ロール定義書から自動生成されたロールコンポーネント10が存在し、ロールコンポーネント10の動作に応じて生成・削除されるロールのインスタンスがロールオブジェクトである。
外部システムや他のロールコンポーネント等のロール利用者はロールオブジェクトに対してアクセスする。ただし、検索等で必要な場合はロールコンポーネント10が提供するファクトリを利用することができる。
A role component 10 automatically generated from a role definition document exists, and an instance of a role generated / deleted in accordance with the operation of the role component 10 is a role object.
Role users such as external systems and other role components access the role object. However, the factory provided by the role component 10 can be used when necessary for searching or the like.

ロールオブジェクトは、後述するAttributeプロパティで定義された属性情報のgetter/setterインタフェースと、Actionプロパティで定義された各Actionのインタフェースを持つ。ロール利用者は、これらのインタフェースを使ってロールオブジェクトを利用する。   The role object has a getter / setter interface for attribute information defined by the Attribute property, which will be described later, and an interface for each Action defined by the Action property. Role users use role objects using these interfaces.

(オントロジーによるロール定義、及びロールコンポーネント生成の実施例)
以下、オントロジーによるロール定義、及びロールコンポーネント生成についての、ネットワークの管理モデルを対象とした実施例について説明する。
(Example of role definition by ontology and role component generation)
In the following, an embodiment of a network management model for ontology role definition and role component generation will be described.

[1.対象とする管理モデル]
図6に、本実施例において対象とするネットワークの管理モデルを示す。図6に示すモデルは、ITU-T M.3100を参考にして、そこから抜粋した管理モデルである。なお、当該管理モデルは、本発明の適用先の一例に過ぎない。
[1. Target management model]
FIG. 6 shows a management model of a target network in this embodiment. The model shown in FIG. 6 is a management model extracted from ITU-T M.3100 as a reference. The management model is only an example to which the present invention is applied.

図6におけるFabricは装置を表す。Fabric間はPhysicalLink(物理リンク)で接続されており、その接続点がPhysicalPort(物理ポート)である。PhysicalLinkの中にはConnection(コネクション)があり、Connectionの端点がConnectionTerminationPoint(コネクション終端点)である。一つのPhysicalLinkの中には複数本のConnectionが存在するが本図では一つのみを記載している。図6の3つのFabricのうちの中央のFabricにはConnectionTerminationPoint間を接続するCrossConnection(クロスコネクション)がある。このCrossConnectionにより、ConnectionTerminationPoint間の接続関係をスイッチする。   Fabric in FIG. 6 represents a device. The fabrics are connected by a physical link, and the connection point is a physical port. There is a Connection in the PhysicalLink, and the end point of the Connection is a ConnectionTerminationPoint (connection termination point). There are multiple Connections in one PhysicalLink, but only one is shown in this figure. Among the three fabrics in FIG. 6, the center fabric has a cross connection that connects the connection termination points. This CrossConnection switches the connection relationship between ConnectionTerminationPoints.

複数個のConnectionとCrossConnectionをつなげてTrail(トレイル)が作成される。図6の例では、Trailの端点は両端のFabricにあるTrailTerminationPoint(トレイル終端点)である。このTrailが二地点間を接続するネットワークになる。   A trail is created by connecting multiple Connections and CrossConnections. In the example of FIG. 6, the end point of the Trail is a TrailTerminationPoint (trail termination point) in the Fabric at both ends. This trail becomes a network connecting two points.

[2.クラス継承関係]
本実施例で扱うクラスの継承関係を図7に示す。
[2. Class inheritance relationship]
FIG. 7 shows the inheritance relationship of classes handled in this embodiment.

ロール定義書にはロールコンポーネントの定義に加えて、ロールコンポーネント間で受け渡すデータの構造体も定義する必要がある。オントロジーではどちらもクラス定義になるので、コード生成にあたって両者を明確に区別するために、クラス継承を使ってComponentクラスとDataクラスに分類する。   In the role definition document, in addition to the definition of the role component, it is necessary to define the structure of data passed between the role components. Since both are class definitions in the ontology, class inheritance is used to classify them into Component classes and Data classes in order to clearly distinguish them from each other in code generation.

すなわち、図7に示すように、親クラスにComponentとDataを置く。Componentの下位クラスはロールコンポーネントとしてコード生成し、Dataの下位クラスはデータ定義であるとしてPOJO(Plain Old Java Object)を生成する。   That is, as shown in FIG. 7, Component and Data are placed in the parent class. A subclass of Component generates code as a role component, and a subclass of Data generates a POJO (Plain Old Java Object) assuming that it is a data definition.

本実施例では、Fabric、CrossConnection、PipeはそれぞれロールコンポーネントにするのでComponentの子クラスとして定義する。Pipeは接続を表すTrail、Connection、PhysicalLinkの親クラスである。   In this embodiment, Fabric, CrossConnection, and Pipe are role components, so they are defined as child classes of Component. Pipe is a parent class of Trail, Connection, and PhysicalLink that represents a connection.

また、TerminationPoint、ObjectId、Capacityはそれぞれデータ構造にするのでDataの子クラスとして定義する。TerminationPointは端点を表すTrailTerminationPoint、ConnectionTerminationPoint、PhysicalPortの親クラスである。   Since TerminationPoint, ObjectId, and Capacity have data structures, they are defined as child classes of Data. TerminationPoint is a parent class of TrailTerminationPoint, ConnectionTerminationPoint, and PhysicalPort representing an end point.

また、ObjectIdは各データを識別するための各クラスの親クラスである。CapacityはTrail、Connection、PhysicalLinkの各インスタンスが使用している容量を表すTrailCapacity、ConnectionCapacity、PhysicalCapacityの親クラスである。   ObjectId is a parent class of each class for identifying each data. Capacity is a parent class of TrailCapacity, ConnectionCapacity, and PhysicalCapacity representing the capacity used by each instance of Trail, Connection, and PhysicalLink.

[3.プロパティ]
本実施例では、ロール定義書のプロパティも継承を使って分類する。本実施例で定義したプロパティとその継承関係を図8に示す。本実施例では、プロパティは以下の3種類に分類しており、各プロパティはこれらAttribute、Action、Constraintの親プロパティから継承する。
[3. Properties]
In this embodiment, the properties of the role definition document are also classified using inheritance. FIG. 8 shows the properties defined in this embodiment and their inheritance relationships. In this embodiment, the properties are classified into the following three types, and each property is inherited from the parent properties of Attribute, Action, and Constraint.

(3.1)Attribute
ロールが持つ属性情報を表す各プロパティの親プロパティである。本プロパティの子プロパティに記載された属性情報に応じてロールオブジェクトのgetter/setterを作り、その属性情報を永続化するためのコードを生成する。
(3.1) Attribute
This is the parent property of each property that represents the attribute information of the role. Create getter / setter of role object according to the attribute information described in the child property of this property, and generate code to make the attribute information permanent.

(3.2) Action
ロールが外部に提供する操作を表す各プロパティの親プロパティである。本プロパティの子プロパティに記載された内容に応じてロールの外部向けインタフェースを生成する。
(3.2) Action
This is the parent property of each property that represents the operation that role provides externally. Generate the external interface of the role according to the contents described in the child property of this property.

(3.3)Constraint
ロールが存在するための制約条件を表す各プロパティの親プロパティである。本プロパティの子プロパティに記載された内容に応じてロールオブジェクトの生成や削除が制限される。
(3.3) Constraint
It is the parent property of each property that represents the constraint condition for the role to exist. Creation and deletion of role objects are restricted according to the contents described in the child properties of this property.

図8に示す各プロパティのOWL定義について以下に説明する。なお、説明ではOWLの用語を使用している。   The OWL definition of each property shown in FIG. 8 will be described below. The explanation uses OWL terminology.

(3.4)hasObjectId
管理対象を表すクラスとその識別子の関係を表したプロパティである。主語(Domain)に管理対象のクラス名を置き、目的語(Range)に識別子の親クラスであるObjectIdを置く。
(3.4) hasObjectId
This property represents the relationship between the class representing the management target and its identifier. The name of the class to be managed is placed in the subject (Domain), and the object ID that is the parent class of the identifier is placed in the object (Range).

プロパティの性質は、管理対象のインスタンスとその識別子は互いに一意に決まるのでFuntionalかつInverse Functionalを設定している。主語と目的語を入れ替えたらObjectIdの関係は持てないのでAsymmetricとし、ObjectIdは自分自身には関係を持てないのでIrreflexiveとする。   Since the property of the property and the identifier of the managed object are uniquely determined from each other, it is set to “Funtional and Inverse Functional”. If the subject and object are swapped, ObjectId cannot be related, so it is Asymmetric, and ObjectId cannot be related to itself, so it is Irreflexive.

以下にhasObjectIdのOWL定義を示す。
<owl:ObjectProperty rdf:about="hasObjectId">
<rdfs:domain>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="CrossConnection"/>
<rdf:Description rdf:about="Fabric"/>
<rdf:Description rdf:about="Pipe"/>
<rdf:Description rdf:about="TerminationPoint"/>
</owl:unionOf>
</owl:Class>
</rdfs:domain>
<rdfs:range rdf:resource="ObjectId"/>
<rdf:type rdf:resource="&owl;FunctionalProperty"/>
<rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
<rdf:type rdf:resource="&owl;AsymmetricProperty"/>
<rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
</owl:ObjectProperty>
(3.5)hasTerminationPoint
接続を表すPipeクラスと、その端点を表すTerminationPointクラスの関係を表したプロパティである。主語(Domain)にPipeクラスを置き、目的語(Range)にTerminationPointクラスを置いている。
The OWL definition of hasObjectId is shown below.
<owl: ObjectProperty rdf: about = "hasObjectId">
<rdfs: domain>
<owl: Class>
<owl: unionOf rdf: parseType = "Collection">
<rdf: Description rdf: about = "CrossConnection"/>
<rdf: Description rdf: about = "Fabric"/>
<rdf: Description rdf: about = "Pipe"/>
<rdf: Description rdf: about = "TerminationPoint"/>
</ owl: unionOf>
</ owl: Class>
</ rdfs: domain>
<rdfs: range rdf: resource = "ObjectId"/>
<rdf: type rdf: resource = "&owl;FunctionalProperty"/>
<rdf: type rdf: resource = "&owl;InverseFunctionalProperty"/>
<rdf: type rdf: resource = "&owl;AsymmetricProperty"/>
<rdf: type rdf: resource = "&owl;IrreflexiveProperty"/>
</ owl: ObjectProperty>
(3.5) hasTerminationPoint
This property represents the relationship between the Pipe class that represents a connection and the TerminationPoint class that represents its end point. The Pipe class is placed in the subject (Domain), and the TerminationPoint class is placed in the object (Range).

プロパティの性質は、Pipeの両端点にTerminationPointがあるので、主語から目的語が一つに決まらないためFunctionalは設定していない。逆にTerminationPointが関係するPipeは一つに決まるのでInverse Functionalを設定している。主語と目的語を入れ替えたらhasTerminationPointの関係は持てないのでAsymmetricとし、Pipeは自分自身には関係を持てないのでIrreflexiveにしている。   The property is not set to Functional because there is a TerminationPoint at each end of the Pipe, so there is no single target from the subject. On the other hand, since the Pipe related to TerminationPoint is determined as one, Inverse Functional is set. If you replace the subject and object, you can't have the relationship of hasTerminationPoint, so it's Asymmetric, and Pipe cannot be related to itself, so it's Irreflexive.

以下にhasTerminationPointの定義を示す。   The definition of hasTerminationPoint is shown below.

<owl:ObjectProperty rdf:about="hasTerminationPoint">
<rdfs:domain rdf:resource="Pipe"/>
<rdfs:range rdf:resource="TerminationPoint"/>
<rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
<rdf:type rdf:resource="&owl;AsymmetricProperty"/>
<rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
</owl:ObjectProperty>
(3.6)hasPart
主語が目的語を含んでいる関係を表したプロパティである。包含関係は一般的な関係で主語と目的語のクラスを固定できないので、DomainとRangeは設定していない。
<owl: ObjectProperty rdf: about = "hasTerminationPoint">
<rdfs: domain rdf: resource = "Pipe"/>
<rdfs: range rdf: resource = "TerminationPoint"/>
<rdf: type rdf: resource = "&owl;InverseFunctionalProperty"/>
<rdf: type rdf: resource = "&owl;AsymmetricProperty"/>
<rdf: type rdf: resource = "&owl;IrreflexiveProperty"/>
</ owl: ObjectProperty>
(3.6) hasPart
This property represents the relationship in which the subject contains the object. Since the inclusion relationship is a general relationship and the subject and object classes cannot be fixed, Domain and Range are not set.

プロパティの性質は、主語は一つ以上の目的語を含んでいる可能性があり、主語に対して目的語が一つに決まらないのでFunctionalではない。目的語は複数種類の主語に含まれている可能性があるのでInverse Functionalでもない。含む関係は再帰的なのでTransitiveを設定した。包含関係の入替はできないのでAsymmetricとし、自分自身を含む関係は不自然なのでIrreflexiveとしている。   The nature of the property is not functional because the subject may contain more than one object and there is no single object for the subject. The object is not an Inverse Functional because it may be contained in multiple types of subjects. Since the relation to include is recursive, we set Transitive. The inclusion relationship cannot be replaced, so it is Asymmetric, and the relationship that includes itself is unnatural, so it is Irreflexive.

hasPartは次に説明するisPartOfと逆関係になる。以下にhasPartの定義を示す。   hasPart is inversely related to isPartOf described below. The definition of hasPart is shown below.

<owl:ObjectProperty rdf:about="hasPart">
<rdf:type rdf:resource="&owl;TransitiveProperty"/>
<rdf:type rdf:resource="&owl;AsymmetricProperty"/>
<rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
<owl:inverseOf rdf:resource="isPartOf"/>
</owl:ObjectProperty>
(3.7)isPartOf
主語が目的語に含まれている関係を表したプロパティであり、hasPartと逆関係になる。hasPartと同様にDomainとRangeは設定していない。
<owl: ObjectProperty rdf: about = "hasPart">
<rdf: type rdf: resource = "&owl;TransitiveProperty"/>
<rdf: type rdf: resource = "&owl;AsymmetricProperty"/>
<rdf: type rdf: resource = "&owl;IrreflexiveProperty"/>
<owl: inverseOf rdf: resource = "isPartOf"/>
</ owl: ObjectProperty>
(3.7) isPartOf
This property represents the relationship in which the subject is included in the object, and is inversely related to hasPart. Like hasPart, Domain and Range are not set.

プロパティの性質はhasPartと同様にしている。以下にisPartOfの定義を示す。   Property properties are the same as hasPart. The definition of isPartOf is shown below.

<owl:ObjectProperty rdf:about="isPartOf">
<rdf:type rdf:resource="&owl;TransitiveProperty"/>
<rdf:type rdf:resource="&owl;AsymmetricProperty"/>
<rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
<owl:inverseOf rdf:resource="hasPart"/>
</owl:ObjectProperty>
(3.8) hasCapacity
接続を表すPipeクラスと、そのPipeが持つ容量を表すCapacityクラスの関係を表したプロパティである。主語(Domain)にPipeを置き、目的語(Range)にCapacityを置く。
<owl: ObjectProperty rdf: about = "isPartOf">
<rdf: type rdf: resource = "&owl;TransitiveProperty"/>
<rdf: type rdf: resource = "&owl;AsymmetricProperty"/>
<rdf: type rdf: resource = "&owl;IrreflexiveProperty"/>
<owl: inverseOf rdf: resource = "hasPart"/>
</ owl: ObjectProperty>
(3.8) hasCapacity
This property represents the relationship between the Pipe class that represents the connection and the Capacity class that represents the capacity of the Pipe. Place Pipe in the subject (Domain) and Capacity in the object (Range).

プロパティの性質は、Pipeの1インスタンスとCapacityの1インスタンスを1対1で対応させる想定なので、FunctionalかつInverse Functionalを設定している。主語と目的語の入替えはできないのでAsymmetricとし、自分自身に関係は持てないのでIrreflexiveにしている。   The property is assumed to have a one-to-one correspondence between one instance of Pipe and one instance of Capacity, so Functional and Inverse Functional are set. Since the subject and the object cannot be interchanged, it is set to Asymmetric, and since it is not related to itself, it is set to Irreflexive.

以下にhasCapactiyの定義を示す。   The definition of hasCapactiy is shown below.

<owl:ObjectProperty rdf:about="hasCapacity">
<rdfs:domain rdf:resource="Pipe"/>
<rdfs:range rdf:resource="Capacity"/>
<rdf:type rdf:resource="&owl;FunctionalProperty"/>
<rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
<rdf:type rdf:resource="&owl;AsymmetricProperty"/>
<rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
</owl:ObjectProperty>
(3.9)makeXC
TerminationPointの接続関係を作るプロパティである。主語(Domain)にCrossConnectionを置き、目的語(Range)にTerminationPointを置いている。
<owl: ObjectProperty rdf: about = "hasCapacity">
<rdfs: domain rdf: resource = "Pipe"/>
<rdfs: range rdf: resource = "Capacity"/>
<rdf: type rdf: resource = "&owl;FunctionalProperty"/>
<rdf: type rdf: resource = "&owl;InverseFunctionalProperty"/>
<rdf: type rdf: resource = "&owl;AsymmetricProperty"/>
<rdf: type rdf: resource = "&owl;IrreflexiveProperty"/>
</ owl: ObjectProperty>
(3.9) makeXC
It is a property that creates the connection relationship of TerminationPoint. CrossConnection is placed in the subject (Domain), and TerminationPoint is placed in the object (Range).

本プロパティは、ここまで説明した各プロパティのように包含関係を表すのではなく、CrossConnectionに関係するアクションを表している。本プロパティの実行により、同一Fabric内のTerminationPoint間の接続を作る想定である。   This property represents an action related to CrossConnection, not a containment relationship like the properties described so far. By executing this property, it is assumed that connections between TerminationPoints in the same Fabric will be created.

プロパティの性質は、本プロパティはアクションに関するものなので省略している。以下に定義を示す。   The properties are omitted because this property is related to actions. Definitions are shown below.

<owl:ObjectProperty rdf:about="makeXC">
<rdfs:domain rdf:resource="CrossConnection"/>
<rdfs:range rdf:resource="TerminationPoint"/>
</owl:ObjectProperty>
[4.クラス]
次に、本実施例における各クラス定義(ロール定義書に相当する)を説明する。便宜上、各定義内容は図1に示したような表記で説明する。
<owl: ObjectProperty rdf: about = "makeXC">
<rdfs: domain rdf: resource = "CrossConnection"/>
<rdfs: range rdf: resource = "TerminationPoint"/>
</ owl: ObjectProperty>
[4. class]
Next, each class definition (corresponding to a role definition document) in the present embodiment will be described. For convenience, the contents of each definition will be described in the notation as shown in FIG.

(4.1)Fabric
Fabricは識別子としてFabricIdを持つ。以下に定義を示す。
(4.1) Fabric
Fabric has FabricId as an identifier. Definitions are shown below.

クラス名:Fabric
hasObjectId exactly 1 FabricId
(4.2)PhysicalLink
PhysicalLinkは識別子としてPhysicalLinkIdを持ち、両端点として2つのPhysicalPortを持ち、そして、容量としてPhysicalCapacityを持たせる。以下に定義を示す。
Class name: Fabric
hasObjectId exactly 1 FabricId
(4.2) PhysicalLink
PhysicalLink has PhysicalLinkId as an identifier, two PhysicalPorts as both end points, and PhysicalCapacity as a capacity. Definitions are shown below.

クラス名:PhysicalLink
hasObjectId exactly 1 PhysicalLinkId
hasTerminationPoint exactly 2 PhysicalPort
hasCapacity exactly 1 PhysicalCapacity
(4.3)Connection
Connectionは識別子としてConnectionIdを持ち、両端点として2つのConnectionTerminationPointを持ち、そして、容量としてConnectionCapacityを持たせる。
Class name: PhysicalLink
hasObjectId exactly 1 PhysicalLinkId
hasTerminationPoint exactly 2 PhysicalPort
hasCapacity exactly 1 PhysicalCapacity
(4.3) Connection
Connection has ConnectionId as an identifier, two ConnectionTerminationPoints as both end points, and ConnectionCapacity as a capacity.

ConnectionはPhysicalLinkの中に含まれるのでisPartOfの関係も持たせている。PhysicalLink内の定義でConnectionを記載していない理由は、ロール階層モデルにおいてConnectionはPhysicalLinkの上位に存在するためである。ロール階層モデルでは自分の上位ロールには何が来ても良いようにするため、下位ロールには上位ロールの定義を記載しない。   Since Connection is included in PhysicalLink, it also has an isPartOf relationship. The reason why Connection is not described in the definition in PhysicalLink is that Connection exists above PhysicalLink in the role hierarchy model. In the role hierarchy model, the definition of the upper role is not described in the lower role so that anything can come to the upper role.

以下に定義を示す。   Definitions are shown below.

クラス名:Connection
hasObjectId exactly 1 ConnectionId
hasTerminationPoint exactly 2 ConnectionTerminationPoint
hasCapacity exactly 1 ConnectionCapacity
isPartOf exactly 1 PhysicalLink
(4.4)Trail
Trailは識別子としてTrailIdを持ち、両端点として2つのTrailTerminationPointを持ち、そして、容量としてTrailCapacityを持たせた。
Class name: Connection
hasObjectId exactly 1 ConnectionId
hasTerminationPoint exactly 2 ConnectionTerminationPoint
hasCapacity exactly 1 ConnectionCapacity
isPartOf exactly 1 PhysicalLink
(4.4) Trail
Trail has TrailId as an identifier, two TrailTerminationPoints as end points, and TrailCapacity as capacity.

TrailはConnectionをつなげた物なのでhasPartでConnectionを置いている。Connectionに関するConnectionTerminationPointやCrossConnectionはConnectionが特定できれば引き出せるので本定義には含めていない。   Since Trail is a connection of Connection, HasPart places Connection. ConnectionTerminationPoint and CrossConnection related to Connection are not included in this definition because they can be extracted if the Connection can be specified.

以下に定義を示す。   Definitions are shown below.

クラス名:Trail
hasObjectId exactly 1 TrailId
hasTerminationPoint exactly 2 TrailTerminationPoint
hasCapacity exactly 1 TrailCapacity
hasPart some Connection
(4.5)CrossConnection
CrossConnectionはCrossConnectionIdを識別子として、構成要素として二つのConnectionTerminationPointを持たせている。
Class name: Trail
hasObjectId exactly 1 TrailId
hasTerminationPoint exactly 2 TrailTerminationPoint
hasCapacity exactly 1 TrailCapacity
hasPart some Connection
(4.5) CrossConnection
CrossConnection uses CrossConnectionId as an identifier and has two ConnectionTerminationPoints as components.

CrossConnectionを作るためのアクションとして、二つのConnectionTerminationPointを目的語にしたmakeXCを置いている。   As an action for creating a CrossConnection, makeXC with two ConnectionTerminationPoints as objects is placed.

以下に定義を示す。   Definitions are shown below.

クラス名:CrossConnection
hasObjectId exactly 1 CrossConnectionId
hasPart exactly 2 ConnectionTerminationPoint
makeXC exactly 2 ConnectionTerminationPoint
(4.6)PhysicalPort
PhysicalPortはPhysicalPortIdを識別子として持たせている。以下に定義を示す。
Class name: CrossConnection
hasObjectId exactly 1 CrossConnectionId
hasPart exactly 2 ConnectionTerminationPoint
makeXC exactly 2 ConnectionTerminationPoint
(4.6) PhysicalPort
PhysicalPort has PhysicalPortId as an identifier. Definitions are shown below.

クラス名:PhysicalPort
hasObjectId exactly 1 PhysicalPortId
(4.7)ConnectionTerminationPoint
ConnectionTerminationPointはConnectionTerminationPointIdを識別子として持たせている。ConnectionTerminationPointは、一つのPhysicalPortに包含されるのでisPartOfの関係を持たせている。以下に定義を示す。
Class name: PhysicalPort
hasObjectId exactly 1 PhysicalPortId
(4.7) ConnectionTerminationPoint
ConnectionTerminationPoint has ConnectionTerminationPointId as an identifier. Since ConnectionTerminationPoint is included in one PhysicalPort, it has an isPartOf relationship. Definitions are shown below.

クラス名:ConnectionTerminationPoint
hasObjectId exactly 1 ConnectionTerminationPointId
isPartOf exactly 1 PhysicalPort
(4.8)TrailTerminationPoint
TrailTerminationPointはTrailTerminationPointIdを識別子として、一つのConnectionTerminationPointにhasPartの関係を持たせている。以下に定義を示す。
Class name: ConnectionTerminationPoint
hasObjectId exactly 1 ConnectionTerminationPointId
isPartOf exactly 1 PhysicalPort
(4.8) TrailTerminationPoint
TrailTerminationPoint uses a TrailTerminationPointId as an identifier and has a HasPart relationship to one ConnectionTerminationPoint. Definitions are shown below.

クラス名:TrailTerminationPoint
hasObjectId exactly 1 TrailTerminationPointId
hasPart exactly 1 ConnectionTerminationPoint
(4.9)PhysicalCapacity
PhysicalCapacityはPhysicalLinkの容量として整数値を持つ。以下に定義を示す。
Class name: TrailTerminationPoint
hasObjectId exactly 1 TrailTerminationPointId
hasPart exactly 1 ConnectionTerminationPoint
(4.9) PhysicalCapacity
PhysicalCapacity has an integer value as the capacity of PhysicalLink. Definitions are shown below.

クラス名:PhysicalCapacity
hasIntegerValue some integer
(4.10)ConnectionCapacity
ConnectionCapacityはConnection容量を表し、一つのPhysicalCapacityに包含される。これで、ConnectionとPhysical間の容量の関係を表現している。
Class name: PhysicalCapacity
hasIntegerValue some integer
(4.10) ConnectionCapacity
ConnectionCapacity represents a Connection capacity and is included in one PhysicalCapacity. This represents the capacity relationship between Connection and Physical.

以下に定義を示す。   Definitions are shown below.

クラス名:ConnectionCapacity
isPartOf exactly 1 PhysicalCapacity
(4.11)TrailCapacity
TrailCapacityはTrail容量を表し、いくつかのConnectionCapacityとhasPartの関係を持つ。Trailが関係するConnectionは複数個あるのでsomeの関係にしている。
Class name: ConnectionCapacity
isPartOf exactly 1 PhysicalCapacity
(4.11) TrailCapacity
TrailCapacity represents the Trail capacity and has a relationship of several ConnectionCapacity and hasPart. Since there are multiple Connections related to Trail, we have some relationship.

以下に定義を示す。   Definitions are shown below.

クラス名:TrailCapacity
hasPart some ConnectionCapacity
[5.実装内容例]
以下、本実施例における各プロパティの実装内容の例を説明する。以下では、上述した CrossConnectionのロール定義書を例にとって説明する。
Class name: TrailCapacity
hasPart some ConnectionCapacity
[5. Example of implementation]
Hereinafter, an example of the implementation contents of each property in the present embodiment will be described. In the following, explanation will be given using the CrossConnection role definition document described above as an example.

(5.1)Attributeプロパティの実装例
Attributeプロパティの実装例を図9に示す。図9では、例としてCrossConnectionのhasObjectIdプロパティを使用している。
(5.1) Implementation example of Attribute property
An example implementation of the Attribute property is shown in FIG. In FIG. 9, the hasConnectionId property of CrossConnection is used as an example.

ロール定義書からCrossConnectionIdのgetterとsetterのインタフェースを生成する。自動生成コード部16にはgetterとsetterの実装部分があり、これはhasObjectId部品を呼び出してCrossConnectionIdの永続化を行う。hasObjectId部品を呼び出す時は対応するロールオブジェクトの情報を持ったcontext情報も併せて渡す。context情報のイメージはOSGiにおけるBundleContextである。   Generate CrossConnectionId getter and setter interfaces from role definition document. The auto-generated code part 16 has getter and setter implementation parts, which call the hasObjectId component to make the CrossConnectionId permanent. When calling the hasObjectId component, context information with the corresponding role object information is also passed. The image of context information is BundleContext in OSGi.

hasObjectIdプロパティ部品では、渡された情報からCrossConnectionIdをプライマリキーとしたロールオブジェクトの属性情報の永続化を行う。   In hasObjectId property component, persistence of role object attribute information with CrossConnectionId as primary key from the passed information.

(5.2)Actionプロパティの実装例
Actionプロパティの実装例を図10に示す。図10では、例としてCrossConnectionのmakeXCプロパティを使用している。
(5.2) Implementation example of Action property
An implementation example of the Action property is shown in FIG. In FIG. 10, the makeConnection property of CrossConnection is used as an example.

ロール定義書からmakeXCのインタフェースを生成する。自動生成コード部16にはmakeXCの実装部分がある。自動生成コード部16はmakeXCの引数であるConnectinTerminationPointとロールオブジェクトのcontext情報を引数にしてmakeXCプロパティ部品を呼び出す。   Generate makeXC interface from role definition document. The automatically generated code unit 16 has a makeXC implementation. The automatically generated code unit 16 calls the makeXC property component using the ConnectXTerminationPoint which is an argument of makeXC and the context information of the role object as arguments.

makeXCプロパティ部品では、引数のConnectionTerminationPointが同じFabricに存在するか等の条件をチェックして、クロスコネクションを実施する。   The makeXC property component checks the conditions such as whether the argument ConnectionTerminationPoint exists in the same Fabric, and performs cross connection.

(5.3)Constraintプロパティの実装例
Constraintプロパティの実装例を図11に示す。図11では、例としてCrossConnectionのhasPartプロパティを使用している。
(5.3) Implementation example of Constraint property
An example of implementation of the Constraint property is shown in FIG. In FIG. 11, the hasPart property of CrossConnection is used as an example.

ロール利用者からConstraintプロパティの個別の操作は想定していないので、ロールオブジェクトの外部インタフェースとしてのConstraintインタフェースは生成しない。生成する自動生成コード部16は、該当ロールの生成・削除時に該当ロールオブジェクトのcontext情報を引数にしてhasPartプロパティ部品11を呼び出す。hasPart部品11は引数の関係を見て包含関係を満たしているか返答する。   Since the role user does not assume individual operations of the Constraint property, a Constraint interface as an external interface of the role object is not generated. The automatically generated code unit 16 to be generated calls the hasPart property component 11 with the context information of the corresponding role object as an argument when the corresponding role is generated / deleted. The hasPart component 11 sees the argument relationship and returns whether the inclusion relationship is satisfied.

(マネジメントエンジンシステムの実施例)
以下、オントロジーを用いたロール定義書からロールコンポーネントを自動生成し、そのロールコンポーネントを自律的に動作させることで、ネットワークマネジメントシステムを自動構築するマネジメントエンジンシステムの実施例について説明する。
(Example of management engine system)
Hereinafter, an embodiment of a management engine system that automatically creates a network management system by automatically generating a roll component from a role definition document using an ontology and causing the roll component to operate autonomously will be described.

本実施例に係る管理オブジェクトとなるロールは、管理対象であるネットワーク設備を仮想的に表現する。マネジメントエンジンシステムは複数のロールコンポーネントを互いに一貫性を持たせながら同時に動作させることで、同じネットワーク設備を複数のユーザに対して異なった仮想表現で提供する。これより、ネットワーク設備を様々なネットワークサービスで共有可能となり、投資コストの低減になる。さらに、各ロールはマネジメントエンジンシステム上で一貫して動作するため運用コストの低減にもなる。   A role that is a management object according to the present embodiment virtually represents a network facility to be managed. The management engine system operates a plurality of role components at the same time while maintaining consistency with each other, thereby providing the same network facility to a plurality of users in different virtual representations. As a result, the network equipment can be shared by various network services, thereby reducing the investment cost. Furthermore, since each role operates consistently on the management engine system, the operation cost can be reduced.

[ロール階層モデルについて]
次に、本実施例におけるマネジメントエンジンシステムで用いるロール階層モデルの例について説明する。
[About role hierarchy model]
Next, an example of a role hierarchy model used in the management engine system in the present embodiment will be described.

本実施例のロール階層モデルは、ネットワークに適用する管理オブジェクトを、ロールという概念で表現する。ロールは下位層から積み上げて表現する。図12に、本実施例に係るロール階層モデルの例を示す。なお、図12に示す例は一例に過ぎず、ロールは図12に示すもの以外にも様々に定義可能である。   The role hierarchy model of the present embodiment expresses management objects applied to the network by the concept of roles. Rolls are expressed from the lower layers. FIG. 12 shows an example of a role hierarchy model according to the present embodiment. Note that the example shown in FIG. 12 is merely an example, and rolls can be defined in various ways other than those shown in FIG.

図12に示すように、一番下位層にはネットワーク設備の物理実体の機能を表すロールを置く。これをプリミティブロールと呼ぶ。図12ではスイッチを表すスイッチロール、スイッチ間のデータ線路を表すデータ線ロール、そして、スイッチとユーザ間の線路を表すアクセス線ロールをそれぞれ配置している。   As shown in FIG. 12, a role representing the function of the physical entity of the network facility is placed in the lowest layer. This is called a primitive roll. In FIG. 12, a switch roll representing a switch, a data line roll representing a data line between the switches, and an access line roll representing a line between the switch and the user are arranged.

このプリミティブロールの機能を利用する事で物理実体より上位階層のネットワーク要素であるパスを表現する。これをパスロールと呼ぶ。パスロールは、各スイッチロール内のフォワーディング設定の一部とデータ線ロールが提供する帯域の一部で構成する。さらにパスロールの上位として、パスロールの一部の帯域とアクセス線ロールの帯域の一部を組み合わせてチャネルロールを構築できる。すなわち、物理実体よりも上位階層のネットワーク要素を、プリミティブロールの一部又は全部から構成されるロールの一部又は全部を階層的に組み合わせたロールで表現する。このことは、プリミティブロールの一部又は全部を直接又は間接的に複数個組み合わせたロールで表現すると言うこともできる。ここで、プリミティブロールの一部又は全部を他のロールに間接的に組み合わせるとは、例えば、プリミティブロールであるデータ線ロールの一部の帯域を利用したパスロールの一部の帯域を他のロールに組み合わせることに相当する。   By using the function of this primitive role, a path that is a network element at a higher layer than the physical entity is expressed. This is called a path roll. The path roll is composed of a part of the forwarding setting in each switch roll and a part of the band provided by the data line roll. Furthermore, as a higher rank of the path roll, a channel roll can be constructed by combining a part of the band of the path roll and a part of the band of the access line roll. That is, a network element at a higher hierarchy than the physical entity is expressed by a role in which a part or all of roles composed of a part or all of primitive roles are hierarchically combined. This can be said to be expressed by a roll in which some or all of the primitive rolls are combined directly or indirectly. Here, indirect combination of a part or all of a primitive roll with another roll means, for example, that a part of a band of a path roll using a part of a band of a data line roll which is a primitive roll is assigned to another roll. Equivalent to combining.

このようにプリミティブロールをベースにして、ロールが提供する機能の一部分を組み合わせて新しいロールを積み上げることができる。その流れを図13に示す。一番下に基本ロールがある。基本ロールが提供する機能を互いに独立に分割した分割ロールを考えて、各分割ロールを組み合わせて新しいロールを定義できる。新しいロールは次の繰り返しの基本ロールになる。図12の例にあてはめると、基本ロールにスイッチロールとデータ線ロールがあり、スイッチロールのフォワーディング設定の一部分が分割ロールであり、データ線ロールの一部の帯域が分割ロールになる。これらの分割ロールを組み合わせて新ロールとしてパスロールが構築できる。   In this manner, based on the primitive roll, a new roll can be stacked by combining a part of the functions provided by the roll. The flow is shown in FIG. There is a basic roll at the bottom. A new role can be defined by combining each divided role, considering a divided role obtained by dividing the functions provided by the basic role independently of each other. The new role becomes the next repeating base role. In the example of FIG. 12, the basic roll includes a switch roll and a data line roll, a part of the switch roll forwarding setting is a split roll, and a part of the band of the data line roll is a split roll. By combining these divided rolls, a path roll can be constructed as a new roll.

本実施例では、このコンセプトに基づいてマネジメントエンジンシステムを構築している。   In this embodiment, a management engine system is constructed based on this concept.

[マネジメントエンジンシステムの構成例]
図14に、本実施例に係るマネジメントエンジンシステム210の全体構成例を示す。図14に示すように、本実施例に係るマネジメントエンジンシステム210は、外部中継部211、ロール整合部212、資源管理部213、ロール生成ツール214を有する。マネジメントエンジンシステム210の資源管理部213は、ネットワークの物理実体(通信装置、伝送路等)とOpenFlow ControllerやEMS等を介して接続される。また、外部中継部211は、ユーザ端末や他管理システムと接続される。
[Management engine system configuration example]
FIG. 14 shows an example of the overall configuration of the management engine system 210 according to this embodiment. As illustrated in FIG. 14, the management engine system 210 according to the present embodiment includes an external relay unit 211, a role matching unit 212, a resource management unit 213, and a role generation tool 214. The resource management unit 213 of the management engine system 210 is connected to a physical entity (communication device, transmission path, etc.) of the network via an OpenFlow Controller, an EMS, or the like. The external relay unit 211 is connected to a user terminal or another management system.

以下、マネジメントエンジンシステム210の各モジュールについて説明する。   Hereinafter, each module of the management engine system 210 will be described.

<資源管理部>
資源管理部213は、物理実体をプリミティブロールとして管理し、そのプリミティブロールのインタフェースをロール整合部212に提供する機能部である。より具体的には、以下の各機能を有する。
<Resource Management Department>
The resource management unit 213 is a functional unit that manages a physical entity as a primitive role and provides an interface of the primitive role to the role matching unit 212. More specifically, it has the following functions.

(1)資源管理部213は物理実体と接続して、物理実体からの監視情報等をロール整合部212に上げて、ロール整合部212からの制御命令を物理実体に渡す。   (1) The resource management unit 213 connects to the physical entity, raises monitoring information from the physical entity to the role matching unit 212, and passes a control command from the role matching unit 212 to the physical entity.

(2)物理実体を内部的にプリミティブロールとして表現して、そのプリミティブロールのインタフェースをロール整合部212に提供する。   (2) A physical entity is internally represented as a primitive role, and an interface of the primitive role is provided to the role matching unit 212.

(3)資源管理部213は定義したプリミティブロールと物理実体の関係を管理する。例えば、プリミティブロールの識別情報と物理実体の識別情報を対応付けてデータベースに格納することでこれらの関係を管理する。   (3) The resource management unit 213 manages the relationship between the defined primitive role and the physical entity. For example, the relationship between the primitive role identification information and the physical entity identification information is stored in the database in association with each other.

上記の関係に基づき、資源管理部213は、ロール整合部212からの制御要求を物理実体への制御コマンドに変換する。また、物理実体からのイベントをプリミティブロールのインタフェースを介してロール整合部212に通知する。この際、ロール整合部212に上げる必要の無い情報はプリミティブロール内で処理を行い、ロール整合部212には隠ぺいする。また、必要に応じてプリミティブロールの内部処理として外部システムを使う場合も想定する。例えば、物理実体のログ解析を外部の専用システムに依頼する等である。   Based on the above relationship, the resource management unit 213 converts the control request from the role matching unit 212 into a control command to the physical entity. Also, the event from the physical entity is notified to the role matching unit 212 via the primitive role interface. At this time, information that does not need to be sent to the roll matching unit 212 is processed in the primitive roll, and is hidden in the roll matching unit 212. In addition, it is assumed that an external system is used as internal processing of the primitive role as necessary. For example, requesting an external dedicated system for log analysis of a physical entity.

<ロール定義書>
次に、ロール生成ツール214に入力されるロール定義書215について説明する。ロール定義書215は、ロールを定義した定義書であり、ロールが関係している資源や、ロール間の関係を規定しており、これまでに説明したように、オントロジー言語(本実施例ではOWL)を使用してロール定義書215を記述する。定義書には少なくとも以下の情報を含む。
<Role definition document>
Next, the role definition document 215 input to the role generation tool 214 will be described. The role definition document 215 is a definition document that defines a role. The role definition document 215 defines the resources to which the role is related and the relationship between the roles. As described above, the ontology language (OWL in this embodiment) is defined. ) To describe the role definition document 215. The definition document contains at least the following information.

・ロール名
・ロールが持つ属性情報
・ロールに対して実施できる命令
・ロールの制約条件
・ロールが関係するイベント情報
・その他
<ロール生成ツール>
ロール生成ツール214は、前述したロール生成装置100に相当するものであり、オントロジーを用いて記載されたロール定義書からロールコンポーネントを生成する。一つのロール定義に対して1つのロールコンポーネントが生成される。
-Role name-Role attribute information-Instructions that can be executed for the role-Role constraint conditions-Event information related to the role-Other <Role generation tool>
The roll generation tool 214 corresponds to the roll generation apparatus 100 described above, and generates a roll component from a roll definition document described using an ontology. One role component is generated for one role definition.

<ロール整合部>
ロール整合部212は、ロール生成ツール214で作成したロールコンポーネントをインスタンス化してロールコンポーネントを動作させ、各ロールインスタンス間の関係を自動管理する。また、ロールコンポーネント間のイベント流通や、ロールコンポーネントの動的な追加・削除を行う。
<Roll alignment unit>
The role matching unit 212 instantiates the role component created by the role generation tool 214, operates the role component, and automatically manages the relationship between the role instances. It also distributes events between role components and dynamically adds and deletes role components.

また、ロール整合部212は、必要に応じて(例えば、外部からのロールに対する指示に応じて)、資源管理部213のプリミティブロールを、プリミティブロールのインタフェースを介して制御し、外部中継部211に対してロールのインタフェースを提供する。   Further, the role matching unit 212 controls the primitive role of the resource management unit 213 via the primitive role interface as necessary (for example, according to an instruction to the role from the outside), and sends it to the external relay unit 211. Provides an interface for roles.

図15にロール整合部212内の構成例を示す。図15を参照してロール整合部212についてより詳細に説明する。図15に示す例において、ロール整合部212は、ロール整合部フレームワーク221、ロールコンポーネントA、ロールオブジェクトA1、A2、ロールコンポーネントB、ロールオブジェクトB1、B2を有する。   FIG. 15 shows a configuration example in the roll matching unit 212. The roll matching unit 212 will be described in more detail with reference to FIG. In the example illustrated in FIG. 15, the roll matching unit 212 includes a roll matching unit framework 221, a roll component A, roll objects A1 and A2, a roll component B, and roll objects B1 and B2.

ロール生成ツール214により生成されたロールコンポーネントA、B(プログラム)がロール整合部212内の記憶手段に記憶され、当該ロールコンポーネントA、Bは記憶手段から読み出され、ロール整合部フレームワーク221によりインスタンス化されて動作する。ロールコンポーネントA、Bはロールオブジェクトの生成・削除を行うファクトリに相当し、一つのロールコンポーネントに対して一つ又は複数個のロールオブジェクトが生成される。図15の例では、ロールコンポーネントAからロールオブジェクトA1、A2が生成され、ロールコンポーネントBからロールオブジェクトB1、B2が生成されたことが示されている。ここでの各ロールオブジェクトはロールのインスタンス表現であり、これを管理オブジェクトと称してもよい。   The roll components A and B (programs) generated by the roll generation tool 214 are stored in the storage means in the roll matching unit 212, and the roll components A and B are read from the storage means and are read by the roll matching unit framework 221. It is instantiated and works. The roll components A and B correspond to factories for creating and deleting roll objects, and one or a plurality of roll objects are created for one roll component. In the example of FIG. 15, it is shown that roll objects A1 and A2 are generated from the roll component A, and roll objects B1 and B2 are generated from the roll component B. Each role object here is an instance representation of a role, which may be referred to as a managed object.

ロール整合部フレームワーク221は、前述したようにロールコンポーネントをインスタンス化して動作させるとともに、ロールコンポーネント間の情報伝達を仲介する。ロール整合部フレームワーク221の実現手法は特定の手法に限定されないが、例えばロール整合部フレームワーク221としてOSGiフレームワークを用いることができ、その場合、ロールコンポーネントはOSGiバンドルを用いて実現できる。   The role matching unit framework 221 instantiates and operates the roll component as described above, and mediates information transmission between the roll components. The method for realizing the role matching unit framework 221 is not limited to a specific method, but for example, the OSGi framework can be used as the role matching unit framework 221, and in this case, the roll component can be realized using an OSGi bundle.

また、各ロールコンポーネントは、ロールオブジェクトのデータの一貫性を確保する機能を有する。一貫性を確保するために、ロールコンポーネントは関係する他のロールコンポーネントの情報を確認する動作を行う。   Each role component has a function of ensuring consistency of data of role objects. In order to ensure consistency, the role component performs an operation of confirming information of other related role components.

このように一貫性を確保する機能を有するため、例えば、同じ物理実体を異なるロールで表現して、その異なるロールをそれぞれ別の外部システムが利用しても、情報の一貫性を保証できる。なお、一貫性を確保するための具体的な処理動作としては、例えば、ある物理実体を表現するロールに対して外部から処理要求があり、当該物理実体における値(ネットワーク資源割当値等)に変更があったときに、同じ物理実体を表現する別のロールに、この値の変更を反映させる等の動作がある。   Since it has the function of ensuring consistency in this way, for example, even if the same physical entity is expressed by different roles and the different roles are used by different external systems, the consistency of information can be guaranteed. As specific processing operations for ensuring consistency, for example, there is an external processing request for a role representing a physical entity, and the value is changed to a value (such as a network resource allocation value) in the physical entity. When there is, there is an operation such as reflecting the change of this value to another role expressing the same physical entity.

<外部中継部>
外部中継部211は、ロール整合部212から提供されたロールのインタフェースを使って、他管理システムとの仲介や、オペレータに対してロールをGUIで表現する。つまり、外部中継部211はロール整合部212内のロール表現を他管理システムのプロトコルに変換したり、GUIで表現するモジュールである。
<External relay section>
The external relay unit 211 uses the role interface provided from the role matching unit 212 to mediate with other management systems and to express the role to the operator using a GUI. That is, the external relay unit 211 is a module that converts the role expression in the role matching unit 212 into a protocol of another management system or expresses it with a GUI.

なお、マネジメントエンジンシステムが既存のネットワークサービスを巻き取った場合は、この外部中継部211が旧管理システムと接続してマイグレーションを実現する。また、ユーザに対してネットワークのカスタマコントロール機能を提供する場合は、外部中継部211でユーザ向けインタフェースを構築する。   When the management engine system winds up an existing network service, the external relay unit 211 connects to the old management system to realize migration. When providing a customer control function of the network to the user, the external relay unit 211 constructs an interface for the user.

本実施の形態に係るマネジメントエンジンシステム210は、1つ又は複数のコンピュータに、各モジュールに対応するプログラムを実行させることにより実現可能である。すなわち、マネジメントエンジンシステム210は、コンピュータに各部の機能に対応するプログラムを実行させることにより、データのメモリへの格納/読み出しとCPUによる処理等を繰り返しながら、所望の処理を実行する。また、インスタンス化されたロールコンポーネントは、ロールコンポーネントの実装内容に従って動作するが、この動作についても、データのメモリへの格納/読み出しとCPUによる処理等を繰り返しながら実行される。   The management engine system 210 according to the present embodiment can be realized by causing one or a plurality of computers to execute a program corresponding to each module. That is, the management engine system 210 executes a desired process while causing a computer to execute a program corresponding to the function of each unit, and repeatedly storing / reading data in / from the memory and processing by the CPU. In addition, the instantiated roll component operates in accordance with the implementation content of the roll component. This operation is also executed while repeatedly storing / reading data in / from the memory and processing by the CPU.

上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。   The above-mentioned program can be recorded on a computer-readable recording medium (portable memory or the like), stored, or distributed. It is also possible to provide the program through a network such as the Internet or electronic mail.

なお、ロール生成ツール214をマネジメントエンジンシステム210の外部に置き、ロール生成ツール214により生成されたロールコンポーネントを外部からマネジメントエンジンシステム210に格納して使用することとしてもよい。   Note that the role generation tool 214 may be placed outside the management engine system 210, and the role component generated by the role generation tool 214 may be stored in the management engine system 210 from the outside and used.

上記のようなマネジメントエンジンシステム210において、オントロジー言語により記載されたロール定義書(例としてTrail定義書とする)からTrailのロールコンポーネントが生成され、生成されたTrailのロールは、ロール整合部212においてロールオブジェクトとして存在する。Trailのロールは、資源管理部213から当該Trailのロールに対応する物理実体からのイベントを受信したり、外部中継部211から指示を受けて応答を返す(例えば、接続構成や、現在の空き容量を返す)等の処理を行う。このような処理を、情報の一貫性の管理の下に、各ロールが行うことでネットワークマネジメントを実現する。   In the management engine system 210 as described above, a trail role component is generated from a role definition document (for example, a trail definition document) written in an ontology language, and the generated trail role is generated in the role matching unit 212. Exists as a roll object. The role of the trail receives an event from the physical entity corresponding to the role of the trail from the resource management unit 213, or receives a command from the external relay unit 211 and returns a response (for example, the connection configuration or the current free space ) Is performed. Network management is realized by each role performing such processing under information consistency management.

(実施の形態のまとめ、効果)
本発明の実施の形態においては、ネットワークのロール階層モデルにおける各ロールを定義するロール定義書にオントロジーを適用するので、ロール間の関係を適切に表現したロール定義書を作成でき、結果として、適切なロールコンポーネントを迅速に生成することが可能となる。
(Summary of the embodiment, effects)
In the embodiment of the present invention, since the ontology is applied to the role definition document that defines each role in the role hierarchy model of the network, it is possible to create a role definition document that appropriately represents the relationship between roles, and as a result, It is possible to quickly generate a roll component.

すなわち、非特許文献2に示した従来技術においては、ロール間の関係の整理が難しく、かつ、ロール間の関係を表記する適切な方法がなかったため、ロール間の関係を表現できなかったところ、本実施の形態では、ソフトウェア技術とは別の語彙体系の表現方式であるオントロジーを適応して、この課題を解決し、ロールコンポーネントを迅速に生成することを可能とした。   That is, in the prior art shown in Non-Patent Document 2, it is difficult to organize the relationship between roles, and since there was no appropriate method for expressing the relationship between roles, the relationship between roles could not be expressed. In the present embodiment, an ontology, which is an expression method of a vocabulary system different from software technology, is applied to solve this problem and to quickly generate a roll component.

また、本実施の形態により、オントロジーで記載されたロール定義書からソフトウェアコンポーネントを生成する技術が提供される。本実施の形態では、主にネットワークマネジメントに関する例を説明しているが、オントロジーのOWLは標準化された表記方法なので、そのOWLからソフトウェアコンポーネントを生成する仕組みはネットワークマネジメントに限らず適用可能である。   In addition, according to the present embodiment, a technique for generating a software component from a role definition document described in an ontology is provided. In this embodiment, an example related to network management is mainly described. However, since the ontology OWL is a standardized notation method, a mechanism for generating software components from the OWL is not limited to network management and can be applied.

本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications are possible within the scope of the claims.

10 ロールコンポーネント
11 プロパティ部品
12 振舞コード部
15 プロパティ部品棚
16 自動生成コード部
17 ファクトリ部品
18 インタフェース定義
30 ロール定義書
100 ロール生成装置
110 ロール定義書入力部
120 ロール定義書格納部
130 インタフェース定義生成部
140 プロパティ利用コード生成部
150 作成済プログラム格納部
160 ロールコンポーネント生成・出力部
210 マネジメントエンジンシステム
211 外部中継部
212 ロール整合部
213 資源管理部
214 ロール生成ツール
221 ロール整合部フレームワーク
DESCRIPTION OF SYMBOLS 10 Roll component 11 Property part 12 Behavior code part 15 Property part shelf 16 Automatic generation code part 17 Factory part 18 Interface definition 30 Role definition document 100 Roll generation apparatus 110 Roll definition document input part 120 Roll definition document storage part 130 Interface definition generation part 140 Property usage code generation unit 150 Created program storage unit 160 Roll component generation / output unit 210 Management engine system 211 External relay unit 212 Role matching unit 213 Resource management unit 214 Role generation tool 221 Role matching unit framework

Claims (8)

オントロジーを用いて記載されたロール定義書からソフトウェアコンポーネントを生成するソフトウェアコンポーネント生成装置であって、
ロール間の関係を示すプロパティのコードであるプロパティ部品を格納したプロパティ部品記憶手段と、
前記ソフトウェアコンポーネントにより生成されるオブジェクトのインタフェース定義のコードと、前記ロール定義書に記載されているプロパティのプロパティ部品を利用するためのコードを生成するコード生成手段と、
前記プロパティ部品記憶手段から、前記ロール定義書に記載されているプロパティのプロパティ部品を取得し、当該プロパティ部品と、前記コード生成手段により生成されたコードとを含むソフトウェアコンポーネントを生成し、出力するソフトウェアコンポーネント生成・出力手段と
を備えたことを特徴とするソフトウェアコンポーネント生成装置。
A software component generation device that generates a software component from a role definition document described using an ontology,
Property part storage means storing property parts which are property codes indicating the relationship between roles;
Code for generating an interface definition of an object generated by the software component, and code for using a property part of a property described in the role definition document;
Software that acquires a property part of the property described in the role definition document from the property part storage unit, generates a software component including the property part and the code generated by the code generation unit, and outputs the software component A software component generation apparatus comprising: a component generation / output unit.
前記ロール定義書に記載されているプロパティは、対象のロールが持つ属性情報を表すプロパティ、当該ロールが外部に提供する操作を表すプロパティ、又は、当該ロールが存在するための制約条件を表すプロパティである
ことを特徴とする請求項1に記載のソフトウェアコンポーネント生成装置。
The property described in the role definition document is a property representing attribute information of the target role, a property representing an operation provided by the role to the outside, or a property representing a constraint condition for the role to exist. The software component generation apparatus according to claim 1, wherein the software component generation apparatus is a software component generation apparatus.
前記オントロジーの言語として、ウェブオントロジー言語(OWL)を用いて前記ロール定義書が記載されている
ことを特徴とする請求項1又は2に記載のソフトウェアコンポーネント生成装置。
The software component generation apparatus according to claim 1, wherein the role definition document is described using a web ontology language (OWL) as the ontology language.
請求項1ないし3のうちいずれか1項に記載のソフトウェアコンポーネント生成装置を備え、当該ソフトウェアコンポーネント生成装置により生成されたソフトウェアコンポーネントであるロールコンポーネントを用いてネットワークマネジメントシステムを構築するマネジメントエンジンシステムであって、
前記ロール定義書で定義されるロールは、ネットワークの管理オブジェクトを表現したロールであり、
前記ロール定義書から生成された前記ロールコンポーネントを格納する格納手段と、
前記格納手段から読み出されたロールコンポーネントを動作させ、ロールコンポーネントに、管理オブジェクトに対応するロールオブジェクトを生成させる手段と
を有することを特徴とするマネジメントエンジンシステム。
A management engine system comprising the software component generation device according to any one of claims 1 to 3 and constructing a network management system using a roll component that is a software component generated by the software component generation device. And
The role defined in the role definition document is a role expressing a management object of the network,
Storage means for storing the role component generated from the role definition document;
A management engine system comprising: means for operating the roll component read from the storage means, and causing the roll component to generate a roll object corresponding to the management object.
前記物理実体と接続するとともに、物理実体に対応するプリミティブロールを有し、当該プリミティブロールのインタフェースを提供する資源管理手段と、
前記ロールオブジェクトのインタフェースを利用して、外部にロールの情報を提供する外部中継手段と
を更に備えることを特徴とする請求項4に記載のマネジメントエンジンシステム。
Resource management means for connecting to the physical entity, having a primitive role corresponding to the physical entity, and providing an interface of the primitive role;
The management engine system according to claim 4, further comprising: an external relay unit that provides role information to the outside using the role object interface.
オントロジーを用いて記載されたロール定義書からソフトウェアコンポーネントを生成するソフトウェアコンポーネント生成装置が実行するソフトウェアコンポーネント生成方法であって、
前記ソフトウェアコンポーネントにより生成されるオブジェクトのインタフェース定義のコードと、前記ロール定義書に記載されているプロパティのプロパティ部品を利用するためのコードを生成するコード生成ステップと、
ロール間の関係を示すプロパティのコードであるプロパティ部品を格納したプロパティ部品記憶手段から、前記ロール定義書に記載されているプロパティのプロパティ部品を取得し、当該プロパティ部品と、前記コード生成ステップにより生成されたコードとを含むソフトウェアコンポーネントを生成し、出力するソフトウェアコンポーネント生成・出力ステップと
を備えたことを特徴とするソフトウェアコンポーネント生成方法。
A software component generation method executed by a software component generation apparatus that generates a software component from a role definition document described using an ontology,
A code generation step of generating a code for using an interface definition of an object generated by the software component and a property part of a property described in the role definition document;
The property part of the property described in the role definition document is acquired from the property part storage means storing the property part that is the property code indicating the relationship between roles, and is generated by the property part and the code generation step. A software component generation method comprising: a software component generation / output step for generating and outputting a software component including the generated code.
前記ロール定義書に記載されているプロパティは、対象のロールが持つ属性情報を表すプロパティ、当該ロールが外部に提供する操作を表すプロパティ、又は、当該ロールが存在するための制約条件を表すプロパティである
ことを特徴とする請求項6に記載のソフトウェアコンポーネント生成方法。
The property described in the role definition document is a property representing attribute information of the target role, a property representing an operation provided by the role to the outside, or a property representing a constraint condition for the role to exist. The software component generation method according to claim 6, wherein:
前記オントロジーの言語として、ウェブオントロジー言語(OWL)を用いて前記ロール定義書が記載されている
ことを特徴とする請求項6又は7に記載のソフトウェアコンポーネント生成方法。
The software component generation method according to claim 6 or 7, wherein the role definition document is described using a web ontology language (OWL) as the ontology language.
JP2013184828A 2013-09-06 2013-09-06 Software component generation apparatus, software component generation method, and management system Pending JP2015052875A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013184828A JP2015052875A (en) 2013-09-06 2013-09-06 Software component generation apparatus, software component generation method, and management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013184828A JP2015052875A (en) 2013-09-06 2013-09-06 Software component generation apparatus, software component generation method, and management system

Publications (1)

Publication Number Publication Date
JP2015052875A true JP2015052875A (en) 2015-03-19

Family

ID=52701871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013184828A Pending JP2015052875A (en) 2013-09-06 2013-09-06 Software component generation apparatus, software component generation method, and management system

Country Status (1)

Country Link
JP (1) JP2015052875A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019518270A (en) * 2016-04-26 2019-06-27 サービスナウ, インコーポレイテッドServiceNow, Inc. Deployment of network resources based on inclusion structure
CN110175022A (en) * 2019-04-25 2019-08-27 平安科技(深圳)有限公司 Automatically generate the method, apparatus and storage medium, computer equipment of POJO class

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03191424A (en) * 1989-12-21 1991-08-21 Nec Corp Software parts synthetic system
JPH09120357A (en) * 1995-10-26 1997-05-06 Hitachi Ltd Object-oriented application production method
JPH10105392A (en) * 1996-07-03 1998-04-24 Sun Microsyst Inc Filtering for object interface definition for deciding required service and supplied service
JP2010039841A (en) * 2008-08-06 2010-02-18 Canon Inc Program as development toolkit for supporting application development, and image forming apparatus having the program installed therein
JP2011242941A (en) * 2010-05-17 2011-12-01 Canon Inc Component coupling device and processing method therefor
US20120278788A1 (en) * 2011-04-29 2012-11-01 General Electric Company Methods for code generation from semantic models and rules

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03191424A (en) * 1989-12-21 1991-08-21 Nec Corp Software parts synthetic system
JPH09120357A (en) * 1995-10-26 1997-05-06 Hitachi Ltd Object-oriented application production method
JPH10105392A (en) * 1996-07-03 1998-04-24 Sun Microsyst Inc Filtering for object interface definition for deciding required service and supplied service
JP2010039841A (en) * 2008-08-06 2010-02-18 Canon Inc Program as development toolkit for supporting application development, and image forming apparatus having the program installed therein
JP2011242941A (en) * 2010-05-17 2011-12-01 Canon Inc Component coupling device and processing method therefor
US20120278788A1 (en) * 2011-04-29 2012-11-01 General Electric Company Methods for code generation from semantic models and rules

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6016012393; 湊 賢治: 'ロール階層モデルを適用したマネジメントエンジンの検討' 電子情報通信学会技術研究報告 第112巻、第379号, 20130110, 第7-12頁, 一般社団法人電子情報通信学会 *
JPN6016012394; 清野 正樹: 'セマンティックWebとオントロジ記述言語' 情報処理 第43巻、第7号, 20020715, 第727-733頁, 社団法人情報処理学会 *
JPN6016012395; 川幡 太一: 'EJBとUMLを利用したOSSクライアントとソフトウェア構築の自動化' 電子情報通信学会技術研究報告 第101巻、第563号, 20020111, 第69-74頁, 社団法人電子情報通信学会 *
JPN6016012396; Aditya Kalyanpur: 'Automatic mapping of OWL ontologies into Java' Proceedings of the 17th International Conference on Software Engineering and Knowledge Engineering ( , 20040624 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019518270A (en) * 2016-04-26 2019-06-27 サービスナウ, インコーポレイテッドServiceNow, Inc. Deployment of network resources based on inclusion structure
CN110175022A (en) * 2019-04-25 2019-08-27 平安科技(深圳)有限公司 Automatically generate the method, apparatus and storage medium, computer equipment of POJO class
CN110175022B (en) * 2019-04-25 2023-10-13 平安科技(深圳)有限公司 Method and device for automatically generating POJO class, storage medium and computer equipment

Similar Documents

Publication Publication Date Title
Bauer et al. IoT reference architecture
Chaari et al. A comprehensive approach to model and use context for adapting applications in pervasive environments
US11615425B2 (en) Method and apparatus for autonomous services composition
Androcec et al. Service-level interoperability issues of platform as a service
CN103390018A (en) Web service data modeling and searching method based on SDD (service data description)
CN112698921A (en) Logic code operation method and device, computer equipment and storage medium
Bernal et al. A framework for modeling cloud infrastructures and user interactions
Tayur et al. A comprehensive ontology for Internet of Things (coIoT)
Kulikov et al. An analytical computing infrastructure for monitoring dynamic networks based on knowledge graphs
JP2015052875A (en) Software component generation apparatus, software component generation method, and management system
Gómez-Martínez et al. Performance assessment of an architecture with adaptative interfaces for people with special needs
van der Ham et al. Challenges of an information model for federating virtualized infrastructures
CN102047610A (en) Behaviour model for a communications network
Foster et al. How do i model state? Let me count the ways
Lillo et al. An ECA-based semantic architecture for IoT building automation systems
Chis et al. BPMN extension for multi-protocol DataOrchestration
O'Byrne et al. Implementing the draft W3C semantic sensor network ontology
Alirezaei et al. Adaptable cross-organizational unstructured business processes via dynamic rule-based semantic network
Tomczak et al. Development of service composition by applying ICT service mapping
JP2020098483A (en) Information processing system, method and program
Leida et al. Facing big data variety in a model driven approach
Strohbach et al. Smart Home Crawler: Towards a framework for semi-automatic IoT sensor integration
JP2018113030A (en) Device for processing large scale data stream
Derguech et al. Organizing capabilities using formal concept analysis
Di Modica et al. An OSGi middleware to enable the Sensor as a Service paradigm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161025