Bagikan melalui


Apa yang Dilakukan Service Broker?

Berlaku untuk: SQL Server Azure SQL Managed Instance

Service Broker membantu pengembang membangun aplikasi asinkron dan digabungkan secara longgar di mana komponen independen bekerja sama untuk menyelesaikan tugas. Komponen aplikasi ini bertukar pesan yang berisi informasi yang diperlukan untuk menyelesaikan tugas. Topik ini menjelaskan aspek-aspek Service Broker berikut:

  • Percakapan

  • Pengurutan dan koordinasi pesan

  • Pemrograman asinkron transaksional

  • Dukungan untuk aplikasi yang digabungkan secara longgar

  • Komponen Service Broker

Percakapan

Service Broker dirancang di sekitar fungsi dasar pengiriman dan penerimaan pesan. Setiap pesan membentuk bagian dari percakapan. Setiap percakapan adalah saluran komunikasi yang andal dan persisten. Setiap pesan dan percakapan memiliki jenis tertentu yang diberlakukan Service Broker untuk membantu pengembang menulis aplikasi yang andal.

Pernyataan Transact-SQL baru memungkinkan aplikasi mengirim dan menerima pesan ini dengan andal. Aplikasi mengirim pesan ke layanan, yang merupakan nama untuk sekumpulan tugas terkait. Aplikasi menerima pesan dari antrean, yang merupakan tampilan tabel internal.

Pesan untuk tugas yang sama adalah bagian dari percakapan yang sama. Dalam setiap percakapan, Service Broker menjamin bahwa aplikasi menerima setiap pesan tepat sekali, dalam urutan pesan dikirim. Program yang menerapkan layanan dapat mengaitkan percakapan terkait untuk layanan yang sama dalam grup percakapan.

Keamanan berbasis sertifikat membantu Anda melindungi pesan sensitif dan mengontrol akses ke layanan. Analoginya adalah menganggap Service Broker seperti layanan pos. Untuk mengadakan percakapan dengan kolega yang jauh, Anda dapat berkomunikasi dengan mengirim surat melalui layanan pos. Layanan pos mengurutkan dan mengirimkan surat. Anda dan kolega Anda kemudian mengambil surat dari kotak surat Anda, membacanya, menulis respons, dan mengirim surat baru hingga percakapan berakhir. Pengiriman surat terjadi secara asinkron saat Anda dan kolega Anda menangani tugas lain.

Dua pengguna bertukar email melalui layanan pos.

Program dapat menggunakan Service Broker seperti layanan pos untuk mendukung percakapan asinkron dengan program lain. Pesan Service Broker berfungsi seperti huruf. Layanan Service Broker adalah alamat di mana kantor pos mengirimkan surat-surat. Antrean adalah kotak surat yang menahan huruf setelah dikirimkan. Aplikasi menerima pesan, bertindak berdasarkan pesan, dan mengirim respons.

Ketika aplikasi mengirim pesan ke layanan Service Broker, aplikasi diisolasi dari detail implementasi aplikasi di akhir percakapan lainnya. Aplikasi penerima dapat dikonfigurasi ulang secara dinamis atau diganti dengan kode baru tanpa memengaruhi aplikasi pengirim. Aplikasi penerima bahkan dapat dimatikan sementara; satu-satunya dampaknya adalah Service Broker terus menambahkan pesan baru ke antrean hingga aplikasi penerima dimulai ulang.

Pengurutan dan Koordinasi Pesan

Service Broker menangani antrean, teknik pemrograman database umum, berbeda dari produk tradisional dalam dua hal utama:

  • Antrean Service Broker diintegrasikan ke dalam database.

  • Antrean mengoordinasikan dan memesan pesan terkait.

Antrean terintegrasi berarti bahwa pemeliharaan dan administrasi database reguler juga mencakup Service Broker. Biasanya administrator tidak memiliki tugas pemeliharaan rutin yang terkait dengan Service Broker.

Kerangka kerja Service Broker menyediakan antarmuka Transact-SQL sederhana untuk mengirim dan menerima pesan yang dikombinasikan dengan serangkaian jaminan kuat untuk pengiriman dan pemrosesan pesan. Service Broker menjamin bahwa program menerima setiap pesan dalam percakapan tepat sekali dalam urutan pesan dikirim, bukan urutan pesan yang memasukkan antrean. Produk antrean tradisional menyediakan pesan dalam urutan pesan memasuki antrean. Ini memerlukan aplikasi untuk menentukan urutan dan pengelompokan pesan. Service Broker menjamin bahwa dua pembaca antrean tidak dapat memproses pesan secara bersamaan dari percakapan yang sama atau grup percakapan terkait yang sama.

Setiap percakapan Service Broker memiliki dua sisi. Sisi yang memulai percakapan disebut inisiator; sisi lain disebut target. Setiap sisi memiliki layanan; layanan inisiator dan layanan target. Setiap layanan memiliki antrean pesan terkait.

Berikut ini menggambarkan pertukaran pesan dalam percakapan dialog umum:

  • Di inisiator:

  • Sebuah program memulai percakapan.

  • Program ini membangun pesan yang berisi data yang diperlukan untuk melakukan tugas.

  • Program mengirimkan pesan ke layanan target.

  • Pada target:

    • Pesan ditempatkan dalam antrean yang terkait dengan layanan target.

    • Program menerima pesan dari antrean dan melakukan pekerjaan.

    • Program merespons dengan mengirim pesan ke layanan inisiator.

  • Di inisiator:

    • Pesan respons ditempatkan dalam antrean yang terkait dengan layanan inisiator.

    • Program menerima respons dan memprosesnya.

Siklus ini berulang sampai inisiator mengakhiri percakapan karena tidak memiliki lebih banyak permintaan untuk dikirim ke target.

Service Broker mendukung pengaturan prioritas dari 10 (tinggi) hingga 1 (rendah) untuk setiap percakapan. Ini memastikan bahwa pekerjaan berprioritas rendah tidak memblokir pekerjaan prioritas yang lebih tinggi. Sistem Service Broker dapat dikonfigurasi untuk menawarkan berbagai tingkat layanan. Untuk informasi selengkapnya, lihat Prioritas Percakapan.

Service Broker menangani tugas paling sulit yang terlibat dalam menulis aplikasi olahpesan. Tugas-tugas sulit ini termasuk koordinasi pesan, pengiriman pesan yang andal, penguncian, dan pembaca antrean awal. Ini memungkinkan pengembang database berkonsentrasi pada cara menyelesaikan masalah bisnis.

Pemrograman Asinkron Transaksional

Dalam infrastruktur Service Broker, pengiriman pesan antara aplikasi bersifat transaksional dan asinkron. Karena olahpesan Service Broker bersifat transaksi, jika transaksi kembali, semua operasi Service Broker dalam transaksi digulung balik. Ini termasuk operasi kirim dan terima. Dalam pengiriman asinkron, Mesin Database menangani pengiriman saat aplikasi terus berjalan. Untuk meningkatkan skalabilitas, Service Broker menyediakan mekanisme untuk memulai program secara otomatis yang memproses antrean ketika ada pekerjaan yang berguna untuk dilakukan program. Untuk informasi selengkapnya, lihat Aktivasi Broker Layanan.

Pemrograman asinkron membantu pengembang menulis aplikasi yang menggunakan antrean. Banyak aplikasi database menyertakan tabel yang berfungsi sebagai antrean pekerjaan yang akan dicapai sebagai sumber daya yang memungkinkan. Antrean dapat memberikan dua manfaat untuk aplikasi database:

  • Aplikasi dapat merespons pengguna interaktif segera setelah menempatkan permintaan kerja mereka dalam antrean. Aplikasi tidak perlu menunggu semua pekerjaan yang terkait dengan permintaan selesai sebelum merespons. Permintaan yang diantrekan diproses saat sumber daya tersedia. Ini memungkinkan database tetap responsif untuk pengguna interaktif dan secara efisien menggunakan sumber daya yang tersedia.

  • Pekerjaan yang terlibat dalam satu permintaan terkadang dapat dibagi menjadi beberapa unit pekerjaan yang diproses sebagai transaksi terpisah. Dalam hal ini, aplikasi database dapat meluncurkan setiap unit kerja dengan menempatkan permintaan dalam antrean. Service Broker memperluas ide ini, memungkinkan aplikasi menyebarkan pekerjaan di beberapa instans Service Broker di komputer terpisah.

Aplikasi pengkodan untuk mengurutkan dan memproses item dengan benar dalam antrean sering kali rumit. Pengembang dapat menggunakan fungsionalitas Service Broker yang disertakan dalam Mesin Database untuk menyederhanakan pengkodian yang diperlukan agar berhasil menerapkan antrean database.

Dukungan untuk Aplikasi yang Digabungkan Secara Longgar

Service Broker mendukung aplikasi yang digabungkan secara longgar. Aplikasi yang digabungkan secara longgar terdiri dari beberapa program yang mengirim dan menerima pesan secara independen satu sama lain. Aplikasi tersebut harus berisi definisi yang sama untuk pesan yang ditukar, dan harus menentukan struktur keseluruhan yang sama untuk interaksi antara layanan. Namun, aplikasi tidak perlu berjalan pada saat yang sama, berjalan dalam instans SQL Server yang sama, atau berbagi detail implementasi. Aplikasi tidak perlu mengetahui lokasi fisik atau implementasi peserta lain dalam percakapan.

Komponen Service Broker

Service Broker memiliki tiga jenis komponen:

  • Komponen percakapan. Grup percakapan, percakapan, dan pesan membentuk struktur run-time aplikasi Service Broker. Aplikasi bertukar pesan sebagai bagian dari percakapan. Setiap percakapan adalah bagian dari satu grup percakapan, dan grup percakapan bisa berisi beberapa percakapan. Setiap percakapan Service Broker adalah dialog. Dialog adalah percakapan di mana tepatnya dua peserta bertukar pesan. Untuk informasi selengkapnya tentang komponen percakapan, lihat Arsitektur Percakapan.

  • Komponen definisi layanan. Ini adalah komponen waktu desain yang menentukan struktur dasar percakapan yang digunakan aplikasi. Mereka menentukan jenis pesan untuk aplikasi, alur percakapan untuk aplikasi, dan penyimpanan database untuk aplikasi. Untuk informasi selengkapnya tentang komponen definisi layanan, lihat Arsitektur Layanan.

  • Komponen jaringan dan keamanan. Komponen-komponen ini menentukan infrastruktur yang digunakan untuk bertukar pesan antar instans Mesin Database. Untuk membantu administrator database mengelola perubahan lingkungan, Service Broker memungkinkan administrator mengonfigurasi komponen ini secara independen dari kode aplikasi. Untuk informasi selengkapnya tentang jaringan dan komponen keamanan, lihat Jaringan dan Keamanan Jarak Jauh.

Komponen definisi layanan, komponen jaringan, dan komponen keamanan adalah bagian dari metadata untuk database dan instans SQL Server. Grup percakapan, percakapan, dan pesan adalah bagian dari data yang dimuat database.

Lihat juga