rest-based integration architecture for a financial business service

Upload: best-tech-videos

Post on 30-May-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    1/40

    REST-based Integration

    Architecture for a FinancialBusiness Service

    Phillip Ghadir, innoQ

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    2/40

    Phillip Ghadir 2

    REST-based Integration

    Architecture for a Financial

    Business ServiceWhen we started out building a large-scale financial application,

    we followed all the then-current buzzwords: SOAP, WSDL, WS-

    *. Many of the benefits we expected failed to arrive. We finally

    ended up developing new integration scenarios using anapproach based on REST, Atom, and AtomPub, and have

    since seen a significant improvement in re-use and modularity. I

    will present the evolution of our customer's rating service,

    initially available via web services up to the soft migration

    towards a REST-based approach. See which design decisions

    were made and how they turned out since its release in early2007. This presentation will end with an explanation of pitfalls

    and shortcomings and the workarounds we chose.

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    3/40

    Phillip Ghadir 3

    Issues & Lessons Learned

    Agenda

    Moving towards REST

    Financial Business Service: Rating

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    4/40

    Phillip Ghadir 4

    Reasons for andeffects of

    tight coupling

    DevelopmentParadigm

    High Level-Architecture

    Rating Business Service

    Introduction Overview Limitations

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    5/40

    Phillip Ghadir 5

    ?

    What is

    Rating?

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    6/40

    Phillip Ghadir 6

    Rating as a Business Service

    web-application hosted for several banks

    Provided with surrounding business

    processes (like data backup, validation,

    auditing, and callibration)

    Integrated into banks own workflows and

    processes

    Integration into banks applications via web

    services-based B2B-interface

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    7/40

    Phillip Ghadir 7

    Architectural Overview

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    8/40

    Phillip Ghadir 8

    In the beginning ...

    WS-I basic profile wasnt available

    Interoperability with Microsoft, Perl, and

    several Java web service stacks wasmandatory

    Systinet Server for Java had the best

    interoperability

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    9/40

    Phillip Ghadir 9

    ... but

    Use of collections wasnt possible

    Had to

    use arrays integrate schema information into WSDL

    Have one large WSDL

    Provide a B2B abstraction layer especially

    for circumventing the WSDL-constraints

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    10/40

    Phillip Ghadir 10

    Model driven generative /

    Code first approach

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    11/40

    Phillip Ghadir 11

    Reasons for and Effects

    of Tight Coupling One source for all approach

    Use of binding generators

    Lack of attention (read: time & budget) Established organizational activities

    Fixed time slots for changes

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    12/40

    Due to the fixed time slots we

    were forced to evaluate otheroptions.

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    13/40

    Phillip Ghadir 13

    Moving towards REST

    Options What is RESTIssues &

    Lessons Learned

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    14/40

    Phillip Ghadir 14

    Our Options

    Making web services right

    Creating an own source for web servicesdefinition

    Building a mediation layer

    Building new application as internalcomponents of the existing system

    Adding new rating applications moreloosely coupled

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    15/40

    REST foundations

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    16/40

    Phillip Ghadir 16

    Every resource gets its own ID

    (=URI) http://rating.example.com/

    http://rating.example.com/01/hardfacts/2008/

    http://rating.example.com/01/ratings/2008

    http://rating.example.com/02/customer/4711

    http://rating.example.com/03/customer/0815/ratings

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    17/40

    Phillip Ghadir 17

    Finding the resources was easy

    http://rating.example.com/

    http://rating.example.com/01/hardfacts/2008/

    http://rating.example.com/01/ratings/2008

    http://rating.example.com/02/customer/4711

    http://rating.example.com/03/customer/0815/ratings

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    18/40

    Phillip Ghadir 18

    Hypermedia - Link Everything

    Together

    Potter

    HarryHP-4711

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    19/40

    Phillip Ghadir 19

    Adding some URIs was easy ... But ...

    Potter

    HarryHP-4711

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    20/40

    Phillip Ghadir 20

    Access everything via

    standard operations DELETE

    GET POST

    PUT

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    21/40

    Phillip Ghadir 21

    BEGIN:VCARDVERSION:3.0

    N:Ghadir; Phillip

    FN:Phillip Ghadir

    URL:http://innoq.com/

    ORG:innoQ

    END:VCARD

    Phillip Ghadir

    innoQ

    As hcard

    As vcard

    http://innoq.com/resources/employees/pg

    As XHTML form

    Resource Representations

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    22/40

    Phillip Ghadir 22

    Most interesting representations

    Something we could easily process Manually

    Automatically

    Lists require other representations as entities Forms (for queries)

    XHTML ( ... )

    Atom

    CSV

    Meta-Information provided via AtomPub

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    23/40

    Phillip Ghadir 23

    Stateless Communication

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    24/40

    Phillip Ghadir 24

    Design Guidelines

    1. URIs contain no business data!

    2. Exception tenant-ID(http://rating.example.com/01/ratings/2008)

    3. Server builds URIs - not the client!4. Collections are provided as Atom feeds

    5. Discovery is done via AtomPub service documents

    6. Links are selected by technical labels

    7. Business data is content of an Atom feed entry

    8. Metadata of the content is contained in the Atomentry

    9. Requirements for http headers are forbidden

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    25/40

    Short introduction

    on

    Atom & AtomPub

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    26/40

    Phillip Ghadir 26

    Atom Syndication Format

    Standardized in: RFC 4287

    MIME Type: application/atom+xmlNamespace: http://www.w3.org/2005/Atom

    RSS Done Right

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    27/40

    Phillip Ghadir 27

    Atom Model

    Feed Entry*0id

    titleupdated

    idtitle

    updated

    Content

    InlineXHTMLInlineTextOutOfLineResource InlineOther

    Category*

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    28/40

    Phillip Ghadir 28

    Example Feed

    2003-12-13T18:30:02Z John Doe http://example.org/feeds/23

    Atom-Powered Robots Run Amok urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a 2003-12-13T18:30:02Z Some text.

    A Second Contrived Example urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a 2003-12-13T18:30:02Z Some text.

    Very fine text.

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    29/40

    Phillip Ghadir 29

    Atom Publishing Protocol

    Standardized in: RFC 5023

    Namespace: http://www.w3.org/2007/app

    RESTful Collections Handling:- Discovery, Description,- Retrieval,- Creation, Editing, Deletion

    of Resources

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    30/40

    Phillip Ghadir 30

    Collection Member

    *0

    idtitleupdated

    idtitleupdated

    Workspace

    *

    LinkEntry

    Resource

    Service

    Document

    *

    Category

    *

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    31/40

    Issues with RESTful

    integration

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    32/40

    Phillip Ghadir 32

    When to use which method?

    During elaboration of the integration

    scenario

    Rule of thumb: Always a GET first

    Exception from that:

    Create Customer

    Provide Report for data

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    33/40

    Phillip Ghadir 33

    Sequential (RESTful) Resource-Building

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    34/40

    Phillip Ghadir 34

    Infrastructure

    Dependencies

    http://rubycas-server.googlecode.com/files/basic_cas_single_signon_mechanism_diagram.png

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    35/40

    Phillip Ghadir 35

    REST doesnt imply Loose Coupling

    Developers tend to use their belovedtools (here: JAX-B)

    The schemas used for bindings wereinherited from the web servicesinterface

    Independent development of client andserver side required more effort thanexpected

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    36/40

    Phillip Ghadir 36

    Poor Atom & APP Libraries

    Back in 2006 there were:

    ROME &

    ROME Propono

    Both lacked support for XML data:

    Either wrapped in !CDATA

    Or XML tags escaped (< ... >)

    Building a custom library for AtomPubwas a painless no-brainer

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    37/40

    Phillip Ghadir 37

    Missing feature in Atom

    Optimistic Locking requires an attribute

    like Version or Timestamp

    Atom/AtomPub rely on timestamp whilethe backend relied on version id

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    38/40

    Phillip Ghadir 38

    Lessons Learned

    Tight coupling can still be a problem

    Atom libraries had problems with XML-

    data RESTful integration is not a model for

    building a single application

    Single Sign On required an additional

    infrastructure component

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    39/40

    Phillip Ghadir 39

    Benefits

    Very low threshold to access the

    business data / logic

  • 8/14/2019 REST-based Integration Architecture for a Financial Business Service

    40/40

    Phillip Ghadir 40

    Many thanks

    innoQ Deutschland GmbH

    Halskestr. 17

    40880 Ratingen

    Germany

    [email protected]

    http://innoq.com

    http://ghadir.de/blog