Etkinleştirilebilir Nesne – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Etkinleştirilebilir Sınıf
Bu iki kurucu, başlatma kurucularıdır. Uzak nesnelerinizden birini proaktif olarak oluşturmaya ve RMI etkinleştirme hizmetine kaydetmeye karar verdiğinizde bunları kullanırsınız. Bu durumda, bir istemci ilk kez bir yöntem isteğinde bulunduğunda nesne zaten var olur, ancak nesne yok edilirse, sonraki istemci isteği nesnenin yeniden etkinleştirilmesine neden olur.
Bu oluşturucular, bir nesneyi yerel etkinleştirme hizmetine kaydeder ve uzak yöntem isteklerini alabilmesi için nesneyi dışa aktarır. Her iki kurucu da ortak olarak aşağıdaki argümanlara sahiptir.
String parametresi, bu nesnenin gerektirdiği sınıf bayt kodlarının nerede bulunabileceğini gösteren bir URL’dir. Bu bilgi uzak bir istemciye aktarılır, böylece örneğin, yöntem dönüş değerlerini sıraya koymak için gereken sınıfları dinamik olarak yükleyebilir.
- MarshalledObject parametresi, nesne için başlatma verilerini sağlar; bu parametre gereklidir, çünkü veriler genellikle etkinleştirme arka plan programının sanal makinesinden etkinleştirilebilir nesneyi çalıştırmak üzere atanan sanal makineye gönderilir ve ikisi aynı olmayabilir (bununla ilgili daha fazla bilgi ileride).
- Boole bayrağı, ana VM’si veya etkinleştirme grubu yeniden başlatıldığında (örneğin, bir sunucu yeniden başlatıldıktan sonra) nesnenin otomatik olarak yeniden oluşturulması gerekip gerekmediğini belirtir.
- int parametresi, nesnenin dışa aktarıldığı bağlantı noktasını belirtir. Sıfır bağlantı noktası, RMI çalışma zamanı sistemine nesneyi rastgele bir açık bağlantı noktasında dışa aktarmasını söyler.
İkinci başlatma yapıcısı, sunucu ile nesnenin istemcileri arasında soket iletişimi oluşturan özel istemci ve sunucu soket fabrikalarını alır. Özelleştirilmiş soket fabrikaları, Java 2 SDK 1.2’den itibaren RMI’da yeni bir özelliktir. Bunları bu bölümde tartışmayacağım, ancak daha fazla ayrıntı için, “API Hızlı Başvuru” bölümündeki RMI API referansına başvurabilirsiniz.
Bu kurucular (yeniden) aktivasyon kurucularıdır. Aktivasyon sistemi bunları, uzak bir yöntem isteği almış ancak şu anda aktif olmayan bir uzak nesneyi etkinleştirmek için kullanır. ActivationID, uzak nesne için etkinleştirme sistemi tarafından verilen kalıcı bir kimliktir ve bağlantı noktası numarası, uzak nesneyi dışa aktaran bağlantı noktasıdır. İkinci kurucu yine özel sunucu ve istemci soket fabrikalarını alır.
Activatable sınıfı ayrıca, az önce tanımladığım yapıcılara karşılık gelen bir dizi exportObject() yöntemine sahiptir. Etkinleştirilebilir bir nesne, Activatableclass’ı doğrudan genişletmediğinde bu yöntemleri kullanabilirsiniz. UygunexportObject() yöntemlerini sınıfın yapıcıları içinden çağırırsınız, böylece bir Etkinleştirilebilir alt sınıfın başlatılması sırasında Etkinleştirilebilir oluşturucuların çağrılmasıyla aynı işlevi görürler.
Etkinleştirilebilir Nesneyi Uygulama
Daha önce de belirttiğim gibi, etkinleştirilebilir bir uzak nesneyi iki şekilde uygulayabilirsiniz: uzak nesneyi doğrudan Activatable sınıfından türetmek ve yapıcılarındaki Etkinleştirilebilir yapıcılara gerekli çağrıları yapmak veya sınıfın bir Uzak arabirim uygulamasını ve gerekli olanı yapmasını sağlamak. yapıcılarındaki statik exportObject() yöntemlerine yapılan çağrılar.
Her iki durumda da, aktivasyon sistemi uzak bir nesneyi etkinleştirdiğinde, sınıfta iki argüman alan bir kurucu arar: bir ActivationID ve bir MarshalledObject. Aktivasyon sistemi bu kurucuyu çağırır, nesne için ürettiği bir ActivationID’yi ve az önce tartıştığımız ilk kurucu tarafından etkinleştirilebilir nesne için kaydedilen MarshalledObject’i iletir.
Bu, etkinleştirilebilir bir nesneyi uygulamanızda bu imzaya sahip bir kurucu sağlamanız gerektiği anlamına gelir. Bu kurucuda, Activatable üst sınıfındaki (yeniden)aktivasyon kurucularından birini (sınıfınız Activatable’ı genişletiyorsa) veya ilgili Activatable.exportObject() yöntemini (Activatable’ı genişletmediyseniz) çağırmalısınız. Bu çağrıda, aktivasyon sistemi tarafından verilen ActivationID’yi iletirsiniz ve dışa aktarılan uzak nesne için bağlantı noktasını belirtirsiniz (0 bağlantı noktası numarası, nesnenin rastgele açık bir bağlantı noktasında dışa aktarılmasına neden olur).
YOLOv4 ile nesne Tanıma
Template Matching Nedir
Python OpenCV nesne tanıma
Görüntü işleme ile nesne takibi
Nesne tanıma projeleri
Derin Öğrenme ile nesne tespiti
OpenCV renk tespiti
YOLO ile nesne tanıma
Bu gerekli kurucuya ek olarak, gerektiğinde uzak nesne uygulamanız için başka kurucular da tanımlayabilirsiniz. Nesnenizin yeniden etkinleştirilebilir olmasını istiyorsanız, herhangi bir ek oluşturucu, Activatable’daki başlatma yapıcılarından birini (super() kullanarak) veya karşılık gelen exportObject() yöntemini çağırarak, argüman olarak kullanılacak geçerli bir kaynak URL’yi ve bir MarshalledObject’i iletmelidir.
Nesne bir noktada yok edilirse ve bunun için takip eden bir uzak yöntem isteği alınırsa, etkinleştirme sistemi, bu MarshalledObject argümanını ileterek, nesnenin sınıfındaki gerekli (yeniden) etkinleştirme oluşturucusunu çağırarak nesneyi yeniden etkinleştirir.
ThisOrThatServer arabiriminin etkinleştirilebilir bir uygulamasını gösterir. Bu uygulama ile Örnekteki etkinleştirilemeyen uygulama arasındaki temel fark, bu yeni uygulamanın UnicastRemoteObject yerine java.rmi.activation.Activatable sınıfını genişletmesi ve oluşturucularının etkinleştirme sistemini desteklemesidir. Bu uygulama, sunucuyu tanımlayan bir ad da içerir.
ActivatableThisOrThatServerImpl için ilk kurucu, belirli bir ada sahip bir sunucu oluşturmak için kullanılan genel bir kurucudur. Yapıcı, bu sınıf için gerekli sınıfları bulmak için kod tabanı görevi gören bir URL’yi ileterek yeni nesneyi etkinleştirme sistemine kaydeder. Ayrıca, bir MarshalledObject içine sarılmış olarak sunucuya verilen adla da geçer. Bu, daha sonra yeniden etkinleştirilmesi gerekiyorsa sunucuya aynı adın verilmesini sağlar.
İkinci kurucu, aktivasyon sistemi tarafından kullanılan gerekli olandır. Bu tür bir nesnenin etkinleştirilmesi gerekiyorsa (veya bir tür çökmeden sonra yeniden etkinleştirilirse), uzak nesneyi oluşturmak için bu kurucu çağrılır. Yapıcı, aktivasyon sistemi tarafından verilen bir ActivationID ve aktivasyon sistemine sahip nesne için kayıtlı MarshalledObject’i alır. Yapıcı, Activatable sınıfındaki ikinci kurucuyu çağırarak nesneyi dışa aktarır, ardından MarshalledObject’den gelen verilerle kendisini başlatır.
Etkinleştirilebilir Nesneleri Kaydetme
Etkinleştirilebilir bir nesneyi yerel etkinleştirme sistemine kaydetmenin birkaç yolu vardır. Her durumda, etkinleştirme sistemine nesnenin nasıl oluşturulacağı (veya yeniden oluşturulacağı) söylenmelidir. Aktivasyon sisteminin bir nesneyi etkinleştirmek için ihtiyaç duyduğu bilgiler, ActivationDesc sınıfında kapsüllenir.
Bir ActivationDesc nesnesi, uzak nesne için sınıfın adını, sınıf için bayt kodlarının ağ konumunu içeren bir URL’yi, nesne için başlatma verileri olarak kullanılacak bir MarshalledObject ve nesne için grup atamasını içerir.
Etkinleştirilebilir bir nesneyi kaydetmenin en basit yolu, nesnenin bir örneğini oluşturmaktır. Örneğimizde, sunucu uygulamamızı Activatable sınıfından türettik, böylece ActivatableThisOrThatServerImpl sınıfındaki genel kurucu, Activatable üzerinde gerekli kurucuyu çağırarak nesneyi kaydeder. Böylece bunlardan birini aşağıdaki gibi oluşturup kaydedebiliriz.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)