プラットフォームの定義
- mao_instantlife
- 3336
- 0
- 4
- 0
私的ですがプラットフォームの定義は、1.ドメイン(ビジネス機能)にフォーカスして、2.プラガブルに本体の機能拡張が可能であり、3.その上でスクリプトや設定によって機能拡張ができること。
2012-08-22 21:22:49これまでソフトウェア開発の生産向上は「コンポーネントの再利用」と言われていました。結果、コンテキストフリーなものだけ(例:法制度、クレジットオーソリ)しか、うまくいかなかった。
2012-08-22 21:27:27コンポーネントの再利用って確かに限られた領域しか無理だよなあ、とは感じてたけど、自分の語彙が足りなくてさくっと表現できなかったところが一言でww
「コンテキストフリー」覚えましたし
あとはBPMのような処理を分割し、プロセス制御を分離して処理をさせる方法。これは1つのデータに対して処理が多様な機能には向いています(料金計算、売上処理、請求処理など)。ルールが明確であれば複雑でもいい。でも、これも所謂ロジックのみというのには向かない。
2012-08-22 21:31:03BPMは処理方式の汎用化として優れてます。基本的な用語(プロセス、アクティビティ、フローなど)が統一化。そういう分析して効果を発揮する処理には良い。
2012-08-22 21:32:54BPM=Business Process Management
SOAはESBとBPMの組み合わせ。各システムがプロセスチェーンの出入口をサービス化し、データをやり取りします。
2012-08-22 21:34:10SOA=Service Oriented Architecture
Wikipedia
ビジネスプロセスの分析やその結果としてのサービス粒度などが適切でないと使い物にならないというのが実感・・・。
鈴木さんにSOAの組み合わせパターンについて具体的に捕捉していただいた。
@mao_instantlife あざーっす。「プロセス管理で処理をロジックを記述して、その出入り口をサービスとして公開し、サービス同士はサービスバスで結合する」という全体がSOAでの良くあるパターンだと思います。
2012-08-24 12:34:20ESB=Enterprise Service Bus
Wikipedia
対応する領域について捕捉する図を描こうかと思ったけど、wikipediaにまんま載ってた・・・。と思ったら鈴木さんが図を描いてくれた。
サービスを要求する側はESBに投げると後はルーティングしたりプロトコルの処理を吸収してくれたりよきに計らってくれるイメージ。
呼び出されるサービスと転送媒体の結合度を弱めるのは、SOA の特徴ではなく、ESB の特徴である。
とあるけど、ここはまさに勘違いしてたところ。捕捉入れるために読んでみて良かった。
プロセス管理は構造化されているので単純な処理しかできません。なので、もっと複雑なことで生産性を上げるにはスクリプト的なアプローチが重要ってことで注目されたのがDSL(ドメイン特化言語)。
2012-08-22 21:38:56この「プロセス管理」という言葉の汎用性が高すぎて、意味がいまいち絞り込めなかったので質問してみた。
以下回答
@yusuke_arclamp 昨日、一連のツイートをまとめたものです。「プロセス管理」という言葉の汎用性が高すぎて、意味がぼんやりとしかつかめませんでした。この文脈では何のプロセスを対象にどういう管理をすることを指していますか?
2012-08-23 09:29:31@mao_instantlife 実装すべきロジックは何でも良いですが、ロジック全体を「個別処理をフローで連結する」ことで実現する方式を「プロセス管理」と呼んでいます。この場合、フロー制御パターンに制約があるため複雑な処理には不向き。例えばロールバックとか。
2012-08-23 13:57:33プロセス管理についてのイメージを図にしてみたら、鈴木さんからもっと詳細な図で突っ込みをいただくことができた。
回答終わり、続き
パブリッククラウドのプラットフォームを見ると、これらのコンポーネント、BPM、SOA、DSL、あとプラグイン構造みたいなものをキレイに組み合わせています。
2012-08-22 21:41:21そのプラットフォーム本体に機能を足すのはプラグイン構造で実装し、プラットフォーム上での開発はスクリプトや設定になります。3階層ぐらいにエンジニアが分かれる。
2012-08-22 21:48:42具体的に3層っていうのは、どういう層なのだろう?説明の中で明確に分けられたのは2層だった。
言葉だけだとイメージしづらかったので、自分の理解で図を書いてみた。