Sambungan dari: Model Perangkat Lunak Swa-Organisasi untuk IoT, Bagian 1/2.
***
Struktur perangkat lunak kompleks muncul tanpa sebuah pengontrol sentral.
Gagasan perangkat lunak swa-organisasi kontras dengan sistem swa-adaptif. Ini karena sistem swa-adaptif sering membutuhkan para manajer adaptasi untuk mengontrol seluruh proses adaptasi di luar model perangkat lunak. Proses ini disebut sebagai adaptasi eksogen.
Sebaliknya, adaptasi dicapai melalui swa-organisasi, dan karena itu terjadi secara murni terdesentralisasi tanpa memerlukan otoritas sentral, pengontrol eksternal, atau pemimpin. Proses ini disebut sebagai adaptasi endogen.
Tidak seperti perangkat lunak swa-adaptif, dalam model perangkat lunak swa-organisasi tidak ada gagasan tentang sistem yang dikelola atau mengelola, karena komponen-komponen, yang termasuk dalam sistem itu sendiri, secara kolaboratif mewujudkan adaptasi dengan munculnya perilaku komputasi.
Seperti perangkat lunak swa-adaptif, ada pemicu adaptasi untuk memulai kemunculan komponen-komponen komposit setelah mendeteksi perturbasi-perturbasi di lingkungan operasi sistem internal atau eksternal. Perturbasi-perturbasi di lingkungan internal termasuk kegagalan sistem dan kinerja suboptimal.
Perturbasi-perturbasi yang ada di lingkungan eksternal termasuk perubahan dalam persyaratan pemangku kepentingan, penskalaan runtime (yaitu penambahan/penghapusan komponen), variasi lingkungan, dan peningkatan beban kerja.
Untuk mengilustrasikan bagaimana komponen perangkat lunak swa-organisasi menangani lingkungan-lingkungan terbuka, perhatikan contoh yang ditunjukkan pada gambar di bawah ini.
Pada waktu t0, 4 komponen berinteraksi untuk memenuhi persyaratan R1, R2, dan R3. Dalam hal ini, hasil dari swa-organisasi adalah perakitan komposit A, B, dan C.
Tiba-tiba, pada waktu t1, persyaratan R3 tidak lagi diperlukan, dan komponen E muncul. Karena persyaratan telah berubah dan komponen E menawarkan kinerja yang lebih baik daripada B, maka komponen-komponen yang ada mengatur diri sendiri untuk menghubungkan C dengan D dan mengganti B dengan E.