はじめに
前回は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を利用してアプリケーションを作成します。