NetDictionary 「WebService.jp Insider Night」 第2夜(3)
デジタルアドバンテージ |
第一線のソリューション開発者から見たWebサービス
新野【@IT】:Webサービスにはさまざまな用途があると思うのですが、1つは遠隔地にあるプログラム・コードを実行するというRPCだと思います。しかしこうしたRPCの発想自体は決して新しいものではありません。従来のRPCとWebサービスの違いは何なのでしょうか?
萩本【豆蔵】:従来の方法で、インターネットのようなグローバルなネットワークを介してRPCを実行するには、例えばCORBAやRMIでHTTPトンネリングを使うなどの必要がありました。基本的に、Webサービスではこのような面倒がなくなりました。気軽さを重視して設計されたものだと思います。
参加者:以前に雑誌の記事で、Webサービスは「信頼性と性能を犠牲にして、代わりに柔軟性を高めたもの」という説明を読みました。私もこれと同意見です。私はここ2年ほど、Webソリューション開発に携わってきました。開発現場は信頼性と性能を獲得するために血みどろになっているのが実情です。正直なところ、それらを犠牲にして、柔軟性を取ろうという精神状態にはありません。(システム・インテグレータ)
参加者:広く普及したHTTPをベースとして、SOAPを使ってインターネットワイドでオブジェクトを呼び出せるという発想は優れていると思います。またWSDLやUDDIによって、動的かつ柔軟にシステムが組めるというのも分かる。けれど現時点では、それで実際のシステムを構築するということは考えられない。システムにとっては信頼性が極めて重要です。残念ながらそういう目で見ると、あまりメリットが感じられません。(システム・インテグレータ)
最初は小さいところから始めるべき
参加者:BtoBでは可能性があるかもしれませんが、BtoCの分野では現在のWebページでも十分で、わざわざそこにSOAPなどを使う必要はないと思います。(システム・インテグレータ)
萩本【豆蔵】:私は、Webサービスは小さいところから作っていくべきだと思います。例えば、社内の人事部が各種の人事情報を集中的に持っているとします。これを各部門に公開していくとか、あるいは遠隔地にある支店の情報を本社からWebサービスで参照するとか。そういう限定的な用途なら、UDDIは非常にうまく機能するんじゃないかと思います。専用線を引けばいいんじゃないかといえばそれまでですが、チャレンジする価値はあるでしょう。それでうまくいけば、本格的なBtoBへの応用に進めばよいのです。
小川【DA】:萩本さんがおっしゃるようなシステムは、すでにクボタさんが導入を始めています(詳細は別稿「事例研究:株式会社クボタ」参照)。クボタさんは、.NETベースの人事システムを構築し、将来的には本社とグループ企業間で、Webサービスを使って人事情報を交換できるようにするとのことです。最大の理由は、柔軟性の高い人事システムを構築したいということでした。変化の激しい時代にあって、グループ企業や部門の統廃合がかつてないほどにドラスティックに行われるいま、その土台となる人事システムが旧来のような膠着的なものでは到底対応できないということです。これなどはまさに、Webサービスの柔軟性に注目したシステムですね。構想から一歩踏み出して、Webサービスを利用した実際のシステムを実装している人たちがすでにいます。
クライアント環境に依存しないというのは本当か?
参加者:Webサービスの利点として、特定のプラットフォームに依存せずに使えるということが取り上げられています。しかし少なくとも現時点では、まだほとんどのプラットフォームではSOAPはサポートされていません。これらについてはどうするのでしょうか?
渋谷【イースト】:実は、.NETでもなく、Javaでもなく、SOAPツール・キットも使えないレガシーな環境でWebサービス・クライアントを開発したことがあります。どうやったかといえば、SOAPの通信手順をプログラムで直接制御しました。Webサービスといっても、結局はHTTPを使ってXMLデータを交換しているわけですから、データに含まれるタグの中身を自分で読んで、処理してしまえばよいわけです。細かい処理を行うのは面倒ですが、いくつかのメソッドに限定すれば、手作りでも大した手間ではありません。ポータビリティという意味であまりお勧めできる方法ではありませんが、実装さえできればよいというなら、最低限HTTPがやりとりできれば何とかなります。
WebサービスをJavaサーブレット代わりに使う
新野【@IT】:そのほか、Webサービスを応用するアイデアはありませんか?
萩本【豆蔵】:細かい話はともかく、正直なところ個人的には、Javaサーブレットにはちょっと幻滅感があります。非常に使いづらい。Webサービスを応用してこれを置き換えることはできないかと考えています。画面のデータがWebサービスで送られてきて、それをクライアント側で展開するのです。
新野【@IT】:Javaサーブレットの問題点とは何でしょうか?
萩本【豆蔵】:サーブレット自身がHTTPプロトコルをかなり意識しているところです。実際の処理は、単にオブジェクトにメッセージを送れば済むことが多いのですが、HTTPプロトコルに準拠したメソッド名を使う必要があります。Webサービスは、サーブレットのようにHTTPプロトコルに準拠したプログラミング・インタフェースではなく、自然にオブジェクトにメッセージが送れるのです。ただ、Webサービス技術とサーブレット技術の住み分けははっきりしています。前者は分散コンポーネント、後者はWebアプリケーションにおける画面閲覧コンポーネントということです。しかし、今後Webサービスが発展すると、サーブレットと同様の画面閲覧コンポーネントとしてのWebサービスが出てくるかもしれませんね。
データ・リソースだけでなく、プロセッサ・リソースをも協調する
新野【@IT】:これまでの話では、分散したデータを協調させるという部分でWebサービスを使うという発想が多いようです。
萩本【豆蔵】:すでに述べましたが、私は分散オブジェクトという視点でもWebサービスを見ています。この意味では、ベース・プロトコルとしてHTTPを使用可能で、ファイアウォールを超えられるという点に非常な価値を感じます。分散システムがどういう場面で使われるかというと、やはり情報が分散されていて、それらをつなげたいという場面でしょう。データ・リソースがちらばっているときに、Webサービスは有用だと思います。当初はこれが自然な発想でしょう。けれども、モバイル・コンピューティングがさらに発展して、複数のデジタル機器が無線通信でネットワーク化されたときには、データばかりでなく、プロセッサ・リソースを協調させることも可能になると思います。例えば、処理能力の低いデバイスで大量の計算処理が発生したときに、近くにある処理能力の高いコンピュータを使うのです。
既存のWebサーバにWebサービス・インターフェイスを追加する
遠藤【DA】:取りあえず有効なWebサービスの実装方としては、Webアプリケーションとして機能するシステムに対し、その付加価値としてWebサービスのインターフェイスを追加するというものがあるのではないかと考えています。Webアプリケーションの最大のメリットは、クライアント側にはWebブラウザさえあれば利用できることですが、しょせんブラウザはブラウザなので、ユーザー・インターフェイス設計などでどうしても使いづらい部分が残ってしまう。これに対し、従来どおりにブラウザで使うことも可能だが、よりリッチなクライアントを使える余裕がある人は、Webサービス側を呼び出すことで、さらに便利に使えるというアイデアです。
小川【DA】:コンテンツ管理という面でいえば、すでにWebサイトとして大量の情報を公開しているWebサーバに対して、ぜひともWebサービスのインターフェイスを追加していただきたい。大事なのは、コンテンツ作りはあくまで1つだけ行えば、それをWebページとしても公開できるし、Webサービスも提供できるという点です。私自身、そういうシステムが欲しいと思っていますし、将来のコンテンツ・マネジメントは、必然的にそういう方向に進むと思います。
Webサービスの相互運用性は?
新野【@IT】:Webサービスは公開インターフェイスなので、特定のプラットフォームによらず相互運用が可能なはずですが、現実はどうでしょうか?
参加者:分散オブジェクト推進協議会というものがあり、ここで各社のWebサービスの接続性を確認しています。さまざまなサンプルを作ってテストしていますが、これまでのところはほとんど問題なく接続しています。現時点では8社が参加しています。(Webアプリケーション・サーバ・ベンダ)
■
参加していただいた方からも多くの意見をいただき、パネル・ディスカッションは大いに盛り上がったが、残念ながらこのあたりで時間となった。すでに実用段階ともいわれているWebサービスだが、そのメリット、デメリットと、それらが情報システムやITビジネスに与えるインパクトの大きさは、まだまだ測り切れていない部分が大きい。性能云々は抜きにして、とりあえずWebサービスに着手して、いろいろ試してみることが先決だろう。宣伝するわけでもないが、VS .NETを使えば、実際それほどの手間はかからない。Webサービス、そしてそのクライアントのプロトタイピングにはVS .NETは現時点で最強のツールといえる(これもまた、とりあえずは体験してみていただくしかないのだが)。
INDEX | ||
[特集]NetDictionary座談会記事 | ||
「WebService.jp Insider Night」 第2夜(1) | ||
「WebService.jp Insider Night」 第2夜(2) | ||
「WebService.jp Insider Night」 第2夜(3) | ||
更新履歴 | |
|
特集 :NetDictionaryプロジェクト |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|