Anjeun parantos ngagaduhan parangkat lunak anjeun, tapi anjeun masih peryogi metode anu langkung efektif pikeun ngamungkinkeun para pangguna téknis anjeun ngalegaan platform.
Sanaos OSGi dipikanyaho ku kalolobaan pamekar Java, ngahijikeun kana produk anjeun sigana sapertos tugas anu pikasieuneun. Kurangna kajelasan ngeunaan cara kerja OSGi anu akurat langkung ngaganggu jalan ka hareup.
Kontras sareng naon waé anu aranjeunna hoyong ékspérimén, OSGi langkung resep nyobian balayar laut anu lega ka seueur pamekar Java.
Artikel ieu bakal ngawanohkeun anjeun OSGi Felix spring tutorial ngagunakeun program lugas tur ngaliwatan, kaunggulan na, sarta detil penting lianna.
Jadi naon OSGi?
Nyiptakeun sareng nyebarkeun modul sareng komponén dimungkinkeun ku kerangka Java anu katelah OSGi (Open Service Gateway Initiative).
Éta nekenkeun fungsi enkapsulasi sareng gandeng leupas, anu nawiskeun sababaraha kaunggulan pikeun pamekar, kalebet fungsionalitas modular anu gampang ditransfer antara kode sumber sareng tés anu henteu peryogi katergantungan anu teu aya tungtungna.
Kumaha OSGi jalan?
Sistem komponén dinamis pikeun Java ditetepkeun ku sakumpulan spésifikasi anu disebut OSGi. Spésifikasi ieu ngamungkinkeun pendekatan pamekaran dimana aplikasi diwangun tina sababaraha bagian teras dibungkus kana bungkusan.
Ladenan lokal sareng jaringan dianggo ku komponén ieu pikeun komunikasi. Nyieun kode inti program sakumaha kompak sakumaha layak nyaéta tujuan. Gandeng tinggi antara kode ieu sareng sababaraha komponén mungkin.
Unsur wangunan anu tiasa dianggo deui dina aplikasi disebut komponén. Pikirkeun fitur sapertos karanjang balanja pikeun halaman wéb e-commerce anjeun atanapi aplikasi gaji pikeun sistem manajemen staf anjeun.
Komponén tiasa nganggo OSGi pikeun nyumputkeun palaksanaanna tina komponén-komponén sanés sareng ngan ukur nyayogikeun data anu diperyogikeun pikeun aranjeunna ngalangkungan jasa.
Ieu nyegah komponén tina ngahaja ngarobah data aranjeunna teu kudu boga aksés jeung ngatur kagumantungan.
Sadaya sambungan antara komponén dina aplikasi OSGi dilakukeun ngaliwatan jasa dina dunya idéal. Paket Java ngandung API anu dikhususkeun pikeun jasa.
Kolaborasi antara panyadia ladenan jeung konsumén merlukeun pamakéan kelas jeung/atawa interfaces, nu ngawangun API.
Sakabéh komponén OSGi ngarangkep babarengan dina bundles, nu masing-masing ngawengku sumber daya maranéhna butuh fungsi. Bundles cukup jelas ngeunaan naon maranéhna butuh ti lingkungan jeung naon maranéhna sanggup.
mangpaat
- Aplikasi OSGi gaduh aksés ka repositori bungkusan éksternal.
- Kerangka ngamungkinkeun desain berorientasi jasa dina tingkat modul.
- Éta ngamungkinkeun pikeun ngatur versi sareng katergantungan tina bungkusan aplikasi salian pikeun ngabakukeun sareng ngagampangkeun ngahijikeun perpustakaan pihak katilu.
- Aplikasi langkung adaptasi pikeun ngarobih paménta, langkung portabel, sareng langkung gancang pikeun direkayasa deui.
- A aplikasi wéb bisa deployed salaku grup versioned OSGi bundles kalayan hirupna dinamis berkat integrasi kerangka urang jeung model programming Java EE.
- Gantina dipasang salaku perpustakaan pihak katilu salaku bagian tina aplikasi, kerangka nyadiakeun assembly déklaratif jeung streamlined Unit nguji tina Spring Framework dina formulir standardized nu disadiakeun salaku bagian tina runtime server aplikasi.
- Pikeun aplikasi perusahaan anu diwangun ku sababaraha bungkusan vérsi sareng siklus hirup dinamis, kerangka nawiskeun isolasi.
- Ieu ngandung hiji Repository kebat terpadu nu bisa nyimpen dibagikeun umum tur versioned bundles dipaké ku sababaraha aplikasi, nyegah unggal aplikasi ti deploying salinan misah unggal perpustakaan dibagikeun.
Ngamimitian ku OSGi Felix spring
Meunangkeun Sumberdaya
Ku ngundeur versi panganyarna tina Apache Karaf situs ieu, urang tiasa ngamimitian petualangan OSGi urang.
Dumasar Apache Felix, palaksanaan Apache tina spésifikasi OSGi, Apache Karaf nyadiakeun platform pikeun aplikasi basis OSGi.
Karaf nyayogikeun rupa-rupa fitur anu ngabantosan di luhur Felix anu bakal ngabantosan urang pikeun ngabiasakeun diri sareng OSGi, sapertos antarmuka garis paréntah anu bakal ngamungkinkeun urang pikeun komunikasi sareng platform.
Entry Point Pikeun Bundles
Hiji aplikasi kedah dibungkus salaku bungkusan OSGi sateuacan tiasa dijalankeun dina lingkungan OSGi. Salaku tambahan, titik éntri aplikasi kedah dieusian; sanes standar umum statik batal utama (String [] args) fungsi.
Janten hayu urang mimitian ku nyiptakeun "Hello Dunya"aplikasi dumasar kana OSGi.
Urang mimitian ku ngadegkeun hiji gumantungna OSGi API dasar:
Runtime OSGi bakal gaduh aksés ka kagumantungan, ku kituna bundelna henteu kedah ngandung éta. Ku alatan éta, éta ditandaan salaku disadiakeun.
Ayeuna hayu urang jieun kelas HelloWorld anu lugas:
Kelas anu bertindak salaku titik éntri pikeun bundles kedah nerapkeun antarmuka BundleActivator anu disayogikeun OSGi.
Nalika kebat ngandung kelas ieu dibuka, platform OSGi nelepon fungsi mimiti (). Di sisi séjén, teu lila saméméh kebat ieu halted, fungsi eureun () disebut.
Hayu urang poho yén unggal kebat ngan bisa boga hiji BundleActivator. Kadua cara tiasa komunikasi sareng OSGi runtime nganggo obyék BundleContext anu dipasihkeun.
Nyieun hiji kebat
Jieun pom.xml hiji kebat OSGi leres ku nyieun parobahan perlu.
Urang mimitina kudu nganyatakeun jelas yén tujuan urang téh pikeun ngahasilkeun hiji kebat.
Teras, kami nganggo maven-bundle-plugin pikeun ngarangkep kelas HelloWorld salaku bungkusan OSGi, kahadean komunitas Apache Felix:
Nilai-nilai header OSGi anu urang hoyong lebetkeun kana file MANIFEST bungkusan ditunjuk dina bagian paréntah.
Bundle-Activator memang nami mumpuni leres tina solusi BundleActivator anu bakal dianggo pikeun ngamimitian sareng ngeureunkeun bungkusan. Éta cocog sareng kelas anu nembe didamel.
Sanaos éta sanés lulugu OSGi, lulugu Private-Package maréntahkeun plugin pikeun nambihan pakét kana bungkusan tapi henteu tiasa diaksés ku plugins sanés. Paréntah install mvn kedah dianggo pikeun nyiptakeun bungkusan.
Masang sareng Ngajalankeun Bundle
Hayu urang ngamimitian Karaf ku ngajalankeun paréntah ieu:
dimana "KARAF HOME" nujul kana folder dimana Karaf dipasang. Urang tiasa nganggo paréntah di handap ieu pikeun masang bungkusan nalika paréntah konsol Karaf muncul:
Nganggo gudang Maven lokal nyaéta kumaha Karaf dititah pikeun ngamuat bungkusan éta.
Ngabalikeun ID numerik bungkusan, Karaf nyeratna. ID ieu tiasa béda-béda gumantung kana sabaraha bundel anu tos dipasang sateuacana. Bundelna ayeuna parantos suksés dipasang, sareng paréntah pikeun ngaluncurkeunana nyaéta kieu:
Momen anjeun ngaluncurkeun pakét, "Hello World by Jay" dipintonkeun. Urang ayeuna tiasa ngeureunkeun sareng nyabut bungkusan nganggo:
Konsol nampilkeun "Goodbye World by Jay."
kacindekan
Pamekar tiasa sacara gampil nambihan fungsionalitas énggal kana aplikasi wéb anu tos aya bari ngajaga éta aman sareng terasing tina komponén program utama anu sanés nganggo OSGi.
Kami parantos diajar ngeunaan OSGi dina tulisan ieu, kalebet kumaha fungsina, kauntungan, sareng program anu lugas. Teu hese ngasupkeun OSGi kana aplikasi anjeun sorangan.
Senang coding!
Leave a Reply