Mae gennych eich meddalwedd eisoes yn ei le, ond mae angen dull mwy effeithiol arnoch o hyd o alluogi'ch defnyddwyr technegol i ehangu'r platfform.
Er bod OSGi yn adnabyddus i'r rhan fwyaf o ddatblygwyr Java, gall ei integreiddio i'ch cynnyrch ymddangos yn dasg frawychus. Mae'r diffyg eglurder ynghylch union weithrediadau OSGi yn drysu'r ffordd ymlaen ymhellach.
Yn wahanol i unrhyw beth yr hoffent arbrofi ag ef, mae OSGi yn teimlo'n debycach i geisio hwylio'r môr llydan i lawer o ddatblygwyr Java.
Bydd yr erthygl hon yn eich cyflwyno i diwtorial gwanwyn OSGi Felix gan ddefnyddio rhaglen syml a mynd drwodd, ei fanteision, a manylion pwysig eraill.
Felly beth yw OSGi?
Mae creu a dosbarthu modiwlau a chydrannau yn bosibl gan y fframwaith Java a elwir yn OSGi (Menter Porth Gwasanaeth Agored).
Mae'n pwysleisio amgáu swyddogaeth a chyplu rhydd, sy'n cynnig nifer o fanteision i ddatblygwyr, gan gynnwys ymarferoldeb modiwlaidd y gellir ei drosglwyddo'n hawdd rhwng codau ffynhonnell a phrofion nad oes angen dibyniaethau diderfyn arnynt.
Sut mae OSGi yn gweithio?
Diffinnir system gydran ddeinamig ar gyfer Java gan set o fanylebau o'r enw OSGi. Mae'r manylebau hyn yn galluogi dull datblygu lle mae cymhwysiad yn cael ei adeiladu o nifer o rannau ac yna'n cael ei becynnu'n fwndeli.
Mae'r cydrannau hyn yn defnyddio gwasanaethau lleol a rhwydwaith i gyfathrebu. Gwneud cod craidd y rhaglen mor gryno ag sy'n ymarferol yw'r nod. Mae cyplydd uchel rhwng y cod hwn a sawl cydran yn bosibl.
Gelwir elfennau adeiladu y cais y gellir eu hailddefnyddio yn gydrannau. Meddyliwch am nodweddion fel trol siopa ar gyfer eich gwefan e-fasnach neu gais cyflogres ar gyfer eich system rheoli staff.
Gall cydrannau ddefnyddio OSGi i guddio eu gweithrediadau rhag cydrannau eraill a dim ond darparu'r data angenrheidiol iddynt trwy wasanaethau.
Mae hyn yn atal cydrannau rhag newid data yn anfwriadol na ddylent gael mynediad ato ac mae'n rheoli dibyniaethau.
Gwneir pob cysylltiad rhwng cydrannau mewn cymhwysiad OSGi trwy wasanaethau mewn byd delfrydol. Mae pecyn Java yn cynnwys yr API a nodir ar gyfer gwasanaethau.
Mae cydweithredu rhwng darparwyr gwasanaethau a chwsmeriaid yn gofyn am ddefnyddio dosbarthiadau a/neu ryngwynebau, sy'n rhan o'r API.
Mae'r holl gydrannau OSGi wedi'u pecynnu gyda'i gilydd mewn bwndeli, ac mae pob un ohonynt yn cynnwys yr adnoddau sydd eu hangen arnynt i weithredu. Mae bwndeli yn eithaf clir ynghylch yr hyn sydd ei angen arnynt gan yr amgylchedd a'r hyn y gallant ei wneud.
Manteision
- Mae gan gymwysiadau OSGi fynediad i ystorfeydd bwndel allanol.
- Mae'r fframwaith yn caniatáu dylunio gwasanaeth-ganolog ar lefel modiwl.
- Mae'n ei gwneud hi'n bosibl rheoli fersiynau a dibyniaethau bwndeli cymwysiadau yn ogystal â safoni a'i gwneud hi'n haws integreiddio llyfrgelloedd trydydd parti.
- Mae cymwysiadau yn fwy addasadwy i ofynion newidiol, yn fwy cludadwy, ac yn gyflymach i'w hailbeiriannu.
- A cymhwysiad gwe gellir eu defnyddio fel grŵp o fwndeli OSGi fersiwn gydag oes ddeinamig diolch i integreiddio'r fframwaith â model rhaglennu Java EE.
- Yn hytrach na chael ei gosod fel llyfrgell trydydd parti fel rhan o'r cais, mae'r fframwaith yn darparu cydosod datganiadol a phrofi uned symlach o Fframwaith y Gwanwyn ar ffurf safonol a ddarperir fel rhan o amser rhedeg gweinydd y cais.
- Ar gyfer cymwysiadau corfforaethol sy'n cynnwys nifer o fwndeli fersiwn gyda chylchoedd bywyd deinamig, mae'r fframwaith yn cynnig ynysu.
- Mae'n cynnwys ystorfa bwndel integredig sy'n gallu storio bwndeli cyffredin a fersiynau a rennir a ddefnyddir gan sawl cymhwysiad, gan atal pob cais rhag defnyddio copi ar wahân o bob llyfrgell a rennir.
Dechrau arni gyda gwanwyn OSGi Felix
Cael yr Adnoddau
Trwy lawrlwytho fersiwn diweddaraf Apache Karaf o safle hwn, gallwn ddechrau ein hantur OSGi.
Yn seiliedig ar Apache Felix, gweithrediad Apache o'r fanyleb OSGi, mae Apache Karaf yn darparu llwyfan ar gyfer cymwysiadau sy'n seiliedig ar OSGi.
Mae Karaf yn darparu nodweddion defnyddiol amrywiol ar ben Felix a fydd yn ein cynorthwyo i ymgyfarwyddo ag OSGi, megis rhyngwyneb llinell orchymyn a fydd yn ein galluogi i gyfathrebu â'r platfform.
Man Mynediad ar gyfer Bwndeli
Rhaid i gais gael ei becynnu fel bwndel OSGi cyn y gellir ei redeg mewn amgylchedd OSGi. Yn ogystal, rhaid nodi pwynt mynediad y cais; nid dyma'r swyddogaeth prif gyflenwad gwag sefydlog cyhoeddus (String[] args).
Felly gadewch i ni ddechrau trwy greu “Helo Byd” cais yn seiliedig ar OSGi.
Rydym yn dechrau trwy sefydlu dibyniaeth API OSGi sylfaenol:
Bydd amser rhedeg OSGi yn cael mynediad at y ddibyniaeth, felly nid oes angen i'r bwndel ei gynnwys. Felly, mae wedi'i farcio fel y'i cyflenwir.
Nawr, gadewch i ni greu'r dosbarth HelloWorld syml:
Rhaid i ddosbarthiadau sy'n gweithredu fel pwyntiau mynediad ar gyfer bwndeli weithredu'r rhyngwyneb BundleActivator a ddarperir gan OSGi.
Pan fydd y bwndel sy'n cynnwys y dosbarth hwn yn cael ei lansio, mae'r platfform OSGi yn galw'r swyddogaeth cychwyn (). Ar yr ochr arall, ychydig cyn i'r bwndel gael ei atal, gelwir y ffwythiant stop ().
Peidiwch ag anghofio mai dim ond un BundleActivator y gall pob bwndel ei gael. Gall y ddwy ffordd gyfathrebu ag amser rhedeg OSGi gan ddefnyddio'r gwrthrych BundleContext a roddir.
Creu Bwndel
Gwnewch y pom.xml yn fwndel OSGi gwir trwy wneud y newidiadau angenrheidiol.
Rhaid i ni yn gyntaf fynegi yn glir mai ein nod yw cynhyrchu bwndel.
Yna, rydyn ni'n defnyddio'r ategyn maven-bwndel i becynnu'r dosbarth HelloWorld fel bwndel OSGi, trwy garedigrwydd cymuned Apache Felix:
Mae gwerthoedd y penawdau OSGi yr ydym am eu cynnwys yn ffeil MANIFEST y bwndel wedi'u nodi yn yr adran cyfarwyddiadau.
Bwndel-Activator yn wir yr enw cymwys iawn y BundleActivator ateb a fydd yn cael eu cyflogi i ddechrau a stopio y bwndel. Mae'n gydnaws â'r dosbarth sydd newydd ei greu.
Er nad yw'n bennawd OSGi, mae pennawd Pecyn Preifat yn cyfarwyddo'r ategyn i ychwanegu'r pecyn at y bwndel ond dim ond i beidio â'i wneud yn hygyrch i ategion eraill. Dylid defnyddio'r gorchymyn gosod mvn i greu'r bwndel.
Gosod a Rhedeg y Bwndel
Gadewch i ni ddechrau Karaf trwy redeg y gorchymyn hwn:
lle mae “KARAF HOME” yn cyfeirio at y ffolder lle sefydlwyd Karaf. Gallwn ddefnyddio'r gorchymyn canlynol i osod y bwndel pan fydd anogwr consol Karaf yn ymddangos:
Gan ddefnyddio ystorfa leol Maven yw sut y dywedir wrth Karaf am lwytho'r bwndel.
Wrth ddychwelyd ID rhifol y bwndel, mae Karaf yn ei ysgrifennu. Gallai'r ID hwn fod yn wahanol yn dibynnu ar faint o fwndeli sydd wedi'u gosod yn flaenorol. Mae'r bwndel bellach wedi'i osod yn llwyddiannus, ac mae'r gorchymyn i'w lansio fel a ganlyn:
Yr eiliad y byddwch chi'n lansio'r pecyn, mae “Hello World by Jay” yn arddangos. Gallwn nawr atal a chael gwared ar y bwndel gan ddefnyddio:
Mae'r consol yn arddangos “Goodbye World by Jay.”
Casgliad
Gall datblygwyr ychwanegu swyddogaethau newydd yn hawdd at raglen we sy'n bodoli eisoes tra'n ei gadw'n ddiogel ac wedi'i ynysu oddi wrth gydrannau eraill y brif raglen trwy ddefnyddio OSGi.
Rydym wedi dysgu am OSGi yn y swydd hon, gan gynnwys sut mae'n gweithredu, ei fanteision, a rhaglen syml. Nid yw'n anodd ymgorffori OSGi yn eich cais eich hun.
Codio hapus!
Gadael ymateb