68user's page 掲示板

Prev< No. 4714> Next  [最新発言に戻る] [過去ログ一覧]
No. 4714 # 68user 2006/09/27 (水) 16:41:33
>>4713
> ・送受信処理のJavaの実装例
送受信の基礎は echo クライアント・サーバや http クライアント・サーバの
実装サンプルを探せばよいでしょう。

データ受け渡しは、http のパラメータで渡す・CSV・XMLRPC・SOAP など実現
方法はいろいろあるでしょうが、それは開発スピードや保守性に関わる部分
なので、はっきり言って何でもいいです。

> ・送受信が1秒間に100回あってもレスポンス悪化しない方法
> (100回という数値は適当です。普通どれくらいを目標にするのですか?)
要件次第です。相手側は何箇所あるのか、MAX で 1秒あたり何回送信する
可能性があるかを考え、安全係数 (1.5 とか) をかけて、それをさばける
構成を考えます。

高速化方法は、https の上に載せるのであれば一般的な web のパフォーマンス
チューニングがメインとなるでしょう。
    - web サーバチューニング
    - SSL アクセラレータ導入
    - DB チューニング・コネクションプール
    - web サーバ複数台化

> ・通信エラー等の例外処理の実装方法
> (通信エラー発生時の電文はロストするのですか?それってどうリカバリー
> するのですか? その当たりに関する事)
ロストする可能性があると考えて設計した方がよいでしょう。

プロトコル的には
    1. A -> B データ送信
    2. B -> A 完了通知
これだけだと思いますが、アプリの手順まで含めると
    1. A -> B データ送信
    2. B にて受信済フラグセット
    3. B -> A 受信完了通知
    4. A が受信完了通知を受け、送信済フラグをセット
となると思います。で、
    - A は送信済フラグが立っていない場合は再送する
    - B が既に受信済フラグを受けていたら、無視 or 破棄する
などの対処をすると。もし即時の再送がまずいなら、
    0. A にて送信日時をセット
    1. A -> B データ送信
    2. B にて受信済フラグセット
    3. B -> A 受信完了通知
    4. A が受信完了通知を受け、送信済フラグをセット
として、「前回送信から n分経過していたら再送する」などの仕組みも必要と
なるでしょうが、その辺は要件次第です。

もちろん、ブラウザのように
    「タイムアウトしたらエラー通知するだけ。再送は操作者まかせ」
というのも選択肢としてはアリです。

> ・「なりすまし,盗聴,改ざん」っといった事に対する防御方法とその実装方法に関する事
その辺は SSL でカバーするのがよいでしょう。相手側のなりすましも
防御する必要があるならクライアント証明書を使うとか、アプリレイヤで
認証するとか、固定 IP アドレスなら IP アドレスで制限をかけるとか。

もしネットゲームのように不特定多数が接続し、しかも送信プログラムを
改ざんされる恐れがある場合は大変面倒です。

Prev< No. 4714> Next  [最新発言に戻る] [過去ログ一覧]