UML Profile for NIEMについて

OMGで標準化が進められている活動の紹介です。 NIEMというのは米国の National Information Exchange Model で、政府や州や民間の間で情報交換を行う際の語彙の標準化だそうです。 そのベータ版#1がレビューのために公開されたということなので、ちょっと眺めてみました。

  1. UML Profile for NIEM beta 1

かなり複雑な仕様です。 内容の詳細はさておき、OMGの政府向けの仕様ということで、これがいったいどんな構成になっているかをみてみます。するとMDA的な整理になっており、PIM/PSM/Platformの各仕様が並んでおり「これらの間の対応付けをQVToで書いた変換ルール」として提供しています。 OMGでもこういった形式の仕様は初めて見るように思います。 個人的な印象ですが、対象範囲が広く政府のプロジェクトとも多分関連すると思われるため、上から下に向けての変換を厳密にするための工夫ではないかと思いました。 国によって事情が違うと思いますが、こういう仕様を公開すれば情報交換の質はきっと上がると思います。 この構成についての考え方だけでも参考になるのではないでしょうか。

UML Profile for NIEMについて

久しぶりのGMFについて

気まぐれなのですが、久しぶりにGMFに触れてみました。EMF+GEFを直接使うよりよほど良いのですが、それでも面倒なことが多いため、結構長い間Xtextで遊んでいました。そういえばどちらもDSL開発環境で、グラフィカルDSLとテキスト型DSLといった違いしかありません。

プロジェクトの作成はGraphical editor projectを選択するようになっていました。何をするかですが、NodeとLinkからなるNetworkです。

Ecoreファイルの作成は昔と同じようにEcore ToolsでUMLのクラス図を書くようにできます。

genmodel, gmfgraph, gmftool も昔通り。快調です。gmfmapを作り、gmfgenを生成しダイアグラムのコードを生成。そしてRunしたところ問題に遭遇しました。Nodeは大丈夫なのですが、Linkのラベル表示が出来ませんでした。昔と同じようにしたのですが、何が違うのでしょう。

ということで、理由が分かるまでこのまま寝かせておくことにします。もし何かご存知の方がおられたらヒントでもお願いします。全般的には昔より楽になっている印象です。

補足)その後、次の図まで進みました。やはりグラフィカル要素の扱いは易しくないですね。

久しぶりのGMFについて

OMG Members Initiate New Specifications for UML Profile for Clinical Models; and RPC Over DDSについて

最近まったく OMG 活動ができていないのですが、先日あった TC 会議についてのリリースが出ていましたのでご紹介します。

  1. OMG Members Initiate New Specifications for UML Profile for Clinical Models; and RPC Over DDS.

あちこちの分野で活発な活動があります。 ドメイン側では最近特に政府系と医療系の活動が目立っています。 多分米国政府の予算がついた活動がこれらを引っ張っているのだろうとは思いますが、どちらも我が国でも重要な課題を取り扱っていますので、単なる標準化とか所詮よその国のこと、などと捉えるのは違うと思っています。 対応する国内の活動主体がどうもはっきりしませんが、意識をお持ちの方は最低でもフォローはしておく必要があると考えます。

他では、産総研の方々が頑張っておられるロボット分野の活動、日本の自動車メーカさんが進めているシステムアシュアランス、そしてUML単純化や拡張が目につきます。 一昔前のようなミドルウェアプラットフォームの標準化の場ではなくなっています(部分的に残っています)が、Soley会長が常に新たな分野を呼び込まれているため、まだまだ活動は続いて輸行くものと感じています。

OMG Members Initiate New Specifications for UML Profile for Clinical Models; and RPC Over DDSについて

BPMツールについて

だいぶ昔のことになりますが、オープンソース系のBPMツールに関するポストを書いたことがあります。先日改めて調べてみました。UMLでもそうでしたが、お絵描き系のツールとモデリングツールに分かれ、またシミュレーションなどの実行系機能の有無というポイントもあります。

全部使ったことがある訳ではありませんが:

  1. Bonitasoft
  2. jBPM
  3. Activiti

あたりが実際に使えそうなものかと思います。単なるお絵描きだと Dia などいろいろあり、Visio のBPMN 2.0用ステンシルを使われる方も多いようです。

という本(翻訳はされていないと思います)では、説明のために BPMN ダイアグラムの一部を示すことが多いためだと思いますが本文は Visio 系を使い、Executable BPMN という章では Bonita Open Solution を取り上げています。ただ、JBoss のものは他にも組み合わせることのできるコンポーネントが多数あるため、実行系を重視するとこちらも良い選択肢かと思います。

もちろん完成度が高く多分サポートもしっかりしているだろうコマーシャル製品も多くあります。OMG の BPMN Information Home というページで Implementers というタブをみると50件程度は出てきます。

BPMツールについて

RAD的アプローチについて

RAD = Rapid Application Development のことですが、最近あまり聞かない言葉のような気がします。モデル駆動もその一種かと思いますが、各種 Framework を利用して迅速に開発を行うことが今日的な RAD のような気もします。

ツールベンダが提供しているRADツールは高額なものが多く、普通は気楽に試すことが出来ません。そこで、エンタプライズシステム用に使えそうなオープンソース製品をいくつか眺めてみます(Mavenを利用しているものが結構あります)。

WaveMaker:元々は有償製品だったのですが現在はオープンソースとなっています。データモデルを作成すると簡単にそしてコードを書くことなく GUI を作成することが出来ます。変数の使い方など慣れが必要ですが、全部手作業でコードを書くよりかなり早く作業を進めることが出来ます。日本語ドキュメントもあり、元々販売を担当されていた日本の会社が有償サポートをされているようですので、初期はお願いするようなことをすれば使えると思います。

Naked Objects:これも元々は有償だったと思うのですが、現在はオープンソースとなっています。DDDベースのものですが、Java用と.NET用の二つのものがあります。Java用は現在Apache Isisという名前です。結構コードを書くことになると思いますので、RADといっても?かもしれません。ただ、GUIについて好みが分かれるところで、ちょっと使いにくいかもしれません。

RoR & Grails:Rails系のものはコード中心の作業になりますが、実はモデルをコードで表現しscaffold機能によりホスト言語(RubyやGroovy)のコードを生成します。従って途中からはホスト言語だけでの作業になりますが、早くプロトタイプを見せることが出来るためRAD的なものに分類出来ると思います。どちらも国内で専門的に対応する会社がありますので(RoRの方が多いでしょうが)、過去の資産との連続性などを勘案して検討出来ると思います。

商用製品やよりニッチ度の高いものなど他にも多くあると思いますが、最近の流行は出来上がったアプリケーションをクラウドにdeployできるようにすることやモバイル用GUIサポートのようです。モバイル用JavaScriptの世界は動きが早く、jQuery (Mobile)が強いように思えますが、例えばWaveMakerは(開発時期の関係か)Dojoをつかっています。そのまま使うのでなく、手を入れて使うつもりならこのあたりも評価のポイントかもしれません。

以上眺めてみると、モデリングからスタートするようなRADはプログラミングの世界とのギャップを埋める部分が面倒に見えるためか試す方も少ないようです。プログラミングからスタートし、DSLやある種のパターン的なものを導入し「簡単にコードが書けます」という言い方の方がプログラマには分かり易く、効果も見えやすいのかと思います。個人的にはモデリングからのアプローチが好みですが、すぐ効果の現れる後者のアプローチが受けているようです。これからもこういったDSLsやFrameworksがどんどん出てくると思いますが、いったんどれかで開発してしまった場合、移行・乗り換えはどうするのでしょう?

最後に、モデリングについては商用UMLツールやeclipse modeling project(に含まれる多くのモデリングプロジェクト)が利用でき、時にはそちら側の進化もチェックされてはどうかと思います。例えばXtendはモデリング側からJavaプログラムへのアプローチとも解釈できます。なお、eclipseにはRADにつながる?scoutのようなApplication Frameworkも隠れていますので見逃さないようにしてください。

RAD的アプローチについて

IT Values Technologies Over Thoughtについて

InfoQの記事の紹介です。

  1. IT Values Technologies Over Thought

少し悲観的な見解かもしれませんが、なんとなくというか、うすうす(そうかなと)感じていたことを書いてくれました。 まあ最終的には結果で判断されるべきだと思います。 コメントも興味深いですね。 果たして翻訳記事になるかどうか興味深いです。

IT Values Technologies Over Thoughtについて

エンタプライズシステム開発について

最近では、エンタプライズシステムといえど、特別な対応が必要な基幹システムを除くと、一般的なWebアプリケーションと構造的に大差ないような気がします。以前OMGの活動などでビジネスモデリングの世界にも顔を出していましたので、ちょっとエンタプライズシステム開発に必要かなという作業をFreeMindを使って書き出してみました。多分沢山抜けがあると思いますが、参考までにということで掲載します。コメントを頂ければ追加・改訂しますので、気楽にお寄せください。なお、具体的なテクノロジの選択・対応付けは次のステップということで含めていませんが、必要なら追加します。

エンタプライズシステム開発
エンタプライズシステム開発について