Bab lan Paragraf[Singidaken][Tampilake]
Sampeyan wis duwe piranti lunak, nanging sampeyan isih butuh cara sing luwih efektif kanggo ngidini pangguna teknis ngembangake platform kasebut.
Sanajan OSGi kondhang kanggo umume pangembang Java, nggabungake menyang produk sampeyan bisa uga katon kaya tugas sing angel. Kurang kajelasan babagan cara kerja OSGi sing tepat luwih ngganggu dalan sing maju.
Beda karo apa wae sing pengin dieksperimen, OSGi luwih seneng nyoba nyabrang segara menyang akeh pangembang Jawa.
Artikel iki bakal ngenalake sampeyan babagan tutorial musim semi OSGi Felix nggunakake program sing gampang lan diterusake, kaluwihan, lan rincian penting liyane.
Dadi apa OSGi?
Nggawe lan nyebarake modul lan komponen bisa ditindakake kanthi kerangka Java sing dikenal minangka OSGi (Open Service Gateway Initiative).
Iku nandheske enkapsulasi fungsi lan kopling ngeculke, kang nawakake sawetara kaluwihan kanggo pangembang, kalebu fungsi modular sing siap ditransfer antarane kode sumber lan testing sing ora perlu dependensi unending.
Kepiye cara kerja OSGi?
Sistem komponen dinamis kanggo Jawa ditetepake kanthi seperangkat spesifikasi sing diarani OSGi. Spek kasebut mbisakake pendekatan pangembangan ing ngendi aplikasi dibangun saka sawetara bagean banjur dikemas dadi bundel.
Layanan lokal lan basis jaringan digunakake dening komponen kasebut kanggo komunikasi. Nggawe kode inti program minangka kompak minangka layak minangka tujuane. Kopling dhuwur antarane kode iki lan sawetara komponen bisa.
Unsur bangunan sing bisa digunakake maneh diarani komponen. Mikir babagan fitur kaya kranjang blanja kanggo situs web e-commerce utawa aplikasi gaji kanggo sistem manajemen staf.
Komponen bisa nggunakake OSGi kanggo ndhelikake implementasine saka komponen liyane lan mung menehi data sing dibutuhake liwat layanan.
Iki ngalangi komponen saka ora sengaja ngganti data sing ngirim ora duwe akses lan ngatur dependensi.
Kabeh sambungan antarane komponen ing aplikasi OSGi digawe liwat layanan ing donya becik. Paket Java ngemot API sing ditemtokake kanggo layanan.
Kolaborasi antarane panyedhiya layanan lan pelanggan mbutuhake panggunaan kelas lan / utawa antarmuka, sing nggawe API.
Kabeh komponen OSGi di rangkep bebarengan ing bundel, saben kalebu sumber daya sing dibutuhake kanggo fungsine. Bundel cukup jelas babagan apa sing dibutuhake saka lingkungan lan apa sing bisa ditindakake.
Wuku
- Aplikasi OSGi duwe akses menyang repositori bundel eksternal.
- Framework ngidini desain berorientasi layanan ing tingkat modul.
- Iku ndadekake iku bisa kanggo ngatur versi lan dependensi saka mbendel aplikasi saliyane standarisasi lan nggawe luwih gampang kanggo nggabungake perpustakaan pihak katelu.
- Aplikasi luwih gampang adaptasi kanggo ngganti tuntutan, luwih portabel, lan luwih cepet kanggo reengineer.
- A aplikasi web bisa disebarake minangka klompok mbendel OSGi versi karo umur dinamis thanks kanggo integrasi framework karo model program Java EE.
- Tinimbang diinstal minangka perpustakaan pihak katelu minangka bagéan saka aplikasi, framework nyedhiyakake Déwan deklaratif lan testing unit streamlined saka Spring Framework ing wangun standar sing kasedhiya minangka bagéan saka runtime server aplikasi.
- Kanggo aplikasi perusahaan sing digawe saka pirang-pirang paket versi kanthi siklus urip dinamis, kerangka kasebut nawakake pengasingan.
- Isine repositori bundle terpadu sing bisa nyimpen bundel umum lan versi sing dienggo bareng sing digunakake dening sawetara aplikasi, nyegah saben aplikasi supaya ora nyebarake salinan kapisah saka saben perpustakaan sing dienggo bareng.
Miwiti karo OSGi Felix spring
Njupuk Sumber Daya
Kanthi ngundhuh versi paling anyar saka Apache Karaf saka situs iki, kita bisa miwiti petualangan OSGi kita.
Adhedhasar Apache Felix, implementasi Apache saka spesifikasi OSGi, Apache Karaf nyedhiyakake platform kanggo aplikasi basis OSGi.
Karaf nyedhiyakake macem-macem fitur sing migunani ing ndhuwur Felix sing bakal mbantu kita ngerti OSGi, kayata antarmuka baris perintah sing bakal ngidini kita komunikasi karo platform kasebut.
Entry Point Kanggo Bundles
Aplikasi kudu dikemas minangka bundel OSGi sadurunge bisa mbukak ing lingkungan OSGi. Kajaba iku, titik entri aplikasi kudu ditemtokake; iku ora standar umum statis void utama (String [] args) fungsi.
Dadi ayo miwiti nggawe "Hello World"aplikasi adhedhasar OSGi.
Kita miwiti kanthi nggawe ketergantungan OSGi API dhasar:
Runtime OSGi bakal duwe akses menyang dependensi, mula bundel kasebut ora perlu ngemot. Mulane, ditandhani minangka diwenehake.
Saiki ayo nggawe kelas HelloWorld sing langsung:
Kelas sing dadi titik mlebu kanggo bundel kudu ngetrapake antarmuka BundleActivator sing diwenehake OSGi.
Nalika mbendel ngemot kelas iki dibukak, platform OSGi nelpon wiwitan () fungsi. Ing sisih liyane, sakcepete sadurunge bundle mandheg, fungsi mandeg () diarani.
Aja lali yen saben bundel mung bisa duwe siji BundleActivator. Loro-lorone cara bisa komunikasi karo OSGi runtime nggunakake obyek BundleContext sing diwenehi.
Nggawe Bundle
Nggawe pom.xml bundle OSGi bener dening nggawe owah-owahan perlu.
Kaping pisanan, kita kudu nyatakake kanthi jelas yen tujuane yaiku ngasilake bundel.
Banjur, kita nggunakake maven-bundle-plugin kanggo paket kelas HelloWorld minangka bundel OSGi, duweni komunitas Apache Felix:
Nilai header OSGi sing pengin dilebokake ing file MANIFEST bundle kasebut ing bagean instruksi.
Bundle-Activator pancen jeneng sing cocog karo solusi BundleActivator sing bakal digunakake kanggo miwiti lan mungkasi bundel kasebut. Iku kompatibel karo kelas mung-digawe.
Sanajan dudu header OSGi, header Private-Package menehi instruksi kanggo nambah paket kasebut menyang bundel nanging ora bisa diakses kanggo plugin liyane. Mvn install printah kudu digunakake kanggo nggawe bundle.
Nginstal lan Mlaku Bundle
Ayo miwiti Karaf kanthi nglakokake printah iki:
ing ngendi "KARAF HOME" nuduhake folder ing ngendi Karaf disetel. Kita bisa nggunakake printah ing ngisor iki kanggo nginstal bundle nalika pituduh console Karaf katon:
Nggunakake repositori Maven lokal yaiku carane Karaf didhawuhi ngemot bundel kasebut.
Mbalekake ID numerik bundel kasebut, Karaf nulis. ID iki bisa beda-beda gumantung saka pirang-pirang bundel sing wis diinstal sadurunge. Bundel kasebut saiki wis kasil diinstal, lan prentah kanggo miwiti kaya ing ngisor iki:
Nalika sampeyan miwiti paket kasebut, "Hello World by Jay" ditampilake. Saiki kita bisa mungkasi lan mbusak bundel nggunakake:
Konsol nampilake "Goodbye World dening Jay."
kesimpulan
Pangembang bisa kanthi gampang nambah fungsi anyar menyang aplikasi web sing wis ana nalika tetep aman lan diisolasi saka komponen program utama liyane kanthi nggunakake OSGi.
Kita wis sinau babagan OSGi ing kirim iki, kalebu cara fungsine, kaluwihan, lan program sing gampang. Ora angel nggabungake OSGi menyang aplikasi sampeyan dhewe.
Sugeng coding!
Ninggalake a Reply