Iwe unotova nesoftware yako panzvimbo, asi iwe uchiri kuda imwe nzira inoshanda yekugonesa vashandisi vako vehunyanzvi kuwedzera chikuva.
Kunyangwe OSGi ichizivikanwa nevazhinji vanogadzira Java, kuibatanidza muchigadzirwa chako kungaite sebasa rinonetsa. Kushaikwa kwekujekesa nezve OSGi chaiyo yekushanda kunowedzera kukanganisa nzira yekumberi.
Kusiyana nechero chinhu chavanoda kuyedza nacho, OSGi inonzwa senge kuyedza kufamba negungwa rakafara kune vakawanda vanogadzira Java.
Ichi chinyorwa chichakuzivisa iwe kune OSGi Felix chitubu chidzidzo uchishandisa chirongwa chakatwasuka uye upfuure, zvakanakira, uye zvimwe zvakakosha.
Saka chii chinonzi OSGi?
Kugadzira uye kugovera mamodule uye zvikamu zvinogoneka neJava chimiro chinozivikanwa seOSGi (Open Service Gateway Initiative).
Iyo inosimbisa basa encapsulation uye yakasununguka coupling, iyo inopa akati wandei mabhenefiti kune vanogadzira, kusanganisira modular mashandiro ayo ari nyore kutamiswa pakati pemakodhi makodhi uye kuyedza izvo zvisingade kutsamira kusingaperi.
OSGi inoshanda sei?
A dynamic component system yeJava inotsanangurwa neseti yezvinyorwa zvinonzi OSGi. Aya ma specs anogonesa nzira yekusimudzira uko application inovakwa kubva kune akati wandei zvikamu uye yobva yaiswa mumasumbu.
Nzvimbo uye network-based masevhisi anoshandiswa nezvikamu izvi kutaurirana. Kugadzira iyo yakakosha kodhi yechirongwa se compact sezvinobvira ndicho chinangwa. Kubatana kwepamusoro pakati pekodhi iyi uye zvikamu zvakawanda zvinogoneka.
Iyo application's reusable building elements inonzi components. Funga nezve maficha akaita sengoro yekutengera yako e-commerce webhusaiti kana yekubhadhara application kune yako vashandi manejimendi system.
Zvikamu zvinogona kushandisa OSGi kuvanza kuita kwavo kubva kune zvimwe zvikamu uye kungopa iyo inodiwa data kwavari kuburikidza nemasevhisi.
Izvi zvinodzivirira zvikamu kubva mukusaziva kushandura data zvavasingafanire kuwana uye kugadzirisa zvinotsamira.
Zvese zvinongedzo pakati pezvikamu muOSGi application zvinogadzirwa kuburikidza nemasevhisi munyika yakanaka. A Java package ine API inotarirwa masevhisi.
Kudyidzana pakati pevashandi vebasa nevatengi kunoda kushandiswa kwemakirasi uye / kana mainterfaces, ayo anoumba API.
Zvese zveOSGi zvikamu zvakaiswa pamwechete mumasumbu, chimwe nechimwe chinosanganisira zviwanikwa zvavanoda kuti zvishande. Masumbu akajeka chaizvo nezve izvo zvavanoda kubva kune zvakatipoteredza uye izvo zvavanogona kuita.
Benefits
- OSGi application inokwanisa kuwana ekunze bundle repositori.
- Iyo dhizaini inobvumira dhizaini yakatarisana nesevhisi padanho remodule.
- Zvinoita kuti zvikwanise kubata mavhezheni uye zvinoenderana nemasumbu ekushandisa mukuwedzera pakumisikidza uye kuita kuti zvive nyore kubatanidza maraibhurari ebato rechitatu.
- Zvishandiso zvinonyanya kuchinjika kune zvinoshanduka zvinodikanwa, zvinotakurika, uye nekukurumidza kuita reengineer.
- A webhu kunyorera inogona kuiswa seboka reshanduro yeOSGi masumbu ane simba rehupenyu hwese nekuda kwekubatanidzwa kweiyo chimiro neJava EE programming modhi.
- Panzvimbo pekuiswa seraibhurari yebato rechitatu sechikamu chechishandiso, chimiro chinopa iyo inozivisa gungano uye yakakwenenzverwa yeyuniti yekuyedzwa kweSpring Framework muchimiro chakamisikidzwa chinopihwa sechikamu chenguva yekushandisa server.
- Kumashandisirwo emakambani akagadzirwa akati wandei akashandurwa masumbu ane simba rehupenyu, chimiro chinopa kuzviparadzanisa.
- Iyo ine yakasanganiswa bundle repository inogona kuchengeta yakagovaniswa uye yakashandurwa mabundle anoshandiswa neakawanda maapplication, kudzivirira imwe neimwe application kubva pakuendesa kopi yakaparadzana yeraibhurari yega yega yakagovaniswa.
Kutanga neOSGi Felix chitubu
Kuwana Zvishandiso
Nekudhawunirodha yazvino vhezheni yeApache Karaf kubva iyi site, tinogona kutanga yedu OSGi adventure.
Kubva paApache Felix, iyo Apache kuisirwa kweiyo OSGi yakatarwa, Apache Karaf inopa chikuva cheOSGi-based application.
Karaf inopa akasiyana anobatsira maficha pamusoro paFelix ayo achatibatsira mukuzviziva pachedu neOSGi, senge yekuraira mutsara interface inozotigonesa kutaurirana nepuratifomu.
Yekupinda Nzvimbo Yemabundles
Chikumbiro chinofanirwa kurongedzerwa seOSGi bundle isati yagona kumhanyisa munzvimbo yeOSGi. Pamusoro pezvo, nzvimbo yekupinda yekushandisa inofanirwa kutsanangurwa; haisi iyo yakajairwa yeruzhinji static void main(String[] args) basa.
Saka ngatitange nekugadzira "Mhoro Nyika” application yakavakirwa paOSGi.
Isu tinotanga nekumisikidza yakakosha OSGi API kutsamira:
Iyo OSGi yekumhanyisa nguva ichawana mukana wekutsamira, saka bundle haidi kuve nayo. Naizvozvo, inotaridzwa seyakapihwa.
Zvino ngatigadzire iyo yakatwasuka HelloWorld kirasi:
Makirasi anoita semapoinzi ekupinda emasumbu anofanirwa kuita iyo OSGi-yakapihwa BundleActivator interface.
Kana iyo bundle ine kirasi iyi yakatangwa, iyo OSGi chikuva inodaidza kutanga () basa. Kune rimwe divi, nguva pfupi bundle risati ramiswa, basa rinomira () rinodanwa.
Ngatisakanganwe kuti bundle rega rega rinogona kuva neBundleActivator imwe chete. Nzira mbiri idzi dzinogona kutaurirana neOSGi nguva yekumhanya uchishandisa iyo BundleContext chinhu chinopihwa.
Kugadzira Bundle
Ita pom.xml ive yechokwadi OSGi bundle nekuita shanduko dzinodiwa.
Tinofanira kutanga tataura zvakajeka kuti chinangwa chedu ndechekuburitsa bundle.
Zvadaro, isu tinoshandisa maven-bundle-plugin kurongedza HelloWorld kirasi seOSGi bundle, neruremekedzo rweApache Felix nharaunda:
Hukoshi hwemisoro yeOSGi yatinoshuvira kuisa mubhandle's MANIFEST faira inotsanangurwa muchikamu chemirairo.
Bundle-Activator ndiro zita rakanyatsokodzera reBundleActivator mhinduro iyo ichashandiswa kutanga nekumisa bundle. Inopindirana nekirasi yakasikwa.
Kunyange isiri iyo OSGi musoro, iyo Yakavanzika-Package musoro inoraira plugin kuti iwedzere iyo pasuru pasumbu asi kwete kuita kuti iwanikwe kune mamwe maplugins. Iyo mvn install command inofanira kushandiswa kugadzira bundle.
Kuisa uye Kumhanyisa Bundle
Ngatitangei Karaf nekumhanyisa murairo uyu:
uko "KARAF HOME" inoreva folda yakamiswa Karaf. Tinogona kushandisa unotevera kuraira kuisa bundle kana iyo Karaf console yekukurumidza ichioneka:
Kushandisa iyo yemuno Maven repository ndiyo nzira iyo Karaf anoudzwa kurodha bundle.
Kudzosa ID yenhamba yebundle, Karaf anoinyora kunze. Iyi ID inogona kusiyana zvichienderana nekuti mangani mabundle akamboiswa. Iyo bundle ikozvino yaiswa zvinobudirira, uye murairo wekuivhura wakaita seinotevera:
Iyo nguva yaunotanga pasuru, "Mhoro Nyika naJay" inoratidza. Isu tinogona ikozvino kumisa uye kubvisa bundle tichishandisa:
Iyo console inoratidza "Goodbye World naJay."
mhedziso
Vagadziri vanogona kuwedzera nyore kushanda kutsva kune iripo webhu application uku vachiichengeta yakachengeteka uye yakaparadzaniswa nezvimwe zvikamu zvechirongwa chikuru nekushandisa OSGi.
Tadzidza nezve OSGi mune ino positi, kusanganisira mashandiro ayo, zvakanakira, uye chirongwa chakatwasuka. Hazvina kuoma kubatanidza OSGi mune yako application.
Anofara kukodha!
Leave a Reply