OSGi | |
---|---|
Typ organizace | framework , svobodný software a organizace standardů [d] |
Základna | |
Datum založení | květen 2000 [1] [2] |
webová stránka | osgi.org _ |
Mediální soubory na Wikimedia Commons |
OSGi Alliance , dříve známá jako iniciativa Open Services Gateway (otevřená iniciativa pro přístup ke službám) je organizace pro otevřené standardy (Open Standards Development Organization - SDO). Během několika posledních let vyvíjí platformu služeb OSGi založenou na Javě (také známou jako The Dynamic Module System for Java), kterou lze spravovat vzdáleně. Hlavní částí tohoto vývoje je framework (framework), který definuje model životního cyklu aplikace a registr služeb.
OSGi (Open Services Gateway Initiative) je specifikace pro dynamický modulární systém a platformu služeb pro Java aplikace vyvinuté konsorciem OSGi Alliance. Specifikace poskytují model pro sestavení aplikace z komponent propojených prostřednictvím služeb [3] . Základem je možnost dynamicky přeinstalovat součásti a součásti aplikace, aniž byste ji museli zastavovat a restartovat.
Rozsah aplikací této specifikace je poměrně široký: původně byla vyvinuta pro vytváření vestavěných systémů (zejména pro vozy BMW se na vývoji specifikace aktivně podílí i Siemens ), nyní však multifunkční samostatné desktopové aplikace (např. Eclipse SDK) a podnikové systémy jsou stavěny na OSGi .
Na základě tohoto rámce bylo vytvořeno obrovské množství služeb OSGi:
|
|
Existují 4 open source implementace standardu OSGi:
Na základě Equinox je vytvořeno vývojové prostředí Eclipse 3.0+, které se prohlašuje za průmyslový standard pro sestavování komponent programů.
Proces životního cyklu přidává balíčky, které lze dynamicky instalovat, spouštět, zastavovat, upgradovat a odstraňovat. Balíčky se při načítání třídy spoléhají na úroveň modulu, ale přidávají API pro správu modulů za běhu. Vrstva životního cyklu představuje dynamiku, která běžně není součástí aplikace. K zajištění správného fungování prostředí se používají rozsáhlé mechanismy závislostí. Operace životního cyklu jsou plně chráněny architekturou zabezpečení.
Stav balíčku | Popis |
---|---|
INSTALOVÁNO | Balíček byl úspěšně nainstalován |
VYŘEŠENO | K dispozici jsou všechny třídy Java požadované pro balíček. Tento stav označuje, že balíček je připraven ke spuštění nebo zastaven. |
ZAČÍNÁ | Balíček se spustí, metoda BundleActivator.start se zavolá , ale metoda start se ještě nevrátila. Pokud má balíček aktivační zásady, zůstane balíček ve stavu STARTOVÁNÍ, dokud nebude balíček aktivován v souladu s jeho zásadami aktivace. |
AKTIVNÍ | Balíček byl úspěšně aktivován a spuštěn; Byla zavolána a vrácena jeho metoda spuštění aktivátoru svazku. |
ZASTAVENÍ | Balíček byl zastaven. Metoda BundleActivator.stop se volá , ale metoda stop ještě nevrátila výsledek. |
ODINSTALOVÁNO | Balíček byl odstraněn. Nemůže se přesunout do jiného státu. |
Následuje příklad typické třídy Java, která implementuje rozhraní BundleActivator :
balíček org.wikipedia ; import org.osgi.framework.BundleActivator ; import org.osgi.framework.BundleContext ; public class Activator implementuje BundleActivator { private BundleContext context ; @Override public void start ( BundleContext context ) vyvolá výjimku { System . ven . println ( "Začátek: Ahoj světe" ); toto . kontext = kontext ; } @Override public void stop ( BundleContext context ) vyvolá výjimku { System . ven . println ( "Zastavení: Sbohem krutý svět" ); toto . kontext = null ; } }OSGi | |
---|---|
|