Cloud ComputingとCOBOLについて

タイトルを「Cloud ComputingとCOBOLについて」としましたが、本当は「新技術とレガシー資産」が書きたい内容です。メインフレーム、ミニコン、PC、携帯端末、と進化し現在Cloud Computingという形態への移行過程にあるのかもしれません。Cloud Computingの考え方自体はこれまでに幾度も提案されており、今回やっと実現に近づいただけのように思います。例えば随分昔のことですが、電話の交換機をコンピュータ化し分散OSのようなものを動かして、電気のようにコンセントに端末をつなげばどこからでもいろいろなサービスが利用できるようになる(そういうシステムを作ろう)という未来の話を聞かされました。こういった技術進化の話はエンジニアとしては楽しい話題なのですが、忘れるわけに行かないのがレガシーシステムです。

レガシーシステムというのは大昔のシステムではなく、現在稼動中のシステムすべてです。未来のシステムからみると、すべてがレガシーとなるためです。例としてCOBOLのプログラムがあります(アセンブラを例にとるのは止めておきます)。メインフレーム向けに開発された大量のCOBOLプログラムがあり、オープンシステムに移行したものもあるでしょうが、まだそのまま動いているものもあるはずです。Cloud Computingの時代にどうすべきなのでしょう?COBOLプログラムのメンテできる人もその数が減少しているようです。

モデリングという意味ではOMGにMDAを逆にしたADMというグループがあり、レガシー再生の標準化をしています。これはソースコードをインプットにし、分析を行い、UMLモデルを生成する、といった話です。Architecture Driven Modernizationというのがフル名称です。多分COBOLも対象にしていると思いますが、CやJavaも対象だと思います。このソースコードを分析してモデルを抜き出す技術というは、レガシー再生に限らず海外にアウトソーシングした結果の検収時のチェックなどにも使えます。CやJavaというのはそういうケースを想定していたと思います。

それで、もしうまく行ってUMLモデルになったとしたら、それに基づきMDAで最新技術用のコードを生成してCloud上に置くのでしょうか?やはりそんなに簡単な話ではなさそうです。ファイアウォールの内側と外側の境界がベルリンの壁のように打ち砕かれるのは、起きるとしてもかなり先のことでしょう。そうすると経済原理に基づく行動が取られて、コスト的に有利な企業内部Cloudまたは単なるサーバに移されるのでしょう。すると、新技術に基づくComputingと(多少モダンになったとしても)レガシー資産に基づくComputingが共存し続けざるを得ないような気がします。

Cloud ComputingとCOBOLについて

RM-ODPツールについて

RM-ODPは分散処理システムを五つの視点から記述するという枠組みを定めた国際標準です。長年この標準化をやってきたのですが、規定の仕方が概念レベルであり、今流に言うとメタモデル規定であり、具体的な記法や方法論は「いろいろあるだろう」として標準化の対象からはずしていたため、余り世の中に知られていないと思います。知らない方には、エンタプライズアーキテクチャやZachman Frameworkのようなものです、と言ってイメージだけ伝えています。ただ、この国際標準は以前触れたIEEE 1471などの開発につながっています。

そういった状況を受け、UMLを使いRM-ODPモデルを記述できるようにしようというプロジェクトを何年か前にISOで始めました。その仕様(標準)は

  1. Use of UML for ODP system specifications

と言います。やっと国際標準になることが決まりました。ただ、標準仕様が決まっただけでは誰も使ってくれないし、大体その仕様が使えるかどうか検証する必要もあったため、MagicDrawというUMLツールを使い、このツール用のUML Profileを作成し検証しながら進めてきました。現在では、

  1. MagicDraw
  2. PatternWeaver
  3. Enterprise Architect
  4. Rational Software Modeler

といったUMLツール用のUML Profileデータを作成し公開しています。こういった情報(UML Profileデータ他)は次のURLが入り口となっています。

  1. RM-ODP Wiki

このページに行き、左側のメニューのResoucesを選択してもらうと、UML Profileデータがあるページに移動します。ここには、UML Profileで使う各種アイコンのデータも置いてあり、上記以外のUMLツール用にProfileデータを作成する際に役立ちます。このアイコンは国際標準に携わっている他のグループの方に作成して頂いたものです。

今回、MagicDraw用だけですが、スペインの標準化活動参加メンバがPlug-inを作成してくれました。RM-ODP WikiのページのメニューからToolsを選択してみてください(下の方にもう一つのリンクがあります)。これを組み込むと、MagicDrawツールの内側がRM-ODPグラフィカルエディタに変身し、簡単にRM-ODPモデルを記述することが出来ます。同時に、まだ開発途上ですが、作成したモデルの検証や視点モデル間の整合性チェックもしてくれます。時間が取れれば私も他のUMLツール向けに類似機能を作成してみたいと思っています。

こういったツールを使うと、RM-ODPモデルがUMLモデルとして作成できるため、モデルデータ交換やモデルベース開発に利用することが出来ますし、作成者の資産であり再利用のネタでもあるモデルデータをリポジトリなどに格納・活用することが出来るようになります。

RM-ODPでは、エンタプライズ視点モデルが業務要件に近く、情報視点モデルがいわゆる情報モデルであり、コンピュテーショナル視点モデルが(分散していることを無視した)機能オブジェクトモデルに相当します。他にエンジニアリング視点とテクノロジ視点のモデルがありますが、これらはコンピュテーショナル視点モデルの詳細化・具体化だと捉えることができます。モデル駆動という意味では、エンタプライズ視点モデルから始めて、情報視点モデル、コンピュテーショナル視点モデルと展開し、出来上がったコンピュテーショナル視点モデルを入力にすればモデル変換(M2M)とテキスト変換(M2T)からコード生成に結びつけることが出来るはずです(少なくとも理屈の上では)。しかし、このあたりまだツールとして実現できていませんので、これからの課題です。

RM-ODPツールについて