SlideShare a Scribd company logo
1 of 42
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

Viewers also liked

Mensaje publicidad i blogger blog
Mensaje publicidad i blogger blogMensaje publicidad i blogger blog
Mensaje publicidad i blogger blogjakblog
 
I piani di miglioramento prato
I piani di miglioramento  pratoI piani di miglioramento  prato
I piani di miglioramento pratoPORTALE PAQ
 
Dematerializzazione e semplificazione dei processi: il progetto realizzato pe...
Dematerializzazione e semplificazione dei processi: il progetto realizzato pe...Dematerializzazione e semplificazione dei processi: il progetto realizzato pe...
Dematerializzazione e semplificazione dei processi: il progetto realizzato pe...Dedagroup
 
Dedagroup consulenza e formazione per una pa senza carta
Dedagroup consulenza e formazione per una pa senza cartaDedagroup consulenza e formazione per una pa senza carta
Dedagroup consulenza e formazione per una pa senza cartaDedagroup
 
Dalla carta al digitale_Ministero dell'interno_forum pa challenge
Dalla carta al digitale_Ministero dell'interno_forum pa challengeDalla carta al digitale_Ministero dell'interno_forum pa challenge
Dalla carta al digitale_Ministero dell'interno_forum pa challengeFPA
 
Indagine sulla dematerializzazione dei processi scolastici - Dicembre 2013
Indagine sulla dematerializzazione dei processi scolastici - Dicembre 2013Indagine sulla dematerializzazione dei processi scolastici - Dicembre 2013
Indagine sulla dematerializzazione dei processi scolastici - Dicembre 2013Didanet
 
Gestione e conservazione dei documenti sanitari digitalizzati
Gestione e conservazione dei documenti sanitari digitalizzatiGestione e conservazione dei documenti sanitari digitalizzati
Gestione e conservazione dei documenti sanitari digitalizzatiDigital Law Communication
 

Viewers also liked (7)

Mensaje publicidad i blogger blog
Mensaje publicidad i blogger blogMensaje publicidad i blogger blog
Mensaje publicidad i blogger blog
 
I piani di miglioramento prato
I piani di miglioramento  pratoI piani di miglioramento  prato
I piani di miglioramento prato
 
Dematerializzazione e semplificazione dei processi: il progetto realizzato pe...
Dematerializzazione e semplificazione dei processi: il progetto realizzato pe...Dematerializzazione e semplificazione dei processi: il progetto realizzato pe...
Dematerializzazione e semplificazione dei processi: il progetto realizzato pe...
 
Dedagroup consulenza e formazione per una pa senza carta
Dedagroup consulenza e formazione per una pa senza cartaDedagroup consulenza e formazione per una pa senza carta
Dedagroup consulenza e formazione per una pa senza carta
 
Dalla carta al digitale_Ministero dell'interno_forum pa challenge
Dalla carta al digitale_Ministero dell'interno_forum pa challengeDalla carta al digitale_Ministero dell'interno_forum pa challenge
Dalla carta al digitale_Ministero dell'interno_forum pa challenge
 
Indagine sulla dematerializzazione dei processi scolastici - Dicembre 2013
Indagine sulla dematerializzazione dei processi scolastici - Dicembre 2013Indagine sulla dematerializzazione dei processi scolastici - Dicembre 2013
Indagine sulla dematerializzazione dei processi scolastici - Dicembre 2013
 
Gestione e conservazione dei documenti sanitari digitalizzati
Gestione e conservazione dei documenti sanitari digitalizzatiGestione e conservazione dei documenti sanitari digitalizzati
Gestione e conservazione dei documenti sanitari digitalizzati
 

Similar to Glossario tecnologico 2011

Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsMarcello Teodori
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On RailsLuca Mearelli
 
Cloud Google App Engine Paas
Cloud   Google App Engine PaasCloud   Google App Engine Paas
Cloud Google App Engine Paassteccami
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Andrea Dottor
 
Sviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinSviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinFabio Cozzolino
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSopencityplatform
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
 
Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Alberto Lagna
 
Gaetano Giunta: eZ System PHP Inside
Gaetano Giunta: eZ System PHP InsideGaetano Giunta: eZ System PHP Inside
Gaetano Giunta: eZ System PHP InsideFrancesco Fullone
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net Leonardo Alario
 
Link. java server faces [santi caltabiano]
  Link. java server faces [santi caltabiano]  Link. java server faces [santi caltabiano]
Link. java server faces [santi caltabiano]santi caltabiano
 

Similar to Glossario tecnologico 2011 (20)

Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa Struts
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On Rails
 
Cloud Google App Engine Paas
Cloud   Google App Engine PaasCloud   Google App Engine Paas
Cloud Google App Engine Paas
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
 
Sviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinSviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarin
 
Wcf data services
Wcf data servicesWcf data services
Wcf data services
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio Online
 
Confronto fra web services framework (open source)
Confronto fra web services framework (open source)Confronto fra web services framework (open source)
Confronto fra web services framework (open source)
 
Gaetano Giunta: eZ System PHP Inside
Gaetano Giunta: eZ System PHP InsideGaetano Giunta: eZ System PHP Inside
Gaetano Giunta: eZ System PHP Inside
 
OCP Paas_ultima
OCP Paas_ultimaOCP Paas_ultima
OCP Paas_ultima
 
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
ASP.NET Core essentials
ASP.NET Core essentialsASP.NET Core essentials
ASP.NET Core essentials
 
Link. java server faces [santi caltabiano]
  Link. java server faces [santi caltabiano]  Link. java server faces [santi caltabiano]
Link. java server faces [santi caltabiano]
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 

More from Andrea Colleoni

Versioning aziendale con SVN
Versioning aziendale con SVNVersioning aziendale con SVN
Versioning aziendale con SVNAndrea Colleoni
 
Caso di studio: il CIO solitario
Caso di studio:   il CIO solitarioCaso di studio:   il CIO solitario
Caso di studio: il CIO solitarioAndrea Colleoni
 
10 ottime ragioni per usare svn in azienda
10 ottime ragioni per usare svn in azienda10 ottime ragioni per usare svn in azienda
10 ottime ragioni per usare svn in aziendaAndrea Colleoni
 
Valutazione dei function points
Valutazione dei function pointsValutazione dei function points
Valutazione dei function pointsAndrea Colleoni
 
Branching con TortoiseSVN
Branching con TortoiseSVNBranching con TortoiseSVN
Branching con TortoiseSVNAndrea Colleoni
 
Regole e princìpi e tecniche di programmazione
Regole e princìpi e tecniche di programmazioneRegole e princìpi e tecniche di programmazione
Regole e princìpi e tecniche di programmazioneAndrea Colleoni
 

More from Andrea Colleoni (8)

Versioning aziendale con SVN
Versioning aziendale con SVNVersioning aziendale con SVN
Versioning aziendale con SVN
 
Caso di studio: il CIO solitario
Caso di studio:   il CIO solitarioCaso di studio:   il CIO solitario
Caso di studio: il CIO solitario
 
10 ottime ragioni per usare svn in azienda
10 ottime ragioni per usare svn in azienda10 ottime ragioni per usare svn in azienda
10 ottime ragioni per usare svn in azienda
 
Valutazione dei function points
Valutazione dei function pointsValutazione dei function points
Valutazione dei function points
 
Branching con TortoiseSVN
Branching con TortoiseSVNBranching con TortoiseSVN
Branching con TortoiseSVN
 
Introduzione a Struts
Introduzione a StrutsIntroduzione a Struts
Introduzione a Struts
 
Regole e princìpi e tecniche di programmazione
Regole e princìpi e tecniche di programmazioneRegole e princìpi e tecniche di programmazione
Regole e princìpi e tecniche di programmazione
 
Approcci al design
Approcci al designApprocci al design
Approcci al design
 

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