Liferay e Axis2 (Overview)



Documenti analoghi
Introduzione ai Web Services Alberto Polzonetti

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

Firewall applicativo per la protezione di portali intranet/extranet

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

Presentazione di Cedac Software

Lezione 1 Introduzione

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

Java Web Services. Uso di Eclipse e Apache Axis

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

Application Server per sviluppare applicazioni Java Enterprise

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security con token SAML

IBM Software Demos The Front-End to SOA

Portale regionale della Salute. Servizi di prenotazione prestazione e pagamento ticket.

Protocollo di metadata harvesting OAI-PMH Lavoro pratico 2

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

Web Service Architecture

B.P.S. Business Process Server ALLEGATO C10

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Protocolli applicativi: FTP

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

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

CONTENT MANAGEMENT SYSTEM

REGOLE PROCEDURALI DI CARATTERE TECNICO OPERATIVO PER L ACCESSO AI SERVIZI DISPONIBILI TRAMITE LA POSTA ELETTRONICA CERTIFICATA

Rapporto tecnico sulle tipologie di agenti software definiti e implementati nell ambito del progetto

Seminario di Sistemi Distribuiti RPC su SOAP

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

REALIZZAZIONE LAN

Titolo Perché scegliere Alfresco. Titolo1 ECM Alfresco

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

DISPOSIZIONI DELL AUTORITA PER L ENERGIA ELETTRICA E IL GAS IN TEMA DI STANDARD DI COMUNICAZIONE

Introduzione all elaborazione di database nel Web

Concetti base. Impianti Informatici. Web application

Indice. Indice Premessa e scopo del documento Ambiente operativo Architettura di sistema... 5

MONITORAGGIO UNITARIO PROGETTI 2007/2013 PROTOCOLLO DI COLLOQUI ANALISI ATTIVAZIONE SERVIZIO IGRUE IN SPCOOP. Link.it srl - Analisi Servizio IGRUE 1

Implementazione di MVC. Gabriele Pellegrinetti

Alla cortese attenzione di:

SMS API. Documentazione Tecnica YouSMS HTTP API. YouSMS Evet Limited

DOCFINDERWEB SERVICE E CLIENT

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

8.A.8 Orchestratore Locale. ESB Piano dei test

Il Web Server e il protocollo HTTP

OpenSPCoop Un Implementazione Open Source della specifica SPCoop di Cooperazione Applicativa

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente

Specifiche Tecnico-Funzionali

Caratteristiche generali

Allegato 1 CIG FF PROCEDURA DI AFFIDAMENTO PER LA FORNITURA DI UNA PIATTAFORMA PER SERVICE MASHUP AND DELIVERY CAPITOLATO TECNICO

Guida autore all'uso di Lotus Quickr

Gestione Richieste Patenti Web

Dal protocollo IP ai livelli superiori

Sistema di Gestione dei Contenuti Multimediali

Una piattaforma per la negoziazione di servizi business to business attraverso la rete Internet

Applicazione: Servizio periferico per l'invio telematico delle domande di nulla osta al lavoro

PIANO DI LAVORO ANNUALE DELLA DISCIPLINA Tecnologie e Progettazione di Sistemi Classi QUINTE A.S

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

ESEMPI INTEGRAZIONE PRODOTTI

CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo) Approfondimenti Tecnici. Francesco Zanitti Tecnoteca S.r.

SWIM v2 Design Document

Seminario di Sistemi Distribuiti: RPC su SOAP

Le presenti note vengono rilasciate per presentare le principali novità della release 2010 Sp1 di Contact Pro.

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

Gestione Forniture Telematiche

Reti di Telecomunicazione Lezione 6

Si applica a: Windows Server 2008

PROGETTO WEB SERVICES DOGANE SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE REALE

lem logic enterprise manager

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

Licenza per sito Manuale dell amministratore

Client - Server. Client Web: il BROWSER

Architetture Informatiche. Dal Mainframe al Personal Computer

Software Servizi Web UOGA

La Fatturazione Elettronica

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Prodotto <ADAM DASHBOARD> Release <1.0> Gennaio 2015

Protocolli e architetture per WIS

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

Release Notes di OpenSPCoop2. Release Notes di OpenSPCoop2

Introduzione ad Architetture Orientate ai Servizi e Web Service

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Allegato 3 Sistema per l interscambio dei dati (SID)

Omeka PURL Plugin. Torino, 30 settembre Emilio Remogna

Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.

Il Registro dei Servizi di OpenSPCoop i. Il Registro dei Servizi di OpenSPCoop

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

Web Application Libro Firme Autorizzate

Reti di Telecomunicazione Lezione 8

Ministero del Lavoro e delle Politiche Sociali

MagiCum S.r.l. Progetto Inno-School

Introduzione alle applicazioni di rete

Corso Joomla per ATAB

Architetture Informatiche. Dal Mainframe al Personal Computer

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

MetaMAG METAMAG 1 IL PRODOTTO

CMDBuild Significato di una soluzione open source per la gestione del CMDB

19. LA PROGRAMMAZIONE LATO SERVER

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

WEB SERVICES SERVIZI PER RICEZIONE ED ELABORAZIONE MESSAGGI AMBIENTE PROVA

Transcript:

Liferay e Axis2 (Overview) Ingegneria del software (II parte) Andrea Bei

Contenuti Liferay Web Service e Axis2

LifeRay E un Portal Server Liferay permette di creare un portale velocemente e pemette di integrare diverse applicazioni, utilizzando lo standard JSR168 delle portlet, caratteristica dei più famosi Portal Server commerciali La portlet è un componente web basato sulla tecnologia Java, gestito da un portlet container che processa richieste da parte dell'utente e genera contenuti dinamici. Diverse portlet concorrono a creare una singola pagina del portale, la stessa portlet può essere utilizzata in più pagine E Open Source Liferay è reso disponibile sotto la licenza MIT, che è essenzialmente la stessa di Apache e BSD. A differenza delle licenze GPL e LGPL, la licenze MIT/Apache/BSD sono più business friendly e non contengono license fee e clausole reciproche. E indipendente dagli AS, dal DB, dal Sistema Operativo

LifeRay Ha un sistema di gestione dei contenuti (CMS) Le funzionalità di gestione dei contenuti offerte da LifeRay si basano su un interfaccia a toolbar simile a quella offerte dai più diffusi strumenti di office automation (word, excel, Ha un ampio insieme di portlet predefinite: Address Book, News,Search, Currency Converter, Password Generator, Polls, Tasks, Analog Clock, Directory, Blogs, Document Library, Unit Converter, Bookmarks, WSRP Proxy, Breadcrumb, RSS, Weather, Calculator, Recent Documents Calendar, Image Gallery, Reports, Wiki, Chat

Portali Internet / Intranet / Extranet Contenuti (immagini, documenti, testo) Servizi applicativi (acquisto online, registrazione presenze, ) Servizi di community (Forum, Chat, Social network, Wiki) Approccio realizzativo Gestione dei contenuti informativi (Portlet Liferay di Content Management) Servizi applicativi sono realizzati attraverso portlet. Ogni portlet può essere considerata una mini-web application sviluppata con i pattern e framework noti Servizi di community (Portlet Liferay) Contenuti (Liferay CMS) Portale WEB Servizi (Spring, JSP,..)

Portal Server Liferay Liferay permette la completa gestione del portale consentendo la creazione e la modifica della sua struttura mediante una struttura ad albero di pagine. L utente può aggiungere pagine figlie e riorganizzare l ordine definito. E possibile scegliere tra tre differenti tipi: Portlet: pagina standard che può gestire diverse portlet. Embedded: selezionando questa pagina verrà incluso il contentuo della url definita all interno del portale URL: selezionando questa pagina l utente sarà rediretto verso la nuova url

Portal Server Liferay Liferay fornisce le funzionalità base di CMS attraverso un set di portlet che consentono mediante un meccanismo di templating una chiara separazione tra contenuto e presentazione, un sistema di versioning e un workflow di approvazione

Portal Server Liferay Ogni pagina pubblicata sul portale, attraverso l utilizzo della portlet Journal, è composta da un articolo che si basa su un template costruito su una struttura ben definita

Portal Server Liferay Le Strutture(XML) definiscono i tipi ed il numero delle porzioni di contenuto (es. testo libero, area di testo, immagini, lista di selezione, menù a tendina, etc.). Una struttura descrive tutti gli articoli che hanno lo stesso numero e lo stesso tipo di item. Ad esempio tutti quegli costituiti da un titolo, una text area ed una immagine I Template(XSL,XSLT) determinano come le porzioni del contenuto saranno organizzate. I Journal Content sono l istanza del template, ottenuta popolando ogni porzione della struttura del contenuto con un particolare testo o immagine.

Web Services definizione E uno standard tecnologico nato per supportare l'interoperabilità (i.e. comunicazione) tra sistemi eterogenei (scritti in linguaggi diversi, su sistemi operativi diversi, ) Un Web Service è un servizio che offre un'interfaccia software descritta in un formato standard e automaticamente elaborabile come (WSDL) Utilizzando l interfaccia altri sistemi possono interagire con il Web Service attivando le operazioni descritte nell'interfaccia tramite appositi "messaggi" I messaggi sono, solitamente, trasportati tramite il protocollo HTTP e formattati secondo lo standard XML.

Caratteristiche Sono servizi incapsulati e modulari accessibili via HTTP (ed altri protocolli) tramite l interfaccia pubblicata. Es: quotazione attuale o andamento di un titolo di borsa verifiche su una carta di credito e processo di pagamento previsioni del tempo.. Possono essere composti per fornire un unico servizio Possono essere pubblicati in un registro (UDDI) per essere ricercabili e utilizzabili Permettono l integrazione dinamica tra sistemi informatici eterogenei

PRO Pro e Contro Permettono l'interoperabilità tra diverse applicazioni software su diverse piattaforme hardware Utilizzano standard e protocolli "open" Mediante l'uso di HTTP per il trasporto dei messaggi i Web Service non necessitano, normalmente, che vengano effettuate modifiche alle regole di sicurezza utilizzate come filtro sui firewall Possono essere facilmente utilizzati per formare servizi "integrati" e complessi. Consentono il riutilizzo di infrastrutture ed applicazioni già sviluppate e sono (relativamente) indipendenti da eventuali modifiche delle stesse CONTRO Attualmente non esistono standard consolidati per applicazioni critiche quali, ad esempio, le transazioni distribuite Le performance legate all'utilizzo dei Web Service possono essere minori di quelle riscontrabili utilizzando approcci alternativi di distributed computing quali Java RMI, CORBA, o DCOM

Stack protocollare Trasporto del servizio: responsabile per il trasporto dei messaggi tra le applicazioni in rete, include protocolli quali HTTP, SMTP, FTP, XMPP ed il recente Blocks Extensible Exchange Protocol (BEEP) XML Messaging: tutti i dati scambiati sono in linguaggio XML. Il messaggio può essere codificato conformemente allo standard SOAP, come anche utilizzare JAX-RPC, XML-RPC o REST Descrizione del servizio: l'interfaccia pubblica di un Web Service viene descritta tramite WSDL (Web Services Description Language) un linguaggio basato su XML usato per la creazione di "documenti" descrittivi delle modalità di interfacciamento ed utilizzo del Web Service. Elencazione dei servizi: la centralizzazione della descrizione e della localizzazione dei Web Service in un "registro" comune permette la ricerca ed il reperimento in maniera veloce dei Web Service disponibili in rete; a tale scopo viene attualmente utilizzato il protocollo UDDI

Caratteristiche sono la tecnologia fondamentale per l integrazione tra sistemi (EAI)

Caratteristiche la cooperazione applicativa (porta di dominio) Sistema informativo dominio 1pa1 pa2 dominio 2

Caratteristiche e le architetture SOA

Il modello dei Web Services

Il modello dei Web Services SOAP

Il modello dei Web Services

Representational state transfer (REST) REST è l acronimo di Representational Transfer State, ed è un paradigma per la realizzazione di applicazioni Web che permette la manipolazione delle risorse per mezzo dei metodi GET, POST, PUT e DELETE del protocollo HTTP. I termini "representational state transfer" e "REST" furono introdotti nel 2000 nella tesi di dottorato di Roy Fielding, uno dei principali autori delle specifiche dell' Hypertext Transfer Protocol (HTTP) Un Web service REST offre le proprie funzionalità come un insieme di risorse indirizzabili tramite URI (risorse web) usando la sintassi e la semantica del protocollo HTTP (GET, POST, PUT, e DELETE) Il termine è spesso usato per descrivere ogni semplice interfaccia che trasmette dati su HTTP senza un livello opzionale come SOAP o la gestione della sessione tramite i cookies Analogia con le operazioni CRUD (CREATE, READ, UPDATE, DELETE) - > (POST,GET,PUT,DELETE)

Representational state transfer (REST) http://www.boeing.com/aircraft/747 Viene restituita una rappresentazione della risorsa (es: Boeing747.html). Il client assume uno stato Se il client segue un link di Boeing747.html viene restituita un altra rappresentazione portando il client in un nuovo stato L applicazione client cambia (transfer) stato per ogni rappresentazione delle risorse (Representational state transfer)

Representational state transfer (REST) Esempio: Part Depot (Deposito di pezzi di ricambio) 1. get a list of parts 2. get detailed information about a particular part 3. submit a Purchase Order (PO) get a list of parts http://www.parts-depot.com/parts <?xml version="1.0"?> <p:parts xmlns:p="http://www.parts-depot.com" xmlns:xlink="http://www.w3.org/1999/xlink"> <Part id="00345" xlink:href="http://www.parts-depot.com/parts/00345"/> <Part id="00346" xlink:href="http://www.parts-depot.com/parts/00346"/> <Part id="00347" xlink:href="http://www.parts-depot.com/parts/00347"/> <Part id="00348" xlink:href="http://www.parts-depot.com/parts/00348"/> </p:parts> Building Web Services the REST Way (http://www.xfront.com/rest-web-services.html) Il client passa da uno stato all altro esaminando il risultato e scegliendo uno delle possibili URL nella risposta

Representational state transfer (REST) get part detail http://www.parts-depot.com/parts/00345 <?xml version="1.0"?> <p:part xmlns:p="http://www.parts-depot.com" xmlns:xlink="http://www.w3.org/1999/xlink"> <Part-ID>00345</Part-ID> <Name>Widget-A</Name> <Description>This part is used within the frap assembly</description> <Specification xlink:href="http://www.parts-depot.com/parts/00345/specification"/> <UnitCost currency="usd">0.10</unitcost> <Quantity>10</Quantity> </p:part>

Representational state transfer (REST) PO Il client crea il documento PO.xml conforme allo schema che Parts Depot ha pubblicato nel file WSDL Il client invia PO.xml con una HTTP POST XML con esito dell ordine

Axis 2 Axis2 è un framework open source sviluppato dall'apache Software Foundation, che fornisce uno strumento mediante il quale è possibile pubblicare o interrogare un Web service. E nato con l obiettivo di estendere la piattaforma Axis con nuovi protocolli come: WS-Security, WS-Addressing, WS- ReliableMessaging. Supporta implementazioni Java e C lato client e lato server dei Web Service Le principali caratteristiche sono:

Axis 2 Le principali caratteristiche sono: Inviare, ricevere ed elaborare messaggi SOAP Creare web service da una semplice classe Java Creare classi sia per il Server che per il Client utilizzando WSDL Recuperare facilmente il WSDL di un servizio; Inviare e ricevere messaggi SOAP con allegati; Creare o utilizzare un servizio Web basato sul nuovo paradigma REST

Axis 2: approccio per la generazione automatica di ws Top-down 1. creazione del file WSDL che descrive il Web Service 2. generazione automatica di skeleton Java e file per il deployment del Web Service a partire dal file WSDL Bottom-up 1. creazione di una classe o interfaccia Java che contiene i metodi che il Web Service dovrà esporre 2. generazione automatica del WSDL a partire dalla classe 3. generazione automatica di skeleton Java e file per il deployment del Web Service a partire dal file WSDL

Axis 2: esempio A partire dalla classe Java Traces contenente il metodo public boolean addtrace(string d,string c,string lat,string lon,string date); axis2 può generare automaticamente il web service Classe Metodo http://<indirizzo IP Server>/axis2/services/Traces/addTrace?d=<IMEI device>&c=<team State >&lat=<latitudine>&lon=<longitudine>&date=<data e ora> Tratto da Tesi di Andrea Frusone

Axis 2 Plugin dedicati ai Web Service per i Eclipse e Netbeans: Eclipse Web Tools Platform (WTP) Netbeans Enterprise Pack Semplificano l'approccio top-down 1. Permettono di definire il Web Service mediante interfaccia grafica 2. generando il documento WSDL corrispondente

Axis 2 Scaricare http://ws.apache.org/axis2/ Effettuare il deploy in un servlet container (es: TomCat) Usare l interfaccia web di amministrazione Installare il plugin Axis2 in Eclipse Seguire il tutorial http://www.eclipse.org/webtools/community/tutorials/bottomupaxis2 WebService/bu_tutorial.html Seguire il tutorial http://ws.apache.org/axis2/1_1/rest-ws.html

Axis 2 Axis2 Apache Software Foundation, Axis2 Documentation, http://ws.apache.org/axis2/1_4_1/contents.html Axis2 con Eclipse Web Tools Platform Eclipse Foundation, Web Service Tutorials for WTP 1.5, http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/index.html Ka Iok Kent Tong, Developing Web Services with Apache Axis2, TipTec Development, 2005-2008

Comunicazione per applicazioni Mobile LocalDB GPRS/UMTS REST Internet Web Service Web Service Web Service Web Application Service DAO Application Server DBMS