Designing Interopable Web Services

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Designing Interopable Web Services - Presentation Transcript

    1. Designing Interoperable Web Services Lawrence Chan Jeff Pennal OpenRoad Communications Ltd. Vancouver Java Users group http:// www.openroad.ca/vanjug /
    2. Overview
      • The promise and reality of Web Services
      • Designing flexible web services
      • Debugging web services
      • Designing for performance
      • Recommendations
      • Fabulous prizes!
      http://www.flickr.com/photos/josefstuefer/9500503/
    3. The Promise It’s just XML! Cross Platform! A standard! Network Transparent! http://www.flickr.com/photos/tookie/183503927/
    4. The Reality Hard to debug Poor Performance Poor compatibility http://www.flickr.com/photos/tom_vac/373021521/
    5. So why bother? It works.
    6. Real World Examples : Performance
    7. Court Services Online
      • Java e-commerce for searching and filing court records
      • https:// webapps.ag.gov.bc.ca/cso
      • Multiple backend content providers in different locations with different technologies
      • Technical solution: Use Web Services!
    8. Challenges
      • Dealing with large databases
      • Performance, performance, performance
      • Security
    9. Solutions
      • Benchmarked different Java SOAP providers
        • Systinet vs. Axis vs. Oracle
      • Optimized web service API calls to match screens
      • Used Layer 7 XML Firewall to inspect and secure network traffic
    10. Real World Examples : Debugging
    11. Supreme Court Scheduling System
      • .NET web application for Supreme Court, hosted in Vancouver
      • New project goal: Integrate with Java based Ministry of AG case tracking application in Victoria
      • Technical solution: Use Web Services!
    12. Challenges
      • Client was .Net 1.1 talking to Systinet Server for Java
      • Interoperability ended up being a huge problem!
      • Kept seeing NoSuchMethodError
      • How to debug?
    13. Debugging SOAP
      • Recommendation: use proxy-based SOAP debugger
      • Microsoft Soap Toolkit 3.0
      • Proxy debuggers sit between SOAP client and server, and display traffic
      • How .NET encoded the method parameters
      • <soap:Body>
      • <p1 xmlns=&quot;http://systinet.com/xsd/SchemaTypes/&quot;>772</p1>
      • <p0_10 xmlns=&quot;http://systinet.com/xsd/SchemaTypes/&quot;>16882</p0_10>
      • </soap:Body>
      • versus
      • How Systinet encoded the method parameters
      • <e:Body>
      • <n0:p0_10 xmlns:n0= http://systinet.com/xsd/SchemaTypes/ i:type=&quot;d:decimal&quot; >772</n0:p0_10>
      • <n1:p1 xmlns:n1= http://systinet.com/xsd/SchemaTypes/
      • i:type=&quot;d:decimal&quot; >16882</n1:p1>
      • </e:Body>
      .NET vs Systinet
    14. Real World Examples: Flexibility
    15. Hip Digital
      • B2B provider specializing in digital music downloads of over 1 million tracks from the 4 majors
      • Clients include Pepsi, Nissan and Country Music Television
      • Needed both a web front end and an API
      • Technical Solution: Use Web Services!
    16. Hip Digital Challenges
      • API must integrate seamlessly into any platform
      • Must keep track downloads secure
      • Need to keep Hip Digital hidden from end users
      • Need to integrate with varied payment models
    17. Hip Digital Solutions
      • Kept API to simple data types - strings and ints
      • Used one-time passwords that could be revoked at any time to authorize every download
      • Authorization, redemption and error handling handled via web services
      • Only direct connection to HD for actual track download and DRM authorization
    18. Summary
      • Not all implementations are equal
      • Network trace tools are useful for debug
      • Minimize the data being sent
      • Design your Web Services with reuse in mind
      • Keep your interfaces simple
      http://www.flickr.com/photos/jerryjohn/63351338
    19. Interop Gotchas: Arrays
      • Problem: Arrays can be bad
      • Solution: Keep them simple
    20. Interop Gotchas: Naming
      • Problem: Code compiles but there are runtime errors
      • Solution: Make class names unique, don’t rely on the namespace
    21. Interop Gotchas: Datatypes
      • Problem: Datatype conversion
      • Solution: Keep it simple
    22. Java vs .NET type comparison System.DateTime DateTime DateTime Calendar System.Double Double double double System.Single Single float float System.Int64 Long long long System.Int32 Integer int int System.Int16 Decimal short short System.SByte -N/A- sbyte byte System.Boolean Boolean bool boolean System.String String string String .NET Framework Type VB.NET C#.NET Java
    23. Interop Gotchas: OO
      • Problem: Object Oriented features do not translate well across platforms.
      • Solution: Denormalize your objects, stick to simple types
    24. Pop Quiz! This technology originally developed by Dave Winer, is considered to be the precursor to SOAP. What is XML-RPC?
    25. Pop Quiz! This technology provides a platform-independent , XML-based registry for businesses worldwide to list themselves on the Internet. What is Universal Description, Discovery, and Integration (UDDI)?
    26. Pop Quiz! These are the two encoding mechanisms for SOAP attachments. What are MIME and DIME?
    27. Any Questions?
      • Jeff Pennal
      • [email_address]
      • Lawrence Chan
      • [email_address]
      • VanJug www.openroad.ca/vanjug
      http://www.flickr.com/photos/feaverish/19544565

    + dgibbonsdgibbons, 3 years ago

    custom

    3076 views, 1 favs, 1 embeds more stats

    This presentation outlines best practices for desig more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3076
      • 3051 on SlideShare
      • 25 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 0
    Most viewed embeds
    • 25 views on http://www.openroad.ca

    more

    All embeds
    • 25 views on http://www.openroad.ca

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories