- PR -

GUIクライアント-サーバー間のデータベースレコード処理

1
投稿者投稿内容
ぶん
会議室デビュー日: 2002/04/04
投稿数: 15
投稿日時: 2002-04-18 14:09
こんにちは、ぶんです。

クライアントとサーバ間で、データベース上の複数レコードのデータ操作を行う場合の手法は、どのような方法があるのでしょうか?
クライアント側は、GUIが必須なのでアプレットやJavaWebStartなどを考えています。
クライアント画面には、蓄積データをグラフ表示(動的に変化を表示させる)させます。

私が自分なりに勉強している途中経過は、以下のような方法なのですが、一般的な手法ですか?
○クライアント−サーバー間は、HTTPで通信する。
 クライアントからサーバへの情報:抽出パラメータ
 サーバーからクライアントへの情報:データベースのレコード(複数レコードの場合は、
  最初にレコード数情報を送り、その後1レコードづつ送る)
○サーバー側は、以下のサーブレットを実装
 −HTTP通信
 −データベースのテーブル毎の処理クラス
 −JDBCを制御
てきとうな記述となっていますが、いろいろ勉強中であり知識が無いので申し訳ありません。

MS製品では、RDSによってクライアント−サーバー間のデータベース処理を実現していましたが、Javaでの具体的なイメージがつかめません。

ごなたかご教授のほど宜しくお願い致します。
miki
大ベテラン
会議室デビュー日: 2001/09/21
投稿数: 174
お住まい・勤務地: 東京都八王子市
投稿日時: 2002-04-18 17:58
Webサーバはインターネット上ですね?
だったら、HTTP+XMLまたはSOAPといったところですかね。
ぶん
会議室デビュー日: 2002/04/04
投稿数: 15
投稿日時: 2002-04-18 18:28
mikiさん。ありがとうございます。

XMLですか。
やはりキャラクタ情報を、やりとりするんですよね。
レコードセットのオブジェクトなんかを渡したりするやり方ってないんですかね?
コネクションの永続性の問題とかはあると思いますが...
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-04-19 10:09
サーバ側で適当なコレクションに値を入れたらシリアライズして、
クライアント側でデシリアライズする、というのは方法としてはありそうですね。
HTTP前提なら結局Servletは作ることになりますけど。

>  サーバーからクライアントへの情報:データベースのレコード(複数レコードの場合は、
>  最初にレコード数情報を送り、その後1レコードづつ送る)

これは何か理由があるのでしょうか。
一般にデータはまとめてブロックで送ったほうが効率はよさそうですが・・・?
miki
大ベテラン
会議室デビュー日: 2001/09/21
投稿数: 174
お住まい・勤務地: 東京都八王子市
投稿日時: 2002-04-19 10:19
引用:

ぶんさんの書き込み (2002-04-18 18:28) より:
レコードセットのオブジェクトなんかを渡したりするやり方ってないんですかね?
コネクションの永続性の問題とかはあると思いますが...



HTTP TunnelingをサポートしたJDBCドライバということでしたら、googleで探してみたらいくつかの製品がヒットしました。詳細は知りません。

私ならfirewallとかProxyの設定とかで苦労したくないし、Java以外のクライアントへの拡張性も考えて、迷わずSOAP使います。

もちろん、HTTPという制約がなければ、JDBC、RMI、CORBA/IIOPなどなんでもありですね。







toshi
会議室デビュー日: 2002/03/07
投稿数: 10
お住まい・勤務地: 東京
投稿日時: 2002-04-22 11:51
はじめまして。

クライアントがjavaであるなら、java.net.URL、java.net.URLConnectionあたりを使えば
サバにリクエストを発したり、その返りを受けたりはできますね。

しかもサバもjavaであるなら、javaクラス(の直列化されたもの)を受け渡しできたりします。
対ブラウザと基本的には同じです。ただ、結果がJavaオブジェクトなだけ。
Response.getOutputStream()、java.io.ObjectOutputStreamあたり。

クラスを直接ストリームに垂れ流すときは、java.io.Serializableを実装したクラスで無いでまみたいです。なので、java.sql.ResultSetのサブクラスでは直接流せない可能性が高いです。
サーバー側で、別のクラスにつくり変えなければいけません。(Vectorに詰めなおすとか)

あと、サーバー側が勝手にクライアントに話し掛けることはできない(と思うので)
リアルに更新するなら、クライアントにスレッドを仕込んでおいてってことになります。


結構マニアレスですいません。
今どきあまりやりませんよねぇ。
ぶん
会議室デビュー日: 2002/04/04
投稿数: 15
投稿日時: 2002-04-22 13:13
みなさん、ご返答ありがとうございました。

かろうじてイメージがつかめるものから、チンプンカンプン
なものまでありますので、頂いた回答を元に、いろいろ調べ
て見ます。

ありがとうございました。m(_ _)m
1

スキルアップ/キャリアアップ(JOB@IT)