Teil on tarkvara juba paigas, kuid vajate siiski tõhusamat meetodit, mis võimaldab tehnilistel kasutajatel platvormi laiendada.
Kuigi OSGi on enamikule Java-arendajatele hästi teada, võib selle tootesse integreerimine tunduda hirmutav ülesanne. Selguse puudumine OSGi täpse töö kohta segab edasiminekut veelgi.
Erinevalt kõigest, millega nad tahaksid katsetada, tunneb OSGi paljude Java-arendajate jaoks pigem katset merel purjetada.
See artikkel tutvustab teile lihtsa programmi abil OSGi Felixi kevadõpetust, selle eeliseid ja muid olulisi üksikasju.
Mis on OSGi?
Moodulite ja komponentide loomise ja levitamise teeb võimalikuks Java raamistik, mida tuntakse OSGi (Open Service Gateway Initiative) nime all.
See rõhutab funktsioonide kapseldamist ja lahtist sidumist, mis pakub arendajatele mitmeid eeliseid, sealhulgas modulaarne funktsionaalsus, mis on lähtekoodide vahel kergesti ülekantav, ja testimine, mis ei vaja lõputuid sõltuvusi.
Kuidas OSGi töötab?
Java dünaamiline komponentsüsteem on määratletud spetsifikatsioonide komplektiga, mida nimetatakse OSGi. Need spetsifikatsioonid võimaldavad arendusviisi, kus rakendus koostatakse mitmest osast ja pakitakse seejärel kimpudesse.
Need komponendid kasutavad suhtlemiseks kohalikke ja võrgupõhiseid teenuseid. Eesmärk on muuta programmi põhikood võimalikult kompaktseks. Võimalik on kõrge side selle koodi ja mitme komponendi vahel.
Rakenduse korduvkasutatavaid ehituselemente nimetatakse komponentideks. Mõelge sellistele funktsioonidele nagu teie e-kaubanduse veebisaidi ostukorv või personalihaldussüsteemi palgaarvestus.
Komponendid saavad kasutada OSGi, et peita oma juurutused teiste komponentide eest ja pakkuda neile vajalikke andmeid ainult teenuste kaudu.
See hoiab ära komponentide tahtmatu muutmise andmetel, millele neil ei tohiks juurdepääsu olla, ja haldab sõltuvusi.
Kõik ühendused OSGi rakenduse komponentide vahel luuakse ideaalse maailma teenuste kaudu. Java pakett sisaldab teenuste jaoks määratud API-d.
Koostöö teenusepakkujate ja klientide vahel nõuab klasside ja/või liideste kasutamist, mis moodustavad API.
Kõik OSGi komponendid on kokku pakitud kimpudesse, millest igaüks sisaldab ressursse, mida nad vajavad. Kimpudel on üsna selge, mida nad keskkonnast vajavad ja milleks nad võimelised on.
kasu
- OSGi rakendustel on juurdepääs välistele kogumihoidlatele.
- Raamistik võimaldab teenusele orienteeritud disaini mooduli tasemel.
- See võimaldab hallata rakenduspakettide versioone ja sõltuvusi lisaks standardiseerimisele ja kolmandate osapoolte teekide integreerimise hõlbustamisele.
- Rakendused on muutuvate nõudmistega paremini kohandatavad, kaasaskantavamad ja kiiremini ümber kujundatavad.
- A veebirakendus tänu raamistiku integreerimisele Java EE programmeerimismudeliga saab seda kasutada dünaamilise elueaga versioonidega OSGi komplektide rühmana.
- Selle asemel, et installida rakenduse osana kolmanda osapoole teegina, pakub raamistik Spring Frameworki deklaratiivset kokkupanekut ja sujuvamat üksuse testimist standardsel kujul, mis on saadaval rakendusserveri käitusaja osana.
- Korporatiivsete rakenduste jaoks, mis koosnevad mitmest versiooniga dünaamilise elutsükliga paketist, pakub raamistik isolatsiooni.
- See sisaldab integreeritud komplektide hoidlat, mis võib salvestada jagatud ühiseid ja versioonidega pakette, mida kasutavad mitmed rakendused, takistades igal rakendusel juurutada iga jagatud teegi eraldi koopiat.
OSGi Felixi vedruga alustamine
Ressursside hankimine
Laadides alla Apache Karafi uusima versiooni aadressilt Selle saidi, saame alustada oma OSGi seiklust.
Tuginedes Apache Felixile, OSGi spetsifikatsiooni Apache juurutamisele, pakub Apache Karaf platvormi OSGi-põhistele rakendustele.
Karaf pakub lisaks Felixile mitmesuguseid kasulikke funktsioone, mis aitavad meil OSGi-ga tutvuda, näiteks käsurea liides, mis võimaldab meil platvormiga suhelda.
Kimpude sisenemispunkt
Rakendus peab olema pakendatud OSGi komplektina, enne kui seda saab OSGi keskkonnas käivitada. Lisaks tuleb täpsustada rakenduse sisenemise koht; see ei ole standardne avalik staatiline void main(String[] args) funktsioon.
Alustame looTere maailm” OSGi-l põhinev rakendus.
Alustame OSGi API põhisõltuvuse loomisest:
OSGi käitusajal on juurdepääs sõltuvusele, seetõttu ei pea pakett seda sisaldama. Seetõttu on see märgitud tarnituks.
Nüüd loome selge HelloWorldi klassi:
Kimpude sisenemispunktidena toimivad klassid peavad rakendama OSGi pakutavat BundleActivatori liidest.
Kui seda klassi sisaldav pakett käivitatakse, kutsub OSGi platvorm funktsiooni start(). Teisel pool, vahetult enne paketi peatamist, kutsutakse välja funktsioon stop().
Ärgem unustagem, et igal komplektil saab olla ainult üks BundleActivator. Mõlemad viisid saavad OSGi käitusajaga suhelda, kasutades antud BundleContexti objekti.
Kimbu loomine
Muutke pom.xml tõeliseks OSGi paketiks, tehes vajalikud muudatused.
Esmalt peame selgelt väljendama, et meie eesmärk on toota kimp.
Seejärel kasutame Apache Felixi kogukonna loal HelloWorldi klassi pakkimiseks OSGi komplektina pistikprogrammi maven-bundle-plugin:
OSGi päiste väärtused, mida soovime kaasata paketi MANIFEST-faili, on täpsustatud juhiste jaotises.
Bundle-Activator on tõepoolest BundleActivatori lahenduse õigesti määratletud nimi, mida kasutatakse paketi käivitamiseks ja peatamiseks. See ühildub äsja loodud klassiga.
Kuigi see ei ole OSGi päis, annab privaatpaketi päis pistikprogrammile korralduse lisada pakett komplekti, kuid mitte teha seda teistele pistikprogrammidele juurdepääsetavaks. Kimbu loomiseks tuleks kasutada käsku mvn install.
Komplekti installimine ja käitamine
Alustame Karafi käivitamist selle käsuga:
kus “KARAF HOME” viitab kaustale, kuhu Karaf seadistati. Kui kuvatakse Karafi konsooli viip, saame paketi installimiseks kasutada järgmist käsku:
Kohaliku Maveni hoidla kasutamine on see, kuidas Karafil kästakse komplekt laadida.
Tagastab kimbu numbrilise ID, kirjutab Karaf selle välja. See ID võib erineda olenevalt sellest, mitu kogumit on varem installitud. Kimp on nüüd edukalt installitud ja selle käivitamise käsk on järgmine:
Paketi käivitamise hetkel kuvatakse "Hello World by Jay". Nüüd saame kimbu peatada ja eemaldada, kasutades:
Konsoolil kuvatakse "Goodbye World by Jay".
Järeldus
Arendajad saavad OSGi abil hõlpsasti olemasolevale veebirakendusele uusi funktsioone lisada, hoides seda turvalisena ja põhiprogrammi muudest komponentidest eraldatuna.
Selles postituses õppisime OSGi kohta, sealhulgas selle toimimist, eeliseid ja lihtsat programmi. OSGi lisamine oma rakendusse pole keeruline.
Head kodeerimist!
Jäta vastus