Tayari una programu yako, lakini bado unahitaji mbinu bora zaidi ya kuwezesha watumiaji wako wa kiufundi kupanua jukwaa.
Ingawa OSGi inajulikana sana kwa watengenezaji wengi wa Java, kuijumuisha kwenye bidhaa yako kunaweza kuonekana kuwa kazi ngumu. Ukosefu wa uwazi juu ya utendakazi sahihi wa OSGi unachanganya zaidi barabara mbele.
Tofauti na kitu chochote ambacho wangependa kujaribu nacho, OSGi inahisi zaidi kama kujaribu kusafiri baharini kwa watengenezaji wengi wa Java.
Nakala hii itakujulisha kwa mafunzo ya chemchemi ya OSGi Felix kwa kutumia programu moja kwa moja na kupitia, faida zake, na maelezo mengine muhimu.
Kwa hivyo OSGi ni nini?
Kuunda na kusambaza moduli na vijenzi kunawezeshwa na mfumo wa Java unaojulikana kama OSGi (Mpango wa Ufunguzi wa Lango la Huduma).
Inasisitiza ujumuishaji wa utendakazi na uunganishaji huru, ambao hutoa manufaa kadhaa kwa wasanidi programu, ikiwa ni pamoja na utendakazi wa kawaida ambao unaweza kuhamishwa kwa urahisi kati ya misimbo ya chanzo na majaribio ambayo hayahitaji vitegemezi visivyoisha.
OSGi inafanya kazije?
Mfumo wa sehemu ya nguvu ya Java hufafanuliwa na seti ya vipimo vinavyoitwa OSGi. Vipimo hivi huwezesha mbinu ya ukuzaji ambapo programu hujengwa kutoka kwa sehemu kadhaa na kisha kuunganishwa katika vifurushi.
Huduma za ndani na za mtandao hutumiwa na vipengele hivi kuwasiliana. Kufanya msimbo wa msingi wa programu kuwa mshikamano kadri inavyowezekana ndilo lengo. Uunganisho wa juu kati ya kanuni hii na vipengele kadhaa inawezekana.
Vipengele vya ujenzi vinavyoweza kutumika tena vya programu huitwa vipengele. Fikiria kuhusu vipengele kama vile rukwama ya ununuzi ya tovuti yako ya biashara ya mtandaoni au ombi la malipo kwa mfumo wako wa usimamizi wa wafanyikazi.
Vipengele vinaweza kutumia OSGi kuficha utekelezaji wao kutoka kwa vipengele vingine na kutoa tu data muhimu kwao kupitia huduma.
Hii inazuia vipengee kubadilisha data bila kukusudia ambavyo havifai kufikia na kudhibiti utegemezi.
Viunganisho vyote kati ya vipengee katika programu ya OSGi hufanywa kupitia huduma katika ulimwengu bora. Kifurushi cha Java kina API ambayo imeainishwa kwa huduma.
Ushirikiano kati ya watoa huduma na wateja unahitaji matumizi ya madarasa na/au violesura, vinavyounda API.
Vipengee vyote vya OSGi vimefungwa pamoja katika vifurushi, ambavyo kila kimoja kinajumuisha rasilimali zinazohitaji kufanya kazi. Vifungu viko wazi kabisa juu ya kile wanachohitaji kutoka kwa mazingira na kile wanachoweza.
Faida
- Programu za OSGi zinaweza kufikia hazina za vifurushi vya nje.
- Mfumo huruhusu muundo unaolenga huduma katika kiwango cha moduli.
- Huwezesha kudhibiti matoleo na utegemezi wa vifurushi vya programu pamoja na kusawazisha na kurahisisha kuunganisha maktaba za watu wengine.
- Programu zinaweza kubadilika zaidi kwa mahitaji yanayobadilika, hubebeka zaidi, na usanifu upya kwa haraka.
- A mtandao maombi inaweza kutumwa kama kikundi cha vifurushi vya OSGi vilivyotolewa vilivyo na shukrani ya kudumu ya maisha kwa ushirikiano wa mfumo na modeli ya programu ya Java EE.
- Badala ya kusakinishwa kama maktaba ya wahusika wengine kama sehemu ya programu, mfumo huu hutoa mkusanyiko wa taarifa na upimaji wa kitengo uliorahisishwa wa Mfumo wa Spring katika fomu sanifu ambayo hutolewa kama sehemu ya muda wa utekelezaji wa seva ya programu.
- Kwa programu za kampuni zinazojumuisha vifurushi kadhaa vilivyotolewa na mizunguko ya maisha inayobadilika, mfumo hutoa kutengwa.
- Ina hazina iliyounganishwa ya vifurushi ambayo inaweza kuhifadhi vifurushi vya kawaida na vilivyotolewa vilivyoshirikiwa vinavyotumiwa na programu kadhaa, kuzuia kila programu kupeleka nakala tofauti ya kila maktaba inayoshirikiwa.
Kuanza na OSGi Felix spring
Kupata Rasilimali
Kwa kupakua toleo la hivi karibuni zaidi la Apache Karaf kutoka tovuti hii, tunaweza kuanza adha yetu ya OSGi.
Kulingana na Apache Felix, utekelezaji wa Apache wa vipimo vya OSGi, Apache Karaf hutoa jukwaa la programu zinazotegemea OSGi.
Karaf hutoa vipengele mbalimbali vya manufaa juu ya Felix ambavyo vitatusaidia kujifahamisha na OSGi, kama vile kiolesura cha mstari wa amri ambacho kitatuwezesha kuwasiliana na jukwaa.
Sehemu ya Kuingia kwa Vifurushi
Programu lazima ifungwe kama kifurushi cha OSGi kabla ya kuendeshwa katika mazingira ya OSGi. Zaidi ya hayo, hatua ya kuingia ya maombi lazima ielezwe; sio kazi ya kawaida ya utupu ya umma tuli (String[] args).
Kwa hivyo wacha tuanze kwa kuunda "Salamu, Dunia” programu kulingana na OSGi.
Tunaanza kwa kuanzisha utegemezi wa msingi wa OSGi API:
Wakati wa kukimbia wa OSGi utaweza kufikia utegemezi, kwa hivyo kifungu hakiitaji kuwa nacho. Kwa hivyo, imewekwa alama kama imetolewa.
Sasa wacha tuunde darasa moja kwa moja la HelloWorld:
Madarasa ambayo hufanya kama sehemu za kuingilia kwa vifurushi lazima yatekeleze kiolesura cha BundleActivator kilichotolewa na OSGi.
Wakati kifungu kilicho na darasa hili kinazinduliwa, jukwaa la OSGi huita kazi ya kuanza (). Kwa upande mwingine, muda mfupi kabla ya kifungu kusimamishwa, kazi stop() inaitwa.
Tusisahau kwamba kila kifungu kinaweza kuwa na BundleActivator moja tu. Njia zote mbili zinaweza kuwasiliana na wakati wa kukimbia wa OSGi kwa kutumia kitu cha BundleContext ambacho kimepewa.
Kutengeneza Bundle
Fanya pom.xml kuwa kifurushi cha kweli cha OSGi kwa kufanya mabadiliko yanayohitajika.
Ni lazima kwanza tueleze wazi kwamba lengo letu ni kuzalisha bundle.
Halafu, tunatumia programu-jalizi ya maven-bundle kufunga darasa la HelloWorld kama kifurushi cha OSGi, kwa hisani ya jamii ya Apache Felix:
Thamani za vichwa vya OSGi tunazotaka kujumuisha kwenye faili ya MANIFEST ya kifungu zimebainishwa katika sehemu ya maagizo.
Bundle-Activator kwa hakika ndilo jina linalohitimu ipasavyo la BundleActivator litakalotumika kuanzisha na kusimamisha kifurushi. Inaendana na darasa lililoundwa hivi karibuni.
Ingawa sio kichwa cha OSGi, kichwa cha Kifurushi cha Kibinafsi kinaelekeza programu-jalizi kuongeza kifurushi kwenye kifurushi lakini sio kuifanya ipatikane kwa programu-jalizi zingine. Amri ya usakinishaji ya mvn inapaswa kutumika kuunda kifungu.
Kufunga na Kuendesha Kifurushi
Wacha tuanze Karafu kwa kutekeleza amri hii:
ambapo "KARAF HOME" inarejelea folda ambapo Karaf iliwekwa. Tunaweza kutumia amri ifuatayo kusakinisha kifurushi wakati kidokezo cha kiweko cha Karaf kinapoonekana:
Kutumia hazina ya eneo la Maven ni jinsi Karaf anaambiwa kupakia kifurushi.
Akirudisha kitambulisho cha nambari cha kifurushi, Karaf anakiandika. Kitambulisho hiki kinaweza kutofautiana kulingana na ni vifurushi vingapi vilivyosakinishwa hapo awali. Kifurushi sasa kimewekwa kwa ufanisi, na amri ya kuizindua ni kama ifuatavyo.
Mara tu unapozindua kifurushi, maonyesho ya "Hello World by Jay". Sasa tunaweza kusitisha na kuondoa kifurushi kwa kutumia:
Dashibodi inaonyesha "Kwaheri Ulimwengu na Jay."
Hitimisho
Wasanidi programu wanaweza kuongeza utendakazi mpya kwa urahisi kwa programu iliyopo ya wavuti huku wakiiweka salama na kutengwa na vipengele vingine vya programu kuu kwa kutumia OSGi.
Tumejifunza kuhusu OSGi katika chapisho hili, pamoja na jinsi inavyofanya kazi, faida zake, na programu moja kwa moja. Si vigumu kujumuisha OSGi katika programu yako mwenyewe.
Furahia kuweka msimbo!
Acha Reply