2009-12-22 3 views
3

내 고용주는 특정 시장의 소프트웨어 공급 업체입니다. 고객은 웹 서비스를 사용하여 다른 사람들과 시스템을 통합합니다. 우리는 Microsoft 기술을 사용하며 우리의 웹 서비스는 ASP.NET 및 WCF로 구현됩니다.통합 엔드 포인트에 대한 WCF 및 WSDL의 가능한 대안은 무엇입니까?

우리의 현재 서비스 세트를 검토하고 향후 통합을위한 회사 표준을 제안 할 때가 왔습니다. "Enterprise Integration Patterns"를 읽었으며 nServiceBus와 Mass Transit을 조금 봤습니다. 이것들은 계약 버저 닝 (contract versioning) 및 단위 테스트와 같은 문제를 단순화 할 수 있지만, 외부 클라이언트에 서비스를 노출하는 것이 아니라 내부 서비스 버스를 제공하는 데 가장 유용하게 보입니다.

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

이 시나리오에서 WCF는 갈 수 있습니까?

+0

WCF에 대해 마음에 들지 않는 점은 무엇입니까? – DOK

+0

NServiceBus를 사용하면 WCF를 사용하여 끝점을 표시 할 수 있습니다.이 내용은이 페이지 하단에 표시됩니다. http://www.nservicebus.com/InsteadOfWcf.aspx –

+0

DOK : 인프라 (호스트 및 config) 서비스를 테스트하는 데 필요한. 그렇다면 WSDL보다는 단순한 XML (POX)과 XSD를 사용하는 것이 우리 파트너와 관련해서는 너무 정통적인지 궁금합니다. 그 외에도, 서비스 버스가 제 시나리오에서 추가적인 이점을 줄 수 있는지 궁금합니다. –

답변

2

WCF는 Microsoft 플랫폼에서 가장 표준을 준수하는 스택입니다. 좋은 점은 다른 클라이언트가 "기본적으로"유연하게 사용할 수 있다는 것입니다. 슬픔을 유발하는 것이 있으면 대다수의 문제는 커스텀 비헤이비어를 통해 변경 될 수 있습니다.

1

메시지 브로커간에 AMQP을 통해 통합하는 것이 일반적으로 권장되는 대안입니다. 폴링 패러다임 대신 푸시 패러다임을 사용할 수있었습니다 (이는 비교할 때 매우 강력하고 확장 성이 뛰어납니다)!

RabbitMQ와 같은 브로커를 로컬로 설정해야합니다. 그런 다음 통합 파트너를 설정하십시오. (Easy : just download it).

당신의 파트너가 같은 데이터 센터에서 통합되어있는 경우, 당신은 몇 네트워크를 가정하는 저장 거라고는 분할 - 당신이 브로커를 공유 할 수있는 것을 의미한다. 다른 네트워크에있는 경우 브로커 federation mode에 설정할 수 있습니다. 다른 브로커에게 rabbitmq-plugins enable rabbitmq_federationpoint를 실행하십시오.

이제 예를 들어 다음을 사용할 수 있습니다. 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은 각 메시지 유형에 대한 교환을 생성합니다 (해당 교환에 대한 메시지를 모든 가입자에게 보냄). 그러면 승인 규칙을 적용 할 수 있습니다.

인증 규칙은 사용자 당 정규식의 형태이거나 LDAP에 통합 될 수 있습니다. 이것에 대해서는 문서를 참조하십시오.

WAN을 통과하고 IPSec 터널이없는 경우에도 SSL이 필요합니다. 해당 설명서는 http://www.rabbitmq.com/ssl.html이고 it like this을 사용합니다.

그게 전부 야! 즐겨!

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

관련 문제