Glossario tecnologico 2011
-
Upload
andrea-colleoni -
Category
Technology
-
view
1.221 -
download
1
description
Transcript of Glossario tecnologico 2011
Panoramica dei termini, delle tecnologie e delle metodologie adottate per la realizzazione di soluzioni
software per l’organizzazione di un’impresa.
Andrea Colleoni - 2011
Glossario Tecnologico
Segmenti di applicazioneSviluppo di applicazioni
Enterprise3 Main Streams
Java (JVM) Microsoft.NET (CLR) (NEW!) Mobile (iOS, Android,
Symbian)Minor streams
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
Business IntelligenceSoluzioni
proprietarieOpen Source
Business Intelligence
IntegrazioneSoluzioni
proprietarieSoluzioni
personalizzate
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 fisiciServer virtualizzati
Service (On-Demand)ASP: application service providing
Multi tenancyBasato 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 serviceServizio (applicazione) in modalità pay per useNecessita solo di thin client
PaaS: platform as a servicePiattaforma di sviluppo e esecuzione di applicazioni
completa, fornita come servizio in pay per useIaaS: 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 OOArchitetture n-tierPromuove la separazione
degli ambiti e quindi:Il riusoLa scalabilitàLa manutenibilità
Archietture enterprise(2)Service Oriented
Architecture (SOA)Insieme di servizi
interoperabiliHttp, XML
WebServicesWSDL, RPCRESTWCF (Microsoft)
Archietture Enterprise(3)Database-centric architecture
Oracle forms, ApexClient-server
Classiche applicazioni ‘80s - ‘90sVisual Basic, Delphi, VBA, MS Office VBA
Front-end and back-endMVC
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à dilibrerie 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 .NETCommon Language
RuntimeMicorsoft.NET e
MonoAssembly
Porting delle librerie di successo
Application ServerIIS
Ambienti di sviluppo IDE: sviluppo rapido, visuale Java
Open source Eclipse Netbeans Springsource Tools Suite
Commerciali IBM Rational Application Developer IntelliJ IDEA
.NETCommerciali
Microsoft Visual StudioOpen 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 SchedulerALM
(N)Ant, (N)Maven
Librerie di ampia diffusione (Java)Apache Axis (1 e 2): webservicesApache CXF: webservicesApache Struts (1 e 2), Apache Wicket,
JavaServer Faces: web MVCJBPM: workflow
Librerie di ampia diffusione (.NET)MS Enterprise LibrariesCastleProject: Active Record, Monorail,
Windsor
IBM WebSphere Application Server
WebSphere
version
WebSphere 8.0 (Beta)
WebSphere 7.0
WebSphere 6.1
WebSphere 6.0
WebSphere 5.1
WebSphere 5.0
WebSphere 4.0
WebSphere 3.5
Release date
18 Oct 2010 (Beta Refresh)
17 Oct 2008
30 Jun 2006
31 Dec 2004
16 Jan 2004
03 Jan 2003
15 Aug 2001
31 Aug 2000
End of support
30 Sept 2010
30 Sept 2008
30 Sept 2006
30 April 2005
30 Nov 2003
J2SE/Java SE
6 6 5 1.4 1.4 1.3 1.3 1.2
JavaEE 6 5 1.4 1.4 1.3 1.3 1.21.2 (not fully compliant)
Servlet 3.0 2.5 2.4 2.4 2.3 2.3 2.2 2.1&2.2
JSP 2.2 2.1 2.0 2.0 1.2 1.2 1.10.91&1.0&1.1
EJB 3.1 3.0 2.1 2.1 2.0 2.0 1.1 1.0
Oracle BEA WebLogicStandard WLS 7.0 WLS 8.1 WLS 9.0 WLS 10.
0WLS 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 altriMortbay Jetty
Puro java, lightweight, embeddable servlet container
RedHat Jboss Feb-2011: v6 - versione stabileÈ l’application server JEE più diffuso al mondoImplementa protocolli e connettori standard
Resin, Terracotta Cluster, OpenEJB
Microsoft Internet Information ServerSolo 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
DeveloperDecember
2010Percent
January 2011
Percent Change
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
All domains
DeveloperDecember
2010Percent 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
Top servers
Cosa valutare di un AS?Front server o back server?LicenzaMeccanismi di autenticazione: Single Sign OnSupporto httpsVirtual hostingCGI, FastCGI / Java Servlets / ASP.NET / PHP e in
generale plug di un esecutoreServer Side IncludesRuns in user space or kernel spaceAdministration consoleIPv6Operating System Support
MobileiOS (Apple)
Sistema operativo di iPhone, iPad e AppleTVSviluppo tramite iOS SDK (commerciale) e solo tramite
App StoreJava 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 LinuxUsato in SmartPhones HTC, Motorola, Samsung, Google,
etc.Esegue Java tramite Dalvik VMSi possono sviluppare applicazioni in Eclipse (ADT) in
Java e C/C++
Sviluppo Mobile
Uso dei Mobile DevicesPer ora principalmente Social Networking,
Connettività, CommercioCon l’aumentare della diffusione i
dispositivi Mobile saranno sempre più spesso indicati come target platform
Diffusione prevista dell’uso di Internet
Altre tecnologie - PHPPHP
Evoluzione di CGIInline scriptingSafe 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 RoRPython
Linguaggio ideato per migliorare l’espressività e superare il vincolo paradigmatico nella programmazione
Jython: compila Python sulla JVMIronPython: compila Python per CLR
Ruby on RailsFramework a sviluppo rapidoORM ActiveRecord, dipendenze con
RubyGemsIdeato 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 diffusioneCross browserSfrutta JS engine del browserIE9, Chrome, FF3 incrementano
notevolmente le performance dell’engine JS
Rich Internet Applications (2)Google Web Toolkit, ExtJS, Prototype, Zk
Simili a jQueryJavascript sfruttato pienamente sul client > AJAX
Comunicazione asincrona HTTP in JSMigliore user experienceMinor traffico di reteWebService come fonti dati: JSON e RestFul
HTML5Dalla versione 4 (1997) sono state recepite le
direzioni che il WWW ha preso recentementePorta RIA in modo standard nella definizione del
contenuto del documentoiOS supporta HTML5 ma non Flash!
Uso di (E)CMSUsi [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 dataReduce repetitive duplicate inputImprove the ease of report writingImprove 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 existing file. Version control is one of the primary advantages of a CMS.
Pros & ConsPros
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)
ConsL’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 CMSMicrosoft Sharepoint (Services e Server)
Maturo, completoIntegrato con MS OfficeDiffuso
IBM Lotus WCMMaturoCross platform
AlfrescoOpen SourceMaturo e cross platformPoco diffuso
Gartner ECM Quadrant
Business IntelligenceÈ il processo di trasformazione delle
informazioni e dei dati in conoscenzaDalle 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 componentiETLDataWarehouseOLAPSistemi di reportisticaData mining
ETLExtract, 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
sistemaNormalizzare i dati (per esempio eliminando i duplicati)Tradurre dati codificatiDerivare nuovi dati calcolatiEseguire accoppiamenti (join) tra dati recuperati da
differenti tabelleRaggruppare i dati
Data warehouseUn 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.
OLAPOLAP, (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 multidimensionaliData mart
ReportingL'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 MiningIl 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 BIBusiness ObjectsOracle HyperionMicrosoft Analysis ServicesIBM CognosPentaho BIJaspersoft
BI Magic Quadrant
IntegrazioneIntegrazione dei dati
Fonti dati eterogenee su sistemi eterogenei devono essere mantenute consistenti
Indipendenza dal fornitoreLe regole di business vengono estratte dalle
applicazioni presenti nel sistemaCommon Façade
Il sistema fornisce un fron end comune agli altri sistemi, che quindi non necessitano di specifiche integrazioni
Pattern di integrazioneDue tipologie
MediazioneUn broker comune raccoglie i messaggi dalle
applicazioni fonte e distribuisce eventi alle applicazioni destinazione
FederazioneIl sistema di integrazione è visto come un sistema
che fornisce un’interfaccia verso gli altri sistemi
L’accesso può essere sincrono o asincronoLa durata può andare da frazioni di
secondo (integrazioni one shot) o tempi più lunghi (giorni, mesi) supportati da strumenti di workflow
BPM - Workflow