is the web "good enough" for web services?

Upload: dmytro-shteflyuk

Post on 30-May-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    1/125

    Is The Web"Good Enough"

    forWeb services?

    Paul Downey

    15th March 2007

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    2/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    3/125

    SORRY!

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    4/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    5/125

    NO T Stev e Vinoski!

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    6/125

    resteyeFOR THE

    SOA GUY

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    7/125

    ARCHITECTUR

    Styles

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    8/125

    Style WTF

    ARCHITECTUR

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    9/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    10/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    11/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    12/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    13/125

    REST://(v)

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    14/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    15/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    16/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    17/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    18/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    19/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    20/125

    The greatest thing in

    is to have a

    command of the Style

    metaphor

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    21/125

    pwnz0red!

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    22/125

    IC T

    b lf

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    23/125

    personasdeperimiterisation

    virtualisation

    outsourcingubiquitous web

    mobile

    agileoffshoring

    presence

    identity

    federation

    open

    St d d

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    24/125

    Standards

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    25/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    26/125

    Web

    services

    Web

    services

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    27/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    28/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    29/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    30/125

    REST://

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    31/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    32/125

    K l R i k Ch

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    33/125

    Karl Rove and Dick Cheney to write the Democratic Party Platform

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    34/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    35/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    36/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    37/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    38/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    39/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    40/125

    REST*THE*BOOK?

    http://www.crummy.com/writing/RESTful-Web-Services/

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    41/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    42/125

    General von Moltke

    Active Lazy

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    43/125

    CaptureValue

    DiscoverValue

    MaintainValue

    DestroyValue

    Active Lazy

    Smart

    Dumb

    Everything You Hate About ITA d W 't Af id T S

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    44/125

    - And Weren't Afraid To Say

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    45/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    46/125

    http://www.soacenter.com/?p=33

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    47/125

    Explicit Boundaries

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    48/125

    Op

    shared contract and schema, not class

    Policy Driven

    10 Principles of SOA by Stefan Tilkov

    autonomous wire formats not Programming Language APIs

    Document Oriented

    Metadata Drivenloosely coupled standards compliant

    vendor independent

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    49/125

    Metadata

    Driven?!

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    50/125

    "Stopping the

    world

    to describe it"

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    51/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    52/125

    META-META-DATA

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    53/125

    HTML

    WS-Policy

    XForms

    Time

    C o m m i t m e n t WADL

    CannedHTTPPOST

    WSDLHTTP

    OPTIONS

    DESCRIPTION

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    54/125

    CONTENTS EVOLUTION ASYNCH

    DESCRIPTIONPAIN POINTS

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    55/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    56/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    57/125

    DO

    THE AGREEDTHING!

    EXPECTED

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    58/125

    Web services

    Messaging

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    59/125

    Messaging

    Messaging

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    60/125

    MessagingSystems

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    61/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    62/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    63/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    64/125

    EPR

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    65/125

    NO "STACK"

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    66/125

    NO STACK

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    67/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    68/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    69/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    70/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    71/125

    bwlAKau7KQAubgGNJzysZoEEF8o=

    kyBw9fnMjhi2I39+wfBIklyk8g4=

    XW2FqP9o/A1J+NOg6Kv3ncn3PvSg5lzr2V4H/AQpRycXUSk7bzWK8kzhtMrlXUwkykrJ2AyEzw+xrRtSBIeaId1Iveme2KO02p21MTglr73cPCft/

    GHvEvAHZ4B6N6gSaX7NcGFrYnsYKP0nX5vT7jBh7WZ7Euqn0PyjCHyYxbU=

    2007-02-23T07:47:01Z2007-02-23T08:47:01Z

    MIICdzCCAeCgAwIBAgICAX0wDQYJKoZIhvcNAQEEBQAwezEnMCUGA1UEChMeQnJpdGlzaCBUZWxlY29tbXVuaWNhdGlvbnMgUExDMR4wHAYDVQQLExVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDzANBgNVBAcTBkxmRvbjELMAkGA1UEBhMCR0IxEjAQBgNVBTCUJUIFNESyBDQTAiFxEwNzAxMDMxNTE5MjIrMDAwMBcNMDgwMTA0MTUxOTIyWjCBgjELMAkGA1UEBhMCR0IxDzANBgNVBAgTBkxvbmRvbjEPMA0GA1UEBxMGTG9uZG9uMQ8wDQYDVQQKEwZCVCBTREsxLTArBgNVBAsTJDM0ZDU0NTkwLTRkZTEtNGJmNi04ZGMxLWZjODQzNzM1MmM4MjERMA8GA1UEAxMIcGhvbmVib3gwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANKIQf+DOAKNZqs+HvCBYJ7+Q/wdCQBfFslIOGMnKN5zxpCuwB/pPW4DjLnqcWkIIVIH4A7RlWRemIO5e5caTW9bwvz0Fl1ZM6e2Mx9XKT0ZkxvXq8Dxn0abqWzoKyD3IJ2/tUhqriWveFR+6PY3PSBcj7NpJaqr7yH3z6RtEGNlAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAmabZVFeAXfXcBKR6NUK7kYqHhtX7YdNtxZcULRMMpFEkCMGERWCH5bK6/xnFtNXG09RkwkSTGs2dhM6/jQNvd1jJhLR6E2ejYrYWWf6Sap0Etok7sJqrS9awdbFmQGenFZKRUAEeyHeZhdFil8trzyJv1VzgPIjDRZmhnpItzQ8=

    http://sdk.bt.com/2007/01/WhiteLabelAuthentication#loginurn:uuid:e12edac3-f87d-3e0a-b621-04fa4d0b8cda

    [email protected]

    HEADERHELL

    IN

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    72/125

    UNORD

    ED

    BAG

    3IN

    21

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    73/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    74/125

    Services on theWeb?

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    75/125

    They

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    76/125

    They

    HATE SOAP!

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    77/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    78/125

    Isn't the Web"Good Enough?"

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    79/125

    POX!

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    80/125

    POX REST

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    81/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    82/125

    URIsidentify things

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    83/125

    and they can beanywhere ..

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    84/125

    IS IT SAFE?

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    85/125

    IS IT SAFE?

    Resources

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    86/125

    cool URIs

    Resourcesdemand

    cool URIs

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    87/125

    Message-Id:

    X-Original-To: [email protected]: http://www.w3.org/mid/

    2A7793353757DB4392DF4DFBBC9522550A20155C@I2KM11-UKBR.domain1.systemhost.net

    HTTP METHODS

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    88/125

    method safe idempotent semantics resource cacheable-----------------------------------------------------------

    GET | X X X X X |HEAD | X X X X X |PUT | X X X |POST | * |DELETE | X X X |OPTIONS | X X X |

    -----------------------------------------------------------PROPFIND | X X X X * |PROPPATCH | X X X |MKCOL | * X X |COPY | X X X |MOVE | ? X X |LOCK | X X |

    UNLOCK | X X X |PATCH | * X X |-----------------------------------------------------------

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    89/125

    htt ://thou ht ad.net/who/alan-dean/ima e/htt -headers-status/

    Presentation

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    90/125

    Presentation

    Style? Substance?

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    91/125

    Knowwhat it is you

    trying to build!

    #1

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    92/125

    FollowBuilding !

    Regulations

    #2

    Let's make a

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    93/125

    Phone

    Call!

    Web21C

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    94/125

    sdk.bt.com

    Web21C

    Web21C

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    95/125

    MAKE CALLS

    SEND TEXTSLOCATE MOBILESMANAGE CONTACTSetc..

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    96/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    97/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    98/125

    http://sdk.bt.com/2007/01/Session/ThirdPartyCall.wsdl

    WSDL

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    99/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    100/125

    END CALL

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    101/125

    callId

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    102/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    103/125

    HEADERS?

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    104/125

    bwlAKau7KQAubgGNJzysZoEEF8o=

    kyBw9fnMjhi2I39+wfBIklyk8g4=

    XW2FqP9o/A1J+NOg6Kv3ncn3PvSg5lzr2V4H/AQpRycXUSk7bzWK8kzhtMrlXUwkykrJ2AyEzw+xrRtSBIeaId1Iveme2KO02p21MTglr73cPCft/

    GHvEvAHZ4B6N6gSaX7NcGFrYnsYKP0nX5vT7jBh7WZ7Euqn0PyjCHyYxbU=

    2007-02-23T07:47:01Z2007-02-23T08:47:01Z

    MIICdzCCAeCgAwIBAgICAX0wDQYJKoZIhvcNAQEEBQAwezEnMCUGA1UEChMeQnJpdGlzaCBUZWxlY29tbXVuaWNhdGlvbnMgUExDMR4wHAYDVQQLExVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDzANBgNVBAcTBkxmRvbjELMAkGA1UEBhMCR0IxEjAQBgNVBTCUJUIFNESyBDQTAiFxEwNzAxMDMxNTE5MjIrMDAwMBcNMDgwMTA0MTUxOTIyWjCBgjELMAkGA1UEBhMCR0IxDzANBgNVBAgTBkxvbmRvbjEPMA0GA1UEBxMGTG9uZG9uMQ8wDQYDVQQKEwZCVCBTREsxLTArBgNVBAsTJDM0ZDU0NTkwLTRkZTEtNGJmNi04ZGMxLWZjODQzNzM1MmM4MjERMA8GA1UEAxMIcGhvbmVib3gwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANKIQf+DOAKNZqs+HvCBYJ7+Q/wdCQBfFslIOGMnKN5zxpCuwB/pPW4DjLnqcWkIIVIH4A7RlWRemIO5e5caTW9bwvz0Fl1ZM6e2Mx9XKT0ZkxvXq8Dxn0abqWzoKyD3IJ2/tUhqriWveFR+6PY3PSBcj7NpJaqr7yH3z6RtEGNlAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAmabZVFeAXfXcBKR6NUK7kYqHhtX7YdNtxZcULRMMpFEkCMGERWCH5bK6/xnFtNXG09RkwkSTGs2dhM6/jQNvd1jJhLR6E2ejYrYWWf6Sap0Etok7sJqrS9awdbFmQGenFZKRUAEeyHeZhdFil8trzyJv1VzgPIjDRZmhnpItzQ8=

    http://sdk.bt.com/2007/01/WhiteLabelAuthentication#loginurn:uuid:e12edac3-f87d-3e0a-b621-04fa4d0b8cda

    [email protected]

    HEADERS?

    . serv ce eve s2. customisation3 security

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    105/125

    3. security 4. currency

    6. exception handling5. obligation

    7. compensating transactions

    9. monitoring

    8. choreography

    10. versioning11. transformation

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    106/125

    REST://

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    107/125

    HTTP GET http://example.com/calls/123213

    GET CALL INFO

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    108/125

    Accept: text/xml

    !

    200 OKContent-Type: text/xml; charset=utf-8

    http://example.com/user/fred/calls/123213 CallInitial tel:+447918880... tel:+447918880... 2007-01-09 11:45:20

    502 CallNotTerminated

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    109/125

    RECENT CALLSHTTP GET http://example.com/calls/feed

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    110/125

    ! 200 OK

    Content-Type: application/atom+xml

    Phonebox Calls2007-01-0911:45:02ZPhoneboxtag:example.com,2007-01-09:/calls

    Call 1234567tag:example.com/calls/1234567-200701091223313CallInformation2005-10-13T18:30:02Z

    CONTENTHTTP GET:

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    111/125

    Accept: application/weatherml+xml; q=1.0,application/xml; q=0.8,text/html; q=0.5

    Apache Server .htaccess:AddType application/weatherml+xml weaOptions +MultiViews

    ./index.wea

    ./index.xml

    ./index.html

    CACHING

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    112/125

    HTTP GET http://flickr.com/photos/psd/2450160If-Modified-Since: Fri, 31 Dec 1999 23:59:59 GMTIf-None-Match: 'guid-21343244324'

    !

    HTTP/1.1 412 Precondition Failed

    OVERALL ..

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    113/125

    http://example.com/callshttp://example.com/calls/feedhttp://example.com/user/paul/calls/feedhttp://example.com/user/paul/calls/7d6374da5http://example.com/user/paul/calls/search?callingParty=tel:%3A44791888http://example.com/smshttp://example.com/sms/feedhttp://example.com/user/fred/sms/7d6374da5http://example.com/user/fred/sms/inbox/feedhttp://example.com/user/fred/sms/inbox/7d6374da5http://example.com/user/fred/sms/inbox?search?from=tel:%3A44791888

    ....

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    114/125

    BROWSERFRIENDLY

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    115/125

    JUST ONTHE WEB

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    116/125

    Java

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    117/125

    Rub

    . JavaPythonPerl

    WLATom

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    118/125

    Locate

    Dick'sApplication

    Harry

    AUTHENTICATION

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    119/125

    TRUST!

    IDENTITYFEDERATION

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    120/125

    XSLT

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    121/125

    AJAXXSLT

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    122/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    123/125

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    124/125

    YAGNI

  • 8/14/2019 Is the Web "Good Enough" for Web Services?

    125/125

    UESTIONS