SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
1                                                                     1




                                                     CMDBuild:
un progetto open source di supporto
       alla gestione ICT (e non solo)
            Approfondimenti Tecnici
                         Francesco Zanitti – Tecnoteca S.r.l


                               CMDBuild è un progetto di:
                               • Tecnoteca srl [www.tecnoteca.com]
       Comune di Udine         • Comune di Udine [www.comune.udine.it]
                               • Cogitek srl [www.cogitek.it]
2                                                                   2

Modello di persistenza - 1
Com'è stato implementato

• CMDBuild implementa un modello di persistenza
  proprietario
• Perchè non é stato utilizzato un ORM tradizionale
  (Hibernate, Torque, iBatis ...) ?
      •Tool nati per gestire istanze di Classi ben definite
      e strutturate
      •Uso di file XML di mapping difficilmente
      manipolabili a runtime (se non di annotation...)


                              CMDBuild è un progetto di:
                              • Tecnoteca srl [www.tecnoteca.com]
        Comune di Udine       • Comune di Udine [www.comune.udine.it]
                              • Cogitek srl [www.cogitek.it]
3                                                                 3

Modello di persistenza - 2
Caratteristiche

• Modello generato a runtime
• Metadati serializzati direttamente nel DBMS
• Specifico per PostgreSQL, del quale sfrutta
  caratteristiche avanzate tra le quali:
      •Ereditarietà tabelle
      •Generazione trigger row-level tramite stored
      procedures



                            CMDBuild è un progetto di:
                            • Tecnoteca srl [www.tecnoteca.com]
         Comune di Udine    • Comune di Udine [www.comune.udine.it]
                            • Cogitek srl [www.cogitek.it]
4                                                                   4

Modello di persistenza - 3
Gestione

• Delegata al DBMS:
       •Ogni livello del modello è gestito tramite stored
       procedure (es. createclass, modifyattribute,
       deletereference, etc.)
• Cambiamenti nel modello di persistenza (ad esempio
  per correzioni o aggiunta di funzionalità) sono effettuati
  a livello di database, senza modificare il codice Java.



                              CMDBuild è un progetto di:
                              • Tecnoteca srl [www.tecnoteca.com]
           Comune di Udine    • Comune di Udine [www.comune.udine.it]
                              • Cogitek srl [www.cogitek.it]
5                                                                  5

Modello di persistenza - 4
Gestione

• Gestione metadati
      •Tipo attributo
      •Correlazione con altre tabelle
• Serializzati nei commenti alle tabelle e attributi
• Reperibili tramite viste specializzate (es.
  cmdbclasscatalog e cmdbdomaincatalog)
• Cancellazione:
      •Status oggetto (attivo, rimosso, storicizzato)

                             CMDBuild è un progetto di:
                             • Tecnoteca srl [www.tecnoteca.com]
           Comune di Udine   • Comune di Udine [www.comune.udine.it]
                             • Cogitek srl [www.cogitek.it]
6                                                                                                                              6

 Modello di persistenza - 5
 Gestione
    • regole di coerenza tradotte in trigger e funzioni generati “al volo”
    • gerarchia classi – sottoclassi tradotta in “derivazione” fra tabelle
    • storicizzazione completa dei dati ottenuta tramite tabelle “derivate” create e
      gestite in modo trasparente dal sistema
    • domini e loro storicizzazione gestiti tramite tabelle di relazione
CREATE TABLE quot;Assetquot;                    CREATE TABLE quot;Monitorquot;                                                        Asset
                                        (
(
                                                                                                           inherits            inherits
                                          quot;MonitorTypequot; varchar,
  quot;Idquot; numeric NOT NULL,
                                                                                                               PC             Monitor
                                          quot;ScreenSizequot; varchar(16),
  quot;Descriptionquot; varchar(250),
                                          quot;MaxScreenResquot; varchar(16)
  quot;SerialNoquot; varchar(40),                                                                           inherits                     inherits


                                    +                                         =>
                                        ) INHERITS (quot;Assetquot;)
  quot;VersionNoquot; varchar(32),
                                                                                                     PC_history           Monitor_history
  quot;InstallationDatequot; timestamp,
                                        CREATE TABLE quot;Monitor_historyquot;
  quot;WarrantyExpireDatequot; timestamp,                                                                                         è collegato a
                                                                                                   inherits
                                        (
  quot;Statequot; varchar(16),
                                                                                                 Map        Map_CollegatoA
                                          quot;HistoryIdquot; numeric NOT NULL,
  quot;StateDatequot; timestamp,
                                                                                                                         inherits
                                          quot;HistoryDatequot; timestamp
  CONSTRAINT asset_pkey
                                              NOT NULL DEFAULT now()                                            Map_CollegatoA_history
      PRIMARY KEY (quot;Idquot;)
                                        ) INHERITS (quot;Monitorquot;)
)

                                                                 CMDBuild è un progetto di:
                                                                 • Tecnoteca srl [www.tecnoteca.com]
                      Comune di Udine                            • Comune di Udine [www.comune.udine.it]
                                                                 • Cogitek srl [www.cogitek.it]
7                                                                       7

Enhydra Shark, integrazione - 1
Cos'è un motore di workflow?
•A Workflow engine is a software application meant to manage and
execute modeled business processes.[...]
•The Workflow engine will interpret events such as documents
submitted to the server or due dates expiring and act on these
events according to the defined business processes. [...]
•Workflow Engine facilitates the flow of information, tasks and
events [...]


•(http://en.wikipedia.org/wiki/Workflow_engine)

                                  CMDBuild è un progetto di:
                                  • Tecnoteca srl [www.tecnoteca.com]
          Comune di Udine         • Comune di Udine [www.comune.udine.it]
                                  • Cogitek srl [www.cogitek.it]
8                                                                 8

Enhydra Shark, integrazione - 2
Realizzazione
• Enhydra Shark:
      •Open source
      •Standard WfMG
      •Standard XPDL
• La definizione di un processo è collegata ad una
  classe di CMDBuild (ogni istanza del processo sarà
  collegata ad una tupla nella base di dati di CMDB)
• Riuso meccanismi presenti nel sistema (ad es. la
  reportistica)
                            CMDBuild è un progetto di:
                            • Tecnoteca srl [www.tecnoteca.com]
         Comune di Udine    • Comune di Udine [www.comune.udine.it]
                            • Cogitek srl [www.cogitek.it]
9                                                                   9

Enhydra Shark, integrazione - 3
Comunicazione bidirezionale

• Da CMDBuild è possibile iniziare e modificare un processo
• Da Shark è possibile richiede e modificare attributi di
  oggetti CMDBuild (eventualmente anche iniziare nuovi
  processi)
      •Possibile tramite una libreria di API remote
      •Protocollo HTTP e serializzazione JSON
      (it.wikipedia.org/wiki/JSON .. italiano!)
           •Né Ajax
           •Né REST

                              CMDBuild è un progetto di:
                              • Tecnoteca srl [www.tecnoteca.com]
        Comune di Udine       • Comune di Udine [www.comune.udine.it]
                              • Cogitek srl [www.cogitek.it]
10                                                               10

Gestione Documentale, Alfresco - 1
Cos'è Alfresco?

Alfresco is the Open Source Alternative for
Enterprise Content Management (ECM), providing
Document Management, Collaboration, Records
Management, Knowledge Management, Web
Content Management and Imaging.
(www.alfresco.com)


                          CMDBuild è un progetto di:
                          • Tecnoteca srl [www.tecnoteca.com]
        Comune di Udine   • Comune di Udine [www.comune.udine.it]
                          • Cogitek srl [www.cogitek.it]
11                                                                   11

Gestione Documentale, Alfresco - 2
Obiettivi

•Creazione/download/modifica allegati associati ad
un oggetto gestito da CMDBuild
•Ricerca tramite testo e meta dati (classe,
descrizione ecc.)
•Realizzare un'estensione di Alfresco che registri
l'associazione con l'oggetti di CMDBuild

                              CMDBuild è un progetto di:
                              • Tecnoteca srl [www.tecnoteca.com]
            Comune di Udine   • Comune di Udine [www.comune.udine.it]
                              • Cogitek srl [www.cogitek.it]
12                                                                      12

Gestione Documentale, Alfresco - 3
Implementazione
•Comunicazione e ricerca su alfresco tramite Web Service

   •Alfresco fornisce libreria per client WS

   •Interfaccia standard

•Trasferimento file (da e per alfresco) tramite FTP

   •Server FTP integrato in Alfresco

   •Velocità trasferimento (ftp nasce per il trasferimenti file,
    SOAP...)
                                 CMDBuild è un progetto di:
                                 • Tecnoteca srl [www.tecnoteca.com]
         Comune di Udine         • Comune di Udine [www.comune.udine.it]
                                 • Cogitek srl [www.cogitek.it]
13                                                                      13

Gestione Documentale, Alfresco - 4
Stato attuale
•Gestione visualizzazione, scaricamento e caricamento file.

•Realizzato modulo aggiuntivo (“Aspect”) per Alfresco:

   •Aspect... una trattazione a parte

   •Gestione metadata

   •Possibilità di ricerca direttamente nell'interfaccia di
    alfresco


                                 CMDBuild è un progetto di:
                                 • Tecnoteca srl [www.tecnoteca.com]
         Comune di Udine         • Comune di Udine [www.comune.udine.it]
                                 • Cogitek srl [www.cogitek.it]
14                                                                              14

Riferimenti
•CMDBuild (www.cmdbuild.org)

•PostgreSQL ereditarietà (www.postgresql.org/docs/8.1/interactive/ddl-inherit.html)

•Workflow Engine (http://en.wikipedia.org/wiki/Workflow_engine)

•Enhydra Shark (shark.enhydra.org)

•Alfresco AOP CMS (www.alfresco.org/aocm.html)

•JSON (json.org)

•AJAX (it.wikipedia.org/wiki/AJAX)

•REST (en.wikipedia.org/wiki/Representational_State_Transfer)
                                          CMDBuild è un progetto di:
                                          • Tecnoteca srl [www.tecnoteca.com]
            Comune di Udine               • Comune di Udine [www.comune.udine.it]
                                          • Cogitek srl [www.cogitek.it]

Mais conteúdo relacionado

Semelhante a CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo). Approfondimenti Tecnici

Spring E Spring Web Flow Nel Progetto Jug Avis Web
Spring E Spring Web Flow Nel Progetto Jug Avis WebSpring E Spring Web Flow Nel Progetto Jug Avis Web
Spring E Spring Web Flow Nel Progetto Jug Avis WebMassimiliano Dessì
 
ITIL come sistema di Governancedei servizi IT,CMDBuilda supporto delle “best ...
ITIL come sistema di Governancedei servizi IT,CMDBuilda supporto delle “best ...ITIL come sistema di Governancedei servizi IT,CMDBuilda supporto delle “best ...
ITIL come sistema di Governancedei servizi IT,CMDBuilda supporto delle “best ...CMDBuild org
 
Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer S.r.l.
 
CMDBuild, il software open source per l' IT service and asset management
CMDBuild, il software open source per l' IT service and asset managementCMDBuild, il software open source per l' IT service and asset management
CMDBuild, il software open source per l' IT service and asset managementCMDBuild org
 
CMDBuild: case study di un progetto open source
CMDBuild: case study di un progetto open sourceCMDBuild: case study di un progetto open source
CMDBuild: case study di un progetto open sourceCMDBuild org
 
Gestire e governare il patrimonio degli asset IT e non solo: CMDBuild
Gestire e governare il patrimonio degli asset IT e non solo: CMDBuildGestire e governare il patrimonio degli asset IT e non solo: CMDBuild
Gestire e governare il patrimonio degli asset IT e non solo: CMDBuildCMDBuild org
 
Technical manual (1)
Technical manual (1)Technical manual (1)
Technical manual (1)cpro2011
 
Layered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSLayered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSAndrea Saltarello
 
CMDbuild....la nostra esperienza
CMDbuild....la nostra esperienzaCMDbuild....la nostra esperienza
CMDbuild....la nostra esperienzaCMDBuild org
 
Docker vs Virtualizzazioni
Docker vs VirtualizzazioniDocker vs Virtualizzazioni
Docker vs VirtualizzazioniGiuliano Latini
 
Sviluppo web con Ruby on Rails
Sviluppo web con Ruby on RailsSviluppo web con Ruby on Rails
Sviluppo web con Ruby on Railsjekil
 
Un progetto open source per la gestione dei processi ICT. Presentazione e dim...
Un progetto open source per la gestione dei processi ICT. Presentazione e dim...Un progetto open source per la gestione dei processi ICT. Presentazione e dim...
Un progetto open source per la gestione dei processi ICT. Presentazione e dim...CMDBuild org
 
VIRTUALENERGY - Sviluppo di sistemi per l'aggregazione, il coordinamento e l'...
VIRTUALENERGY - Sviluppo di sistemi per l'aggregazione, il coordinamento e l'...VIRTUALENERGY - Sviluppo di sistemi per l'aggregazione, il coordinamento e l'...
VIRTUALENERGY - Sviluppo di sistemi per l'aggregazione, il coordinamento e l'...Sardegna Ricerche
 
Monitoraggio della rete con cacti
Monitoraggio della rete con cactiMonitoraggio della rete con cacti
Monitoraggio della rete con cactidalegiuseppe
 
Depliant_TeamSystem_PowerSuite
Depliant_TeamSystem_PowerSuiteDepliant_TeamSystem_PowerSuite
Depliant_TeamSystem_PowerSuiteGiuseppe Torre
 

Semelhante a CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo). Approfondimenti Tecnici (20)

m-v-vm @ UgiAlt.Net
m-v-vm @ UgiAlt.Netm-v-vm @ UgiAlt.Net
m-v-vm @ UgiAlt.Net
 
Devianze
DevianzeDevianze
Devianze
 
Spring E Spring Web Flow Nel Progetto Jug Avis Web
Spring E Spring Web Flow Nel Progetto Jug Avis WebSpring E Spring Web Flow Nel Progetto Jug Avis Web
Spring E Spring Web Flow Nel Progetto Jug Avis Web
 
ITIL come sistema di Governancedei servizi IT,CMDBuilda supporto delle “best ...
ITIL come sistema di Governancedei servizi IT,CMDBuilda supporto delle “best ...ITIL come sistema di Governancedei servizi IT,CMDBuilda supporto delle “best ...
ITIL come sistema di Governancedei servizi IT,CMDBuilda supporto delle “best ...
 
Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione
 
Develer - Qt Embedded - Intro
Develer - Qt Embedded - IntroDeveler - Qt Embedded - Intro
Develer - Qt Embedded - Intro
 
Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 
CMDBuild, il software open source per l' IT service and asset management
CMDBuild, il software open source per l' IT service and asset managementCMDBuild, il software open source per l' IT service and asset management
CMDBuild, il software open source per l' IT service and asset management
 
CMDBuild: case study di un progetto open source
CMDBuild: case study di un progetto open sourceCMDBuild: case study di un progetto open source
CMDBuild: case study di un progetto open source
 
Gestire e governare il patrimonio degli asset IT e non solo: CMDBuild
Gestire e governare il patrimonio degli asset IT e non solo: CMDBuildGestire e governare il patrimonio degli asset IT e non solo: CMDBuild
Gestire e governare il patrimonio degli asset IT e non solo: CMDBuild
 
Technical manual (1)
Technical manual (1)Technical manual (1)
Technical manual (1)
 
Layered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSLayered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRS
 
CMDbuild....la nostra esperienza
CMDbuild....la nostra esperienzaCMDbuild....la nostra esperienza
CMDbuild....la nostra esperienza
 
Docker vs Virtualizzazioni
Docker vs VirtualizzazioniDocker vs Virtualizzazioni
Docker vs Virtualizzazioni
 
m-v-vm @ dotNetMarche
m-v-vm @ dotNetMarchem-v-vm @ dotNetMarche
m-v-vm @ dotNetMarche
 
Sviluppo web con Ruby on Rails
Sviluppo web con Ruby on RailsSviluppo web con Ruby on Rails
Sviluppo web con Ruby on Rails
 
Un progetto open source per la gestione dei processi ICT. Presentazione e dim...
Un progetto open source per la gestione dei processi ICT. Presentazione e dim...Un progetto open source per la gestione dei processi ICT. Presentazione e dim...
Un progetto open source per la gestione dei processi ICT. Presentazione e dim...
 
VIRTUALENERGY - Sviluppo di sistemi per l'aggregazione, il coordinamento e l'...
VIRTUALENERGY - Sviluppo di sistemi per l'aggregazione, il coordinamento e l'...VIRTUALENERGY - Sviluppo di sistemi per l'aggregazione, il coordinamento e l'...
VIRTUALENERGY - Sviluppo di sistemi per l'aggregazione, il coordinamento e l'...
 
Monitoraggio della rete con cacti
Monitoraggio della rete con cactiMonitoraggio della rete con cacti
Monitoraggio della rete con cacti
 
Depliant_TeamSystem_PowerSuite
Depliant_TeamSystem_PowerSuiteDepliant_TeamSystem_PowerSuite
Depliant_TeamSystem_PowerSuite
 

Mais de CMDBuild org

CMDBuild READY2USE, the pre-configured CMDBuild READY TO BE USED within the p...
CMDBuild READY2USE, the pre-configured CMDBuild READY TO BE USED within the p...CMDBuild READY2USE, the pre-configured CMDBuild READY TO BE USED within the p...
CMDBuild READY2USE, the pre-configured CMDBuild READY TO BE USED within the p...CMDBuild org
 
CMDBuild, the open source software for the IT service and asset management
CMDBuild, the open source software for the IT service and asset managementCMDBuild, the open source software for the IT service and asset management
CMDBuild, the open source software for the IT service and asset managementCMDBuild org
 
CMDBuild: progetto, modi di utilizzo, evoluzioni
CMDBuild: progetto, modi di utilizzo, evoluzioniCMDBuild: progetto, modi di utilizzo, evoluzioni
CMDBuild: progetto, modi di utilizzo, evoluzioniCMDBuild org
 
Gestione tecnica del progetto e stato di avanzamento dei lavori
Gestione tecnica del progetto e stato di avanzamento dei lavoriGestione tecnica del progetto e stato di avanzamento dei lavori
Gestione tecnica del progetto e stato di avanzamento dei lavoriCMDBuild org
 
Un prototipo di integrazione fra CMDBuild e NetEye / Nagios
Un prototipo di integrazione fra CMDBuild e NetEye / NagiosUn prototipo di integrazione fra CMDBuild e NetEye / Nagios
Un prototipo di integrazione fra CMDBuild e NetEye / NagiosCMDBuild org
 
Un approccio integrato e open al service management: l'esperienza e le prospe...
Un approccio integrato e open al service management: l'esperienza e le prospe...Un approccio integrato e open al service management: l'esperienza e le prospe...
Un approccio integrato e open al service management: l'esperienza e le prospe...CMDBuild org
 
CMDBUILD: Collaboration Suite?
CMDBUILD: Collaboration Suite?CMDBUILD: Collaboration Suite?
CMDBUILD: Collaboration Suite?CMDBuild org
 
Gestione delle risorse e dei servizi IT con CMDBuild
Gestione delle risorse e dei servizi IT con CMDBuildGestione delle risorse e dei servizi IT con CMDBuild
Gestione delle risorse e dei servizi IT con CMDBuildCMDBuild org
 
CMDBuild on the Cloud
CMDBuild on the CloudCMDBuild on the Cloud
CMDBuild on the CloudCMDBuild org
 
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi ITITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi ITCMDBuild org
 
CMDBuild: non solo asset. Gestire i cicli di vita tramite Workflow
CMDBuild: non solo asset. Gestire i cicli di vita tramite WorkflowCMDBuild: non solo asset. Gestire i cicli di vita tramite Workflow
CMDBuild: non solo asset. Gestire i cicli di vita tramite WorkflowCMDBuild org
 
IT Service management: accesso integrato per service catalog, news e ticketing
IT Service management: accesso integrato per service catalog, news e ticketingIT Service management: accesso integrato per service catalog, news e ticketing
IT Service management: accesso integrato per service catalog, news e ticketingCMDBuild org
 
CMDBuild 1 strumento, 100 soluzioni
CMDBuild 1 strumento, 100 soluzioniCMDBuild 1 strumento, 100 soluzioni
CMDBuild 1 strumento, 100 soluzioniCMDBuild org
 
CMDBuild Una storia di successo
CMDBuild Una storia di successoCMDBuild Una storia di successo
CMDBuild Una storia di successoCMDBuild org
 
CMDBuild in Camera dei Deputati
CMDBuild in Camera dei DeputatiCMDBuild in Camera dei Deputati
CMDBuild in Camera dei DeputatiCMDBuild org
 
CMDBuild come strumento di controllo dei processi IT e della gestione del Budget
CMDBuild come strumento di controllo dei processi IT e della gestione del BudgetCMDBuild come strumento di controllo dei processi IT e della gestione del Budget
CMDBuild come strumento di controllo dei processi IT e della gestione del BudgetCMDBuild org
 
Monitoraggio dei servizi e gestione degli allarmi con CMDBuild
Monitoraggio dei servizi e gestione degli allarmi con CMDBuildMonitoraggio dei servizi e gestione degli allarmi con CMDBuild
Monitoraggio dei servizi e gestione degli allarmi con CMDBuildCMDBuild org
 
La gestione degli interventi dei fornitori esterni con CMDBuild: manutenzione...
La gestione degli interventi dei fornitori esterni con CMDBuild: manutenzione...La gestione degli interventi dei fornitori esterni con CMDBuild: manutenzione...
La gestione degli interventi dei fornitori esterni con CMDBuild: manutenzione...CMDBuild org
 
CMDBuild presentation
CMDBuild presentationCMDBuild presentation
CMDBuild presentationCMDBuild org
 
CMDBuild: l’Open Source e ITIL per la gestione degli asset informatici (e non...
CMDBuild: l’Open Source e ITIL per la gestione degli asset informatici (e non...CMDBuild: l’Open Source e ITIL per la gestione degli asset informatici (e non...
CMDBuild: l’Open Source e ITIL per la gestione degli asset informatici (e non...CMDBuild org
 

Mais de CMDBuild org (20)

CMDBuild READY2USE, the pre-configured CMDBuild READY TO BE USED within the p...
CMDBuild READY2USE, the pre-configured CMDBuild READY TO BE USED within the p...CMDBuild READY2USE, the pre-configured CMDBuild READY TO BE USED within the p...
CMDBuild READY2USE, the pre-configured CMDBuild READY TO BE USED within the p...
 
CMDBuild, the open source software for the IT service and asset management
CMDBuild, the open source software for the IT service and asset managementCMDBuild, the open source software for the IT service and asset management
CMDBuild, the open source software for the IT service and asset management
 
CMDBuild: progetto, modi di utilizzo, evoluzioni
CMDBuild: progetto, modi di utilizzo, evoluzioniCMDBuild: progetto, modi di utilizzo, evoluzioni
CMDBuild: progetto, modi di utilizzo, evoluzioni
 
Gestione tecnica del progetto e stato di avanzamento dei lavori
Gestione tecnica del progetto e stato di avanzamento dei lavoriGestione tecnica del progetto e stato di avanzamento dei lavori
Gestione tecnica del progetto e stato di avanzamento dei lavori
 
Un prototipo di integrazione fra CMDBuild e NetEye / Nagios
Un prototipo di integrazione fra CMDBuild e NetEye / NagiosUn prototipo di integrazione fra CMDBuild e NetEye / Nagios
Un prototipo di integrazione fra CMDBuild e NetEye / Nagios
 
Un approccio integrato e open al service management: l'esperienza e le prospe...
Un approccio integrato e open al service management: l'esperienza e le prospe...Un approccio integrato e open al service management: l'esperienza e le prospe...
Un approccio integrato e open al service management: l'esperienza e le prospe...
 
CMDBUILD: Collaboration Suite?
CMDBUILD: Collaboration Suite?CMDBUILD: Collaboration Suite?
CMDBUILD: Collaboration Suite?
 
Gestione delle risorse e dei servizi IT con CMDBuild
Gestione delle risorse e dei servizi IT con CMDBuildGestione delle risorse e dei servizi IT con CMDBuild
Gestione delle risorse e dei servizi IT con CMDBuild
 
CMDBuild on the Cloud
CMDBuild on the CloudCMDBuild on the Cloud
CMDBuild on the Cloud
 
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi ITITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
ITIL® e CMDBuild in Eurogroup Per La Gestione Dei Servizi IT
 
CMDBuild: non solo asset. Gestire i cicli di vita tramite Workflow
CMDBuild: non solo asset. Gestire i cicli di vita tramite WorkflowCMDBuild: non solo asset. Gestire i cicli di vita tramite Workflow
CMDBuild: non solo asset. Gestire i cicli di vita tramite Workflow
 
IT Service management: accesso integrato per service catalog, news e ticketing
IT Service management: accesso integrato per service catalog, news e ticketingIT Service management: accesso integrato per service catalog, news e ticketing
IT Service management: accesso integrato per service catalog, news e ticketing
 
CMDBuild 1 strumento, 100 soluzioni
CMDBuild 1 strumento, 100 soluzioniCMDBuild 1 strumento, 100 soluzioni
CMDBuild 1 strumento, 100 soluzioni
 
CMDBuild Una storia di successo
CMDBuild Una storia di successoCMDBuild Una storia di successo
CMDBuild Una storia di successo
 
CMDBuild in Camera dei Deputati
CMDBuild in Camera dei DeputatiCMDBuild in Camera dei Deputati
CMDBuild in Camera dei Deputati
 
CMDBuild come strumento di controllo dei processi IT e della gestione del Budget
CMDBuild come strumento di controllo dei processi IT e della gestione del BudgetCMDBuild come strumento di controllo dei processi IT e della gestione del Budget
CMDBuild come strumento di controllo dei processi IT e della gestione del Budget
 
Monitoraggio dei servizi e gestione degli allarmi con CMDBuild
Monitoraggio dei servizi e gestione degli allarmi con CMDBuildMonitoraggio dei servizi e gestione degli allarmi con CMDBuild
Monitoraggio dei servizi e gestione degli allarmi con CMDBuild
 
La gestione degli interventi dei fornitori esterni con CMDBuild: manutenzione...
La gestione degli interventi dei fornitori esterni con CMDBuild: manutenzione...La gestione degli interventi dei fornitori esterni con CMDBuild: manutenzione...
La gestione degli interventi dei fornitori esterni con CMDBuild: manutenzione...
 
CMDBuild presentation
CMDBuild presentationCMDBuild presentation
CMDBuild presentation
 
CMDBuild: l’Open Source e ITIL per la gestione degli asset informatici (e non...
CMDBuild: l’Open Source e ITIL per la gestione degli asset informatici (e non...CMDBuild: l’Open Source e ITIL per la gestione degli asset informatici (e non...
CMDBuild: l’Open Source e ITIL per la gestione degli asset informatici (e non...
 

CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo). Approfondimenti Tecnici

  • 1. 1 1 CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo) Approfondimenti Tecnici Francesco Zanitti – Tecnoteca S.r.l CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 2. 2 2 Modello di persistenza - 1 Com'è stato implementato • CMDBuild implementa un modello di persistenza proprietario • Perchè non é stato utilizzato un ORM tradizionale (Hibernate, Torque, iBatis ...) ? •Tool nati per gestire istanze di Classi ben definite e strutturate •Uso di file XML di mapping difficilmente manipolabili a runtime (se non di annotation...) CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 3. 3 3 Modello di persistenza - 2 Caratteristiche • Modello generato a runtime • Metadati serializzati direttamente nel DBMS • Specifico per PostgreSQL, del quale sfrutta caratteristiche avanzate tra le quali: •Ereditarietà tabelle •Generazione trigger row-level tramite stored procedures CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 4. 4 4 Modello di persistenza - 3 Gestione • Delegata al DBMS: •Ogni livello del modello è gestito tramite stored procedure (es. createclass, modifyattribute, deletereference, etc.) • Cambiamenti nel modello di persistenza (ad esempio per correzioni o aggiunta di funzionalità) sono effettuati a livello di database, senza modificare il codice Java. CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 5. 5 5 Modello di persistenza - 4 Gestione • Gestione metadati •Tipo attributo •Correlazione con altre tabelle • Serializzati nei commenti alle tabelle e attributi • Reperibili tramite viste specializzate (es. cmdbclasscatalog e cmdbdomaincatalog) • Cancellazione: •Status oggetto (attivo, rimosso, storicizzato) CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 6. 6 6 Modello di persistenza - 5 Gestione • regole di coerenza tradotte in trigger e funzioni generati “al volo” • gerarchia classi – sottoclassi tradotta in “derivazione” fra tabelle • storicizzazione completa dei dati ottenuta tramite tabelle “derivate” create e gestite in modo trasparente dal sistema • domini e loro storicizzazione gestiti tramite tabelle di relazione CREATE TABLE quot;Assetquot; CREATE TABLE quot;Monitorquot; Asset ( ( inherits inherits quot;MonitorTypequot; varchar, quot;Idquot; numeric NOT NULL, PC Monitor quot;ScreenSizequot; varchar(16), quot;Descriptionquot; varchar(250), quot;MaxScreenResquot; varchar(16) quot;SerialNoquot; varchar(40), inherits inherits + => ) INHERITS (quot;Assetquot;) quot;VersionNoquot; varchar(32), PC_history Monitor_history quot;InstallationDatequot; timestamp, CREATE TABLE quot;Monitor_historyquot; quot;WarrantyExpireDatequot; timestamp, è collegato a inherits ( quot;Statequot; varchar(16), Map Map_CollegatoA quot;HistoryIdquot; numeric NOT NULL, quot;StateDatequot; timestamp, inherits quot;HistoryDatequot; timestamp CONSTRAINT asset_pkey NOT NULL DEFAULT now() Map_CollegatoA_history PRIMARY KEY (quot;Idquot;) ) INHERITS (quot;Monitorquot;) ) CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 7. 7 7 Enhydra Shark, integrazione - 1 Cos'è un motore di workflow? •A Workflow engine is a software application meant to manage and execute modeled business processes.[...] •The Workflow engine will interpret events such as documents submitted to the server or due dates expiring and act on these events according to the defined business processes. [...] •Workflow Engine facilitates the flow of information, tasks and events [...] •(http://en.wikipedia.org/wiki/Workflow_engine) CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 8. 8 8 Enhydra Shark, integrazione - 2 Realizzazione • Enhydra Shark: •Open source •Standard WfMG •Standard XPDL • La definizione di un processo è collegata ad una classe di CMDBuild (ogni istanza del processo sarà collegata ad una tupla nella base di dati di CMDB) • Riuso meccanismi presenti nel sistema (ad es. la reportistica) CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 9. 9 9 Enhydra Shark, integrazione - 3 Comunicazione bidirezionale • Da CMDBuild è possibile iniziare e modificare un processo • Da Shark è possibile richiede e modificare attributi di oggetti CMDBuild (eventualmente anche iniziare nuovi processi) •Possibile tramite una libreria di API remote •Protocollo HTTP e serializzazione JSON (it.wikipedia.org/wiki/JSON .. italiano!) •Né Ajax •Né REST CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 10. 10 10 Gestione Documentale, Alfresco - 1 Cos'è Alfresco? Alfresco is the Open Source Alternative for Enterprise Content Management (ECM), providing Document Management, Collaboration, Records Management, Knowledge Management, Web Content Management and Imaging. (www.alfresco.com) CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 11. 11 11 Gestione Documentale, Alfresco - 2 Obiettivi •Creazione/download/modifica allegati associati ad un oggetto gestito da CMDBuild •Ricerca tramite testo e meta dati (classe, descrizione ecc.) •Realizzare un'estensione di Alfresco che registri l'associazione con l'oggetti di CMDBuild CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 12. 12 12 Gestione Documentale, Alfresco - 3 Implementazione •Comunicazione e ricerca su alfresco tramite Web Service •Alfresco fornisce libreria per client WS •Interfaccia standard •Trasferimento file (da e per alfresco) tramite FTP •Server FTP integrato in Alfresco •Velocità trasferimento (ftp nasce per il trasferimenti file, SOAP...) CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 13. 13 13 Gestione Documentale, Alfresco - 4 Stato attuale •Gestione visualizzazione, scaricamento e caricamento file. •Realizzato modulo aggiuntivo (“Aspect”) per Alfresco: •Aspect... una trattazione a parte •Gestione metadata •Possibilità di ricerca direttamente nell'interfaccia di alfresco CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]
  • 14. 14 14 Riferimenti •CMDBuild (www.cmdbuild.org) •PostgreSQL ereditarietà (www.postgresql.org/docs/8.1/interactive/ddl-inherit.html) •Workflow Engine (http://en.wikipedia.org/wiki/Workflow_engine) •Enhydra Shark (shark.enhydra.org) •Alfresco AOP CMS (www.alfresco.org/aocm.html) •JSON (json.org) •AJAX (it.wikipedia.org/wiki/AJAX) •REST (en.wikipedia.org/wiki/Representational_State_Transfer) CMDBuild è un progetto di: • Tecnoteca srl [www.tecnoteca.com] Comune di Udine • Comune di Udine [www.comune.udine.it] • Cogitek srl [www.cogitek.it]