SlideShare a Scribd company logo
1 of 25
Download to read offline
Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)            1




      INTEGRAZIONE DI SISTEMI
                 METODI E APPROCCIO AL PROBLEMA




     Progetto       Formazione - RLS                   Autore/i      Antonio Musarra antonio.musarra@gmail.com
                                                                     Blog: http://musarra.wordpress.com
     Oggetto        Integrazione di Sistemi            D. Rilascio   31/03/2010
     Revisione      1.1 – 06/04/2010




31 Marzo 2010                                                                Sessione introduttiva
Introduzione
2

        Il titolo dato alla presentazione è molto generico, il che implica la
    vastità dell’argomento, il sottotitolo cerca invece di mettere degli argini
    all’argomento trattato. Questa sessione di formazione introduttiva non
    vuole essere teorica ma alquanto pratica, con l’obiettivo finale di
    lasciare ai partecipanti uno “strumento” che consenta di portare a
    termine e nel migliore dei modi i problemi legati all’integrazione tra
    sistemi.
        Lo strumento a cui si è fatto riferimento nel precedente paragrafo è
    possibile definirlo come l’insieme di: “Attrezzi” e metodi che facilitano
    l’approccio al problema.
        Nel corso di questa sessione di formazione sarà affrontato un
    esempio pratico d’integrazione tra due tipologie di sistemi, cercando di
    mettere in risalto per quanto possibile i principali ruoli coinvolti in
    questo tipo di attività.


      Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
Introduzione
3

        Il processo d’integrazione tra diversi tipi di sistemi informatici avviene
    attraverso l’utilizzo di software e soluzioni architetturali. In questa sessione di
    formazione, i sistemi informatici (a titolo d’esempio) da sottoporre al processo
    d’integrazione sono due e appartengono a due diverse tipologie:
    ¨  Content Management System – CMS

    ¨  Customer Relationship Management – CRM



        Il CMS che prenderemo come riferimento è rappresentato dalla soluzione
    software Open Source (scritto in PHP) Joomla, invece il CRM che prenderemo
    come riferimento è rappresentato dalla soluzione software Open Source
    (scritto in PHP) SugarCRM.
        La soluzione architetturale da adottare in questo “semplice” processo
    d’integrazione sarà basata interamente sull’utilizzo dei Servizi Web (o Web
    Service), la scelta di questa soluzione è giustificata dal fatto che entrambi i
    sistemi sono Provider di Servizi Web.


       Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
L’oggetto dell’integrazione
4

        Nella precedente slide abbiamo visto in breve quali saranno i
    sistemi coinvolti nel processo d’integrazione. A questo punto non resta
    che far luce sull’oggetto dell’integrazione. Credo che uno scenario
    possibile d’integrazione tra i due tipi di sistemi possa essere il
    seguente:

        La società Acme Corporation che gestisce i propri clienti e relativi
    processi attraverso un CRM, ha la necessità di far accedere i propri
    clienti a determinati contenuti pubblicati sul portale internet realizzato
    con il sistema di CMS.

       Lo scenario d’integrazione mi sembra abbastanza chiaro, può
    rendere ancora più chiare le idee lo schema illustrato nella slide
    successiva.

      Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
L’oggetto dell’integrazione: Il Cosa
5



                                    Portale ACME C.



                                                              Site Map      Acrobat
                                                                           Document
                                             Chat




       Customer
       ACME C.
                                          Search Page         Web Page         Form



        Il risultato finale dell’integrazione, quindi, “il cosa” l’integrazione consentirà di fare,
    è illustrato in maniera semplice e sintetica nello schema sopra riportato. Il cliente
    registrato sul CRM di Acme potrà accedere per esempio ai documenti PDF dei contratti
    o degli ordini, accedere a un servizio di supporto al cliente che potrebbe avvenire
    tramite un sistema di Chat e tanto altro ancora.

       Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
L’oggetto dell’integrazione: Il Come
6


        Il Cosa (visto nella precedente slide) e Il Come sono due
    termini importanti nell’ingegneria del software, vivono in fasi
    diverse, il primo nella fase definita di Avvio e Analisi, il
    secondo nella fase definita di Progettazione e Implementazione.
        In una delle precedenti slide d’introduzione è stato fatto
    accenno circa la soluzione architetturale da adottare, la scelta
    e ricaduta sull’utilizzo dei Servizi Web che rappresentano Il
    Come, in altre parole, come l’integrazione trai i due sistemi di
    CMS e CRM dovrà avvenire affinché si possa verificare Il
    Cosa.
        Per fissare ancor meglio le idee, nella prossima slide è
    illustrato un semplice schema che mostra come i due sistemi
    saranno integrati.

      Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
L’oggetto dell’integrazione: Il Come
7




                                     Portale ACME C.                                   Sistema Gestione
                                          (CMS)                                          Clienti (CRM)

                       Comunicazione su
    Customer            protocollo HTTP                                    Comunicazione via Servizi Web
    ACME C.                                                                       (Web Service)



        E’ possibile affermare che i sistemi sono tre, anche il cliente può
    essere considerato come tale, dato che però non è parte attiva
    dell’integrazione può essere trascurato. E’ ormai assodato che i due
    sistemi (CMS & CRM) comunicheranno tra loro fruttando i Servizi Web,
    ma quali dovranno essere le responsabilità di ogni sistema che
    partecipa all’integrazione ?
       Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)      31 Marzo 2010
L’oggetto dell’integrazione: Il Come
8


                                            Service Consumer                                  Service Provider




                                        Portale ACME C.                                   Sistema Gestione
                                             (CMS)                                          Clienti (CRM)

                          Comunicazione su
    Customer               protocollo HTTP                                    Comunicazione via Servizi Web
    ACME C.                                                                          (Web Service)


    ¨    Il sistema di CRM ha la responsabilità di fornire ai fini dell’integrazione una
          serie di Servizi Web che espongo le funzionalità richieste;
    ¨    Il sistema di CMS ha la responsabilità di agire come consumatore dei
          Servizi Web esposti dal sistema di CRM.

          Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)      31 Marzo 2010
Conoscere i sistemi da integrare
9

        Quando si parla d’integrazione tra sistemi, esiste quella figura professionale (o
    azienda) che prende il nome di System Integrator cui compito è quello di far dialogare
    impianti diversi tra di loro allo scopo di creare una nuova struttura funzionale che
    soddisfi i requisiti richiesti (Il Cosa).
        Considerando i sistemi come delle “scatole nere”, i System Integrator hanno la sola
    necessità di conoscere per ogni sistema da integrare le sole interfacce pubbliche e i
    metodi di accesso a quest’ultime.
        Nel nostro scenario, dove i sistemi coinvolti sono:

    ¨    Joomla che implementa il sistema di CMS. La versione di riferimento è la 1.5;
    ¨    SugarCRM che implementa il sistema di CRM. La versione di riferimento è la 5.5.

    sappiamo che entrambi espongono parte o tutte le funzionalità attraverso le cosiddette
    interfacce pubbliche, quest’ultime implementate fruttando la tecnologia dei Servizi Web.




          Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
Conoscere i sistemi da integrare
10

         Sullo scenario descritto nelle precedenti slide, ipotizziamo di ricoprire il
     ruolo di System Integrator e Owner del sistema CMS (Joomla). In qualità di
     Owner del sistema CMS dobbiamo essere in grado di sviluppare il
     componente (potrebbero essere più di uno) software che soddisfi il requisito
     funzionale descritto precedentemente nelle slide 4 e 5.
         Per quanto riguarda invece il sistema CRM (agiamo quindi come System
     Integrator), siamo tenuti a conoscere la sola interfaccia pubblica (realizzata
     attraverso i Servizi Web) di cui è disponibile ampia documentazione.
         Vediamo in breve quali sono le azioni “di sviluppo” da compiere sui due
     sistemi:
     ¨  CRM: Nessuna azione di sviluppo da intraprendere;

     ¨  CMS: Sviluppo di un componente software che consenta di colloquiare con
     il sistema di CRM (attraverso i Servizi Web) affinché il cliente possa
     autenticarsi e accedere ai propri contenuti. Ricordiamo che le informazioni sul
     cliente sono di proprietà del CRM, quest’ultimo diviene quindi l’attore
     principale del processo di autenticazione.

        Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
Conoscere i sistemi da integrare
11

          Da questa slide in poi vedremo come sviluppare il componente richiesto sul sistema CMS. Il nostro sistema di
     CMS di cui noi siamo Owner è sviluppato interamente in PHP e adotta in pieno il paradigma OOP (Object
     Oriented Programming), tra l’altro fa largo uso di soluzioni progettuali tra le più comuni (vedi Design Pattern),
     consentendo in questo modo una certa facilità d’estensione, resa anche possibile grazie alla struttura a
     componenti di Joomla.




          In linea generale, quando bisogna estendere sistemi di qualunque natura costruiti secondo “schemi
     standard” (tra cui rientra il nostro Joomla), potrebbe essere più che sufficiente per noi sviluppatori l’accesso alla
     documentazione fornita a corredo. E’ vero che la sola documentazione non basta, o meglio, il lettore deve
     possedere dei requisiti minimi che lo facilitano nella comprensione della documentazione stessa e del codice
     applicativo:
     ¨   Buona conoscenza di OOP;
     ¨   Buona conoscenza dei più comuni Design Pattern;
     ¨   Sufficiente conoscenza del linguaggio UML.

         Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)               31 Marzo 2010
Conoscere i sistemi da integrare
12

          Le risorse disponibili su Joomla, che sono poi il primo punto di partenza per la conoscenza
     dello strumento, sono tutte concentrate sul portale dedicato: Joomla! Official Documentation.
     Vediamo quali sono le sezioni più d’interesse:

     ¨     Administrators
     ¨     Web designers
     ¨     Developers
     ¨     Joomla! Framework API Reference.
           ¤    API 1.5
           ¤    API 1.6


          Le risorse di nostro interesse che riguardano invece il sistema di CRM sono disponibili sul
     portale di SugarCRM all’indirizzo:
     http://developers.sugarcrm.com/documentation.php?edition=OS.
          Ai fini dell’integrazione è utile per noi la documentazione rivolta agli sviluppatori, in
     particolare la sezione dedicata ai Servizi Web disponibile all’indirizzo:
     http://developers.sugarcrm.com/docs/OS/5.5/-docs-Developer_Guides-
     Sugar_Developer_Guide_5.5-Chapter%202%20Application%20Framework.html#9000194

           Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
Lo sviluppo su Joomla
13

           Ipotizzando di aver studiato la documentazione introduttiva su Joomla riguardo la sua struttura d’insieme e i possibili punti di
     estensione, è possibile affermare che il nostro obiettivo si traduce nello sviluppo di un Plugin Joomla di tipo Autenticazione. La
     funzionalità del nuovo Plugin contribuirà in massima parte alla risoluzione del requisito richiesto.
           Per lo sviluppo di Plugin su Joomla è possibile far riferimento alla documentazione ufficiale disponibile ai seguenti indirizzi:
     ¨    Joomla Plugins
     ¨    How to create a Joomla! Plugin


            Ricordo che i Plugin sono estensioni che si basano su un particolare design pattern, chiamato Observer. In pratica essi restano
     inattivi fino a che Joomla lancia un particolare evento. Ogni Plugin si registra per un determinato evento e quando esso avviene, il
     Plugin viene eseguito. Il nostro Plugin prenderà il nome di SugarCRMOverSOAP e dovrà assolvere i seguenti compiti:
     ¨    Sulla base delle credenziali fornite dall’utente del portale deve inviare il messaggio di login() verso il sistema di CRM;
     ¨    Deve richiedere la User ID al sistema CRM sulla base della sessione restituita in risposta al messaggio di login(). La richiesta
           avviene inviando il messaggio get_user_id() al sistema di CRM;
     ¨    Deve richiedere le informazioni di dettaglio sul cliente (Nome, Cognome, Email, etc…) sulla base della User ID inviando un
           messaggio get_entry() al sistema di CRM;
     ¨    Estrae le informazioni del cliente d’interesse per il CMS;


            Nella precedente lista dei “requisiti” del Plugin ho indicato i soli segmenti del flusso degli eventi principale, non sono quindi
     presenti l’eccezioni. Nella successiva slide una digramma di sequenza dimostra la comunicazione tra i principali attori coinvolti
     nell’integrazione.




           Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)                             31 Marzo 2010
Lo sviluppo su Joomla
14

                                                                       Sull’evento di Autenticazione
                                                                       (onAuthenticate) scatenato da Joomla viene
                                                                       istanziato il nostro Plugin.

                                                                       Web Service API’s del sistema di CRM
                                                                       SugarCRM

                                                                       Scambio dei messaggi tra il sistema Joomla
                                                                       (attraverso il Plugin) e il sistema di CRM
                                                                       SugarCRM. Lo scambio dei messaggi
                                                                       avviene tramite protocollo SOAP.




                                                                       Qualora il cliente è al suo primo accesso al
                                                                       portale, sarà creato come utente del sistema
                                                                       di CMS, condizione necessaria imposta dal
                                                                       CMS stesso.




      Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)           31 Marzo 2010
Lo sviluppo su Joomla
15

         Il Plugin che andremo a sviluppare e che abbiamo deciso di
     chiamare con il nome di SugarCRMOverSOAP è tipo Authenticate e
     deve rispondere all’evento onAuthenticate, evento generato da Joomla
     quando è richiesto un processo di autenticazione, in altre parole, un
     utente del portale esegue una login attraverso l’opportuna form
     visualizzata sul portale. La costruzione del Plugin si traduce quindi in:

     ¨    Estensione della classe JPlugin e l’implementazione dell’evento
           onAuthenticate così come indicato nel Class Diagram mostrato nella
           successiva slide;
     ¨    Creazione del Manifest file (in formato XML) che contiene
           descrizione e caratteristiche del Plugin. Il Manifest è richiesto per la
           fase d’installazione del Plugin;
     ¨    Creazione del Package d’installazione del Plugin.

           Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
Lo sviluppo su Joomla
16




                      class extension


                                                                               JObserver
                                                                     JPlugin

                                                          +   JPlugin(subject :var*) : var
                                                          +   update(args :var*) : var




                                                      plgAuthenticationSugarCRMOv erSoap

                          +   onAutenticate(response :JAuthenticateResponse, options :array, credentials :array) : boolean




      Figura 1. Class Diagram del Plugin SugarCRMOverSOAP



      Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)                                      31 Marzo 2010
Lo sviluppo su Joomla
17

     <?xml version="1.0" encoding="utf-8"?>                                                         Informazioni generali sul Plugin. Il
     <install version="1.5" type="plugin" group="authentication">                                   primo tag in particolare definisce il
          <name>SugarCRM SOAP Authentication</name>                                                 tipo di Plugin. Il resto dei tag sono
          <author>Antonio Musarra</author>                                                          autoesplicativi.
          <creationDate>Marzo 2010</creationDate>
          <copyright>Antonio Musarra ©. All rights reserved.</copyright>
                                                                                                    Elementi costitutivi del Plugin. In
                                                                                                    genere sono Classi e librerie a
          <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
                                                                                                    supporto. In questo caso il Plugin è
          <authorEmail>antonio.musarra@gmail.com</authorEmail>
                                                                                                    costituito da una sola Classe PHP che
          <authorUrl>musarra.wordpress.com</authorUrl>
                                                                                                    implementa il Plugin.
          <version>1.5</version>

          <description>Autenticazione on SugarCRM (versione 5.5 CE) over SOAP</description>         Parametri di configurazione del
          <files>                                                                                   Plugin. Un parametro utile per il nostro
                  <filename plugin="sugarcrmoversoap">sugarcrmoversoap.php</filename>               Plugin è l’Endpoint dei Servizi Web del
          </files>                                                                                  sistema di CRM.
          <params>
                  <param name="SoapEndPoint" type="text" size="255" default="http://crmcorporate.dev.dontesta.it/soap.php?wsdl"
                      label="SOAP End Point" description="PARAMSOAPENDPOINT" />
                  <param name="CheckPortalEnabled" type="radio" default="0" label="Check Portal Enabled"
                      description="PARAMCECKPORTALENABLED">
                         <option value="0">No</option>
                         <option value="1">Yes</option>
                  </param>
          </params>

     </install>




          Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)                           31 Marzo 2010
Lo sviluppo su Joomla
18


       Analizziamo in breve l’implementazione dell’evento
     onAuthenticate per il Plugin SugarCRMOverSOAP.
                                                                                  Lettura dei parametri di configurazione
                                                                                  del Plugin, particolare attenzione al
                                                                                  parametro che definisce l’Endpoint del
                                                                                  Servizio Web del sistema di CRM.




        Creazione del Client SOAP e successiva chiamata             La connessione ai servizi SOAP è garantita dalla modulo
        dell’operazione login. L’operazione login accetta come      SOAP Client disponibile dalla versione 5.x di PHP. Tutte
        parametro d’input una struttura dati contenente la coppia   le info sul modulo sono disponibili sul sito http://
        UserID/Password. Per maggiori informazioni sui              it.php.net/soap
        parametri d’input e sul ritorno delle operazioni SOAP,
        fare riferimento alla documentazione dei Web Service
        API’s di SugarCRM.




       Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)                 31 Marzo 2010
Lo sviluppo su Joomla
19
                                                         Verifica il buon fine della chiamata
                                                         all’operazione login e salva
                                                         l’informazione della session ID
                                                         assegnata all’utente dal sistema di
                                                         CRM.
                                                                                       Richiama l’operazione
                                                                                       get_user_id sulla base della
                                                                                       session ID e successivamente in
                                                                                       caso di successo richiama
                                                                                       l’operazione get_entry su base
                                                                                       User ID, quest’ultimo valore è
                                                                                       restituito dalla precedente
                                                                                       chiamata.




                                                                                       A fronte del successo della
                                                                                       precedente chiamata get_entry,
                                                                                       dalla struttura dati restituita,
                                                                                       vengono prelevate le
                                                                                       informazioni sull’utente: Nome,
                                                                                       Cognome e Email, valori
                                                                                       assegnati all’oggetto response di
                                                                                       tipo JAuthenticateResponse.


      Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)              31 Marzo 2010
Lo sviluppo su Joomla
20




         Le due figure mostrano due dei ComplexType utilizzati dall’operazione login:
     ¨  error_value: rappresenta eventuali errori restituiti dall’operazione (per esempio nel caso di username o
         password errate);
     ¨  user_auth: rappresenta il parametro d’input contenente la coppia username/password.
         Nella slide successiva è illustrato il ComplexType get_entry_result restituito dall’operazione get_entry. Per
     maggiori informazioni e dettagli consiglio di far riferimento alla documentazione ufficiale SugarCRM e al
     documento WSDL dei Servizi Web.


         Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)           31 Marzo 2010
Lo sviluppo su Joomla
21

                                                                 ComplexType che rappresenta gli attributi
                                                                 (field_list) della entry (esempio: Nome, Cognome,
                                                                 Email, etc…)




                                                                 ComplexType che rappresenta i valori (entry_list)
                                                                 degli attributi della entry (esempio: Mario, Rossi,
                                                                 mario.rossi@rossi.com, etc…)




      Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)             31 Marzo 2010
Lo sviluppo su Joomla
22


        Lo sviluppo del Plugin SugarCRMOverSOAP è
     praticamente giunto al termine, a questo punto non resta
     che procedere con gli ultimi quattro task prima del test
     finale:

     ¨    Creazione del Package d’installazione (vedi doc
           Joomla);
     ¨    Installazione del Plugin (vedi doc Joomla);
     ¨    Configurazione del Plugin (successive slide);
     ¨    Abilitazione & Configurazione del modulo Login (vedi
           successive slide).

           Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
Configurazione del Plugin
23

          Completata l’installazione del Plugin sul proprio ambiente di sviluppo o test di
     Joomla, l’operazione da eseguire è quella di configurazione. L’unico parametro
     (significativo) di configurazione è quello che riguarda l’endpoint del Servizio Web del
     sistema di CRM, parametro fornito dal gestore del sistema.




                                  Abilita o Disabilita il Plugin

                                  Configurazione del livello di
                                  accesso al Plugin. Per ovvie
                                  ragioni l’accesso deve essere
                                  impostato a Public.



                                                                   EndPoint delle Web Service API’s del sistema di
                                                                   CRM SugarCRM. In questo caso l’EndPoint del
                                                                   servizio punta al WSDL dell’installazione
                                                                   SugarCRM di collaudo.

        Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)                31 Marzo 2010
Abilitazione e configurazione del modulo Login
24




      Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)   31 Marzo 2010
Conclusioni
25

          Lascio questo spazio ai lettori e ai partecipanti di questo breve corso di formazione. Scrivete le vostre
     conclusioni finali, utili all’autore del corso come spunto di miglioramento.




         Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema)         31 Marzo 2010

More Related Content

What's hot

II modulo – come gestire
II modulo – come gestireII modulo – come gestire
II modulo – come gestireBeesolution
 
Presentazione MomaPIX DAM
Presentazione MomaPIX DAMPresentazione MomaPIX DAM
Presentazione MomaPIX DAMMomaSoft srl
 
Hosting: Joomla e Drupal, confronto e setup - parte1 #TipOfTheDay
Hosting: Joomla e Drupal, confronto e setup - parte1 #TipOfTheDayHosting: Joomla e Drupal, confronto e setup - parte1 #TipOfTheDay
Hosting: Joomla e Drupal, confronto e setup - parte1 #TipOfTheDayAruba S.p.A.
 
Basi di progettazione di un sito web
Basi di progettazione di un sito webBasi di progettazione di un sito web
Basi di progettazione di un sito webSabrinaC91
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriAlessandro Nadalin
 
Presentazione X Manager
Presentazione X ManagerPresentazione X Manager
Presentazione X Managerdani_ele
 
Info app2 c1_lim
Info app2 c1_limInfo app2 c1_lim
Info app2 c1_limErikaDiZio
 
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Francesco Trucchia
 
Presentazione Nuovo Sito Web per l'ICS G. Mameli
Presentazione Nuovo Sito Web per l'ICS G. MameliPresentazione Nuovo Sito Web per l'ICS G. Mameli
Presentazione Nuovo Sito Web per l'ICS G. MameliGianluca Pinelli
 
Creare una Intranet con Wordpress
Creare una Intranet con WordpressCreare una Intranet con Wordpress
Creare una Intranet con WordpressPartecipant
 
Realizzare una intranet aziendale con wordpress
Realizzare una intranet aziendale con wordpressRealizzare una intranet aziendale con wordpress
Realizzare una intranet aziendale con wordpressGGDBologna
 

What's hot (12)

II modulo – come gestire
II modulo – come gestireII modulo – come gestire
II modulo – come gestire
 
Presentazione MomaPIX DAM
Presentazione MomaPIX DAMPresentazione MomaPIX DAM
Presentazione MomaPIX DAM
 
Hosting: Joomla e Drupal, confronto e setup - parte1 #TipOfTheDay
Hosting: Joomla e Drupal, confronto e setup - parte1 #TipOfTheDayHosting: Joomla e Drupal, confronto e setup - parte1 #TipOfTheDay
Hosting: Joomla e Drupal, confronto e setup - parte1 #TipOfTheDay
 
Basi di progettazione di un sito web
Basi di progettazione di un sito webBasi di progettazione di un sito web
Basi di progettazione di un sito web
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 
Presentazione X Manager
Presentazione X ManagerPresentazione X Manager
Presentazione X Manager
 
Info app2 c1_lim
Info app2 c1_limInfo app2 c1_lim
Info app2 c1_lim
 
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
 
Cms
CmsCms
Cms
 
Presentazione Nuovo Sito Web per l'ICS G. Mameli
Presentazione Nuovo Sito Web per l'ICS G. MameliPresentazione Nuovo Sito Web per l'ICS G. Mameli
Presentazione Nuovo Sito Web per l'ICS G. Mameli
 
Creare una Intranet con Wordpress
Creare una Intranet con WordpressCreare una Intranet con Wordpress
Creare una Intranet con Wordpress
 
Realizzare una intranet aziendale con wordpress
Realizzare una intranet aziendale con wordpressRealizzare una intranet aziendale con wordpress
Realizzare una intranet aziendale con wordpress
 

Viewers also liked

Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMiguel Pastor
 
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMoved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMilen Dyankov
 
Guida introduttiva a Microsoft Dynamics NAV
Guida introduttiva a Microsoft Dynamics NAVGuida introduttiva a Microsoft Dynamics NAV
Guida introduttiva a Microsoft Dynamics NAVEOS Solutions
 

Viewers also liked (9)

Liferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGiLiferay e Modularização com Arquitetura OSGi
Liferay e Modularização com Arquitetura OSGi
 
Data registrasi sry wulandary
Data registrasi sry wulandaryData registrasi sry wulandary
Data registrasi sry wulandary
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
Dynamics NAV CRM module
Dynamics NAV CRM moduleDynamics NAV CRM module
Dynamics NAV CRM module
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
OSGi e Liferay 7
OSGi e Liferay 7OSGi e Liferay 7
OSGi e Liferay 7
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservices
 
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterpriseMoved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
Moved to https://slidr.io/azzazzel/liferay-7-microservices-for-the-enterprise
 
Guida introduttiva a Microsoft Dynamics NAV
Guida introduttiva a Microsoft Dynamics NAVGuida introduttiva a Microsoft Dynamics NAV
Guida introduttiva a Microsoft Dynamics NAV
 

Similar to Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)

SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.Antonio Musarra
 
Smau Milano 2010 Stefano Butti
Smau Milano 2010 Stefano ButtiSmau Milano 2010 Stefano Butti
Smau Milano 2010 Stefano ButtiSMAU
 
Tesi Giuseppe Chechile
Tesi   Giuseppe ChechileTesi   Giuseppe Chechile
Tesi Giuseppe Chechilegchechile
 
Smau milano 2010 stefano butti
Smau milano 2010 stefano buttiSmau milano 2010 stefano butti
Smau milano 2010 stefano buttiSMAU
 
I cms e la legge Stanca
I cms e la legge StancaI cms e la legge Stanca
I cms e la legge StancaGianluigi Cogo
 
AnthericaMail V2 - Alcune funzioni
AnthericaMail V2 - Alcune funzioniAnthericaMail V2 - Alcune funzioni
AnthericaMail V2 - Alcune funzioniAntonio Marsini
 
B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Srl
 
Social CRM - paper
Social CRM - paperSocial CRM - paper
Social CRM - papersenders1986
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Antonio Musarra
 
ASP.NET MVC 3 - Trasportare i dati nel Model
ASP.NET MVC 3 - Trasportare i dati nel ModelASP.NET MVC 3 - Trasportare i dati nel Model
ASP.NET MVC 3 - Trasportare i dati nel ModelManuel Scapolan
 
Un modello per la valutazione dei siti web 2024.pdf
Un modello per la valutazione dei siti web 2024.pdfUn modello per la valutazione dei siti web 2024.pdf
Un modello per la valutazione dei siti web 2024.pdfMarco Accossato
 
microASP.it
microASP.itmicroASP.it
microASP.itictblog
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseAlberto Lagna
 
SMAU Milano 2015
SMAU Milano 2015SMAU Milano 2015
SMAU Milano 2015Paolo Dadda
 
Expocomm Mario Massone
Expocomm Mario MassoneExpocomm Mario Massone
Expocomm Mario Massoneguesta6d457b4
 
Software development nel mondo industriale
Software development nel mondo industrialeSoftware development nel mondo industriale
Software development nel mondo industrialeguesta554cd
 
Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Luca Dalle Vedove
 

Similar to Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM) (20)

SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
SugarCRM: Come realizzare un Custom Scheduler. Un esempio completo.
 
Smau Milano 2010 Stefano Butti
Smau Milano 2010 Stefano ButtiSmau Milano 2010 Stefano Butti
Smau Milano 2010 Stefano Butti
 
Tesi Giuseppe Chechile
Tesi   Giuseppe ChechileTesi   Giuseppe Chechile
Tesi Giuseppe Chechile
 
Smau milano 2010 stefano butti
Smau milano 2010 stefano buttiSmau milano 2010 stefano butti
Smau milano 2010 stefano butti
 
I cms e la legge Stanca
I cms e la legge StancaI cms e la legge Stanca
I cms e la legge Stanca
 
Parliamo di SOA
Parliamo di SOAParliamo di SOA
Parliamo di SOA
 
AnthericaMail V2 - Alcune funzioni
AnthericaMail V2 - Alcune funzioniAnthericaMail V2 - Alcune funzioni
AnthericaMail V2 - Alcune funzioni
 
Company System
Company SystemCompany System
Company System
 
B Human Progetti di Stage 2009
B Human Progetti di Stage 2009B Human Progetti di Stage 2009
B Human Progetti di Stage 2009
 
Social CRM - paper
Social CRM - paperSocial CRM - paper
Social CRM - paper
 
Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0Un CRM dentro un CMS v1.0
Un CRM dentro un CMS v1.0
 
ASP.NET MVC 3 - Trasportare i dati nel Model
ASP.NET MVC 3 - Trasportare i dati nel ModelASP.NET MVC 3 - Trasportare i dati nel Model
ASP.NET MVC 3 - Trasportare i dati nel Model
 
Un modello per la valutazione dei siti web 2024.pdf
Un modello per la valutazione dei siti web 2024.pdfUn modello per la valutazione dei siti web 2024.pdf
Un modello per la valutazione dei siti web 2024.pdf
 
microASP.it
microASP.itmicroASP.it
microASP.it
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
 
SMAU Milano 2015
SMAU Milano 2015SMAU Milano 2015
SMAU Milano 2015
 
Expocomm Mario Massone
Expocomm Mario MassoneExpocomm Mario Massone
Expocomm Mario Massone
 
Software development nel mondo industriale
Software development nel mondo industrialeSoftware development nel mondo industriale
Software development nel mondo industriale
 
Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...Implementazione di una Web App per la verifica dei requisiti progettuali del ...
Implementazione di una Web App per la verifica dei requisiti progettuali del ...
 
Lezione tenuta dall'Ing. Stefanutti presso l'Università di Padova, Dipartimen...
Lezione tenuta dall'Ing. Stefanutti presso l'Università di Padova, Dipartimen...Lezione tenuta dall'Ing. Stefanutti presso l'Università di Padova, Dipartimen...
Lezione tenuta dall'Ing. Stefanutti presso l'Università di Padova, Dipartimen...
 

More from Antonio Musarra

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cAntonio Musarra
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Antonio Musarra
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cAntonio Musarra
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.comAntonio Musarra
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseAntonio Musarra
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Antonio Musarra
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleAntonio Musarra
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceAntonio Musarra
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomAntonio Musarra
 
SugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiSugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiAntonio Musarra
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMAntonio Musarra
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelAntonio Musarra
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioAntonio Musarra
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUSAntonio Musarra
 
Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Antonio Musarra
 
SugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientSugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientAntonio Musarra
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRMAntonio Musarra
 
Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMAntonio Musarra
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleAntonio Musarra
 

More from Antonio Musarra (20)

Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19cLiferay Portal CE 7.4: Come configurare Oracle Database 19c
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
 
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
 
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19cCome installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
Liferay & Salesforce.com
Liferay & Salesforce.comLiferay & Salesforce.com
Liferay & Salesforce.com
 
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle DatabaseCome installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
 
Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1Corso introduttivo di Design Pattern in Java per Elis - 1
Corso introduttivo di Design Pattern in Java per Elis - 1
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
 
SugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual ApplianceSugarCRM Enterprise Development Virtual Appliance
SugarCRM Enterprise Development Virtual Appliance
 
Liferay: Esporre Web Services Custom
Liferay: Esporre Web Services CustomLiferay: Esporre Web Services Custom
Liferay: Esporre Web Services Custom
 
SugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minutiSugarCRM REST API: Un’applicazione in appena dieci minuti
SugarCRM REST API: Un’applicazione in appena dieci minuti
 
How to Build a Java client for SugarCRM
How to Build a Java client for SugarCRMHow to Build a Java client for SugarCRM
How to Build a Java client for SugarCRM
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio Excel
 
Introduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo EpisodioIntroduzione agli Hooks – Primo Episodio
Introduzione agli Hooks – Primo Episodio
 
Introduzione a Liferay Message BUS
Introduzione a Liferay Message BUSIntroduzione a Liferay Message BUS
Introduzione a Liferay Message BUS
 
Running Kettle Job by API v1.2
Running Kettle Job by API v1.2Running Kettle Job by API v1.2
Running Kettle Job by API v1.2
 
SugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF ClientSugarCRM Web Services: Build a Apache CXF Client
SugarCRM Web Services: Build a Apache CXF Client
 
Building a Client .NET for SugarCRM
Building a Client .NET for SugarCRMBuilding a Client .NET for SugarCRM
Building a Client .NET for SugarCRM
 
Costruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRMCostruire un client .NET per SugarCRM
Costruire un client .NET per SugarCRM
 
Come configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per OracleCome configurare Liferay 6.0 per Oracle
Come configurare Liferay 6.0 per Oracle
 

Integrazione Sistemi CRM (Joomla) & CRM (SugarCRM)

  • 1. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 1 INTEGRAZIONE DI SISTEMI METODI E APPROCCIO AL PROBLEMA Progetto Formazione - RLS Autore/i Antonio Musarra antonio.musarra@gmail.com Blog: http://musarra.wordpress.com Oggetto Integrazione di Sistemi D. Rilascio 31/03/2010 Revisione 1.1 – 06/04/2010 31 Marzo 2010 Sessione introduttiva
  • 2. Introduzione 2 Il titolo dato alla presentazione è molto generico, il che implica la vastità dell’argomento, il sottotitolo cerca invece di mettere degli argini all’argomento trattato. Questa sessione di formazione introduttiva non vuole essere teorica ma alquanto pratica, con l’obiettivo finale di lasciare ai partecipanti uno “strumento” che consenta di portare a termine e nel migliore dei modi i problemi legati all’integrazione tra sistemi. Lo strumento a cui si è fatto riferimento nel precedente paragrafo è possibile definirlo come l’insieme di: “Attrezzi” e metodi che facilitano l’approccio al problema. Nel corso di questa sessione di formazione sarà affrontato un esempio pratico d’integrazione tra due tipologie di sistemi, cercando di mettere in risalto per quanto possibile i principali ruoli coinvolti in questo tipo di attività. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 3. Introduzione 3 Il processo d’integrazione tra diversi tipi di sistemi informatici avviene attraverso l’utilizzo di software e soluzioni architetturali. In questa sessione di formazione, i sistemi informatici (a titolo d’esempio) da sottoporre al processo d’integrazione sono due e appartengono a due diverse tipologie: ¨  Content Management System – CMS ¨  Customer Relationship Management – CRM Il CMS che prenderemo come riferimento è rappresentato dalla soluzione software Open Source (scritto in PHP) Joomla, invece il CRM che prenderemo come riferimento è rappresentato dalla soluzione software Open Source (scritto in PHP) SugarCRM. La soluzione architetturale da adottare in questo “semplice” processo d’integrazione sarà basata interamente sull’utilizzo dei Servizi Web (o Web Service), la scelta di questa soluzione è giustificata dal fatto che entrambi i sistemi sono Provider di Servizi Web. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 4. L’oggetto dell’integrazione 4 Nella precedente slide abbiamo visto in breve quali saranno i sistemi coinvolti nel processo d’integrazione. A questo punto non resta che far luce sull’oggetto dell’integrazione. Credo che uno scenario possibile d’integrazione tra i due tipi di sistemi possa essere il seguente: La società Acme Corporation che gestisce i propri clienti e relativi processi attraverso un CRM, ha la necessità di far accedere i propri clienti a determinati contenuti pubblicati sul portale internet realizzato con il sistema di CMS. Lo scenario d’integrazione mi sembra abbastanza chiaro, può rendere ancora più chiare le idee lo schema illustrato nella slide successiva. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 5. L’oggetto dell’integrazione: Il Cosa 5 Portale ACME C. Site Map Acrobat Document Chat Customer ACME C. Search Page Web Page Form Il risultato finale dell’integrazione, quindi, “il cosa” l’integrazione consentirà di fare, è illustrato in maniera semplice e sintetica nello schema sopra riportato. Il cliente registrato sul CRM di Acme potrà accedere per esempio ai documenti PDF dei contratti o degli ordini, accedere a un servizio di supporto al cliente che potrebbe avvenire tramite un sistema di Chat e tanto altro ancora. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 6. L’oggetto dell’integrazione: Il Come 6 Il Cosa (visto nella precedente slide) e Il Come sono due termini importanti nell’ingegneria del software, vivono in fasi diverse, il primo nella fase definita di Avvio e Analisi, il secondo nella fase definita di Progettazione e Implementazione. In una delle precedenti slide d’introduzione è stato fatto accenno circa la soluzione architetturale da adottare, la scelta e ricaduta sull’utilizzo dei Servizi Web che rappresentano Il Come, in altre parole, come l’integrazione trai i due sistemi di CMS e CRM dovrà avvenire affinché si possa verificare Il Cosa. Per fissare ancor meglio le idee, nella prossima slide è illustrato un semplice schema che mostra come i due sistemi saranno integrati. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 7. L’oggetto dell’integrazione: Il Come 7 Portale ACME C. Sistema Gestione (CMS) Clienti (CRM) Comunicazione su Customer protocollo HTTP Comunicazione via Servizi Web ACME C. (Web Service) E’ possibile affermare che i sistemi sono tre, anche il cliente può essere considerato come tale, dato che però non è parte attiva dell’integrazione può essere trascurato. E’ ormai assodato che i due sistemi (CMS & CRM) comunicheranno tra loro fruttando i Servizi Web, ma quali dovranno essere le responsabilità di ogni sistema che partecipa all’integrazione ? Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 8. L’oggetto dell’integrazione: Il Come 8 Service Consumer Service Provider Portale ACME C. Sistema Gestione (CMS) Clienti (CRM) Comunicazione su Customer protocollo HTTP Comunicazione via Servizi Web ACME C. (Web Service) ¨  Il sistema di CRM ha la responsabilità di fornire ai fini dell’integrazione una serie di Servizi Web che espongo le funzionalità richieste; ¨  Il sistema di CMS ha la responsabilità di agire come consumatore dei Servizi Web esposti dal sistema di CRM. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 9. Conoscere i sistemi da integrare 9 Quando si parla d’integrazione tra sistemi, esiste quella figura professionale (o azienda) che prende il nome di System Integrator cui compito è quello di far dialogare impianti diversi tra di loro allo scopo di creare una nuova struttura funzionale che soddisfi i requisiti richiesti (Il Cosa). Considerando i sistemi come delle “scatole nere”, i System Integrator hanno la sola necessità di conoscere per ogni sistema da integrare le sole interfacce pubbliche e i metodi di accesso a quest’ultime. Nel nostro scenario, dove i sistemi coinvolti sono: ¨  Joomla che implementa il sistema di CMS. La versione di riferimento è la 1.5; ¨  SugarCRM che implementa il sistema di CRM. La versione di riferimento è la 5.5. sappiamo che entrambi espongono parte o tutte le funzionalità attraverso le cosiddette interfacce pubbliche, quest’ultime implementate fruttando la tecnologia dei Servizi Web. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 10. Conoscere i sistemi da integrare 10 Sullo scenario descritto nelle precedenti slide, ipotizziamo di ricoprire il ruolo di System Integrator e Owner del sistema CMS (Joomla). In qualità di Owner del sistema CMS dobbiamo essere in grado di sviluppare il componente (potrebbero essere più di uno) software che soddisfi il requisito funzionale descritto precedentemente nelle slide 4 e 5. Per quanto riguarda invece il sistema CRM (agiamo quindi come System Integrator), siamo tenuti a conoscere la sola interfaccia pubblica (realizzata attraverso i Servizi Web) di cui è disponibile ampia documentazione. Vediamo in breve quali sono le azioni “di sviluppo” da compiere sui due sistemi: ¨  CRM: Nessuna azione di sviluppo da intraprendere; ¨  CMS: Sviluppo di un componente software che consenta di colloquiare con il sistema di CRM (attraverso i Servizi Web) affinché il cliente possa autenticarsi e accedere ai propri contenuti. Ricordiamo che le informazioni sul cliente sono di proprietà del CRM, quest’ultimo diviene quindi l’attore principale del processo di autenticazione. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 11. Conoscere i sistemi da integrare 11 Da questa slide in poi vedremo come sviluppare il componente richiesto sul sistema CMS. Il nostro sistema di CMS di cui noi siamo Owner è sviluppato interamente in PHP e adotta in pieno il paradigma OOP (Object Oriented Programming), tra l’altro fa largo uso di soluzioni progettuali tra le più comuni (vedi Design Pattern), consentendo in questo modo una certa facilità d’estensione, resa anche possibile grazie alla struttura a componenti di Joomla. In linea generale, quando bisogna estendere sistemi di qualunque natura costruiti secondo “schemi standard” (tra cui rientra il nostro Joomla), potrebbe essere più che sufficiente per noi sviluppatori l’accesso alla documentazione fornita a corredo. E’ vero che la sola documentazione non basta, o meglio, il lettore deve possedere dei requisiti minimi che lo facilitano nella comprensione della documentazione stessa e del codice applicativo: ¨  Buona conoscenza di OOP; ¨  Buona conoscenza dei più comuni Design Pattern; ¨  Sufficiente conoscenza del linguaggio UML. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 12. Conoscere i sistemi da integrare 12 Le risorse disponibili su Joomla, che sono poi il primo punto di partenza per la conoscenza dello strumento, sono tutte concentrate sul portale dedicato: Joomla! Official Documentation. Vediamo quali sono le sezioni più d’interesse: ¨  Administrators ¨  Web designers ¨  Developers ¨  Joomla! Framework API Reference. ¤  API 1.5 ¤  API 1.6 Le risorse di nostro interesse che riguardano invece il sistema di CRM sono disponibili sul portale di SugarCRM all’indirizzo: http://developers.sugarcrm.com/documentation.php?edition=OS. Ai fini dell’integrazione è utile per noi la documentazione rivolta agli sviluppatori, in particolare la sezione dedicata ai Servizi Web disponibile all’indirizzo: http://developers.sugarcrm.com/docs/OS/5.5/-docs-Developer_Guides- Sugar_Developer_Guide_5.5-Chapter%202%20Application%20Framework.html#9000194 Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 13. Lo sviluppo su Joomla 13 Ipotizzando di aver studiato la documentazione introduttiva su Joomla riguardo la sua struttura d’insieme e i possibili punti di estensione, è possibile affermare che il nostro obiettivo si traduce nello sviluppo di un Plugin Joomla di tipo Autenticazione. La funzionalità del nuovo Plugin contribuirà in massima parte alla risoluzione del requisito richiesto. Per lo sviluppo di Plugin su Joomla è possibile far riferimento alla documentazione ufficiale disponibile ai seguenti indirizzi: ¨  Joomla Plugins ¨  How to create a Joomla! Plugin Ricordo che i Plugin sono estensioni che si basano su un particolare design pattern, chiamato Observer. In pratica essi restano inattivi fino a che Joomla lancia un particolare evento. Ogni Plugin si registra per un determinato evento e quando esso avviene, il Plugin viene eseguito. Il nostro Plugin prenderà il nome di SugarCRMOverSOAP e dovrà assolvere i seguenti compiti: ¨  Sulla base delle credenziali fornite dall’utente del portale deve inviare il messaggio di login() verso il sistema di CRM; ¨  Deve richiedere la User ID al sistema CRM sulla base della sessione restituita in risposta al messaggio di login(). La richiesta avviene inviando il messaggio get_user_id() al sistema di CRM; ¨  Deve richiedere le informazioni di dettaglio sul cliente (Nome, Cognome, Email, etc…) sulla base della User ID inviando un messaggio get_entry() al sistema di CRM; ¨  Estrae le informazioni del cliente d’interesse per il CMS; Nella precedente lista dei “requisiti” del Plugin ho indicato i soli segmenti del flusso degli eventi principale, non sono quindi presenti l’eccezioni. Nella successiva slide una digramma di sequenza dimostra la comunicazione tra i principali attori coinvolti nell’integrazione. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 14. Lo sviluppo su Joomla 14 Sull’evento di Autenticazione (onAuthenticate) scatenato da Joomla viene istanziato il nostro Plugin. Web Service API’s del sistema di CRM SugarCRM Scambio dei messaggi tra il sistema Joomla (attraverso il Plugin) e il sistema di CRM SugarCRM. Lo scambio dei messaggi avviene tramite protocollo SOAP. Qualora il cliente è al suo primo accesso al portale, sarà creato come utente del sistema di CMS, condizione necessaria imposta dal CMS stesso. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 15. Lo sviluppo su Joomla 15 Il Plugin che andremo a sviluppare e che abbiamo deciso di chiamare con il nome di SugarCRMOverSOAP è tipo Authenticate e deve rispondere all’evento onAuthenticate, evento generato da Joomla quando è richiesto un processo di autenticazione, in altre parole, un utente del portale esegue una login attraverso l’opportuna form visualizzata sul portale. La costruzione del Plugin si traduce quindi in: ¨  Estensione della classe JPlugin e l’implementazione dell’evento onAuthenticate così come indicato nel Class Diagram mostrato nella successiva slide; ¨  Creazione del Manifest file (in formato XML) che contiene descrizione e caratteristiche del Plugin. Il Manifest è richiesto per la fase d’installazione del Plugin; ¨  Creazione del Package d’installazione del Plugin. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 16. Lo sviluppo su Joomla 16 class extension JObserver JPlugin + JPlugin(subject :var*) : var + update(args :var*) : var plgAuthenticationSugarCRMOv erSoap + onAutenticate(response :JAuthenticateResponse, options :array, credentials :array) : boolean Figura 1. Class Diagram del Plugin SugarCRMOverSOAP Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 17. Lo sviluppo su Joomla 17 <?xml version="1.0" encoding="utf-8"?> Informazioni generali sul Plugin. Il <install version="1.5" type="plugin" group="authentication"> primo tag in particolare definisce il <name>SugarCRM SOAP Authentication</name> tipo di Plugin. Il resto dei tag sono <author>Antonio Musarra</author> autoesplicativi. <creationDate>Marzo 2010</creationDate> <copyright>Antonio Musarra ©. All rights reserved.</copyright> Elementi costitutivi del Plugin. In genere sono Classi e librerie a <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license> supporto. In questo caso il Plugin è <authorEmail>antonio.musarra@gmail.com</authorEmail> costituito da una sola Classe PHP che <authorUrl>musarra.wordpress.com</authorUrl> implementa il Plugin. <version>1.5</version> <description>Autenticazione on SugarCRM (versione 5.5 CE) over SOAP</description> Parametri di configurazione del <files> Plugin. Un parametro utile per il nostro <filename plugin="sugarcrmoversoap">sugarcrmoversoap.php</filename> Plugin è l’Endpoint dei Servizi Web del </files> sistema di CRM. <params> <param name="SoapEndPoint" type="text" size="255" default="http://crmcorporate.dev.dontesta.it/soap.php?wsdl" label="SOAP End Point" description="PARAMSOAPENDPOINT" /> <param name="CheckPortalEnabled" type="radio" default="0" label="Check Portal Enabled" description="PARAMCECKPORTALENABLED"> <option value="0">No</option> <option value="1">Yes</option> </param> </params> </install> Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 18. Lo sviluppo su Joomla 18 Analizziamo in breve l’implementazione dell’evento onAuthenticate per il Plugin SugarCRMOverSOAP. Lettura dei parametri di configurazione del Plugin, particolare attenzione al parametro che definisce l’Endpoint del Servizio Web del sistema di CRM. Creazione del Client SOAP e successiva chiamata La connessione ai servizi SOAP è garantita dalla modulo dell’operazione login. L’operazione login accetta come SOAP Client disponibile dalla versione 5.x di PHP. Tutte parametro d’input una struttura dati contenente la coppia le info sul modulo sono disponibili sul sito http:// UserID/Password. Per maggiori informazioni sui it.php.net/soap parametri d’input e sul ritorno delle operazioni SOAP, fare riferimento alla documentazione dei Web Service API’s di SugarCRM. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 19. Lo sviluppo su Joomla 19 Verifica il buon fine della chiamata all’operazione login e salva l’informazione della session ID assegnata all’utente dal sistema di CRM. Richiama l’operazione get_user_id sulla base della session ID e successivamente in caso di successo richiama l’operazione get_entry su base User ID, quest’ultimo valore è restituito dalla precedente chiamata. A fronte del successo della precedente chiamata get_entry, dalla struttura dati restituita, vengono prelevate le informazioni sull’utente: Nome, Cognome e Email, valori assegnati all’oggetto response di tipo JAuthenticateResponse. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 20. Lo sviluppo su Joomla 20 Le due figure mostrano due dei ComplexType utilizzati dall’operazione login: ¨  error_value: rappresenta eventuali errori restituiti dall’operazione (per esempio nel caso di username o password errate); ¨  user_auth: rappresenta il parametro d’input contenente la coppia username/password. Nella slide successiva è illustrato il ComplexType get_entry_result restituito dall’operazione get_entry. Per maggiori informazioni e dettagli consiglio di far riferimento alla documentazione ufficiale SugarCRM e al documento WSDL dei Servizi Web. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 21. Lo sviluppo su Joomla 21 ComplexType che rappresenta gli attributi (field_list) della entry (esempio: Nome, Cognome, Email, etc…) ComplexType che rappresenta i valori (entry_list) degli attributi della entry (esempio: Mario, Rossi, mario.rossi@rossi.com, etc…) Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 22. Lo sviluppo su Joomla 22 Lo sviluppo del Plugin SugarCRMOverSOAP è praticamente giunto al termine, a questo punto non resta che procedere con gli ultimi quattro task prima del test finale: ¨  Creazione del Package d’installazione (vedi doc Joomla); ¨  Installazione del Plugin (vedi doc Joomla); ¨  Configurazione del Plugin (successive slide); ¨  Abilitazione & Configurazione del modulo Login (vedi successive slide). Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 23. Configurazione del Plugin 23 Completata l’installazione del Plugin sul proprio ambiente di sviluppo o test di Joomla, l’operazione da eseguire è quella di configurazione. L’unico parametro (significativo) di configurazione è quello che riguarda l’endpoint del Servizio Web del sistema di CRM, parametro fornito dal gestore del sistema. Abilita o Disabilita il Plugin Configurazione del livello di accesso al Plugin. Per ovvie ragioni l’accesso deve essere impostato a Public. EndPoint delle Web Service API’s del sistema di CRM SugarCRM. In questo caso l’EndPoint del servizio punta al WSDL dell’installazione SugarCRM di collaudo. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 24. Abilitazione e configurazione del modulo Login 24 Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010
  • 25. Conclusioni 25 Lascio questo spazio ai lettori e ai partecipanti di questo breve corso di formazione. Scrivete le vostre conclusioni finali, utili all’autore del corso come spunto di miglioramento. Antonio Musarra's Blog - Integrazione di Sistemi (Metodi e Approccio al Problema) 31 Marzo 2010