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:
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.
Zobacz także