2014-12-09 2 views
1

:이벤트 기반의 메시징 시스템 (zeromq, OpenDDS ..) 나는 다음과 같이 작동하는 이벤트 기반의 메시징 시스템 설계하려고

우리가 상점에서 여러 제품이 있다고 가정 해 봅시다, 그 가격이 다를를 매일. 고객은 응용 프로그램에 로그인하여 특정 날짜에 특정 제품의 가격 (로그인 날짜로부터 1 개월)을 (SMS를 통해) 알도록 요청할 수 있습니다.

zeromq를 사용할 때 이벤트 개념을 (위에서 설명한대로) 소개하는 방법은 무엇입니까? OpenDDS는 이러한 시나리오에 더 잘 맞습니까?

답변

0

모델링 된 객체 (이 경우 귀하의 제품)의 '상태'(이 경우 잠재적으로 역사적인 가격)에 대한 분산 액세스에 대한 것보다는 '이벤트'에 대한 유스 케이스 읽기.

오픈 표준 기술인 DDS는 관계형 데이터 모델링과 함께 pub/sub 메시징의 스마트 조합을 사용하여 공유 데이터에 대한 분산 액세스를 제공함으로써이를 직접 지원합니다. 또한 데이터의 생산자/소비자 및 데이터 자체와 관련 될 수있는 광대 한 서비스 품질 (QoS) 정책을 표준화하고 지원합니다. 사용 케이스에서 DDS 인프라가 데이터 오브젝트 (DDS 용어로 주제라고 함)의 고유하게 식별 된 '인스턴스'에 대한 히스토리 데이터를 유지할 수 있도록하는 데이터에 대한 '내구성'QoS.

DDS 접근법에서 중요한 것은 특정 용도에 적합한 '데이터 모델'을 결정하는 것입니다. 귀하의 경우에는 제품 코드가 고유 한 제품 (예 : RDBMS 에서처럼 DDS의 '키 속성', 설명 및 가격이 될 것입니다. 가격이 변경 될 때마다 해당 데이터 유형의 새로운 '인스턴스'가 게시되고 QoS 정책이 PERSISTENT로 정의 될 때 미들웨어에 의해 유지됩니다 (일반적으로 하나 이상의 '내구성 서비스' DDS 구현의 일부)

DDS의 응용 프로그램은 이러한 주제에 대한 가입 정보를 제공하며 제품 주제의 히스토리 데이터와 함께 자동으로 제공됩니다. 일부 DDS 구현은 내용, 시간 및/또는 볼륨 (양)의 조합을 기반으로 히스토리 데이터의 전달에 대한 상세 검색을 지정할 수 있습니다. 유스 케이스에서는 '올바른 제품'(ID 또는 이름으로)과 시간을 선택할 수 있습니다.

마지막으로 시스템이 '웹 사용'이라고 가정하면 인터넷 규모에서 작동해야하며 PC, 모바일 장치 등의 분산 액세스를 위해 클라우드 기반 영구 데이터 저장소를 지원할 수 있습니다. Vortex (www.prismtech.com/vortex)를 살펴보십시오. Vortex OpenSplice 제품의 오픈 소스 버전 (www.prismtech.com/dds-community)도 있습니다.

행운을 빈다.

+0

미안 해요, 난 하나 개의 중요한 세부 사항을 언급하는 것을 잊었다 : 나는 이러한 트레이드 오프의 일부를 설명 어디에 당신은 내가 쓴이 글을보고 할 수 있습니다. 응용 프로그램은 데이터베이스에 액세스 할 수 없습니다. 웹 페이지에서 정보를 검색해야합니다. 따라서 사용자가 1 월 1 일에 제품 가격을 알고 싶다고 말하면 응용 프로그램은 해당 날짜에 웹 사이트에 액세스해야합니다. 또한, 제품의 가격은 하루 중 언제든지 변경할 수 있다는 또 다른 세부 사항이 있습니다. – user1274878

0

3 개 또는 4 개의 서로 다른 기술을 결합해야하는 솔루션이 필요합니다.

(1) 장기간 정보를 유지하고 사용자 정의 쿼리를 지원하기 위해 데이터베이스와 같은 일부 스토리지 기술. 기본적으로 "데이터를 정지"합니다. 고전적인 RDBMS가 적합 할 수 있습니다.

(2) 상태를 업데이트하고, 상태 변경 알림을 받고, 신호를 보내고, 다른 응용 프로그램과 프로세스간에 통합을 조정하는 메시징 기술입니다. DDS/RTPS, ZeroMQ, JMS/AMQP와 같은 메시징 미들웨어 기술이 가장 적합 할 것으로 보입니다.

(3) 웹 클라이언트 및 서버 기술. 클라이언트 측 및 Node.js 용 자바 스크립트 또는 기타 HTTP/REST 백 엔드와 같은 것입니다.

(4) 프로토콜 조정 및 통합 기술. 다른 프로토콜과 기술을 통합 할 수있는 것. 예 : 메시지 수신, HTTP/REST 서비스, 메시징 기술 및 데이터베이스 간의 통합, SMS와 백엔드 간 통합 등을 포함한 데이터베이스 변경을 원격으로 감지합니다. Apache Camel 및 Enterprise Service 버스가 제공하는 것들.

I 및 메시징 플랫폼으로서 DDS를 중심으로하는 빌딩 시스템에 가장 익숙합니다. DDS를 선택한 경우 다른 DDS 공급 업체가 이미 이러한 빌딩 블록을 많이 제공합니다. 예를 들어 웹에서 검색하면 Apache Camel Integration 및 Node.js와의 통합을 발견했습니다. Hans는 이미 PrismTech에서 Vortex에 대해 언급했습니다. RTI는 관계형 데이터베이스 (https://www.rti.com/products/dds/database-integration.html)와의 통합을 준비 했으므로 데이터베이스에서 변경 한 내용은 메시지 버스에 반영되며 그 반대의 경우도 마찬가지이며 웹/HTTP/REST (http://www.slideshare.net/GerardoPardo/london-connext-dds-conference-web-enabled-dds)와의 통합과 이미 언급 한 웹 기술.

당신이 취할 수있는 또 다른 접근법은 ESB를 중심으로 접근 방식을 개발하고 제공하는 어댑터를 다른 기술에 사용하는 것입니다. 이것은 아마도 가장 간단한 접근법 중 하나 일 것입니다 만, ESB가 모든 것을 중개 할 것이라는 단점이 있습니다. 이것은 여러분의 어플리케이션에 중요하지 않을 수도 있습니다. http://soa.sys-con.com/node/467488

제라르

관련 문제