Aktif Nesne Nedir?

Bilgisayar programlama ve mühendislikte aktif nesne, bazı servislerin her zaman çok parçalı veya eşzamanlı bir sistemde mevcut olmasını sağlamak için kullanılabilecek bir tasarım deseni türüdür. Aktif nesne, bir mekanizmayı uygulayan bir nesnedir, böylece harici nesneleri yürütme işleminin tamamlanmasını beklemeye zorlamadan harici nesnelerden girdi alabilir ve işleyebilir. Bu mekanizma aynı zamanda, eşzamanlı işlemlerin durması ve erişim için beklemesi gereken uzun engelleme süreleri olmadan, aktif nesneleri kullanmak için eşzamanlı olarak çalışan birçok nesneye izin verir. Bu en sık olarak, aktif nesneleri proxy adı verilen halka açık bir arayüze sarmak ve sonra nesnelerin içine bir tür kuyruk sistemi uygulamak ve böylece mesajların daha sonraki işlemler için saklanmasıyla başarılmaktadır. Bu, nesnelerin aktif nesnelere mesaj gönderdiği ve daha sonra aktif nesne mesajı işleyene ve sonuçların çağıran nesnelerini bilgilendirdiği için durumlarını buna göre güncelleyebilecekleri şekilde işleme devam eden bir tasarım deseni oluşturur.

Aktif nesne tasarım modelinin dışında, normal nesne pasif nesne olarak adlandırılabilir. Basit bir program örneğinde, pasif bir nesne, uzak nesnelerin sunucudaki herkese bir mesaj iletmek için pasif nesneyle temas ettiği bir sohbet sunucusu rölesi olarak görev yapabilir. Pasif sunucu nesnesi uzaktaki bir nesneden bir sohbet mesajı aldığında, isteği hemen ele almalı ve ardından hemen çıkış göndermelidir, tümü uzak nesne işlem yapılıncaya kadar kendi yürütmesini durdurduğunda, engelleme olarak bilinen bir etki yaratır. Program içinde farklı iş parçacıkları oluşturmak, yürütme engelleme sorununu çözebilir ancak daha sonra senkronizasyon ile ilgili sorunları başlatır.

Aktif nesne tasarım modelinde, yukarıdaki örnekteki aynı sunucu nesnesi, diğer nesnelerden ayrı kendi iş parçacığında çalışıyor olacaktır. Ayrıca, bazen ana program yürütme iş parçacığı olan ayrı bir iş parçacığında da çalışan proxy olarak bilinen bir tür arabirime sarılır. Uzak bir nesne sunucu nesnesinin bir sohbet mesajı göndermesini istediğinde, proxy nesnesine temas eder, gereken tüm bilgileri iletir ve sonra beklemek yerine normal yürütme durumuna döner.

Proxy arayüzü daha sonra uzak nesneden gelen bilgiyi aktif nesnenin işlemesi için bir kuyruğa ilettiği bir mesaja dönüştürür. Bu noktada, hem proxy arayüzü hem de uzak nesne yürütülmeye devam etmek için serbesttir ve engellenmez. Bu arada, aktif nesne her gelen mesajı işleyerek sırayı boş tutmaya çalışır. Çağıran nesne, aktif nesne tarafından bazı bilgilerin geri gönderilmesini gerektiriyorsa, uzaktaki nesneyi durumdaki herhangi bir değişiklik hakkında bilgilendirmek için bir geri çağırma yapısı kullanılabilir.