OSGi - OSGi
Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Logo OSGi Alliance | |
Rok začal | 1999 |
---|---|
Nejnovější verze | 7.0 Dubna 2018[1] |
Organizace | OSGi Alliance |
Doména | Jáva |
Licence | OSGi Specification License, verze 2.0 |
webová stránka | www |
The OSGi Alliance, dříve známý jako Iniciativa brány otevřených služeb, je otevřené standardy organizace založená v březnu 1999, která původně specifikovala a nadále udržuje Standard OSGi.
The Specifikace OSGi popisuje modulární systém a servis platforma pro Jáva programovací jazyk, který implementuje kompletní a dynamický model součásti, něco, co neexistuje v samostatné Javě /VM prostředí. Aplikace nebo komponenty ve formě svazky pro rozvinutí, lze vzdáleně instalovat, spouštět, zastavovat, aktualizovat a odinstalovat bez nutnosti restartovat; vedení Balíčky Java /třídy je specifikován velmi podrobně. Správa životního cyklu aplikace je implementována prostřednictvím API, která umožňují vzdálené použití stahování politiky řízení. Registr služeb umožňuje svazkům detekovat přidání nových služeb nebo odebrání služeb a podle toho se přizpůsobit.
Specifikace OSGi se vyvinuly nad původní zaměření servisních bran a nyní se používají v aplikacích od mobilní telefony do open-source Zatmění IDE. Mezi další oblasti použití patří automobily, průmyslová automatizace, automatizace budov, PDA, grid computing, zábava, správa vozového parku a aplikační servery.
Proces specifikace
Specifikace OSGi je vyvíjena členy v otevřeném procesu a je bezplatně zpřístupněna veřejnosti na základě OSGi Specification License.[2] Aliance OSGi má dodržování program, který je otevřen pouze členům. V listopadu 2010 existuje sedm certifikovaných rámců OSGi implementace.[3] Samostatná stránka obsahuje seznam certifikovaných i necertifikovaných Implementace specifikací OSGi, které zahrnují rámce OSGi a další specifikace OSGi.
Architektura
OSGi je rámec Java pro vývoj a nasazení modulárních softwarových programů a knihoven. Každý balíček je pevně spojená, dynamicky načtitelná kolekce tříd, jarů a konfiguračních souborů, které explicitně deklarují své externí závislosti (pokud existují).
Rámec je koncepčně rozdělen do následujících oblastí:
- Svazky
- Balíky jsou normální SKLENICE komponenty s extra hlavičkami manifestu.
- Služby
- Vrstva služeb spojuje svazky dynamickým způsobem tím, že nabízí model publikování a hledání vazby pro stará stará rozhraní Java (POJI ) nebo obyčejné staré objekty Java (POJO).
- Registr služeb
- The aplikační programovací rozhraní pro manažerské služby.
- Životní cyklus
- The aplikační programovací rozhraní pro správu životního cyklu (instalace, spuštění, zastavení, aktualizace a odinstalování) balíčků.
- Moduly
- Vrstva, která definuje zapouzdření a deklaraci závislostí (jak může balíček importovat a exportovat kód).
- Bezpečnostní
- Vrstva, která zpracovává aspekty zabezpečení omezením funkce svazku na předem definované funkce.
- Prováděcí prostředí
- Definuje, jaké metody a třídy jsou k dispozici na konkrétní platformě. Neexistuje žádný pevný seznam prováděcích prostředí, protože se může změnit jako Proces komunity Java vytváří nové verze a edice Javy. Následující sada je však aktuálně podporována většinou implementací OSGi:
- CDC-1.0 / Foundation-1.0
- CDC-1.1 / Foundation-1.1
- OSGi / Minimum-1,0
- OSGi / Minimum-1.1
- JRE-1.1
- Od J2SE-1.2 až po J2SE-1.6
Svazky
Balíček je skupina tříd Java a dalších zdrojů vybavených podrobným manifestem MANIFEST.MF
soubor o veškerém jeho obsahu, stejně jako další služby potřebné k tomu, aby zahrnutá skupina tříd Java měla propracovanější chování, a to v rozsahu, v němž bude považovat celou agregaci za součást.
Níže je uveden příklad typické MANIFEST.MF
soubor s hlavičkami OSGi:
1 Název svazku: Ahoj světe2 Bundle-SymbolicName: org.wikipedia.helloworld3 Popis balíčku: Balíček Hello World4 Bundle-ManifestVersion: 25 Verze balíčku: 1.0.06 Aktivátor svazku: org.wikipedia.Activator7 Exportní balíček: org.wikipedia.helloworld; version = "1.0.0"8 Import-Package: org.osgi.framework; version = "1.3.0"
Význam obsahu v příkladu je následující:[4]
- Název balíčku: Definuje pro tento svazek čitelný název pro člověka. Jednoduše svazku přiřadí krátký název.
- Symbolický název balíčku: Jediná požadovaná hlavička, tato položka určuje jedinečný identifikátor svazku na základě konvence obráceného názvu domény (používá také balíčky Java ).
- Popis balíčku: Popis funkčnosti balíčku.
- Verze manifestu balíčku: Označuje specifikaci OSGi, která se má použít pro čtení tohoto balíčku.
- Verze balíčku: Určuje číslo verze svazku.
- Aktivátor svazku: Označuje název třídy, který má být vyvolán, jakmile je balíček aktivován.
- Exportní balíček: Vyjadřuje, které balíčky Java obsažené v balíčku budou zpřístupněny vnějšímu světu.
- Import-Package: Označuje, které balíčky Java budou vyžadovány od vnějšího světa ke splnění závislostí potřebných v balíčku.
Životní cyklus
Vrstva životního cyklu přidává balíčky, které lze dynamicky instalovat, spouštět, zastavovat, aktualizovat a odinstalovat. Balíčky se při načítání tříd spoléhají na vrstvu modulu, ale přidávají rozhraní API pro správu modulů za běhu. Vrstva životního cyklu zavádí dynamiku, která obvykle není součástí aplikace. K zajištění správného fungování prostředí se používají rozsáhlé mechanismy závislosti. Operace životního cyklu jsou plně chráněny bezpečnostní architekturou.
Stát svazku | Popis |
---|---|
Nainstalováno | Balíček byl úspěšně nainstalován. |
ROZHODNUTO | K dispozici jsou všechny třídy Java, které balíček potřebuje. Tento stav označuje, že balíček je buď připraven ke spuštění, nebo byl zastaven. |
ZAČÍNÁ | Balíček se spouští, BundleActivator.start metoda byla volána, ale metoda startu se ještě nevrátila. Pokud má balíček aktivační zásady, balíček zůstane ve stavu STARTING, dokud se balíček neaktivuje podle jeho aktivačních zásad. |
AKTIVNÍ | Balíček byl úspěšně aktivován a běží; byla vyvolána a vrácena jeho spouštěcí metoda Bundle Activator. |
ZASTAVENÍ | Balíček se zastavuje. The BundleActivator.stop metoda byla volána, ale metoda stop se ještě nevrátila. |
NEINSTALOVÁNO | Balíček byl odinstalován. Nemůže se přesunout do jiného stavu. |
Níže je uveden příklad typické třídy Java implementující BundleActivator
rozhraní:
balík org.wikipedia;import org.osgi.framework.BundleActivator;import org.osgi.framework.BundleContext;veřejnost třída Aktivátor nářadí BundleActivator { soukromé BundleContext kontext; @ Přepis veřejnost prázdnota Start(BundleContext kontext) hodí Výjimka { Systém.ven.tisk(„Starting: Hello World“); tento.kontext = kontext; } @ Přepis veřejnost prázdnota stop(BundleContext kontext) hodí Výjimka { Systém.ven.tisk(„Stopping: Goodbye Cruel World“); tento.kontext = nula; }}
Služby
Tato sekce potřebuje expanzi. Můžete pomoci přidávat k tomu. (Březen 2009) |
Standardní služby
Aliance OSGi specifikovala mnoho služeb. Služby jsou specifikovány a Rozhraní Java. Balíčky mohou implementovat toto rozhraní a zaregistrovat službu v registru služeb. Klienti služby ji mohou najít v registru nebo na ni reagovat, když se objeví nebo zmizí.
Níže uvedená tabulka zobrazuje popis systémových služeb OSGi:
Systémové služby | Popis |
---|---|
Protokolování | The protokolování informací, varování, informací o ladění nebo chyb se zpracovává prostřednictvím služby Log Service. Přijímá položky protokolu a poté tyto položky odešle do dalších balíčků, které se přihlásily k odběru těchto informací. |
Správce konfigurace | Tato služba umožňuje operátorovi nastavit a získat informace o konfiguraci nasazených svazků |
Přístup k zařízení | Usnadňuje koordinaci automatické detekce a připojení stávajících zařízení. Používá se pro scénáře Plug and Play. |
Administrátor uživatele | Tato služba používá databázi s informacemi o uživateli (soukromými a veřejnými) pro účely ověřování a autorizace. |
IO konektor | Služba IO Connector implementuje CDC /CLDC javax.microedition.io balíček jako služba. Tato služba umožňuje balíčkům poskytovat nová a alternativní schémata protokolu. |
Předvolby | Nabízí alternativní, OSGi přátelštější mechanismus k používání výchozího prostředí Java Vlastnosti pro ukládání předvoleb. |
Runtime komponenty | Dynamická povaha služeb - mohou přicházet a odcházet kdykoli - ztěžuje psaní softwaru. Specifikace komponenty Runtime může zjednodušit zpracování těchto dynamických aspektů poskytnutím deklarace závislostí založené na XML. |
Správce nasazení | Standardizuje přístup k některým odpovědnostem agenta správy. |
Správce událostí | Poskytuje mechanismus komunikace mezi svazky založený na modelu publikování a odběru. |
Správce aplikace | Zjednodušuje správu prostředí s mnoha různými typy aplikací, které jsou současně k dispozici. |
V následující tabulce je uveden popis služeb protokolu OSGi:
Služby protokolu | Popis |
---|---|
Služba HTTP | Umožňuje odesílat a přijímat informace z OSGi pomocí HTTP. |
Služba zařízení UPnP | Určuje, jak lze svazky OSGi vyvíjet pro spolupráci Univerzální Plug and Play (UPnP) zařízení. |
DMT Admin | Definuje API pro správu zařízení pomocí konceptů z Otevřete mobilní alianci (OMA) specifikace správy zařízení. |
V následující tabulce je uveden popis různých služeb OSGi:
Různé služby | Popis |
---|---|
Drátový administrátor | Umožňuje spojení mezi službou Producer a službou Consumer. |
Analyzátor XML | Služba XML Parser umožňuje svazku najít analyzátor s požadovanými vlastnostmi a kompatibilitou s JAXP. |
Měření a stav | Služba Měření a stav umožňuje a zjednodušuje správné zpracování měření na servisní platformě OSGi. |
Organizace
Alianci OSGi založil Ericsson, IBM, Motorola, Sun Microsystems a další v březnu 1999. Před začleněním jako nezisková společnost se jí říkalo Connected Alliance.
Mezi jejími členy jsou (od února 2015[Aktualizace]) více než 35 společností z různých oborů, například Adobe Systems, Deutsche Telekom, Hitachi, IBM, Liferay Makewave, NEC, NTT, Věštec, Orange S.A., ProSyst, Salesforce.com, Siemens, Software AG a Software TIBCO.[5]
Aliance má správní radu, která zajišťuje celkovou správu organizace. Důstojníci OSGi mají při podpoře aliance různé role a odpovědnosti. Technické práce se provádějí v rámci expertních skupin (EG) objednaných představenstvem a netechnické práce se provádějí v různých pracovních skupinách a výborech. Technické práce prováděné v rámci expertních skupin zahrnují vývoj specifikací, referenční implementace a testy shody. Tyto skupiny odborníků vytvořily pět hlavních verzí specifikací OSGi (od roku 2012[Aktualizace]).
Existují vyhrazené skupiny odborníků pro podniky, mobilní zařízení, vozidla a oblasti hlavních platforem.
Enterprise Expert Group (EEG) je nejnovější EG a věnuje se podnikovým / serverovým aplikacím. V listopadu 2007 Residential Expert Group (REG) začala pracovat na specifikacích pro vzdálenou správu rezidenčních / domácích bran. V říjnu 2003 Nokia, Motorola, IBM, ProSyst a další členové OSGi vytvořili Mobile Expert Group (MEG), která bude specifikovat a MIDP - platforma služeb pro novou generaci chytrých mobilních telefonů, která řeší některé z těchto potřeb CLDC nelze spravovat - kromě CDC. MEG se stal součástí OSGi jako u R4.
Verze specifikace
- OSGi Release 1 (R1): květen 2000
- OSGi Release 2 (R2): říjen 2001
- OSGi Release 3 (R3): březen 2003
- OSGi Release 4 (R4): říjen 2005 / září 2006
- Specifikace jádra (jádro R4): říjen 2005
- Mobilní specifikace (R4 Mobile / JSR-232): září 2006
- OSGi verze 4.1 (R4.1): květen 2007 (AKA JSR-291)
- OSGi Release 4.2 (R4.2): září 2009
- Enterprise Specification (R4.2): březen 2010
- OSGi verze 4.3 (R4.3): duben 2011
- Jádro: duben 2011
- Kompendium a rezidenční: květen 2012
- OSGi Release 5 (R5): červen 2012
- Core a Enterprise: červen 2012
- OSGi Release 6 (R6): červen 2015
- Jádro: červen 2015
- OSGi Release 7 (R7): duben 2018
- Jádro a kompendium: duben 2018
- OSGi Release 8 (R8): Navržený konečný návrh Srpna 2020[6]
Související normy
- MHP / OCAP
- Univerzální Plug and Play (UPnP)
- DPWS
- ITU-T G.hn
- LonWorks
- CORBA
- CEBus
- EHS (KNX ) / CECED ŘETĚZ
- Rozšíření pro správu Java
Projekty využívající OSGi
- Adobe Experience Manager - podnik Systém pro správu obsahu[7]
- Apache Beran - Implementace Blueprint Container a rozšíření specifikací zaměřených na aplikace definované OSGi Enterprise Expert Group
- Apache Sling - Vrstva aplikací založených na OSGi pro JCR úložiště obsahu
- Atlassian Confluence a JIRA - architektura plug-inů pro tuto podnikovou wiki a sledovač problémů používá OSGi
- Projekt Business Intelligence and Reporting Tools (BIRT) - Open source engine pro hlášení
- Cytoscape - open source softwarová platforma pro bioinformatiku (od verze 3.0)
- DataNucleus - open source datové služby a platforma perzistence v architekturách orientovaných na služby
- DDF - Distribuovaný datový rámec poskytuje bezplatnou a otevřenou integraci dat
- Dotcms - open source správa webového obsahu
- EasyBeans - open source kontejner EJB 3
- Zatmění - open source IDE a bohatá klientská platforma
- Eclipse Smart Home - open source framework pro automatizaci budov
- iDempiere - je implementace OSGi open source ERP Pobočka GlobalQSS Adempiere 361 původně založen Low Heng Sin[8]
- Eclipse Virgo - open source server založený na mikrokernelů vytvořený ze svazků OSGi a podporujících aplikace OSGi
- GlassFish (v3) - aplikační server pro Java EE
- Pojistka ESB - produktové a podporované vydání ServiceMix 4.
- Komunitní vydání GX WebManager - Enterprise Web Content Management System založený na OSGi, Spring a JCR
- Integrovaný prohlížeč genomu - open source, desktopové grafické uživatelské rozhraní pro vizualizaci, zkoumání a analýzu dat genomu
- IntelliJ - Java IDE a bohatá klientská platforma s bezplatnou komunitní edicí
- JBoss - Aplikační server Red Hat JBoss
- JONAS 5 - open source aplikační server Java EE 5
- Joram - server pro zasílání zpráv s otevřeným zdrojovým kódem (JMS, MQTT, AMQP atd.)
- JOSSO 2 - Platforma pro správu identit a přístupu založená na otevřených zdrojích společnosti Atricore
- Liferay Dxp - open source a komerční podniková platforma Portal používá OSGi od verze 7.x.
- Lucee 5 - open source webový aplikační server CFML
- NetBeans - open source IDE a bohatá klientská platforma
- Nuxeo - otevřený zdroj ECM Servisní platforma
- Otevřete projekt Daylight Project - Projekt s cílem urychlit přijetí softwarově definované sítě
- OpenEJB - otevřený kontejner EJB 3.0 s podporou OSGi, který lze spustit v samostatném nebo vestavěném režimu
- openHAB open source software pro domácí automatizaci -
- OpenWorm open source softwarová simulace C. elegans, prostřednictvím vyhrazeného Geppetto modulární platforma
- Akana - Brána API, portál a server Analytics od společnosti Akana (dříve SOA Software)
- SpringSource dm server - server s otevřeným zdrojovým kódem založený na mikrokernelech sestrojený ze svazků OSGi a podporujících aplikace OSGi
- Weblogic - Oracle Weblogic Application Server
- WebSphere - IBM Websphere JEE Application Server
- Webové metody - SoftwareAG WebMethods
- Uhlík WSO2 - Základní platforma pro podnikový open source middleware WSO2
Aktuální implementace rámce
název | Licence |
---|---|
Apache Felix | Otevřený zdroj |
Concierge OSGi | Otevřený zdroj |
Equinox OSGi | Otevřený zdroj |
Knopflerfish | Otevřený zdroj |
Software IoT Gateway společnosti Bosch | Komerční |
Zatmění Blíženci | Otevřený zdroj |
Viz také
Reference
- ^ "OSGi Alliance | Specifikace / HomePage". osgi.org. 2015. Citováno 30. června 2016.
- ^ „Licence OSGi Specification“. Archivovány od originál dne 2015-09-14. Citováno 2012-05-10.
- ^ https://www.osgi.org/osgi-compliance/osgi-certification/osgi-certified-products/
- ^ Vytváření balíčků OSGi autor: Costin Leau
- ^ OSGi Alliance | O / Členové
- ^ https://blog.osgi.org/2020/08/osgi-core-r8-proposed-final-and.html
- ^ „Forrester jmenuje vůdce správy webového obsahu“. CMSWire. 16. 11. 2018. Citováno 5. prosince 2018.
- ^ „Adempiere Branch_GlobalQSS_361“. http://www.adempiere.com/. Citováno 27. září 2014. Externí odkaz v
| web =
(Pomoc)
Další čtení
Tento Další čtení část může obsahovat nevhodné nebo nadměrné návrhy, které se nemusí řídit Wikipedií pokyny. Zajistěte, aby pouze a přiměřený počet z vyrovnaný, aktuální, spolehlivýa jsou uvedeny pozoruhodné návrhy pro další čtení; odstranění méně relevantních nebo nadbytečných publikací pomocí stejný úhel pohledu kde se to hodí. Zvažte použití vhodných textů jako vložené zdroje nebo vytvoření samostatný bibliografický článek. (Dubna 2011) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) |
- Cummins, Holly; Ward, Tim (28. března 2013), Enterprise OSGi v akci (1. vyd.), Manning Publications, str. 376, ISBN 978-1617290138
- Alves, Alexandre de Castro (28. července 2011), OSGi v hloubce (1. vyd.), Manning Publications, str. 325, ISBN 978-1-935182-17-7
- McAffer, Jeff; VanderLei, Paul; Archer, Simon (24. února 2010), OSGi a Equinox: Vytváření vysoce modulárních systémů Java (1. vyd.), Addison-Wesley Professional, str. 460, ISBN 978-0-321-58571-4
- Joseph Gédéon, Walid (5. listopadu 2010), Průvodce pro začátečníky OSGi a Apache Felix 3.0 (1. vyd.), Packt Publishing, str. 336, ISBN 978-1-84951-138-4
- Walls, Craig (červenec 2009), Modulární Java s OSGi a Spring (1. vyd.), Pragmatic Bookshelf, str. 250, ISBN 978-1-934356-40-1
- Hall, Richard S; Pauls, Karl; McCulloch, Stuart (září 2009), OSGi v akci (1. vyd.), Manning Publications, str. 375, ISBN 978-1-933988-91-7
- Alves, Alexandre de Castro (březen 2009), OSGi aplikační rámce (1. vyd.), Manning Publications, str. 325, ISBN 978-1-935182-17-7
- Bartlett, Neil (10.01.2009), OSGi v praxi (PDF) (NÁVRH ed.), S. 229
- McAffer, Jeff; VanderLei, Paul; Archer, Simon (7. září 2009), Equinox a OSGi: Síla za zatměním (1. vyd.), Addison-Wesley Professional, str. 480, ISBN 978-0-321-58571-4
- Mak, Gary (2009), Pro SpringSource dm Server, Apress, str. 250, ISBN 978-1-4302-1640-7, archivovány z originál dne 05.12.2010, vyvoláno 2008-12-28
- Rubio, Daniel (12.02.2009), Dynamické moduly Pro Spring pro servisní platformy OSGi (První vydání), Apress, str.392, ISBN 978-1-4302-1612-4
- Aliance OSGi (2003), OSGi Service Platform, vydání 3, IOS Press, s. 604, ISBN 1-58603-311-5
- Platforma služeb OSGi, základní specifikace, vydání 4, verze 4.1, OSGi Alliance., 2007, s. 228, ISBN 978-90-79350-01-8
- Platforma služeb OSGi, základní specifikace, vydání 4, verze 4.2, OSGi Alliance., 2009, s. 332, ISBN 978-90-79350-04-9
- Servisní platforma OSGi, servisní kompendium, vydání 4, verze 4.1, OSGi Alliance., 2007, s. 594, ISBN 978-90-79350-02-5
- Platforma služeb OSGi, mobilní specifikace, vydání 4, verze 4, OSGi Alliance., 2007, s. 426, ISBN 978-90-79350-03-2
- Kirk Chen, Li Gong. (2001), Programování bran otevřené služby s technologií Java Embedded Server (TM), Prentice Hall PTR, str. 480, ISBN 0-201-71102-8
- Kayode Odeyemi (2010), Budování deklarativní služby OSGI s Maven pomocí Netbeans
- BJ Hargrave (IBM) (2011), Technická aktualizace OSGi 4.3: Co je nového?, The Eclipse Foundation, archivovány z originál dne 21.06.2011, vyvoláno 2011-06-11
externí odkazy
- Oficiální webové stránky
- Oredev 2008 - Architektura - OSGi nyní a zítra
- Rejstřík článků Eclipse Equinox - Články o open source implementaci OSGi