Orkestrasi
Orkestrasi adalah proses bisnis yang dapat dieksekusi yang dapat berlangganan (menerima) dan menerbitkan (mengirim) pesan melalui database MessageBox. Selain itu, orkestrasi dapat membuat pesan baru. Pesan diterima menggunakan infrastruktur langganan dan perutean yang dibahas dalam Siklus Hidup Pesan. Saat langganan diisi untuk orkestrasi, instans baru diaktifkan dan pesan dikirimkan, atau dalam kasus langganan instans, instans direhidrasi jika perlu dan pesan kemudian dikirimkan. Ketika pesan dikirim dari orkestrasi, pesan diterbitkan ke MessageBox dengan cara yang sama seperti pesan yang tiba di lokasi penerimaan dengan properti yang sesuai dimasukkan ke dalam database untuk digunakan dalam perutean.
Pesan yang dibangun dalam orkestrasi harus ditempatkan dalam database MessageBox dan direferensikan oleh instans orkestrasi, tetapi tidak boleh diterbitkan karena belum dikirim. Subservice XLANG/dtk melakukan panggilan ke MESSAGE Agent API untuk menyisipkan pesan secara langsung. Ini memungkinkan mesin orkestrasi untuk memasukkan isi pesan ke dalam MessageBox dan mengaitkannya langsung dengan instans orkestrasi yang sedang berjalan. Persistensi pesan yang dibuat dalam database MessageBox dikoordinasikan dengan titik persistensi dalam orkestrasi sebagai pengoptimalan tambahan operasi database.
Konsep dalam orkestrasi yang membuat penerbitan dan berlangganan tampaknya bertindak secara berbeda adalah mengikat. Port orkestrasi adalah port logis yang menjelaskan interaksi. Anda harus mengikat port logis ini ke port fisik sehingga pesan dikirimkan, tetapi proses pengikatan ini tidak lebih dari mengonfigurasi langganan untuk perutean pesan.
Ada empat opsi dasar untuk mengikat port ini:
Tentukan Sekarang (menentukan port langsung dalam orkestrasi)
Tentukan Nanti (menentukan port pada waktu penyebaran)
Menggunakan port pengiriman dinamis tempat alamat diatur dalam kode orkestrasi
Membuat pengikatan langsung dari orkestrasi ke database MessageBox atau ke orkestrasi lain
Saat pengikatan ditentukan pada waktu desain, port fisik yang cocok dengan parameter yang dikonfigurasi dalam orkestrasi dibuat saat orkestrasi disebarkan. Ketika pengikatan dikonfigurasi pada waktu penyebaran, port apa pun yang cocok dengan persyaratan port logis dapat terikat ke port orkestrasi. Untuk pengikatan dinamis, port fisik dibuat sama seperti opsi Tentukan Sekarang, tetapi port adalah port pengiriman dinamis yang tidak memiliki informasi alamat yang dikonfigurasi.
Konsep yang membingungkan adalah bahwa saat port pengiriman dalam orkestrasi terikat ke port pengiriman fisik, ini tidak menghalangi pesan tersebut dikirimkan ke pelanggan lain. Artinya, jika port pengiriman lain kebetulan memiliki langganan, melalui filternya, untuk pesan yang dikirim ke port terikat, keduanya mengirim port menerima pesan. Pengikatan hanya membuat langganan sehingga pesan yang dikirim dari orkestrasi selalu cocok dengan kriteria untuk port pengiriman terikat. Demikian juga, port orkestrasi yang terikat ke port penerima membuat langganan yang sesuai berdasarkan jenis pesan dan menerima ID port. Langganan menjamin bahwa pesan yang masuk dan keluar dari orkestrasi dikirimkan ke port terikat, tetapi pesan masih melalui mekanisme penerbitan dan berlangganan yang sama yang dijelaskan sebelumnya.
Mungkin opsi pengikatan yang paling disalahpahami, dan disalahgunakan atau kurang digunakan adalah opsi Pengikatan langsung. Pengikatan langsung memungkinkan orkestrasi untuk menerbitkan pesan ke database MessageBox dengan berbagai properti perutean seperti pesan diterbitkan oleh lokasi penerima. Dalam pesan langsung sederhana, pesan diterbitkan ke MessageBox dengan properti yang dipromosikan untuk dirutekan seperti pesan lain yang diterbitkan yang diterima ke BizTalk Server. Ini memungkinkan pelanggan mana pun untuk menerima pesan ini, tetapi mengharuskan setidaknya satu pelanggan ada atau orkestrasi akan menerima kesalahan kegagalan perutean.
Opsi lain untuk pengikatan langsung adalah menggunakan port yang berkorelasi sendiri. Port yang berkorelasi sendiri adalah port yang membuat token korelasi unik dan menggunakan token itu saja dalam menghubungkan pesan antar instans. Penggunaan paling umum dari port yang berkorelasi sendiri adalah memanggil atau memulai orkestrasi yang melewati parameter port. Dalam orkestrasi yang disebut, port dapat digunakan untuk mengirim pesan, sementara dalam orkestrasi panggilan port yang sama dapat digunakan untuk menerima pesan. Karena port memiliki token korelasi yang unik, pesan dirutekan kembali ke orkestrasi panggilan. Port korelasi mandiri bertindak sebagai saluran komunikasi privat antara instans orkestrasi.
Opsi terakhir adalah menggunakan orkestrasi mitra di mana, dalam orkestrasi panggilan dan orkestrasi yang disebut, port dikonfigurasi menggunakan jenis port bersama yang sama dan dalam konfigurasi port, port yang sama dipilih. Misalnya, di Orch1 dan Orch2, Orch2.MyDirectPort dipilih. Jenis pengikatan ini menyiapkan langganan untuk orkestrasi penerima berdasarkan jenis orkestrasi pengiriman, nama port, dan nama operasi. Ini sekali lagi memastikan bahwa pesan dirutekan ke instans yang benar.
Semua opsi pesan langsung menggunakan model terbitkan dan berlangganan yang mendasar. Perbedaan antara opsi ini ada di properti yang digunakan untuk membuat langganan dan perutean, dan dalam kasus penggunaan yang membantu mereka menyelesaikannya.
Salah satu masalah umum yang dihadapi saat menggunakan port terikat langsung dalam orkestrasi adalah bahwa orkestrasi dapat menerbitkan pesan yang juga berlangganan. Misalnya, orkestrasi dikonfigurasi untuk diaktifkan oleh pesan PurchaseOrder. Orkestrasi ini menggunakan port langsung untuk menerbitkan pesan PurchaseOrder ke MessageBox. Namun, selain menerima pesan seperti yang diharapkan, instans orkestrasi lain dimulai karena juga memiliki langganan untuk pesan PurchaseOrder. Pemrosesan masuk ke perulangan tanpa akhir dan mungkin perlu waktu bagi pengembang untuk mencari tahu apa yang telah terjadi.
Korelasi dalam orkestrasi adalah mekanisme untuk menerima pesan terkait ke dalam instans orkestrasi yang berjalan sama. Dalam Orkestrasi Designer pengembang mengikuti langkah-langkah umum ini untuk menggunakan korelasi:
Menentukan jenis korelasi yang menyertakan properti yang dipromosikan yang digunakan untuk menghubungkan pesan.
Menentukan set korelasi yang merupakan instans jenis korelasi yang baru saja ditentukan.
Untuk port kirim dan terima, tentukan apakah port tersebut memulai atau mengikuti kumpulan korelasi tertentu.
Langganan instans mulai diputar ketika set korelasi dimulai, karena ini adalah ketika langganan dibuat untuk semua port yang mengikuti korelasi ini diatur untuk menerima pesan. Karena jenis korelasi menentukan properti yang akan digunakan untuk korelasi, mesin orkestrasi dapat mengekstrak properti ini dari pesan yang dikirim atau diterima oleh tindakan memulai. Nilai-nilai ini kemudian digunakan untuk menentukan langganan untuk semua tindakan yang tersisa yang mengikuti kumpulan korelasi ini.
Penting bahwa pesan yang diterima ke BizTalk Server dan dimaksudkan untuk digunakan dalam korelasi memiliki properti yang dipromosikan dengan benar dan dipromosikan ke konteks pesan. Sebagian besar properti dipromosikan ketika komponen pemisah dalam alur mengekstrak nilai saat pesan awalnya diterima. Untuk alasan ini, tidak dimungkinkan untuk menggunakan alur penerima PassThrough untuk menerima pesan yang harus berkorelasi dengan instans orkestrasi yang sedang berjalan. Masalah ini muncul ketika Anda menggunakan adaptor penerima SOAP untuk menerima pesan berkorelasi, karena alur PassThrough adalah nilai default untuk alur penerima saat menggunakan Panduan Penerbitan Layanan Web.