見出し画像

「物質世界」をモデル化する

今回も前回に引き続き、Archiのパレット上に居るのに今まで紹介されなかった面々にスポットを当てます。

「フィジカル」レイヤー

初期のArchiMateの開発には金融、保険、税務分野の人々が多く関わっていたのでその反動、というワケでもないでしょうが、製造業を意識した要素がバージョン3から追加されています。

「設備 (Equipment)」「施設 (Facility)」「物流網 (Distribution Network)」「マテリアル (Material)」

「設備」と「施設」はテクノロジー層のノードの物理特化バージョンです。「設備」は「マテリアル」に対し、何らかの物理的・化学的な作用を及ぼすことによって付加価値を与え、またしばしば副産物 (バイプロダクト) を発生させます。「施設」は「設備」が有効に機能するための環境を提供します。

「マテリアル」はテクノロジー層の「アーティファクト」の物理特化バージョンで、「嵩と目方」を伴うあらゆるものです。個体、流体、気体、粉体とか、厚板、薄板、棒材、鋳物、鍛造など、いろいろあります。もちろん有難いモノばかりではなく、加工くず、端材、残渣、廃液なんかの副産物も当然マテリアルです。あとマテリアルとしてわすれてはならないのが「電力」です。嵩と目方には当てはまりませんが、アルミなんか電気がなければ出来ませんし、材料の一つであると言えます。まあ「嵩と目方」に加えて「エネルギー(原)全般」もマテリアル扱いということで良いでしょう。

物流網はテクノロジー層の回線網と同類で、但し流れる中身が電気信号ではなく、嵩と目方を伴うモノとか、エネルギーということになります。倉庫や車両、船舶などの物流設備、ベルトコンベアやプラントのパイプライン、工場や倉庫内のフォークリフト、無人搬送車などの構内物流などを表現します。テクノロジー層の「パス」を「リアライズ」するのも回線網と同様です。その場合のパスはネットワークルーティング情報ではなく、設備や施設間の経路情報ですね。

とりあえずこれら4種類の要素を使って下のような絵が描けます。

マテリアルAは原材料 (いわゆるローマテ)、マテリアルBは仕掛 (WIP)、マテリアルCは製品 (Finished Goods) といった感じです。施設AとBとの間の距離は判りませんが、パイプラインなりトラック便なり、オペレータが搭乗するフォークリフトなり、はたまたプログラムによって自動制御される無人搬送車なりの、仕掛を運搬する物流網があります。

これだけだとあまり面白くもありませんが、毎時何個、とか月量何トンとかの量的なパフォーマンスとか、勘定科目別で簿価とか償却費とか運転費用とか入れてみると、また違ったものが見えてくるでしょう。

で、ここにIoTのセンサーやらコントローラやら、倉庫管理システム (WMS) を書き足していくと、そこからテクノロジー層、アプリ層、そしてビジネス層へと昇っていって、最終的にはモチベーション層までたどり着くことができます。これをポンチ絵で描くのは大変でしょうが、ArchiMateなら可能です。製造業のデジタル・ツインです。

電力をマテリアル扱いすると何が書けるか、というお話ですが、昨今はクラウド化が進んで、持っているところも少なくなりましたが、ディーゼル発電機による非常用電源システム、なんてのもありました。停電発生をUPSで検知、しばらくUPSで持たせて、停電が予め想定した時間内で復旧しない場合はディーゼル発電機を自動起動します。簡単に描くとこんな感じでしょうか。


真ん中のマテリアルは「電力 (200V)」ですね。配送網Aは「高圧受電設備」、Bは「低圧配線」です。白丸は"OR"ジャンクションで、電力が来るのは受電設備、発電機のどちらかです。下の段でイベントが右から左へと流れますが、「低圧配線」上のノードの「UPS」がイベントBの「停電検知」をトリガ、それがイベントAの「エンジン始動」をトリガして、設備である「ディーゼル発電機」を始動させます。

ここからさらに、アラートメールを自動発報する、とか、緊急時のシステム停止処理 (シャットダウン・シーケンス) をオンプレのサーバで自動で走らせるとか、その辺りを書き足すこともできます。そうするとBCP監査などで、どの部分に関する定期点検・整備などの、計画や記録の有無をチェックできるようになります。

その他の要素

ジャンクション

これはすでに (直ぐ上の文でも) 何度か出番が有りましたが、要はリレーションのコネクタで、要素が"AND"で繋がっているなら「全部いっしょ」、"OR"なら「いずれか一つ」を「明示的に」表現します。ノーテーションとしては、黒丸が"AND"、白丸が"OR"で、これはツール上ではジャンクション要素のプロパティで切り替えます。「入り」と「出」は一対多、多対一、多対多とも書くことが出来ます。ここで「多対多」は、"AND"または"OR"同種の「一対多」と「多対一」を繋げたもの、と見なします。とはいえ、こんな絵はあまり描きたくないものですね。

せめて決定表 (Decision Table) くらい付けたいところですが、ジャンクションに繋げられるのは当然ながら同じ線種のみで、ここにアソシエーションを混ぜることは出来ません。なので諦めて書き直すとこんな感じになります。

上のビジネス・オブジェクトが決定表などのビジネス・ルール、その下が判定処理ですね。こういう3パターンの入力 (”OR"ジャンクションなので) を2つのケースに振り分ける、というのは、まあ無くもなさそうな処理でしょう。入力側のジャンクションが無い方が複雑 (真偽が3本で8パターン) で、そっちの方がよりそれらしく見えますが。

グルーピングとグループ、ノートとコネクション、ロケーション

Archiの画面のパレット上に、こんな似たようなモノが二つありますが、これらは何でしょうか?

答えは、右側の「グルーピング」は、「複合 (Composite) 要素」の一つとしてArchiMateの語彙に含まれます。一方左側の「グループ」はArchiツールの独自実装、となります。

グルーピング要素を描くと、モデルツリーの"Other"フォルダにも現れますが、グループを描いてもモデルツリーには出てきません。グルーピング要素にアグリゲーションなどの線は引けますが、グループには引けません。グルーピング要素はほかの要素同様、アーキテクチャ・モデルにデータとして含まれますが、グループはそのビュー上だけに存在する、ただの図形です。

個人的には余計なデータが増える (100個の要素をグルーピングしたら、線も100本増える) のはイヤなので、何らかのドメイン・グループで括りたい、といった、よほど意味的な重要性が無い限りは、単にグループで括るほうをお勧めします。ビュー上で中身の要素をまとめて動かしたり、中身の要素もろとも一発でビュー上から削除したり、といった動作に違いはありません。

パレット上にもう一つ、アソシエーションと見分けが付かない実線があります。下の図でステークホルダとドライバの間はアソシエーション、"Note"と書いてある四角とドライバを結んでいるのは「コネクタ」と呼びます。この「ノート」と「コネクタ」、それから先ほどの「グループ」はArchiMateの語彙ではない、Archi独自のもの、ということになります。

「ノート」は吹き出しのコメント、「コネクタ」はコメントにつける吹き出し線です。「ノート」はほかの要素と違い、中で改行が出来ます (入力確定はCtrl+Enter)。ただしこれもビュー上だけの存在で、削除するとそれっきりなので、大事なことは要素のプロパティの"Documentation"に書いておき、そこから必要なところを抜き出してノートにコピペするようにしましょう。

ロケーション

ロケーションはグルーピングと同様、なんでもアグリゲートすることが出来ます。ただし意味は地理的な場所や地域、上下前後左右といった位置関係に「限定」されます。

逆にいえば、グルーピングやその他の要素、例えばファシリティなどを場所の表現に使っても良いわけで、表現がごちゃ混ぜにならないよう、上手く使い分ける必要があります。

最もシンプルな使い分けは恐らく、ロケーションはネストではなく、どうしても場所を強調したいものに対して名札のように使う、です。そこに他にも色々あるかも知れないが、これはここにあるよ、と言いたいときに使う訳です。

例えばこんな絵で、グルーピングは「倉庫管理システム (WMS)」、ロケーションAは倉庫の住所、ロケーションBはサーバ室、ロケーションCはハンドスキャナ用Wi-Fiアンテナの倉庫内での位置、といった説明が出来ます。

AWSを使っているのなら、そのリージョンやゾーンの表現にもこのロケーションが使えますが、そういうときも、画面いっぱいに並んだ要素を、いきなり馬鹿でかいロケーションでネストするのではなく、既にサービス単位などのグルーピングが存在しているでしょうから、そのグルーピングに「これはちなみにこのゾーン」という情報を、ロケーション要素を使って付加すれば良いのです。

マジック・コネクタ

Archiの「パレット」上、リレーションの最初、コンポジションの左側にあるのは、そういう種類の線があるのではなく、「マジック・コネクタ」というツールです。要素間にどんな線が引けるか分からないときこれを使えば、どんな線なら引けるのかを教えてくれます。マジック・コネクタを使わず直接リレーションを引くときも、ArchiMateの文法上許可されていなければ線は引かせてもらえません。プログラム書くときの型チェックやサジェスチョンと同じですね。

ツールを使ったArchiMateモデリングの実践は、「線を引こうとする」→「チェックで引けない」→「マジック・コネクタの世話になる」→「なぜそうなのかを調べて理解して覚える」という流れの繰り返しになります。

この「どんな要素間にどんなリレーションの線が引けるか」のルールは、Archiツールの「ヘルプ」メニューにある"ArchiMate Relationships"でみることが出来ます。

ちなみに複数要素をネストするときも、このルールに基づいて「どんなリレーションを持たせたいか」を聞いてきます。リレーションをスキップすることもできますが、その場合はその特定のビューで重なって見えているだけで、ネストしているように見える要素間の関連は、データとしては存在しないことになります。


以上これまで数回に分けてお送りしてきたArchiMateの要素の紹介はこれでひと段落です。次回はまたちょっとテクニカルなお題に触れたいと思います。Archiの最近のアップデートで追加された「ジミな見かけを派手にする」機能です。お楽しみに。


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