Comingle: Pemrograman logika terdistribusi untuk ansambel seluler terdesentralisasi
Oleh Edmund Sl Lam ([email protected]) dan Iliano Cervesato ([email protected]), dengan Ali Elgazar ([email protected])
Pengembang Alumni:
Makalah baru tentang semantik bahasa kami muncul di Simposium Peraturan Web Internasional ke -10 (Ruleml) 2016, dengan Penghargaan Best Paper (http://2016.ruleml.org/awards)
Makalah baru muncul di Konferensi Internasional IEEE ke -11 tentang Komputasi Nirkabel dan Seluler, Jaringan dan Komunikasi (WIMOB2015)
Menambahkan pustaka penginderaan NFC.
Menambahkan prototipe game pesta mafia (saat ini terlihat sedikit jelek, tetapi berhasil! = P Tunggu saja pembaruan!).
Kode Sumber untuk Perpustakaan Android Datang Ditambahkan!
Runtime yang datang baru sekarang bekerja dengan Wifi-Direct serta jaringan area lokal!
Comingle adalah kerangka pemrograman koorindasi untuk mengatur aplikasi yang didistribusikan melalui beberapa perangkat seluler. Perhitungan terdistribusi yang melibatkan banyak pihak ditentukan sebagai program deklaratif tunggal secara ensemble-sentris, bukan dengan cara tradisional-sentris, di mana kode komunikasi terpisah ditulis untuk setiap node yang berpartisipasi.
Comingle sangat dipengaruhi oleh pola gabungan, aturan penanganan kendala dan logika linier, menentukan perhitungan terdistribusi sebagai aturan penulisan ulang di antara berbagai peristiwa. Acara adalah parametrik di lokasi komputasi, mendefinisikan kemampuan Comingle untuk mengekspresikan perhitungan yang terdesentralisasi dalam ansambel perangkat komputasi. Fitur lain termasuk pola pemahaman multiset dan pencocokan pola non-linear. Dalam kombinasi, ini menjadikan Comele bahasa koordinasi yang sangat deklaratif untuk mengatur perhitungan desentralisasi yang kompleks.
Datang terintegrasi dengan aplikasi android melalui mekanisme yang dikenal sebagai pemicu dan aktuator: pemicu memungkinkan aplikasi Android untuk menandakan kejadian acara lokalnya (misalnya, input sentuh, u atau acara aplikasi lainnya) ke semantik penulisan ulang yang datang, sementara aktuator memungkinkan untuk memaksakan untuk memaksakan semantik yang datang kembali, sementara aktuator memungkinkan untuk memaksakan untuk memaksakannya Efek samping pada aplikasi Android (melalui operasi callback) yang terkait dengan peristiwa yang terjadi selama penulisan ulang. Ini berarti bahwa Comle bekerja dengan API Android SDK asli dan tidak memaksa Anda untuk memprogram operasi dan perhitungan lokal secara berbeda (Anda masih memiliki semua yang Anda sukai dan benci tentang menulis aplikasi Android yang mandiri!)
Secara keseluruhan, program yang datang tidak hanya mewakili spesifikasi deklaratif yang mudah dibaca dari ansambel yang terdesentralisasi, mereka dapat dieksekusi dan menyediakan antarmuka intuitif untuk aplikasi Android Anda.
Jika Anda ingin mengetahui teori di balik eksekusi aturan datang yang terdesentralisasi, lihat makalah RuleMl'2016 kami (Paper Terbaik yang Diberikan)
Jika Anda ingin tahu lebih banyak tentang Comele dan bagaimana hal itu terintegrasi dengan Android SDK, lihat laporan teknis atau koordinasi kami.
Jika Anda ingin tahu lebih banyak tentang waktu menyinkronkan acara terdistribusi di Comle, lihat kertas Wimob'2015 kami.
Jika Anda ingin tahu lebih banyak tentang teori di balik penulisan ulang multiset yang terdesentralisasi dengan pola pemahaman, lihat kertas aplas'2014 kami dan kertas PPDP'2013.
Repositori ini berisi salinan kerja dari Comingle Compiler dan Runtime System, serta beberapa contoh untuk membuat Anda mulai datang. Inilah ringkasan apa yang dikandungnya:
Untuk menginstal dan menggunakan Comele, silakan ikuti instruksi 'Memulai' di bawah ini. Jika Anda ingin langsung memutar aplikasi Android, ikuti instruksi dalam file ReadMe di https://github.com/sllam/comment/tree/master/android_apps.
Untuk menjalankan Comingle Compiler dan Code Generator, Anda akan membutuhkan:
Untuk menjalankan kode yang dihasilkan datang, Anda perlu:
Agar kompiler Comingle bekerja, Anda harus pertama -tama harus menjalankan Python 2.7. Selanjutnya, Anda membutuhkan beberapa modul Python non-standar, ply dan z3py. Silakan lanjutkan ke http://www.dabeaz.com/ply/ dan https://github.com/z3prover/z3 untuk mendapatkan sumber masing -masing dan menginstal instruksi.
** Penting! Anda perlu menginstal binding Python Z3. Lihat dokumen di https://github.com/z3prover/z3, khususnya binding Z3 -> Python
Setelah Anda memilikinya, lanjutkan ke https://github.com/sllam/pysetcomp, dan instal:
pysetcomp $ sudo python setup.py install
Selanjutnya Anda memerlukan kompiler MSRE, lanjutkan ke https://github.com/sllam/msre, dan instal hanya kompilernya:
MSRE $ CD Compiler/MSREX
msre/compiler/msrex $ sudo python setup.py install
Anda hampir diatur, Anda sekarang harus dapat mengatur dan menginstal kompiler Comele, lakukan ini dengan menjalankan file Make:
datang $ sudo membuat instal
Ini akan melakukan hal berikut:
Untuk menguji datang, buka contoh direktori dan coba:
Contoh $ CD COMESTLE
datang/contoh $ cmgc dragracing.cmg
Anda akan melihat banyak output, dan mudah -mudahan, tidak ada pesan kesalahan. Jika berhasil berjalan, Anda akan melihat direktori 'Dragracing' dengan file sumber Java 'dragracing.java'. Kelas Java ini mengimplementasikan runtime yang datang yang ditentukan oleh program Comele 'dragracing.cmg'. Lihat Proyek Eclipse di https://github.com/sllam/comingle/tree/master/android_apps/ComeLEDRAGRACING untuk contoh bagaimana runtime datang ini dapat diperintahkan dengan game Android yang sebenarnya.
Jika Anda mengalami kesalahan dalam salah satu langkah di atas ... silakan hubungi saya (Edmund) di [email protected]. Juga terima maaf saya, prototipe yang datang masih dalam proses, tetapi saya bekerja keras untuk membawanya ke keadaan yang stabil dan lebih bermanfaat! =)
Terima kasih khusus untuk berikut ini: