문제

저의 고용주는 특정 시장의 소프트웨어 공급 업체입니다. 고객은 웹 서비스를 사용하여 시스템을 다른 시스템과 통합합니다. 우리는 Microsoft 기술을 사용하며 웹 서비스는 ASP.NET 및 WCF에서 구현됩니다.

현재 서비스 세트를 검토하고 향후 통합을위한 회사 표준을 제시했습니다. 나는 "Enterprise Integration Patterns"를 읽고 있으며 Nservicebus와 Mass Transit을 조금보고 있습니다. 이는 계약 버전 및 단위 테스트와 같은 문제를 단순화 할 수 있지만 외부 고객에게 서비스를 노출시키는 것이 아니라 내부 서비스 버스를 제공하는 데 가장 유용한 것 같습니다.

우리의 고객은 다양한 플랫폼에 있으며 서비스는 표준을 준수해야합니다. 그것은 다른 사람들과는 다른 것을 의미 할 수 있지만 WSDL로 설명 된 웹 서비스에 액세스하고 싶다고 가정하는 것이 안전하다고 생각합니다.

이 시나리오에서 WCF가가는 길입니까?

도움이 되었습니까?

해결책

WCF는 Microsoft 플랫폼에서 가장 많은 표준 준수 스택입니다. 좋은 점은 "상자 밖으로"다른 고객에게 매우 유연하다는 것입니다. 슬픔을 일으키는 것들이 있다면 대부분의 문제없이 사용자 정의 행동을 통해 변경 될 수 있습니다.

다른 팁

내가 일반적으로 추천하는 대안은 통합 이상입니다 AMQP 메시지 중개인 사이. 그것은 당신이 폴링 패러다임 대신 푸시 패러다임을 사용할 수 있다는 것이 었습니다 (이것은 매우 강력하고 비교할 수 있습니다)!

RabbitMQ와 같은 자신의 중개인을 로컬로 설정했습니다. 그런 다음 통합 파트너가 하나를 설정하게했습니다. (쉬운: 그냥 다운로드하십시오).

파트너가 동일한 데이터 센터에서 통합하는 경우 소수의 것으로 가정 할 것입니다. 네트워크 분할 - 당신이 할 수 있음을 의미합니다 브로커를 공유하십시오. 반면에 다른 네트워크에 있다면 브로커를 설정할 수 있습니다. 안에 연합 모드. (운영 rabbitmq-plugins enable rabbitmq_federation 그리고 가리키다 다른 중개인에게)

이제 예를 들어 MassTransit을 사용할 수 있습니다.

ServiceBusFactory.New(sbc =>
{
    sbc.UseRabbitMqRouting();
    sbc.ReceiveFrom("rabbitmq://rabbitmq.mydomain.local/myvhost/myapplication");
    // sbc.Subscribe( s => s ... );
});

, 통합을하지 않을 때와 마찬가지로.

당신이 보면 http : //rabbitmq.mydomain.local : 55672/ 이제 RabbitMQ의 투여 인터페이스를 찾을 수 있습니다. MassTransit은 각 메시지 유형에 대한 교환을 만듭니다 (해당 메시지를 모든 가입자에게 전송하면 해당 메시지를 전달하면 승인 규칙을 작성할 수 있습니다.

승인 규칙은 사용자 당 Regex 형태 일 수 있거나 LDAP에 통합 될 수 있습니다. 이것에 대한 문서를 참조하십시오.

WAN을 넘어 IPSEC 터널이없는 경우 SSL이 필요합니다. 해당 문서는 다음과 같습니다. http://www.rabbitmq.com/ssl.html 그리고 당신은 가능합니다 이렇게.

그게 다야! 즐기다!

Post Scriptum : 모든 인프라를 부작용으로 관리하는 데 도움이되는 모험을 느끼고 있다면, 당신은 살펴볼 수 있습니다. 인형. Puppet은 서버의 프로비저너 및 구성 관리자입니다. 이 경우 꼭두각시로 SSL을 설정하는 데 관심이 있습니다. 먼저, 도메인에 대한 와일드 카드 하위 도메인 인증서를 주문한 다음 해당 증명서를 사용하여 다른 인증서에 서명 할 수 있습니다.이를 위임 할 수 있습니다. . " - 새로운 기관을 작성하는 대신 인증서에 대한 인증서 서명 요청을 생성하고 RMQ가 SSL에이를 사용하도록하십시오. 인터넷에 유효합니다.

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