Jawaban:
Teknologi dasar seperti (XML, SOAP, WSDL) menyediakan sarana untuk menggambarkan, menemukan, dan memohon layanan sebagai entitas dengan haknya sendiri. Namun, teknologi ini tidak memberikan detail perilaku yang kaya tentang peran layanan dalam kolaborasi yang lebih kompleks. Kolaborasi ini mencakup urutan kegiatan dan hubungan antar kegiatan, yang membangun proses bisnis. Ada dua cara untuk membangun proses ini: orkestrasi layanan dan koreografi layanan.
Orkestrasi layanan merupakan proses bisnis tunggal yang dapat dieksekusi terpusat (orkestrator) yang mengoordinasikan interaksi antara berbagai layanan. Orkestrator bertanggung jawab untuk memohon dan menggabungkan layanan.
Hubungan antara semua layanan yang berpartisipasi dijelaskan oleh titik akhir tunggal (yaitu, layanan komposit). Orkestrasi meliputi pengelolaan transaksi antara layanan individual. Orkestrasi menggunakan pendekatan terpusat untuk komposisi layanan.
Koreografi layanan adalah deskripsi global dari layanan yang berpartisipasi, yang ditentukan oleh pertukaran pesan, aturan interaksi dan perjanjian antara dua atau lebih titik akhir. Koreografi menggunakan pendekatan desentralisasi untuk komposisi layanan.
Koreografi menggambarkan interaksi antara beberapa layanan, di mana orkestrasi mewakili kontrol dari perspektif satu pihak. Ini berarti bahwa koreografi berbeda dari orkestrasi sehubungan dengan di mana logika yang mengontrol interaksi antara layanan yang terlibat harus berada.
Orkestrasi layanan : Anda mengumpulkan beberapa layanan dengan logika tetap. Logika ini dijelaskan di satu tempat. Anda dapat membayangkan tim orang dengan manajer melakukan manajemen mikro. Manajer dengan cepat memberi tahu apa, kapan dan siapa yang harus dilakukan. Anggota tim tidak peduli dengan seluruh tujuan pekerjaan, manajer menggabungkan output menjadi satu hasil. Contoh praktis adalah proses BPEL. Proses BPEL mengandung logika, dapat memanggil beberapa layanan dan menggabungkan respons mereka menjadi satu respons layanan.
Koreografi layanan : logika keputusan didistribusikan, tanpa titik terpusat. Anda dapat membayangkan sebuah rumah, di mana semua orang bertujuan untuk kebaikan bersama dan bekerja secara proaktif tanpa manajemen mikro. Atau Anda dapat membayangkan tubuh manusia, di mana anggota yang berbeda saling bergantung dan bekerja untuk tujuan bersama. Contoh praktisnya adalah pemrosesan yang didorong oleh peristiwa, di mana agen diaktifkan oleh suatu peristiwa dan melakukan tugasnya. Semua agen membuat sistem bersama. Tidak ada logika terpusat. Kemungkinan koreografi mungkin lebih jauh dari orkestrasi karena lebih selaras dengan dunia nyata.
Pendapat saya adalah bahwa kita tidak perlu membedakan banyak di antara keduanya, karena kita perlu fokus pada logika bisnis. Di mana satu titik logika bekerja, kami melakukan orkestrasi. Di mana masalah tidak dapat ditutupi oleh logika terpusat, kami terpaksa melakukan koreografi. Itulah sebabnya kita sering menemukan orkestrasi dalam IT, sedangkan koreografi tetap lebih merupakan konsep akademis dan subjek penelitian. Dan sangat sering kita melakukan koreografi tanpa benar-benar menyadarinya, seperti di dunia nyata.
Layanan dapat dibedakan antara layanan atom dan layanan yang terdiri dari layanan lain. Komposisi semacam itu disebut "orkestrasi". Terkadang alur kerja, terkadang proses bisnis. Misalnya, BPEL adalah bahasa orkestrasi, tetapi menyebut dirinya "bahasa eksekusi proses bisnis".
Tidak ada persyaratan bahwa layanan perlu disusun secara hierarkis. Itu berarti, dua layanan dapat berbicara satu sama lain. Protokol yang berjalan di antara mereka disebut "koreografi". Mungkin ada dua layanan, tetapi biasanya, ada lebih dari dua layanan yang terlibat. Setiap layanan dalam koreografi dapat dilihat sebagai orkestra dari layanan mitra. Setiap layanan yang mengambil bagian dalam koreografi dapat diwujudkan sebagai orkestrasi / alur kerja / proses.
Orkestrasi menunjukkan perilaku lengkap dari setiap layanan sedangkan koreografi menggabungkan deskripsi perilaku antarmuka dari setiap layanan.
Artikel ilmiah yang baik membedakan koreografi, perilaku antarmuka, perilaku penyedia, dan orkestrasi adalah yang berikut: Dijkman, R. & Dumas, M. Desain berorientasi layanan: Pendekatan Multi-sudut pandang Jurnal Internasional Sistem Informasi Koperasi, 2004, 13, 337-368
Karena utas sudah tua tetapi masih menulis untuk mereka yang akan tersandung di sini untuk mencari pertanyaan ini seperti yang saya lakukan. Ini adalah pertanyaan yang banyak diperdebatkan dalam arsitektur berorientasi layanan (SOA) yang membutuhkan penjelasan lebih bersih untuk pemula.
Orkestrasi: Proses Eksekusi
Koreografi: Kolaborasi Multi-partai
Sebaliknya, koreografi tidak bergantung pada koordinator pusat. Sebaliknya, setiap layanan Web yang terlibat dalam koreografi tahu persis kapan harus menjalankan operasinya dan dengan siapa berinteraksi. Koreografi adalah upaya kolaboratif yang berfokus pada pertukaran pesan dalam proses bisnis publik.
Semua peserta dalam koreografi perlu mengetahui proses bisnis, operasi untuk dieksekusi, pesan untuk dipertukarkan, dan waktu pertukaran pesan.
Koreografi vs. Orkestrasi
Dari perspektif menyusun layanan Web untuk menjalankan proses bisnis, orkestrasi adalah paradigma yang lebih fleksibel dan memiliki keunggulan sebagai berikut dibandingkan dengan koreografi:
Koordinasi proses komponen dikelola secara terpusat oleh koordinator yang dikenal.
Layanan web dapat dimasukkan tanpa mereka sadari bahwa mereka mengambil bagian dalam proses bisnis yang lebih besar.
Andrei dan yang lainnya melakukan pekerjaan dengan baik menjelaskan apa itu orkestrasi dan apa itu koreografi. Untuk arsitek perangkat lunak yang memilih antara dua alternatif ini, penting juga untuk membandingkannya dengan kualitas yang berbeda.
Orkestrasi ditambah lebih dari koreografi
Koreografi ditambah lebih dari orkestrasi
Kinerja: Orkestrasi mengeluarkan overhead kinerja karena interpretasi skrip alur kerja dan lapisan tambahan platform orkestrasi itu sendiri.
Biaya: Koreografi tidak memerlukan middleware atau bahasa tambahan, yang terkait dengan kurva pembelajaran dan beban tata kelola.
Solusi orkestrasi dapat memperkenalkan SPOF jika elemen orkestra tidak menggunakan mekanisme untuk ketersediaan tinggi. Terima kasih @Deepak por menunjukkan ini dalam komentar.
Menurut saya koreografi sangat cocok untuk organisasi yang sangat terdesentralisasi. Anda tidak memerlukan pelaksana proses bisnis utama. Ini memfasilitasi pertumbuhan dan pengembangan independen oleh masing-masing sub-unit organisasi.
(Saya berlangganan interpretasi pertanyaan orkestrasi vs. koreografi ini: http://geekexplains.blogspot.com/2008/07/ways-of-combining-web-services.html )
Orkestrasi berguna ketika Anda memiliki kontrol atas semua aktor dalam suatu proses - ketika mereka semua berada dalam satu domain kontrol dan Anda dapat menentukan alur kegiatan. Ini tentu saja paling sering ketika Anda menentukan proses bisnis yang akan diberlakukan dalam satu organisasi yang Anda kontrol.
Koreografi adalah cara untuk menentukan bagaimana dua pihak atau lebih - tidak ada yang memiliki kontrol atas proses pihak lain, atau mungkin visibilitas proses tersebut - dapat mengoordinasikan kegiatan dan proses mereka untuk berbagi informasi dan nilai. Gunakan koreografi saat koordinasi lintas domain kontrol / visibilitas diperlukan. Anda bisa memikirkan koreografi, dalam skenario sederhana, seperti protokol jaringan. Ini menentukan pola permintaan dan tanggapan yang dapat diterima antara para pihak.
Cara lain untuk melihat Orkestrasi Layanan vs. Koreografi:
- Layanan Orkestrasi: Sekitar Domain Bisnis.
- Koreografi Layanan: Di antara banyak Domain Bisnis.
Dalam orkestrasi, ada konduktor dan ada pemain instrumen. Pemain bermain sesuai dengan bagaimana konduktor melakukan. Jika konduktor diganti, ekspresi harmonik akan berbeda yaitu masih bermain (layanan) yang sama tetapi dengan hasil yang berbeda. Misalnya, untuk memberikan proposal pengaturan keuangan, layanan orkestrasi akan melakukan dengan meminta (meminta) setiap pemain (entitas atau layanan utilitas, misalnya pemeriksaan kredit) untuk bermain (mengembalikan hasil atau menyesuaikan / memperbarui permainannya) sesuai dengan templat konduktor (bisnis aturan). Dalam koreografi, ada koreografer dan ada kelompok penari. Koreografi adalah arah, tetapi setiap kelompok penari mandiri dalam cara mewujudkan arah itu.