Ju tashmë e keni softuerin tuaj në vend, por ju duhet ende një metodë më efektive për t'u mundësuar përdoruesve tuaj teknikë të zgjerojnë platformën.
Edhe pse OSGi është i njohur për shumicën e zhvilluesve të Java, integrimi i tij në produktin tuaj mund të duket si një detyrë e frikshme. Mungesa e qartësisë në lidhje me punën e saktë të OSGi e ngatërron më tej rrugën përpara.
Ndryshe nga çdo gjë me të cilën do të donin të eksperimentonin, OSGi ndihet më shumë si përpjekje për të lundruar në det të gjerë te shumë zhvillues Java.
Ky artikull do t'ju prezantojë me tutorialin pranveror të OSGi Felix duke përdorur një program të drejtpërdrejtë, avantazhet e tij dhe detaje të tjera të rëndësishme.
Pra, çfarë është OSGi?
Krijimi dhe shpërndarja e moduleve dhe komponentëve është bërë e mundur nga korniza Java e njohur si OSGi (Open Service Gateway Initiative).
Ai thekson kapsullimin e funksionit dhe bashkimin e lirë, i cili ofron disa avantazhe për zhvilluesit, duke përfshirë funksionalitetin modular që është lehtësisht i transferueshëm midis kodeve burimore dhe testimit që nuk ka nevojë për varësi të pafundme.
Si funksionon OSGi?
Një sistem përbërës dinamik për Java përcaktohet nga një grup specifikimesh të quajtura OSGi. Këto specifika mundësojnë një qasje zhvillimi ku një aplikacion ndërtohet nga një numër pjesësh dhe më pas paketohet në pako.
Shërbimet lokale dhe të bazuara në rrjet përdoren nga këta komponentë për të komunikuar. Qëllimi është ta bësh kodin bazë të programit sa më kompakt të jetë e mundur. Është e mundur një lidhje e lartë midis këtij kodi dhe disa komponentëve.
Elementet e ndërtimit të ripërdorshëm të aplikacionit quhen komponentë. Mendoni për veçori si një karrocë blerjesh për faqen tuaj të internetit të tregtisë elektronike ose një aplikacion për listën e pagave për sistemin tuaj të menaxhimit të stafit.
Komponentët mund të përdorin OSGi për të fshehur implementimet e tyre nga komponentët e tjerë dhe t'u ofrojnë atyre vetëm të dhënat e nevojshme nëpërmjet shërbimeve.
Kjo parandalon komponentët nga ndryshimi i paqëllimtë i të dhënave në të cilat nuk duhet të kenë akses dhe menaxhon varësitë.
Të gjitha lidhjet ndërmjet komponentëve në një aplikacion OSGi bëhen nëpërmjet shërbimeve në një botë ideale. Një paketë Java përmban API që është specifikuar për shërbimet.
Bashkëpunimi ndërmjet ofruesve të shërbimeve dhe klientëve kërkon përdorimin e klasave dhe/ose ndërfaqeve, të cilat përbëjnë API-në.
Të gjithë komponentët OSGi janë të paketuara së bashku në pako, secila prej të cilave përfshin burimet që u nevojiten për të funksionuar. Paketat janë mjaft të qarta për atë që kanë nevojë nga mjedisi dhe çfarë janë në gjendje të bëjnë.
përfitimet
- Aplikacionet OSGi kanë akses në depot e jashtme të paketave.
- Korniza lejon dizajnimin e orientuar nga shërbimi në nivelin e modulit.
- Ai bën të mundur menaxhimin e versioneve dhe varësive të paketave të aplikacioneve, përveç standardizimit dhe lehtësimit të integrimit të bibliotekave të palëve të treta.
- Aplikacionet janë më të adaptueshme ndaj kërkesave në ndryshim, më të lëvizshme dhe më të shpejta për t'u riinxhinieruar.
- A aplikacion në internet mund të vendoset si një grup paketash OSGi të versionuara me një jetëgjatësi dinamike falë integrimit të kornizës me modelin e programimit Java EE.
- Në vend që të instalohet si një bibliotekë e palëve të treta si pjesë e aplikacionit, korniza ofron montimin deklarativ dhe testimin e njësisë së thjeshtë të Spring Framework në një formë të standardizuar që ofrohet si pjesë e kohës së ekzekutimit të serverit të aplikacionit.
- Për aplikacionet e korporatave të përbëra nga disa paketa të versionuara me cikle jete dinamike, korniza ofron izolim.
- Ai përmban një depo të integruar të paketave që mund të ruajë paketat e përbashkëta dhe të versionuara të përdorura nga disa aplikacione, duke parandaluar çdo aplikacion të vendosë një kopje të veçantë të secilës bibliotekë të përbashkët.
Fillimi me OSGi Felix Spring
Marrja e Burimeve
Duke shkarkuar versionin më të fundit të Apache Karaf nga kjo faqe, ne mund të fillojmë aventurën tonë OSGi.
Bazuar në Apache Felix, zbatimi Apache i specifikimit OSGi, Apache Karaf ofron një platformë për aplikacionet e bazuara në OSGi.
Karaf ofron veçori të ndryshme të dobishme në krye të Felix që do të na ndihmojnë të familjarizojmë veten me OSGi, si një ndërfaqe e linjës komanduese që do të na mundësojë të komunikojmë me platformën.
Pika e hyrjes për paketat
Një aplikacion duhet të paketohet si një paketë OSGi përpara se të mund të ekzekutohet në një mjedis OSGi. Për më tepër, pika e hyrjes së aplikacionit duhet të specifikohet; nuk është funksioni standard publik statik void main(String[] args).
Pra, le të fillojmë duke krijuar një "Përshëndetje Botë” aplikacion i bazuar në OSGi.
Ne fillojmë duke krijuar një varësi bazë OSGi API:
Koha e ekzekutimit OSGi do të ketë akses në varësinë, prandaj paketa nuk ka nevojë ta përmbajë atë. Prandaj, është shënuar si i furnizuar.
Tani le të krijojmë klasën e drejtpërdrejtë HelloWorld:
Klasat që veprojnë si pika hyrëse për paketat duhet të zbatojnë ndërfaqen BundleActivator të ofruar nga OSGi.
Kur lansohet paketa që përmban këtë klasë, platforma OSGi thërret funksionin start(). Në anën tjetër, pak përpara se pakoja të ndalet, thirret funksioni stop().
Të mos harrojmë se çdo pako mund të ketë vetëm një BundleActivator. Të dyja mënyrat mund të komunikojnë me kohën e ekzekutimit OSGi duke përdorur objektin BundleContext që është dhënë.
Krijimi i një pako
Bëjeni pom.xml një paketë të vërtetë OSGi duke bërë ndryshimet e nevojshme.
Së pari duhet të shprehim qartë se qëllimi ynë është të prodhojmë një pako.
Më pas, ne përdorim shtojcën maven-bundle për të paketuar klasën HelloWorld si një paketë OSGi, me mirësjellje të komunitetit Apache Felix:
Vlerat e titujve OSGi që dëshirojmë të përfshijmë në skedarin MANIFEST të paketës janë të specifikuara në seksionin e udhëzimeve.
Bundle-Activator është me të vërtetë emri i kualifikuar siç duhet i zgjidhjes BundleActivator që do të përdoret për të nisur dhe ndaluar paketën. Është në përputhje me klasën e sapokrijuar.
Ndërsa nuk është një titull OSGi, kreu i Paketës Private udhëzon shtojcën të shtojë paketën në paketë, por thjesht të mos e bëjë atë të aksesueshme për shtojcat e tjera. Komanda mvn install duhet të përdoret për të krijuar paketën.
Instalimi dhe ekzekutimi i paketës
Le të fillojmë Karaf duke ekzekutuar këtë komandë:
ku “KARAF HOME” i referohet dosjes ku është vendosur Karaf. Ne mund të përdorim komandën e mëposhtme për të instaluar paketën kur shfaqet kërkesa e konsolës Karaf:
Përdorimi i depove lokale të Maven është mënyra se si i thuhet Karafit të ngarkojë paketën.
Duke e kthyer ID-në numerike të paketës, Karaf e shkruan atë. Ky ID mund të ndryshojë në varësi të numrit të paketave të instaluara më parë. Pakoja tani është instaluar me sukses dhe komanda për ta nisur atë është si më poshtë:
Në momentin që lëshoni paketën, shfaqet "Hello World by Jay". Tani mund të ndalojmë dhe heqim paketën duke përdorur:
Konsola shfaq "Goodbye World by Jay".
Përfundim
Zhvilluesit mund të shtojnë lehtësisht funksionalitete të reja në një aplikacion ekzistues ueb duke e mbajtur atë të sigurt dhe të izoluar nga komponentët e tjerë të programit kryesor duke përdorur OSGi.
Ne kemi mësuar rreth OSGi në këtë postim, duke përfshirë mënyrën se si funksionon, avantazhet e tij dhe një program të drejtpërdrejtë. Nuk është e vështirë të inkorporosh OSGi në aplikacionin tënd.
Gëzuar kodimin!
Lini një Përgjigju