|
システム間で電文を送受信する機能の設計を 担当することになり悩んでおります。 「相手システムに電文を送信して、その結果を受信する」または、 「相手から送信されてきた電文を受け取って、その結果を返す」 っといった設計に関してまったくの素人です。 なぜ素人に担当させるのかっといった事で突っ込まれると、 みもふたもないので、その点に関して触れないで下さい m(_ _)m とりあえず、私のレベル(下記)にあった 分かりやすい参考書、またはインターネットのサイトを見て 基礎勉強(下記)からはじめたいのですが、参考資料/サイト の紹介をお願いします。 <開発環境(案)> OS:Solaris 言語:Java(自分からAシステムへ)とPerl(自分からBシステムへ) プロトコル:https <私のレベル> https,SSL、SOAPといった通信用語の意味は知っている(つもり) Javaは実装の経験は無いが解析は出来る。 <知りたいと思っている事> ※「思っている」の意味は、今まで見た事・聞いた事からインスピレーション的に、 「多分、この辺を押さえておかなければいけないんだろうな...」っと思っている事です。 ・送受信処理のJavaの実装例 ・送受信が1秒間に100回あってもレスポンス悪化しない方法 (100回という数値は適当です。普通どれくらいを目標にするのですか?) ・通信エラー等の例外処理の実装方法 (通信エラー発生時の電文はロストするのですか?それってどうリカバリー するのですか? その当たりに関する事) ・「なりすまし,盗聴,改ざん」っといった事に対する防御方法とその実装方法に関する事 |
|
>>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 アドレスで制限をかけるとか。 もしネットゲームのように不特定多数が接続し、しかも送信プログラムを 改ざんされる恐れがある場合は大変面倒です。 |
|
BシェルからPerlを呼び出し実行しています。 Bシェルの変数の値をPerlに引き継がせることはできるのでしょうか。 以下でいうと、nに、”100”を設定しています。 そのnの値である、”100”を渡したいのですが。 -------------------- #!/bin/sh n=100 a=`perl -MPOSIX -e 'print strftime("%Y%m%d", localtime(time-(24*60*60*$n)))."\n"'` echo $a |
|
>>4715 こう 変数が展開されないのはシングルクォーテーションの中にあるせいなので $n だけ出してあげましょう。 ------ #!/bin/sh n=100 a=`perl -MPOSIX -e 'print strftime("%Y%m%d", localtime(time-(24*60*60*'$n')))."\n"'` echo $a |
|
はじめまして。 現在少々考えこんでしまっていることがあるのですが DB2でフェデレーション設定を行いたいと思っています。 ただ、フェデレーションという事自体をあまり 明確に理解しておりません。 どなたか、わかり易い説明などしていただけますでしょうか。 ラッパーやらニックネーム作成など色々調べれば出てくるのですが いまいちピンとこないのです。 どなかたご教授願えればありがたいです。 よろしくお願いいたします。 |
|
Bシェルのプロンプトについて教えて下さい。 Bシェルのプロンプトに日付、時間を表示し、何かコマンドを実行するごとに プロンプトに表示する表示内容を変えたいのですが、可能なのでしょうか。 PS1="[`date{] " とすれば、表示することはできますが、処理を実行するごとに変わりません。 変えたいのですが、方法とかあるのでしょうか。 |
|
BINDについて教えて下さい。 soralis7でBIND8.1.6の環境でDNSを構築しています。 named.confにzoneで以下の設定を追加してみましたが記述の間違いみたいなエラーが出ました。 zone "ドメイン名" in { type forward; forward only; forwarders { aa.bb.cc.dd; }; }; soralis9でBIND9.3の環境では正常に動作したのでBIND8.1.6ではzoneのforwardは 出来ないのではないかと思っています。 soralis7の環境でBINDをハ゛ーシ゛ョンアッフ゜したら動作するのではないかと思っていますが、 soralis7の環境で正常に動作するBINDは、どのハ゛ーシ゛ョンでしょうか? また、パッチの適応で動作するなどの情報がありましたら教えて下さい。 |
|
>>4718 こう shシェルのプロンプトでは無理です。 機能がなかったと思います。 表示は出来ても、プロンプトが生成される度に実行されません。 bashを使われてはいかかがですか。 bashのプロンプトで、時間、日付を表示できるエスケープが あったはずです。 |
|
テープにtarで吸い上げたファイルを削除する方法を教えてください。 テープ内にはtarで吸い上げたファイルがいくつかあり そのファイルの一つを任意で削除したい場合です。 お願いします。 |
|
tarコマンドでわからないことがあり質問させていただきく以下に記します。 使用マシン:Solaris系 (UNIX) DDS4のテープに15Gほどのデータを吸い上げました。 tar cvf /dev/rmt/0c /XXX/XXX ただし、他のサーバで25Gほどあいているディスクに tar xvf /dev/rmt/0 で展開しようとしたところ、 読み取りエラーが発生しました。 ネットなどでブロックサイズがXXXという説明を見ましたが 実際どのように対応するのかが記載している部分を見つけることが できず、教えてください。 |
|
Solaris8で質問です。 rloginで特定IP帯からは特定ユーザでログインできないよう、 制限したいと考えています。 既存ツールを使って実現する方法はあるでしょうか。 何か情報ご存知の方がおられましたら、ご教授お願いします。 |
|
Solaris8でzip圧縮した際にパスワードをかけたいと思っています。 現在の環境にはinfo-zip2.2がインストールされています。 過去ログにSolaris 標準の zipは暗号化ライブラリなしで コンパイルされていて、ソースを改造してコンパイルすればよい とあるのですが、 これはzip2.2のソースでしょうか?Solaris8のソースでしょうか? またzip2.2の場合、現時点の最新版zip2.3.2にバージョンアップすれば 暗号化できますでしょうか? よろしければご教授おねがいします。 |
|
NetBSD/macppcにて、一通りの初期設定はすみました。 次は、インターネット接続を試みようとしています。 http://nobug.tukusi.ne.jp/netbsd-guide/trans/netbsd.html の10章あたりを参考に設定しているところなのですが、イマイチよく分かりません。 モデムのデバイスが何なのかが分からないのです。 本体のUSB端子からKeyspan USA-28Xを接続してそこからシリアルポ−トにて モデムにつながっています。 USA-28Xは認識できているようなのですが、肝心のモデムのデバイスが分からず、 上記URLの10.1.3.7にあるようなモデムの試験ができないでいます。 モデムはINSメイトV-30DSUです。 どなたか、御助言、御教授いただけませんでしょうか。 環境は、 Power Mac G4 450MHz AGP Graphics NetBSD/macppcのバ−ジョン3.0 カ−ネルはデフォルト(GENERIC) dmesgとls /devの結果は http://ww2.tiki.ne.jp/~gari/dmesg.txt http://ww2.tiki.ne.jp/~gari/device.txt にあります。 |
|
log4j経由でsyslogに同じメッセージを出力する時に… ちょっとこの掲示板で以下の質問をして良いのかどうかわからないのですが、質問します。 log4jのSyslogApenderを使用してのUnix上マシンでのsyslogに出力する時に、前回と同じ内容のメッセージを出力した場合(前回出力してから30秒経過して出力)、なぜか下記の出力になります。 Nov 9 11:56:39 usrA ccc: repeate test Nov 9 11:56:39 usrA last message repeated 1 times 『last message repeated 1 times』とは、syslogdのログの抑止をするための仕様です。 このメッセージが出るのは問題ないのですが、2回目の出力時刻が30秒たったにもかかわらず、前回と同じ時間を示しています。時刻を出力しているのは syslogデーモンであり、syslogdが呼ばれた時刻を本来出力しています。 log4j経由ではなく、直接syslogdにログ要求を出した場合は、以下の出力なります。 Nov 9 11:56:39 usrA ccc: repeate test Nov 9 11:57:09 usrA last message repeated 1 times いろいろ調べたのですが、原因の糸口すらわかりません。どんなに時間が経過しても前回と同じメッセージの場合、『last message repeated n times』が必ず出力されるので困っています。 なぜこのような現象になるのかわかる方がいましたら、ご教授願います。また回避方法がありましたら教えてください。 環境: log4j1.2.12 JDK5.0 Solaris8 |
|
こんにちは と言う言葉は暗号化したら何で しいねてふ になるのですか? 教えてください。 |