Aveți deja aplicația software, dar aveți nevoie de o metodă mai eficientă care să le permită utilizatorilor tehnici să extindă platforma.
Chiar dacă OSGi este binecunoscut de majoritatea dezvoltatorilor Java, integrarea acestuia în produsul dvs. poate părea o sarcină descurajantă. Lipsa de claritate cu privire la funcționarea precisă a OSGi încurcă și mai mult drumul de urmat.
Spre deosebire de orice ar dori să experimenteze, OSGi se simte mai degrabă ca să încerce să navigheze pe marea largă către mulți dezvoltatori Java.
Acest articol vă va prezenta tutorialul de primăvară OSGi Felix folosind un program simplu și vă va prezenta, avantajele sale și alte detalii importante.
Deci, ce este OSGi?
Crearea și distribuirea modulelor și componentelor este posibilă de cadrul Java cunoscut sub numele de OSGi (Open Service Gateway Initiative).
Ea pune accent pe încapsularea funcțiilor și cuplarea liberă, care oferă mai multe avantaje dezvoltatorilor, inclusiv funcționalitatea modulară care este ușor transferabilă între codurile sursă și testarea care nu necesită dependențe nesfârșite.
Cum funcționează OSGi?
Un sistem de componente dinamice pentru Java este definit de un set de specificații numit OSGi. Aceste specificații permit o abordare de dezvoltare în care o aplicație este construită dintr-un număr de părți și apoi ambalată în pachete.
Serviciile locale și bazate pe rețea sunt utilizate de aceste componente pentru a comunica. Scopul este de a face codul de bază al programului cât mai compact posibil. Este posibilă o cuplare ridicată între acest cod și mai multe componente.
Elementele de construcție reutilizabile ale aplicației se numesc componente. Gândiți-vă la funcții precum un coș de cumpărături pentru site-ul dvs. de comerț electronic sau o aplicație de salarizare pentru sistemul dvs. de management al personalului.
Componentele pot folosi OSGi pentru a-și ascunde implementările de alte componente și pentru a le furniza numai datele necesare prin intermediul serviciilor.
Acest lucru împiedică componentele să modifice neintenționat datele la care nu ar trebui să aibă acces și gestionează dependențele.
Toate conexiunile dintre componente dintr-o aplicație OSGi sunt realizate prin servicii într-o lume ideală. Un pachet Java conține API-ul specificat pentru servicii.
Colaborarea dintre furnizorii de servicii și clienți necesită utilizarea unor clase și/sau interfețe, care alcătuiesc API-ul.
Toate componentele OSGi sunt împachetate în pachete, fiecare dintre ele include resursele de care au nevoie pentru a funcționa. Pachetele sunt destul de clare despre ce au nevoie de la mediu și de ce sunt capabile.
Beneficii
- Aplicațiile OSGi au acces la depozitele de pachete externe.
- Cadrul permite proiectarea orientată spre servicii la nivel de modul.
- Face posibilă gestionarea versiunilor și dependențelor pachetelor de aplicații, pe lângă standardizarea și facilitarea integrării bibliotecilor terțe.
- Aplicațiile sunt mai adaptabile la cerințele în schimbare, mai portabile și mai rapid de reproiectat.
- A aplicatie web poate fi implementat ca un grup de pachete OSGi versiuni cu o durată de viață dinamică datorită integrării cadrului cu modelul de programare Java EE.
- În loc să fie instalat ca bibliotecă terță parte ca parte a aplicației, cadrul oferă asamblarea declarativă și testarea unitară simplificată a Spring Framework într-o formă standardizată care este furnizată ca parte a rulării serverului de aplicații.
- Pentru aplicațiile corporative formate din mai multe pachete versiuni cu cicluri de viață dinamice, cadrul oferă izolație.
- Conține un depozit integrat de pachete care poate stoca pachete comune partajate și versiuni utilizate de mai multe aplicații, împiedicând fiecare aplicație să implementeze o copie separată a fiecărei biblioteci partajate.
Începeți cu OSGi Felix primăvară
Obținerea resurselor
Prin descărcarea celei mai recente versiuni Apache Karaf de pe acest site, putem începe aventura noastră OSGi.
Bazat pe Apache Felix, implementarea Apache a specificației OSGi, Apache Karaf oferă o platformă pentru aplicații bazate pe OSGi.
Karaf oferă diverse funcții utile pe lângă Felix, care ne vor ajuta să ne familiarizăm cu OSGi, cum ar fi o interfață de linie de comandă care ne va permite să comunicăm cu platforma.
Punct de intrare pentru pachete
O aplicație trebuie să fie ambalată ca un pachet OSGi înainte de a putea fi rulată într-un mediu OSGi. În plus, trebuie specificat punctul de intrare în aplicație; nu este funcția standard public static void main(String[] args).
Deci, să începem prin a crea un „Salut Lume” aplicație bazată pe OSGi.
Începem prin a stabili o dependență de bază OSGi API:
Runtime-ul OSGi va avea acces la dependență, prin urmare pachetul nu trebuie să o conțină. Prin urmare, este marcat ca fiind furnizat.
Acum să creăm clasa simplă HelloWorld:
Clasele care acționează ca puncte de intrare pentru pachete trebuie să implementeze interfața BundleActivator furnizată de OSGi.
Când pachetul care conține această clasă este lansat, platforma OSGi apelează funcția start(). Pe de altă parte, cu puțin timp înainte ca pachetul să fie oprit, este apelată funcția stop().
Să nu uităm că fiecare pachet poate avea doar un BundleActivator. Ambele moduri pot comunica cu runtime-ul OSGi folosind obiectul BundleContext care este dat.
Crearea unui pachet
Faceți din pom.xml un adevărat pachet OSGi făcând modificările necesare.
Mai întâi trebuie să exprimăm clar că scopul nostru este să producem un pachet.
Apoi, folosim pluginul maven-bundle-plugin pentru a împacheta clasa HelloWorld ca un pachet OSGi, prin amabilitatea comunității Apache Felix:
Valorile antetelor OSGi pe care dorim să le includem în fișierul MANIFEST al pachetului sunt specificate în secțiunea de instrucțiuni.
Bundle-Activator este într-adevăr numele calificat corespunzător al soluției BundleActivator care va fi folosită pentru a porni și opri pachetul. Este compatibil cu clasa recent creată.
Deși nu este un antet OSGi, antetul Private-Package indică pluginului să adauge pachetul la pachet, dar pur și simplu nu îl face accesibil altor plugin-uri. Comanda mvn install trebuie folosită pentru a crea pachetul.
Instalarea și rularea pachetului
Să începem Karaf rulând această comandă:
unde „KARAF HOME” se referă la folderul în care a fost configurat Karaf. Putem folosi următoarea comandă pentru a instala pachetul atunci când apare promptul consolei Karaf:
Utilizarea depozitului local Maven este modul în care Karaf i se spune să încarce pachetul.
Întorcând ID-ul numeric al pachetului, Karaf îl scrie. Acest ID poate diferi în funcție de câte pachete au fost instalate anterior. Pachetul a fost acum instalat cu succes, iar comanda pentru a-l lansa este următoarea:
În momentul în care lansați pachetul, se afișează „Hello World by Jay”. Acum putem opri și elimina pachetul folosind:
Consola afișează „Goodbye World by Jay”.
Concluzie
Dezvoltatorii pot adăuga cu ușurință noi funcționalități la o aplicație web existentă, păstrând-o în siguranță și izolată de alte componente ale programului principal folosind OSGi.
Am aflat despre OSGi în această postare, inclusiv cum funcționează, avantajele sale și un program simplu. Nu este dificil să încorporați OSGi în propria aplicație.
Codificare fericită!
Lasă un comentariu