Download - WS-Interop: COM Java .NET
![Page 1: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/1.jpg)
www.ugidotnet.org workshop
WS-Interop: COM Java .NET
Pierre GreborioPEWayMicrosoft MVP – Solutions Architect
http://blogs.ugidotnet.org/pierregreborio
![Page 2: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/2.jpg)
www.ugidotnet.org workshop
Sponsor
![Page 3: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/3.jpg)
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
![Page 4: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/4.jpg)
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
![Page 5: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/5.jpg)
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 !
![Page 6: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/6.jpg)
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, ...
![Page 7: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/7.jpg)
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
![Page 8: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/8.jpg)
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 !
![Page 9: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/9.jpg)
www.ugidotnet.org workshop
Disaccoppiamento
endpoint.NET
endpointJava
Gate
way
Rem
ote
Faca
de
![Page 10: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/10.jpg)
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, …
![Page 11: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/11.jpg)
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
![Page 12: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/12.jpg)
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
![Page 13: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/13.jpg)
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 !!
![Page 14: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/14.jpg)
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 ....
![Page 15: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/15.jpg)
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
![Page 16: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/16.jpg)
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)
![Page 17: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/17.jpg)
www.ugidotnet.org workshop
Approccio: contract first
Microsoft .NET SUN Java WSDP
File XSD/
WSDLxsd.exe/
Wsdl.exe
xjc.bat
Java2WSDL
![Page 18: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/18.jpg)
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)
![Page 19: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/19.jpg)
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
![Page 20: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/20.jpg)
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
![Page 21: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/21.jpg)
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
![Page 22: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/22.jpg)
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
![Page 23: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/23.jpg)
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
![Page 24: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/24.jpg)
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
![Page 25: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/25.jpg)
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;
}
}
![Page 26: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/26.jpg)
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)
![Page 27: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/27.jpg)
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
![Page 28: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/28.jpg)
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
![Page 29: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/29.jpg)
![Page 30: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/30.jpg)
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
![Page 31: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/31.jpg)
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)
![Page 32: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/32.jpg)
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
![Page 33: WS-Interop: COM Java .NET](https://reader036.vdocuments.mx/reader036/viewer/2022062309/5681505d550346895dbe5db8/html5/thumbnails/33.jpg)
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.