Taşınabilir nesne bağdaştırıcısı

Nesne bağdaştırıcısı, nesne başvurusu oluşturma gibi bir nesnenin ORB hizmetlerine erişmesi için birincil yoldur. Taşınabilir nesne bağdaştırıcısı, nesneye ilişkin standart arabirimleri dışa aktarır.

Bir nesne bağdaştırıcısına ilişkin başlıca sorumlulukları şunlardır:
  • Nesne başvurularının oluşturulması ve yorumlanması.
  • Yöntem çağrılıyor.
  • Nesne ve uygulama etkinleştirme ve devre dışı kılma.
  • Nesne başvurularının ilgili nesne somutlamalarına eşlenmesi.
Bu resim, ORB, nesne bağdaştırıcısı, iskelet ve nesne somutlaması arasındaki ilişkiyi gösterir.

CORBA 2.1 ve öncesi için, tüm ORB satıcıları, temel nesne bağdaştırıcısı olarak bilinen bir nesne bağdaştırıcısını gerçekleştirmişti. Standart bir CORBA IDL ile temel nesne bağdaştırıcısı belirtilemedi. Bu nedenle, satıcılar birçok farklı şekilde bağdaştırıcıları uygulamış. Sonuç olarak, programcıların farklı ORB ürünleri arasında gerçekten taşınabilir sunucu uygulamaları yazamamasıydı. CORBA 2.1' de standart bir nesne bağdaştırıcısı arabirimi tanımlama girişimi ilk kez gerçekleştirilmişti. CORBA v.2.3ile OMG grubu, nesne bağdaştırıcısına ilişkin standart bir arabirimin son düzeltilmiş sürümünü yayınladı. Bu bağdaştırıcı, Taşınabilir Nesne Bağdaştırıcısı (POA) olarak bilinir.

POA belirtiminin başlıca özelliklerinden bazıları şunlardır:
  • Programcıların, farklı ORB ürünleri arasında taşınabilir olan nesne ve sunucu uygulamaları oluşturmasına izin verin.
  • Kalıcı nesneler için destek sağlayın. Bu destek, nesnelerin çeşitli sunucu yaşam süreleri boyunca kalıcı olmasını sağlar.
  • Nesnelerin saydam olarak etkinleştirilmesini destekler.
  • İlke bilgilerini nesnelerle ilişkilendirin.
  • Bir ORB 'da POA' nın birden çok ayrı örneğine izin verir.

POA ' ya ilişkin ayrıntılı bilgi için, CORBA v.2.3 (formal/99-10-07) belirtimine bakın.

IBM® ORB, hem POA belirtimini, hem de önceki özel temel nesne bağdaştırıcısını destekler. Varsayılan olarak, RMI derleyicisi, -iiop seçeneğiyle birlikte kullanıldığında, sunucular için RMI-IIOP bağları oluşturur. Bu bağlar temel nesne bağdaştırıcısına dayalıdır. Bir sunucu uygulaması POA arabirimini kullandığında, ilgili bağları oluşturmak için rmic derleyicisine -poa seçeneğini eklemelisiniz.

POA kullanarak bir nesneyi uygulamak için, sunucu uygulamasının bir POA nesnesi edinmesi gerekir. When the server application calls the ORB method resolve_initial_reference("RootPOA"), the ORB returns the reference to the main POA object that contains default policies. Tüm POA ilkelerinin listesi için CORBA belirtimine bakın. RootPOA'ın alt nesneleri olarak yeni POA' lar oluşturabilirsiniz. Bu alt nesneler farklı ilkeler içerebilir. Bu yapı, farklı nesne kümelerini ayrı olarak yönetmenize ve nesne tanıtıcılarının ad alanını bölümlemenize olanak sağlar.

Sonuç olarak, bir POA, Nesne Tanıtıcılarını ve aktif hizmetçileri idare eder. Etkin bir hizmetli, bellede bulunan bir programlama nesnesidir. İlişkili nesne tanıtıcılarından biri ya da daha fazlası kullanıldığı için hizmetli POA ' ya kayıtlı. ORB ve POA, müşteri tarafından istenen operasyona hangi hizmetçiyi başlatarak başlatarak karar vermeleri için işbirliği yapar. POA API ' larını kullanarak, nesne için bir başvuru yaratabilir, bir nesne tanıtıcısını ilişkilendirebilir ve bu nesne için hizmetçiyi etkinleştirebilirsiniz. Nesne tanıtıcılarının ve etkin hizmetçilerin bir haritası POA ' da depolanır. POA ayrıca, etkin bir hizmet görevlisi olmadığında kullanılan bir varsayılan hizmet görevlisini de sağlar. Bu varsayılan uşağın belirli bir somutlamasını kaydettirebilirsiniz. Belirli bir hizmetçiyle bir nesne tanıtıcısının ilişkilendirilmesini yönetmek için kullanılan bir nesne olan bir hizmetli yöneticisini de kaydettirebilirsiniz.
Bu resim, örnek bir taşınabilir nesne bağdaştırıcısı mimarisini gösterir.

POA yöneticisi, bir ya da daha fazla POA ' nın işlem durumunu sarmalayan bir nesnedir. POA yöneticilenindeki işlemleri kullanarak tüm POA ' ların durumunu denetleyebilir ve değiştirebilirsiniz.

Bağdaştırıcı etkinleştirici, uygulama geliştiricinin alt POA ' ları etkinleştirmek için kullandığı bir nesnedir.