2010-11-20 2 views
2

WCF 및 서비스 버스 주제를 읽었지만 일부 주제에서는 서비스 버스를 사용하지 않습니다. 귀하의 서비스가 방화벽 뒤에 위의 이미지에서왜 WCF가있을 때 서비스 버스가 필요합니까?

http://ecn.channel9.msdn.com/o9/learn/Azure/Labs/IntroServiceBus/Lab.html/html/images/4a0aa8f8-f4d1-49b6-b950-cf954402c599.png

을, 그리고 당신은 분명히 서비스 버스가 필요합니다 서비스 버스의 사용이 이미지를 확인합니다. 그러나 귀하가 귀하의 서비스를 폭로하고 싶다면 단순히 방화벽을 제거하는 해결책이 아닙니까? 그러면 모든 고객이 귀하의 서비스에 연결할 수 있습니다.

전체 네트워크의 방화벽을 제거하고 싶지는 않지만 공용으로 볼 수있는 웹 서버를 IIS와 함께 생성하여 서비스를 실행할 수 있다는 것을 알고 있습니다. 또는 나는 무엇인가 놓치고 있냐?

+0

하지만 회사 웹 사이트 용 웹 서버가있을 것입니다. 그들은 그 서비스를 실행할 수 있습니다. – Thomas

답변

6

WCF는 통신 인터페이스를 설정하고 관리하는 방법입니다. 그것은 당신의 메시지의 내용을 걱정하지 않습니다.

그러나 service bus은 메시지 라우팅을 담당한다는 점에서 다릅니다.

WCF 및 다른 비트를 사용하여 서비스 버스를 만들 수 있지만 WCF는 서비스 버스가 아닙니다.

5

서비스 버스는 서비스 아키텍처를 향상시키는 데 도움이됩니다.

많은 조직에서 지점 간 또는 스파게티 통합으로 간주되는 사항이 있습니다. 좋지 않습니다. 서비스 버스는 단일 통합 지점을 갖는 데 도움이됩니다. 예 : (Azure Service BUS 아키텍처)에 연결된 서비스에서 ESB에 서비스를 추가하면 각 서비스가 자체 인증을 담당하는 대신 방화벽 뒤에 앉아 있어도 액세스 제어를 사용하여 서비스 인증을 통합 할 수 있습니다. 또한 서비스 주소가 변경 되더라도이를 참조하는 모든 응용 프로그램 대신 한 곳 (ESB)에서만 변경하면됩니다.

서비스 버스는 그 예 등 SOAP에 일반 오래된 XML, 라우팅 메시지, 강화 메시지에서 변환, 서비스 메시지를 확인하는 그들은 당신의 요구 사항을 충족하지 않는 경우에 그들을 향상 등 많은 다른 일을 할 수

2

서비스 버스는 모든 클라이언트가 클라우드를 가리킬 수 있도록 릴레이 서비스입니다. 해커는 WCF 서비스가 아닌 클라우드의 릴레이 서비스를 공격합니다. 중계 서비스로 처리되는 모든 보안 측면.

질문에 정확하게 대답하려면 모든 WCF 서비스가 서비스 버스에서 호스팅되는 것은 아니며 솔루션만으로 충분할 수도 있습니다. 귀하의 필요와 기존 인프라에 따라 다릅니다.

나는 Juval Lowy의 this article을 강력히 추천합니다. 기사에서

발췌 :

릴레이 서비스가 클라이언트를 중계 그의 작업 연결성을 지원하는 클라우드에 존재하는 서비스입니다 서비스를 호출합니다. 이러한 릴레이 솔루션은 클라우드에 연결할 수 있도록 클라이언트와 서비스 인트라넷을 모두 필요로하지만 클라이언트와 서비스 모두 클라우드가 중립 영역을 구성하기 때문에 대부분의 환경에서는 인터넷에 대한 호출을 허용합니다. 첫째, 서비스와 클라이언트 모두 연결을 설정하고 중계 서비스에 대해 인증해야합니다. 이 시점에서 중계 서버는 서비스가있는 위치와이 서비스를 가장 잘 호출하는 방법을 기록합니다. 클라이언트가 중계 서비스를 호출하면 중계 서비스는 호출 (클라이언트 메시지)을 서비스로 전달합니다.시퀀스가 간단 해 보이지만 실제로는 복잡한 네트워크 프로그래밍, 메시징 및 표준 노하우, 보안 전문 지식 등이 상당 부분 포함됩니다. 이러한 솔루션은 대다수의 애플리케이션에서 손쉽게 벗어날 수 있습니다. Microsoft .NET 서비스 버스가 채우도록 고안된 격차입니다. Microsoft Data Center에서 호스팅되고 관리되는 기성품 릴레이 서비스입니다. .NET 서비스 버스는 클라우드의 주변 네트워크 역할을하며 클라이언트와 서비스의 자격 증명을 관리하는 단일 장소를 제공합니다. .NET 서비스 버스는 서비스의 프론트 엔드입니다. 인터넷에 숨어있는 악의적 인 발신자로부터 서비스를 캡슐화하고 격리하며 실제 서비스의 ID와 실제 위치를 모호하게하면서 서비스 거부 공격에서 재생 공격까지 다양한 공격을 차단합니다. 일반 WCF (Windows Communication Foundation) 서비스에 연결하고 릴레이 서비스를 사용하는 것의 주된 차이점은 호스팅을 중심으로 이루어집니다. 중계 된 경우 클라이언트가 .NET Service Bus에 연결하고 자체를 인증하고 클라이언트가 요청을 보내기 전에 중계 서비스의 호출을 수신해야합니다. 즉, 호스트를 명시 적으로 시작하거나 NT 서비스를 호스트로 사용해야하며 WAS가 첫 번째 요청이 들어온 후에 만 ​​WAS가 호스트를 시작하므로 WAS (Windows Activation Service) (또는 IIS)에서 호스팅 할 수는 없습니다. 호스트가 .NET 서비스 버스에 처음 연결되어 있지 않기 때문에 절대 발생하지 않습니다. .NET 서비스 버스는 일련의 전용 바인딩 및 동작을 제공하여 WCF 친숙한 프로그래밍 모델을 지원합니다. 전반적으로 프로그래밍 모델에 약간의 비틀림을 제외하고는 릴레이 서비스로 작업하는 것이 다른 WCF 서비스로 작업하는 것과 다를 바 없습니다. .NET Service Bus는 안정적인 메시징, 메시지 보안 및 전송 보안의 핵심 WCF 기능을 지원합니다.