Zalety usługa Broker

Funkcje usługa Broker zapewniają szereg istotnych korzyści, jakie aplikacje baz danych.Te funkcje i korzyści to:

  • Integracja z bazy danych zwiększa wydajność aplikacji i upraszcza administrację.

  • Kolejność wiadomości i koordynację do projektowania aplikacji uproszczonego

  • Sprzężenia luźne aplikacji zapewnia elastyczność obciążenia pracą.

  • Blokowanie wiadomości pokrewne zezwala na więcej niż jedno wystąpienie aplikacji do procesów wiadomości z tej samej kolejki, bez wyraźnej synchronizacji.

  • Automatyczna aktywacja zezwala aplikacjom na skalowanie z objętością wiadomości.

Integracja z bazy danych

usługa Broker zintegrowanego projektu zapewnia korzyści dla wydajności aplikacji i administrowanie.

Integracja z SQL Server Umożliwia transakcyjnej obsługi wiadomości bez dodatkowe obciążenie i złożoności koordynatora transakcja rozproszona zewnętrznych. Aplikacja odbiera wiadomości z jednego lub kilku, przetwarza wiadomości lub wiadomości i wysyła komunikat odpowiedzi w obrębie transakcji w jednej bazie danych.Jeśli transakcja awarii, wszystkie prace toczy się ponownie, a odebrano wiadomość jest zwracana do kolejki tak to kolejna próba mogą być dokonywane do przetworzenia go.Żadne akcje zostały wprowadzone do momentu zastosowania zatwierdza transakcję.Aplikacja pozostaje w stanie spójnym.

Administracji jest łatwiejsze, gdy dane, wiadomości i logikę aplikacji są w bazie danych, ponieważ Administracja dla aplikacji (odzyskiwanie po awarii, zabezpieczeń, kopia zapasowa i tak dalej), następnie stają się częścią rutynowego administrowania do bazy danych i administratora nie ma zarządzać trzech lub czterech oddzielnych części.

W przypadku tradycyjnych systemów obsługi wiadomości magazyn wiadomości i bazy danych może być niespójny.Na przykład gdy jeden składnik zostanie przywrócone z kopia zapasowa, inny składnik należy też przywrócić z kopia zapasowa na tym samym czasie, czyli informacji w magazynie wiadomości nie jest zgodny z informacji w bazie danych.Ponieważ usługa Broker przechowuje wiadomości i danych w tej samej bazy danych, niespójność nie jest problem.

Typowe środowisko projektowania jest również korzyści z integracją z bazą danych.Wiadomości część aplikacji i część danych aplikacji można użyć takie same SQL Server języki i narzędzi dostępnych w aplikacji usługa Broker, wykorzystując do projektanta znajomości programowania technik komunikatów programowania w bazie danych. Procedury przechowywane, które implementują usługa usługa Broker może być zapisany przy użyciu jednego Transact-SQL lub jednym z typowych języków plików wykonywalnych (CLR) języka. Programy poza użycia bazy danych Transact-SQL i interfejsy, takie jak ADO.NET programowania znanych bazy danych.

Ponadto integracja bazy danych umożliwia zarządzanie zasobami automatyczne.usługa Broker jest uruchamiany w kontekście SQL Server wystąpienie, więc usługa Broker monitoruje wszystkie gotowe przekazywanych z wszystkich baz danych w przypadku wiadomości. Dzięki temu każda baza danych zachować własną kolejki pomagają usługa Broker do zarządzania wykorzystanie zasób przez cały SQL Server wystąpienie.

Kolejność i koordynującego wiadomości

W tradycyjnych systemów obsługi wiadomości aplikacja została odpowiedzialny za kolejność i koordynowanie wiadomości, które mogą dotrzeć poza kolejnością.Na przykład A aplikacji wysyła wiadomości 1, 2 i 3.Aplikacja B odbiera i potwierdza wiadomości 1 do 3, ale nie wystąpi błąd z komunikatem 2.Aplikacja A wysyła ponownie wiadomości 2, ale teraz otrzymania komunikatu po wiadomości 1 do 3.W poprzednich wersjach programista musiał albo napisz aplikację tak, aby kolejność wiadomości nie znaczenia, inaczej tymczasowo pamięci podręcznej wiadomości 3, dopóki nie odebrano wiadomości 2, dzięki czemu aplikacja może przetworzyć wiadomości, w odpowiedniej kolejności.Żadna rozwiązaniem jest proste lub proste.

Inny problem z tradycyjnych systemów zostało zduplikowane dostawy.W poprzednim przykładzie Jeśli aplikacja B otrzyma komunikat 2, ale wiadomość potwierdzenia powrót do aplikacji, A zostaną utracone, A aplikacja wyśle wiadomości 2, powodując B aplikacji do odbierania wiadomości 2 dwa razy.Kod aplikacji było możliwe do zidentyfikowania i odrzucić duplikat albo ponownie przetworzyć duplikat bez negatywne skutki.Ponownie obie metody są trudne do wykonania.

Koordynacja wiadomości została również tradycyjnie trudne problemu do obsługi.Na przykład aplikacja może przedstawić setki lub tysiące żądań do usługa.Usługa przetwarza żądania równolegle i zwraca odpowiedź tak szybko, jak usługa kończy przetwarzanie żądania.Ponieważ każde żądanie ma różne ilość czas na przetworzenie, aplikacja odbiera odpowiedzi w innej kolejności niż kolejności, w której aplikacja wysłane wiadomości wychodzącej.Jednak poprawnie przetworzyć odpowiedzi, aplikację należy skojarzyć poszczególne odpowiedzi z poprawną wiadomości wychodzącej.W tradycyjnych systemów obsługi wiadomości każda aplikacja zarządzana tego skojarzenia, dodana do kosztów i złożoności opracowywania aplikacji.

usługa Broker rozwiązuje takie problemy poprzez obsługę wiadomości zamówienie, unikatowe dostawy i identyfikacji konwersacji automatycznie.Po nawiązaniu komunikacji między dwoma punktami końcowymi usługa brokera aplikacja odbiera każdej wiadomości tylko raz i w kolejności, w którym wiadomość została wysłana.Aplikacja może przetwarzać wiadomości tylko raz w celu, bez dodatkowego kodu.Na koniec usługa Broker automatycznie dołącza identyfikator w każdej wiadomości.Zawsze łatwo jest określić konwersacji, które należy danej wiadomości do aplikacji.

Luźny sprzężone i elastyczność obciążenie pracą

usługa Broker zapewnia swobodne sprzężenia między inicjujący aplikacji i aplikacji miejsce docelowe.Aplikacja może wysyłać wiadomości w kolejce, a następnie przejdź z aplikacją przetwarzania, opierając się na usługa Broker upewnij się, że komunikat dociera do obiekt docelowy.To luźne sprzężenia zapewnia elastyczność planowania.Inicjator może wysłać wiele wiadomości, a wiele usług miejsce docelowe może przetwarzać je równolegle.Każda usługa miejsce docelowe przetwarza wiadomości własnym tempie, w zależności od obciążenia bieżącej.

Kolejkowanie umożliwia również systemów do rozpowszechniania przetwarzanie bardziej równomiernie ograniczenie pojemności piku wymagane przez serwer.Może to poprawić ogólną szybkość i wydajność w aplikacjach baz danych.Na przykład wiele aplikacji bazy danych mają wzrost transakcji w określonych porach dnia, zwiększenie zużycia zasób i zwalniania czasy odpowiedzi.Broker z tych aplikacji należy nie wykonywanie wszystkich przetwarzania transakcji biznesowych po przesłaniu go do aplikacji.Zamiast tego aplikacja używa usługa Broker do wysyłania informacji o transakcji do aplikacji, które wykonują przetwarzania w tle.Te aplikacje przetwarzać transakcje niezawodnie przez pewien czas, w czasie, gdy aplikacja hasło główne będzie nadal otrzymywał nowej transakcji.

Jeśli obiekt obiekt docelowy nie jest dostępne od razu, wiadomość pozostanie w kolejce przekazywanie wysyłanie bazy danych.Service Broker ponawia próbę wiadomości, wiadomość zostanie wysłana pomyślnie, lub do momentu wygaśnięcia ważności konwersacji, umożliwiające niezawodne konwersacji kontynuować między dwie usługi, nawet jeśli jedna usługa jest chwilowo niedostępny w pewnym momencie podczas rozmowy.Wiadomości w kolejce transmisji są częścią bazy danych; usługa Broker dostarcza wiadomość, nawet wtedy, gdy wystąpienie zostanie przejęta awaryjnie lub ponownym uruchomieniu.

Blokowanie wiadomości pokrewne

Jedną z najbardziej trudne czynności do wykonania w tradycyjnych aplikacji obsługi wiadomości było umożliwienie wielu programów do czytania równolegle z tej samej kolejki.Tradycyjnych systemów obsługi wiadomości wiadomości mogą uzyskać przetwarzania poza kolejnością, gdy wiele programów lub wielu wątków są odczytu z tej samej kolejki.usługa Broker pozwala uniknąć tej sytuacji wystąpienia poprzez blokowanie grupa konwersacji.

Należy wziąć pod uwagę tradycyjnych kolejności przetwarzania aplikacji.Wiadomości A, zawierający instrukcje dotyczące tworzenia nagłówka zamówienia, a B wiadomości, zawierający instrukcje dotyczące tworzenia pozycje zamówienia są oba odebranych w kolejce.Jeśli oba te komunikaty są dequeued przez wystąpień innej aplikacji i przetwarzane w tym samym czas, transakcji element wiersza zamówienia może spróbować najpierw zatwierdzić i zakończyć się niepowodzeniem, ponieważ kolejność jeszcze nie istnieje.Niepowodzenie z kolei powoduje, że transakcja była wycofać i wiadomość requeued i przetwarzane ponownie marnować zasobów.Tradycyjnie programistów rozwiązać ten problem poprzez łączenie informacji z wiadomości A i B wiadomości w pojedynczej wiadomości.To podejście jest proste dla dwóch wiadomości, to podejście skaluje słabo układów, obejmujących koordynowanie dziesiątek lub setek wiadomości.

usługa Broker rozwiązuje ten problem, kojarząc powiązanych konwersacji w grupie konwersacji.usługa Broker automatycznie blokuje wszystkie wiadomości w tej samej grupa konwersacji, dzięki czemu można tylko te wiadomości odbierane i przetwarzane przez wystąpienie jednej aplikacji.W tym samym czasie inne wystąpienia aplikacji, można kontynuować usuwania z kolejki i przetwarza wiadomości w innych grupach konwersacji.Pozwala to wielu wystąpień aplikacji równoległych działać niezawodnie i wydajnie, bez konieczności skomplikowany kod blokady w aplikacji.

Automatyczna aktywacja

Jednym z najbardziej przydatnych funkcji usługa Broker jest aktywacja.Aktywacja umożliwia aplikacji dynamicznie przeskalować do dopasowania ilość wiadomości przychodzące w kolejce.usługa Broker zawiera funkcje, które umożliwiają zarówno programów uruchomionych w bazie danych i programów uruchamianych poza bazą danych, aby wykorzystać aktywacja.Jednak usługa Broker nie wymaga, że aplikacja używa aktywacja.

usługa Broker monitoruje aktywność w kolejce do ustalenia, czy aplikacja odbiera wiadomości dla wszystkich konwersacji, w których wiadomości dostępne.Aktywacja usługa Broker uruchamia czytnika nowej kolejki podczas pracy dla czytnika kolejki do wykonania.Aby określić podczas pracy dla czytnika kolejki, usługa Broker monitoruje aktywność w kolejce.Jeśli liczba czytniki kolejki jest taki sam, jak ruchu przychodzącego, kolejki okresowo osiągnie stan w przypadku gdy kolejka jest pusta albo wszystkie wiadomości w kolejce należą do konwersacji, które jest przetwarzana przez inny obiekt odczytujący kolejki.Jeśli kolejka nie osiąga ten stan przez pewien czas, usługa Broker uaktywnia inne wystąpienie aplikacji.

Aplikacje wykorzystują aktywacja różnych metod dla programów uruchamianych wewnątrz bazy danych i programy, które są uruchamiane poza bazą danych.W przypadku programów w bazie danych usługa Broker Uruchamia inną kopię procedura przechowywana, określony przez kolejkę.W przypadku programów uruchamianych poza bazą danych usługa Broker generuje zdarzenie aktywacja.Program monitoruje to zdarzenie, aby określić, kiedy potrzebne jest inny obiekt odczytujący kolejki.

usługa Broker nie zatrzymuje program uruchomiony przez aktywację.Zamiast tego aplikacje aktywowany są zapisywane do zamknięcia niedziałający automatycznie po pewnym okresie czas bez żadnych wiadomości przychodzącej do przyjęcia.Aplikacja, zaprojektowany w ten sposób można zezwolić na liczbę wystąpień aplikacji powiększanie i zmniejszanie dynamicznie jako ruch do zmiany usługa.Ponadto jeśli system jest zamykany lub ponownego rozruchu, aplikacje są uruchamiane automatycznie do czytania wiadomości w kolejce, po ponownym uruchomieniu systemu.

To zachowanie nie ma tradycyjnych systemów obsługi wiadomości, a często końca w górę o albo zbyt dużo lub za mało zasobów przeznaczonych do określonej kolejki w danej chwili.