We jixwe nermalava xwe di cîh de ye, lê hûn hîn jî hewceyê rêbazek bi bandortir in ku hûn bikarhênerên xweyên teknîkî bikar bînin ku platformê berfireh bikin.
Her çend OSGi ji piraniya pêşdebirên Java-yê re naskirî ye, entegrekirina wê di hilbera we de dibe ku wekî karekî dijwar xuya bike. Nebûna zelaliyê di derheqê xebatên rastîn ên OSGi de rê li ber pêşdetir dixe.
Berevajî her tiştê ku ew dixwazin biceribînin, OSGi bêtir wekî hewldana deryaya berfireh ji gelek pêşdebirên Java re hîs dike.
Ev gotar dê we dersa biharê ya OSGi Felix bi karanîna bernameyek rasterast nas bike û bi rê ve bibe, avantajên wê, û hûrguliyên din ên girîng.
Ji ber vê yekê OSGi çi ye?
Afirandin û belavkirina modul û pêkhateyan ji hêla çarçoweya Java-ya ku wekî OSGi tê zanîn (Insiyatîfa Deriyê Karûbarê Vekirî) ve hatî çêkirin.
Ew balê dikişîne ser vegirtina fonksiyonê û girêdana bêserûber, ku gelek feydeyan ji pêşdebiran re peyda dike, di nav de fonksiyona modular a ku bi hêsanî di navbera kodên çavkaniyê û ceribandina ku hewcedariya pêwendiyên bêdawî ne de tê veguheztin.
OSGi çawa dixebite?
Pergalek pêkhateya dînamîkî ya Java-yê ji hêla komek taybetmendiyan ve tê gotin OSGi. Van taybetmendiyan rêgezek pêşkeftinê dide ku serîlêdanek ji çend beşan tê çêkirin û dûv re di pakêtan de tê pak kirin.
Karûbarên herêmî û-based torê ji hêla van pêkhateyan ve ji bo ragihandinê têne bikar anîn. Armanc çêkirina koda bingehîn a bernameyê bi qasî ku pêkan be tevlihev e. Têkiliya bilind a di navbera vê kodê û çend pêkhateyan de gengaz e.
Ji hêmanên avahî yên ji nû ve bi kar anîna serîlêdanê re tê gotin pêkhate. Li ser taybetmendiyên mîna selikek kirînê ji bo malpera xweya e-bazirganî an serîlêdana mûçeyê ji bo pergala rêveberiya karmendê xwe bifikirin.
Pêkhat dikarin OSGi bikar bînin da ku pêkanînên xwe ji hêmanên din veşêrin û tenê bi karûbaran daneyên pêwîst ji wan re peyda bikin.
Ev rê li ber pêkhateyan digire ku bi nezanî daneyên ku divê negihîjin wan biguhezînin û girêdanan birêve dibe.
Hemî girêdanên di navbera pêkhateyan de di serîlêdanek OSGi de bi karûbarên li cîhanek îdeal têne çêkirin. Pakêtek Java-ya API-ya ku ji bo karûbaran hatî destnîşan kirin vedihewîne.
Hevkariya di navbera pêşkêşkerên karûbar û xerîdaran de karanîna çîn û/an navberan hewce dike, ku API-yê pêk tîne.
Hemî hêmanên OSGi bi hev re di pakêtan de têne pak kirin, ku her yek ji wan çavkaniyên ku ji bo fonksiyonê hewce dike vedihewîne. Bundles li ser tiştên ku ew ji hawîrdorê hewce ne û çi jêhatî ne pir zelal in.
Alîkariyên
- Serlêdanên OSGi xwedan depoyên pakêta derveyî ne.
- Çarçove di asta modulê de sêwirana karûbarê-oriented destûrê dide.
- Ew ji bilî standardîzekirin û hêsankirina entegrekirina pirtûkxaneyên sêyemîn gengaz dike ku meriv guherto û girêdanên pakêtên serîlêdanê jî birêve bibe.
- Serlêdan bi guhertina daxwaziyan re adapteyîtir in, ji nûvesazkirinê de pirtir û bileztir in.
- A serîlêdana web Bi saya yekbûna çarçoweyê bi modela bernamesaziya Java EE re dikare wekî komek pakêtên OSGi yên guhertoyên bi jiyanek dînamîkî were bicîh kirin.
- Li şûna ku wekî pirtûkxaneyek partiya sêyemîn wekî beşek serîlêdanê were saz kirin, çarçove kombûna daxuyandî û ceribandina yekîneya birêkûpêk a Çarçoveya Spring bi rengek standardkirî ku wekî beşek ji dema xebitandina servera serîlêdanê tê peyda kirin peyda dike.
- Ji bo serîlêdanên pargîdanî yên ku ji çend pakêtên guhertoyên bi çerxên jiyanê yên dînamîkî ve têne çêkirin, çarçove îzolasyonê pêşkêşî dike.
- Ew depoyek pakêtê ya yekbûyî vedihewîne ku dikare pakêtên hevpar û guhertoyên hevpar ên ku ji hêla gelek serîlêdanan ve têne bikar anîn hilîne, rê nade ku her serîlêdan kopiyek cûda ya her pirtûkxaneyek hevpar bi cîh bike.
Bi bihara OSGi Felix re dest pê kirin
Bidestxistina Çavkaniyan
Bi daxistina guhertoya herî dawî ya Apache Karaf ji vê malperê, em dikarin serpêhatiya xwe ya OSGi dest pê bikin.
Li ser bingeha Apache Felix, pêkanîna Apache ya taybetmendiya OSGi, Apache Karaf ji bo serîlêdanên OSGi-based platformek peyda dike.
Karaf li ser Felix taybetmendiyên cihêreng ên arîkar peyda dike ku dê ji me re bibe alîkar ku em xwe bi OSGi-yê nas bikin, wek navberek rêza fermanê ku dê rê bide me ku em bi platformê re têkilî daynin.
Xala Têketinê Ji Bo Bundles
Berî ku ew di hawîrdorek OSGi de were xebitandin, pêdivî ye ku serîlêdan wekî pakêtek OSGi were pak kirin. Wekî din, divê xala têketina serîlêdanê were diyar kirin; ew ne fonksiyona sereke ya valahiya statîk a gelemperî ye (String[] args).
Ji ber vê yekê em bi afirandina "Merheba cîhan" sepanê li ser bingeha OSGi.
Em bi damezrandina pêwendiyek bingehîn a OSGi API dest pê dikin:
Wextê xebitandina OSGi dê bigihîje girêdanê, ji ber vê yekê pêdivî nake ku pêvek wê bigire. Ji ber vê yekê, ew wekî peydakirî tête nîşankirin.
Naha em çîna rasterast HelloWorld biafirînin:
Dersên ku wekî xalên têketinê ji bo pakêtan tevdigerin divê pêwendiya BundleActivator-a pêşkêşkirî ya OSGi bicîh bikin.
Dema ku pakêta ku vê polê vedihewîne tê destpêkirin, platforma OSGi fonksiyona start() vedixwîne. Li aliyê din, demek kurt berî ku pakêt were sekinandin, fonksiyona stop() tê gazî kirin.
Em ji bîr nekin ku her pakêt dikare tenê yek BundleActivator hebe. Her du rê jî dikarin bi dema xebitandina OSGi re bi karanîna nesneya BundleContext ku hatî dayîn re têkilî daynin.
Çêkirina Bundle
Bi çêkirina guhertinên pêwîst, pom.xml bikin pakêtek OSGi ya rastîn.
Berî her tiştî divê em bi zelalî diyar bikin ku armanca me ew e ku em berhevokek çêbikin.
Dûv re, em pêveka maven-bundle bikar tînin da ku çîna HelloWorld wekî pakêtek OSGi, bi xêra civata Apache Felix pak bikin:
Nirxên sernavên OSGi yên ku em dixwazin di pelê MANIFESTê ya pakêtê de bihewînin di beşa talîmatan de têne destnîşan kirin.
Bundle-Activator bi rastî navê bi rêkûpêk jêhatî ya çareseriya BundleActivator e ku dê ji bo destpêkirin û rawestandina pakêtê were bikar anîn. Ew bi çîna nû-afirandî re hevaheng e.
Digel ku ew ne sernavek OSGi ye, sernavê Pakêta Taybet ferman dide pêvekê ku pakêtê li pakêtê zêde bike lê tenê wê negihîne pêvekên din. Divê emrê sazkirina mvn ji bo afirandina pakêtê were bikar anîn.
Sazkirin û xebitandina Bundle
Ka em Karaf bi vê fermanê dest pê bikin:
ku "KARAF HOME" tê wateya peldanka ku Karaf lê hatiye sazkirin. Em dikarin fermana jêrîn bikar bînin da ku pakêtê saz bikin dema ku tavilê konsolê Karaf xuya bibe:
Bikaranîna depoya herêmî ya Maven bi vî rengî ye ku ji Karaf re tê gotin ku pakêtê bar bike.
Karaf nasnameya jimareyî ya pakêtê vedigerîne. Dibe ku ev nasname li gorî çend pakêtên berê hatine saz kirin cûda bibe. Naha pakêt bi serfirazî hate saz kirin, û fermana destpêkirina wê wiha ye:
Dema ku hûn pakêtê dest pê dikin, "Hello World by Jay" nîşan dide. Naha em dikarin bi karanîna pakêtê rawestînin û rakin:
Konsolê "Goodbye World by Jay" nîşan dide.
Xelasî
Pêşdebir dikarin bi karanîna OSGi bi hêsanî fonksiyonek nû li serîlêdanek tevnvî ya heyî zêde bikin dema ku wê ewledar û ji hêmanên din ên bernameya sereke veqetînin.
Em di vê postê de li ser OSGi fêr bûne, tevî ku ew çawa dixebite, avantajên wê, û bernameyek rasterast. Ne dijwar e ku hûn OSGi-yê di serîlêdana xwe de bicîh bikin.
Kodkirina xweş!
Leave a Reply