SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Last-minute slide deck for QCon London 2008
         (Fill-in for a sick speaker)
                     by



                John Davies




                                    © 2007 IONA Technologies   1
Agenda

Overview of the Investment Banking Technology Space


The basics of Integration


The Issues with persisting todayʼs complex data models


The argument for distributed architectures


Example - High performance matching engine


Example - SWIFT MT to MX migration




                                                         © 2007 IONA Technologies   2
Enterprise!

If weʼre looking for an enterprise solution then it has to solve problems in the front,
middle and back office across all lines of business (LoBs)


This structure creates small businesses within the business
• Not unlike a large department store selling fruit & veg., white goods, books and music



                                                                 Front Office



                 F&O       FX        FI     OTC EQD              Middle Office



                                                                 Back Office



                                                                               © 2007 IONA Technologies   3
A reminder of the problem…

Front Office
• Very high volume ( 100-100,000 / sec), usually simple messages
• Latency is critical (< 10ms)
• FIX, FAST, ASN1, IIOP are most common payloads
• Light-weight XML only (if any)


Middle Office
• Volumes are high (1-1000 / sec), very complex messages
• Calculations are complex and grid/HPC is usually requires
• FpML, ISO-20022, Murex, SwapsWire, CSVs are most common formats
• XML widely used but usually over MQ & JMS


Back Office
• Low volume (100-1000 / hour)
• Very high value messages, strict compliance and validation
• Proprietary networks, mostly SWIFT




                                                                    © 2007 IONA Technologies   4
Back to basics

All computers have inputs and outputs


The vast majority of input and outputs are non-human interfaces
• Network, Sockets, Messages (JMS etc.), Databases etc.
• The human version being keyboards, screens, printers and faxes


Attaching the output of one system to the input of another only works if they “speak” the
same protocol over the same transport


Matching these two (transport and protocol) is called “Integration”


There are two levels of integration
• Transport integration
• Data integration




                                                                         © 2007 IONA Technologies   5
Basic Integration

There are two parts to integration
• Transport integration
• Data integration


Thirty years ago we were using RS-232 (serial), then came token-ring and finally Ethernet
• Today we see InfiniBand, RDMA etc. becoming mainstream


Going back to basics, one of the early standards for programmers was CORBA (Common
Object Request Broker Architecture)
• A well defined protocol over a well defined transport, fast too




                                                                        © 2007 IONA Technologies   6
CORBA worked well

So Microsoft replaced it with something far simpler… DCOM




                                                            © 2007 IONA Technologies   7
CORBA worked well

So Microsoft replaced it with something far simpler… DCOM




                                                            © 2007 IONA Technologies   7
CORBA worked well

So Microsoft replaced it with something far simpler… DCOM




                                                            © 2007 IONA Technologies   7
CORBA was too tightly coupled

It was the synchronous coupling that let CORBA down
• Some users however found the tight coupling to be an advantage
    If the network died you knew immediately
    It was fast and guaranteed delivery


The standards were improved but too many nails were already in the coffin
• Microsoft had a “better” idea and Java was too young at the time


As time went on CORBA was often replaced with SOAP or XML over HTTP and MQ
• Not all bad but we took a huge step back in performance
• CORBA will still the backbone of most telcos and many banks
• It is very debatable as to what Web Services has given us over CORBA




                                                                      © 2007 IONA Technologies   8
XML - good or bad?

Imagine a comma delimited file (CSV), a header and many rows of data
• Take the header and repeat it for every row - pointless?
• Now replace the commas with “>” and “<“ and space it out for clarity
    Clarity for who?


CSVs are very limited in what they can represent, typically we need to represent a
hierarchy of related fields
• CSVs are just “string” fields, they are not type-safe and create integration problems


In the investment banking world derivative trades can be extremely complex and XML is
a perfect tool for representing them
• Not only are CSVs out of the question but databases are also of questionable use for this level
  of complexity


XML is good for complex messages
• It’s not ideal for simple message particularly in low-latency or high volume situations




                                                                                  © 2007 IONA Technologies   9
Non-XML formats

A large proportion of applications (internal and external) still send CSV files
• We need to be able to deal with these natively and not have to convert them to XML each time
• Conversion adds risk, risk is money
• Technically it’s not always that easy, some of these files are millions of lines long


Banks sell their services to Brokers and Hedge Funds, amongst others, being able to
“onboard” clients (mostly non-XML formats) is critical to their ability to sell their
services


Many international banking standards are non-XML and will remain so for some time to
come
• The Federal Reserve Bank put through $½ trillion through our SWIFT systems every day
• We can run the added risk of translating this to and from XML just for the convenience of the
  vendors




                                                                               © 2007 IONA Technologies   10
Complex validation

You can define an ISO-8601 DateTime in XML Schema, the format is well defined
• Well almost, there are still inconsistencies about time-zones and time offsets


The problem comes though when you want to restrict one field based on the content or
existence of another field(s)
• If //@AlternateEmail then at least two emails must be defined
• //TradeDate must be before or the same as the //SettlementDate


This problem isnʼt unique to XML, it is true for almost any type of data


Excel imports CSVs reasonably well but it canʼt semantically validate the content




                                                                           © 2007 IONA Technologies   11
Persistence

How do you store something as complex as FpML or SEPAʼs ISO-20022 messages in a
relational database?
• FpML is typical, it has over 4000 elements and umpteen levels of depth
• Normalising FpML would result in the mother of all databases and SQL queries up to a page
  long
How do you manage multiple versions?


Answer
• Don’t use a relational mapping
• Simply store it as XML (in a CLOB) and extract the indices you need with XPath
• Many databases (Oracle, Sybase, DB2 V9 etc.) offer XML data types but they usually don’t
  implement all the schema features and slow the insert times down to a crawl
• Using this technique leaves many more powerful mechanisms open such as using Tangosol’s
  (now Oracle’s) Coherence rather than a database




                                                                            © 2007 IONA Technologies   12
The end of the Database?

Databases are commodity


We can now use memory (local and distributed) in places where we used to use a
database


We can now use disk where we used to use tape
• Throw your tapes away


In that past everything revolved around the database


Now everything revolves around messaging (and ESBs)


Relational database will out-live us but their position in the centre of the enterprise is
long gone




                                                                             © 2007 IONA Technologies   13
We can scale through distribution

• 100 Problems to solve?
 •   Send them to 100 machines!

• Serialise every object, send it over the network and then de-
  serialise it again on the other side
 •   Good, we can scale but what about all that object serialisation?

• What about queries over distributed data
 •   Good if we can distribute the query but a real pain of the query doesn’t match the
     distribution slice

• Dynamic load balancing can also be a pain
• When we move to a distributed system we take a hit with
  the serialisation
Distributed vs. Single VM

• Throughput on a single VM on a 2-core box vs. the same
  application distributed (unintelligently) on 4 2-core boxes
 •   x = number of threads (one thread uses roughly 100% of one core)
 •   y = throughput scaled to 100 being 1 core fully used


               400


               300


               200


               100


                 0
                     1      2      3        4    5      6     7     8

                                Single VM       Distributed
Java vs. C/C++

•   Most (80-85%) of banking applications are written in
    Java
    •   The remaining languages include C & C++, Perl, C#,VB

•   C and C++ still play a serious role in high performance
    applications
    •   It’s not that it’s faster than Java, it’s just more predictable - no GC

•   Java’s lack of “real time” is its biggest hindrance in HPC
    •   BEA and Sun have “real time” version but they are still a long way off
        what we need

    •   5ms to run the GC is still too long, today we’re struggling to get
        under 20ms
A Derivatives Matching Engine - Example

• Extremely complex derivatives, in FpML need matching as
  they come back from the DTCC
 •   Using ORM (Hibernate, iBatis etc.) is way too complex
 •   A database is too slow for transient data

• Put the trades into memory and match them using XPath
  expressions
 •   2 sets of 200,000 trades of roughly 15k each that’s 6 GBytes minimum
 •   Remember the GC problem and the serialisation delay?



• There’s really only one obvious solution to remain in the
  market at this level
JavaSpaces

• While Azul can provide impressive acceleration to JEE
  application servers to me that’s like putting nitro-injection
  into a bus
 •   It will go faster but you need a lot of power to get it going in the first place



• JavaSpaces provide a much better platform for this level of
  scalability
 •   JavaSpaces is part of Jini (from Sun) and is in fact older than JEE
 •   Blitz - Open source JavaSpaces implementation
 •   GigaSpaces



• Provides the perfect implementation of Master-Worker
  pattern
Writing to the Space


              DTCC
              Input
                                 GigaSpaces Grid

              Bank
              Input




• Strings from of data are inserted into the space, a local (pass
  by reference) operation
• This requires relatively little complexity, just basic ESB
  functionality
Matching
                             Matching
                              Worker




                                        GigaSpaces Grid




• Now the clever bit
 •   Strings are read out of the Space and converted to Objects using IONA’s Artix Data
     Services (formally C24’s Integration Objects) - This provides Java-Binding
     functionality beyond XML such as CSVs, SWIFT, FIX etc. with full XPath 2.0
 •   The Object is assigned a matching template and the matching pair is sought
 •   Once the match is found (now of later) an event is kicked off
Output



                                                                  Matched
                       GigaSpaces Grid                            Events




• This is relatively simple again
 •   The output is usually driven by events from matched pairs
 •   Results are usually written to a database but as XML not as an ugly relational entry
 •   The Output(s) sinks can be running in the same VM and once again the passing of the
     data is by reference and not through serialisation (as in JMS or remote EJBs)
Another one of today’s problems
•   Messages are more and more complex
    •   ISO-20022 and FpML

•   Increasing volumes out strip Moore’s law
    •   Banks now ask for 100,000 per second on the trading floor

•   Bad trading days can triple (3x) daily volumes
    •   Bad days used to be 2x but recent stock market “blips” have
        produced 3x volumes

•   New initiatives from regulatory bodies (i.e. European
    Commission) add extra requirements, many of them
    verging on the impossible
    •   MiFID, SEPA
SWIFT
•       SWIFT is 3 things, a secure network, a
        standards body and a connectivity provider
    •    It is used by over 8,000 banks (>80,000 nodes), in
         over 200 countries handling over 15 million messages
         a day (>2 billion/year)

    •    Mostly payments and securities, Europe is >65% of
         the volume

    •    SWIFT is over 30 years old, has a systems availability
         of 99.986% ( <1½ minutes/week) , they’ve NEVER
         lost a message

•       The figures are impressive but the messages are a
        bastard!
    •     Around 330 types of message
    •     Over 400 complex types used in the messages
    •     Over 1000 complex validation rules
The SWIFT message
{1:F01DRESGB2LAXXX0548034693}{2:I541DRESDEFFXXXXN2}{3:{108:MT541}}{4:
:16R:GENL
:20C::SEME//FRTJ123REC2
:23G:NEWM
:16S:GENL
:16R:TRADDET
:98A::TRAD//20000519
:98A::SETT//20000524
:90A::DEAL//PRCT/101,001283
:35B:ISIN GB0987654321




                                               •
:16S:TRADDET


                                                       This is one of the simpler messages
:16R:FIAC
:36B::SETT//FAMT/4000000,
:97A::SAFE//222S
:16S:FIAC



                                                     •
:16R:SETDET
:22F::SETR//TRAD
:16R:SETPRTY
                                                              It’s easy to parse into strings but there are
:95P::SELL//DEUTDEFF
:16S:SETPRTY
                                                              complex rules about how the fields relate to
:16R:SETPRTY
:95R::DEAG/CRST/456                                           one another
:16S:SETPRTY




                                                     •
:16R:SETPRTY
:95R::REAG/CRST/123
:16S:SETPRTY                                                  Constructing the message might also seem
                                                              simple but get it wrong and SWIFT will fine
:16R:SETPRTY
:95P::RECU//DRESDEFF
:16S:SETPRTY
:16R:SETPRTY
:95P::BUYR//MGTCDE55
                                                              you, big-time!
:97A::SAFE//111S
:16S:SETPRTY
:16R:SETPRTY
:95P::PSET//CRSTGB22
:16S:SETPRTY
:16R:AMT
:19A::SETT//GBP4047151,3
:16S:AMT
:16S:SETDET
-}
SWIFT MT to MX

•   SWIFT are moving to XML, it’s based on ISO-20022
    •   ISO-20022 is not a message definition but a framework for creating
        standards - it contains metadata

•   Virtually every bank on the planet will have to migrate
    their systems from “old” MT format (previous slide) to
    new ISO-20022 messages

•   To add to the pressure SEPA (Single European Payments
    Area) initiative uses parts of ISO-20022
    •   This will happen sooner than SWIFT MX messages

•   ISO-20022 is becoming a very important standard in the
    banking world
A large client...

•   This is the logical architecture of a large European
    clearing house




•   Most of the hard work is in transformation and
    enrichment
High Performance Transformation


•   Banks need a migration plan, SWIFT MT to SWIFT MX
    and visa-versa

•   The task is complex and the volumes can be large
    •   One message transformation alone has been estimated to take over
        6 man-months coded by hand, there are over 300 messages in total

•   Larger banks have around 2 million messages to
    transform a day
    •   Windows can be short though, frequently batches of >100,000 arrive
        and need to be out within 15 minutes
How we do it

•   We use Java-binding

•   We model the SWIFT message as if it were XML

•   We have a customised parser that reads SWIFT
    •   It’s not looking for the < and > but for other character indicators

•   Like JAXB, JIBX or Castor we now have complex Java
    Beans that exactly represent the original SWIFT
    message

•   Apply some clever transformation and some
    enrichment to this and the job is done

•   Processed messages are stored in a database
Transformation
•   Transformation needs a lot of business experience, the
    section below is a “function” within a larger transform
The flow...




1. Message arrives on MQ from the SWIFT gateway
2. Into a Mule connector
3. Messages are routed and potentially load-balanced
4. Messages are parsed, transformed, enriched in the grid
  •   This is done using IONA’s Artix Data Services (ADS)

5. Finally transformed messages are loaded into a database
Scaling

•   This is where GigaSpaces comes in...

•   It adds a Spring 2 based container with huge scalability
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability



SWIFT
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability



SWIFT        Mule
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability



SWIFT        Mule
                          SWIFT


                           JavaSpace
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability
                          ADS
                         Worker



SWIFT        Mule
                          SWIFT


                           JavaSpace
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability
                          ADS
                         Worker



SWIFT        Mule
                          SWIFT
                                   20022.xml

                           JavaSpace
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability
                          ADS
                         Worker



SWIFT        Mule
                          SWIFT
                                   20022.xml      Mule
                           JavaSpace
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability
                          ADS
                         Worker     ADS
                                   Worker


SWIFT        Mule
                          SWIFT
                                   20022.xml      Mule
                           JavaSpace
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability
                           ADS
                          Worker             ADS
                                            Worker


SWIFT        Mule
                            SWIFT 20022.xml

                       SWIFT
                                 SWIFT    20022.xml       Mule
                              JavaSpace
                        20022.xml
                                              20022.xml

                                   SWIFT 20022.xml
                          SWIFT
                                          SWIFT
                              20022.xml
Scaling

 •   This is where GigaSpaces comes in...

 •   It adds a Spring 2 based container with huge scalability
                             ADS
                            Worker             ADS
                                              Worker


SWIFT        Mule
                              SWIFT 20022.xml

                         SWIFT
                                   SWIFT    20022.xml           Mule
                               JavaSpace
                         20022.xml
                                                20022.xml

                                     SWIFT 20022.xml
                            SWIFT
                                            SWIFT
                                20022.xml
                 ADS
                Worker                                  ADS
                                         ADS           Worker
                          ADS
                         Worker         Worker
Linear scalability
•   The graph below is actual data from Azul after scaling
    the number of threads on a 192 core box
    •   x axis is the number of worker threads

    •   y axis is SWIFT messages/second on the vega2 CPU


        35000
        31500
        28000
        24500
        21000
        17500
        14000
        10500
         7000
         3500
            0
                0   15   30    45   60   75   90   105   120   135   150
In a Nutshell

Use a Model Driven Architecture


Use a standard like XML Schema or UML 2.0 to define the models
• But importantly don’t assume implementations are always XML


Use a standard like WSDL to define the data/transport bindings
• But importantly and in most cases don’t use classic Web Services


Use XSLT and XQuery to define transformations
• But again don’t assume XML is the source or target                 Application

                                                                      Adapter

Validate extensively, syntactically and semantically
• This vastly reduces errors further down the line                    The Bus



Keep the “bus” simple, it just delivers canonical messages
• But make sure you have abstracted it




                                                                           © 2007 IONA Technologies   33

Contenu connexe

En vedette

Portfolio Feb08 r2
Portfolio Feb08 r2Portfolio Feb08 r2
Portfolio Feb08 r2guestf10f38
 
SF1 Marketing and Consulting
SF1 Marketing and ConsultingSF1 Marketing and Consulting
SF1 Marketing and ConsultingMichael Street
 
Lightning Talk - Contribute to Open Source
Lightning Talk - Contribute to Open SourceLightning Talk - Contribute to Open Source
Lightning Talk - Contribute to Open SourceSidu Ponnappa
 
Collaborating in the Clouds: selecting tools
Collaborating in the Clouds: selecting toolsCollaborating in the Clouds: selecting tools
Collaborating in the Clouds: selecting toolsBobbi Newman
 
Library 101 82208
Library 101 82208Library 101 82208
Library 101 82208librfun
 
An intro to Portent
An intro to PortentAn intro to Portent
An intro to PortentIan Lurie
 
Listen to your customers and they will listen to you optsum phoenix septemb...
Listen to your customers and they will listen to you   optsum phoenix septemb...Listen to your customers and they will listen to you   optsum phoenix septemb...
Listen to your customers and they will listen to you optsum phoenix septemb...Shashi Bellamkonda
 
6 Step Digression
6 Step Digression6 Step Digression
6 Step Digressionjzatko
 
Copiade Vuelode Gansos
Copiade Vuelode GansosCopiade Vuelode Gansos
Copiade Vuelode Gansosjoanvinpa
 
SEO Analytics - Middle Earth Style
SEO Analytics - Middle Earth StyleSEO Analytics - Middle Earth Style
SEO Analytics - Middle Earth StyleIan Lurie
 
The Power of Gaming: A Brief Why, What, and How of Video Games in Libraries
The Power of Gaming: A Brief Why, What, and How of Video Games in LibrariesThe Power of Gaming: A Brief Why, What, and How of Video Games in Libraries
The Power of Gaming: A Brief Why, What, and How of Video Games in LibrariesMaggie Hommel Thomann
 
Proxecto de recuperación do río Corgo nos Salgueiriños
Proxecto de recuperación do río Corgo nos SalgueiriñosProxecto de recuperación do río Corgo nos Salgueiriños
Proxecto de recuperación do río Corgo nos Salgueiriñosbng.compostela
 
Present Perfect: forms and uses
Present Perfect: forms and usesPresent Perfect: forms and uses
Present Perfect: forms and usesMaribel Gonzalez
 
Video Game Collection @ Your Library
Video Game Collection @ Your LibraryVideo Game Collection @ Your Library
Video Game Collection @ Your LibraryMaggie Hommel Thomann
 

En vedette (20)

Portfolio Feb08 r2
Portfolio Feb08 r2Portfolio Feb08 r2
Portfolio Feb08 r2
 
SF1 Marketing and Consulting
SF1 Marketing and ConsultingSF1 Marketing and Consulting
SF1 Marketing and Consulting
 
Lightning Talk - Contribute to Open Source
Lightning Talk - Contribute to Open SourceLightning Talk - Contribute to Open Source
Lightning Talk - Contribute to Open Source
 
Collaborating in the Clouds: selecting tools
Collaborating in the Clouds: selecting toolsCollaborating in the Clouds: selecting tools
Collaborating in the Clouds: selecting tools
 
Library 101 82208
Library 101 82208Library 101 82208
Library 101 82208
 
Ecb aj
Ecb ajEcb aj
Ecb aj
 
An intro to Portent
An intro to PortentAn intro to Portent
An intro to Portent
 
5 Things
5 Things5 Things
5 Things
 
Listen to your customers and they will listen to you optsum phoenix septemb...
Listen to your customers and they will listen to you   optsum phoenix septemb...Listen to your customers and they will listen to you   optsum phoenix septemb...
Listen to your customers and they will listen to you optsum phoenix septemb...
 
Video Games and Reader's Advisory
Video Games and Reader's AdvisoryVideo Games and Reader's Advisory
Video Games and Reader's Advisory
 
6 Step Digression
6 Step Digression6 Step Digression
6 Step Digression
 
Copiade Vuelode Gansos
Copiade Vuelode GansosCopiade Vuelode Gansos
Copiade Vuelode Gansos
 
SEO Analytics - Middle Earth Style
SEO Analytics - Middle Earth StyleSEO Analytics - Middle Earth Style
SEO Analytics - Middle Earth Style
 
The Power of Gaming: A Brief Why, What, and How of Video Games in Libraries
The Power of Gaming: A Brief Why, What, and How of Video Games in LibrariesThe Power of Gaming: A Brief Why, What, and How of Video Games in Libraries
The Power of Gaming: A Brief Why, What, and How of Video Games in Libraries
 
Adobe
AdobeAdobe
Adobe
 
Proxecto de recuperación do río Corgo nos Salgueiriños
Proxecto de recuperación do río Corgo nos SalgueiriñosProxecto de recuperación do río Corgo nos Salgueiriños
Proxecto de recuperación do río Corgo nos Salgueiriños
 
Present Perfect: forms and uses
Present Perfect: forms and usesPresent Perfect: forms and uses
Present Perfect: forms and uses
 
Video Game Collection @ Your Library
Video Game Collection @ Your LibraryVideo Game Collection @ Your Library
Video Game Collection @ Your Library
 
CUENTITAS
CUENTITASCUENTITAS
CUENTITAS
 
Present perfect
Present perfectPresent perfect
Present perfect
 

Similaire à John Davies Last Minute Fill In For Sick Speaker

Automotive Supply Chain Data Exchange Trends
Automotive Supply Chain Data Exchange TrendsAutomotive Supply Chain Data Exchange Trends
Automotive Supply Chain Data Exchange Trendsbizquirk
 
Brian Oliver Pimp My Data Grid
Brian Oliver  Pimp My Data GridBrian Oliver  Pimp My Data Grid
Brian Oliver Pimp My Data Griddeimos
 
Mule ESB - Integration Simplified
Mule ESB - Integration SimplifiedMule ESB - Integration Simplified
Mule ESB - Integration SimplifiedRich Software
 
Technic4
Technic4Technic4
Technic4hjue
 
Moving to software-based production workflows and containerisation of media a...
Moving to software-based production workflows and containerisation of media a...Moving to software-based production workflows and containerisation of media a...
Moving to software-based production workflows and containerisation of media a...Kieran Kunhya
 
Evolving from Messaging to Event Streaming
Evolving from Messaging to Event StreamingEvolving from Messaging to Event Streaming
Evolving from Messaging to Event Streamingconfluent
 
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...confluent
 
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul SystemsThe Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul SystemszuluJDK
 
The Java Evolution Mismatch - Why You Need a Better JVM
The Java Evolution Mismatch - Why You Need a Better JVMThe Java Evolution Mismatch - Why You Need a Better JVM
The Java Evolution Mismatch - Why You Need a Better JVMAzul Systems Inc.
 
Wholesale services over VxC Fabrics
Wholesale services over VxC FabricsWholesale services over VxC Fabrics
Wholesale services over VxC FabricsSkeeve Stevens
 
The DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetupThe DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetupNorm Leitman
 
The return of big iron?
The return of big iron?The return of big iron?
The return of big iron?Ben Stopford
 
Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Abhishek Singh
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...OpenStack Korea Community
 
(How) Does VA Smalltalk fit into today's IT landscapes?
(How) Does VA Smalltalk fit into today's IT landscapes?(How) Does VA Smalltalk fit into today's IT landscapes?
(How) Does VA Smalltalk fit into today's IT landscapes?Joachim Tuchel
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stackJohan Edstrom
 
Database Performance With Proxy Architectures
Database  Performance With  Proxy  ArchitecturesDatabase  Performance With  Proxy  Architectures
Database Performance With Proxy ArchitecturesPerconaPerformance
 
JAX London 2015 - Architecting a Highly Scalable Enterprise
JAX London 2015 - Architecting a Highly Scalable EnterpriseJAX London 2015 - Architecting a Highly Scalable Enterprise
JAX London 2015 - Architecting a Highly Scalable EnterpriseC24 Technologies
 

Similaire à John Davies Last Minute Fill In For Sick Speaker (20)

Automotive Supply Chain Data Exchange Trends
Automotive Supply Chain Data Exchange TrendsAutomotive Supply Chain Data Exchange Trends
Automotive Supply Chain Data Exchange Trends
 
Brian Oliver Pimp My Data Grid
Brian Oliver  Pimp My Data GridBrian Oliver  Pimp My Data Grid
Brian Oliver Pimp My Data Grid
 
Mule ESB - Integration Simplified
Mule ESB - Integration SimplifiedMule ESB - Integration Simplified
Mule ESB - Integration Simplified
 
Technic4
Technic4Technic4
Technic4
 
Moving to software-based production workflows and containerisation of media a...
Moving to software-based production workflows and containerisation of media a...Moving to software-based production workflows and containerisation of media a...
Moving to software-based production workflows and containerisation of media a...
 
Evolving from Messaging to Event Streaming
Evolving from Messaging to Event StreamingEvolving from Messaging to Event Streaming
Evolving from Messaging to Event Streaming
 
The Boundaryless Value-Chain
The Boundaryless Value-ChainThe Boundaryless Value-Chain
The Boundaryless Value-Chain
 
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...
The Good, The Bad, and The Avro (Graham Stirling, Saxo Bank and David Navalho...
 
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul SystemsThe Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
The Java Evolution Mismatch by Gil Tene, CTO at Azul Systems
 
The Java Evolution Mismatch - Why You Need a Better JVM
The Java Evolution Mismatch - Why You Need a Better JVMThe Java Evolution Mismatch - Why You Need a Better JVM
The Java Evolution Mismatch - Why You Need a Better JVM
 
Datacenter 2014: Commscope - Arne Keller
Datacenter 2014: Commscope - Arne KellerDatacenter 2014: Commscope - Arne Keller
Datacenter 2014: Commscope - Arne Keller
 
Wholesale services over VxC Fabrics
Wholesale services over VxC FabricsWholesale services over VxC Fabrics
Wholesale services over VxC Fabrics
 
The DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetupThe DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetup
 
The return of big iron?
The return of big iron?The return of big iron?
The return of big iron?
 
Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up Scaling a Rails Application from the Bottom Up
Scaling a Rails Application from the Bottom Up
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
 
(How) Does VA Smalltalk fit into today's IT landscapes?
(How) Does VA Smalltalk fit into today's IT landscapes?(How) Does VA Smalltalk fit into today's IT landscapes?
(How) Does VA Smalltalk fit into today's IT landscapes?
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
 
Database Performance With Proxy Architectures
Database  Performance With  Proxy  ArchitecturesDatabase  Performance With  Proxy  Architectures
Database Performance With Proxy Architectures
 
JAX London 2015 - Architecting a Highly Scalable Enterprise
JAX London 2015 - Architecting a Highly Scalable EnterpriseJAX London 2015 - Architecting a Highly Scalable Enterprise
JAX London 2015 - Architecting a Highly Scalable Enterprise
 

Plus de deimos

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Rubydeimos
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuerydeimos
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvmdeimos
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwrdeimos
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdddeimos
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovydeimos
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languagesdeimos
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfacesdeimos
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyonddeimos
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipitydeimos
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Webdeimos
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Restdeimos
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedraldeimos
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalabilitydeimos
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfairdeimos
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systemsdeimos
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registrydeimos
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platformdeimos
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolutiondeimos
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLsdeimos
 

Plus de deimos (20)

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Ruby
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvm
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwr
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdd
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languages
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfaces
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyond
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipity
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Web
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedral
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalability
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfair
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systems
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platform
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolution
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
 

Dernier

Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...Sheetaleventcompany
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptxnandhinijagan9867
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxAndy Lambert
 
Falcon's Invoice Discounting: Your Path to Prosperity
Falcon's Invoice Discounting: Your Path to ProsperityFalcon's Invoice Discounting: Your Path to Prosperity
Falcon's Invoice Discounting: Your Path to Prosperityhemanthkumar470700
 
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxB.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxpriyanshujha201
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...rajveerescorts2022
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with CultureSeta Wicaksana
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 
John Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdfJohn Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdfAmzadHosen3
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangaloreamitlee9823
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxWorkforce Group
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityEric T. Tung
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...amitlee9823
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentationuneakwhite
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsP&CO
 
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...lizamodels9
 
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service NoidaCall Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service Noidadlhescort
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...amitlee9823
 

Dernier (20)

Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptx
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 
Falcon's Invoice Discounting: Your Path to Prosperity
Falcon's Invoice Discounting: Your Path to ProsperityFalcon's Invoice Discounting: Your Path to Prosperity
Falcon's Invoice Discounting: Your Path to Prosperity
 
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptxB.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with Culture
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
John Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdfJohn Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdf
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League City
 
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
Call Girls Jp Nagar Just Call 👗 7737669865 👗 Top Class Call Girl Service Bang...
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabiunwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
 
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
 
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service NoidaCall Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
 
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
 

John Davies Last Minute Fill In For Sick Speaker

  • 1. Last-minute slide deck for QCon London 2008 (Fill-in for a sick speaker) by John Davies © 2007 IONA Technologies 1
  • 2. Agenda Overview of the Investment Banking Technology Space The basics of Integration The Issues with persisting todayʼs complex data models The argument for distributed architectures Example - High performance matching engine Example - SWIFT MT to MX migration © 2007 IONA Technologies 2
  • 3. Enterprise! If weʼre looking for an enterprise solution then it has to solve problems in the front, middle and back office across all lines of business (LoBs) This structure creates small businesses within the business • Not unlike a large department store selling fruit & veg., white goods, books and music Front Office F&O FX FI OTC EQD Middle Office Back Office © 2007 IONA Technologies 3
  • 4. A reminder of the problem… Front Office • Very high volume ( 100-100,000 / sec), usually simple messages • Latency is critical (< 10ms) • FIX, FAST, ASN1, IIOP are most common payloads • Light-weight XML only (if any) Middle Office • Volumes are high (1-1000 / sec), very complex messages • Calculations are complex and grid/HPC is usually requires • FpML, ISO-20022, Murex, SwapsWire, CSVs are most common formats • XML widely used but usually over MQ & JMS Back Office • Low volume (100-1000 / hour) • Very high value messages, strict compliance and validation • Proprietary networks, mostly SWIFT © 2007 IONA Technologies 4
  • 5. Back to basics All computers have inputs and outputs The vast majority of input and outputs are non-human interfaces • Network, Sockets, Messages (JMS etc.), Databases etc. • The human version being keyboards, screens, printers and faxes Attaching the output of one system to the input of another only works if they “speak” the same protocol over the same transport Matching these two (transport and protocol) is called “Integration” There are two levels of integration • Transport integration • Data integration © 2007 IONA Technologies 5
  • 6. Basic Integration There are two parts to integration • Transport integration • Data integration Thirty years ago we were using RS-232 (serial), then came token-ring and finally Ethernet • Today we see InfiniBand, RDMA etc. becoming mainstream Going back to basics, one of the early standards for programmers was CORBA (Common Object Request Broker Architecture) • A well defined protocol over a well defined transport, fast too © 2007 IONA Technologies 6
  • 7. CORBA worked well So Microsoft replaced it with something far simpler… DCOM © 2007 IONA Technologies 7
  • 8. CORBA worked well So Microsoft replaced it with something far simpler… DCOM © 2007 IONA Technologies 7
  • 9. CORBA worked well So Microsoft replaced it with something far simpler… DCOM © 2007 IONA Technologies 7
  • 10. CORBA was too tightly coupled It was the synchronous coupling that let CORBA down • Some users however found the tight coupling to be an advantage If the network died you knew immediately It was fast and guaranteed delivery The standards were improved but too many nails were already in the coffin • Microsoft had a “better” idea and Java was too young at the time As time went on CORBA was often replaced with SOAP or XML over HTTP and MQ • Not all bad but we took a huge step back in performance • CORBA will still the backbone of most telcos and many banks • It is very debatable as to what Web Services has given us over CORBA © 2007 IONA Technologies 8
  • 11. XML - good or bad? Imagine a comma delimited file (CSV), a header and many rows of data • Take the header and repeat it for every row - pointless? • Now replace the commas with “>” and “<“ and space it out for clarity Clarity for who? CSVs are very limited in what they can represent, typically we need to represent a hierarchy of related fields • CSVs are just “string” fields, they are not type-safe and create integration problems In the investment banking world derivative trades can be extremely complex and XML is a perfect tool for representing them • Not only are CSVs out of the question but databases are also of questionable use for this level of complexity XML is good for complex messages • It’s not ideal for simple message particularly in low-latency or high volume situations © 2007 IONA Technologies 9
  • 12. Non-XML formats A large proportion of applications (internal and external) still send CSV files • We need to be able to deal with these natively and not have to convert them to XML each time • Conversion adds risk, risk is money • Technically it’s not always that easy, some of these files are millions of lines long Banks sell their services to Brokers and Hedge Funds, amongst others, being able to “onboard” clients (mostly non-XML formats) is critical to their ability to sell their services Many international banking standards are non-XML and will remain so for some time to come • The Federal Reserve Bank put through $½ trillion through our SWIFT systems every day • We can run the added risk of translating this to and from XML just for the convenience of the vendors © 2007 IONA Technologies 10
  • 13. Complex validation You can define an ISO-8601 DateTime in XML Schema, the format is well defined • Well almost, there are still inconsistencies about time-zones and time offsets The problem comes though when you want to restrict one field based on the content or existence of another field(s) • If //@AlternateEmail then at least two emails must be defined • //TradeDate must be before or the same as the //SettlementDate This problem isnʼt unique to XML, it is true for almost any type of data Excel imports CSVs reasonably well but it canʼt semantically validate the content © 2007 IONA Technologies 11
  • 14. Persistence How do you store something as complex as FpML or SEPAʼs ISO-20022 messages in a relational database? • FpML is typical, it has over 4000 elements and umpteen levels of depth • Normalising FpML would result in the mother of all databases and SQL queries up to a page long How do you manage multiple versions? Answer • Don’t use a relational mapping • Simply store it as XML (in a CLOB) and extract the indices you need with XPath • Many databases (Oracle, Sybase, DB2 V9 etc.) offer XML data types but they usually don’t implement all the schema features and slow the insert times down to a crawl • Using this technique leaves many more powerful mechanisms open such as using Tangosol’s (now Oracle’s) Coherence rather than a database © 2007 IONA Technologies 12
  • 15. The end of the Database? Databases are commodity We can now use memory (local and distributed) in places where we used to use a database We can now use disk where we used to use tape • Throw your tapes away In that past everything revolved around the database Now everything revolves around messaging (and ESBs) Relational database will out-live us but their position in the centre of the enterprise is long gone © 2007 IONA Technologies 13
  • 16. We can scale through distribution • 100 Problems to solve? • Send them to 100 machines! • Serialise every object, send it over the network and then de- serialise it again on the other side • Good, we can scale but what about all that object serialisation? • What about queries over distributed data • Good if we can distribute the query but a real pain of the query doesn’t match the distribution slice • Dynamic load balancing can also be a pain • When we move to a distributed system we take a hit with the serialisation
  • 17. Distributed vs. Single VM • Throughput on a single VM on a 2-core box vs. the same application distributed (unintelligently) on 4 2-core boxes • x = number of threads (one thread uses roughly 100% of one core) • y = throughput scaled to 100 being 1 core fully used 400 300 200 100 0 1 2 3 4 5 6 7 8 Single VM Distributed
  • 18. Java vs. C/C++ • Most (80-85%) of banking applications are written in Java • The remaining languages include C & C++, Perl, C#,VB • C and C++ still play a serious role in high performance applications • It’s not that it’s faster than Java, it’s just more predictable - no GC • Java’s lack of “real time” is its biggest hindrance in HPC • BEA and Sun have “real time” version but they are still a long way off what we need • 5ms to run the GC is still too long, today we’re struggling to get under 20ms
  • 19. A Derivatives Matching Engine - Example • Extremely complex derivatives, in FpML need matching as they come back from the DTCC • Using ORM (Hibernate, iBatis etc.) is way too complex • A database is too slow for transient data • Put the trades into memory and match them using XPath expressions • 2 sets of 200,000 trades of roughly 15k each that’s 6 GBytes minimum • Remember the GC problem and the serialisation delay? • There’s really only one obvious solution to remain in the market at this level
  • 20. JavaSpaces • While Azul can provide impressive acceleration to JEE application servers to me that’s like putting nitro-injection into a bus • It will go faster but you need a lot of power to get it going in the first place • JavaSpaces provide a much better platform for this level of scalability • JavaSpaces is part of Jini (from Sun) and is in fact older than JEE • Blitz - Open source JavaSpaces implementation • GigaSpaces • Provides the perfect implementation of Master-Worker pattern
  • 21. Writing to the Space DTCC Input GigaSpaces Grid Bank Input • Strings from of data are inserted into the space, a local (pass by reference) operation • This requires relatively little complexity, just basic ESB functionality
  • 22. Matching Matching Worker GigaSpaces Grid • Now the clever bit • Strings are read out of the Space and converted to Objects using IONA’s Artix Data Services (formally C24’s Integration Objects) - This provides Java-Binding functionality beyond XML such as CSVs, SWIFT, FIX etc. with full XPath 2.0 • The Object is assigned a matching template and the matching pair is sought • Once the match is found (now of later) an event is kicked off
  • 23. Output Matched GigaSpaces Grid Events • This is relatively simple again • The output is usually driven by events from matched pairs • Results are usually written to a database but as XML not as an ugly relational entry • The Output(s) sinks can be running in the same VM and once again the passing of the data is by reference and not through serialisation (as in JMS or remote EJBs)
  • 24. Another one of today’s problems • Messages are more and more complex • ISO-20022 and FpML • Increasing volumes out strip Moore’s law • Banks now ask for 100,000 per second on the trading floor • Bad trading days can triple (3x) daily volumes • Bad days used to be 2x but recent stock market “blips” have produced 3x volumes • New initiatives from regulatory bodies (i.e. European Commission) add extra requirements, many of them verging on the impossible • MiFID, SEPA
  • 25. SWIFT • SWIFT is 3 things, a secure network, a standards body and a connectivity provider • It is used by over 8,000 banks (>80,000 nodes), in over 200 countries handling over 15 million messages a day (>2 billion/year) • Mostly payments and securities, Europe is >65% of the volume • SWIFT is over 30 years old, has a systems availability of 99.986% ( <1½ minutes/week) , they’ve NEVER lost a message • The figures are impressive but the messages are a bastard! • Around 330 types of message • Over 400 complex types used in the messages • Over 1000 complex validation rules
  • 26. The SWIFT message {1:F01DRESGB2LAXXX0548034693}{2:I541DRESDEFFXXXXN2}{3:{108:MT541}}{4: :16R:GENL :20C::SEME//FRTJ123REC2 :23G:NEWM :16S:GENL :16R:TRADDET :98A::TRAD//20000519 :98A::SETT//20000524 :90A::DEAL//PRCT/101,001283 :35B:ISIN GB0987654321 • :16S:TRADDET This is one of the simpler messages :16R:FIAC :36B::SETT//FAMT/4000000, :97A::SAFE//222S :16S:FIAC • :16R:SETDET :22F::SETR//TRAD :16R:SETPRTY It’s easy to parse into strings but there are :95P::SELL//DEUTDEFF :16S:SETPRTY complex rules about how the fields relate to :16R:SETPRTY :95R::DEAG/CRST/456 one another :16S:SETPRTY • :16R:SETPRTY :95R::REAG/CRST/123 :16S:SETPRTY Constructing the message might also seem simple but get it wrong and SWIFT will fine :16R:SETPRTY :95P::RECU//DRESDEFF :16S:SETPRTY :16R:SETPRTY :95P::BUYR//MGTCDE55 you, big-time! :97A::SAFE//111S :16S:SETPRTY :16R:SETPRTY :95P::PSET//CRSTGB22 :16S:SETPRTY :16R:AMT :19A::SETT//GBP4047151,3 :16S:AMT :16S:SETDET -}
  • 27. SWIFT MT to MX • SWIFT are moving to XML, it’s based on ISO-20022 • ISO-20022 is not a message definition but a framework for creating standards - it contains metadata • Virtually every bank on the planet will have to migrate their systems from “old” MT format (previous slide) to new ISO-20022 messages • To add to the pressure SEPA (Single European Payments Area) initiative uses parts of ISO-20022 • This will happen sooner than SWIFT MX messages • ISO-20022 is becoming a very important standard in the banking world
  • 28. A large client... • This is the logical architecture of a large European clearing house • Most of the hard work is in transformation and enrichment
  • 29. High Performance Transformation • Banks need a migration plan, SWIFT MT to SWIFT MX and visa-versa • The task is complex and the volumes can be large • One message transformation alone has been estimated to take over 6 man-months coded by hand, there are over 300 messages in total • Larger banks have around 2 million messages to transform a day • Windows can be short though, frequently batches of >100,000 arrive and need to be out within 15 minutes
  • 30. How we do it • We use Java-binding • We model the SWIFT message as if it were XML • We have a customised parser that reads SWIFT • It’s not looking for the < and > but for other character indicators • Like JAXB, JIBX or Castor we now have complex Java Beans that exactly represent the original SWIFT message • Apply some clever transformation and some enrichment to this and the job is done • Processed messages are stored in a database
  • 31. Transformation • Transformation needs a lot of business experience, the section below is a “function” within a larger transform
  • 32. The flow... 1. Message arrives on MQ from the SWIFT gateway 2. Into a Mule connector 3. Messages are routed and potentially load-balanced 4. Messages are parsed, transformed, enriched in the grid • This is done using IONA’s Artix Data Services (ADS) 5. Finally transformed messages are loaded into a database
  • 33. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability
  • 34. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability SWIFT
  • 35. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability SWIFT Mule
  • 36. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability SWIFT Mule SWIFT JavaSpace
  • 37. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability ADS Worker SWIFT Mule SWIFT JavaSpace
  • 38. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability ADS Worker SWIFT Mule SWIFT 20022.xml JavaSpace
  • 39. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability ADS Worker SWIFT Mule SWIFT 20022.xml Mule JavaSpace
  • 40. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability ADS Worker ADS Worker SWIFT Mule SWIFT 20022.xml Mule JavaSpace
  • 41. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability ADS Worker ADS Worker SWIFT Mule SWIFT 20022.xml SWIFT SWIFT 20022.xml Mule JavaSpace 20022.xml 20022.xml SWIFT 20022.xml SWIFT SWIFT 20022.xml
  • 42. Scaling • This is where GigaSpaces comes in... • It adds a Spring 2 based container with huge scalability ADS Worker ADS Worker SWIFT Mule SWIFT 20022.xml SWIFT SWIFT 20022.xml Mule JavaSpace 20022.xml 20022.xml SWIFT 20022.xml SWIFT SWIFT 20022.xml ADS Worker ADS ADS Worker ADS Worker Worker
  • 43. Linear scalability • The graph below is actual data from Azul after scaling the number of threads on a 192 core box • x axis is the number of worker threads • y axis is SWIFT messages/second on the vega2 CPU 35000 31500 28000 24500 21000 17500 14000 10500 7000 3500 0 0 15 30 45 60 75 90 105 120 135 150
  • 44. In a Nutshell Use a Model Driven Architecture Use a standard like XML Schema or UML 2.0 to define the models • But importantly don’t assume implementations are always XML Use a standard like WSDL to define the data/transport bindings • But importantly and in most cases don’t use classic Web Services Use XSLT and XQuery to define transformations • But again don’t assume XML is the source or target Application Adapter Validate extensively, syntactically and semantically • This vastly reduces errors further down the line The Bus Keep the “bus” simple, it just delivers canonical messages • But make sure you have abstracted it © 2007 IONA Technologies 33