Bagaimana model aktor digunakan?

18

Saya telah membaca sedikit tentang model aktor, tetapi tidak benar-benar mengerti bagaimana menggunakan aktor dalam situasi dunia nyata - bagaimana membuat model masalah dengan mereka.

Bisakah seseorang tolong jelaskan? Contoh sederhana atau tautan ke contoh akan sangat dihargai.

Pnutus
sumber
Atau maksud Anda model aktor ?
back2dos
Saya menduga maksud Anda Agen, bukan Aktor. Jika demikian, lihat entri wikipedia ini: en.wikipedia.org/wiki/Software_agent
DwB
1
Mereka membintangi Green Lantern dan Planet of the Apes untuk menghibur para Geeks di /. Pada gilirannya, Geeks di /. menghibur kita semua.
Pekerjaan
Maksud saya model aktor, dan telah memperbarui posting saya untuk menjelaskan.
Pnutus

Jawaban:

21

Aktor, dalam arti aksi pemodelan, dengan pesan, dll adalah cara pemodelan perangkat lunak yang menyediakan beberapa item berguna ...

  1. Aktor dapat hidup di utas tunggal, memungkinkan operasi non-utas / non-konkurensi terjadi tanpa sekelompok sihir penguncian. Seorang aktor akan merespons pesan di kotak masuknya. Ketika Anda ingin memproses perintah, Anda mengirimnya pesan dan itu akan menangani mereka dalam urutan yang diterima. Sama seperti antrian normal. Thread aman adalah pembunuh di sini, dan saya menggunakan ini di sejumlah proyek open source tempat saya bekerja.

  2. Dalam beberapa bahasa, Scala misalnya, mudah untuk mengubah kode berbasis aktor dalam satu proses menjadi sistem terdistribusi dengan memecah aktor dan mengubah saluran yang mereka komunikasikan menjadi saluran jarak jauh. Ini mengubah antara implementasi tentang betapa mudahnya, tetapi ini adalah fitur yang luar biasa.

  3. Membantu fokus pada acara Berbasis Tugas daripada acara CRUD. CRUD sederhana tetapi itu seperti berinteraksi dengan lemari arsip. Jika kita dapat memberikan nilai lebih dari itu dalam perangkat lunak yang kita hasilkan, mengapa kita melakukannya? Mengikat beberapa tindakan ke satu perintah "Pembaruan" dalam sistem berbasis tugas lebih berguna daripada hanya menyimpan ke DB. Ini juga masuk ke hal-hal seperti CQRS.

Travis
sumber
Terima kasih atas jawaban dan tautan bermanfaat Anda. Bahasa apa yang akan Anda rekomendasikan mulai Anda lihat untuk merasakan aktor yang lebih baik?
Pnutus
1
Saya pikir itu tergantung pada bahasa apa yang Anda sukai. Scala mungkin memiliki beberapa dokumentasi terbaik di sekitar aktor, karena mereka adalah konsep bahasa. Erlang memang luar biasa untuk olahpesan pada umumnya, seluruh bahasa didasarkan pada konsep itu.
Travis
Saya akan melihat Scala dan Erlang. Ditemukan ini panduan pemula untuk Erlang, akan mulai dari sana. Terima kasih!
Pnutus
+1: Sangat menarik. Apakah Anda tahu jika ada pustaka C ++ yang mengimplementasikan aktor jarak jauh? Saya akan senang menggunakan Scala tetapi proyek saya ada di C ++.
Giorgio
1
Pertimbangkan implementasi C ++ Actor Model ini: actor-framework.org
Chen OT
4

Jawaban Travis solid. Ketika Anda mulai berbicara tentang konkurensi, Anda mencoba menyelesaikan masalah sumber daya. Konkurensi dengan utas dan kunci cukup mudah dilakukan salah. Model aktor membantu memaksa Anda memprogram bagian-bagian konkuren kode Anda sebagai nugget lengkap yang dapat dilakukan secara paralel dan tanpa tergantung pada bagian kode lainnya. Anda mencoba menghindari nastiness seperti kondisi balapan dan kebuntuan.

Aktor seperti Anda dan saya dalam percakapan ini. Anda tidak bisa menjangkau otak saya dan memilih apa yang saya ketikkan. Anda memberikan saya pesan yang mengatakan, "Mengapa kita ada?" Saya duduk dan menghitung beberapa angka dan mengirim balasan, "Saya rasa, oleh karena itu saya." Anda tidak bisa mengatakan apa yang saya lakukan pada potongan planet Bumi saya sendiri. Satu-satunya kontak yang Anda miliki dengan saya adalah melalui pesan yang kami bolak-balik.

EDIT:

Anda tidak mengatakan bahasa apa yang membuat Anda nyaman, tetapi melihat apakah ada implementasi aktor dalam bahasa Anda. Mungkin yang paling sederhana adalah beberapa lib aktor dengan python. Tapi mungkin yang lebih baik untuk belajar adalah Erlang. Bahasanya sedikit kasar tetapi setelah Anda mengatasi nuansa, itu adalah bahasa yang baik.

M15K
sumber
Saya tidak yakin apakah suntikan nyamuk diarahkan ke saya, tetapi senjata pilihan saya biasanya cenderung Haskell. Erlang jelas merupakan bahasa yang baik. Haskell secara tradisional mengandalkan CSP untuk konkurensi, tetapi ada beberapa implementasi aktor di luar sana.
M15K
-2

Aktor adalah elemen diagram use case yang mewakili entitas eksternal (pengguna, sistem eksternal, dll.) Yang dapat bertindak pada suatu sistem. Setiap kasus penggunaan dasar akan berisi aktor - cukup google "kasus penggunaan" untuk banyak contoh.

afeygin
sumber
6
Bukankah itu disebut tongkat ?
pembuat pil
1
Saya tidak jelas dan Anda salah paham. Saya sedang berbicara tentang model aktor.
Pnutus