Aktivasyon Gruplarının Kaydedilmesi – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Aktivasyon Gruplarının Kaydedilmesi
Bir ActivationGroup, etkinleştirilebilir bir nesneyle kabaca aynı şekilde etkinleştirme sistemine kaydedilir. Grup için sınıfın adını, sınıf bayt kodlarının yüklenebileceği URL’yi ve ActivationGroup’a başlatma verileri olarak verilen bir MarshalledObject’i içeren birActivationGroupDescobject oluşturmanız gerekir. Ancak, etkinleştirilebilir nesnelerden farklı olarak, bir grubun sınıfı, AktivasyonGrubu’nun somut bir alt sınıfı olmalıdır.
ActivationGroupDesc’i, statik ActivationSystem.registerGroup() yöntemini çağırarak ve ActivationGroupDesc’i ileterek kaydedersiniz. ActivationSystem, gruba belirli nesneler atayabilen bir ActivationGroupID döndürür.
Gruplara Etkinleştirilebilir Nesneler Atama
Etkinleştirme sistemiyle birlikte Etkinleştirme Kaldırıldı’da grup kimliğini belirterek bir gruba etkinleştirilebilir bir nesne atarsınız. ActivationSystem.registerGroup() yöntemi tarafından döndürülen ActivationGroupID, ActivationDesc yapıcısına geçirilebilir.
Aktivasyon sistemine uzak bir nesneyi kaydetmeden önce, onun için bir grup oluşturmanız gerekir. Etkinleştirilebilir ThisOrThatServer örneğimiz için, nesne sunucusunda aşağıdaki satırlar boyunca Java kodunu çalıştırabiliriz (istisna işlemeyi dışarıda bıraktığımı unutmayın).
Burada ActivatableThisOrThatServerImpl sınıfını kullanıyoruz ve uzaktaki bir nesneyi fiilen başlatmadan aktivasyon sistemine kaydediyoruz. Uzak nesnemizi kaydetmeden önce bir ActivationGroupDesc oluşturuyoruz, ardından onu kayıt etmek ve aktivasyon sistemi ile yeni bir aktivasyon grubu oluşturmak için kullanıyoruz.
Aktivasyon grubunu oluşturduktan sonra (ActivationGroup.createGroup() yöntemini kullanarak), uzak nesnemiz için bir ActivationDesc yapmak üzere yeni grubumuz için ActivationGroupID’yi kullanırız ve bunu, nesneyi aktivasyon sistemine kaydetmek için kullanırız. Aktivasyon sistemi, nesnemiz için bir uzak saplama oluşturur ve bunu RMI adlandırma kaydına kaydederiz.
Başlangıçta etkinleştirme sistemi tarafından etkinleştirildiyse, her ActivationGroup kendi VM’sinde başlatıldığından, nesneleri gruplamak, uzak nesnelerinizi sunucunuzdaki paylaşılan adres alanlarına bölmenin uygun bir yoludur. RMI’deki etkinleştirme grubu arabirimleri hakkında daha fazla ayrıntı için, java.rmi.aktivasyon referans materyali olan The java.rmi.activation Package’a bakın.
Aktivasyon Daemon
RMI etkinleştirme sisteminin kalbi, etkinleştirilebilir bir nesne için ana bilgisayar üzerinde çalışan etkinleştirme arka plan programıdır. Aktivasyon arka plan programı, etkinleştirilebilir nesneler üzerindeki uzak yöntem isteklerini engellemekten ve gerekirse nesnenin aktivasyonunu düzenlemekten sorumludur.
Java SDK, rmid ile sağlanan etkinleştirme arka plan programı, bir java.rmi.activation.Activator nesnesi içeren bir Java VM çalıştırır. Etkinleştirici, etkinleştirilebilir nesnelerin bir kaydını ve bunları etkinleştirmek için gereken bilgilerle birlikte tutmaktan sorumludur. Bu bilgi iki bölümden oluşur: bir ActivationDesc nesnesi ve isteğe bağlıdır.
ActivationGroupDesc, nesnenin eklenmesi gereken etkinleştirilebilir nesne grubunu tanımlar ve mevcut değilse grubun nasıl başlatılacağını açıklar. ActivationDesc, nesnenin kendisini etkinleştirmek için gereken tüm bilgileri içerir. Etkinleştirilebilir bir nesnenin, Etkinleştirici tarafından otomatik olarak başlatılabilmesi için daha önce açıklanan yollardan biriyle etkinleştirme sistemine kaydedilmesi gerekir.
Bir ana bilgisayarda RMI çalışma zamanı sistemi tarafından bir uzak yöntem isteği alınırsa ve hedef nesne henüz oluşturulmadıysa, Aktivatörden bunu etkinleştirmesi istenir. Aktivatör, nesne için ActivationDesc’i (ve varsa ActivationGroupDesc’i) arar.
Opera Java etkinleştirme
Firefox Java etkinleştirme
Java çalışmıyor
Java etkinleştirme Chrome
Tarayıcınızda Java etkin değil Chrome
Edge Java etkinleştirme
Java destekli tarayıcı
Tarayıcıda Java etkinleştirme
Nesneye atanmış bir ActivationGroup varsa ve ActivationGroup henüz mevcut değilse, grup için bir Java VM başlatılır ve ActivationGroupDesc verileri, yeni VM içinde bir ActivationGroup nesnesi başlatmak için kullanılır. Nesnenin kendisiyle ilişkilendirilmiş bir ActivationGroup’u yoksa, kendi VM’sinde çalışan kendi ActivationGroup’u verilir.
Ardından gruptan, nesne için kayıtlı ActivationDesc nesnesini kullanarak istenen nesneyi başlatması istenir. ActivationGroup, VM içindeki nesneyi etkinleştirdiğinde, Etkinleştiriciye bilgi verilir ve şu anda etkin olan uzak referans, RMI çalışma zamanı sistemine döndürülür. RMI çalışma zamanı sistemi, uzak yöntem isteğini nesneye referans yoluyla iletir ve dönüş değeri, her zamanki gibi istemciye geri verilir.
rmid arka plan programını başlattığınızda, bir Etkinleştirici oluşturur ve ardından etkinleştirme istekleri için varsayılan 1098 bağlantı noktasını dinler. Ayrıca, VM’nin kullanması için farklı bir bağlantı noktası belirlemenizi sağlayan bir -bağlantı noktası komut satırı seçeneği de vardır. Aktivatörü çalıştırmanın yanı sıra, rmid arka plan programı kendi RMI Kayıt Defterini de çalıştırır.
Gerekirse, Kayıt Defterinin bind() veya rebind() yöntemini çağırdığınızda arka plan programının bağlantı noktasını belirterek yerel nesneleri arka plan programının dahili Kayıt Defterine kaydedebilirsiniz.
RMI ve Yerel Yöntem Çağrıları
Bu bölümün başında bahsettiğim gibi, RMI yalnızca Java’dan oluşan bir uzak nesne şemasıdır, bu nedenle CORBA’nın yaptığı gibi farklı dillerde uygulanan nesneler arasında doğrudan bir bağlantı sağlamaz. Ancak Java’nın Yerel Arabirim API’sini kullanarak, mevcut C veya C++ kodunu bir Java arabirimiyle sarmak ve ardından bu arabirimi RMI aracılığıyla uzaktan dışa aktarmak mümkündür.
Göstermek için, RMI aracılığıyla uzak istemcilere vermek istediğimiz bir hizmeti uygulayan bazı (eski) yerel kodumuz olduğunu varsayalım. Uzak arayüzümüzde doSomething() yöntemini uygulamak için bu yerel kodu kullanan ThisOrThatServer arayüzümüzün bir uygulamasını oluşturabiliriz.
NativeThisOrThatServerImpl uygulaması Örnekte gösterilmektedir. Bu uygulama ile orijinal ThisOrThatServerImpl arasındaki tek önemli fark, doSomething() yönteminin yerel olarak bildirilmesi ve bu nedenle yöntem gövdesinin boş bırakılmasıdır.
Bu RMI sınıfını derleyebilir ve tıpkı diğer RMI örneklerimizde olduğu gibi RMI derleyicisini kullanarak onun taslaklarını ve iskeletlerini oluşturabiliriz. Ancak bu yapıldıktan sonra, doSomething() yöntemi için yerel bir uygulama sağlamamız gerekiyor. Başlamak için, javah aracını kullanarak yerel yöntem için bir C/C++ başlık dosyası oluşturabiliriz.
−jni seçeneği, javah aracına JNI uyumlu başlık dosyaları oluşturmasını söyler (Java 1.0 ile birlikte gelen daha önceki yerel yöntem arabirimine dayalı başlık dosyalarının aksine). Bu komutu çağırmak, aşağıdakine benzer bir JNI C/C++ başlık dosyası oluşturur.
Bu başlık dosyasında dikkate değer tek ayrıntı, Java SDK ile sağlanan jni.h başlık dosyasının ve tekli yöntem bildiriminin eklenmesidir. jni.h başlık dosyası, JNI API tarafından sağlanan tüm veri yapıları ve yardımcı program yöntemleri için bildirimler ve tanımlar sağlar.
Yöntem bildirimi, Java sınıfımızda bildirilen yerel yönteme karşılık gelen bir imzaya sahiptir. NativeThisOrThatServerImpl üzerinde doSomething() yöntemini çağırdığınızda, Java VM bu imzayla eşleşen yerel bir yöntem arar.
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)