3

セキュリティ システム、火災警報器、カメラ システムなどのシステムから数十の異なるプロトコルを取得し、単一の共通プロトコルに統合する必要があります。

これを、多くのシステムがサブスクライブしたり通信したりできるメッセージング サーバーにしたいと考えています。

  • ポーリングおよび非ポーリングの「ドライバー」 (プロトコル コンバーター)
  • RS232 / RS485 / tcp を扱う
  • Java や C# などのマネージ言語でプログラム可能な「ドライバー」
  • ルール エンジン機能

Biztalk はこれに適合しますか?

オープンソースの代替手段はありますか?

これを行うJava/Java EEの方法はありますか?

一方のシステムは SCADA システムであり、もう一方のシステムは一種のミドルウェア / メッセージング サーバーです。

続行するための最良の方法についてのご意見をいただければ幸いです。ドライバー側でかなりの量のプログラミングが必要になることはわかっていますが、システム全体をゼロから構築するのは適切ではありません。

4

4 に答える 4

6

SCADA および RS232/RS485 用の BizTalk は避けます。これらは通常、リアルタイム (または少なくとも低遅延) ソリューションを必要とするからです。BizTalk は高スループット向けに最適化されていますが、既定では待ち時間が長くなるという欠点があります。

待ち時間を短くするために BizTalk を微調整することはできますが、この時点で、BizTalk に組み込まれているほとんどすべてをバイパスしていることがわかります。

于 2008-10-23T14:30:59.513 に答える
3

www.livedata.com

少し高価ですが、1 つのプロトコルを取得して別のプロトコルを吐き出すことができる Python ベースのエンジンであり、箱から出してすぐに ICCP、modbus、OPC、DNP などの複数の scada プロトコル用にセットアップされています。その後、下流で好きなように話すことができます。

  • ジョン
于 2010-06-16T04:31:07.890 に答える
3

Java プラットフォームでの作業を気にしない場合は、軽量のプロトコル スイッチャーと、Apache Camelというオープン ソース プロジェクトのエンタープライズ統合パターンの実装があります。

Camel はすでにfilesemailJMSXMPPなどの一般的なプロトコルとテクノロジーのほとんどを話すことができるため、これらのことを実際にコーディングする必要はありません。

新しいカスタム プロトコルを追加する最も簡単な方法は、すべてのネットワーク、ソケット処理、スレッド化などを処理するMINA コンポーネントの上に構築することです (たとえば、NIO と BIO など)。

次に、それを拡張して独自のプロトコル コーデックを追加します (フレーミングなどを使用して、ソケット上でメッセージをマーシャリング/アンマーシャリングする方法)。

HL7 コンポーネントは、これを行う例です。MINA コーデックの記述の詳細については、こちら を参照してください。

次に、camel コンポーネント (foo と呼びましょう) を取得したら、単純な URI を使用して任意のプロトコルから他のプロトコルにブリッジし、Content Based RouterRecipient ListRouting Slipなどのエンタープライズ統合パターンのいずれかを実装できます。

たとえば、Java コードで

// route all messages from foo
// to a single queue on JMS
from("foo://somehost:1234").
  to("jms:MyQueue");

// route all messages from foo component
// to a queue using a header
from("foo://somehost:1234").
  recipientList().
    simple("activemq:MyPrefix.${headers.cheese}");
于 2008-10-23T13:53:09.747 に答える
2

OpenSCADAをお勧めします。現在、ウェブサイトは少し混乱していますが、ソフトウェアは活発に使用され、活発に開発されています。明確な目標は、SCADA ユース ケース用の、技術に依存しない共通のインターフェイスを作成することです (ただし、現時点では方向性は多かれ少なかれ Java に向けられています [ただし、.NET バージョンを作成するために ikvm も試しています])。

したがって、OpenSCADA を使用してすべての「ハードウェア」デバイスと通信し、残りのミドルウェアへのブリッジを作成するか、ミドルウェア内のプラグインとして OpenSCADA ブリッジを作成できます。たとえば、シリアル サーバー経由で LAN にリンクされたカード リーダーに接続するドライバーが既にあります。

于 2009-08-13T21:11:03.987 に答える