Glossario tecnologico 2011

42
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

description

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

Transcript of Glossario tecnologico 2011

Page 1: 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

Page 2: Glossario tecnologico   2011

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

Page 3: Glossario tecnologico   2011

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

Page 4: Glossario tecnologico   2011

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

Page 5: Glossario tecnologico   2011

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à

Page 6: Glossario tecnologico   2011

Archietture enterprise(2)Service Oriented

Architecture (SOA)Insieme di servizi

interoperabiliHttp, XML

WebServicesWSDL, RPCRESTWCF (Microsoft)

Page 7: Glossario tecnologico   2011

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

Page 8: Glossario tecnologico   2011

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

Page 9: Glossario tecnologico   2011

Infrastruttura .NETCommon Language

RuntimeMicorsoft.NET e

MonoAssembly

Porting delle librerie di successo

Application ServerIIS

Page 10: Glossario tecnologico   2011

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

Page 11: Glossario tecnologico   2011

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

Page 12: Glossario tecnologico   2011

Librerie di ampia diffusione (Java)Apache Axis (1 e 2): webservicesApache CXF: webservicesApache Struts (1 e 2), Apache Wicket,

JavaServer Faces: web MVCJBPM: workflow

Page 13: Glossario tecnologico   2011

Librerie di ampia diffusione (.NET)MS Enterprise LibrariesCastleProject: Active Record, Monorail,

Windsor

Page 14: Glossario tecnologico   2011

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

Page 16: Glossario tecnologico   2011

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

Page 17: Glossario tecnologico   2011

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)

Page 18: Glossario tecnologico   2011

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

Page 19: Glossario tecnologico   2011

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

Page 20: Glossario tecnologico   2011

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

Page 21: Glossario tecnologico   2011

Sviluppo Mobile

Page 22: Glossario tecnologico   2011

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

Page 23: Glossario tecnologico   2011

Diffusione prevista dell’uso di Internet

Page 24: Glossario tecnologico   2011

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

Page 25: Glossario tecnologico   2011

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

Page 26: Glossario tecnologico   2011

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

Page 27: Glossario tecnologico   2011

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!

Page 28: Glossario tecnologico   2011

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.

Page 29: Glossario tecnologico   2011

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

Page 30: Glossario tecnologico   2011

Enterprise CMSMicrosoft Sharepoint (Services e Server)

Maturo, completoIntegrato con MS OfficeDiffuso

IBM Lotus WCMMaturoCross platform

AlfrescoOpen SourceMaturo e cross platformPoco diffuso

Page 31: Glossario tecnologico   2011

Gartner ECM Quadrant

Page 32: Glossario tecnologico   2011

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

Page 33: Glossario tecnologico   2011

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

Page 34: Glossario tecnologico   2011

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.

Page 35: Glossario tecnologico   2011

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

Page 36: Glossario tecnologico   2011

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.

Page 37: Glossario tecnologico   2011

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

Page 38: Glossario tecnologico   2011

Prodotti BIBusiness ObjectsOracle HyperionMicrosoft Analysis ServicesIBM CognosPentaho BIJaspersoft

Page 39: Glossario tecnologico   2011

BI Magic Quadrant

Page 40: Glossario tecnologico   2011

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

Page 41: Glossario tecnologico   2011

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

Page 42: Glossario tecnologico   2011

BPM - Workflow