11:20:00ツイート印刷コメントを書く業務システムで求められるリアルタイム通知機能をWebSocketで実現するWebブラウザをクライアントとして情報の入出力を行うWebアプリケーションが企業情報システムの主流を占めるようになって久しいが、その基本的な構成要素であるHTML周辺の技術は現在も進化を続けている。7でもこれをサポート。これにより、Webアプリケーション開発の世界に新たな時代が訪れようとしている。東京では、このWebSocketをエンタープライズ・システムの領域でどのように活用できるかについて、実際に業務システムへの適用を進める中で得られた知見を披露するセッションが実施された。ITプロデュース部の黒田雄一氏だ。氏は、業務課題に対するソリューションとしてWebSocketの利用を検討する背景、WebSocketに対する期待と、現在の課題および対応方法について解説を行った。黒田氏が所属するITプロデュース部は、企業システムに有用なさまざまな新技術の検証と評価、そしてグループ企業への導入推進を主な役割としている。その取り組みの中で近ごろ実施したのが、WebSocketの検証と業務システムへの適用である。セッションの冒頭、黒田氏はWebブラウザ/サーバ間でリアルタイム通信を実現するためのプロトコルであるWebSocketの概要を説明した。"ステートフル"なプロトコルである。HTTP通信がWebブラウザからサーバへの一方向通信であるのに対し、WebSocketでは双方向通信が行えるのも大きなポイントだ。これにより、サーバからWebブラウザへのプッシュ配信が可能となり、サーバ負荷およびネットワークの帯域幅を節約できる点が大きな利点となる。このWebSocketの特性を生かした適用領域として、一般には株価などの時価の配信やモバイル端末への配信サービスなどがアイデアとして挙げられるが、現在、適用を検討しているのはそうした領域ではないと黒田氏は語る。「新規サービスなどのユーザー規模が大きくない領域では、従来の技術を使う場合と比べてどう良いのかを明確に示しにくい。したがって、むしろ対象ユーザー規模が大きく、従来の技術ではROI(投資対効果)を出すのが困難な領域に適用できないか考えた」(黒田氏)三菱UFJインフォメーションテクノロジーでは、このWebSocketの特性を生かし、現在使用している事務アプリケーションへの適用を想定し研究開発を行っている。システムのWebアプリケーション化によりサービス・レベルが低下していた領域、具体的には事務拠点と事務センター間における「リアルタイム通知機能」を再度強化できないか検討している。1990年代から2000年代前半までのクライアント/サーバ・システムの時代には、クライアント機能はクライアントOS上で動作するクライアント・アプリケーションとして実装されるのが普通であった。その後に訪れたWebアプリケーションの隆盛により、クライアント機能はWebブラウザ上に表示されるコンテンツとして提供されるスタイルが一般化する。Xコンポーネントなどのプラグインの力を借り、"標準外"として対応する必要があった。した機能の1つがリアルタイムの通知機能である。業務アプリケーションに求められるものの1つであり、クライアント/サーバ時代には実現できていた同機能は、Webアプリケーション時代にはWebブラウザの標準機能では対応が難しく、結果として積み残されていた課題の1つだったのである。現在では、HTML5の関連技術として標準化が進められてきたWebSocketを実装するWebブラウザも増えてきている。そこで黒田氏らは、この技術を利用した通知機能を改めてWebアプリケーションに実装するという取り組みを行ったわけだ。業務システムにWebSocketを適用する際の3つの検討ポイント黒田氏は、この取り組みの中で見えてきた、業務システムにWebSocketを適用する際のポイントおよび検討事項として、次の3点を挙げる。(1)WebSocketに未対応のWebブラウザがまだ存在する(2)ステートレスを基本とするWebシステムのアーキテクチャと相性が悪い(3)プロトコル仕様が特殊なため、負荷分散処理の構築に注意が必要となる(1)WebSocket未対応ブラウザへの対応1点目の「Webブラウザ側のWebSocket対応」について、黒田氏はPCとスマートフォン向けに提供されている各WebブラウザのWebSocket対応状況をまとめた表を示した。Explorer(IE)はバージョン10以降だが、業務で使われるIEはバージョン9以下であるケースがまだ多い。今回はWebSocket接続を実現するFlashコンポーネントを使うことでこの問題に対応している。「WebSocket未対応ブラウザについては当面Flashを使い、クライアント環境がバージョンアップされてWebSocket対応となった際には、Flashを取り除くかたちでスムーズな移行が行えるようになる」(黒田氏)(2)ステートレスなWebアーキテクチャとWebSocketの共存2つ目の検討事項の本質は、システム上で異なるアーキテクチャの共存をどのように行うかという課題だ。前述したように、HTTPによる通信を前提としたWebアプリケーションはステートレスが基本であり、一方でWebSocketを採用したシステムはステートフルが前提となる。このことにより、負荷分散やサーバのリソース管理などの点で、考え方や手法に違いが生じる。この課題については、WebSocket接続を行う通知機能に特化した汎用基盤を、従来のWebアプリケーション基盤と分けて独立させることで対応した。これにより、既存のWebアプリケーションを大きく改変せずにWebSocketを活用できたという。(3)負荷分散処理への対応3つ目の検討事項は、WebSocketプロトコル独自の仕様に対応した負荷分散の仕組みが必要になる点だ。ステートフル通信であるWebSocket通信は、ステートレス通信であるHTTP通信とは根本的に異なるため、それに対応した負荷分散製品が必要となる。今回は例として、オープンソースの「HAProxy」、「nginx」、およびF5ネットワークスが提供する商用製品「BIG-IP」が紹介された。BIG-IPについては、オープンソース製品と比べてコストが高くなるものの、開発/提供元によるサポートが受けられ、さらに負荷分散機構として高速かつ高機能だというメリットがあること、三菱UFJインフォメーションテクノロジーでも利用実績があることが説明された。黒田氏は、「オープンソースと商用製品のどちらを使うかは、案件ごとに要件や規模に応じて選択するとよい」とアドバイスする。最後に黒田氏は、「今回の取り組みを通じて、Webアプリケーション化に伴って切り捨てられてしまったリアルタイム通知機能の実現におけるWebSocketの有効性について検討を進めており、日本オラクルと共同で製品検証を行っている。今回説明した内容はこうした検討の中で得られた知見であり、今後WebSocketに取り組む方にとって参考になればと思う」と語って説明を締めくくった。ServerにおけるWebSocket対応状況を紹介した。Serverでは、間もなくリリース予定のバージョン12.1.2より、WebSocketへの対応が実現する。Replay)などが提供される予定だ。Serviceを用いることで、エンド・ツー・エンドのプッシュ配信が可能になる。これにより、アプリケーション・サーバに加えてデータベースの負荷軽減も期待できるだろう。WebSocket対応に加えて、こうした付加価値機能の提供にも引き続き注力していきたい」(新井氏)黒田氏も触れたように、日本オラクルでは、今回の講演テーマであるWebSocketに関して三菱UFJインフォメーションテクノロジーと共同で検証を行っている。従来の方法によるものと比べて、サーバの負荷やネットワーク・トラフィックの低減で実際に効果が見られるようだ。この検証結果については、いずれ一般に公開したいとのことである。Serverを利用した新しい取り組み、ビジネス展開、業務改革などイノベーティブな取り組みにチャレンジしてほしい。した取り組みを、ぜひ日本オラクルにバックアップさせていただきたい」と呼びかけて講演を締めくくった。お試しいただけるトライアル・サービスをご提供しております。permission.×このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。