Top Banner
Successful SOA with REST Jim Webber http://jim.webber.name Twitter: @jimwebber
72
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Jimwebber soa

Successful SOA with REST

Jim Webber

http://jim.webber.name

Twitter: @jimwebber

Page 2: Jimwebber soa

Or: A Billion Transactions Per MonthUsing the Web for Enterprise Heavy Lifting

Jim Webber

http://jim.webber.name

Twitter: @jimwebber

Page 3: Jimwebber soa
Page 4: Jimwebber soa

Today’s Enterprise Architecture

Accounting Marketing

SupportProduct Development

Page 5: Jimwebber soa
Page 6: Jimwebber soa

“SOA: Principles of Service Design underwent a thorough technical review involving over 60 reviewers from different vendors, organizations, and professions across North America, Europe, and Asia. The book has been formally endorsed by members of major SOA vendors, including IBM, Microsoft, Oracle, BEA, and Intel.”

-- Thomas Erl

Page 7: Jimwebber soa

Tomorrow’s Enterprise Architecture

BPM Services

Business Service

Data Service

Business Service

Data Service

Data Service

Business Service

Data Service

Data Service

Page 8: Jimwebber soa

Nirvana Enterprise Architecture, or…

BPM Service

Business Service

Business Service

ESB

Basic Service

Basic Service

Basic Service

Basic Service

Basic Service

Business Service

Page 9: Jimwebber soa

ESB - Erroneous Spaghetti Box?

Enterprise Service Bus

Page 10: Jimwebber soa
Page 11: Jimwebber soa
Page 12: Jimwebber soa
Page 13: Jimwebber soa

But we still do it.

Page 14: Jimwebber soa

Why?

Because it’s “less risky”

Page 15: Jimwebber soa

Why?

Because that’s what the market does

Page 16: Jimwebber soa

Why?

Because we need the -ilities

Page 17: Jimwebber soa

So let’s talk about those -ilities

Page 18: Jimwebber soa
Page 19: Jimwebber soa
Page 20: Jimwebber soa

Web

Sca

le!

Page 21: Jimwebber soa

Trad

itio

nal

En

terp

rise

Se

curi

ty

Page 22: Jimwebber soa

End to End Secure Messaging

End to End Secure Conversations

Page 23: Jimwebber soa

Security Tokens and claims

Federating access with tokens

Page 24: Jimwebber soa
Page 25: Jimwebber soa

…you wouldn’tuse it at home!

Page 26: Jimwebber soa
Page 27: Jimwebber soa
Page 28: Jimwebber soa
Page 29: Jimwebber soa

Bottleneck

No trustCrash

recovery?Denial of Service

Page 30: Jimwebber soa
Page 31: Jimwebber soa

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="HelloService"

targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"

xmlns="http://schemas.xmlsoap.org/wsdl/"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<message name="SayHelloRequest">

<part name="firstName" type="xsd:string"/>

</message>

<message name="SayHelloResponse">

<part name="greeting" type="xsd:string"/>

</message>

<portType name="Hello_PortType">

<operation name="sayHello">

<input message="tns:SayHelloRequest"/>

<output message="tns:SayHelloResponse"/>

</operation>

</portType>

<binding name="Hello_Binding" type="tns:Hello_PortType">

<soap:binding style="rpc"

transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="sayHello">

<soap:operation soapAction="sayHello"/>

<input>

<soap:body

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

namespace="urn:examples:helloservice"

use="encoded"/>

</input>

<output>

<soap:body

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

namespace="urn:examples:helloservice"

use="encoded"/>

</output>

</operation>

</binding>

<service name="Hello_Service">

<documentation>WSDL File for HelloService</documentation>

<port binding="tns:Hello_Binding" name="Hello_Port">

<soap:address

location="http://localhost:8080/soap/servlet/rpcrouter"/>

</port>

</service>

</definitions> Hel

lo W

orl

d!

Page 32: Jimwebber soa

The Web is a coordination platform

Me

dia

Ty

pe

s

Page 33: Jimwebber soa
Page 34: Jimwebber soa

A Case Study

Client

• UK-based telecoms service provider

• Global customers (no easy downtime)

Problem

• Scalability and system resilience issues

• Huge growth curve to from a million to a billion messages per month

• Costs

Page 35: Jimwebber soa

Platform Architecture

CarrierCarrier

CarrierCarrier

Gateway

Voice to Text Algorithms

Integration Database

Post Processing

Shared Filesystem

Bottleneck Nightmare!Where’s my

file gone?

Shoehorn it in that other program

Fix things up here

Page 36: Jimwebber soa
Page 37: Jimwebber soa

The £10 Million Solution

CarrierCarrier

CarrierCarrier

Gateway

Voice to Text Algorithms

“Queue”Database

Post Processing

Shared Filesystem

Enterprise Service Bus

*

* Solution does not include actual implementation

Page 38: Jimwebber soa
Page 39: Jimwebber soa

ThoughtWorks was given the output from a previous enterprise consultancy…

…and told to “do that, but cheaper”

Page 40: Jimwebber soa
Page 41: Jimwebber soa

Thinkdifferently!

(or even just stop and think)

Page 42: Jimwebber soa

Architecture is still important

Page 43: Jimwebber soa

Agile EA: Prioritise Service Delivery

CarrierCarrier

CarrierCarrier

Gateway

Voice to Text Algorithms

Integration Database

Post Processing

Shared Filesystem

Start by fixing

storage

Page 44: Jimwebber soa
Page 45: Jimwebber soa
Page 46: Jimwebber soa
Page 47: Jimwebber soa
Page 48: Jimwebber soa

Storage Manager Project Delivery

Small team

3 Week Inception

14 iterations

Java solution

Performance testing throughout

– See Jones and Kua paper, Agile 2009

Continuously built and deployed for testing

Page 49: Jimwebber soa

Web-friendly Architecture(mostly wallet-friendly too!)

Storage Manager

Jboss/Tomcat

GPFS SAN

Cacheable!

Optimised disk access!

Optimised server config

Free!

Encapsulates storage detail!

Fast!

Spend £ on the right

Infrastructure

Page 50: Jimwebber soa
Page 51: Jimwebber soa
Page 52: Jimwebber soa

What is going on here?

What is going on with these peaks?

Page 53: Jimwebber soa

Hypothesis

Directories are becoming full, slowing random access to files

Page 54: Jimwebber soa

Prediction

A single directory will result in linearly degrading performance

Page 55: Jimwebber soa
Page 56: Jimwebber soa

Outcome

Adapt the directory structure to take advantage of the underlying file

system

Page 57: Jimwebber soa

Improving Enterprise Architecture

CarrierCarrier

CarrierCarrier

Gateway

Voice to Text Algorithms

Integration Database

Post Processing

Storage Manager

Reduced Load

Just shoehorn it in that other

program

“She’ll be right”

Scalable!

Page 58: Jimwebber soa

Storage Manager Benefits

• Immediate reduced load on integration database

• Enabled removal of code from systems

• Delivered business value by keeping customers happy

• “The best software we have ever deployed”

– Operations director I’ll come back to this

Page 59: Jimwebber soa
Page 60: Jimwebber soa

What if…

We took our inspiration from successful Web-scale companies?

Page 61: Jimwebber soa

What if…

And took the time to understand our SLAs?

Page 62: Jimwebber soa

What if…

And picked the right technology solution?

Not just the one we’re being sold?

Page 63: Jimwebber soa

What if…

We built a scalable compute platform?

Page 64: Jimwebber soa
Page 65: Jimwebber soa

Grid Project Delivery

Larger team

3.5 Week Inception

18 iterations

Java solution

Performance testing throughout

Continuously built and deployed for testing

Page 66: Jimwebber soa

Web-friendly Architecture(very wallet-friendly!)

Grid Manager

Embedded Jetty

Grid Manager

Embedded Jetty

Grid Manager

Embedded Jetty

Grid Manager

Embedded Jetty

Grid Manager

Embedded Jetty

ASR ASR ASR ASR

Grid Pipeline

ASR ASR ASR ASR

Grid Pipeline

Just HTTP

Fault Tolerant

Fault Tolerant

Just HTTP

Sustainable container for business logic

£0Software

Infrastructure

Page 67: Jimwebber soa

Improving Enterprise Architecture

CarrierCarrier

CarrierCarrier

Gateway

Grid

Integration Database

Post Processing

Storage Manager

Massively Reduced

Load

“She’ll be right”

Scalable!

Scalable, sustainable!

Scalable Processing Platform

Page 68: Jimwebber soa

Grid Benefits

• Scalable, resilient platform

• Aligned with business goals

• Further reduced load on integration database

• Set architectural patterns

• Deliver business value by processing more messages at lower cost than ever before

• “The best software we have ever deployed”– Operations director Better every time!

Page 69: Jimwebber soa

£10,000,000Up-Front Cost of Bus Architecture

Page 70: Jimwebber soa

£1,000,000Actual Cost of Completed Project

Page 71: Jimwebber soa

£0Cost of Middleware

Page 72: Jimwebber soa

The Web works

And its economies of scale eclipse your vendors’