0
Spring 2008 what's the new ?
                             15 minute about Spring innovations




                         ...
Chi è lo Speaker ?

Software Architect a SardegnaIT
Co-fondatore e consigliere Jug Sardegna Onlus

Fondatore e coordinator...
OSGi: The Dynamic Module System for Java

 Cosa permette ?


   1. Minimizzare i tempi in cui l'applicazione non risponde ...
Spring Dynamic Modules for OSGi
    Spring con OSGi permette:



   - Migliore separazione della logica applicativa in mod...
Librerie e dipendenze




Massimiliano Dessì, Sun Tech Day                           5
Cagliari, 13 Giugno 2008
Dao Registrato nel' OSGi service register:



import java.util.Dictionary;
import java.util.Properties;

import org.osgi.f...
Classe Tracker del DAO nell' OSGi service register
import   org.magicbox.osgi.services.ItemService;
import   org.magicbox....
Activator del servizio che carica il Tracker del DAO




import org.magicbox.osgi.dao.ItemDaoTracker;
import org.osgi.fram...
ApplicationContext




Massimiliano Dessì, Sun Tech Day
                                   9
Cagliari, 13Giugno 2008
Manifest

 # Indentification headers
 Bundle-SymbolicName: org.magicbox.ItemService
 Bundle-Version: 1.0.1
 Bundle-Name: S...
Modules at all level (not only in your app)




Massimiliano Dessì, Sun Tech Day
                                         ...
Dynamic Module Kernel (DMK),
                                   Kernel basato su OSGi-
                                   ...
Riferimenti

                                        Java.net :
                http://wiki.java.net/bin/view/People/Massi...
Grazie per l'attenzione.

                               Have a lot of fun !




Massimiliano Dessì, Sun Tech Day         ...
Upcoming SlideShare
Loading in...5
×

Dessi Tech Day2008 Cagliari

713

Published on

Slide Quickie 15 about Spring OSGi and Spring DMK and Application Platform

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
713
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Dessi Tech Day2008 Cagliari"

  1. 1. Spring 2008 what's the new ? 15 minute about Spring innovations Massimiliano Dessì http://www.jugsardegna.org/vqwiki/jsp/Wiki?MassimilianoDessi Massimiliano Dessì, Sun Tech Day 1 Cagliari, 13 Giugno 2008
  2. 2. Chi è lo Speaker ? Software Architect a SardegnaIT Co-fondatore e consigliere Jug Sardegna Onlus Fondatore e coordinatore: SpringFramework Italian User Group Jetspeed Italian User Group Groovy Italian User Group Massimiliano Dessì, Sun Tech Day 2 Cagliari, 13 Giugno 2008
  3. 3. OSGi: The Dynamic Module System for Java Cosa permette ? 1. Minimizzare i tempi in cui l'applicazione non risponde durante i rilasci, e migliorare le procedure di rollback quando si fanno nuovi rilasci, assicurando la continuità del servizio. 2. Versionamento delle librerie e delle classi per permettere la gestione della compatibilità all' indietro. OSGi permette la gestione dinamica e il versionamento di classi e librerie. 3. Partizionamento delle applicazioni in moduli. Massimiliano Dessì, Sun Tech Day 3 Cagliari, 13 Giugno 2008
  4. 4. Spring Dynamic Modules for OSGi Spring con OSGi permette: - Migliore separazione della logica applicativa in moduli - Possibilità di deployare più versioni dello stesso modulo o libreria in maniera concorrente - Poter fare il discovery dinamicamente e usare servizi forniti da altri moduli nel sistema - Capacità di installare aggiornare e disinstallare moduli in un sistema funzionante (senza fermarlo) - Utilizzo di Spring per istanziare , configurare, assemblare e decorare componenti da e tra moduli. - Un modello semplice e familiare per gli sviluppatori enterprise, per poter utilizzare le features della piattaforma OSGi. Massimiliano Dessì, Sun Tech Day 4 Cagliari, 13 Giugno 2008
  5. 5. Librerie e dipendenze Massimiliano Dessì, Sun Tech Day 5 Cagliari, 13 Giugno 2008
  6. 6. Dao Registrato nel' OSGi service register: import java.util.Dictionary; import java.util.Properties; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; public class ItemDaoActivator implements BundleActivator { private ServiceRegistration registration; public void start(BundleContext context) { ItemDao dao = new ItemDaoImpl(); Dictionary props = new Properties(); registration = context.registerService(ItemDao.class.getName(), dao, props); } public void stop(BundleContext context) { registration.unregister(); } } Massimiliano Dessì, Sun Tech Day 6 Cagliari, 13Giugno 2008
  7. 7. Classe Tracker del DAO nell' OSGi service register import org.magicbox.osgi.services.ItemService; import org.magicbox.osgi.services.ItemServiceImpl; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.osgi.framework.ServiceRegistration; import org.osgi.util.tracker.ServiceTracker; public class ItemDaoTracker extends ServiceTracker{ private final ItemServiceImpl itemService = new ItemServiceImpl(); private int daoCount = 0; private ServiceRegistration registration = null; public ItemDaoTracker(BundleContext context) { super(context, ItemDao.class.getName(), null); } private boolean registering = false; public Object addingService(ServiceReference reference) { ItemDao myDao = (ItemDao) context.getService(reference); ... return myDao; } public void removedService(ServiceReference reference, Object service) { .... } } Massimiliano Dessì, Sun Tech Day 7 Cagliari, 13Giugno 2008
  8. 8. Activator del servizio che carica il Tracker del DAO import org.magicbox.osgi.dao.ItemDaoTracker; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class ItemServiceActivator implements BundleActivator { private ItemDaoTracker tracker; public void start(BundleContext context) { tracker = new ItemDaoTracker(context); tracker.open(); } public void stop(BundleContext context) { tracker.close(); } } Massimiliano Dessì, Sun Tech Day 8 Cagliari, 13Giugno 2008
  9. 9. ApplicationContext Massimiliano Dessì, Sun Tech Day 9 Cagliari, 13Giugno 2008
  10. 10. Manifest # Indentification headers Bundle-SymbolicName: org.magicbox.ItemService Bundle-Version: 1.0.1 Bundle-Name: Sample Service Bundle-Vendor: Samples, Inc. # Class Path Bundle-ClassPath: . # Bundle Lifecycle management Bundle-Activator:org.magicbox.ItemServiceActivator # Dependencies Import-Package: org.osgi.framework;version=1.3 Require-Bundle: org.sample.AnotherService;bundle-version=”[1.2.0,2.0.0)” # Exports Export-package: org.magicbox.ItemService Tramite gli export-package e gli Import-Package dichiariamo di quali versioni di classi/jar ogni modulo ha bisogno, in questo modo possiamo avere classi/jar che non entrano in conflitto, perchè sono gestiti attraverso OSGi. Ora vediamo dove viene usato OSGi con Spring Massimiliano Dessì, Sun Tech Day 10 Cagliari, 13 Giugno 2008
  11. 11. Modules at all level (not only in your app) Massimiliano Dessì, Sun Tech Day 11 Cagliari, 13 Giugno 2008
  12. 12. Dynamic Module Kernel (DMK), Kernel basato su OSGi- (=modularità e versionamento), configurato con un set minimo di bundle (profile). Ogni modulo ha un personality che descrive che tipo di modulo è (es:web, batch, web service), ogni modulo può quindi essere aggiornato indipendentemente dagli altri, ad es un web module è configurato come contesto in tomcat. Forme di deploy: WAR OSGi bundles PAR (Platform archive resource) Massimiliano Dessì, Sun Tech Day 12 Cagliari, 13 Giugno 2008
  13. 13. Riferimenti Java.net : http://wiki.java.net/bin/view/People/MassimilianoDessi Jug Sardegna http://www.jugsardegna.org/vqwiki/jsp/Wiki?MassimilianoDessi OSGi http://www.osgi.org/ http://springframework.org/osgi http://osgi.dzone.com/news/there-place-osgitm-enterprise- http://osgi.dzone.com/news/there-place-osgi-enterprise-ap-0 Massimiliano Dessì, Sun Tech Day 25 Cagliari, 13 Giugno 2008
  14. 14. Grazie per l'attenzione. Have a lot of fun ! Massimiliano Dessì, Sun Tech Day 14 Cagliari, 13 Giugno 2008
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×