Udostępnij za pośrednictwem


Budowanie aplikacji z Service Broker

Można uruchomić program Transact-SQL można użyć instrukcji Service Broker.Aplikacja Service Broker może być implementowana jako program działający poza SQL Server, lub jako procedura składowana w Transact-SQL lub.Język netto.

Zazwyczaj składa się z kilku składników wspólnie wykonywać zadania program używający Service Broker.Program, który inicjuje konwersację tworzy i wysyła wiadomość do innej usługa.Program może oczekiwania na odpowiedź lub natychmiast zakończyć i zależne od innego programu do przetwarzania odpowiedzi.usługa, który jest miejsce docelowe konwersacji, program odbierze przychodzące wiadomości z kolejki usługa, odczytuje dane wiadomości, jest konieczne przetwarzania, tworzy i wysyła komunikat odpowiedzi, jeśli właściwe.

Rozszerza Service Broker Transact-SQL.Aplikacja nie jest konieczne, model obiektowy specjalne lub biblioteki do pracy z Service Broker.Zamiast tego wysłać programy Transact-SQL polecenia SQL Server i przetwarzać wyniki tych poleceń.Aplikacja może być uaktywniona przez Service Broker, można uruchomić jako usługa tła, można uruchomić jako zadanie zaplanowane lub można uruchomić w odpowiedzi na zdarzenie.Więcej informacji na temat strategii uruchamianie aplikacji korzystającej z Service Broker, zobacz Wybór strategii uruchamiania.

Informacje na temat tworzenia aplikacji z Service Broker, zobacz Zalety programowania przy użyciuService Broker.

Omówienie aplikacji Service Broker

Na poniższej ilustracji przedstawiono interakcji w aplikacji korzystającej z Service Broker:

Przepływ wiadomości w konwersacji i ich relacje

Jak pokazano na ilustracji, SubmitExpense, AcceptDenyExpense, i ReimbursementIssued najpierw utworzyć typy wiadomości.ProcessExpenses kontrakt jest utworzone w oparciu o te typy wiadomości i zawiera schemat konwersacji do ukończenia zadania zwrotu wydatków.ProcessExpenses kontrakt kontroluje wszystkie konwersacje między ProcessExpense usługa oraz SubmitExpense usługa.ProcessExpenses kontrakt i typów wiadomości, których używa musi istnieć w bazach danych wszystkie usługi, które konwersacje oparte na tej kontrakt.

usługa Brokerprzechowuje wiadomości wysłane do SubmitExpense usługa w kolejce dla tej usługa.ExpenseSubmission procedura składowana odbiera wiadomości z tej kolejki, przetwarza je i wysyła wiadomości do innej usługa, jeśli odpowiedź jest konieczne.

usługa Brokerprzechowuje wiadomości wysłane do ProcessExpense usługa w kolejce dla tej usługa.ExpenseProcessing procedura składowana odbiera wiadomości z tej kolejki, przetwarza je i wysyła wiadomości do innej usługa, jeśli odpowiedź jest konieczne.

Konwersację między te dwie usługi byłyby następującą strukturę:

  • Użytkownik przesyła żądanie zwrotu wydatków za pośrednictwem interfejs użytkownika.Uruchamia aplikację ExpenseSubmission procedura składowana, który tworzy SubmitExpense wiadomości.SubmitExpense Usługa rozpoczyna konwersację z ProcessExpense usługi, następnie wysyła SubmitExpense wiadomości do ProcessExpense usługi.

  • usługa Brokerodbiera SubmitExpense wiadomości dla ProcessExpense usługa i umieszcza wiadomość w ExpenseQueue kolejki.ExpenseQueue kolejki uaktywnia ProcessExpense procedura składowana, dequeues i przetwarza SubmitExpense wiadomości.ProcessExpense procedura składowana, a następnie tworzy AcceptDenyExpense wiadomości i wysyła tę wiadomość do SubmitExpense usługa.Jeżeli koszt jest zabroniony, ProcessExpense konwersację kończy procedura składowana.

  • usługa BrokerPrzełączenie AcceptDenyExpense wiadomości dla SubmitExpense usługa dla kolejki usługa.Jeśli ProcessExpense procedura zakończona konwersacji, umieszcza Service Broker EndDialog wiadomości na wydatki kolejki.Uaktywnia kolejki ExpenseSubmission procedura składowana, dequeues i przetwarza AcceptDenyExpense wiadomości.Jeśli ExpenseSubmission procedura składowana znajdzie EndDialog wiadomości w kolejce, procedura kończy się konwersacji.

  • Jeśli koszt zostało zaakceptowane, ProcessExpense usługa tworzy i wysyła ReimbursementIssued komunikat potwierdzający został wydany płatności wydatków, a następnie kończy konwersacji.usługa Brokerumieszcza te wiadomości dla kolejki usługa.Uaktywnia kolejki ExpenseSubmission procedury i procesy procedury ReimbursementIssued wiadomości.Procedura przetwarza następnie EndDialog wiadomości i kończy konwersacji.