문제

보안 시스템, 화재 경보, 카메라 시스템 등과 같은 시스템에서 수십 가지의 다른 프로토콜을 가져 와서 단일 공통 프로토콜에 통합해야합니다.

나는 이것이 많은 시스템이 구독하거나 통신 할 수있는 메시징 서버가되기를 원합니다.

  • 폴링 및 폴링 "드라이버"(프로토콜 변환기)
  • RS232 / RS485 / TCP를 처리합니다
  • Java 또는 C#과 같은 관리 언어로 프로그램 가능한 "드라이버"
  • 규칙 엔진 기능

Biztalk가 이것에 맞습니까?

오픈 소스 대안이 있습니까?

이 작업을 수행하는 Java / Java EE 방법이 있습니까?

한쪽 끝에서 시스템은 SCADA 시스템이 될 것입니다. 다른 하나는 일종의 미들웨어 / 메시징 서버입니다.

진행하는 가장 좋은 방법에 대한 모든 생각은 감사 할 것입니다. 나는 운전자쪽에 상당한 양의 프로그래밍이 관련 될 것이지만, 나만큼 유혹을받은 것처럼, 전체 시스템을 처음부터 구축하는 것은 적절하지 않을 것입니다.

도움이 되었습니까?

해결책

Java 플랫폼에서 작업하지 않는다면 가벼운 프로토콜 스위처와 구현이 있습니다. 엔터프라이즈 통합 패턴 오픈 소스 프로젝트에서 아파치 낙타.

낙타는 이미 대부분의 말을 할 수 있습니다 일반적인 프로토콜 및 기술 처럼 파일, 이메일, JMS, XMPP 그러므로 그러한 것들에 실제 코딩이 필요하지 않았습니다.

새로운 사용자 정의 프로토콜을 추가하려면 가장 간단한 경로는 미나 구성 요소 모든 네트워킹, 소켓 처리, 스레딩 등을 처리합니다 (예 : NIO 대 Bio et al).

그런 다음 확장하여 자신의 프로토콜 코덱을 추가하기 만하면 (프레임 등을 사용하여 소켓에서 마샬/미혼 메시지를하는 방법).

그만큼 HL7 구성 요소 이 작업의 예입니다. 더 미나 코덱 작성에 대한 세부 사항.

그런 다음 낙타 구성 요소를 얻으면 (FOO라고 부르면) 간단한 URI를 사용하여 모든 프로토콜에서 다른 프로토콜로 브리지를 구현할 수 있습니다. 엔터프라이즈 통합 패턴 ~와 같은 콘텐츠 기반 라우터, 수신자 목록, 라우팅 슬립

예 : 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}");

다른 팁

SCADA 및 RS232/RS485의 Biztalk를 피할 수 있습니다. 일반적으로 실시간 (또는 적어도 낮은 대기 시간) 솔루션이 필요하기 때문입니다. Biztalk는 높은 throughtput에 최적화되었지만 기본적으로 높은 대기 시간을 갖는 단점이 있습니다.

지연 시간이 적을수록 Biztalk를 조정할 수 있지만,이 시점에서 Biztalk가 내장 된 거의 모든 것을 우회 할 수 있으며 아마도 당신을 돕는 대신에 방해가 될 것입니다.

www.livedata.com

약간 비싸지 만 하나의 프로토콜을 취하고 다른 프로토콜을 뱉을 수있는 파이썬 기반 엔진입니다. 이미 ICCP, MODBUS, OPC 및 DNP와 같은 여러 SCADA 프로토콜을 위해 설정되어 있습니다. 그런 다음 다운 스트림 원하는대로 말할 수 있습니다.

  • 남자

제안합니다 OpenScada. 웹 사이트는 현재 약간 혼란 스럽지만 소프트웨어는 적극적으로 사용하고 활발한 개발 중입니다. 명백한 목표는 SCADA 사용 사례를위한 공통 기술 독립적 인 인터페이스를 만드는 것입니다 (현재 방향은 Java를 지향하지만 IKVM을 실험하여 .NET 버전을 생성).

따라서 OpenSCADA를 사용하여 모든 "하드웨어"장치와 통신 한 다음 나머지 미들웨어에 대한 브리지를 만들거나 미들웨어 내의 플러그인으로 OpenSCADA 브리지를 만들 수 있습니다. 우리는 이미 직렬 서버를 통해 LAN에 연결된 카드 리더에 연결하는 드라이버가 이미 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top