Hessian Binärt Web Service-protokoll Mattias Jiderhamn
Vad är Hessian? <ul><li>Binärt Web Service-protkoll </li></ul><ul><li>’ Säckväv’ </li></ul><ul><li>Två delar av specen </l...
Implementationer <ul><li>Java </li></ul><ul><ul><li>Applets </li></ul></ul><ul><ul><li>J2ME </li></ul></ul><ul><ul><li>Jav...
Serialisering <ul><li>Dynamiskt typat; självbeskrivande </li></ul><ul><li>Kan serialisera grafer av objekt </li></ul><ul><...
Serialisering <ul><li>Användningsområden </li></ul><ul><ul><li>Web Services; RPC, RESTful </li></ul></ul><ul><ul><li>Persi...
Serialisering
Protokoll <ul><li>RPC (Remote Procedure Call) - synkront </li></ul><ul><li>Message - asynkront </li></ul><ul><li>Streaming...
RPC-exempel
Jämförelse / Exempel <ul><li>Binärdata </li></ul><ul><ul><li>byte[ ] </li></ul></ul><ul><ul><li>Callback URL </li></ul></u...
Demo! <ul><li>public void upload(String name, </li></ul><ul><li>InputStream in) </li></ul><ul><li>public InputStream downl...
Spring-integration <ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul><ul><li><beans ... >  </li...
Varför Hessian? <ul><li>Enkelhet </li></ul><ul><ul><li>Låg tröskel, ingen akronym-djungel </li></ul></ul><ul><ul><li>Sprin...
Status <ul><li>Version 1 låst </li></ul><ul><ul><li>Subset av version 2 </li></ul></ul><ul><li>Version 2; draft till IETF ...
Mer info <ul><li>http://hessian.caucho.com </li></ul><ul><ul><li>Implementationer </li></ul></ul><ul><ul><li>Mailing-lista...
Upcoming SlideShare
Loading in …5
×

Hessian - binärt Web Service-protokoll

846
-1

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
846
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Fontalternativ: Tw Cen Cond Extra Bold, Franklin Gothic Heavy
  • RESTful payload ESB transport protocol – skall inte ge mig in på det!
  • Snott från spec
  • Java: basic authentication – inga cookies i standard (4.0.3 vs 4.0.7)
  • Ingen expert!!! Första WS: Apache SOAP -&gt; Axis 2002 Implementation  WSDD  WSDL  Stub Hängt med dåligt, fortsatt med Axis uppgraderat v 1. Nyligen CXF (Xfire) 12 JAR = 9,5 MB: Skämt? Annoteringar 2007, projekt. Oklar driftssituation: Non-intrusive Liten overhead (såklart) Mycket förändringar Stor andel binärdata RMI (ej övervägt?): Binärdata byte[] (minne) Callback URL (tx) MIME attachment
  • Ex: FOP-genererad PDF
  • Under 400 k JAR
  • Använd version 1 om du inte har kontroll över klienterna Oklart om submittad till Internet Engineering Task Force
  • Hessian - binärt Web Service-protokoll

    1. 1. Hessian Binärt Web Service-protokoll Mattias Jiderhamn
    2. 2. Vad är Hessian? <ul><li>Binärt Web Service-protkoll </li></ul><ul><li>’ Säckväv’ </li></ul><ul><li>Två delar av specen </li></ul><ul><ul><li>Serialisering </li></ul></ul><ul><ul><li>Protokoll (remoting) </li></ul></ul>
    3. 3. Implementationer <ul><li>Java </li></ul><ul><ul><li>Applets </li></ul></ul><ul><ul><li>J2ME </li></ul></ul><ul><ul><li>JavaFX </li></ul></ul><ul><ul><li>Android </li></ul></ul><ul><li>C++ </li></ul><ul><li>C# / .NET </li></ul><ul><li>Objective C / iPhone </li></ul><ul><li>Python </li></ul><ul><li>Flash / Flex </li></ul><ul><li>PHP </li></ul><ul><li>Ruby </li></ul><ul><li>… </li></ul>
    4. 4. Serialisering <ul><li>Dynamiskt typat; självbeskrivande </li></ul><ul><li>Kan serialisera grafer av objekt </li></ul><ul><li>Optimerat på bit-nivå (ver 2) </li></ul><ul><ul><li>Integer -16 till 47 tar 1 byte (0x80 – 0xBF) </li></ul></ul><ul><ul><li>Integer -2048 till 2047 tar 2 byte </li></ul></ul><ul><ul><li>Integer -262144 till 262143 tar 3 byte </li></ul></ul><ul><ul><li>Komplett 32-bitars integer tar 5 byte </li></ul></ul><ul><li>Stöd för binär data </li></ul>
    5. 5. Serialisering <ul><li>Användningsområden </li></ul><ul><ul><li>Web Services; RPC, RESTful </li></ul></ul><ul><ul><li>Persistera data, t.ex. sessioner </li></ul></ul><ul><ul><li>Streaming / server push </li></ul></ul><ul><ul><li>Enterprise Service Bus (ESB) – Mule </li></ul></ul><ul><li>Java-implementation bygger på reflection </li></ul><ul><ul><li>Hibernate-proxies </li></ul></ul><ul><ul><li>Kan anpassas </li></ul></ul>
    6. 6. Serialisering
    7. 7. Protokoll <ul><li>RPC (Remote Procedure Call) - synkront </li></ul><ul><li>Message - asynkront </li></ul><ul><li>Streaming (server push) </li></ul><ul><li>Kuvert </li></ul><ul><ul><li>Kryptering </li></ul></ul><ul><ul><li>Signering </li></ul></ul><ul><ul><li>Kompression </li></ul></ul><ul><li>Basic authentication </li></ul><ul><li>Inga sessioner </li></ul>
    8. 8. RPC-exempel
    9. 9. Jämförelse / Exempel <ul><li>Binärdata </li></ul><ul><ul><li>byte[ ] </li></ul></ul><ul><ul><li>Callback URL </li></ul></ul><ul><ul><li>MIME attachment </li></ul></ul>
    10. 10. Demo! <ul><li>public void upload(String name, </li></ul><ul><li>InputStream in) </li></ul><ul><li>public InputStream download(String name) </li></ul>
    11. 11. Spring-integration <ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul><ul><li><beans ... > </li></ul><ul><li><!-- Allow configuration via AspectJ --> </li></ul><ul><li><aop:spring-configured /> </li></ul><ul><li><context:annotation-config/> </li></ul><ul><li><bean name=&quot;calculator&quot; class=&quot; org.springframework.remoting.caucho.HessianProxyFactoryBean &quot;> </li></ul><ul><li><property name=&quot; serviceUrl &quot; value=&quot;http://localhost:8080/calc&quot;/> </li></ul><ul><li><property name=&quot; serviceInterface &quot; value=&quot;hessiandemo.Calculator&quot;/> </li></ul><ul><li><property name=&quot;sendCollectionType&quot; value=&quot;false&quot;/> </li></ul><ul><li><property name=&quot;readTimeout&quot; value=&quot;30000&quot;/> </li></ul><ul><li></bean> </li></ul><ul><li></beans> </li></ul>
    12. 12. Varför Hessian? <ul><li>Enkelhet </li></ul><ul><ul><li>Låg tröskel, ingen akronym-djungel </li></ul></ul><ul><ul><li>Spring gör det praktiskt taget transparent </li></ul></ul><ul><li>Prestanda och bandbredd </li></ul><ul><ul><li>Litet fotavtryck </li></ul></ul><ul><ul><li>Mobila applikationer </li></ul></ul><ul><li>RPC med binärdata </li></ul>JAX-WS, SAAJ, JAX-RS, SOAP, WS-I, JAXB, WS-Security, WS-Addressing, WS-RM, WS-Policy, WSDL, UDDI, XML, MTOM
    13. 13. Status <ul><li>Version 1 låst </li></ul><ul><ul><li>Subset av version 2 </li></ul></ul><ul><li>Version 2; draft till IETF </li></ul><ul><li>Kompatibilitet </li></ul>
    14. 14. Mer info <ul><li>http://hessian.caucho.com </li></ul><ul><ul><li>Implementationer </li></ul></ul><ul><ul><li>Mailing-lista </li></ul></ul><ul><ul><li>Wiki </li></ul></ul><ul><li>[email_address] </li></ul><ul><li>Frågor? </li></ul>

    ×