2010-04-27 10 views
84

Słyszałem mówić o NServiceBus, ale tak naprawdę nie rozumiem, co to jest. Twierdzą, że są "najpopularniejszą magistralą usług open-source dla .net".Co to jest usługa serwisowa i kiedy jej potrzebuję?

Tak; czym jest "autobus serwisowy" i kiedy go potrzebuję?

+0

Naprawdę spóźniam się na imprezę, nie będę zamieszczać tego jako odpowiedzi, ponieważ nie jest to takie proste, ale w skrócie, jeśli nie wiesz, dlaczego potrzebujesz, to prawdopodobnie nie masz ... rozwiązuje konkretny problem, który prawdopodobnie nie dotyczy łączenia aplikacji i udostępniania scentralizowanego interfejsu API firmy. – War

+2

@Wardy Nie zgodziłbym się z Twoim oświadczeniem. Fakt, że czegoś nie rozumiesz lub nie wiesz, co to jest, nie znaczy, że nie pomógłbyś o tym wiedzieć. –

+0

To nie była wymówka dla ignorancji, ale bardziej wskazujące na to, że autobus usług jest terminem rzucone, gdy trafisz na problem, który rozwiązuje, więc będziesz go potrzebować albo nie, a więc nigdy nie będziesz musiał się tym martwić. – War

Odpowiedz

63

Możesz myśleć o magistrali usług jako Ethernet architektury SOA.

Przede wszystkim wprowadza język identyfikujący rzeczy, np. Adres IP w sieci Ethernet. To imię nie jest z natury fizyczne.

Następnie, w każdym węźle jest coś fizycznie związanego, jak kolejka w przypadku magistrali do obsługi częściowo połączonej komunikacji lub karta Ethernet w metaforze.

Poza samym aspektem fizycznym istnieje część protokołu "protokołu", podobnie jak stos OSI dla Ethernetu. W przypadku magistrali jest to biblioteka klienta używana przez kod aplikacji.

W końcu można zobaczyć magistralę usług jako zapewniającą wyższy poziom abstrakcji dla budowania systemów rozproszonych. Można go używać również do komunikacji między klientem a serwerem, aby zapewnić trwałe jednokierunkowe przesyłanie wiadomości, a także przekazywanie powiadomień z powrotem do klienta.

W szczególności NServiceBus jest dość lekki i łatwy w użyciu, gdy osiągniesz spokój dzięki wykorzystaniu technologii kolejkowania - do wyboru RabbitMQ, MSMQ, Kolejki pamięci Azure i Usługa Azure Service Bus.

+0

Thx! Myślisz, że mam teraz duże zdjęcie! Właściwie to pytanie było nieco przygotowane na dzisiejszą sesję, ale nie wygląda na to, że to zrobię ... – stiank81

9

Zobacz artykuł z Wikipedii pod adresem Enterprise Service Bus.

Magistrala usług stanowi kolejną warstwę abstrakcji w nigdy nie kończącej się misji wdrożenia dobrej architektury zorientowanej na usługi. Magistrala usług może poradzić sobie z ciężkim udźwigiem widocznym za dobrą architekturą zorientowaną na usługi, taką jak przesyłanie wiadomości, routing i współorganizowanie usług.

Jeśli nie masz pewności, dlaczego chcesz czegoś takiego, proponuję przeczytać, co stanowi dobrą architekturę zorientowaną na usługi. Książka, która naprawdę otworzyła mi oczy i okazało się różnica między tylko o Web Services i posiadające prawdziwą Service Oriented Architecture był Thomas Erl na Service-Oriented Architecture: Concepts, Technology, and Design

+0

Czy mogę go użyć do komunikacji między aplikacją kliencką a serwerem? Tam gdzie jest serwer. – stiank81

+0

Możesz. Można go również użyć do komunikacji między różnymi usługami, różnymi wersjami różnych usług itp. (W tym sytuacjami, w których usługi korzystają z różnych protokołów). –

10

Termin ten został wprowadzony z SOA, który jest w pewnym sensie następca (jak Buzz słowa) z EAI.

Kiedy jej potrzebujesz? To dobre pytanie. Ma wiele złożoności.

Reguła może sprawić, że rozwiąże ona więcej problemów niż powoduje.

Być poważnym, jeśli masz heterogeniczne środowisko i chcesz dopasować (różne) aplikacje (przy użyciu różnych technologii) do procesów biznesowych. może to być pomocne w obsłudze BPEL (ale wprowadza to problemy, których autorem jest migraton) dla orkiestracji i choreografii

EDIT: Co nie jest na wikipedii jest praktyka: ESB może i.g. dostosowywać za pomocą specjalnych złączy, starych aplikacji terminali do użytku z Corba lub Java Enterprise, co oznacza interoperacyjność. Wadą jest ponad 100 "norm" wokół SOAP, które nie współpracują bez ogromnego wysiłku.

Zdecydowanie potrzebujesz, jeśli musisz połączyć systemy IT w ciągu sześciu miesięcy od połączenia dwóch dużych firm ubezpieczeniowych.

+0

A więc - w mojej aplikacji komputerowej, która ma "prostą" komunikację ze stroną serwera, nie ma potrzeby, aby pracować z magistralą serwisową? Czy to pomoże mi zaimplementować model wypychania z serwera? Czy w tym scenariuszu może to być więcej bólu niż zysku? – stiank81

+0

@ stiank81 Przepraszam, że czytałem (Enterprise) autobus serwisowy i synapsy uruchomione. Sprawdziłem twój link do NServiceBus, którego celują tak samo, nie potrzebujesz czegoś takiego w aplikacji serwera klienta. Oznacza to koncepcję dla wielu aplikacji związanych z jednym procesem biznesowym. Jeśli to zadziałałoby dla Ciebie? Jeśli rozwiązuje więcej problemów niż powoduje. – stacker

+0

Thx. Nie, nie brzmi jak coś, co bym chciał dla mojej obecnej aplikacji .. – stiank81