Date post: | 01-May-2015 |
Category: |
Documents |
Upload: | berengar-salvi |
View: | 214 times |
Download: | 0 times |
www.ugidotnet.org workshop
WS-Interop: COM Java .NET
Pierre GreborioPEWayMicrosoft MVP – Solutions Architect
http://blogs.ugidotnet.org/pierregreborio
www.ugidotnet.org workshop
Sponsor
www.ugidotnet.org workshop
Perchè si parla di interoperabilità ?
Perchè nessuna applicazione è un’isola Perchè chi fa la contabilità non fa anche il
CRM, ... Perchè dobbiamo migrare la
piattaforma/soluzione e non possiamo farlo in poco tempo
Perchè lo chiede il cliente e quindi il capo
www.ugidotnet.org workshop
Java vs .NET vs COM
Microsoft afferma che .NET è meglio di Java
SUN e IBM affermano che Java è meglio di .NET
Le applicazioni small business usano molto COM e .NET
Le applicazioni enterprise usano molto COBOL e Java
www.ugidotnet.org workshop
Java vs .NET vs COM
Gartner afferma che fra 10 anni l’enterprise userà sia Java che .NET (50%-50%)
COM e COBOL sono due specie in via di estinzione...anche per chi usa MS Office
Risultato:Impariamo a far dialogare Java con .NET !
www.ugidotnet.org workshop
Vari livelli di interoperabilità
Presentation interoperability: condivisione dello stato della sessione
Business interoperability: EJB chiama COM+ e viceversa, COM+ chiama .NET,...
Resource interoperability: Database, message brokers, ...
www.ugidotnet.org workshop
Principi base
Problemi base di ogni tecnologia usata per l’interoperabilità: Intesa sui tipi (dimensione, big-endian, little-
endian, ...) Intesa sulla semantica di invocazione (per
valore, per referenza) Protocolli di sicurezza Gestione dello stato Modelli di transazione, sincronizzazione e
threading
www.ugidotnet.org workshop
Principi base
Più sono fortemente dipendenti i principi ... maggiori sono le difficoltà di interoperare
Suggerimento:
Tenere i sistemi il più possibile disaccoppiati !
www.ugidotnet.org workshop
Disaccoppiamento
endpoint.NET
endpointJava
Gate
way
Rem
ote
Faca
de
www.ugidotnet.org workshop
Tre modi per interoperare
Resource based: Database : tutti conoscono SQL File system : XML, serializzazione Java/J# Message brokers : Biztalk, MQSeries, ...
Out-of-process Protocolli base: HTTP, SMTP/POP3, socket RPC binario: CORBA, COM Interop, ... Web Services
In-process JVM-CLR: http://www.ikvm.net/,
http://weblogs.asp.net/dgonzalez/archive/2003/09/23/28869.aspx, …
www.ugidotnet.org workshop
Out-of-process
Web Services Un modo per far comunicare due endpoint a
prescindere dalla tecnologia usata per l’implementazione
Basata su standard approvati universalmente quali XML, SOAP, WSDL, UDDI, WSsec, ...
Non privo di problemi di interoperabilità Spesso richiede scelte tecnologiche
importanti
www.ugidotnet.org workshop
SOAP StackTecnologie Java
ApacheSOAP
ApacheAxis 1.x
OracleJAX-RPC
SUNJAX-RPC
IBMJAX-RPC
BEAJAX-RPC
Tecnologie Microsoft
SOAPToolkit x
.NET Framework 1.x
WCF.NET
Framework 2.0W
SE 2
WSE 3
www.ugidotnet.org workshop
Scenario tipo
Sviluppatore java implementa una soluzione
Crea un web service Java
Referenzia il progetto .NET al WSDL
Crea il client .NET ERRORE !!
Sviluppatore .NET implementa una soluzione
Crea un web service .NET
Referenzia il progetto Java al WSDL
Crea il client Java ERRORE !!
www.ugidotnet.org workshop
Problemi riscontrati
Il message format è incompatibile I numeri in virgola mobile hanno una
precisione defferente .NET non supporta le date nulle Manca il supporto al DataSet in Java Manca il supporto dei WebRowSets in .NET Gli algoritmi di sicurezza sono incompatibili ....
www.ugidotnet.org workshop
WS-Interoperability
WS-I è un’organizzazione con circa 130 membri (Microsoft, SUN, Oracle, SAP, IBM, BEA, webMethods, HP, ...)
WS-I cerca di definire uno standard per garantire l’interoperabilità
Definisce delle raccomandazioni anche sullo sviluppo e l’ambiente di sviluppo
www.ugidotnet.org workshop
Raccomandazioni principali
Tenere sempre aggiornate le librerie “compatibili”
Pensare alle eccezzioni : SOAP fault Usare strumenti di debugging, tracing e
monitoring Usare il framework per controllare le policy
ed il metadata Modellare partendo dallo schema (XSD)
www.ugidotnet.org workshop
Approccio: contract first
Microsoft .NET SUN Java WSDP
File XSD/
WSDLxsd.exe/
Wsdl.exe
xjc.bat
Java2WSDL
www.ugidotnet.org workshop
E COM ?
SOAP Toolkit è di fatto dismesso ! Non bisogna dimenticare “Office Web
Services Toolkit” I toolkit non supportano bene:
Strutture dati complesse Sicurezza a livello applicativo (WS-Security)
www.ugidotnet.org workshop
Demo
Web Service Java Tomcat 5.0 Axis 1.2.1
Client .NET Visual Studio .NET 2003
Client VBScript SOAP Toolkit 3.0 Office Web Services Toolkit
www.ugidotnet.org workshop
Sicurezza - SSL
Pro Indipendente dalle librerie
Contro Gestisce solo la sicurezza punto-punto Non è possibile applicare la sicurezza ad una
sola parte del messaggio La sicurezza è rimossa dopo il layer di
trasporto Utilizzabile solo per il protocollo TCP
www.ugidotnet.org workshop
Sicurezza – WS-Security
Pro Gestisce la sicurezza a livello applicativo Funziona su qualsiasi protocollo E’ molto flessibile
Contro E’ più complessa
l’implmementazione/configurazione Nel mondo Java dipende fortemente dal
container
www.ugidotnet.org workshop
Tools
WSE Tracing tool http://www.gotdotnet.com/workspaces/workspace.aspx?id=ab938e2f-cabf-4145-
b0e9-dbeeaf51dbe5
WSCF (Web Service Contract First) http://www.thinktecture.com/Resources/Software/WSContractFirst/default.html
WS-I Testing tools http://www.ws-i.org/deliverables/workinggroup.aspx?wg=testingtools
SOAP Toolkit 3.0 http://www.microsoft.com/downloads/details.aspx?FamilyId=C943C0DD-CEEC-
4088-9753-86F052EC8450&displaylang=en
www.ugidotnet.org workshop
Software utilizzato per le demo
Visual Studio .NET 2003 http://www.microsoft.com/italy/msdn/prodotti/vstudio/default.mspx
Axis 1.2.1 http://ws.apache.org/axis/
Tomcat 5.5.12 http://jakarta.apache.org/tomcat/index.html
SOAP Toolkit 3.0 http://www.microsoft.com/downloads/details.aspx?FamilyId=C943C0DD-CEEC-
4088-9753-86F052EC8450&displaylang=en
Office Web Services Toolkit http://www.microsoft.com/downloads/details.aspx?FamilyID=fa36018a-e1cf-
48a3-9b35-169d819ecf18&DisplayLang=en
www.ugidotnet.org workshop
Riferimenti
MSDN Web Services Interoperability http://msdn.microsoft.com/webservices/webservices/building/interop/default.aspx
Java Web Services http://java.sun.com/webservices/index.jsp
Apache projects http://www.apache.org
WS-I http://www.ws-i.org
www.ugidotnet.org workshop
How-to: WS Java con Axis Immaginiamo una applicazione Java che
calcola il numero di Fibonacci Definizione dell’interfaccia
public interface Fibonacci {
public int calculateFibonacci( int num );
}
Implementazionepublic class FibonacciImpl {
public int calculateFibonacci( int num ) {
if (num <= 0) return 0;
if (num == 1) return 1;
int previous1 = 1, previous2 = 0, fib = 0;
for (int i=2; i <= num; i++) {
fib = previous1 + previous2;
previous2 = previous1;
previous1 = fib;
}
return fib;
}
}
www.ugidotnet.org workshop
How-to: generazione WSDL Creaiamo il service contract (WSDL)
java org.apache.axis.wsdl.Java2WSDL -o fib.wsdl -l"http://localhost:8080/axis/services/fibonacci" -n urn:fibonacci -p"fibonacci"
urn:fibonacci fibonacci.Fibonacci
Java2WSDL crea il WSDL partendo dalla definizione dell’interfaccia (fibonacci.Fibonacci)
www.ugidotnet.org workshop
How-to: generazione WS Creaiamo una facade (WS)
java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -p fibonacci.ws fib.wsdl
WSDL2Java crea: L’interfaccia remota del contratto (Fibonacci) L’implementazione dell’interfaccia remota
(FibonacciBindingImpl) L’interfaccia del servizio (FibonacciService) L’implementazione dell’interfaccia del servizio
(FibonacciServiceLocator)
Bisogna compilare: javac fibonacci\ws\*.java
www.ugidotnet.org workshop
How-to: deployment Creaiamo il package jar
jar cvf fib.jar fibonacci/*.class fibonacci/ws/*.class
Lo installiamo nella virtual directory: %TOMCAT_HOME%/webapps/axis/WEB-INF/lib
Deployment: java org.apache.axis.client.AdminClient deploy.wsdd
Riavviate il servizio Il servizio è pronto all’uso
Chi sono gli MVP?Chi sono gli MVP? Gli MVP sono persone che condividono Gli MVP sono persone che condividono
PASSIONE PER LA TECNOLOGIAPASSIONE PER LA TECNOLOGIA SPIRITO DI COMMUNITYSPIRITO DI COMMUNITY
Il MVP (Most Valuable Professional) Award è stato Il MVP (Most Valuable Professional) Award è stato creato per creato per premiarepremiare e e riconoscerericonoscere il valido il valido contributo di alcuni fra i migliori membri delle contributo di alcuni fra i migliori membri delle Community MicrosoftCommunity Microsoft
per la loro per la loro partecipazionepartecipazione attiva (online ed attiva (online ed offline)offline)
per la per la buona volontàbuona volontà dimostrata nel dimostrata nel condividere le loro esperienze e conoscenzecondividere le loro esperienze e conoscenze
per le loro per le loro ottimeottime conoscenzeconoscenze tecniche tecniche
per le loro per le loro risposte accurate risposte accurate e precisee precise
CommunityCommunity
I newsgroup sono raggiungibili via:I newsgroup sono raggiungibili via:- WEB (- WEB (http://http://support.microsoft.comsupport.microsoft.com/newsgroups/newsgroups))- Newsreader (- Newsreader (news.microsoft.comnews.microsoft.com o o msnews.microsoft.commsnews.microsoft.com))
Piccole regole e Netiquette:Piccole regole e Netiquette:http://www.microsoft.com/communities/conduct/default.mspxhttp://www.microsoft.com/communities/conduct/default.mspxhttp://groups.google.com/advanced_group_searchhttp://groups.google.com/advanced_group_searchhttp://www.krisopea.it/mvp/http://www.krisopea.it/mvp/Quoting.htmQuoting.htm
Siti MVP:Siti MVP:http://mvp.support.microsoft.comhttp://mvp.support.microsoft.com (sito MVP Internazionale) (sito MVP Internazionale) http://http://italy.mvps.orgitaly.mvps.org (sito MVP Unofficial) (sito MVP Unofficial)
Esempi di communityEsempi di community
Newsgroup disponibili:Newsgroup disponibili:
La gerarchia dei newsgroup Microsoft pubblici italiani:La gerarchia dei newsgroup Microsoft pubblici italiani:
microsoft.public.it.bosbs (SBS)microsoft.public.it.bosbs (SBS)
Microsoft.publiv.it.crmMicrosoft.publiv.it.crm
microsoft.public.it.dotnet.aspmicrosoft.public.it.dotnet.asp
microsoft.public.it.dotnet.csharpmicrosoft.public.it.dotnet.csharp
microsoft.public.it.dotnet.frameworkmicrosoft.public.it.dotnet.framework
microsoft.public.it.dotnet.vbmicrosoft.public.it.dotnet.vb
microsoft.public.it.dotnet.framework.webservicesmicrosoft.public.it.dotnet.framework.webservices
microsoft.public.it.dotnet.vc++microsoft.public.it.dotnet.vc++
microsoft.public.it.dotnet.vstudiomicrosoft.public.it.dotnet.vstudio
microsoft.public.it.dotnet.xmlmicrosoft.public.it.dotnet.xml
microsoft.public.it.exchangemicrosoft.public.it.exchange
microsoft.public.it.internet_explorermicrosoft.public.it.internet_explorer
microsoft.public.it.isaservermicrosoft.public.it.isaserver
microsoft.public.it.officemicrosoft.public.it.office
microsoft.public.it.office.accessmicrosoft.public.it.office.access
microsoft.public.it.office.excelmicrosoft.public.it.office.excel
microsoft.public.it.office.frontpagemicrosoft.public.it.office.frontpage
microsoft.public.it.office.outlookmicrosoft.public.it.office.outlook
microsoft.public.it.office.powerpointmicrosoft.public.it.office.powerpoint
microsoft.public.it.office.projectmicrosoft.public.it.office.project
microsoft.public.it.office.publishermicrosoft.public.it.office.publisher
microsoft.public.it.office.visiomicrosoft.public.it.office.visio
microsoft.public.it.office.wordmicrosoft.public.it.office.word
microsoft.public.it.pocketpcmicrosoft.public.it.pocketpc
microsoft.public.it.scriptingmicrosoft.public.it.scripting
microsoft.public.it.sharepoint microsoft.public.it.sharepoint
microsoft.public.it.sicurezzamicrosoft.public.it.sicurezza
microsoft.public.it.smartphonemicrosoft.public.it.smartphone
microsoft.public.it.sqlmicrosoft.public.it.sql
microsoft.public.it.vbmicrosoft.public.it.vb
microsoft.public.it.win98microsoft.public.it.win98
microsoft.public.it.windowsupdatemicrosoft.public.it.windowsupdate
microsoft.public.it.windowsxpmicrosoft.public.it.windowsxp
microsoft.public.it.winservermicrosoft.public.it.winserver
Gli MVP…Gli MVP…
Nel mondo:Nel mondo: 2800+ MVP (20 lingue e 80 tecnologie)2800+ MVP (20 lingue e 80 tecnologie) 1500+ MVP da 75 paesi differenti presenti1500+ MVP da 75 paesi differenti presenti
all’MVP Global Summit ’05.all’MVP Global Summit ’05.
In Italia:In Italia: 46 MVP ma il programma è in continua 46 MVP ma il programma è in continua
espansione.espansione.