見出し画像

データやアーキテクチャの話に出てくる参照モデルって何だろう

データやアーキテクチャに関する説明を読むと、参照モデルやリファレンスモデルという言葉をよく聞くだろう。ふわっとしていてわかりにくいという質問をされることが多いので整理しておきます。

参照モデルとはなにか

まずは、wikipediaを見てみましょう。

システム工学ソフトウエア工学における何かの基本的目標やアイデアを包含し、様々な目的で一つの参照として見ることができる、何かのモデルである。

https://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB

このような定義がされていますが、簡単に言うと「よく設計された雛形」というのが分かりやすいのではないでしょうか。
雛形があると簡単に、類似なものを設計したりできますよね。でも雛形って、それが本当に合理的なのかってわからないです。前任者が作ったとか、昔からこの様式だったとか、結構いい加減だったりします。法律に書かれた様式さえも、デジタル化が進んできている中で合理的ではないモデルが数多く存在します。

では改めて参照モデルとは何でしょうか。
「専門家によって設計され、何らかの検証プロセスを経て公開されたモデル(雛形)」というのが必要な要件といえます。

では、wikipediaも参考にメリットを整理してみましょう。

  • 参照モデルと類似のものを作る人に雛形を提供し作業を容易にする。

  • 参照モデルが対象領域を小さな要素に分解するので、対象領域の抽象的な概念とともに構成を理解しやすくなる。

  • 参照モデルと自己モデルを比較し、差異を見ることで、問題点や競争優位性を明確にすることができる。

  • 参照モデルを使うことで、議論の対象が明確化でき、コミュニケーションが円滑にできる。

  • 参照モデルで境界が明確になることで、役割や責任が明確化できる。

  • 様々な類似の対象物を、参照モデルを使って比較しやすくなる。

その結果として以下の効果があります

  • 勉強時間の短縮と深い理解

  • 設計時間の短縮

  • 設計品質の向上(検討に抜け漏れがない)

  • 設計時間の短縮による付加価値検討時間の増加

  • インタオペラビリティや拡張性の向上

データの交換を例に参照モデルを見てみましょう。氏名のデータの持ち方はシステムによってバラバラです。各システムでは氏名を1つのデータ項目で持っている場合、スペースで区切っている場合、氏と名で分離して持っている場合があります。
データを交換するときは、氏と名で分離して送りましょうとルールを決めることでデータ交換は容易になり、各システムもインタフェースで変換すれば内部業務を変更しないで済むので、容易に導入することができます。
今までは、システムとの連携をするたびにシステムの調整が必要でしたが、このように参照モデルを使うことで、1種類の変換だけで済むようになります。

これまでの有名な参照モデル

皆さんあまり意識していませんが、古くから参照モデルという言葉は使われています。

OSI参照モデル

ネットワークをやっていたならば、OSI参照モデルを知っている人も多いでしょう。以下の7層で構成されます。

7. アプリケーション層
6. プレゼンテーション層
5. セッション層
4. トランスポート層
3. ネットワーク層
2. データリンク層
1. 物理層

システム間を相互接続するために作られた参照モデルです。データ転送や管理など厳密にルールが決まっており、参照モデルというよりも仕様に近いです。
このモデルによりシステムをレイヤー別に考えられるようになり、多くの人がこのモデルを勉強しました。

エンタプライズ・アーキテクチャ

エンタプライズ・アーキテクチャが米国で推進されたときに、モデリング手法やアーキテクチャ構築手法を指定しただけでは相互運用性の確保が難しいく、米国政府はFederal Enterprise Architecture v2.0でリファレンスモデルを全面導入しました。

Consolidated Reference Model (CRM)

これは、システムのあらゆる要素に参照モデルを作るという壮大なプロジェクトでした。

Consolidated Reference Model Relationship Diagram

日本でも、導入が試みられましたが、当時の日本のエンタープライズ・アーキテクチャはモデリングが弱く、その推進と足並みが合わず普及には至りませんでした。

産業界のIIRA、RAMI

コンピュータ業界ではない産業界の人が参照モデルを耳にしたのは、IIRAやRAMIではないでしょうか。Industry4.0が注目されたときに、企業間や工場間を相互接続する重要性が指摘され、その中核となるIIRAやRAMIが注目されました。

IIRA(Industrial Internet Reference Architecture)は、IIC(Industry IoT Consortium(IIRA公表当時はIndustry Internet Consortium))が策定した米国発祥の産業用参照アーキテクチャです。IIRAは、参照モデルとしてビューとモデルを定義し、それに基づき拡張などをしてシステムを構築していくこととなります.

IIRA Constructs and Application

IIRAは、下図のようにビューポイントとライフサイクル、業界によって構成されています。

Industrial Internet Architecture Viewpoints

RAMI(Reference Architectural Model Industrie 4.0)は、ドイツ政府が支援するPlatform Industrie4.0が推進する産業用参照アーキテクチャです。

RAMI4.0

最近では、データスペースを推進するGAIA-Xの関連で、Platform Industrie4.0が推進するManifacturing-Xに注目する人が増えていますが、その中では参照モデルをより概要的にしたフレームワークを以下のように整理しています。

Manufacturing-X framework

行政分野のNIEM、ISA

データの参照モデルとして有名なのが、米国政府の推進するNIEM(National Information Exchange Model)です。プロジェクト開始当初はデータの参照モデルを説明するのが難しく、「NIEMは、標準でもデータベースでも、ソフトウェアでも、データ交換でもなく、コミュニティとツールと共通のターミノロジとガバナンスと方法論と標準のための支援を提供する」と苦労して説明していました。

NIEM is not a standard, database, software, or the actual exchange of information. Rather, NIEM provides the community of users, tools, common terminology, governance, methodologies, and support that enables the creation of standards. As a result, organizations can “speak the same language” to quickly and efficiently exchange meaningful data.

https://project-open-data.cio.gov/faq/

欧州のデータの参照モデルは欧州ISAが推進するコアボキャブラリです。人、法人、土地などの主要な対象物のデータモデルを参照モデルとして提供しています。

日本の政府相互運用性フレームワーク(GIF)

GIFは、日本の政府のシステムが相互運用性を確保できるように作られた参照モデルです。デジタル庁と情報処理推進機構が協力して推進しています。
政府標準利用規約やAPI規約などルールの参照モデル、人や法人などのデータモデル等により構成されています。

なぜ参照モデルを使うのか

他の分野は法律や標準で規定するのに、なぜ参照モデルにするのかという質問をよく受けます。

デジタルデータは変換が容易

自動車を作る時には、ネジや鉄板等を標準できちんと決めないと複数社の部品を集めると組み立てられません。
一方、デジタルの場合は、社内で独自のデータ管理ルール等を持っていても、社外と交換するときに変換して送り出すことができます。そのためインタフェースの標準が決まっていれば内部構造の細かい標準は必要ありません。

参照モデルを見ることで、専門性がなくてもよいものが作れる

何かを作ろうとしたときにゼロから作るのは大変です。専門家の知見によって合理的なモデルが示されるなら、そのモデルを使いたいという人はたくさんいます。検討の抜け漏れも防げます。

参照モデルを使うことにより、相互運用性と拡張性が確保される

参照モデルはあらかじめ相互運用性と拡張性が考慮されているので、設計時に意識しなくても相互運用性と拡張性の高いものが作れます。

技術変化が速く標準にはなじまない

参照モデルはアジャイルで短期間に作るので、時間のかかる標準化プロセスと技術変化のスピードがあっていないことがあります。
また、標準として拘束力を持ってシステム内部まで規定してしまうと、柔軟に新しい項目を追加したり不要な項目を削除することが難しくなります。時には、技術変化によるイノベーションが阻害されることがあります。

活用の自由度が高い

参照モデルを拡張したりサブセットにすることで、相互運用性を確保しながら、自由に設計をすることができる。キー項目を必須項目にすることで、基本項目の相互運用性は確保されます。そのため、既存システムを維持したい人も容易に導入できます。

アジャイルな社会になじむ

アジャイルプロセスでモデルを整備するので、変化や要望を取り込んで容易に改定をしていくことができます。

なぜ日本では参照モデルが流行らないのか

日本人は独自カスタマイズが大好きなんです!

実はパッケージソフトは参照モデルの固まりです。
業務パッケージ作る人が、様々なニーズを聞いて、最高の業務プロセスやデータのモデルをパッケージ内に基本モデルとして組み込んでいます。そのまま導入することもカスタマイズして導入することもできます。

しかし、カスタマイズしてシステムを作りたい人多いですよね。同じように政府内の参照モデルも、使えば圧倒的に効率的なのですが、独自に作りたい人が多いのが実情です。

参照モデルを使わない理由は、「今の業務に合わない」「参照モデルが複雑すぎる」「参照モデルが完全でない」「ゼロから自由に作りたい」などが主な理由ですが、System of Systemの時代には自分のプロジェクト以外も俯瞰してみていくことが必要ではないでしょうか。

また、業務視点の神話から脱却が必要です、何かをしようとするとまず日本ではPOCをやろうということになり、現場に密着した実証をします。今までどれだけの投資が行われてきたでしょうか。短期間に実証をするためには、参照モデルを使って持続性ある仕組みを作ろうという人はほとんどいません。
家電製品にたとえると、実証実験で家電製品をたくさん作りますが、コンセントも電圧もバラバラなものを作り続けています。機能の確認はできますが、それらは実用することができません。対して欧州では、まずは参照モデル等のフレームワークを整備して、その上で実証をしていきます。そのために、どんどん新しい人が参入してきて新しいビジネスを作っていきます。

日本では、技術志向で使えない基盤を作ってもダメだから、ホリゾンタルなアプローチはではなく業務ニーズから入るバーティカルなモデルで開発し横展開するべきだという意見は根強いです。参照モデルのアプローチは、業界ニーズからモデルを作り、現場で検証し、モデルを修正するというアジャイルなアプローチなので、日本も欧州型にシフトしていく必要があるのではないでしょうか。

参照モデルを広げるには

まずは、参照モデルの理解者を増やすことが日本では必要です。そのためにはモデリングに関する理解や、アーキテクチャの理解を深めていく必要があります。
一方で、業務のスピードが上がり、従来のゼロからのスクラッチ開発では間に合わない時代になってきています。
OSS等の部品供給の体系の見直しとともに、高速開発に対するニーズを掘り起こす中でも検討を進めていく必要があります。

また、参照モデルの活用には、組織の司令塔が必要になります。そうした点から、Interoperable Europe法を作ろうとしているEUは理想的な進め方をしています。日本も強い意志を持って参照モデルの普及をしていく必要がありますね。



この記事が気に入ったらサポートをしてみませんか?