ウェブの原則とアーキテクチャ
開発・運用が多組織に散らばるような分散アプリは。単一プログラミングモデルとか参照透過性とかより、軽量インタフェースとか疎結合性とかの方が重要に違いない。依存性が強いほど、拡張・運用が困難になる。
2010-01-05 20:52:05加えて、重量級プロトコルスタックも向いてないように思える。それらは依存が密になるために。それが問題にならない領域では、多機能・高機能でいいかもしれないけれど。コンシューマサービス向きではなかろう。
2010-01-05 20:55:38@nsiena:同感っ。RT @nsiena: 開発・運用が多組織に散らばるような分散アプリは。単一プログラミングモデルとか参照透過性とかより、軽量インタフェースとか疎結合性とかの方が重要に違いない。依存性が強いほど、拡張・運用が困難になる。
2010-01-05 21:00:21CORBA はモデルとしてはとても好きなのだけど。そういう点で、適用ドメインが限られてしまう。大WS は、ウェブ的でない上、スタックも複雑化して、機能的な点では CORBA の再現をしようとしているようにも見える。
2010-01-05 21:09:29一方で、RESTful WS は、ウェブ的 (REST, ROA) で、軽量インタフェースで、疎結合。だけど、機能的に簡素すぎるのは否めない。不足するところを、個別に対処していたりする。時には人が、時にはフレームワークが。
2010-01-05 21:13:23しかし。開発者を信頼し。開発者に任される点が多いがゆえに。更に、一見簡単に動くものが作れるがゆえに。概念の理解が軽視されやすく。取っ付きやすい個別技術的な実装方法や、時には、期待されないような技術の使い方などに話題になりやすい。
2010-01-05 21:49:00開発者の理解が不十分という場合もあるけれど。アーキテクチャ・標準技術方針が十分でなく、正当な作り方ができない/分かりにくいということも少なからず問題。
2010-01-05 21:49:57結果的に、似非 RWS が氾濫し、複雑なものは奇妙な作りにされてしまったりする。軽量インタフェース・疎結合の側に振りすぎている気がしている。何らかの形で、制約がもう少し強くても良いのかもしれない。
2010-01-05 21:51:04HTML5 で改善されるけれど。本質的改善というよりも、現状に対するパッチ的改善。ウェブアーキテクチャの概念的理解が伴わないと、ウェブ的でない作りを促進しかねない拡張でもある。開発者への依存度が高まる。
2010-01-05 21:53:29ウェブの経験から得た知見: 情報空間が分断されることは大きな損失。URI による指示可能性とインターネットワイドな接続性は重要。統一I/F (とステートレス性) は疎結合性のために重要。
2010-01-05 22:18:51疎結合すぎて問題になるようなアプリでは。これらを若干緩和したような、HTTP とは異なる性質のプロトコル上で実現される余地があってよい。URI での指示可能性はそれを許容している。なんらかの標準プロトコルが定着すればいい。HTML5 ファミリならば、Web Socket。
2010-01-05 22:19:57しかし、ウェブからエントリポイントへ到達可能であるというだけで。その実行過程で生成される内部状態は隠蔽され、到達後の操作を更に追加しなければ参照できなくなる。ウェブのリソースとしては参照できなくないのは、前述の通り損失。
2010-01-05 22:21:30Web Socket などで通信するアプリは、純粋なウェブとは違う世界に存在することを意識して。ウェブとのゲートウェイを用意するのが望ましい。つまるところ、有用な内部状態が HTTP でアクセス可能なリソースとして公開するべきなのだろう。
2010-01-05 22:24:18@kis ラップするのにうまくできなかったり、遠回りするような実現方法になってしまったりしていないですかね。Comet API みたいな使い方とか、Web Socket みたいなのが必要とされ歓迎されていたりする現状を見ると。
2010-01-05 22:31:01@nsiena とりあえずGWTはうまくRPCできてると思います。IDEの助けがないとちょっと手間だけど、Javaを書くならそもそもIDEないと手間だし。
2010-01-05 22:32:47@kis URI で指示可能なリソースが相互接続されたハイパーテキスト空間。という元来のセマンティクスとはずいぶんとずれた作られ方のウェブアプリもしばしば見掛けるのも。プログラミング重視の作られ方とミスマッチが大きいのかな、という気もしてるかしらん。
2010-01-05 22:34:38