2010-04-27 2 views
84

나는 NServiceBus에 대해 이야기를 들었다. 그러나 나는 그것이 무엇인지를 정말로 이해하지 못했다. 그들은 ".net을위한 대중적인 오픈 소스 서비스 버스"라고 주장합니다.서비스 버스 란 무엇이며 언제 필요합니까?

그래서; "서비스 버스"란 무엇이며 언제 필요할 수 있습니까?

+0

저는 파티에 정말 늦었습니다. 응답으로 게시하지는 않을 것입니다.하지만 짧지 만 그 이유가 무엇인지 모르는 경우에는 그럴 수 있습니다. 애플리케이션을 연결하고 비즈니스에 중앙 집중식 API를 제공 할 필요가없는 특정 문제를 해결합니다. – War

+2

@ Wardy 귀하의 진술에 동의하지 않습니다. 당신이 무언가를 이해하지 못하거나 그것이 무엇인지 모른다는 사실은 그것이 당신이 그것에 대해 알기 위해 도움이되지 않는다는 것을 의미하지 않습니다. –

+0

그것은 무지에 대한 핑계가 아니지만 서비스 버스는 용어라는 것을 더 지적합니다 당신이 문제를 해결할 때마다 많은 것을 던져서 당신이 필요로하거나 그렇지 않을 것이므로 그것에 대해 걱정할 필요가 없습니다. – War

답변

63

SOA의 이더넷으로 서비스 버스를 생각할 수 있습니다.

먼저 이더넷의 IP 주소와 같은 항목을 식별하는 언어를 소개합니다. 이 이름은 본질적으로 물리적 인 것이 아닙니다.

다음으로는 반 연결 된 통신을 지원하는 버스의 경우 대기열이나 은유의 이더넷 카드와 같이 각 노드에 물리적 인 요소가 있습니다.

물리적 인 것 외에 이더넷의 OSI 스택처럼 통신의 "프로토콜"부분이 있습니다. 버스에서는 응용 프로그램 코드에서 사용하는 클라이언트 라이브러리입니다.

궁극적으로 서비스 버스는 분산 시스템 구축을위한 차세대 추상화 수준을 제공하는 것으로 볼 수 있습니다. 클라이언트 - 서버 통신에도 사용할 수 있으므로 내구성이 뛰어난 일방 통행 메시징을 제공 할뿐만 아니라 서버가 클라이언트에 알림을 다시 푸시 할 수 있습니다.

특히 RabbitMQ, MSMQ, Azure Storage Queues 및 Azure Service Bus 중에서 선택할 수 있습니다. 대기열 기술을 사용하면 평화 로워지면 NServiceBus가 매우 가볍고 사용하기 쉽습니다.

+0

Thx! 내가 지금 큰 그림을 가지고 있다고 생각해라! 실제로이 질문을 당신이 오늘 밤 개최하고있는 세션에 대비할 준비가되어있는 것으로 요구하고 있었지만 그것을 만들 것 같지 않습니다. – stiank81

9

Enterprise Service Bus에 대한 위키 백과 문서를 확인하십시오.

서비스 버스는 좋은 서비스 지향 아키텍처를 구현하기 위해 끝이없는 탐구에서 또 다른 추상화 계층 역할을합니다. 서비스 버스는 메시징, 라우팅 및 서비스 Co-Ordination과 같은 훌륭한 SOA (Service Oriented Architecture) 뒤에있는 무거운 짐을 처리 할 수 ​​있습니다.

그런 이유가 확실하지 않은 경우 좋은 서비스 지향 아키텍처를 만드는 요소에 대해 읽어 보시기 바랍니다. 정말 내 눈을 뜨게 그냥했다 웹 서비스를 가진 및 아키텍처 지향 진정한 서비스를 가진 사이의 서로 다른 증명이 책 토마스 얼의 Service-Oriented Architecture: Concepts, Technology, and Design이 용어는의 (버즈 단어로) 방식 후임에 SOA 도입 된

+0

그래서 데스크톱 클라이언트 응용 프로그램과 서버 간의 통신을 위해 사용할 수 있습니까? 서버가 어디에 있는지, 즉 – stiank81

+0

수 있습니다. 또한 다른 서비스, 다른 서비스의 다른 버전 등 (서비스가 다른 프로토콜을 사용하는 상황 포함) 간의 통신에 사용할 수도 있습니다. –

10

EAI.

언제 필요합니까? 그건 좋은 질문이야. 그것은 많은 복잡성을 수반합니다.

어림짐작은 그것이 야기하는 것보다 많은 문제를 해결할 수 있습니다.

이기종 환경이 있고 비즈니스 프로세스와 (다른 기술을 사용하는) 응용 프로그램을 정렬하려는 경우 심각합니다. 는 그럼 BPEL을 사용하는 것이 도움이 될 수 있습니다 (하지만이 migraton에 의한 문제 소개) 오케스트레이션안무를

편집 : 위키 백과에없는 것은, 연습 : ESB는 i.g.이었다 수 있습니다 특수 커넥터, Corba 또는 Java Enterprise와 함께 사용할 수있는 이전 터미널 응용 프로그램을 사용하여 상호 운용 성을 의미합니다. 단점은 엄청난 노력없이 협력하지 않는 SOAP에 대한 100 개 이상의 '표준'입니다.

2 개의 큰 보증 회사의 합병 후 6 개월 이내에 IT 시스템을 상호 연결해야하는 경우 확실히 필요합니다.

+0

서버 쪽과의 "단순한"통신을하는 데스크탑 응용 프로그램에는 서비스 버스를 사용할 필요가 없습니다. 서버에서 푸시 모델을 구현하는 데 도움이 될까요? 아니면이 시나리오에서도 이득보다 더 고통 스러울 것입니까? – stiank81

+0

@ stiank81 미안 해요 (엔터프라이즈) 서비스 버스를 읽고 시냅스가 해고되었습니다. NServiceBus에 대한 링크를 확인했는데 클라이언트 서버 앱에서 그런 것을 필요로하지 않습니다. 그것은 하나의 비즈니스 프로세스와 관련된 여러 애플리케이션의 개념을 의미합니다. 그것이 당신을 위해 작동한다면? 그것보다 더 많은 문제를 해결하면. – stacker

+0

Thx. 아니, 내 현재 앱에 대해 내가 좋아하는 것처럼 들리지 않는다. – stiank81

관련 문제