- PR -

ソケット・FTPまたは他の方式?

1
投稿者投稿内容
yamaguchi
会議室デビュー日: 2004/10/07
投稿数: 4
投稿日時: 2005-11-26 15:10
こんにちは。
申し訳ありませんが、教えてくださいませんでしょうか。

現在、10秒ごとにあるテキストデータ(200バイト程度)を
出力(RS232C)する装置(全国各地に総数300箇所)に
RS232C出力からIPパケットに変換する装置を追加して
遠隔地にある拠点サーバまで、フレッツオフィスワイド網(足回りはADSL)で
送信するシステムを構築しております。

ここで
200バイト程度のデータを10秒ごとに300箇所から
送受信するためには、どのような通信方式があるでしょうか。
また、現在考えているものは
TCPソケット通信かFTPによる転送の方式の2つです。
現在はソケットのほうが効率的にデータを遅れるのではないかと思っておりますが
この手のシステム構築に大変不慣れなため
いまいち何がいいのか決めかねております。

考え方もソケットかFTPかという考え方に
凝り固まっていいまして
ほかの手順でうまく効率的(NW的にもハード的にも)に
この処理を行う方法はあるでしょうか。

長々と書いてしまい申し訳ありません。
ご意見伺えれば大変ありがたいです。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-11-26 17:38
引用:

yamaguchiさんの書き込み (2005-11-26 15:10) より:
こんにちは。
現在、10秒ごとにあるテキストデータ(200バイト程度)を
出力(RS232C)する装置(全国各地に総数300箇所)に
RS232C出力からIPパケットに変換する装置を追加して
遠隔地にある拠点サーバまで、フレッツオフィスワイド網(足回りはADSL)で
送信するシステムを構築しております。


その「RS232C出力からIPパケットに変換する装置」とやらは、自作する予定なのですか?既製品を使うのであれば、プロトコルを考えるだけ無意味だと思いますけど。

引用:

ここで
200バイト程度のデータを10秒ごとに300箇所から
送受信するためには、どのような通信方式があるでしょうか。
また、現在考えているものは
TCPソケット通信かFTPによる転送の方式の2つです。
現在はソケットのほうが効率的にデータを遅れるのではないかと思っておりますが
この手のシステム構築に大変不慣れなため
いまいち何がいいのか決めかねております。


とりあえずシステムに求める(どうなれば旨く効率的と言えるのか)要件を先に纏めないと話にならないんじゃない。送るだけなら方法は山ほどある訳です。その中から要件を満たす方法を選択することを迫られているわけですから。

たとえばですね、その10秒ごとに取得するデータとやらが1日遅れで届いても構いませんか?あるいは一時的に取得できない状態になっても構いませんか?フレッツ網ってたまにメンテナンスで止まりますよ。

何らかの異常で通信ができなくなった場合、その間のデータを蓄積しておく必要がありますか?

装置とやらに想定されているOSは何ですか?収集する側に想定しているOSは何ですか?

フレッツオフィスワイドってNTT東日本圏内と西日本圏内の接続はできないんですけど、その間はどうするんですか?



さて私が作るとしたら、FTPでってのは以外にエラー処理やら同期処理が面倒なんでやりません。装置側がFTPサーバーになるとしたら、拠点サーバはデータを扱うために10秒以内に300のFTPサーバーに接続してファイルをダウンロードしなければなりません。メンテナンスなどで接続できずエラーになる端末も考慮すると、こんな煩雑な事はしたくないです。逆に装置が拠点サーバに接続するのも考え物です。FTPで送られた事を検地して何かを行うというプログラムが書き難い事この上ありません。

私なら、データを喪失することが許されるなら、UDPで拠点サーバにユニキャストする事を考えます。データを喪失することが許されないなら、装置から拠点サーバのHTTP(CGI)を呼び出すようにするでしょう。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2005-11-26 17:45
こんにちわ

書かれている要件から、ソケットで通信するのが一般的でだとおもいます。
FTPでやるというのは、少し特異だとおもいますが、私自身はそういったアプローチ
でシステムを構築したことがあります。
それは拠点サーバに相当するマシン上でソケットプログラミングがサポート
されてなくFTPという選択しかなかったのと、クライアント側に実装するに
もFTPが簡単だったからです。

システムの目的、構成によってとる手段は異なってくるでしょう。

このデータを集めるのはファイルでもいいのですか?
集めたデータをどう利用したいのですか?

>RS232C出力からIPパケットに変換する装置を追加して
その装置はなんでしょう?
ftpもユーザコーディングのソケットAPを動かすことも可能なんでしょうか?
ほかの通信手段としても数多く存在するのですか?
RS232Cで受信して送信する機能はどう実現しようとしてるのでしょう?

サーバ側もどんな装置なんでしょう?

そういった事柄がわからないと適切な選択、アドバイスはできないです。

たとえばSNMPなんかもあるのかな、とはおもいますが、あたってるかどうか
はわかりません。

そういう状況だとソケットプログラミングしましょう。
ということになるでしょう。
yamaguchi
会議室デビュー日: 2004/10/07
投稿数: 4
投稿日時: 2005-11-27 17:57
申し訳ありません。
相談内容に不備が沢山ありまして。。。
にもかかわらず、お答え頂き、またアドバイスを頂き大変ありがとうございます。
もう少し詳しく書かせていただきたいと思います。

「RS232C出力からIPパケットに変換する装置(以下232/IP装置と書きます)」
というものは、自作の予定です。
なぜこのようなものが必要かと申しますと
もともと7年ほど前に整備した既存の装置があり
この装置は、やや高価な作りこみのものであり(ある種の観測装置です)
これに手を加えずに、センター集約システムに更新しようとしているからです。

観測データはリアルタイムで取得できる必要があります。
フレッツ網が一時的に切れた場合、再接続を行い、232/IP装置で記憶している
過去のデータから抜けた分のデータを取得するように考えております。
回線の故障や機器の故障などによるデータの不足に備えて
232/IP装置には15日分のデータを記憶させておくことを考えております。
(この観測装置は無人観測装置であるため、故障時、人間が行き対応するまでの時間として余裕を見て15日としております)
これらの観測所はADSLが通ることは確認しております。
NTT東日本とNTT西日本のフレッツ網の間の接続はNTTcomのe-VLANの
フレッツ網接続サービスを使用する予定です。

232/IP装置のOSは現在uITRONかLINUXを考えております。
ファンやHDDなどの稼動部が無いものとしております。
サーバはRedhat LINUXでブレードサーバ2台クラスタ構成です。
ストレージは現在内臓を利用しようと思います。
SNMPクライアント・マネージャ機能は搭載する予定です。

データの利用としましては
蓄積して解析・即時的な利用などを想定しております。
DB(MySQL)への格納を考えております。

なぜFTPを考えていたかといいますと
今回のシステムを次の世代に引き継ぎ、更新していくに当たり
部分的に外注なども考えた場合
より汎用的な通信方式がよいだろうという所があったためです。
ソケット通信に関しては
その手順などはすでに完成したものがあります。(以前作成した独自のもの)
その手順で行ううえでは通信に関して透明であるとは思うのですが
FTPやその他の汎用的な通信方式も吟味する必要性を考えているところです。

1

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