実行可能フローチャートとCI/CD

4
(change of )*state @TuvianNavy

ワークフロー言語、いろいろあるけどよくわからない。登場人物であるOMG(ってUMLの本家だよな)とOASISのキャラが自分の中で確立してない で、これらは全部HoareとMilnerのプロセス代数をフローチャートで描く方法、またはその関連の規定だよな

2020-05-24 13:56:32
(change of )*state @TuvianNavy

えー、まあ世の中のどこかには実行可能フローチャートを描いてそれを実行エンジンに食わせるとビジネスの最上位レイヤの状態遷移の実装をしてくれる、という世界があるわけですが

2020-05-24 13:57:39
(change of )*state @TuvianNavy

まあ大体画餅。具体的な実装としてはフローチャートの各ステップに対応したJavaとかのクラスを書いてビルドして紐づけてやる的な作業が必要

2020-05-24 13:59:23
(change of )*state @TuvianNavy

オーケストレーション技術の中でも一番壮大なやつだと思うけど、実態として大量のグローバル定数が必要になる

2020-05-24 14:00:48
(change of )*state @TuvianNavy

具体的なビヘイビアは普通にその各段階がJavaのクラスになるわけだし、これはビジュアルプログラミングというわけではない。。わけでもなくて、ウィンドウプログラミングにおけるウィジェットとその挙動の関係とビジネスプロセスのフローチャートとその挙動の関係は同じ

2020-05-24 14:05:17
(change of )*state @TuvianNavy

で、ビジネスプロセスのフローチャート(中身はJavaのクラス名が大量に書かれたXML)は、ありがたいことにモデリングツールからそのままPNGとかにエクスポートして明日の会議のpptxに貼り付けることができる

2020-05-24 14:06:51
(change of )*state @TuvianNavy

フローチャートのどこらへんがπ計算なのか、というと、通信を表す破線と、並列実行用の判断ポイント、イベント待ち用の判断ポイントの記号が定義されてる つまり複数のフローチャートを描いて通信させることが少なくともできる

2020-05-24 14:11:28
(change of )*state @TuvianNavy

さて実際に開発しだすと、Javaのビヘイビアはshell scriptを呼び出すだけのwrapperになる。これはもう避けられない 別に大量に必要になるグローバル定数を実装するためにシングルトンオブジェクトを書いて大量のプロパティを書いて、って作業を最初にやっておけばJavaでもそんなに困らないが、問題は

2020-05-24 14:15:28
(change of )*state @TuvianNavy

やりたいことがS3から何かを取り出したり、インハウスのVMWareをいじったり、どっかのDockerコンテナを上げ下げしたりすることだとして、これはいかにもJavaが不得意とする世界。。

2020-05-24 14:16:57
(change of )*state @TuvianNavy

そういう意味では実装レイヤとしてAnsibleが使えるとだいぶ楽にはなりそう。そこはエンジンの実装に期待したいし、そのうちAnsible Towerでも同じことができるようになるのかもしれない

2020-05-24 14:19:15
(change of )*state @TuvianNavy

BPMNをパーズして、直接AnsibleなりCurlなりを呼ぶようなものを書ければ、まさにワークフローエンジンとして最低限のものを作ったことにはなるし、おそらくどんな商用プロダクトより使い物になると思う

2020-05-24 14:24:32
(change of )*state @TuvianNavy

Playbookをいい感じに可視化するソリューション、普通にD3とかgraphvizとかで作ってる人たちは居るのだろうが、BPMNと違っていまいちプロセス代数の基礎とか標準的な描画イメージとかが無いのは、自分的にはちょっと困る

2020-05-24 14:41:54
(change of )*state @TuvianNavy

技術的には割とどうでもいい部分なんだけども。。

2020-05-24 14:43:10
(change of )*state @TuvianNavy

まあスーツ目線だとCI/CDは大体こんな粒度の話

2020-05-24 14:22:43
(change of )*state @TuvianNavy

実は自分は全くCI/CDに詳しくないので、ギーク目線だとどういう実現が有望なのかは判っていない。まあ今の技術だったらXMLは採用しないよな常識的に

2020-05-24 14:26:29
(change of )*state @TuvianNavy

しかし日本の誇るJP1とか、コロナで商売苦しそうなAirBnBのAirFlowとか、ああいうものを使ったほうが結局楽でねえのというのもちょっと思うのだった

2020-05-24 14:45:07
(change of )*state @TuvianNavy

なにしろ今のJP1はこれができる itdoc.hitachi.co.jp/manuals/3021/3… つまりできないことは何もない。。

2020-05-24 15:27:30
(change of )*state @TuvianNavy

音楽制作に使うDAWでCurlを呼び出すVSTプラグインがあったら音楽制作のノリで文字通り「クラウドオーケストレーション」できるな、どうでもいいけど

2020-05-24 14:49:22