No More Hops: Towards a linearly scalable application infrastructure. Owen Taylor Blog: http://www.jroller.com/owentaylor
About me. . . <ul><li>ORBs </li></ul><ul><li>Containers </li></ul><ul><li>Frustration </li></ul><ul><li>“ The Final Fronti...
Technical Target: Linear Scalability  <ul><li>Process increasing volume of information </li></ul><ul><ul><li>Scale out to ...
Database-Based Architectures: scaling bottlenecks Data –  I/O overhead, Contention Messaging  – Complex workflows increase...
Another Way of Looking at It:  A Tightening Bottleneck Static Web Thousands of (concurrent) connections Web App Hundreds o...
Typical SOA model based on ESB Services can be  Java, C++, .Net Content-Based  Routing Most ESB solutions do not address s...
Pinpoint ‘That method call...’  [what about the app?] Presentation Logic Business Logic Integration Logic Data Tier Messag...
TPC:  Transparent Partitioning & Colocation <ul><li>The next wave of applications will scale in this manner </li></ul><ul>...
Space-Based Architecture is an Implementation of TPC <ul><li>Utilizing a single logical/virtual resource to share:  </li><...
Parallel Processing: Divide and Scale out Request Feed Proxy Request Request Request Proxy Proxy Proxy Write Write Write S...
Colocation: Dramatically Reduce Latency Request Feed Proxy Request Requests Request Proxy Write Write Write Partitioned Sp...
Example: Algorithmic Trading  Client Registration Offer Driver Execution Engine Write Notify Register  Matching Engine Upd...
Reduced Latency Due To Colocation Offer Driver Execution Engine Write Notify Matching Engine Average Latency ~600 microsec...
[Demo] Excel With a Grid Backbone: RTD topic GSC 1 Embedded Space Processing Unit 1 StockConverter Spring Bean GSC 2 Embed...
Nuts and Bolts:  4 Verbs Write Take Read Write Notify Write + Read = IMDG Write + Notify = Messaging Write + Take = Parall...
SBA = Real-time SOA for Stateful Applications Services can be  Java, C++, .Net Content-Based  Routing Shared state to  ena...
Declarative Spring-SBA - Making Scalability Even Simpler Declarative Abstraction Space Bus Validation Service Service   Be...
Reaching Scalability with Space Based SOA Write Take Read Write Notify
Order Processing Demo:  Logical Workflow Write new Orders (Feed) Client Accounting BrokenOrderCleaner Logistics Take Order...
Linearly Scalable OrderProcessing: Deploy Once: GSC 1 Space Proxy Processing Unit 1 orderfeed Spring Bean GSC 2 Embedded S...
Linearly Scalable OrderProcessing: Deploy Again: GSC 1 Embedded Space Processing Unit 1 ordersystem Spring Bean GSC 2 Embe...
Building SBA Application – How it works.. <ul><li>Step 1: </li></ul><ul><ul><li>Implement POJO domain model </li></ul></ul...
Come To The “Let’s Code” BOF!!!  <ul><li>November 8 th  2007 @7:15 PM in “City Room” </li></ul><ul><li>Everyone bring a la...
Code Time: The project-creator Demo <ul><li>This example shows  </li></ul><ul><ul><li>Rapid development of two simple proj...
So, Why use a Declarative SBA? <ul><li>Simple! </li></ul><ul><ul><li>Building a fully fledged distributed application beco...
Questions Please? Thank You! http://www.jroller.com/owentaylor
Upcoming SlideShare
Loading in...5
×

No More Hops Towards A Linearly Scalable Application Infrastructure

423

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
423
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • No More Hops Towards A Linearly Scalable Application Infrastructure

    1. 1. No More Hops: Towards a linearly scalable application infrastructure. Owen Taylor Blog: http://www.jroller.com/owentaylor
    2. 2. About me. . . <ul><li>ORBs </li></ul><ul><li>Containers </li></ul><ul><li>Frustration </li></ul><ul><li>“ The Final Frontier” </li></ul>
    3. 3. Technical Target: Linear Scalability <ul><li>Process increasing volume of information </li></ul><ul><ul><li>Scale out to get more processing power when volume increases </li></ul></ul><ul><li>Shorter time </li></ul><ul><ul><li>Mostly through parallelizing of transactions </li></ul></ul><ul><li>Lower cost </li></ul><ul><ul><li>Pooling low commodity resources </li></ul></ul>Total TPS = X*N X TPS X TPS X TPS X TPS Processing unit 1 Processing unit 2 Processing unit 3 Processing unit N Incoming Transactions
    4. 4. Database-Based Architectures: scaling bottlenecks Data – I/O overhead, Contention Messaging – Complex workflows increase latencies Processing – CPU, Parallelization Silo approach, each tier has its own clustering model, lots of moving parts
    5. 5. Another Way of Looking at It: A Tightening Bottleneck Static Web Thousands of (concurrent) connections Web App Hundreds of connections Business components Dozens of connections Database Several connections
    6. 6. Typical SOA model based on ESB Services can be Java, C++, .Net Content-Based Routing Most ESB solutions do not address stateful services and often use a centralized database to share state between services
    7. 7. Pinpoint ‘That method call...’ [what about the app?] Presentation Logic Business Logic Integration Logic Data Tier Messaging Tier Client Tier <ul><ul><ul><li>If we just add a caching layer to the system... </li></ul></ul></ul>
    8. 8. TPC: Transparent Partitioning & Colocation <ul><li>The next wave of applications will scale in this manner </li></ul><ul><ul><li>Because Gartner says so  </li></ul></ul><ul><li>Many already scale one or two tiers in this way </li></ul><ul><ul><li>Partitioned Databases with Triggers </li></ul></ul><ul><ul><li>Content-Based Routing though Messaging with coupled consumers </li></ul></ul><ul><ul><li>All-in one web applications using caching (IMDG) </li></ul></ul><ul><li>Space-Based Architecture offers an implementation of TPC using Spaces </li></ul><ul><ul><li>GigaSpaces enables this architecture for .NET, C++, and Java </li></ul></ul>
    9. 9. Space-Based Architecture is an Implementation of TPC <ul><li>Utilizing a single logical/virtual resource to share: </li></ul><ul><ul><li>Data </li></ul></ul><ul><ul><li>Logic </li></ul></ul><ul><ul><li>Events </li></ul></ul><ul><li>Services: </li></ul><ul><ul><li>Interact with each other through the space </li></ul></ul><ul><ul><li>Can be co-located with data/events for faster results </li></ul></ul><ul><ul><li>Are deployed and managed in an adaptive and fail-safe way </li></ul></ul>} Objects! Data Provisioning Event Propagation Logic Processing
    10. 10. Parallel Processing: Divide and Scale out Request Feed Proxy Request Request Request Proxy Proxy Proxy Write Write Write Service1 Service2 Service3 Partitioned Spaces Request: Zoom-in update stocks where … Proxy Virtual Table
    11. 11. Colocation: Dramatically Reduce Latency Request Feed Proxy Request Requests Request Proxy Write Write Write Partitioned Spaces Request: Zoom-in Proxy Virtual Table update stocks where …
    12. 12. Example: Algorithmic Trading Client Registration Offer Driver Execution Engine Write Notify Register Matching Engine Update Average Latency ~14 milliseconds (+ ~2 milliseconds for backup)
    13. 13. Reduced Latency Due To Colocation Offer Driver Execution Engine Write Notify Matching Engine Average Latency ~600 microseconds (+ ~2 milliseconds for backup) Client Registration Register Update Write [TradingStrategy]
    14. 14. [Demo] Excel With a Grid Backbone: RTD topic GSC 1 Embedded Space Processing Unit 1 StockConverter Spring Bean GSC 2 Embedded Space Processing Unit 2 GSC 3 Embedded Space Processing Unit 3 One Logical Space (Partitioned) GSC 4 Space Proxy Processing Unit 4 MarketFeed Spring Bean StockConverter Spring Bean StockConverter Spring Bean
    15. 15. Nuts and Bolts: 4 Verbs Write Take Read Write Notify Write + Read = IMDG Write + Notify = Messaging Write + Take = Parallel Processing Take <ul><li>Write </li></ul><ul><li>Read </li></ul><ul><li>Take </li></ul><ul><li>Notify </li></ul>
    16. 16. SBA = Real-time SOA for Stateful Applications Services can be Java, C++, .Net Content-Based Routing Shared state to enable stateful services
    17. 17. Declarative Spring-SBA - Making Scalability Even Simpler Declarative Abstraction Space Bus Validation Service Service Bean Matching Service Service Bean Take Write Notify Space Bus Validation Service Service Bean Matching Service Service Bean Take Write Notify Take/Notify Write Take/Notify Write Polling Event Container Notify Event Container Polling Event Container Notify Event Container
    18. 18. Reaching Scalability with Space Based SOA Write Take Read Write Notify
    19. 19. Order Processing Demo: Logical Workflow Write new Orders (Feed) Client Accounting BrokenOrderCleaner Logistics Take Orders(new) Write Orders (approved) Take Orders (approved) Write Orders (shipped) Take Orders (shipped, unshipped, unapproved) Write new Orders (once cleaned) OrderSystem
    20. 20. Linearly Scalable OrderProcessing: Deploy Once: GSC 1 Space Proxy Processing Unit 1 orderfeed Spring Bean GSC 2 Embedded Space Processing Unit 2 ordersystem Spring Bean
    21. 21. Linearly Scalable OrderProcessing: Deploy Again: GSC 1 Embedded Space Processing Unit 1 ordersystem Spring Bean GSC 2 Embedded Space Processing Unit 2 ordersystem Spring Bean GSC 3 Embedded Space Processing Unit 3 ordersystem Spring Bean One Logical Space (Partitioned) GSC 4 Space Proxy Processing Unit 4 orderfeed Spring Bean The throughput of the application grows linearly as the number of ordersystem deployments increase.
    22. 22. Building SBA Application – How it works.. <ul><li>Step 1: </li></ul><ul><ul><li>Implement POJO domain model </li></ul></ul><ul><li>Step 2: </li></ul><ul><ul><li>Implement the POJO Services </li></ul></ul><ul><li>Step 3: </li></ul><ul><ul><li>Wire the services through spring </li></ul></ul><ul><li>Step 4: </li></ul><ul><ul><li>Packaging </li></ul></ul><ul><ul><li>Deploy to Grid (Scale-Out) </li></ul></ul>Register
    23. 23. Come To The “Let’s Code” BOF!!! <ul><li>November 8 th 2007 @7:15 PM in “City Room” </li></ul><ul><li>Everyone bring a laptop </li></ul><ul><li>Download GigaSpacesXAP6.0.1 </li></ul><ul><ul><li>http://www.gigaspaces.com/os_downloads.html </li></ul></ul><ul><li>Install Eclipse 3.3 Europa [ or Intellij ] </li></ul><ul><li>Go to my blog and download: “projectcreator.jar” (it is a zip in hiding) </li></ul><ul><ul><li>http://www.jroller.com/resources/o/owentaylor/project-creator.jar </li></ul></ul>
    24. 24. Code Time: The project-creator Demo <ul><li>This example shows </li></ul><ul><ul><li>Rapid development of two simple projects </li></ul></ul><ul><ul><ul><li>Processor </li></ul></ul></ul><ul><ul><ul><li>Publisher </li></ul></ul></ul><ul><ul><li>Integration with IDE </li></ul></ul><ul><ul><ul><li>Run projects in eclipse to test quickly </li></ul></ul></ul><ul><ul><li>Fail-safe behavior without code awareness </li></ul></ul><ul><ul><ul><li>Run projects in Service Containers for transparent: </li></ul></ul></ul><ul><ul><ul><ul><li>Failover </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Scaling </li></ul></ul></ul></ul>
    25. 25. So, Why use a Declarative SBA? <ul><li>Simple! </li></ul><ul><ul><li>Building a fully fledged distributed application becomes just a matter of wiring simple local beans </li></ul></ul><ul><ul><ul><li>It’s all declarative through annotation or XML </li></ul></ul></ul><ul><li>Non intrusiveness through abstraction </li></ul><ul><ul><li>High level abstraction provides higher degree of flexibility to plug-in different solutions from different topologies, technologies and standards without compromising on the least common denominator </li></ul></ul><ul><li>Extremely Extensible </li></ul><ul><ul><li>Very easy to extend the model and the underlying implementation without changing the application </li></ul></ul><ul><li>Reduced learning curve – It’s just Spring </li></ul><ul><ul><li>If you already know Spring – you are ready to begin </li></ul></ul><ul><ul><ul><li>Fits natively to the existing Spring model </li></ul></ul></ul><ul><ul><ul><li>Utilizes common practices such as annotation, IoC etc. </li></ul></ul></ul>
    26. 26. Questions Please? Thank You! http://www.jroller.com/owentaylor
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×