Javaアプリ事始め 第4回:
通信しよう

J-フォンのパケット通信対応51シリーズでは,さらに草の根の開発者でもJavaアプリの作成・公開が可能になっている。今回は,自由度の高い「通信」について扱う。(毎週金曜日更新)

【国内記事】 2002年3月29日更新

Javaアプリの通信とは?

 Javaアプリは外部のサーバとのネットワーク接続に対応しています。ネットワーク接続して通信を駆使することによって,スタンドアローンのJavaアプリではできなかったタイプのアプリを作ることができます。

 通信プロトコルはWebサーバでおなじみのHTTP(Hypertext Transfer Protocol)と,SSLに対応したHTTPSです。Webサーバが相手であれば簡単に通信できます。

 しかもiアプリとは異なり,Javaアプリをダウンロードしたサーバ以外との通信も可能です。通信データは基本的にJavaアプリから要求するか,Javaアプリから発信します。サーバから勝手にデータを送られたり,データを要求されたりといったことはできません(PUSH型の通信は不可)。

 JavaアプリのHTTPには,GETとPOSTの2種類のデータのやり取りの方法があります。どちらで実装しても,データ量が極端に違わない限りは同じことができます。通信スピードは,データのダウンロード時(下り)最大28.8Kbps,データのアップロード時(上り)最大9.6Kbpsです。一度に通信可能なデータサイズは12Kバイト以内と制限されています。

通信に向いたアプリのデザイン

 通信することによって,外部から情報を取得したり内部の情報を発信したりすることができます。考えられるデザインとしては,以下のようなものがあります。
サーバから意味のあるデータを受信してJavaアプリで利用
ニュース,株価表示など
Javaアプリから意味のあるデータを送信してサーバで利用
スケジュール管理など
送受信両方を利用
通信対戦ゲーム,メッセンジャーなど

 通信は便利なのですが,通信しすぎるJavaアプリはユーザーの料金負担が大きいので注意が必要です。J-フォンの場合,1パケット(128バイト)あたり0.3円かかるので,通信をすればするほど料金がかかることになります。

 データはあまり大きすぎず,頻度もあまり多くないことが好ましいです。また携帯電話は常に通信できる状態ではないことも考慮にいれて,通信できない場合の動作も検討すべきです。

通信アプリの制限

 通信対応のJavaアプリを公開するには現時点ではいくつかの制限があります。コンテンツアグリゲータの1つ「アプリ★ゲット」の場合,通信対応Javaアプリを公開するにはオフィシャル作者登録をする必要があります。オフィシャル作者登録には若干の事務手続料が発生します。

 また通信対応Javaアプリでは同時に組み合わせて使用してはいけない機能がいくつかあります。通信で外部に情報が漏れるのを防ぐための制限です。それらの機能の例としては以下のものがあります。

  • 端末内の音声着信履歴情報にアクセスする機能
  • 端末内のメール着信履歴情報にアクセスする機能
  • 端末内の位置情報にアクセスする機能

 これらの方針は,コンテンツアグリゲータごとに異なる可能性がありますので,実際に公開する際には再度確認してください。

 いくつか制限あるにせよ,通信ができると,明らかにいままでのスタンドアローン型のJavaアプリではできなかったことができるので,いいアイディアがひらめいたら積極的に使ってみましょう。

通信サンプル

 Javaアプリの通信は,基本的にはMIDPで実装されている通信の仕組みそのままです。Javaアプリ独自のものはほとんどありません。

 今回紹介するJavaアプリはこちらです。jadファイルなどをダウンロードしてください(ZIP圧縮されています)。

 この例は,あるサーバからテキストファイルを取得してその中身を表示するものです。実行結果は以下のようになります。


 この例では固定ファイルの内容が表示されていますが,この固定ファイルを定期的にサーバ側で更新すれば,立派な情報サービスの完成です。サーバ上へのファイルの配置は,インターネットサービスプロバイダに契約していればたいてい可能です。ファイルではなくプログラム(CGIなど)を配置したい場合には,プロバイダによっては不可能な場合がありますので注意してください。

 このJavaアプリのエミュレータでの動作確認は,手持ちのPCにWebサーバをインストールすれば簡単にできます。Javaアプリ起動前にWebサーバのルートディレクトリにhttp.txtというファイルを作成して,その中に何か文字列を記入しておくだけです。この例では"Hello, HTTP!!"という文字列をあらかじめ入れておいて実行しました。

 WebサーバはWindowsに付属のIISでもいいですし,APACHE HTTP ServerやそのほかのWebサーバでも可能です。ソースコード上http://localhost/となっている部分がローカルのサーバをアクセスすることを意味しています。ここではサーバのセットアップ方法は特に説明しません。また実際に通信対応Javaアプリを公開したい場合には,お手持ちのサーバのURLに間違いがないか十分確認してください。

HttpDemo.java

HttpDemo.jad

 今回は通信について解説しました。携帯電話ならではの通信を応用したアプリケーションを作成してみてください。次回もお楽しみに。

関連記事
▼ Javaアプリ事始め 第1回:J-フォン Javaアプリがやってきた!
▼ Javaアプリ事始め 第2回:待ち受けアプリを作ろう(1/2)
▼ Javaアプリ事始め 第3回:待ち受けアプリを作ろう その2
▼ Jアプリ★ゲット,Javaアプリ作者向けキャンペーン
▼ J-フォン,パケット端末用JavaのSDKを配布
▼ J-フォンにも一般Javaアプリが登場──Jアプリ★ゲット
▼ J-SH51リンクリスト

関連リンク
▼ コネクト
▼ J-PHONE Developer Program
▼ Jアプリ★ゲット
▼ Jアプリ★ゲット Javaアプリ登録キャンペーン

[コネクト 伊藤広明,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.



モバイルショップ

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

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