Bahasa XLANG-s
XLANG dirancang untuk menggunakan standar Internet seperti XML, XSD, dan Web Services Description Language (WSDL), dan telah menyematkan dukungan untuk bekerja dengan . Objek dan pesan berbasis NET. XLANG dapat dilihat sebagai bahasa olahpesan dengan beberapa kemampuan ekspresi C#. Namun, kode tidak portabel antara XLANG/dtk dan C#.
XLANG mendorong pemisahan yang jelas antara proses dan implementasi. Misalnya, proses atau protokol bisnis ditentukan dalam XLANG/dtk, dan aspek lokal aplikasi, seperti akses database, diimplementasikan dalam bahasa pemrograman .NET lainnya seperti C# atau Visual Basic.NET.
Sintaks penugasan dan ekspresi XLANG/s dimodelkan setelah C#, dan Anda harus mereferensikan spesifikasi C# untuk sintaks yang tepat. XLANG mendefinisikan serangkaian konstruksi tingkat tinggi yang kaya yang digunakan untuk menentukan proses bisnis. Meskipun XLANG/dtk menyediakan dukungan untuk jenis data tingkat rendah seperti string dan bilangan bulat, jenis data tingkat tinggi juga ditentukan: pesan, port, korelasi, dan tautan layanan. Jenis data ini digunakan untuk menentukan semantik yang terkait dengan proses bisnis secara ketat, dan dilengkapi dengan pernyataan kontrol proses seperti sementara atau cakupan.
Pernyataan XLANG/dtk umumnya termasuk dalam salah satu dari dua kategori: pernyataan sederhana yang bertindak sendiri, seperti menerima atau mengirim, dan pernyataan kompleks yang berisi atau mengelompokkan pernyataan sederhana atau pernyataan kompleks lainnya, seperti cakupan, paralel, dan mendengarkan. Semantik yang diwujudkan dalam XLANG/dtk adalah cerminan dari yang ditentukan dalam spesifikasi Business Process Execution Language for Web Services (BPEL4WS) yang diterbitkan oleh Microsoft, IBM, dan BEA untuk definisi semantik proses bisnis.
Memahami konstruksi utama XLANG/dtk bersifat opsional karena diproduksi sebagai hasil dari menggambar diagram orkestrasi di BizTalk Orchestration Designer. Orkestrasi Designer adalah alat grafis yang kaya untuk merancang proses bisnis secara visual. Ini menghasilkan file XLANG/dtk yang memiliki ekstensi .odx dan berisi informasi visual tambahan di header dan informasi atribut kustom dalam isinya.
Catatan
Bahasa XLANG/dtk bersifat kepemilikan dan tidak sepenuhnya di dokumentasikan. Bagian ini memaparkan bagian tertentu dari bahasa yang mungkin perlu Anda waspadai saat mengembangkan orkestrasi Anda. Modifikasi langsung file .odx tidak didukung.
Program XLANG/s paling sederhana mengharuskan jenis pesan ditentukan, yang memberikan orkestrasi beberapa data untuk mulai dikerjakan. Orkestrasi menerima pesan melalui port lalu berakhir. Kode berikut adalah contohnya:
module HelloWorldApp
{
private porttype ptPOReceive
{
oneway opPOReceive
{
HelloWorldApp.PurchaseOrder
}
}
private porttype ptPOSend
{
oneway opPOSend
{
HelloWorldApp.PurchaseOrder
}
}
private service HelloWorld
{
port implements HelloWorldApp.ptPOReceive poPOReceive;
port uses HelloWorldApp.ptPOSend poPOSend;
message HelloWorldApp.PurchaseOrder msgPO;
body ()
{
activate receive (poPOReceive.opPOReceive, msgPO);
send (poPOSend.opPOSend, msgPO);
}
}
}
Dalam program XLANG/dtk sebelumnya, module
kata kunci mendefinisikan unit kompilasi untuk program XLANG/s. Semua jenis yang digunakan dalam program—seperti porttype, correlationsettype, servicelinktype, dan messagetype—terlingkup pada tingkat ini.
Port adalah konstruksi bahwa XLANG/dtk dapat mengirim atau menerima pesan ke atau dari, dan port memiliki jenis yang ditentukan yang disebut porttype. Konstruksi porttype mendefinisikan kumpulan operasi yang dapat digunakan pada port. Operasi ini menentukan satu pertukaran pesan yang valid melalui port. Dalam menentukan konstruksi porttype, messagetype, servicelinktype, atau correlationsettype , penulis program XLANG pada dasarnya membuat definisi jenis data yang kompleks. Definisi ini memiliki keuntungan yang sama seperti jenis data kompleks dalam bahasa lain: Mereka mengabstraksi gagasan yang diwujudkan dalam jenis data ke tingkat yang lebih tinggi, dan memungkinkan penggunaan kembali jenis data dengan mudah.
Port ptPOReceive dalam modul HelloWorldApp sebelumnya didefinisikan dengan operasi port penerima satu arah, opPOReceive. Blok HelloWorld layanan mendefinisikan implementasi aktual dari proses dan variabel apa pun yang dapat digunakannya, termasuk variabel port dan pesan. Tiga baris kode pertama dalam blok ini menentukan variabel port poPOReceive dan poPOSend dan pesan msgPO masing-masing. Isi berisi kode yang menjelaskan parameter ke layanan dan perilaku eksekusi. Semua variabel, kecuali didefinisikan dengan blok cakupan berlapis, dilingkup ke tingkat ini. Pernyataan terima, yang merupakan penerima aktivasi, menerima pesan msgPO dari port poPOReceive.opPOReceive dan membuat instans baru orkestrasi. Setelah pesan diterima, pernyataan kirim mengarahkan pesan ke port kirim. Dalam dua deklarasi port dalam kode sebelumnya, poPOReceive menggunakan pengubah implement, sedangkan poPOSend menggunakan pengubah penggunaan. Pengubah implementasi memberi tahu runtime yang akan menerima pesan melalui port tersebut. Pengubah menggunakan memberi tahu runtime bahwa ia akan mengirim pesan melalui port tersebut.