Mobile:NEWS 2002年9月6日 00:31 AM 更新

ビジネスiアプリ入門(4)
待ち受けビジネスIMのバックエンド設計

ビジネスiアプリの開発に必要になるサーバ側の環境を、Servletエンジン「Tomcat」とデータベース「MySQL」を用いて構築する

 今回は、待ち受けビジネスIMのシステム構成を決定し、その環境を作ります。まずクライアント端末として504iが必要ですが、そのほかにサーバが必要となります。サーバは、メッセージの受け渡しと、各ユーザーの状態の管理の役割を果たします。

 サーバには、クライアントからのリクエストに答えるほかに、メッセージや状態を保存するという役割があります。一般に不特定多数のクライアントのデータを管理する際には、データベースソフトを用います。

動作環境を決定する

 続いて実際に用いる環境を決定します。今回のビジネスIM作成には次のような環境を使用します。

サーバ側ソフト環境  Tomcat 4.04 データベース  MySQL 3.23 OS  Windows 2000 Professional

 Tomcat 4.04は、フリーで使用できるサーバ側の実行環境です。J2EEにAPIに含まれる(http://java.sun.com/j2ee/sdk_1.3/techdocs/api/)、“Javaをサーバ側で動かす仕組み”であるServletを動かすエンジンの1つです。Tomcatのほかにも、WebSphere、WebLogic、Resinなどがあります。

 iアプリとサーバ側の接続は、HTTPプロトコルを使用するため、Servletに限らず、PHP, Perl, ASPなどを使っても構いません。ただServletを使うと仕様言語をJavaで統一できる点が大きなメリットとなります。

Tomcatのインストールとテスト

 ではTomcatをインストールします。まず、Tomcat4.0.4をダウンロードします。Tomcatのダウンロードページ(http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.4/bin/)から、jakarta-tomcat-4.0.4.tar.gz をダウンロードしてください。ダウンロードしたファイルは使いやすい場所に展開します。下記に説明するパスはインストールしたフォルダを基準にしていると思ってください。

 bin\startup.bat を起動して、ブラウザで http://localhost:8080/ を開いて、次のような画面が表示されれば、基本的なインストールは終了です。


Tomcat起動画面

 次に、簡単なサンプルを作成し実行してみます。webapps\ROOT\WEB-INF フォルダに classes というフォルダを作成し、次のような内容の HelloWorld.java というファイルを作成します。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {   public void doGet(     HttpServletRequest req, HttpServletResponse res   ) throws IOException, ServletException {     res.setContentType("text/html");     PrintWriter out = res.getWriter();     out.println("<html><body>HelloWorld</body></html>");   } }

 これをコンパイルするには、common\lib\servlet.jar をクラスパスに含める必要があります。例えば次のようなコマンドでコンパイルします。

javac -classpath ../../../../common/lib/servlet.jar HelloWorld.java

 Tomcatを一度シャットダウンし、再起動後、ブラウザで http://localhost:8080/servlet/HelloWorld を閲覧すると、"HelloWorld" と表示されます。


Tomcat サンプル実行画面

 毎回再起動するのは手間なので、conf\server.xml の207行目にあるコメント化されている行を有効にし、以下のように設定するとコンパイル後一定時間後に反映されるようになります。

<Context path="" docBase="ROOT" debug="1" reloadable="true"/>

MySQLのインストールとテスト

 次に、データベースソフトとして、高速な動作で有名なMySQLをインストールします。MySQLのダウンロードのページ(http://www.mysql.com/downloads/mysql-3.23.html)の「Windows downloads」より、「mysql-3.23.52-win.zip」をダウンロードしてください。

 ダウンロードしたファイルを展開し、setup.exe を実行します。インストール後、bin\winmysqladmin.exe を起動し、MySQLの管理用のユーザー名とパスワードを設定します。その後タスクトレイにある信号のマーク(下図参照)を右クリックし、「Win NT」-「Start the Server Standalone」を選択すると、データベースサーバが起動します。


MySQL 起動メニュー

 簡単にデータベースを使ってみます。コマンドプロンプトを開き、MySQLをインストールしたフォルダの bin\mysql を実行します。続いて以下のように入力することで、データベースとして機能していることを確かめることができます。

\u testデータベースtestを使用する
create table test (id int, name varchar(16));idとnameを持つtestというテーブルを作成する
insert test (id, name) values (0, 'uni');idが0,nameが'uni'というレコードをtestテーブルに追加する
select * from test;testテーブルのすべてを取得する


MySQL サンプル

Servletからデータベースを使う

 Tomcat上で動作するServletが動作することと、MySQLがデータベースとして動作することを確認できました。続いてこれらを組み合わせて、Servletからデータベースを使う方法を解説します。

 Javaからデータベースを使うには、データベースに合わせたJDBCドライバを組み込み、java.sqlパッケージを使用します。MySQLの場合は、Connector/JというJDBCドライバが提供されているのでこれをダウンロードします(http://www.mysql.com/downloads/api-jdbc-stable.html)。

 展開すると(うまく展開できない場合は、jar xf mysql-connector-java-2.0.14.zip とする)、中に mysql-connector-java-2.0.14-bin.jar というものが入っているので、Tomcatのlibの中にコピーします。先ほどの HelloWorld.java をデータベースにアクセスできるよう、書き換えます。

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*;

public class HelloWorld extends HttpServlet {   public void doGet(     HttpServletRequest req, HttpServletResponse res   ) throws IOException, ServletException {     res.setContentType("text/html");     PrintWriter out = res.getWriter();     out.println("<html><body>MySQL connect check<br>");

    try {       Class.forName("com.mysql.jdbc.Driver").newInstance();       Connection con = DriverManager.getConnection(                 "jdbc:mysql://localhost/test");              Statement state = con.createStatement();       ResultSet result = state.executeQuery("select id, name from test");              while (result.next()) {         int id = result.getInt(1);         String name = new String(result.getBytes(2));         out.println("id:" + id + " name:" + name + "<br>");       }            } catch (Exception e) {       e.printStackTrace(out);     }

    out.println("</body></html>");   } }

 コンパイルしTomcatに反映させた後、先ほどと同じURL http://localhost:8080/servlet/HelloWorld を表示すると、下のような表示が出ます。


Servletからデータベース接続実行画面

 以上で、Servletを使ってデータベースへ接続することが確認でき、ビジネスIMのサーバ側の環境が整いました。

 ビジネスiアプリの実装に当たっては、iアプリ以外のシステムも必然的に使用することになります。サーバ処理とデータベースを使用することで、iアプリを使ってできることが飛躍的に広がりますので、ぜひこの機会にお試しください。

著者紹介
福野泰介:UNI-LABO社長。イントラネットと携帯電話を、プロキシ認証と圧縮通信によって強固なセキュリティと通信費の削減効果を提供する「パケットセイバー」を開発。「半パケ」という名称でISP向けにも技術を提供、ニフティにも採用されている。



関連記事
▼ ビジネスiアプリ開発講座第1回
モバイルアプリケーションの新天地を切り開くiアプリ。本連載では、504iシリーズからの新仕様「待ち受けiアプリ」に触れながら、その実力を探り、ビジネスiアプリとしての有用性を検証する

▼ 第2回 待ち受けiアプリの実装テスト
ビジネスシーンで携帯アプリを利用するメリットは、手軽かつ高速に情報にアクセスできることだ。この特徴を最大限に生かせるのが、504iシリーズの新機能、待ち受けiアプリである

▼ 第3回 待ち受けビジネスIMを作る
常駐アプリケーションの例として、ビジネスIM(インスタントメッセンジャー)を待ち受けiアプリとして作成することを前提に仕様決定を行う

▼ ドコモ四国、iアプリコンテストを開催
ドコモ四国が504i向けiアプリのコンテストを開催する。全国からビジネスアプリやエンターテインメントアプリを募集し、iアプリの普及を目指す


関連リンク
▼ NTTドコモ四国
▼ アプリ★ゲット
▼ NTTドコモ四国 ニュースリリース

[福野泰介, ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.



モバイルショップ

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!