OSGi

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 26 octombrie 2015; verificările necesită 5 modificări .
OSGi
Tipul organizației cadru , software liber și organizarea standardelor [d]
Baza
Data fondarii mai 2000 [1] [2]
Site-ul web osgi.org
 Fișiere media la Wikimedia Commons

OSGi Alliance , cunoscută anterior ca inițiativa Open Services Gateway (inițiativa de acces la servicii deschise) este o organizație cu standarde deschise (Open Standards Development Organization - SDO). În ultimii ani, ea a dezvoltat o platformă de servicii OSGi bazată pe Java  (cunoscută și sub numele de Sistemul de module dinamice pentru Java) care poate fi gestionată de la distanță. Partea principală a acestei dezvoltări este un cadru (cadru), care definește modelul ciclului de viață al aplicației și registrul de servicii.

OSGi (Open Services Gateway Initiative) este o specificație pentru un sistem modular dinamic și o platformă de servicii pentru aplicații Java , dezvoltată de consorțiul OSGi Alliance. Specificațiile oferă un model pentru construirea unei aplicații din componente legate între ele prin servicii [3] . Concluzia este capacitatea de a reinstala dinamic componentele și componentele aplicației fără a fi nevoie să o opriți și să o reporniți.

Gama de aplicații ale acestei specificații este destul de largă: a fost dezvoltată inițial pentru a crea sisteme încorporate (în special, pentru mașinile BMW , Siemens este, de asemenea, implicată activ în dezvoltarea specificației ), dar acum aplicații desktop autonome multifuncționale (de exemplu, Eclipse SDK) și sistemele corporative sunt construite pe baza OSGi .

Pe baza acestui cadru, au fost create un număr mare de servicii OSGi:

  • Buturuga
  • Managementul configurației
  • Preferințe
  • Serviciul HTTP (pornește servlet-uri)
  • Analiza XML (prelucrarea datelor XML)
  • Acces la dispozitive (acces la dispozitive)
  • admin pachet
  • Permisiune Admin
  • nivelul de pornire
  • Administrator de utilizatori
  • conector IO
  • Wire Admin
  • jini
  • Exportator UPnP
  • Urmărirea aplicației
  • Pachete semnate
  • Servicii Declarative
  • Gestionare a energiei
  • Device Management (gestionarea dispozitivului)
  • Politici de securitate
  • Diagnosticare/Monitorizare și Stratificarea cadrului

Versiuni ale standardului OSGi

Există 4 implementări open source ale standardului OSGi:

Bazat pe Equinox, este construit mediul de dezvoltare Eclipse 3.0+, care se pretinde a fi standardul industrial pentru asamblarea componentelor programelor.

RFC-uri și standarde Java înrudite

Ciclul de viață

Procesul ciclului de viață adaugă pachete care pot fi instalate, pornite, oprite, actualizate și eliminate dinamic. Pachetele se bazează pe nivelul de modul pentru încărcarea clasei, dar adaugă un API pentru a gestiona modulele în timpul execuției. Stratul ciclului de viață reprezintă dinamica care în mod normal nu face parte din aplicație. Sunt folosite mecanisme extinse de dependență pentru a se asigura că mediul funcționează corect. Operațiunile ciclului de viață sunt complet protejate de arhitectura de securitate.

Stare pachet Descriere
INSTALAT Pachetul instalat cu succes
REZOLVAT Toate clasele Java necesare pentru pachet sunt disponibile. Această stare indică faptul că pachetul este gata de rulare sau oprit.
PORNIRE Pachetul începe, metoda BundleActivator.start este numită , dar metoda start nu a revenit încă. Atunci când un pachet are o politică de activare, pachetul va rămâne în starea DE PORNIRE până când pachetul este activat în conformitate cu politica sa de activare.
ACTIV Pachetul a fost activat și lansat cu succes; Metoda sa de pornire Bundle Activator a fost apelată și returnată.
OPRIRE Pachetul a fost oprit. Metoda BundleActivator.stop este numită , dar metoda stop nu a returnat încă un rezultat.
DEZINSTALAT Pachetul a fost scos. Nu se poate muta în alt stat.

Următorul este un exemplu de clasă Java tipică care implementează interfața BundleActivator :

pachet org.wikipedia ; import org.osgi.framework.BundleActivator ; import org.osgi.framework.BundleContext ; Public class Activator implementează BundleActivator { private BundleContext context ; @Override public void start ( context BundleContext ) aruncă excepție { System . afară . println ( „Început: Bună lume” ); aceasta . context = context ; } @Override public void stop ( context BundleContext ) aruncă excepție { System . afară . println ( "Oprire: Adio Lume Cruelă" ); aceasta . context = nul ; } }

Vezi și

Note

  1. https://www.osgi.org/developer/specifications/
  2. https://osgi.org/download/r1/r1.osgi-spec.pdf
  3. Mashnin, 2010 .

Literatură

  • Mashnin T. S. Tehnologii Java moderne în practică. - BHV-Petersburg, 2010. - S. 196–200. - ISBN 978-5-9775-0561-1 .

Link -uri