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)
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