Aracılığıyla paylaş


Hizmet Aracısı ile uygulamaları oluşturma

Çalıştırmak için herhangi bir program Transact-SQL ifadeleri kullanarak Hizmet Aracısı.Hizmet Aracısı uygulama dışında çalışan bir program olarak uygulanan SQL Server, ya da yazılan bir saklı yordam Transact-SQL veya bir.net dili.

Hizmet Aracısı kullanan bir program genellikle bir görevi gerçekleştirmek için birlikte çalışan bileşenler bir dizi oluşur.Görüşme başlatan bir program oluşturur ve başka bir ileti gönderir hizmet.Bu programda, yanıt beklemeye veya hemen çıkın ve yanıtı işlemek için başka bir program kullanan.Program hedef olan bir konuşma bir hizmet aldığı bir gelen ileti hizmeti için sıradan ileti verileri okur, tüm gerekli bir işlem oluşturur ve uygunsa, bir yanıt iletisi gönderir.

Hizmet Aracısı genişleten Transact-SQL.Bir uygulama bir özel nesne modeli veya kitaplık Hizmet Aracısı ile çalışmak için gerekli değildir.Programlar gönderin Transact-SQL komutları SQL Server ve sonuçlar bu komutlar.Bir uygulama tarafından etkinleştirilebilir hizmet Aracısı, bir arka plan hizmet çalışabilir, zamanlanmış bir iş olarak yürütebilirsiniz veya bir olaya yanıt olarak başladı.Hizmet Aracısı kullanan bir uygulama başlatmak için stratejiler hakkında daha fazla bilgi için bkz: Başlangıç stratejisi seçme.

Hizmet Aracısı ile uygulamaları oluşturma hakkında bilgi için bkz: Programlama ile Hizmet Aracısı yararları.

Hizmet Aracısı uygulama genel bakış

Aşağıdaki resimde Hizmet Aracısı kullanan bir uygulama etkileşimi gösterir:

Konuşmalardaki ileti ilişkisi ve akışı

Çizimde gösterildiği gibi SubmitExpense, AcceptDenyExpense, ve ReimbursementIssued ileti türlerini önce oluşturulur.The ProcessExpenses contract is created based on these message types and provides a schema for having a conversation to complete an expense reimbursement task.The ProcessExpenses contract governs all conversations between the ProcessExpense service and the SubmitExpense service.The ProcessExpenses contract and the message types that it uses must exist in the databases of all services that have conversations based on this contract.

Hizmet Aracısı gönderilen iletileri depolayan SubmitExpense bu hizmet için sıraya hizmet.The ExpenseSubmission stored procedure receives messages from this queue, processes them, and sends messages to another service if a reply is necessary.

Hizmet Aracısı gönderilen iletileri depolayan ProcessExpense bu hizmet için sıraya hizmet.The ExpenseProcessing stored procedure receives messages from this queue, processes them, and sends messages to another service if a reply is necessary.

Bu iki hizmet arasındaki bir görüşme gibi yapılandırılmış:

  • Bir kullanıcı bir kullanıcı arabirim üzerinden gider geri ödeme isteği gönderir.Uygulama çalışırken ExpenseSubmission saklı yordam, hangi oluşturur bir SubmitExpense ileti.The SubmitExpense service starts a conversation with the ProcessExpense service, then sends the SubmitExpense message to the ProcessExpense service.

  • Hizmet Aracısı alır SubmitExpense için ileti ProcessExpense hizmet ve iletiyi koyar ExpenseQueue sıra.The ExpenseQueue queue activates the ProcessExpense stored procedure, which dequeues and processes the SubmitExpense message.The ProcessExpense stored procedure then creates an AcceptDenyExpense message and sends this message to the SubmitExpense service.Harcama verilmezse, ProcessExpense saklı yordam görüşme sona erer.

  • hizmet Aracısıkoyar AcceptDenyExpense için ileti SubmitExpense servis hizmet için sıraya.If the ProcessExpense procedure ended the conversation, Service Broker puts an EndDialog message on the Expenses queue.Sıra etkinleştirir ExpenseSubmission saklı yordam, dequeues ve işler AcceptDenyExpense ileti.If the ExpenseSubmission stored procedure finds an EndDialog message on the queue, the procedure ends the conversation.

  • Gider kabul edilirse, ProcessExpense hizmet oluşturur ve gönderen bir ReimbursementIssued ileti gider ödeme verilmiş olan ve görüşme sona erer.hizmet AracısıBu iletiler, hizmet için sıraya koyar.Sıra etkinleştirir ExpenseSubmission yordam ve yordam işlemleri ReimbursementIssued ileti.Yordam daha sonra işlemleri EndDialog iletisi ve görüşme sona erer.