SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事(AD)

「WebSphere Application Server Liberty Core」で新たに正式サポートされたWebSocketを使ってみた

  • X ポスト
  • このエントリーをはてなブックマークに追加

 IBMの「WebSphere Application Server Liberty Core」は、Webアプリケーションの開発や実行に特化して設計された軽量なJavaアプリケーションサーバーである。同社のアプリケーションサーバー「WebSphere Application Server」(以下、WAS)のラインナップの一つとして提供されており、主なターゲットをWebアプリケーションに絞ることで、他のエディションに比べて少ないリソースで高速な動作を実現している点が大きな特徴だ。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 Liberty CoreはWAS v8.5から追加されたLibertyプロファイルをベースとして構成されている。LibertyプロファイルはJava EE 6のWebプロファイルを完全サポートしたアプリケーションランタイムである。Webプロファイルに含まれるAPI群だけでなく、JAX-WSやJAX-RS、JMSといったWebサービスに必要となる各種APIもサポートされており、現在はJava EE 7の一部機能の実装も進められている。

 そのJava EE 7で新たに追加された注目機能の一つに「WebSocket」がある。Java用のWebSocket APIは「Java API for WebSocket」としてJSR 356で標準化されており、Libertyプロファイルでは2014年12月8日にリリースされたV8.5.5.4より正式にJSR 356へのサポートが追加されている。そこで本稿では、この新機能を活用してWebSocketアプリケーションを開発する方法を紹介したい。

1. WebSocketとJava

 まずWebSocketについて簡単におさらいしておこう。WebSocketはWebサーバーとWebブラウザが直接コネクションを張って双方向通信するための技術規格である。HTTPとは異なる独自の軽量プロトコルを利用して通信を行うため、オーバーヘッドが小さく、長時間に渡って通信する場合でもHTTPコネクションを占有することがないというメリットがある。オンラインゲームやオンライントレーディング、チャットやSNSによるコミュニケーションなど、リアルタイム性が求められるサービスやアプリケーションで威力を発揮するものとして期待されている。

 WebSocketのプロトコル仕様は「RFC 6455 - The WebSocket Protocol」として、API仕様は「The WebSocket API」として仕様化が進められている。そして冒頭で触れたように、Javaアプリケーションから利用するためのAPIは「JSR 356: Java API for WeSocket」として標準化されており、Java EE 7を構成するAPIの一つになっている。

 WebSocketを利用したJava Webアプリケーション開発の一般的な流れについては、IBM developerWorksのサイト内で公開されている『Java EE 7 アプリケーション設計ガイド - WebSocket編』による解説が詳しい。WebSocket自体についての詳しい解説やエンタープライズアプリケーションでWebSocketを利用する上でのポイントなどが掲載されているので、本稿と併せて参考にしていただきたい。

2. 最新版Libertyプロファイルの導入

 Liberty Core向けアプリケーションの開発環境を整えるには、Eclipse用プラグイン「WebSphere Application Server Developer Tools(WDT)」を導入するのが一番手軽である。今回は、Eclipse 4.4(Luna) Java EE Developers(Pleiadesで日本語化済み)をベースに、プラグイン「IBM WebSphere Application Server V8.5.5 Liberty Profile Developer Tools for Eclipse Luna V8.5.5.4」を追加して利用した。WebSocketが正式にサポートされているのはこのV8.5.5.4からなので、それ以前のバージョンを導入済みの人も最新版にアップデートしておく必要がある。

 WDTのEclipseへのインストールは、マーケットプレースから行うことができる。[ヘルプ]-[Eclipse マーケットプレース]を選択してマーケットプレースを立ち上げ、「WebSplere Liberty」で検索をかければ図2.1のように対象のプラグインが見つかるはずだ。環境構築の方法についての詳細はこちらの記事を参照していただきたい。

図2.1
図2.1

 プラグインをインストールできたら、Libertyプロファイルのサーバー定義を作成する。サーバー定義の作成手順もV8.5.5.1の場合とほぼ同様だが、今回はWebSocketを使いたいため、プラグインの選択画面から「Java API for WebSocket 1.0」をインストールしておこう。図2.2のように右側の[インストール]ボタンをクリックして[インストール保留中]という表示に変えた上で[次へ]をクリックし、ライセンスに同意すればインストールできる。

図2.2
図2.2

 サーバー定義が作成できたら、続いてWebSocketを使うための設定を追加しておく。サーバーマネージャーにおいて「サーバー構成」をダブルクリックしてservers.xmlを開き、「フィーチャーマネージャー」を表示して、 [追加]ボタンで「websocket-1.0」をフィーチャーに追加すればよい(図2.3)。これで、このサーバー定義でWebSocketが有効になる。

図2.3
図2.3

次のページ
3. サーバー側のエンドポイントの実装

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

杉山 貴章(スギヤマ タカアキ)

有限会社オングスにて、Javaを中心としたソフトウェア開発や、プログラミング関連書籍の執筆、IT系の解説記事やニュース記事の執筆などを手がけている。そのかたわら、専門学校の非常勤講師としてプログラミングやソフトウェア開発の基礎などを教えている。著書に『Javaアルゴリズム+データ構造完全制覇』『Ja...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8418 2015/02/27 19:04

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング