JavaEE + OSGi
wielomoduowe aplikacje webowe
JavaEE + OSGi
AGENDA
1. Case study
2. Idea modularyzacji
3. Modularyzacja w JavaEE
4. Wprowadzenie w OSGi
5. Wsppraca JavaEE + OSGi
6. Prezentacja platformy webowej osgi
JavaEE + OSGi
Case Study
JavaEE + OSGi
Case study
JVMJEE Server Aplikacja Webowaale po pewnym czasie ...
100 tys. linii kodu
2 zespoy programistw
po duszym czasie
500 tys. linii kodu
4 zespoy programistwJak szybko zbudowa system wsparcia sprzeday dla nowego banku?
Nic trudnego, napiszemy aplikacj webow Java EE !
Zalety:standardowa architektura,pena wsppraca kodu,dewelopowanie in-place,atwe testowanie, spjny interfejs uytkownika,klarowne zarzdzanie sesjdue wsparcie ze strony IDE
Zrobione !
w naszym przypadku:
> 1 mln linii kodu> 10 tys. klas> 1500 klas akcji struts> 2300 cieek do akcji> 1000 stron JSP> 8 zespow > 60 osb
jar-helldugie kompilacje, przecienie zasobw IDEproblemy przy dewelopowaniu wielozespoowym (merge)ograniczona skalowalno (do ~100 tys. linii kodu)trudnoci przy wariantowaniu aplikacjikopoty z izolacj zagadnie (SoC)
JavaEE + OSGi
Co z tym teraz zrobi ?
Case study
JVMJEE Server
?Podzielmy aplikacj na moduy !Co to jednak znaczy podzieli aplikacjna moduy?
JavaEE + OSGi
Idea modularyzacji
JavaEE + OSGi
Modu
miara,
powtarzalny wymiar,
bazowy element caoci
Modularyzacja
koncepcja budowania zoonych systemw przez dzielenie ich na wewntrznie spjne moduy, midzy ktrymi wymiana informacji jest znacznie rzadsza ni wewntrz nich1
sposb konstruowania umoliwiajcy atwe zestawianie wikszych jednostek ze standaryzowanych moduw1
1. Sownik Encyklopedyczny - Informatyka Wydawnictwa Europa. Autor - Zdzisaw Poski. ISBN 83-87977-16-0. Rok wydania 1999.
Modularyzacja
?
?
JavaEE + OSGi
Koncepcja modularyzacji rozwina si w poowie XIX wieku w manufakturach zbrojeniowych, kadc podwaliny rozwojowi masowej produkcji przemysowej opartej na zunifikowanych i wymiennych podzespoach, produkowanych i zespalanych oddzielnie.
W informatyce modularyzacja jest raczej luno zdefiniowanym pojciem.
Okrela si nim rne techniki programistyczne majce suy:separacji zagadnie (SoC)
reuywalnoci kodu
generalizacji rozwiza
izolacji szczegw implementacji
kreowaniu interfejsw i komponentw
Modularyzacja
Przykadowe obszary wykorzystania modularyzacji:
konstrukcja maszyn,
linie produkcyjne,
urzdzenia sieciowe,
podzespoy elektroniczne,
meble kuchenne, biurowe i magazynowe,
systemy budowlane i instalacyjne,
opakowania i kontenery
kreatywne zabawki (lego),
projektowanie architektoniczne i przestrzenne,
software
JavaEE + OSGi
Modularyzacja
Programujc, dzielimy kod na uyteczne moduy:
metoda / funkcja
klasa / skrypt
pakiet
biblioteka
aplikacja / usuga
JavaEE + OSGi
Modularyzacja
Jakie s podane cechy dobrego moduu?
czytelnie okrelona funkcja/zagadnienie/odpowiedzialno
jawne i jak najmniejsze zalenoci od innych moduw
samodzielno/enkapsulacja/izolacja implementacji
zdolno do wsppracy z innymi moduami
standardowe punkty i metody czenia (interfejsy)
wymienno
autokonfiguracja
JavaEE + OSGi
Modularyzacja
JavaEE + OSGi
Modularyzacja w JavaEE
Przegld rozwizamodularyzacji aplikacji webowej
JavaEE + OSGi
Przegld technik
Rozwamy 5 propozycji modularyzacji:
1. Statyczna kompozycja standardowej aplikacji webowej z moduw na etapie budowania (maven overlays, ant build).
2. Dynamiczna kompozycja aplikacji webowej z moduw (fragmentw) w trakcie inicjalizacji (od JEE6, Servlet 3.0).
3. Moduy jako odrbne aplikacje webowe na wsplnym serwerze.
4. Moduy jako odrbne aplikacje webowe rozproszone na wielu serwerach.
5. Aplikacja webowa ze zintegrowan platform OSGi, moduy aplikacyjne jako paczki osgi.
JavaEE + OSGi
Przegld technik
Kryteria oceny rozwiza1. modularno (stopie separacji / wsppracy)2. skalowalno (dewelopowanie wielozespoowe, wersjonowanie)3. czytelno rozwizania, standaryzacja4. brak duplikacji kodu / zasobw / konfiguracji5. spjno interfejsu uytkownika6. klarowne zarzdzanie sesj uytkownika7. likwidacja problemw z jar-hell8. wydajna komunikacja moduw9. atwo wariantowania aplikacji10. szybkie dewelopowanie in-place11. wygodne rodowisko testowe
JavaEE + OSGi
Przegld technik
JVMJEE Server 1. Statyczna kompozycja standardowej aplikacji webowej z moduw na etapie budowania (maven overlays, ant build).
1234576
Zalety:
moliwo osobnego dewelopowania i wersjonowania moduw przez rone zespoy programistw uatwione tworzenie wariantw aplikacji dla rnych celw i rodowisk
znaczna redukcja rozmiaru projektw w IDE
Wady:
uciliwa dodatkowa faza czenia moduw
brak moliwoci dewelopowania in-place
nadal problemy z jar-hell
brak mechanizmw autokonfiguracji
JavaEE + OSGi
Przegld technik
JVMJEE Server 2. Dynamiczna kompozycja aplikacji webowej z moduw (fragmentw) w trakcie inicjalizacji (tylko JEE6, Servlet 3.0).
1234576
Zalety:
rozwizanie standardowe
wsparcie ze strony IDE
czciowa autokonfiguracja aplikacji
wydajna komunikacja wewntrz pojedynczej JVM
spjny interfejs uytkownika
Wady:
autokonfiguracja tylko dla standardowych zasobw
brak separacji moduw
nadal jar-hell
wymagany serwer certyfikowany dla JEE6
brak dewelopowania w trybie in-place
JavaEE + OSGi
Przegld technik
JVMJEE Server 3. Moduy jako odrbne aplikacje webowe na wsplnym serwerze.
Integracja przez baz danych, rmi/corba lub http/soap.
12345
Zalety:
wysoka samodzielno funkcjonalna moduw,
wysoka wydajno komunikacji wewntrz pojedynczej JVM,
likwidacja jar-hell
dewelopowanie in-place
Wady:
utrudnione testowanie
cakowita separacja przestrzeni klas, zasobw i konfiguracji
dua duplikacja kodu wsplnego (bibliotek)
b. grube ziarno separacji
problemy z utrzymaniem spjnoci stanu UI
JavaEE + OSGi
Przegld technik
4. Moduy jako odrbne aplikacje webowe rozproszone na wielu serwerach. Integracja przez baz danych, rmi/corba lub http/soap.
JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server JVMJEE Server 1JVMJEE Server
Zalety:
wysoka samodzielno funkcjonalna moduw,
dewelopowanie in-place
due moliwoci tuningu architektonicznego i wydajnociowego
Moliwo balansowania komunikacji i wykorzystania narzdzi typu ESB
Wady:
wysoki koszt komunikacji zdalnej
skomplikowane testowanie
cakowita izolacja klas i zasobw moduw
dua duplikacja kodu wsplnego
problemy z utrzymaniem spjnoci stanu UI
Platforma OSGiJavaEE + OSGi
Przegld technik
JVMJEE Server 5. Aplikacja webowa ze zintegrowan platform OSGi, moduy aplikacyjne jako paczki osgi.
12458673
Zalety:
integracja/izolacja kodu/zasobw/usug wg potrzeb,
dynamiczna konfiguracja,
likwidacja jar-hell,
dewelopowanie in-place,
lazy-loading moduw
Wady:
problemy z dziaaniem platformy OSGi w rodowisku serwera JavaEE,
stroma krzywa uczenia OSGi,
saba standaryzacja dla takich rozwiza w przemyle IT
Wariant modularyzacji1234567891011
0 (monolit)-+-+++++-+-
2 (kompozycja statyczna)+++/-++-++-++
2 (kompozycja dynamiczna)++/-+/-++-++-++
3 (aplikacje na wsplnym serwerze)++/-+/---+/--+/-+/-++
4 (aplikacje rozproszone na wielu serwerach)+-+--+/---+/--+
5 (Platforma OSGi)++/-+++++++++
JavaEE + OSGi
Przegld technik
modularno
czytelno
skalowalno
brak duplikacji
spjno stanu UI
in-place
atwe testowanie
wsplna sesja http
likwidacja jar-hell
wydajna komunik.
wariantowanie
JavaEE + OSGi
Wprowadzenie w OSGi
(wczeniej Open Services Gateway Initiative)
Konsorcjum wielu firm rozwijajce zbir standardw, zwanych Specyfikacjami OSGi
Pierwsze specyfikacje powstay w 1998 dla potrzeb oprogramowania inteligentnych budynkw.
Misja: Rozwj standardu uniwersalnego middleware silnie zorientowanego na wymian usug przez dynamicznie zarzdzane komponenty (SOA-in-VM).
JavaEE + OSGi
Wprowadzenie w OSGi
OSGi - The Dynamic Module System for Java
http://www.osgi.org
JavaEE + OSGi
Wprowadzenie w OSGi
OSGi - The Dynamic Module System for Java
Obszary zastosowaSystemy informatyczne dla przedsibiorstwTelekomunikacjaUrzdzenia mobilneInteligentne budynkiSprzt AGD i RTV
Certfikowane implementacje platformy OSGi:
Specyfikacja Core R4 V4.2:
1. Makewave Knopflerfish Pro 3 (www.makewave.com) 2. ProSyst Software mBedded Server 7 (www.prosyst.com) 3. Hitachi Solutions SuperJ Engine Framework V4 (www.hitachisoft.jp) 4. Apache Felix Framework 3.0.0 (http://felix.apache.org)
Specyfikacja Core R4:
5. Eclipse Equinox 3.2 (www.eclipse.org/equinox/) 6. Samsung OSGi R4 Solution (www.samsung.com) 7. KT OSGi Service Platform (KOSP) 1.0 (http://www.kt.co.kr/)
COMPENDIUM SpecificationENTERPRISE Specification
JavaEE + OSGi
Wprowadzenie w OSGi
Przykadowe aplikacje wykorzystujce OSGi
Eclipse IDENetBeans IDE
GlassFish ServerOracle Weblogic ServerIBM WebSphereJOnASJBoss WebserverSpringSource dm Server
IBM TivoliAtlassian ConfluenceApache SynapseApache Tuscany
Kluczowe cechy platformy OSGi- przeznaczona dla rodowiska Java (rne profile)- wykorzystuje tylko standardowe mechanizmy JDK (1.4)- minimalistyczna specyfikacja i api (~30 klas i interfesjw)- elastyczna: moduy mog si zarwno w peni angaowa w ycie platformy lub te zupenie nic o niej nie wiedzie
CORE SpecificationOSGi - The Dynamic Module System for Java
JavaEE + OSGi
Wprowadzenie w OSGi
Framework - platforma, zgodna ze specyfikacj OSGi Core, czy moduy, zarzdza moduami, udostpnia globalne repozytorium i api wymiany usug, egzekwuje reguy bezpieczestwa.
Bundle - elementarny modu, paczka kodu i zasobw z dokumentem konfiguracyjnym opisujcym zasady wymiany kodu z innymi moduami (MANIFEST.MF), posiada dostp do API platformy, moe wpywa na cykl ycia i zachowanie innych moduw, podlega reguom bezpieczestwa, wymienia usugi z innymi moduami za porednictwem API platformy lub dedykowanych mechanizmw (DS, Spring DM, iPOJO).
Service - usuga, obiekt jzyka Java wymieniany midzy moduami poprzez globalne repozytorium na podstawie nazwy interfejsu/klasy i dodatkowych atrybutw, usugi rozgaszane s i dostarczane w sposb dynamiczny.
META-INF/MANIFEST.MF - plik moduu zawierajcy istotne nagwki konfiguracyjne odczytywane przez platform oraz dostpne do wiadomoci innych moduw.
Wiring - proces przyswajania moduu do platformy polegajcy na analizie dostpnoci wymaganych i oferowanych przez modu zalenoci (pakietw kodu)
BundleContext - podstawowy interfejs platformy OSGi przekazywany moduom w celu wsppracy, umoliwia: pozyskiwanie danych o moduach i usugach, pobieranie usug, zarzdzanie platform i moduami, dostp do kodu i zasobw innych moduw w ramach regu bezpieczestwa.
Tracker - obserwator moduw (BundleTracker) lub usug (ServiceTracker), przydatne klasy API platformy uatwiajce wspprac moduw z platform, umoliwiaj atw implementacj zaawansowanych mechanizmw integracyjnych.
Uyteczny sowniczek OSGi:
Architektura platformy OSGi
JavaEE + OSGi
Wprowadzenie w OSGi
OSGi - The Dynamic Module System for Java
Wsparcie dla rnych rodowisk i profili JDK
Moduy (bundles) wsppracuj ze sob wymieniajc kod i usugi
Zarzdzanie dynamicznym cyklem ycia moduw(instalowanie, startowanie, zatrzymywanie, usuwanie)
Globalne repozytorium i API do wymiany usug midzy moduamiZarzdzanie wymian kodu i zasobw midzy moduamiWymaga jedynie standardowegorodowiska JavaZintegrowana architekturauprawnie i zabezpieczebazujca na Java Security
JavaEE + OSGi
Wprowadzenie w OSGi
OSGi - The Dynamic Module System for Java
3 gwne funkcje platformy OSGi
Nadzorowanie wymiany kodu
Zarzdzanie cyklem ycia moduw
Repozytorium usug
JavaEE + OSGi
Wprowadzenie w OSGi
1. Wymiana kodu przez moduy
privatepublic
privatepublic
Kady modu posiada wasn wewntrzn ciek klas, na ktrej mog znajdowa si zarwno katalogi, jak i archiwa JAR.
Framework konstruuje dla kadego moduu osobny ClassLoader.
Kady modu posiada wasn przestrze klas, w ktrej mog znajdowa si klasy z tego moduu oraz z innych moduw.
Framework kieruje si deklaracjami zawartymi w nagwkach Import-Package i Export-Package w pliku MANIFEST.MF
Elementarn jednostk wymiany kodu jest pakiet.
Importy i eksporty pakietw s wersjonowane.
Framework dba o to, aby przestrze klas kadego z moduw bya moliwie spjna, tj. zawieraa tylko jedn wersj danej klasy.
Przestrzenie rnych moduw mog zawiera rne wersje tych samych klas, nie mog jednak wtedy wymienia obiektw tych klas, bezporednio lub porednio (przez inne klasy).
JavaEE + OSGi
Wprowadzenie w OSGi
1. Wymiana kodu przez moduy, c.d.
JavaEE + OSGi
Wprowadzenie w OSGi
2. Zarzdzanie cyklem ycia moduw
InstalledResolvedActiveStoppingStarting
Bundles
JavaEE + OSGi
Wprowadzenie w OSGi
3. Repozytorium usug
Framework OSGiRepozytorium usugAPIDeclarativeServicesSpring DM(Dynamic Modules)Apache iPOJO
JavaEE + OSGi
Wprowadzenie w OSGi
Standardowe dodatkowe usugi platformy OSGi (opcjonalne)
FRAMEWORK SERVICES
Permission AdminPackage AdminStart LevelURL Handler
SYSTEM SERVICES
Log ServiceConfiguration Admin ServiceDevice Access ServiceUser Admin ServiceIO Connector ServicePreferences ServiceComponent RuntimeDeployment AdminEvent AdminApplication Admin
PROTOCOL SERVICES
Http ServiceUPnP ServiceDMT Admin
MISCELLANEOUS SERVICES
Wire Admin ServiceXML Parser ServiceInitial ProvisioningForeign Application Access
JavaEE + OSGi
Wprowadzenie w OSGi
Jak zbudowa modu OSGi?
- paczka moduu OSGi jest standardowo archiwum JAR
- rne platformy dopuszczaj rwnie inne formy pakowania lub instalowanie bezporednio z katalogu plikw
- wystarczy doda plik META-INF/MANIFEST.MF do archiwum JAR, jedyny wymagany przez platform nagwek to Bundle-SymbolicName, pozostae s opcjonalne
- rczne deklarowanie nagwkw Import-Package i Export-Package jest polecane tylko w prostych przypadkach
- dostpnych jest kilka dobrych narzdzi wspomagajcych generowanie nagwkw osgi na bazie analizy statycznej kodu i deklaracji zalenoci:
aQute BND biblioteka Petera Kriensa z pluginami do ANT-a i MAVEN-a(maven-bundle-plugin)SpringSource Bundlor
- nagwek Bundle-ClassPath deklaruje wewntrzn sciek klas i zasobw paczki moduu, mog si na niej znajdowa zarwno katalogi jak i archiwa JAR zagniedone w gwnym archiwum
JavaEE + OSGi
Wprowadzenie w OSGi
Jak uy platformy OSGi w swoim projecie?
Kada z implementacji platformy OSGi posiada wasny sposb uycia oraz wasny model dostarczania moduw
Wikszo implementacji (w tym equinox i felix) dopuszcza zarwno uruchomienie samodzielne (standalone) jak i zagniedenie w innej aplikacji (embeded)
Implementacje rni si midzy sob zakresem dostpnych usug dodatkowych (specyfikacja COMPANION lub ENTERPRISE)
Uniwersalny charakter osgi umoliwia przenoszenie gotowych implementacji usug (dostpnych zazwyczaj jako osobne moduy) pomidzy rnymi platformami
Wybr implementacji platformy powinien by obojtny dla dziaania zainstalowanych na niej moduw (zaoenie)
Popularnym modelem dostarczania moduw do uruchomionej platformy jest automatyczne zaczytywanie archiww JAR z okrelonego katalogu
API platformy OSGi umoliwia atwe tworzenie wasnych mechanizmw adowania moduw
JavaEE + OSGi
Wprowadzenie w OSGi
2 poyteczne wzorce wspdziaania moduw
Wzorzec 1: Extender
Jeli chcemy uwolni obce moduy od koniecznoci samodzielnej integracji z dowolnym udostpnianym przez nas mechanizmem (api), moemy je w tym wyrczy stosujc wzorzec Extender.
Wzorzec Extender dziaa nastpujco:
-obserwujemy z uyciem BundleTracker inne moduy
-podczas instalacji lub startu obcego moduu sprawdzamy, czy nie posiada on informacji przeznaczonych dla naszego moduu (w formie nagwka lub pliku konfiguracyjnego)
-jeli obcy modu posiada odpowiednie informacje, to wykorzystujemy je dla uzupenienia lub skonfigurowania naszego mechanizmu
Cechy wzorca Extender:
-uwolnienie obcych moduw od znajomoci szczegw interakcji z naszym mechanizmem poprzez api (SoC), dostp do zasobw obcego moduu przed jego startem
Przykady: Spring DM, Declarative Services (DS)
JavaEE + OSGi
Wprowadzenie w OSGi
2 poyteczne wzorce wspdziaania moduw
Wzorzec 2: Whiteboard
Jeli chcemy uwolni obce moduy od koniecznoci samodzielnej integracji z dowolnym udostpnianym przez nas mechanizmem (poprzez api), moemy je w tym rwnie wyrczy stosujc wzorzec Whiteboard.
Wzorzec Whiteboard dziaa nastpujco:
-obserwujemy z uyciem ServiceTracker usugi wystawiane przez inne moduy
-jeli zostanie wystawiona interesujca nas usuga, pobieramy j i wykorzystujemy dla uzupenienia lub skonfigurowania naszego mechanizmu
Cechy wzorca Whiteboard:
-uwolnienie obcych moduw od znajomoci szczegw interakcji z naszym mechanizmem poprzez api (SoC)
-dynamiczna reakcja na usugi wystawiane lub wycofywane przez obce moduy
Przykad: Http Service
JavaEE + OSGi
Wprowadzenie w OSGi
Konkluzja: Dlaczego OSGi?
- moliwo uzyskania dowolnej podanej separacji i/lub wspdziaania moduw
- czytelna, deklaratywna konfiguracja waciwoci i zalenoci moduw
- silne zorientowanie na wspprac poprzez wymian usug (SOA-in-VM)
- pena obsuga cyklu ycia moduw
- otwarta i stabilna specyfikacja zarzdzana przez dedykowane konsorcjum
- minimalne api
- mae wymagania rodowiskowe (tylko JDK)
- dojrzae i sprawdzone implementacje dostpne dla rnych profili i zastosowa
JavaEE + OSGi
Wsppraca JavaEE z OSGi
Razem czy osobno?
JavaEE + OSGi
Wsppraca JavaEE z OSGi
JavaEE i OSGi rni si znacznie proponowanymi rozwizaniami :
Java EEOSGi
Elementarny instalowany elementaplikacja(ear,war)modu (bundle)
Wymiana kodu i usug midzy moduaminietak
Komunikacja z platform (serwerem)jednostronnadwustronna
Preferowany cykl yciastatycznydynamiczny
Zestaw usug serwera / platformyzamknityotwarty
Ukad zasobw aplikacji / moduusztywnydowolny
JavaEE + OSGi
Wsppraca JavaEE z OSGi
Java EEOSGi
Zaawansowana modularyzacja kodu-+
Repozytorium usug lokalnych-+
Obsuga zdalnych wywoa usug (WS)+-
Komunikacja poprzez zdarzenia-+
Przesyanie komunikatw (JMS)+-
Wsppraca z bazami danych (JPA)+-
Zarzdzaniem kontekstem aplikacji (DI)++
Zdalne zarzdzanie stanem aplikacji++
Monitorowanie stanu komponentw (JMX)+-
Auto-konfiguracja moduw i usug-+
Obsuga protokow sieciowych (http,rmi)++/-
JavaEE i OSGi uzupeniaj si jednak dobrze we wielu obszarach:
JavaEE + OSGi
Wsppraca JavaEE z OSGi
OSGi w wiecie aplikacji klasy Enterprise
- najmodsza ze specyfikacji osgi (Marzec 2010)
- otwarcie na technologie wypracowane i uywane od dawna w JavaEE
- dobry przykad: zaawansowana implementacja usugi zarzdzania kontekstami aplikacji w moduach: Spring DM
- powstaj powoli pierwsze implementacje platform osgi dedykowanych dla systemw enterprise (Apache Aries, Eclipse Virgo)
Wsparcie dla wszystkich komponentw webowych (servlet, filter, listener, ...) Blueprint Container (DI)JDBC, JPA, JTA jako usugi OSGiIntegracja z JNDIInstalowanie WAR jako moduu
JavaEE + OSGi
Wsppraca JavaEE z OSGi
2 drogi integracji JavaEE z OSGi
JVMJEE Server
Platforma OSGi12458673Platforma OSGi wewntrz aplikacji JEE
Platforma OSGiJVM12458673KomponentyJEE Server Serwer JEE jako usuga wewntrz OSGi
JavaEE + OSGi
Wsppraca JavaEE z OSGi
Platforma OSGi wewntrz aplikacji JEE
2 drogi integracji JavaEE z OSGi
Serwer JEE jako usuga wewntrz OSGi
Zalety:
Wykorzystanie potencjau i inwestycji w istniejce instalacje serwerw JEE
wysoka jako usug Java EE
Wady:
dualna architektura
rozproszone zarzdzanie i konfigurowanie
due problemy z pen integracj i wspprac platformy osgi z serwerem
Zalety:
homogeniczna architektura
pene wykorzystanie potencjau OSGi
otwarty katalog usug serwera
Wady:
rozwizanie niestandardowe
brak sprawdzonych implementacji
JavaEE + OSGi
Prezentacja platformywebowej osgi
JavaEE + OSGi
Platforma webowa osgi
Architektura Big Picture
Kontener
Platforma eb-osgi
Typy i zadania paczek
Konfiguracja warstwy prezentacji
Menu deklaratywne
Autoryzacja dostpw
Konteksty springowe, wymiana usug
Komunikacja w ramach SOA
Warstwa bazodanowa i transakcje
Komunikacja midzy paczkami, API
JavaEE + OSGi
Platforma webowa osgi
JavaEE + OSGi
Platforma webowa osgi
Kontener samodzielna aplikacja webowa J2EE zawierajca:
konfiguracj J2EE (web.xml, weblogic.xml)
kod startowy platformy eb-osgi (osgi-launcher)
konfiguracj platformy eb-osgi (felix.properties, launcher.properties)
listy paczek przeznaczonych do zainstalowania na platformie przy starcie (*-bundles.xml)
konfiguracj statyczn aplikacji
konfiguracj dla uruchomie standalone
JavaEE + OSGi
Platforma webowa osgi
Platforma eb-osgi zestaw bibliotek i moduw osgi tworzcych uniwersaln baz dla wielomoduowych aplikacji webowych:
osgi-launcher start Apache Felix, integracja z kontenerem WAR, serwlet integracyjny
osgi-deployment-bundle instalacja i start paczek na podstawie konfiguracji z plikw *-bundles.xml
osgi-http-proxy-bundle integracja z serwerem http, zarzdzanie kontekstami i sesjami
osgi-web-components-bundle rejestracja zasobw webowych (servlet, filter, file)
osgi-jsp-bundle obsuga stron JSP
osgi-struts-1-2-bundle obsuga Struts, Tiles i Walidator
JavaEE + OSGi
Platforma webowa osgi
Paczka archiwum JAR zawierajce skompilowany kod i inne zasoby, posiadajce plik META-INF/MANIFEST.MF z nagwkami wymaganymi przez osgi i z nagwkami wymaganymi przez platform webow.
Paczki rdzeniowe platformy webowej osgi
Zewntrzne paczki systemowe
Paczki biblioteczne
Paczki pomocnicze
Paczki klientw serwisw SOA
Paczki bazowe aplikacji
Paczki biznesowe aplikacji
JavaEE + OSGi
Platforma webowa osgi
Paczka osgi-launcher-bundle rejestruje zasoby www zadeklarowane przez paczki biznesowe za pomoc nagwkw w pliku MANIFEST.MF:Web-Context-Path kontekst wewntrzny zasobw paczki
Web-Context-Root katalog bazowy zasobw wewntrz paczki
Web-Exclude-Patterns lista wzorcw wyklucze
Paczka osgi-struts-1-2-bundle agreguje konfiguracje struts, tiles i walidator zadeklarowane przez paczki biznesowe za pomoc nagwkw w pliku MANIFEST.MF lub umieszczone w domylnej lokalizacji:Struts-Config lista plikw konfiguracji struts lub lokalizacja META-INF/struts
Tiles-Config lista plikw konfiguracji tiles lub lokalizacja META-INF/tiles
Validator-Config lista plikw konfiguracji lub lokalizacja META-INF/validator
Elementy struts i tiles dodawane s do moduu struts o ciece zadeklarowanej w Web-Context-Path
W eb-osgi moduy struts tworz struktur hierarchiczn, moduy nisze mog bez dodatkowych atrybutw korzysta z elementw zadeklarowanych u rodzicw
Pozycja moduu w hierarchi ustalana jest poprzez separacj elementw cieki moduu. Np. cieka /a/b/c oznacza hierarchi /,/a,/a/b,/a/b/c
Organizacja warstwy prezentacji, obsuga da HTTP i stron JSP
JavaEE + OSGi
Platforma webowa osgi
eb-osgi wykorzystuje Spring Dynamic Modules (Spring DM) do zarzdzania kontekstami springowymi
Konteksty podnosz si automatycznie przy starcie paczki z lokalizacji zadeklarowanych nagwkiem Spring-Context w pliku MANIFEST.MF lub z lokalizacji domylnej META-INF/spring
Wszystkie zadeklarowane konfiguracje z jednej paczki tworz jeden zagregowany kontekst aplikacji
Spring DM udostpnia moliwo: rejestracji z poziomu konfiguracji beanw springowych jako usug w repozytorium osgi (
Top Related