alessandro.scotti@it.ibm.com luca.lazzaro@it.ibm.com Alessandro Scotti/Luca Lazzaro - IBM Javaday IV Roma 30 gennaio 2010

Documenti analoghi
Tale attività non è descritta in questa dispensa

Approccio stratificato

Application Server per sviluppare applicazioni Java Enterprise

Panoramica: che cosa è necessario

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Introduzione all uso di Eclipse

INSTALLAZIONE JOOMLA

Creare un sito Multilingua con Joomla 1.6

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

Progetto di Ingegneria del Software 2. SWIMv2

Indice PARTE PRIMA L INIZIO 1

DBMS e Linguaggi di programmazione nell'era di Internet

INSTALLARE L AMBIENTE DI SVILUPPO PER JOOMLA 2.5

Applicazioni web centrati sui dati (Data-centric web applications)

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

Il Web Server e il protocollo HTTP

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

Istruzioni per l installazione

Guida Joomla. di: Alessandro Rossi, Flavio Copes

19. LA PROGRAMMAZIONE LATO SERVER

Strumenti per la programmazione

Siti web centrati sui dati (Data-centric web applications)

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

L o. Walter Ambu japs: una soluzione agile (

Differenza tra wordpress.com e CMS

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Sistema Informativo Valutazioni e PRocedimenti Ambientali (SIPRA)

Ambienti di Sviluppo

Il web server Apache Lezione n. 3. Introduzione

Istruzioni di installazione di Intel Utilities

MagiCum S.r.l. Progetto Inno-School

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Programmazione server-side: Java Servlet

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

Introduzione a Dev-C++

Protocolli e architetture per WIS

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Installazione del Software. per lo Sviluppo di Applicazioni Java

01/05/2013 Istruzioni per l installazione

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

CONTENT MANAGEMENT SYSTEM

Let's start! File > New Project > Ruby > Ruby on Rails Application (events)

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Overview su Online Certificate Status Protocol (OCSP)

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Java e JavaScript. Krishna Tateneni Traduzione della documentazione: Luciano Montanaro Manutenzione della traduzione: Federico Zenith

IBM Software Demos The Front-End to SOA

Corso Joomla per ATAB

Mac Application Manager 1.3 (SOLO PER TIGER)

Tecnologie di Sviluppo per il Web

Fate doppio click sul file con nome postgresql-8.0.msi e impostate le varie voci come riportato nelle immagini seguenti:

Programmazione Orientata agli Oggetti in Linguaggio Java

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Come Installare SQL Server 2008 R2 Express Edition With Tools

Tipi fondamentali di documenti web

Smartphone 4.1. Cosa c èdi nuovo in Smartphone 4.1

Novità di Access 2010

COSTER. Import/Export su SWC701. SwcImportExport

IBM Software Demos WebSphere Portal Composite Application Workflow

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

Java: Compilatore e Interprete

Le command line di Java

Introduzione a LyX. Creazione di un documento Struttura e stile Modelli di documento Automatismi Riferimenti...

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Indice. Introduzione PARTE PRIMA IL FRAMEWORK DI JAVASERVER FACES 1

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

REGIONE BASILICATA UFFICIO S. I. R. S.

Utilizzo della Intranet, forum privati Soci e Staff

Protezione. Protezione. Protezione. Obiettivi della protezione

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Studio Legale. Guida operativa

Come Creare un sito web gratis

Sommario. Introduzione L ambiente di lavoro Configurazioni generali e la struttura di Joomla La struttura di Joomla...

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

XML e PHP. Gestire XML con PHP. Appendice

1 Introduzione Installazione Configurazione di Outlook Impostazioni manuali del server... 10

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Creare un Ipertesto. 1

Siti interattivi e dinamici. in poche pagine

Sistema di Gestione dei Contenuti Multimediali

CINEMA 4D RELEASE 10. Guida per l Installazione 3D FOR THE REAL WORLD

Tecnologie di Sviluppo per il Web

Drupal. E vai con un po' di Drupal for Dummies... :D. Copyright by hachreak

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Configurare TPTP in Eclipse e testare un applicazione

Corso di PHP. Prerequisiti. 1 - Introduzione

MANUALE D USO DELLA PIATTAFORMA ITCMS

PR novembre 2009 Software, controllo basato su PC Pagina 1 di 5

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per utenti singoli)

sito web sito Internet

Pacchettizzazione e distribuzione del software

Università degli Studi di Napoli Parthenope Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Generale

Guida rapida alla prima installazione

Joomla! 2.5:Utenti e permessi - Il wiki di Joomla.it

PHPUnit Ricettario Del Programmatore Scontroso

Manuale d uso della libreria Volta Log

IceWarp Server 11.2 Novità per l amministratore. Leggere il presente documento prima dell aggiornamento.

Transcript:

alessandro.scotti@it.ibm.com luca.lazzaro@it.ibm.com

Nuovi modi di fare software DOBBIAMO COLLABORARE! E ADESSO COME FACCIO AD ACCONTENTARE TUTTI?!? SOLO UN PROCESSO AGILE MI PUO AIUTARE! VOGLIO WEB 2.0, AJAX, REST... DEVO ANDARE SUL NUOVO WEB... E IN FRETTA!

La formula WOA

Processi agili Processi di sviluppo agili

Collaborazione

Nuovi approcci allo sviluppo software Massima efficienza nello scrivere codice Disaccoppiamento tra le parti del sistema Riuso, assemblaggio rapido di componenti pronti Flessibilità e adattamento ai cambiamenti Collaborazione, comunità di utenti e sviluppatori Rational Team Concert

Project Zero

Cos è? Nuovo processo di sviluppo guidato dalla comunità (Community-Driven Commercial Development): Utenti coinvolti fin dall inizio Libero accesso a binari, sorgenti e documentazione Frequenti milestone e rilasci Disponibile ora anche in versione commerciale: WebSphere smash

Cos è? Project Zero si propone come una piattaforma agile per lo sviluppo e l esecuzione di applicazioni Web. Come? In una parola: semplificando.

Struttura di un applicazione Non c è un punto di ingresso predefinito Tutto il comportamento del sistema è modellato come insieme di eventi L applicazione si limita a gestire gli eventi a cui è interessata

Gestione di un evento Runtime Zero/WebSphere smash HTTP request requestbegin GET PUT POST... requestend HTTP response Handler Handler Handler Applicazione

Global context Gli event hander non hanno stato Tutti i dati e lo stato dell applicazione vengono memorizzati fuori da essa, in una struttura chiamata global context

Global context Il global context è formato da diverse zone Ogni zona ha una diversa visibilità e un diverso lifecycle Si possono aggiungere a piacere altre zone definite dall utente

Global context Zona Visibilità Lifecycle Config Application Tutte le richieste, tutti gli utenti Tutte le richieste, tutti gli utenti dell applicazione Caricamento da file Stesso lifecycle dell applicazione, non persistente User Request Tutte le richieste per un utente (simile a sessione HTTP) Tutti gli event handler che si trovano sul percorso di gestione di una singola richiesta Finché l utente è autenticato e in sessione Durata della singola richiesta

Struttura delle directory Convention over configuration Nella maggior parte dei casi non c è bisogno di configurare nulla, si ottiene il comportamento atteso semplicemente creando script e template al posto giusto, e rispettando le convenzioni sui nomi

Struttura delle directory app/resources REST app/scripts Codice di supporto app/views Presentazione public Home del sito web

Struttura delle directory app/resources/people.groovy http://.../resources/people http://.../resources/people/identifier

Struttura delle directory Le richieste HTTP sono automaticamente tradotte e reindirizzate alla corrispondente funzione HTTP URI Action Handler GET.../people List onlist() POST.../people Create oncreate() GET.../people/id Retrieve onretrieve() PUT.../people/id Update onupdate() DELETE.../people/id Delete ondelete()

Componenti e directory virtuali L applicazione dichiara di dipendere da componenti esterni (per es. Dojo) Le dipendenze vengono automaticamente risolte, i componenti scaricati e copiati localmente I componenti vengono automaticamente integrati e resi visibili anche nella struttura dell applicazione

Linguaggi supportati Java è il linguaggio di sistema Si possono scrivere applicazioni anche in Groovy e PHP Dojo è il toolkit JavaScript di riferimento per la parte che gira sul browser (ma non è obbligatorio)

Linguaggi supportati Linguaggio di script particolarmente adatto allo sviluppo di applicazioni Web Zero include un interprete PHP 5.2 scritto interamente in Java http://www.php.net/

Linguaggi supportati Linguaggio dinamico e agile per la piattaforma Java Facile da imparare per chi conosce Java Supporta i template http://groovy.codehaus.org/

Quale linguaggio???

Scegliere ed integrare linguaggi Il team va considerato nella scelta. Sfruttare al meglio gli skill è sempre un obiettivo primario!

Scegliere ed integrare linguaggi Performance Manutenibilità Dev tools Velocità di sviluppo

Scegliere ed integrare linguaggi Requisiti del cliente...

Java per il backend Usami dove il lavoro è più duro!

PHP per il frontend Ma io voglio fa l artista, che è sto codice!

Esempio per una Applicazione Facebook

Ed ora... azione!!!

Come usare un oggetto Java $date = new Java("java.util.Date", 70, 9, 4); var_dump($date->tostring()); $map = new Java("java.util.HashMap"); $map->put("when", $date); echo $map->get("when")->tostring()."\n"; $system = new JavaClass("java.lang.System"); echo "OS: ".$system->getproperty("os.name")."\n"; $math = new JavaClass("java.lang.Math"); echo "PI: ".$math->pi."\n";

Importare classi Java java_import("java.lang.integer", NULL, FALSE); $signature = new JavaSignature(JAVA_STRING); $value = new Integer($signature, "1234567890"); var_dump(integer::parseint($signature, "1234567890")); java_import("java.util.date"); $date = new Date(70, 9, 4);

Iterare su oggetti Java $list = new Java("java.util.ArrayList"); $list->add("hello World!"); $list->add(false); $list->add(1234567890); foreach ($list as $key => $value) { } echo $key." ".$value."\n";

Estendere classi <?php java_import("java.io.file"); class SuperFile extends File { function SuperFile($signature, $path) { parent:: construct($signature, $path); } function isthiscool() { return TRUE; // Way cool } }?>

Accesso a membri $date->time $date->gettime(), $date.time $buffer->length = 5; $buffer->setlength(5)

WOA in PHP e Java

Servizi REST con Zero e PHP <approot>/app/resources/employees.php <?php class Employees { function onlist() { [..] GET /resources/employees => Employees::onList() POST /resources/employees => Employees::onCreate() zput('/request/view', 'JSON'); zput('/request/json/output', $employeerecords); render_view(); } function oncreate() { }?>

Runtime Runtime

Runtime Due semplici passi per installare: unzip run

Runtime Ogni istanza di runtime supporta una singola applicazione: l applicazione gira in un processo dedicato

Runtime Basato su un core piccolo, veloce e portabile: gira su qualunque JVM J2SE 5.0+ 12 MB con Groovy altri 18 MB per PHP (con molte estensioni) include il supporto per HTTP avvio in 1 secondo

Grazie per aver partecipato!

Link

Riferimenti Rational Team Concert http://www.ibm.com/software/awdtools/rtc/ Rational Quality Manager http://www.ibm.com/software/awdtools/rqm/standard/ Project Zero e WebSphere smash http://www.projectzero.org/ http://www.ibm.com/software/webservers/smash/

Crediti e attribuzioni Internet Map Author: Matt Brit URL: http://commons.wikimedia.org/wiki/image:internet_map_1024.jpg License: http://creativecommons.org/licenses/by/2.5/ Ferrari Author: Rickydavid URL: http://www.flickr.com/photos/cuppini/1742120912/ License: http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en_gb Vulcania Cone (France) Author: Slawojar URL: http://commons.wikimedia.org/wiki/image:vulcania_cone.jpg License: http://en.wikipedia.org/wiki/gnu_free_documentation_license

Crediti e attribuzioni Earth map Author: jimht at shaw dot ca, modified by Rodrigocd URL: http://commons.wikimedia.org/wiki/file:earthmap1000x500compac.jpg License: I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide. An acrobat performing in the contortion act Author: StuSeeger URL: http://commons.wikimedia.org/wiki/file:an_acrobat_performing_in_the_contortion_act_of_cirque _du_soleil%27s_nouvelle_exp%c3%a9rience,_1994.jpg License: http://creativecommons.org/licenses/by/2.0/deed.en JavaScript: The Definitive Guide, 5th Edition Author: ZackyMa URL: http://www.flickr.com/photos/marchbox/159923040/ License: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en_gb

Crediti e attribuzioni php-logo-php-721782 Author: betacontinua URL: http://www.flickr.com/photos/betacontinua/2551029543/ License: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en_gb Database Author: Tim Morgan URL: http://www.flickr.com/photos/timothymorgan/75294154/ License: http://creativecommons.org/licenses/by/2.0/deed.en_gb JavaScript: IMG_3179 Author: zugaldia URL: http://www.flickr.com/photos/azugaldia/3805285759/ License: http://creativecommons.org/licenses/by/2.0/deed.en_gb

Crediti e attribuzioni Happy New Creative Year Author: pierofix URL: http://www.flickr.com/photos/pierofix/3175723715 License: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en_gb Sarah laboring... Author: colorblindpicaso URL: http://www.flickr.com/photos/colorblindpicaso/3399410617/ License: http://creativecommons.org/licenses/by-nc/2.0/deed.en_gb Men, Hard at Work Author: The Rocketeer URL: http://www.flickr.com/photos/kt/98235403/ License: http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en_gb

Crediti e attribuzioni The old mainframe Author: Carrick URL: http://www.flickr.com/photos/carrick/61952845/ License: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en_gb Duke blocks Author: http://duke.kenai.com/ URL: http://duke.kenai.com/web/duke_blocks.gif License: BSD license Zine Study XIV: [language] Author: ShawnEcono URL: http://www.flickr.com/photos/shawnecono/149172094/ License: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en_gb

Crediti e attribuzioni Alfa Romeo Engine Author: File upload bot from Flickr URL: http://commons.wikimedia.org/wiki/image:alfa_romeo_engine.jpg_%28185131792%29.jpg License: http://creativecommons.org/licenses/by/2.0/ * Author: txkun URL: http://www.flickr.com/photos/txkun/3461370089/ License: http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en_gb distinzione Author: luca.sartoni URL: http://www.flickr.com/photos/lucasartoni/2923869671/in/photostream License: http://creativecommons.org/licenses/by-sa/2.0/deed.en_gb

Crediti e attribuzioni Mac user Author: ntr23 URL: http://www.flickr.com/photos/ntr23/730371240/ License: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en_gb

Backup slides

Web Oriented Architecture

Idee e tecnologie chiave

Gestione di un evento Runtime Zero/WebSphere smash HTTP request Applicazione

Gestione di un evento Runtime Zero/WebSphere smash HTTP request requestbegin Handler Applicazione

Gestione di un evento Runtime Zero/WebSphere smash HTTP request GET/PUT/POST/DELETE Handler Applicazione

Gestione di un evento Runtime Zero/WebSphere smash HTTP request requestend Handler Applicazione

Gestione di un evento Runtime Zero/WebSphere smash HTTP request HTTP response Applicazione

Cos è? Project Zero è una finestra aperta sulle tecnologie, i processi di sviluppo, il codice e gli sviluppatori di WebSphere smash, ovvero la corrispondente versione commerciale. http://www.projectzero.org/ http://www.ibm.com/software/webservers/smash/

Come? Project Zero è basato su un architettura ad eventi e adotta lo stile REST anche nel proprio modello di programmazione. Ok... ma in pratica?!? Vediamo qualche esempio...

Linguaggi supportati Toolkit DHTML scritto in JavaScript Supporta tutti i browser più importanti Ampia libreria di widget e componenti http://dojotoolkit.org/