CORBA


   Arsitektur CORBA Adapter


The CORBA adaptor (CAD) interface adaptor memanfaatkan arsitektur dari Unsur Management System (EMS) komponen dalam Cisco Softswitch 10.200 BTS. Arsitektur ini memungkinkan untuk berbagai adapter untuk menyediakan operasi, administrasi, manajemen, dan provisioning (OAM & P) dengan menyesuaikan antarmuka eksternal untuk sebuah infrastruktur di Common EMS. Gambar 1-1 menggambarkan keseluruhan arsitektur untuk CAD dan menunjukkan arsitektur CORBA proses.


Gambar 1-1 Arsitektur CORBA





Spesifikasi ORB


Objek Request Broker (ORB) yang digunakan dalam antarmuka USD adalah paket sesuai OpenORB 1.3.1. ORB juga mendukung fitur-fitur canggih lainnya seperti objek portabel adaptor (POA). POA adalah model yang digunakan dalam pelaksanaan CAD.

Compiler Tools


CAD menggunakan bahasa Jawa pelaksanaan paket OpenORB CORBA 1.3.1. Demikian pula, hamba memanfaatkan pelaksanaan POA Java interface ke ORB. Mendukung pelaksanaan pelayan Java pelaksanaan sisi klien ketika menggunakan OpenORB. Antarmuka bahasa benar-benar netral.

NameService


OpenORB NameService modul yang menyediakan Object Management Group (OMG) compliant pelaksanaan NameService Spesifikasi Versi 1.2 (September 2002). Modul ini diperlukan untuk operasi CORBA Cisco Softswitch 10.200 BTS. Klien melekat ke NameService untuk mendapatkan referensi Cisco Softswitch 10.200 BTS objek CORBA melalui proses corbaloc. Bila menggunakan OpenORB di sisi klien aplikasi, menerapkan sintaks berikut untuk menyambung ke NameService:


"corbaloc:: 1.2 @ : 14001/NameService" 


Gunakan string lokasi sumberdaya ini untuk memperoleh referensi ke NameService. Setiap Cisco Softswitch 10.200 BTS dilengkapi dengan contoh sendiri name service, dan layanan nama dapat dimanfaatkan secara terpisah untuk setiap EMS. 10.200 BTS Cisco Softswitch UDP port default untuk modul ini adalah 14001. Dalam model OpenORB, nilai ini berlalu menggunakan file konfigurasi OpenORB.xml. Software Development Kit (SDK) berisi contoh-contoh konfigurasi ini, serta contoh kode untuk membangun contoh bekerja menggunakan klien OpenORB pelaksanaan.

Beberapa modul NameService dapat digunakan dengan menerapkan permintaan pencegat. Sebuah objek proxy memungkinkan permintaan untuk diteruskan menggunakan ForwardRequest (3,0 CORBA spec. 21.3.15) protokol.

Contoh berikut rincian resolusi objek menggunakan modul NameService. Perlu diketahui bahwa saat ini POA dasar digunakan sebagai referensi tingkat akar ke Cisco lokal Softswitch 10.200 BTS.

org.omg.CORBA.Object initial_context_obj = 

objOrb.resolve_initial_references ( "NameService"); 

objContext = 

org.omg.CosNaming.NamingContextExtHelper.narrow (initial_context_obj); 

hasil = objContext.resolve (objContext.to_name ( "Bts10200_poa")); 

objBts = Bts10200Helper.narrow (result); 

ORB Deployment-Klien Membangun dan Bind Semantik


Gambar 1-2 menunjukkan proses penyebaran ORB.

Gambar 1-2 ORB Deployment





Semua klien harus berikatan dengan nama POA untuk mengakses obyek di bawahnya. Selain itu, benda-benda itu sendiri membutuhkan paket lengkap path ditetapkan untuk pelaksanaan. Contoh berikut menggambarkan bahasa definisi antarmuka (IDL) dan kompilasi kode Java yang diperlukan untuk mencari lokasi POA dan mengikat ke objek IDL dikompilasi.



Catatan  IDL adalah istilah umum untuk suatu bahasa yang memungkinkan suatu program atau objek yang ditulis dalam satu bahasa berkomunikasi dengan program lain yang ditulis dalam bahasa yang tidak diketahui. Dalam objek didistribusikan teknologi, objek-objek baru harus menemukan cara untuk berjalan di lingkungan platform apapun yang mereka dikirim. ORB adalah middleware broker program yang klien / server hubungan antara objek-objek.


Kode menggunakan paket Java pohon sebagaimana dikembangkan dalam Cisco Softswitch 10.200 BTS produk. Kode ini dapat bervariasi.Klien lain dapat menentukan paket berbeda pohon untuk antarmuka IDL berisi objek. Lihat SDK untuk rincian rinci script ini.

#! / bin / sh

################################################## ############################

# Copyright (c) 2002, 2003 oleh Cisco Systems, Inc

#

# PENGARANG: AJ Blanchard 

#

# DESC: Invoke the IDL compiler for the OpenORB package.

#  

################################################## ############################

set-e

set-a

# set-x


if [-z "$ PROJECTDIR"]; kemudian

PROJECTDIR = / opt / BTSxsdk

fi


#

# Daftar file jar diperlukan

#

CLASSPATH =.: $ HOME / mb / devel / em / lib: / opt / BTSoorb / lib / logkit.jar: / opt/BTSoorb/lib/openorb-1.3
 .1. Jar: / opt/BTSoorb/lib/openorb_tools-1.3.1.jar: / opt / BTSoorb / lib / xerces.jar: / opt / BTSoorb / l
 ib / avalon-framework.jar: / opt/BTSoorb/lib/openorb_ots-1.3.1.jar: / opt / BTSoorb / lib / openorb_ps
 s-1.3.1.jar: / opt/BTSoorb/lib/openorb_ins-1.3.1.jar: / opt/BTSoorb/lib/openorb_tns-1.3.1.jar


export CLASSPATH


# java-classpath $ CLASSPATH org.openorb.compiler.IdlCompiler $ 1-all-verbose-d. / 


File java dihasilkan dalam pohon direktori lokal ditentukan dalam direktori paket. Paket ini jalan yang diperlukan di dalam mengikat logika untuk menemukan objek implementasi antarmuka.

#! / bin / sh 

################################################## ############################ 

# Copyright (c) 2002, 2003 oleh Cisco Systems, Inc 

# 

# PENGARANG: AJ Blanchard

#

# DESC: ORB Jawa Kompilasi program dengan komponen yang diperlukan dari OpenORB. 

# 

################################################## ############################ 

set-e 

set-a 

# set-x 



if [-z "$ PROJECTDIR"]; kemudian 

PROJECTDIR = / opt / BTSxsdk 

fi 



CLASSPATH =.: $ HOME / lib / xml-tool.jar: $ HOME/mb/devel/em/lib/mysql_2_uncomp.jar: / opt / BTSoorb / l
 ib / logkit.jar: / opt/BTSoorb/lib/openorb-1.3.1.jar: / opt/BTSoorb/lib/openorb_tools-1.3.1.jar:
 / opt / BTSoorb / lib / xerces.jar: $ HOME / mb / devel / em / lib / cad.jar: $ HOME/mb/devel/em/lib/orajdbc12.
 zip: $ HOME/mb/devel/em/lib/ecs-1.4.1.jar: / opt/BTSoorb/lib/openorb_ots-1.3.1.jar: / opt / BTSoor
 b/lib/openorb_pss-1.3.1.jar: / opt/BTSoorb/lib/openorb_ins-1.3.1.jar: / opt / BTSoorb / lib / openor
 b_tns-1.3.1.jar 



export CLASSPATH 



javac-classpath $ CLASSPATH-d. / $ * 



Mengkompilasi paket file Jawa yang diperlukan untuk menghasilkan file kelas. File kelas ini harus ada dalam classpath klien.

Pelaksanaan klien menggunakan semantik yang berbeda untuk kebijakan dan sebagainya. Selain itu, penggunaan oo-jalankan perintah untuk menjalankan aplikasi adalah masalah pilihan. Hal ini diberikan sebagai penyederhanaan dalam paket OpenORB.



Catatan  Jika alat-alat lain yang digunakan, Anda harus memodifikasi objek IDL serta OpenORB file.


Contoh:

paket com.sswitch.oam.ccc;


import java.lang .*;

import java.io. *;

import java.util .*;

import java.text .*;

/ / CORBA stuff

import org.omg.CORBA .*;

import org.omg.PortableServer .*;

import org.omg.Messaging .*;

/ / XML Stuff

import org.apache.ecs.xml .*;

import org.apache.ecs .*;

import org.w3c.dom .*; 

import org.xml.sax .*;

import org.apache.xml.serialize .*;

/ / BTS Kode jar file ...

import com.sswitch.oam.cad .*;

import com.sswitch.oam.xml .*;

import com.sswitch.oam.util .*;




/ **

* CorbaXmlIntf.java

* Copyright (c) 2002, 2003 oleh Cisco Systems, Inc

* - Ini adalah sopir sisi klien tulisan rintisan.  Hal ini memungkinkan aplikasi klien

* Untuk menghasilkan objek Permintaan yang kemudian dicerna di kelas ini sebagai 

* XML dokumen dan dikirim sebagai permintaan kepada server CORBA.  Hasilnya

* Kemudian kembali ke pengguna atau pengecualian CORBA dilemparkan.

*

* @ Author AJ Blanchard 

* @ Versi 4.0

* @ Sejak BTS 10200 4,0

*

* /


public class CorbaXmlIntf (


/ *

* Kelas data pribadi

* /

private String [] objArgs;

swasta org.omg.CORBA.ORB objOrb;

swasta org.omg.CosNaming.NamingContextExt objContext;


swasta com.sswitch.oam.cad.Bts10200 objBts;

swasta com.sswitch.oam.cad.Bts10200_Security objBtsSec;

swasta org.omg.CORBA.StringHolder objKey;


/ **

* Generik Pembuat untuk test driver.

* /

CorbaXmlIntf publik (String [] args)

(

/ / Initialize the ORB.

objOrb = org.omg.CORBA.ORB.init (args, null);

objArgs = args;

return; 

)



/ **

* Ini adalah metode eksekusi utama untuk objek.  Ia melakukan 

* Sebenarnya permintaan dan panggilan untuk jejak jawabannya.

* /

public void connect () throws CadExceptions

(

/

/ / Masuk ke mesin target dengan generik optiuser

/

try (

bind ();

objKey = new org.omg.CORBA.StringHolder (); 

objBtsSec.login ( "optiuser", "optiuser", objKey);

Log.info ( "Login berhasil BTS10200:" + objKey.value);

)

catch (Exception e) (

Log.error ( "Pengecualian dalam CORBA Bind / Login =" +

Util.stackTraceToString (e));

melemparkan CadExceptions baru (1, e.toString ());

)

)


/ **

* Metode ini menghasilkan permintaan ke server CORBA dan kembali 

* Jawaban atau perkecualian jika antarmuka melempar pengecualian. 

* Argumen "permintaan" harus diformat XML dokumen.

* 

* @ Param permintaan permintaan dokumen XML ini.

* @ Mengembalikan String Ini adalah jawaban diformat XML.

* /

public String permintaan (String permintaan) 

melempar CadExceptions

(

String answer = null;

try (

org.omg.CORBA.StringHolder reply = new org.omg.CORBA.StringHolder ();


/ / Issue permintaan untuk BTS 10.200

objBts.request (permintaan, objKey.value, reply);


/ / Membangun sebuah XMLReply dari dokumen


answer = reply.value;

)

catch (Exception e) (

Log.warning ( "Permintaan Command Exception: \ n" + 

Util.stackTraceToString (e));

melemparkan CadExceptions baru (1, e.toString ());

)

kembali menjawab

) / / End permintaan ()


/ **

* Metode ini menghasilkan permintaan untuk dokumen ke copmmand

* CORBA server dan mengembalikan jawaban atau perkecualian jika antarmuka

* Throws pengecualian.

* 

* @ Param kata benda kata benda ini untuk permintaan.

* @ Param kata kerja kata kerja ini untuk permintaan.

* @ Mengembalikan String Ini adalah jawaban diformat XML.

* /

public String getCommandDoc (String kata kerja, String kata benda) 

melempar CadExceptions

(

String answer = null;

try (

org.omg.CORBA.StringHolder reply = new org.omg.CORBA.StringHolder ();


/ / Issue permintaan untuk BTS 10.200

objBts.getCommandDoc (kata benda, kata kerja, objKey.value, reply);


/ / Membangun sebuah XMLReply dari dokumen


answer = reply.value;

)

catch (Exception e) (

Log.warning ( "Permintaan Command Exception: \ n" + 

Util.stackTraceToString (e));

melemparkan CadExceptions baru (1, e.toString ());

)

kembali menjawab

) / / End getCommandDoc ()



/ **

* Metode ini menghasilkan permintaan untuk dokumen ke copmmand

* CORBA server dan mengembalikan jawaban atau perkecualian jika antarmuka

* Throws pengecualian.

* 

* @ Param kata benda kata benda ini untuk permintaan.

* @ Param kata kerja kata kerja ini untuk permintaan.

* @ Mengembalikan String Ini adalah jawaban diformat XML.

* /

public String getExtCommandDoc (String kata kerja, String kata benda) 

melempar CadExceptions

(

String answer = null;

try (

org.omg.CORBA.StringHolder reply = new org.omg.CORBA.StringHolder ();


/ / Issue permintaan untuk BTS 10.200

objBts.getExtCommandDoc (kata benda, kata kerja, objKey.value, reply);


/ / Membangun sebuah XMLReply dari dokumen

answer = reply.value;

)

catch (Exception e) (

Log.warning ( "Permintaan Command Exception: \ n" + 

Util.stackTraceToString (e));

melemparkan CadExceptions baru (1, e.toString ());

)

kembali menjawab

) / / End getExtCommandDoc ()



/ ** 

* Modul ini terputus pengguna dari 10.200 BTS antarmuka CORBA.

* /

public void putuskan () throws CadExceptions

(

objBtsSec.logout (objKey.value);

return;

)



/*================================================ =====================

* Internal metode pengolahan ...

*================================================= ====================*/


/ **

* Metode ini mengikat kepada target objek CORBA bagi kita untuk beroperasi

* / 

public void bind ()

throws org.omg.CORBA.ORBPackage.InvalidName,

org.omg.CosNaming.NamingContextPackage.InvalidName,

org.omg.CosNaming.NamingContextPackage.NotFound,

org.omg.CosNaming.NamingContextPackage.CannotProceed

(


org.omg.CosNaming.NameComponent [] nameComponent = null;

org.omg.CORBA.Object hasil = null;


insLocate ();


hasil = objContext.resolve (objContext.to_name ( "Bts10200_Security_poa"));

objBtsSec = Bts10200_SecurityHelper.narrow (result);


hasil = objContext.resolve (objContext.to_name ( "Bts10200_poa"));

objBts = Bts10200Helper.narrow (result);

Log.info ( "Dasar POA (s) telah ditemukan dan terikat.");

return;

)


/ **

* Load layanan nama dan menemukan konteks untuk objek CORBA. 

* Ingat, INS harus menjadi orang yang terletak di BTS.  Ini memiliki 

* Objek referensi.  Gunakan 'corbaloc:' untuk saat ini, tapi kemudian migrasi

* Untuk URL untuk layanan nama lokasi akan baik.

* /

public void insLocate () 

melempar org.omg.CORBA.ORBPackage.InvalidName

(

/ / System.out.println ( "Cari NameService dalam sistem.");

org.omg.CORBA.Object initial_context_obj = 

objOrb.resolve_initial_references ( "NameService");

objContext = 

org.omg.CosNaming.NamingContextExtHelper.narrow (initial_context_obj);

Log.info ( "NameService ditemukan dalam konteks inital.");

return;

)


) / / End CorbaXmlIntf


Implementasi aktual dapat membuat pilihan POA dinamis dan didasarkan pada beberapa bentuk navigasi ke situs (misalnya, ke lokasi rumah softswitch atau mungkin bagian dari softswitch ID). Sekali POA dipilih, semua implementasi obyek adalah sama. Tidak ada perilaku spesifik lokasi yang dipamerkan dalam objek apapun. Namun, situs-atribut khusus yang hadir, dan diturunkan berdasarkan isi database lokal.


IDL Overview


Yang IDL digunakan untuk menyatakan tingkat objek antarmuka dalam antarmuka CAD. Antarmuka objek ini mencakup sifat-sifat dan perilaku dari obyek. Bagian ini memberikan ikhtisar dari IDL untuk Cisco Softswitch 10.200 BTS. IDL ini objek define akses ke XML deskripsi dan dokumen-dokumen yang digunakan untuk penyediaan Cisco Softswitch 10.200 BTS. Penjelasan lengkap dari dokumen XML dibahas dalam bab berikutnya. Untuk sebagian besar, CORBA bertindak sebagai transportasi untuk dokumen-dokumen ini.

IDL 10.200 BTS Softswitch


Bts10200.idl file yang berisi sistem umum-lebar tipe struktur data dan definisi. Juga mengandung kesalahan antarmuka (pengecualian). Lihat"Softswitch 10.200 BTS Cisco Kode IDL" bagian untuk teks lengkap dari file bts10200.idl. File ini berisi semua objek yang didefinisikan untuk digunakan di Cisco Softswitch 10.200 BTS. Dengan rincian setiap objek yang tercantum di bawah ini.

•  Bts10200_Security-objek keamanan utama. Hal ini digunakan untuk membuat tombol login untuk digunakan pada objek lain. Objek ini diperlukan untuk mengakses Cisco Softswitch 10.200 BTS.

•  Bts10200-objek dasar yang digunakan untuk mengambil XML dokumen deskripsi serta pengadaan dan dokumen kontrol.

•  CadException-The objek digunakan untuk melaporkan semua kesalahan dalam Cisco Softswitch CAD 10.200 BTS antarmuka.

•  MGP-The objek yang digunakan untuk berkomunikasi dengan gateway media tertentu. Menggunakan string sederhana berisi MGW-perintah teks yang kompatibel.

10.200 BTS cisco Softswitch API


Bagian ini meliputi API sebenarnya panggilan ke antarmuka CAD. Asumsinya adalah bahwa aplikasi klien dikembangkan dalam bahasa Jawa.Hal ini tidak melarang penggunaan C + +. Namun, yang tidak berada dalam ruang lingkup dokumen ini.

Semua parameter yang tercantum yang diperlukan untuk setiap doa metode dalam obyek terkait.

10.200 BTS cisco Keamanan Softswitch


Cisco keamanan Softswitch 10.200 BTS objek (Bts10200_Security) menyediakan beberapa pengguna tingkat keamanan untuk antarmuka CAD di Cisco Softswitch 10.200 BTS. Hal ini memungkinkan pemakai untuk mendapatkan kunci keamanan dan gunakan kunci ini untuk semua transaksi di masa depan. Objek ini harus digunakan sebelum semua metode CORBA lain doa-doa dalam interface. Tombol ini berlaku dalam antarmuka CAD untuk kehidupan sesi pengguna. Kuncinya adalah tidak berlaku lagi setelah logout Metode ini telah diajukan. Demikian juga, kunci keamanan berakhir setelah 30 menit jika sistem belum diakses selama periode waktu, dan pengguna secara otomatis log out dari antarmuka CAD. Nama pengguna dan password nilai yang sama diperbolehkan dalam CLI / adapter MAC antarmuka, dan perizinan yang sama berlaku otorisasi.

Setiap metode dalam bagian ini adalah bagian dari antarmuka Bts10200_Security. Daftar parameter yang diperlukan untuk setiap metode dan harus berisi data.

/ / MGW Profil Objek ID-digunakan untuk mengikat POA 

byte [] btsSecuritymgwProfileId = "Bts10200_SecurityMgwProfile". getBytes ();

Login


Metode login otentikasi menyediakan sebuah antarmuka CORBA pengguna. Ini menggunakan keamanan pengguna yang sama seperti FTP atau CLI adapter. Metode ini mengembalikan nilai string didefinisikan sebagai kunci. Tombol ini diperlukan untuk semua transaksi terhadap USD antarmuka. Ini adalah kunci otentikasi untuk menunjukkan otorisasi khusus dari pengguna tertentu. Metode signature didefinisikan menggunakan kode berikut:

int login (java.lang.String pengguna, java.lang.String passwd, java.lang.StringHolder kunci) 
 melempar CadException


•  Kembali nilai-Status yang menunjukkan keberhasilan atau kegagalan operasi. Sebuah indikasi kegagalan berarti fasilitas tidak tersedia.Sukses kembali berarti operasi selesai.

•  Pengecualian-A CadException berarti ada kesalahan operasional dalam memproses permintaan. Ini termasuk kesalahan dengan parameter jenis, kisaran, dan akses database.

Logout


Metode logout berakhir pada sebuah sesi login. Ini merusak validitas kunci otentikasi. Setelah metode ini selesai, kunci tidak dapat lagi digunakan untuk metode lain doa-doa. Metode signature didefinisikan melalui kode berikut:

int logout (java.lang.String) throws CadException


•  Return valu e-Status yang menunjukkan keberhasilan atau kegagalan operasi. Sebuah indikasi kegagalan berarti fasilitas tidak tersedia.Yang berhasil kembali menunjukkan operasi selesai.

•  Pengecualian-A CadException berarti ada kesalahan operasional dalam memproses permintaan. Ini termasuk kesalahan dalam jenis parameter, kisaran, dan akses database.
0 Responses

    Google search


    Traffic Ranking

    Visitors

    free counters

    Network Facebook

    Anggota Blog