SlideShare a Scribd company logo
Glossario Tecnologico

  Panoramica dei termini, delle tecnologie e delle
metodologie adottate per la realizzazione di soluzioni
    software per l’organizzazione di un’impresa.


                                         Andrea Colleoni - 2011
Segmenti di applicazione
 Sviluppo di applicazioni         Business Intelligence
  Enterprise                         Soluzioni proprietarie
   3 Main Streams                   Open Source Business
     Java (JVM)                      Intelligence
     Microsoft.NET (CLR)          Integrazione
     (NEW!) Mobile (iOS,
      Android, Symbian)              Soluzioni proprietarie
   Minor streams                    Soluzioni personalizzate
     Altre tecnologie diffuse
      (PHP, Python, Ruby on
      Rails)
     RIA: jQuery, Flex, HTML5,
      GWT etc.
     CMS come piattaforma di
      sviluppo (Sharepoint,
      Alfresco, WPS e in misura
      minore xNuke, Joomla,
      Drupal, etc.)
   Legacy e RAD
     VB, Apex, 4GL
Tipi di distribuzione del servizio
(1)
 Dove installare gli applicativi?
 Obiettivi: ottimizzazione dei costi (HW, servizi
  accessori, energia)
 Tradizionale: basato su sistemi in house
   Server fisici
   Server virtualizzati
 Service (On-Demand)
   ASP: application service providing
     Multi tenancy
     Basato su HTTP, ma non solo (e.g. XenApp)
     Saas: Software as a service
Tipi di distribuzione del servizio
(2)
 ASP: application service providing
   SaaS: software as a service
     Servizio (applicazione) in modalità pay per use
     Necessita solo di thin client
   PaaS: platform as a service
     Piattaforma di sviluppo e esecuzione di applicazioni
      completa, fornita come servizio in pay per use
   IaaS: Infrastructure as a Service
      Infrastruttura IT (server virtuali, clients, applicazioni) fornita
       come servizio
   IaaS, PaaS, Saas sono gli strati costituenti di
    un’infrastruttura di cloud computing
Archietture enterprise(1)
 Architettura Layers
 È la classica architettura usata
 per lo sviluppo OO
   Architetture n-tier
   Promuove la separazione
   degli ambiti e quindi:
     Il riuso
     La scalabilità
     La manutenibilità
Archietture enterprise(2)
 Service Oriented
  Architecture (SOA)
 Insieme di servizi
  interoperabili
 Http, XML
   WebServices
     WSDL, RPC
     REST
     WCF (Microsoft)
Archietture Enterprise(3)
 Database-centric architecture
   Oracle forms, Apex
 Client-server
   Classiche applicazioni ‘80s - ‘90s
     Visual Basic, Delphi, VBA, MS Office VBA

 Front-end and back-end
 MVC
Infrastruttura Java
 Java Virtual Machine
 Platform independent
 JRE e JDK
 JSE, JEE e JME
 Versioni
    JRE: attuale 1.6 (o 6)
    JEE: attuale 6
 Vastissima disponibilità di
  librerie e Framework oltre la
  platform
 Application server
    IBM WebSphere: è una
     famiglia di prodotti, tra cui
     l’application server
    Oracle BEA WebLogic
    Jboss, Apache Tomcat, Spring
     vFabric e Mulesoft Tcat
Infrastruttura .NET
 Common Language
  Runtime
 Micorsoft.NET e Mono
 Assembly
   Porting delle librerie
   di successo
 Application Server
   IIS
Ambienti di sviluppo
 IDE: sviluppo rapido, visuale
 Java
   Open source
     Eclipse
     Netbeans
     Springsource Tools Suite
   Commerciali
     IBM Rational Application Developer
     IntelliJ IDEA
 .NET
   Commerciali
     Microsoft Visual Studio
   Open Source
     #Develop
     Mono Develop
Librerie di ampia diffusione
(cross ported)
 Infrastruttura e frameworks
   Spring(Net)
 Interfacciamento con DB
   (N)Hibernate, MyBatis(Net)
 Utilities
   Log4(J-Net), Quartz Job Scheduler
 ALM
   (N)Ant, (N)Maven
Librerie di ampia diffusione
(Java)
 Apache Axis (1 e 2): webservices
 Apache CXF: webservices
 Apache Struts (1 e 2), Apache Wicket,
  JavaServer Faces: web MVC
 JBPM: workflow
Librerie di ampia diffusione
(.NET)
 MS Enterprise Libraries
 CastleProject: Active Record, Monorail, Windsor
IBM WebSphere Application
           Server
WebSphere   WebSphere     WebSphere     WebSphere     WebSphere   WebSphere     WebSphere     WebSphere   WebSphere
 version     8.0 (Beta)      7.0           6.1           6.0         5.1           5.0           4.0         3.5


            18 Oct 2010
 Release                                              31 Dec                                  15 Aug      31 Aug
            (Beta         17 Oct 2008   30 Jun 2006               16 Jan 2004   03 Jan 2003
  date                                                2004                                    2001        2000
            Refresh)


 End of                                               30 Sept     30 Sept       30 Sept       30 April    30 Nov
 support                                              2010        2008          2006          2005        2003

J2SE/Java
            6             6             5             1.4         1.4           1.3           1.3         1.2
   SE


                                                                                                          1.2 (not fully
 JavaEE     6             5             1.4           1.4         1.3           1.3           1.2
                                                                                                          compliant)


 Servlet    3.0           2.5           2.4           2.4         2.3           2.3           2.2         2.1&2.2

                                                                                                          0.91&1.0&1.
  JSP       2.2           2.1           2.0           2.0         1.2           1.2           1.1
                                                                                                          1

  EJB       3.1           3.0           2.1           2.1         2.0           2.0           1.1         1.0
Oracle BEA WebLogic
Standard        WLS 7.0      WLS 8.1       WLS 9.0   WLS 10.0   WLS 10.3
Java          1.3           1.4        5             5          6
Java EE       1.3           1.3        1.4           5          5



   Tomcat
• Apache Tomcat
   –   dal 1999: servlet container di riferimento
   –   Feb-2011: versione 7.0.8
   –   Embedded in molti AS JEE
   –   Container di riferimento per implementazioni stack cloud
          • vFabric
          • Mulesoft Tcat
Jetty, Jboss e altri
 Mortbay Jetty
   Puro java, lightweight, embeddable servlet
   container
 RedHat Jboss
   Feb-2011: v6 - versione stabile
   È l’application server JEE più diffuso al mondo
   Implementa protocolli e connettori standard
 Resin, Terracotta Cluster, OpenEJB
Microsoft Internet Information Server
 Solo su Windows
   Su POSIX con Mono + Apache Httpd + mod_mono
 Da Windows NT (IIS 1.0) all’attuale Windows
 2008 R2 (IIS 7.5)
   Interamente riprogettato e riscritto dalla versione
   7.0 (Windows 2008)
Market Share - Public
All domains
                December
   Developer                    Percent      January 2011    Percent      Change
                  2010
Apache           151,516,152        59.35%     161,591,445       59.13%        -0.23
Microsoft         56,723,544        22.22%      57,392,351       21.00%        -1.22
nginx             16,910,205         6.62%      20,504,634        7.50%            0.88
Google            14,933,865         5.85%      15,112,532        5.53%        -0.32
lighttpd           1,308,935         0.51%       1,866,872        0.68%            0.17


Top servers
   Developer   December 2010    Percent      January 2011    Percent      Change

Apache                661,722       66.61%         662,184       66.62%            0.01

Microsoft             163,589       16.47%         161,219       16.22%        -0.25

nginx                  58,705        5.91%          60,782        6.12%            0.21
Google                 19,623        1.98%          20,524        2.06%            0.09
Cosa valutare di un AS?
   Front server o back server?
   Licenza
   Meccanismi di autenticazione: Single Sign On
   Supporto https
   Virtual hosting
   CGI, FastCGI / Java Servlets / ASP.NET / PHP e in
    generale plug di un esecutore
   Server Side Includes
   Runs in user space or kernel space
   Administration console
   IPv6
   Operating System Support
Mobile
 iOS (Apple)
   Sistema operativo di iPhone, iPad e AppleTV
   Sviluppo tramite iOS SDK (commerciale) e solo tramite
    App Store
   Java via J2ME (non ancora)
   .NET parzialmente con Novell MonoTouch
 Android (Open Handset Alliance)
   Sistema operativo aperto per dispositivi mobile gestito
    da Google basato sul kernel Linux
   Usato in SmartPhones HTC, Motorola, Samsung,
    Google, etc.
   Esegue Java tramite Dalvik VM
   Si possono sviluppare applicazioni in Eclipse (ADT) in
    Java e C/C++
Sviluppo Mobile
Uso dei Mobile Devices
 Per ora principalmente Social Networking,
  Connettività, Commercio
 Con l’aumentare della diffusione i dispositivi
  Mobile saranno sempre più spesso indicati come
  target platform
Diffusione prevista dell’uso di Internet
Altre tecnologie - PHP
 PHP
  Evoluzione di CGI
    Inline scripting
    Safe System Calls
  Enorme diffusione per via della originaria
   disponibilità gratuita e della iniziale superiorità
   funzionale (’90s)
  Enorme diffusione di software libero, librerie,
   frameworks, tools
  LAMP e WAMP
Altre tecnologie – Python e RoR
 Python
   Linguaggio ideato per migliorare l’espressività e
    superare il vincolo paradigmatico nella
    programmazione
   Jython: compila Python sulla JVM
   IronPython: compila Python per CLR
 Ruby on Rails
   Framework a sviluppo rapido
   ORM ActiveRecord, dipendenze con RubyGems
   Ideato seguendo Convention over Configuration
Rich Internet Applications (1)
 Adobe Flex
   Usa il plugin di Flash!
   Paradigma MVC (mxml per l’interfaccia e
   ActionScript per il controller)
 jQuery
   Sempre maggiore diffusione
   Cross browser
   Sfrutta JS engine del browser
   IE9, Chrome, FF3 incrementano notevolmente le
   performance dell’engine JS
Rich Internet Applications (2)
 Google Web Toolkit, ExtJS, Prototype, Zk
   Simili a jQuery
 Javascript sfruttato pienamente sul client > AJAX
     Comunicazione asincrona HTTP in JS
     Migliore user experience
     Minor traffico di rete
     WebService come fonti dati: JSON e RestFul
 HTML5
   Dalla versione 4 (1997) sono state recepite le direzioni
    che il WWW ha preso recentemente
   Porta RIA in modo standard nella definizione del
    contenuto del documento
   iOS supporta HTML5 ma non Flash!
Uso di (E)CMS
 Usi
  [http://en.wikipedia.org/wiki/Content_management_system]
  :
   Allow for a large number of people to contribute to and share
      stored data
     Control access to data, based on user roles (defining which
      information users or user groups can view, edit, publish, etc.)
     Aid in easy storage and retrieval of data
     Reduce repetitive duplicate input
     Improve the ease of report writing
     Improve communication between users
 In a CMS, data can be defined as nearly anything:
  documents, movies, pictures, phone numbers, scientific
  data, and so forth. CMSs are frequently used for storing,
  controlling, revising, semantically enriching, and publishing
  documentation. Serving as a central repository, the CMS
  increases the version level of new updates to an already
Pros & Cons
 Pros
   Infrastruttura già costruita per condividere virtualmente
    ogni tipo di informazione
   Solitamente sono disponibili anche funzioni di
    automazione (workflow, integrazione con la
    messaggistica, information retreival e OCR, integrazione
    con SW Office Automation)
   Solitamente sono disponibili (o integrabili) strumenti di
    sviluppo (designer)
 Cons
   L’infrastruttura sembra poter offrire tutte le possibilità, se
    si pensa che ogni programma informatico tratta
    informazioni e le modifica sulla base di eventi; possono
    essere paragonati alle piattaforme tipo 4GL
Enterprise CMS
 Microsoft Sharepoint (Services e Server)
   Maturo, completo
   Integrato con MS Office
   Diffuso
 IBM Lotus WCM
   Maturo
   Cross platform
 Alfresco
   Open Source
   Maturo e cross platform
   Poco diffuso
Gartner ECM Quadrant
Business Intelligence
 È il processo di trasformazione delle informazioni
  e dei dati in conoscenza
 Dalle informazioni elementari vengono ricavate le
  relazioni e le aggregazioni che forniscono la
  conoscenza ricercata
 La tecnologia che permette di implementare il
  processo di BI è diversificata in vari componenti
     ETL
     DataWarehouse
     OLAP
     Sistemi di reportistica
     Data mining
ETL
 Extract, transform, load: I dati vengono estratti da
  sistemi sorgenti quali database transazionali (OLTP),
  comuni file di testo o da altri sistemi informatici (ad
  esempio, sistemi ERP o CRM).
 Subiscono quindi un processo di trasformazione, che
  consiste ad esempio nel:
   Selezionare solo quelli che sono di interesse per il
      sistema
     Normalizzare i dati (per esempio eliminando i duplicati)
     Tradurre dati codificati
     Derivare nuovi dati calcolati
     Eseguire accoppiamenti (join) tra dati recuperati da
      differenti tabelle
     Raggruppare i dati
Data warehouse
 Un Data warehouse (o DW, o DWH) è un archivio
  informatico contenente i dati di
  un'organizzazione. I DW sono progettati per
  consentire di produrre facilmente relazioni ed
  analisi.
 Vengono considerati componenti essenziali di un
  sistema Data warehouse anche gli strumenti per
  localizzare i dati, per estrarli, trasformarli e
  caricarli (ETL), come pure gli strumenti per
  gestire un dizionario dei dati. Le definizioni di DW
  considerano solitamente questo contesto ampio.
OLAP
 OLAP, (On-Line Analytical Processing), designa
  un insieme di tecniche per l'analisi interattiva e
  veloce di grandi quantità di dati, che è possibile
  esaminare in modalità piuttosto complesse.
 Gli strumenti OLAP si differenziano
  dagli OLTP per il fatto che i primi hanno come
  obiettivo la performance nella ricerca e il
  raggiungimento di un'ampiezza di interrogazione
  quanto più grande possibile; i secondi, invece,
  hanno come obiettivo la garanzia di integrità e
  sicurezza delle transazioni.
   Cubi multidimensionali
   Data mart
Reporting
 L'obiettivo di un Sistema di Reportistica all'interno
  dei Sistemi Informativi è generalmente quello di
  fornire documentazione analitica sulle attività di
  rilievo dell'organizzazione all'interno della quale è
  sviluppato: tale base informativa ha l'obiettivo di
  essere la più aggiornata e corretta secondo
  un'univoca prassi organizzativa e perciò non
  suscettibile di rilievi e incongruenze interpretative.
Data Mining
 Il data mining ha per oggetto l'estrazione di un
  sapere o di una conoscenza a partire da grandi
  quantità di dati (attraverso metodi automatici o
  semi-automatici) e l'utilizzazione industriale o
  operativa di questo sapere.
 Fondamentalmente è una tecnica di automazione
  dell’analisi statistica dei dati
Prodotti BI
 Business Objects
 Oracle Hyperion
 Microsoft Analysis Services
 IBM Cognos
 Pentaho BI
 Jaspersoft
BI Magic Quadrant
Integrazione
 Integrazione dei dati
    Fonti dati eterogenee su sistemi eterogenei devono essere
     mantenute consistenti
 Indipendenza dal fornitore
    Le regole di business vengono estratte dalle applicazioni
     presenti nel sistema
 Common Façade
   Il sistema fornisce un fron end comune agli altri sistemi, che
    quindi non necessitano di specifiche integrazioni
Pattern di integrazione
 Due tipologie
   Mediazione
     Un broker comune raccoglie i messaggi dalle applicazioni
      fonte e distribuisce eventi alle applicazioni destinazione
   Federazione
     Il sistema di integrazione è visto come un sistema che
      fornisce un’interfaccia verso gli altri sistemi
 L’accesso può essere sincrono o asincrono
 La durata può andare da frazioni di secondo
 (integrazioni one shot) o tempi più lunghi (giorni,
 mesi) supportati da strumenti di workflow
BPM - Workflow

More Related Content

Glossario tecnologico 2011

  • 1. Glossario Tecnologico Panoramica dei termini, delle tecnologie e delle metodologie adottate per la realizzazione di soluzioni software per l’organizzazione di un’impresa. Andrea Colleoni - 2011
  • 2. Segmenti di applicazione  Sviluppo di applicazioni  Business Intelligence Enterprise  Soluzioni proprietarie  3 Main Streams  Open Source Business  Java (JVM) Intelligence  Microsoft.NET (CLR)  Integrazione  (NEW!) Mobile (iOS, Android, Symbian)  Soluzioni proprietarie  Minor streams  Soluzioni personalizzate  Altre tecnologie diffuse (PHP, Python, Ruby on Rails)  RIA: jQuery, Flex, HTML5, GWT etc.  CMS come piattaforma di sviluppo (Sharepoint, Alfresco, WPS e in misura minore xNuke, Joomla, Drupal, etc.)  Legacy e RAD  VB, Apex, 4GL
  • 3. Tipi di distribuzione del servizio (1)  Dove installare gli applicativi?  Obiettivi: ottimizzazione dei costi (HW, servizi accessori, energia)  Tradizionale: basato su sistemi in house  Server fisici  Server virtualizzati  Service (On-Demand)  ASP: application service providing  Multi tenancy  Basato su HTTP, ma non solo (e.g. XenApp)  Saas: Software as a service
  • 4. Tipi di distribuzione del servizio (2)  ASP: application service providing  SaaS: software as a service  Servizio (applicazione) in modalità pay per use  Necessita solo di thin client  PaaS: platform as a service  Piattaforma di sviluppo e esecuzione di applicazioni completa, fornita come servizio in pay per use  IaaS: Infrastructure as a Service  Infrastruttura IT (server virtuali, clients, applicazioni) fornita come servizio  IaaS, PaaS, Saas sono gli strati costituenti di un’infrastruttura di cloud computing
  • 5. Archietture enterprise(1)  Architettura Layers  È la classica architettura usata per lo sviluppo OO  Architetture n-tier  Promuove la separazione degli ambiti e quindi:  Il riuso  La scalabilità  La manutenibilità
  • 6. Archietture enterprise(2)  Service Oriented Architecture (SOA)  Insieme di servizi interoperabili  Http, XML  WebServices  WSDL, RPC  REST  WCF (Microsoft)
  • 7. Archietture Enterprise(3)  Database-centric architecture  Oracle forms, Apex  Client-server  Classiche applicazioni ‘80s - ‘90s  Visual Basic, Delphi, VBA, MS Office VBA  Front-end and back-end  MVC
  • 8. Infrastruttura Java  Java Virtual Machine  Platform independent  JRE e JDK  JSE, JEE e JME  Versioni  JRE: attuale 1.6 (o 6)  JEE: attuale 6  Vastissima disponibilità di librerie e Framework oltre la platform  Application server  IBM WebSphere: è una famiglia di prodotti, tra cui l’application server  Oracle BEA WebLogic  Jboss, Apache Tomcat, Spring vFabric e Mulesoft Tcat
  • 9. Infrastruttura .NET  Common Language Runtime  Micorsoft.NET e Mono  Assembly  Porting delle librerie di successo  Application Server  IIS
  • 10. Ambienti di sviluppo  IDE: sviluppo rapido, visuale  Java  Open source  Eclipse  Netbeans  Springsource Tools Suite  Commerciali  IBM Rational Application Developer  IntelliJ IDEA  .NET  Commerciali  Microsoft Visual Studio  Open Source  #Develop  Mono Develop
  • 11. Librerie di ampia diffusione (cross ported)  Infrastruttura e frameworks  Spring(Net)  Interfacciamento con DB  (N)Hibernate, MyBatis(Net)  Utilities  Log4(J-Net), Quartz Job Scheduler  ALM  (N)Ant, (N)Maven
  • 12. Librerie di ampia diffusione (Java)  Apache Axis (1 e 2): webservices  Apache CXF: webservices  Apache Struts (1 e 2), Apache Wicket, JavaServer Faces: web MVC  JBPM: workflow
  • 13. Librerie di ampia diffusione (.NET)  MS Enterprise Libraries  CastleProject: Active Record, Monorail, Windsor
  • 14. IBM WebSphere Application Server WebSphere WebSphere WebSphere WebSphere WebSphere WebSphere WebSphere WebSphere WebSphere version 8.0 (Beta) 7.0 6.1 6.0 5.1 5.0 4.0 3.5 18 Oct 2010 Release 31 Dec 15 Aug 31 Aug (Beta 17 Oct 2008 30 Jun 2006 16 Jan 2004 03 Jan 2003 date 2004 2001 2000 Refresh) End of 30 Sept 30 Sept 30 Sept 30 April 30 Nov support 2010 2008 2006 2005 2003 J2SE/Java 6 6 5 1.4 1.4 1.3 1.3 1.2 SE 1.2 (not fully JavaEE 6 5 1.4 1.4 1.3 1.3 1.2 compliant) Servlet 3.0 2.5 2.4 2.4 2.3 2.3 2.2 2.1&2.2 0.91&1.0&1. JSP 2.2 2.1 2.0 2.0 1.2 1.2 1.1 1 EJB 3.1 3.0 2.1 2.1 2.0 2.0 1.1 1.0
  • 15. Oracle BEA WebLogic Standard WLS 7.0 WLS 8.1 WLS 9.0 WLS 10.0 WLS 10.3 Java 1.3 1.4 5 5 6 Java EE 1.3 1.3 1.4 5 5 Tomcat • Apache Tomcat – dal 1999: servlet container di riferimento – Feb-2011: versione 7.0.8 – Embedded in molti AS JEE – Container di riferimento per implementazioni stack cloud • vFabric • Mulesoft Tcat
  • 16. Jetty, Jboss e altri  Mortbay Jetty  Puro java, lightweight, embeddable servlet container  RedHat Jboss  Feb-2011: v6 - versione stabile  È l’application server JEE più diffuso al mondo  Implementa protocolli e connettori standard  Resin, Terracotta Cluster, OpenEJB
  • 17. Microsoft Internet Information Server  Solo su Windows  Su POSIX con Mono + Apache Httpd + mod_mono  Da Windows NT (IIS 1.0) all’attuale Windows 2008 R2 (IIS 7.5)  Interamente riprogettato e riscritto dalla versione 7.0 (Windows 2008)
  • 18. Market Share - Public All domains December Developer Percent January 2011 Percent Change 2010 Apache 151,516,152 59.35% 161,591,445 59.13% -0.23 Microsoft 56,723,544 22.22% 57,392,351 21.00% -1.22 nginx 16,910,205 6.62% 20,504,634 7.50% 0.88 Google 14,933,865 5.85% 15,112,532 5.53% -0.32 lighttpd 1,308,935 0.51% 1,866,872 0.68% 0.17 Top servers Developer December 2010 Percent January 2011 Percent Change Apache 661,722 66.61% 662,184 66.62% 0.01 Microsoft 163,589 16.47% 161,219 16.22% -0.25 nginx 58,705 5.91% 60,782 6.12% 0.21 Google 19,623 1.98% 20,524 2.06% 0.09
  • 19. Cosa valutare di un AS?  Front server o back server?  Licenza  Meccanismi di autenticazione: Single Sign On  Supporto https  Virtual hosting  CGI, FastCGI / Java Servlets / ASP.NET / PHP e in generale plug di un esecutore  Server Side Includes  Runs in user space or kernel space  Administration console  IPv6  Operating System Support
  • 20. Mobile  iOS (Apple)  Sistema operativo di iPhone, iPad e AppleTV  Sviluppo tramite iOS SDK (commerciale) e solo tramite App Store  Java via J2ME (non ancora)  .NET parzialmente con Novell MonoTouch  Android (Open Handset Alliance)  Sistema operativo aperto per dispositivi mobile gestito da Google basato sul kernel Linux  Usato in SmartPhones HTC, Motorola, Samsung, Google, etc.  Esegue Java tramite Dalvik VM  Si possono sviluppare applicazioni in Eclipse (ADT) in Java e C/C++
  • 22. Uso dei Mobile Devices  Per ora principalmente Social Networking, Connettività, Commercio  Con l’aumentare della diffusione i dispositivi Mobile saranno sempre più spesso indicati come target platform
  • 24. Altre tecnologie - PHP  PHP  Evoluzione di CGI  Inline scripting  Safe System Calls  Enorme diffusione per via della originaria disponibilità gratuita e della iniziale superiorità funzionale (’90s)  Enorme diffusione di software libero, librerie, frameworks, tools  LAMP e WAMP
  • 25. Altre tecnologie – Python e RoR  Python  Linguaggio ideato per migliorare l’espressività e superare il vincolo paradigmatico nella programmazione  Jython: compila Python sulla JVM  IronPython: compila Python per CLR  Ruby on Rails  Framework a sviluppo rapido  ORM ActiveRecord, dipendenze con RubyGems  Ideato seguendo Convention over Configuration
  • 26. Rich Internet Applications (1)  Adobe Flex  Usa il plugin di Flash!  Paradigma MVC (mxml per l’interfaccia e ActionScript per il controller)  jQuery  Sempre maggiore diffusione  Cross browser  Sfrutta JS engine del browser  IE9, Chrome, FF3 incrementano notevolmente le performance dell’engine JS
  • 27. Rich Internet Applications (2)  Google Web Toolkit, ExtJS, Prototype, Zk  Simili a jQuery  Javascript sfruttato pienamente sul client > AJAX  Comunicazione asincrona HTTP in JS  Migliore user experience  Minor traffico di rete  WebService come fonti dati: JSON e RestFul  HTML5  Dalla versione 4 (1997) sono state recepite le direzioni che il WWW ha preso recentemente  Porta RIA in modo standard nella definizione del contenuto del documento  iOS supporta HTML5 ma non Flash!
  • 28. Uso di (E)CMS  Usi [http://en.wikipedia.org/wiki/Content_management_system] :  Allow for a large number of people to contribute to and share stored data  Control access to data, based on user roles (defining which information users or user groups can view, edit, publish, etc.)  Aid in easy storage and retrieval of data  Reduce repetitive duplicate input  Improve the ease of report writing  Improve communication between users  In a CMS, data can be defined as nearly anything: documents, movies, pictures, phone numbers, scientific data, and so forth. CMSs are frequently used for storing, controlling, revising, semantically enriching, and publishing documentation. Serving as a central repository, the CMS increases the version level of new updates to an already
  • 29. Pros & Cons  Pros  Infrastruttura già costruita per condividere virtualmente ogni tipo di informazione  Solitamente sono disponibili anche funzioni di automazione (workflow, integrazione con la messaggistica, information retreival e OCR, integrazione con SW Office Automation)  Solitamente sono disponibili (o integrabili) strumenti di sviluppo (designer)  Cons  L’infrastruttura sembra poter offrire tutte le possibilità, se si pensa che ogni programma informatico tratta informazioni e le modifica sulla base di eventi; possono essere paragonati alle piattaforme tipo 4GL
  • 30. Enterprise CMS  Microsoft Sharepoint (Services e Server)  Maturo, completo  Integrato con MS Office  Diffuso  IBM Lotus WCM  Maturo  Cross platform  Alfresco  Open Source  Maturo e cross platform  Poco diffuso
  • 32. Business Intelligence  È il processo di trasformazione delle informazioni e dei dati in conoscenza  Dalle informazioni elementari vengono ricavate le relazioni e le aggregazioni che forniscono la conoscenza ricercata  La tecnologia che permette di implementare il processo di BI è diversificata in vari componenti  ETL  DataWarehouse  OLAP  Sistemi di reportistica  Data mining
  • 33. ETL  Extract, transform, load: I dati vengono estratti da sistemi sorgenti quali database transazionali (OLTP), comuni file di testo o da altri sistemi informatici (ad esempio, sistemi ERP o CRM).  Subiscono quindi un processo di trasformazione, che consiste ad esempio nel:  Selezionare solo quelli che sono di interesse per il sistema  Normalizzare i dati (per esempio eliminando i duplicati)  Tradurre dati codificati  Derivare nuovi dati calcolati  Eseguire accoppiamenti (join) tra dati recuperati da differenti tabelle  Raggruppare i dati
  • 34. Data warehouse  Un Data warehouse (o DW, o DWH) è un archivio informatico contenente i dati di un'organizzazione. I DW sono progettati per consentire di produrre facilmente relazioni ed analisi.  Vengono considerati componenti essenziali di un sistema Data warehouse anche gli strumenti per localizzare i dati, per estrarli, trasformarli e caricarli (ETL), come pure gli strumenti per gestire un dizionario dei dati. Le definizioni di DW considerano solitamente questo contesto ampio.
  • 35. OLAP  OLAP, (On-Line Analytical Processing), designa un insieme di tecniche per l'analisi interattiva e veloce di grandi quantità di dati, che è possibile esaminare in modalità piuttosto complesse.  Gli strumenti OLAP si differenziano dagli OLTP per il fatto che i primi hanno come obiettivo la performance nella ricerca e il raggiungimento di un'ampiezza di interrogazione quanto più grande possibile; i secondi, invece, hanno come obiettivo la garanzia di integrità e sicurezza delle transazioni.  Cubi multidimensionali  Data mart
  • 36. Reporting  L'obiettivo di un Sistema di Reportistica all'interno dei Sistemi Informativi è generalmente quello di fornire documentazione analitica sulle attività di rilievo dell'organizzazione all'interno della quale è sviluppato: tale base informativa ha l'obiettivo di essere la più aggiornata e corretta secondo un'univoca prassi organizzativa e perciò non suscettibile di rilievi e incongruenze interpretative.
  • 37. Data Mining  Il data mining ha per oggetto l'estrazione di un sapere o di una conoscenza a partire da grandi quantità di dati (attraverso metodi automatici o semi-automatici) e l'utilizzazione industriale o operativa di questo sapere.  Fondamentalmente è una tecnica di automazione dell’analisi statistica dei dati
  • 38. Prodotti BI  Business Objects  Oracle Hyperion  Microsoft Analysis Services  IBM Cognos  Pentaho BI  Jaspersoft
  • 40. Integrazione  Integrazione dei dati  Fonti dati eterogenee su sistemi eterogenei devono essere mantenute consistenti  Indipendenza dal fornitore  Le regole di business vengono estratte dalle applicazioni presenti nel sistema  Common Façade  Il sistema fornisce un fron end comune agli altri sistemi, che quindi non necessitano di specifiche integrazioni
  • 41. Pattern di integrazione  Due tipologie  Mediazione  Un broker comune raccoglie i messaggi dalle applicazioni fonte e distribuisce eventi alle applicazioni destinazione  Federazione  Il sistema di integrazione è visto come un sistema che fornisce un’interfaccia verso gli altri sistemi  L’accesso può essere sincrono o asincrono  La durata può andare da frazioni di secondo (integrazioni one shot) o tempi più lunghi (giorni, mesi) supportati da strumenti di workflow