Life is beautiful: Webサービスの概念を必要以上に複雑にしている力の話
「Beginner's Guide: Web サービスの基礎知識」というエントリーがはてぶの人気エントリーに入っていたが、実際のところWSDLだとかUDDIなどのIT業界の重鎮たちによって作られた標準規格が、 HTTP/HTML/RSSが成し遂げたようなレベルの本当の意味での標準になるとは、私にはどうしても思えないのだがどうなんだろう。
中島さんが言う「HTTP/HTML/RSSが成し遂げたようなレベルの本当の意味での標準」というのが何なのかは分からないけど、まず一つの問題は、OASISによるWS-*やSOAP/WSDLのような話と、RESTfulなWebサービスAPIでマッシュアップしてWeb2.0!みたいな話の両方に、「Webサービス」という曖昧な言葉が使われている事だと思います。
「Amazonの書籍検索をするためのWebサービスに、SOAPやWSDLみたいなヘビーなWebサービスの規格が必要か?」と言えば、それはNoでしょう。でも、企業の業務システムを開発するのなら、セキュリティやらトランザクション(単なる「処理」じゃなくてACIDなトランザクションのこと)やらをきちんと考えないといけないわけで、そうなるとそうしたヘビーな規格は絶対に必要です。
アーキテクチャが不必要なまでに複雑化してしまったGUI OSのアーキテクチャに根本的な疑問を持ち始めていた私には、HTTPとHTMLのシンプルさは本当に「目からウロコが落ちる」感動を味合わせてくれた。
年々肥大化するWindowsなんていうのは、(中島さんに限らず)高い理想を持った開発者の人たちにはある意味耐え難いものだろうなというのは、想像に難くありません。Linuxだって設計はお世辞にも洗練されているとは言えないし、Macだって見た目はキレイだけど中はそんなにオシャレじゃないんじゃなかろうか。でも、僕が知る限りではHTTPとHTMLのようなシンプルで力強い技術でGUI OSを作るのは、今のところかなり難しいんじゃないかと思います。そして、そういうOSがないことには、シンプルで力強い(軽量)Webサービスは動きません。
つまるところ、当たり前のことですが技術には適材適所があるわけです。SOAPやWSDLが「本当にそんなの必要なの?」という人は、自分の銀行口座がいつも正しい金額であることに対する意識が(技術者としては)少し足りなすぎるんじゃないかと思います。実際は、(日本の)銀行はSOAPやWSDLの二世代くらい前の技術(COBOLとメインフレームですね)でつくられていて、それら旧技術の持つセキュリティやトランザクションの厳密性をJavaで実現しようとしたのがSOAPやWSDLなわけですが。
重量な世界でも軽量な世界でも成功された中島さんはもちろんそんなことは十分ご承知だとは思うのですが、このエントリーからはそういう点への意識があまり感じられませんでした。当然、昨今の自称ギークによるSI叩きみたいに、企業システム開発やそこに使われるヘビーな技術が「つまらない」「古くさい」という話であれば、またそれは別の話です。
まとめ。
「WSDLだとかUDDIなどのIT業界の重鎮たちによって作られた標準規格が、 HTTP/HTML/RSSが成し遂げたようなレベルの本当の意味での標準になる」か?
一般的なネットユーザーやWebプログラマが頻繁に利用する技術になるかという意味であれば、答えはNoでしょう。でも、企業システムや公共システムを支える技術としては必要なものだし、すでに無くてはならないものです。そして、Webを全く使わない人も世の中にはたくさんいると思いますが、企業のサービスや公共サービスを全く利用しない人はいないと思うし、そういう意味ではRSSなんかよりはSOAP/WSDLのほうがより普及していると言えなくもないと思います…というのは無理があるかな?(^-^;)。(もちろん、すべての企業システムや公共システムでSOAP/WSDLが使われているわけではないし、企業システムや公共システムにおいてもHTTPやHTMLは必須の技術です。)
以上。
技術も技術者も色々ですから、自分が好きじゃなかったり興味がいない技術や業界に対してネガティブなメッセージを発信するよりは、自分が興味を持ったり関わっている技術や業界に対してポジティブなメッセージを発信していった方が、よりみんな幸せになれるんじゃないかと僕は思います。
トラックバックありがとうございます。私は何に関しても自分で「納得」しないと許せないたちなので、情報集めのためにあのエントリーを書きました。あの手の「標準仕様」が雪だるま式に膨らんでしまい不必要に複雑化することは良くあること。はたしてウェブサービスの仕様がそんなオーバーアーキテクチャなのかどうか、そこがぜひとも知りたいと考えています。
中島さん、コメントありがとうございます。
僕はああしたヘビーな仕様の多くは「必要なもの」だと思うのですが、すべての人が「必要だ」と言うものをすべて詰め込んでいくと、結果として総体としてはオーバースペックになるのは、確かに不可避ですね。
複雑化とリセットのサイクルは、今後も繰り返されるのでしょうね。