2012-01-29 5 views
4

OSGi 서비스를 기반으로하는 커다란 맞춤형 기술을 기반으로 한 주요 소프트웨어 시스템을 마이그레이션 할 프로젝트 중입니다. 이를 위해 우리는 OSGi 서비스와 잘 어울리는 일종의 메시지 버스가 필요할 것입니다.OSGi 서비스를위한 메시지 버스

  • 동기 및 비동기 전송
  • 포인트 - 투 - 포인트 만
  • 보장 배달 - 파일을 통해 지속성 바람직
  • 같은 클라이언트 (비동기 모드)에서 주문
  • 엄격한 메시지,하지만 반드시 다른 클라이언트에서 프로세스 프로세스 및 노드 간 좋은 있지만 엄격하게 필요하지

오픈 소스 솔루션 w에 대한

  • 지원 선호되지만 바람직하지는 않습니다.

    나는 (https://stackoverflow.com/a/1953453/796559에서 권장하는대로) eventbus을 보았지만 제대로 작동하지 않는 것 같습니다.

    그래서 어떤 기술이 위의 기술과 일치합니까?

  • 답변

    5

    토니와,

    그냥 매우 유사하고, 성공적인 프로젝트에서 온 데, 당신은 당신에게 약간의 시간과 당신의 회사 돈을 절약과 내 경험을 공유 주시기 바랍니다. 우선 ESB는 8 년 전에 제안되었을 때 정말 좋은 아이디어였습니다. 그리고 그들은 중요한 문제를 해결했습니다. 성가신 코드 작성자들이 이해할 수있는 방식으로 비즈니스 문제를 어떻게 정의합니까? 목표는 비즈니스 사람이 관리 보너스에 더 많은 돈을 낭비하는 데 필요한 성가신 개발자 상호 작용이 거의 없거나 전혀없는 소프트웨어 솔루션을 개발할 수있는 시스템을 개발하는 것이 었습니다.

    많은 조직의 좋은 사람들은 JBI, BPMN 및 비즈니스 사용자가 "디지털화"하려는 비즈니스 프로세스를 모델링 할 수있게 해주는 다양한 솔루션을 생각해 내었습니다. 그러나 실제로, 그들은 모두 매우 심각한 결함이있었습니다 : 비즈니스 문제는 해결했지만 통합 문제는 다루지 않았습니다. 따라서 고가의 컨설턴트가 수행하지 않는 한 이러한 구현 중 많은 부분이 성공하지 못했고 그 후에도 잠재 고객이 개략적이었습니다.

    동시에 90 년대 후반의 일부 현명한 사람들은 일반적인 통합 문제를 해결하는 데 사용 된 60 가지 이상의 디자인 패턴을 확인한 "Enterprise Integration Patterns"라는 책을 출간했습니다. ESB를 수행하는 많은 사람들은 자신의 문제가 비즈니스 모델링이 아니라는 것을 깨달았습니다. 오히려 문제는 기존 응용 프로그램을 통합하는 방법이었습니다. 이 Michael Strachan와 정말 똑똑한 사람들을 해결하는 데 도움을주기 위해 Apache Software Foundation Project "Camel"을 시작했습니다. 낙타는 당신과 내가 같은 사람들이 물건을 함께 연결할 수 있도록 설계된 수많은 구성 요소 외에도 기업 통합 패턴의 엄격한 구현입니다.

    비즈니스 프로세스를 한 응용 프로그램에서 다른 응용 프로그램으로 데이터를 보낼 때 단순히 적절한 데이터 변환을 사용하여 데이터를 보내야한다고 생각하면 카멜이 대답입니다. 자, 데이터베이스의 구성 가능한 규칙 집합에서 "경로"(데이터를 보내려는 특정 일련의 응용 프로그램 끝점)를 기반으로하고 싶다면 어떻게해야할까요? 음, 낙타도 그렇게 할 수 있습니다! 그 끝점이 있습니다! 어쨌든, 전통적인 ESB는 오래되어 버려지지 않습니다. 그리고 절대적으로 낙타를하십시오.

    이 정보가 도움이되는지 알려주세요.

    +0

    의견에 감사드립니다. 나는 완전히 동의한다. 나는 더 큰 제품 기반에 걸쳐 공통적 인 방식으로 서비스에 인터페이스하는 데 도움이되는 매우 낮은 수준의 방법을 찾고있다 ... 나는 어떤 종류의 비즈니스 모델링도 찾고 있지 않다. 그래서 ... 내가 카멜을보고 어디서 들어갈 수 있는지 보도록하겠습니다 ... –

    1

    ESB를 찾으십니까? 당신이 당신의 자신의 통합 솔루션을 구축하는 데 사용할 수있는 강력한 런타임 플랫폼으로 기능과 아파치 ActiveMQ, Camel, CXF, ODE, Karaf의 기능을 통합

    유연한 오픈 소스 통합 용기 : ServiceMix는 것입니다. OSGi에 의해 독점적으로 구동되는 완벽한 엔터프라이즈 급 ESB를 제공합니다.

    +0

    감사합니다. 빠른 답변 :-) ServiceMix를 최대한 빨리 점검 할 것입니다. –

    0

    여기 ESB에 대해 이야기하는 것처럼 보입니다. 케이스의 경우, 당신은 wso2 ESB을 봐야 할 것입니다. 그것은 apache synapse에 의해 제공됩니다. OSGi를 모듈러 프레임 워크로 사용하므로 요구 사항에 따라 기능을 추가/제거 할 수 있습니다. 같은 OSGi 코어 플랫폼을 기반으로하는 메시지 브로커, 비즈니스 프로세스 서버 (ODE) 등과 같은 wso2의 전체 product stack이 있습니다.

    면책 조항 : wso2에서 근무하고 있습니다.

    +0

    고마워, 내가 보게. –

    4

    OSGi 사양은 경량 pub-sub 이벤트 서브 시스템 인 "이벤트 관리자"구성 요소를 정의합니다. RFC0157에서 :

    이벤트 관리자는 이벤트 리스너에 이벤트를 전송하는 이벤트 소스에 대한 방법을 지정합니다. 이벤트 소스는 주제 및 속성을 갖는 이벤트를 생성하고 이벤트 관리자에게 특정 이벤트 주제 및/또는 속성 값에 대한 관심을 표명 한 이벤트 청취자에게 이벤트를 전달하도록 요청할 수 있습니다. 이벤트 소스는 동기 (및 정렬되지 않음) 전달 또는 비동기 (및 정렬 된) 전달을 요청할 수 있습니다.

    • 동기 및 비동기 전송 : 확인
    • 포인트 - 투 - 포인트 전용 : 번호 펍 서브
    • 다음과 같이 점수 것입니다 귀하의 요구 사항에 비해

    ,
  • 배달 보장 - 파일을 통한 지속성이 바람직 함 : 아니오
  • 엄격한 메시지 같은 클라이언트에서 주문 전자 (비동기 모드) : YES 대한
  • 지원 프로세스 간 : 경우 (공정 == OSGi 서비스) -> 예 노드 간을위한
  • 지원 : 아직입니다. Distributed OSGi의 직원들이이 작업을 해왔지만, 구체적인 내용을 보지 못했습니다.
  • 나는 Camel의 개념을 좋아하지만, 최근에는 (요구 사항이 제한되어 있으므로) (더 가벼운) Event Admin으로 가기로 결정했습니다. Camel 동기 부여에 +1하십시오. 나는 그것을 조사한 다음 결정하기 전에 옵션을 비교할 것입니다.