Come mando attachments binary nei Web Services?

Share on:

Iniziamo con qualcosa che mi viene chiesto spesso...

Esistono varie soluzioni:

  1. base64 - codifico tutto in base64 e lo mando in un campo stringa o byte normale
  2. DIME - utilizzo WSE1.0, WSE2.0 o SOAP Toolkit 3.0 che supportano DIME e faccio fare tutto a loro
  3. MTOM - al momento è in fase di approvazione da parte del W3C (è una Candidate Recommendation) e non è supportato da nessun toolkit

Tutte hanno pro:

  • con base64 la definizione del servizio è indipendente dal contenuto
  • con DIME e i toolkit fanno tutto loro, basta usare la collezione degli attachments...
  • MTOM sarà il futuro, verrà implementato in WSE3.0 e in Indigo

e anche dei contro:

  • base64 non definisce chiaramente cos'è attachments e cos'è messaggio
  • DIME è destinato a morire, anche se WSE3.0 e WSE2.0 potranno essere usati side-by-side
  • MTOM al momento è in evoluzione e nessun toolkit lo supporta ufficialmente

Per quanto riguarda la sicurezza, base64 e MTOM possono utilizzare WS-Security, con DIME dobbiamo fare tutto noi...

Io alla fine se devo fare qualcosa di quick&dirty tutto in.NET uso WSE2.0 e DIME, poi ci penserò.

Se la soluzione è a più ampio respiro, per ora uso base64, poi passerò a MTOM quando sarà una Recommendation del W3C, e soprattutto quando i toolkit permetteranno di usarlo senza mal di testa... 😊

Post originale