- TuvianNavy
- 649
- 2
- 0
- 0
ワークフロー言語、いろいろあるけどよくわからない。登場人物であるOMG(ってUMLの本家だよな)とOASISのキャラが自分の中で確立してない で、これらは全部HoareとMilnerのプロセス代数をフローチャートで描く方法、またはその関連の規定だよな
2020-05-24 13:56:32えー、まあ世の中のどこかには実行可能フローチャートを描いてそれを実行エンジンに食わせるとビジネスの最上位レイヤの状態遷移の実装をしてくれる、という世界があるわけですが
2020-05-24 13:57:39まあ大体画餅。具体的な実装としてはフローチャートの各ステップに対応したJavaとかのクラスを書いてビルドして紐づけてやる的な作業が必要
2020-05-24 13:59:23オーケストレーション技術の中でも一番壮大なやつだと思うけど、実態として大量のグローバル定数が必要になる
2020-05-24 14:00:48具体的なビヘイビアは普通にその各段階がJavaのクラスになるわけだし、これはビジュアルプログラミングというわけではない。。わけでもなくて、ウィンドウプログラミングにおけるウィジェットとその挙動の関係とビジネスプロセスのフローチャートとその挙動の関係は同じ
2020-05-24 14:05:17で、ビジネスプロセスのフローチャート(中身はJavaのクラス名が大量に書かれたXML)は、ありがたいことにモデリングツールからそのままPNGとかにエクスポートして明日の会議のpptxに貼り付けることができる
2020-05-24 14:06:51フローチャートのどこらへんがπ計算なのか、というと、通信を表す破線と、並列実行用の判断ポイント、イベント待ち用の判断ポイントの記号が定義されてる つまり複数のフローチャートを描いて通信させることが少なくともできる
2020-05-24 14:11:28さて実際に開発しだすと、Javaのビヘイビアはshell scriptを呼び出すだけのwrapperになる。これはもう避けられない 別に大量に必要になるグローバル定数を実装するためにシングルトンオブジェクトを書いて大量のプロパティを書いて、って作業を最初にやっておけばJavaでもそんなに困らないが、問題は
2020-05-24 14:15:28やりたいことがS3から何かを取り出したり、インハウスのVMWareをいじったり、どっかのDockerコンテナを上げ下げしたりすることだとして、これはいかにもJavaが不得意とする世界。。
2020-05-24 14:16:57そういう意味では実装レイヤとしてAnsibleが使えるとだいぶ楽にはなりそう。そこはエンジンの実装に期待したいし、そのうちAnsible Towerでも同じことができるようになるのかもしれない
2020-05-24 14:19:15BPMNをパーズして、直接AnsibleなりCurlなりを呼ぶようなものを書ければ、まさにワークフローエンジンとして最低限のものを作ったことにはなるし、おそらくどんな商用プロダクトより使い物になると思う
2020-05-24 14:24:32Playbookをいい感じに可視化するソリューション、普通にD3とかgraphvizとかで作ってる人たちは居るのだろうが、BPMNと違っていまいちプロセス代数の基礎とか標準的な描画イメージとかが無いのは、自分的にはちょっと困る
2020-05-24 14:41:54実は自分は全くCI/CDに詳しくないので、ギーク目線だとどういう実現が有望なのかは判っていない。まあ今の技術だったらXMLは採用しないよな常識的に
2020-05-24 14:26:29しかし日本の誇るJP1とか、コロナで商売苦しそうなAirBnBのAirFlowとか、ああいうものを使ったほうが結局楽でねえのというのもちょっと思うのだった
2020-05-24 14:45:07なにしろ今のJP1はこれができる itdoc.hitachi.co.jp/manuals/3021/3… つまりできないことは何もない。。
2020-05-24 15:27:30音楽制作に使うDAWでCurlを呼び出すVSTプラグインがあったら音楽制作のノリで文字通り「クラウドオーケストレーション」できるな、どうでもいいけど
2020-05-24 14:49:22