Framework. Impianti Informatici. Web application - tecnologie



Documenti analoghi
Introduzione ai Web Services Alberto Polzonetti

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

Implementazione di MVC. Gabriele Pellegrinetti

Progettazione: Tecnologie e ambienti di sviluppo

Integration Software S.r.l.

Presentazione di Cedac Software

Concetti base. Impianti Informatici. Web application

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte

Framework di Middleware. per Architetture Enterprise

Protocolli e architetture per WIS

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Informatica. Prof. A. Longheu. Introduzione a Java

Programmazione ad Oggetti. Java Parte I

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

Programmazione server-side: Java Servlet

Componenti Web: client-side e server-side

Applicazione: GAS - Gestione AcceSsi

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

CORSO DI PROGRAMMAZIONE JAVA

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

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

L architettura MVC (Model- View-Controller) Introduzione

Architetture Web: un ripasso

MODEL-VIEW-CONTROLLER PROBLEMA

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

SWIM v2 Design Document

Corso Android Corso Online Sviluppo su Cellulari con Android

Interoperabilità e cooperazione applicativa tra sistemi informativi

B.P.S. Business Process Server ALLEGATO C10

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA

Progetto di Applicazioni Software

Tecnologie di implementazione. Corso di ingegneria del software

Progetto di Applicazioni Software

Ministero del Lavoro e delle Politiche Sociali

Introduzione ad Architetture Orientate ai Servizi e Web Service

Laboratorio di Basi di Dati

Distributed Object Computing

Web Service Architecture

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser.

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

Introduzione alle applicazioni di rete

automation using workflow technology and web services Vassilacopoulos Med. Inform. (September 2003) vol. 28, no. 3,

POR Calabria FSE 2007/2013 Asse II Occupabilità Obiettivo operativo D1

Programmazione Client-Server

REGIONE BASILICATA UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi

INDICE. Indice. Introduzione

Tecnologie di Sviluppo per il Web

Web services. 25/01/10 Web services

Architetture software

RRF Reply Reporting Framework

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

WEBsfa: l automazione della forza vendita via Web

L evoluzione delle Applicazioni Distribuite

Punti fondamentali sulla tecnologia del sistema ABScard

Tipi fondamentali di documenti web

Seminario di Sistemi Distribuiti RPC su SOAP

Architetture Software

Architetture per le applicazioni web-based. Mario Cannataro

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Architettura Tecnica i. Architettura Tecnica

sito web sito Internet

DOCFINDERWEB SERVICE E CLIENT

Come funziona internet

Lezione di Basi di Dati 1 18/11/ TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Amministrazione Patrimonio Fondi

2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre Andrea Carnevali R&D Director GESINF S.r.l.

JNDI. Massimo Merro Programmazione di Rete 214 / 229

Sistemi informativi secondo prospettive combinate

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A

Broker. [POSA1] Pattern-Oriented Software Architecture, 1996

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

8. Sistemi Distribuiti e Middleware

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

LSF. lab solution LOG SYSTEM FRAMEWORK. Pagina 1 di 14

Architettura SW Definizione e Notazioni

OpenSPCoop Un Implementazione Open Source della specifica SPCoop di Cooperazione Applicativa

POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica TESI DI LAUREA

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

DEL SENDER GUIDA INTEGRATIVA ALL INSTALLAZIONE. Versione N.1.0. Data 11/05/2009. Sender - Guida integrativa alla installazione

MetaMAG METAMAG 1 IL PRODOTTO

Java Remote Method Invocation

Che cosa è Message Activator

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

1 Vincenzo de Stefano SAP e Servizi Web

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Intesa Spa Ottobre 2015

INFN Security Workshop Firenze Settembre IMHO e IMP: una interfaccia Web sicura per la posta elettronica. Raffaele.Cicchese@pr.infn.

Strumenti per la programmazione

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Socket & RMI Ingegneria del Software - San Pietro

Comunicazione tra Processi

Comunicazione tra Processi

Tecnologie di Sviluppo per il Web

Transcript:

Framework Web application - tecnologie

Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione Benefici della comunità di utenti Microsoft-based (.Net) Componenti proprietarie Tecnologia limitata alle piattaforme Microsoft Teoricamente accetta molteplici linguaggi di programmazione

Linguaggio: J2EE 3 Codice scritto in Java Codice Java compilato nel bytecode Un intermediario cross-platform Mix tra codice sorgente e linguaggio macchina A run-time, JRE (Java Runtime Environment) interpreta il bytecode Esegue l applicazione Source Code (Java) ByteCode JRE

Linguaggio:.NET 4 Codice scritto in uno (o più) dei linguaggi supportati VB.NET, C#, Il codice viene traslato nel (Microsoft) Intermediate Language (IL) Linguaggio cross-platform (simile al bytecode) A run-time, CLR (Common Language Runtime) interpreta il codice IL Esegue l applicazione SourceCode (VB.NET) SourceCode (C#) IL CLR

Tecnologia.Net 5

J2EE (Java 2 Platform Enterprise Edition) Suite di servizi middleware a disposizione degli sviluppatori di applicazioni (server-side) 6 Logica complessa Sistemi eterogenei Necessità informative Integrazione con S.I. esistenti Affidabilità Velocità di sviluppo Sicurezza Scalabilità

J2EE 7 Servizi disponibili Servlet/JSP EJB JDBC JMS Web Services RMI, RMI-IIOP JNDI JTA JAXP

Middleware ad oggetti 8 Comunicazione tra oggetti distribuiti Remote Procedure Call (RPC) Oggetti remoti Difficoltà nell invocazione remota: Passaggio di parametri Marshalling/Unmarshalling Streaming Modalità di passaggio By value By reference Instabilità del sistema Macchine Rete BLA BLA BLA BLA

RMI (RMI-IIOP) e CORBA 9 Remote Method Invocation Middleware nativo per il mondo JAVA RMI-IIOP (Internet-Inter-ORB-Protocol) Compatibilità con CORBA CORBA (Common Object Request Broker Architecture) IDL (Interface Definition Language)

Message Oriented Middleware (MOM) 10 Coordinano elementi della logica applicativa Messaggio: richiesta asincrona generata da un applicativo Informazioni formattate Coordinano i sistemi Messaging Agent Creazione, invio, ricezione messaggi Indirizzamento messaggi Servizi sui singoli messaggi QoS Client Agent Client

MOM: Point-To-Point vs Publish-And-Subscribe 11 Point-To-Point (PTP) Funzionamento a code Un client invia un messaggio verso una coda specifica Simile a mailbox Unica coda per tutti i messaggi Publish-And-Subscribe (Pub/Sub) Topic: è un message broker I client pubblicano i messaggi I client si sottoscrivono ai messaggi Simile a newsgroup

Java Messages Service (JMS) 12 Message Oriented Middleware Interfacce e semantica associata Sia PTP che Pub/Sub Applicazione JMS: JMS client Non-JMS client Messaggi JMS provider Oggetti amministrati Limitazioni: Security Load-balancing/fault tolerance Triggering client Message type repository

Servlet 13 Applicazioni lato server basate su Java Richiedono un particolare componente un servlet-container (o servletengine) Appartiene ad un application server Funzionalità a disposizione dell applicazione Ciclo di vita Temporanee: vengono instanziate nel momento della richiesta e distrutte al temine della richiesta Permanenti: instanziate all avvio del server e distrutte solo quando viene spento

Servlet vs CGI 14 Servlet JVM sempre attiva Un thread per ogni richiesta Singola copia del codice Servlet in esecuzione CGI Un processo per ogni richiesta Multiple istanze Difficile operazioni su persistenza dati Migliori prestazioni Platform-indipendent Librerie Java a disposizione Applet Database Rmi

Servlet: funzioni tipiche 15 Gestire oggetto di sessione Verifica autorizzazioni Prelevare i dati inviati dal browser Interazione con Database Inviare pagine al browser browser HttpServeltRequest codice della servlet doget(...) dopost(...) browser HttpServeltResponse Servlet Servlet classe generica per le servlet web server classe specifica per il protocollo http mia_servlet_ mia_servlet_ generica generica HttpServlet HttpServlet mia_servlet_http mia_servlet_http Servlet Servlet Servlet Servlet Servlet Servlet init() destroy() Servlet chain doget() dopost()

JSP (Java Server Pages) 16 Interfaccia utente Necessitano di un servlet-container Compilate in servlet Eseguite come codice Java Stile di programmazione incentrato sul look-and-feel Servlet-container JSP Servlet JVM

JavaBean 17 Write once, run anywhere, reuse everywhere (JavaSoft) Aggiungere funzionalità senza riscrivere il codice da capo Retrocompatibilità con le versioni precedenti Riusabile in applicazioni e ambienti di sviluppo differenti Cross-platform Java-based Sistemi distribuiti

JavaBean 18 Property Comportamento, caratteristiche bean Customization Event Comunicazione con altri bean Persistence Serializable (java.io.serializable) Method Tutti i metodi pubblici sono esportati Introspezione Design pattern (reflection) BeanInfo interface

EJB (Enterprise Java Bean) 19 Un Enterprise Bean è un componente software server-side. Può essere composto di uno o più oggetti, a fronte di un unica interfaccia con cui il client può interagire. Catena di EJB Necessitano di un apposito container, e quindi di un application server EJB-compliant Ambiente per EJB Persistenza, transazioni, sicurezza, connessioni Accesso alle risorse esterne (DB,..) EJB EJB EJB EJB EJB EJB EJB chain

EJB: middleware implicito 20 EJB Container

EJB: Session Bean 21 Modellano un processo, un azione Accedere ad un DB Collegarsi ad un legacy system Chiamare altri EJB. Solitamente non persistente

EJB: Entity Bean 22 Modellano i dati Fungono da contenitore per le informazioni di un database Un prodotto Un ordine Un operaio Una carta di credito Sono usati dai session bean Gestiscono la persistenza

EJB: Message-Driven Bean 23 Modellano le azioni Comunicano tramite messaggi JMS Esecuzione del processo asincrona e separata dalla chiamata. Client Agent Client

Message-Driven Bean: caratteristiche 24 Non hanno interfaccia locale o remota Comunicano solo con messaggi Qualsiasi clienti che implementi JMS può usarli OnMessage() Analisi a run-time del messaggio Nessun valore di ritorno Nessuna eccezione verso il client Il container cattura eccezioni di sistema Stateless Conservazione dei messaggi per destinatari non pronti

MVC e Web Services Web application - tecnologie

Model 1 26 Write-once Run anywhere Java-enabled Compilate

Model 1: problematiche 27 Accoppiamento JAVA-HTML JavaScript vs Java Accoppiamento dati-pagine Difficoltà di debug Flusso logico integrato

Model-View-Controller (Model 2) 28

MVC: Model 29 Business Logic Indipendente da view e controller Viene realizzato mediante i JavaBean contengono la maggior parte della logica dell applicazione Incapsula lo stato dell applicazione Notifica i cambiamenti alle view V Notifica cambiamenti C M

MVC: View 30 Visualizza le informazioni all utente Pagina di risposta alla richiesta dell utente Corrisponde alle JSP Rendering del modello Richiede i dati aggiornati al model Invia le azioni dell utente al controller Azioni utente V Richiede dati Notifica cambiamenti C M

MVC: Controller 31 Gestisce l input dell utente Intercetta richieste HTTP Implementato con Servlet Comportamento dell applicazione Modifica il model Seleziona la view successiva Seleziona Azioni utente V Richiede dati Notifica cambiamenti C Cambiamenti M

MVC: vantaggi 32 Facilità sviluppo e gestione applicazioni Netta separazione tra business logic, presentation e request processing Unico punto di ingresso: il controller Le applicazioni sono generalmente più semplici da mantenere e più facilmente estendibili Sicurezza, validazione dell input, internazionalizzazione

Web Services 33 Servizi offerti via Web Applicazioni B2B Sono una nuova tecnologia di middleware distribuito basata su XML (Extensible Markup Language) Opportunità di integrazione tra le applicazioni business Web Services Business application RETE Business application

Web Services: opportunità 34 Web Services Business application RETE Business application Service description Registro A Registro B Registro C Service research

Web Services: stack protocollare 35

SOAP (Simple Object Access Protocol) 36 Lightweight protocol Modalità di passaggio di dati in XML Interfaccia con HTTP Indipendenti da sistema operativo protocollo di comunicazione linguaggio di programmazione

WSDL (Web Services Definition Language) 37 Interfaccia servizi Modalità e protocolli di accesso Parametri in ingresso

UDDI (Universal Description Discovery and Integration) 38 Sistema di directory distribuito Registri pubblici Registri privati Tipi di registri White pages Informazioni sul provider Yellow pages Tassonomia standard dei servizi e delle organizzazioni registrate Green pages Informazioni tecniche sui servizi

Web Services: data flow 39 WSDL Client WSDL compiler Server Client Stub Service Skeleton SOAP HTTP TCP/IP

Web Services: pro 40 Applicazioni disaccoppiate Protocolli standard Supporto al codice Operazioni asincrone Interfaccia con Business logic Modularità

Web Services come middleware 41