Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Java開発者のためのCurl入門-クライアントサイドCurlとサーバサイドJavaの通信

第2回

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/10/28 14:00

 前回は、Curlの簡単な説明と、HelloWorldを実行するまでを説明しました。今回は、Javaでサーバーサイドを作成し、クライアントサイドのCurlアプリケーションと通信を行います。

目次

はじめに

 前回はCurlの簡単な説明とHelloWorldを実行するまでを説明しました。今回はJavaでサーバーサイドを作成し、クライアントサイドのCurlアプリケーションと通信を行います。

前回の記事

Curlアプリケーションのアーキテクチャ

クライアントサイドとサーバーサイド

 Curlアプリケーションは、クライアントマシンにインストールされたCurl RTE上で実行されます。

 業務アプリケーションでは、サーバーサイドのデータベースを利用するのが一般的ですが、Curlアプリケーションはデータベースサーバに対して直接アクセスすることはしません。通常、サーバーサイドにもCurl以外の言語でアプリケーションを構築する必要があります。

 Curlアプリケーションからデータベースに対してCRUD操作を行うには、サーバーサイドのアプリケーションを経由します。Curlアプリケーションから必要なパラメータをサーバーサイドのアプリケーションに送信し、サーバーサイドアプリケーションが必要な処理を行い、それに対するレスポンスをCurlアプリケーションに返します。

 JSPを用いたHTMLアプリケーションでは、サーバーサイドから返されるデータはレイアウト情報が含まれており、クライアントのブラウザはそれを表示するだけです。一方、Curlアプリケーションでは、サーバーサイドから返されたデータを元に、クライアントサイドでレイアウトを生成し、画面を表示します。

通信プロトコル

 Curlアプリケーションとサーバとの通信には、次のプロトコルとデータ形式が利用できます。HTTPとXMLを用いたSOAP通信なども可能です。

プロトコル
  • HTTP/HTTPS
  • ソケット通信
データ形式
  • テキスト
  • バイナリ
  • XML
  • JSON
  • CSV
通信例
通信例

アーキテクチャ

 Javaを用いたWebアプリケーションの場合、表示に関するロジックとビジネスロジックは、プレゼンテーション層とそれ以外で分離するのが一般的です。

 一方、Curlアプリケーションの場合は、サーバーサイドはデータを返すのみで複雑なロジックは持たず、クライアントサイド、つまりCurl言語を用いてビジネスロジックを作成するのが一般的です。

 クライアントサイドにロジックを多く持てば、CPUやメモリといったリソースをクライアントサイドに分散できるというメリットがあります。クライアント数が多いようなシステムでは、Curlアプリケーションのようなアーキテクチャのメリットをより多く享受できると考えます。

 また、サーバーサイドでビジネスロジックを作成し、クライアントサイドは表示のみに徹するということも可能です。

JSON

 Curlは、バージョン6.0からJSONをサポートするようになりました。そこで今回は、サーバからデータをJSON形式でレスポンスを返し、クライアントサイドでデータの表示を行うプログラムの説明をします。

JSONとは

 JSON(ジェイソン、JavaScript Object Notation)は軽量なデータ記述言語で、主にAjaxの分野で利用されています。

 JSON形式で記述した例は次のようになり、

{
"name":"Foo",
"price":1980
}

 という文字列は,nameが文字列"Foo",priceが数値1980を持つデータを表します。

JavaのJSONライブラリ

 Javaはライブラリを使用することで、JSON形式のデータを簡単に扱うことができるようになります。JavaオブジェクトとJSONを相互変換するためのライブラリには次のようながあります。

 JSONICにはWebServiceServletというサーブレットが付属しており、別途フレームワークなどを用意しなくてもJSONを利用したWebサービスを実現できます。今回はJSONICを利用してアプリケーションを作成します。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 木村聡(キムラサトシ)

    2000年からJavaによるWeb開発に携わる。Seasarプロジェクトコミッタであり、コミッタとしての経験をもとに現在は仕事としてフレームワークの開発を行っている。 著書に、「Javaフレームワーク開発入門」や「Eclipseで学ぶはじめてのJava」等がある。

バックナンバー

連載:Java開発者のためのCurl入門
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5