限定しりとり

システム間で電文を送受信する機能の設計を
担当することになり悩んでおります。

「相手システムに電文を送信して、その結果を受信する」または、
「相手から送信されてきた電文を受け取って、その結果を返す」
っといった設計に関してまったくの素人です。

なぜ素人に担当させるのかっといった事で突っ込まれると、
みもふたもないので、その点に関して触れないで下さい m(_ _)m

とりあえず、私のレベル(下記)にあった
分かりやすい参考書、またはインターネットのサイトを見て
基礎勉強(下記)からはじめたいのですが、参考資料/サイト
の紹介をお願いします。

<開発環境(案)>
OS:Solaris
言語:Java(自分からAシステムへ)とPerl(自分からBシステムへ)
プロトコル:https
電文形式:XML

<私のレベル>
https,SSL、SOAPといった通信用語の意味は知っている(つもり)
Javaは実装の経験は無いが解析は出来る。

<知りたいと思っている事>
※「思っている」の意味は、今まで見た事・聞いた事からインスピレーション的に、
「多分、この辺を押さえておかなければいけないんだろうな...」っと思っている事です。

・送受信処理のJavaの実装例
・送受信が1秒間に100回あってもレスポンス悪化しない方法
 (100回という数値は適当です。普通どれくらいを目標にするのですか?)
・通信エラー等の例外処理の実装方法
 (通信エラー発生時の電文はロストするのですか?それってどうリカバリー
  するのですか? その当たりに関する事)
・「なりすまし,盗聴,改ざん」っといった事に対する防御方法とその実装方法に関する事

A 回答 (2件)

>・送受信が1秒間に100回あってもレスポンス悪化しない方法


根本的にはサーバー側のネットワーク環境を改善する以外ありません。
>(100回という数値は適当です。普通どれくらいを目標にするのですか?)
回数だけでは指標になりません。データ量にも依ります。

>・通信エラー等の例外処理の実装方法
>通信エラー発生時の電文はロストするのですか?
TCPというプロトコルにはエラーチェックや再送信の機能が
備わっています。ですからTCPを使う限り基本的にエラーチェックをする必要はありません。
あるとするならタイムアウトしてコネクションが切れる事です。
その場合、再度TCPのコネクションをはりなおします。

>・「なりすまし,盗聴,改ざん」っといった事に対する防御方法とその実装方法に関する事
まず、httpsを使っている時点でやりとりするデータは暗号化されています。
秘密鍵を入手しない限り、そう簡単にデータを解読する事は出来ません。問題は「なりすまし」ですが
HTTPS通信をおこなう場合、認証証明書が必要になります。この認証証明書は自分で作る事
も可能ですが、「なりすまし」を防ぐため
商用で使う場合にはベリサイン等から発行してもらいます。
手数料として大体10万円/年の費用がかかります。
http://www.verisign.co.jp/
(探せばもっと安いところはあります。)
    • good
    • 0

「相手システムに電文を送信して、その結果を受信する」


→クライアント

「相手から送信されてきた電文を受け取って、その結果を返す」
→サーバー


クライアントとサーバーではプログラムの構造が全く違います。
別物だと思って下さい。


実装例ですが、クライアントはともかく、サーバーは用途によってまるで異なるため、
例として挙げられるのはごく基本的な部分しかありません。

JAVAの標準APIではHTTPSのクライアントは比較的簡単に作れますが、
HTTPSサーバーを作るのは大変です。
サーバーはTOMCATなど既存のサーバーを利用するのがいいでしょう。


送受信が100回で妥当かどうかは、システムの種類やユーザーの数、その他の条件によって決まることであり、
普通かと聞かれてもわかりません。

>通信エラー発生時の電文はロストするのですか?それってどうリカバリーするのですか?
エラー内容によると思います。

また、そもそもリカバリーが必要なのかもシステムの要件で決めることです。

「なりすまし,盗聴,改ざん」ですが、「盗聴」は暗号化で防ぎ、「なりすまし,改ざん」は
電子署名という技術で防ぎます。


とりあえず、プロトコルに関しての理解が少し浅いように思えますので、次のサイトでも見てください。

http://www.atmarkit.co.jp/fnetwork/index_index.h …

ページの真ん中あたりの「TCP/IP」


暗号に関しての理解を深めるため、次の本を読むことをお勧めします。

暗号技術入門-秘密の国のアリス

暗号に関しては、この本で用語などの意味を理解しておかないと、
実装するときにもさっぱりわかりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!