SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
An Introduction to
Space Based Architecture




      Amin Abbaspour

MAGFA IT Development Center
       twitter.com/abbaspour
Agenda

                    Title                 Time
Scalability, why and hows (15)             10
Space Based Architecture (6)                5
Java Spaces (4)                             5
GigaSpaces (5)                             10
Migrating Spring Apps to GigaSpaces (6)     5
Case Study (2)                             10
Conclusion (2)                              1
Q/A                                         -
                  40 slides               45 min
Innovation Comes From The Need

The applications workload is increasing each day. This is
  inevitable.


We expect fast and reliable softwares even with increasing
 workload.


Speed and reliability means the death or life of a business.
But why so much Workload?

Todays softwares are not limited to operators and limited
  society. They directly interact with millions of people and
  thousand of other softwares.


    Large scale community sites, like facebook, hi5, twitter.
●


    Prepaid Telecoms
●


    Banking/XTP
●


    Online Gaming
●


    Online Fraud/Risk Management
●
Need For Speed

A brokerage can lose up to $4 million per millisecond of
  latency.
                                              - The Tabb Group


An additional 500 ms latency resulted in -20% traffic.
                                                         - Google


An additional 100 ms in latency resulted in -1% sales.
                                                     - Amazon
Cost of Downtime

According to a 2004 Forrester survey of 235 companies the
  hourly cost of downtime was:


         Percent of Companies       Hourly Cost

                33%                 $10K-100K

                25%                 $100K-500K

                13%                 $500K- 1M

                 4%                   >$1M

                25%                 Didn't Know
Unpredictable work load

    How do you design and build applications that cost-
●

      effectively scale in such conditions?
    Without compromising reliability, performance and time-
●

      to-market?
Scalability
The solutions is to have scalable softwares. With scalability
  we create speed and reliability.
           Vertical scalability; More powerful machines leads to
       –
             faster software.
           Horizontal scalability; More boxes leads to faster and
       –
             more reliable software.
           Linear scalability; The overall throughput = (number of
       –
             processing units) * (throughput per unit).
           Dynamic scalability; Scale on demand (usually using
       –
             some sort of provisioning and monitoring
             capabilities)
We usually refer to horizontal scalability, since its more
 applicable and cost effective. Budget is a great excuse.
Amdal's Law

 if, for example, your program has only 10% of a given function
synchronized, then:
if the throughput of that function at a single CPU is 100
messages per second,
to increase performance by a factor of 10 (to 1,000 msg/sec)
we will need to increase our CPU resources by a factor of 100


This is 10 times more then what would have been required if
the application wouldn't have any synchronization blocks in its
code
Scalability Wall

Non-Scalable applications are expensive and risky.
At some point the application will hit a wall:
    Application crashes
●


    Re-architecting the application every few months/years
●




                                             Server cost 20,000
                                             Server Throughput:
                                             1,000 tx/sec
                                             Contention: 15%
Amdal's Law Consequences
To have scalable softwares, we should eliminate
  synchronized blocks. This means eliminating the
  bottlenecks and contentions.
Do We build Scalable Software?
Order Management Example
Need Availability? Things Get Worse
Tier Based Car-wash

                          Total CPH is the
                      ●

                          minimal CPH.
                          Failure in each
                      ●

                          warehouse makes
                          the whole
                          business fail.
                          To increase
                      ●

                          performance need
                          to budget all three
                          warehouses.
                          Personnel with
                      ●

                          specialized
                          capabilities.
All in One Car-wash

                   To increase CPH,
               ●

                   simple add new
                   warehouses.
                   Better resources
               ●

                   utilization.
                   Each warehouse is
               ●

                   independent.
                   Less steps
               ●
Scaling Made Simple – Process Unit Design
Space-Based Architecture

    Based on Object Space Computational Model.
●


    Processing Unit
●


            Self sufficient unit of scale
        –

            Combination of Data, Processing and Messaging
        –

    Principles of Partitioning
●


    Content Based Routing
●


    Interaction Model Abstractions
●
Inside A Processing Unit
Closer Look at PU
Parallel Pus – Bring Linear Scalability
The Ideal Scenario - “Write Once Scale Anywhere”


                               Scale-out to get more
                           ●

                               processing power
                               when volume
                               increases.
                               Through caching
                           ●


                               Parallelizing of TX
                           ●


                               Low commodity
                           ●

                               resources
                               Better Utilization
                           ●
Space Based Architecture – Theory Basics

    Object Spaces is a paradigm for development of
●

    distributed computing applications.
    Spaces can be used to achieve scalability through parallel
●

    processing.
    Objects, when deposited in an Object Space are passive,
●

    i.e., their methods cannot be invoked while the objects are
    in the Object Space.
    This paradigm inherently provides mutual exclusion.
●


    Linda coordination language was developed at Yale.
●


    Object Spaces is usually called Tuple Spaces since it
●

    contains of tuples unrelated to each others.
SBA Paradigm in Java;
            Sun Didn't (Re)invent The Wheel

    Linda a language and platform on tuple-spaces.
●


    Space model was recommending a plug-n-play
●

      infrastructure.
            Jini was there
        –

    So JavaSpaces was invented, based on TupleSpaces
●

      paradigm and on top of Jini platform.
    By the way Java is not the only language to take the
●

      concept. Tuple-spaces are ported to many other
      languages such as Python, Ruby, Scala, C, .NET, ... .
Tuple/Java Spaces Basics Operations
JavaSpaces Standard API

// An Entry class
public class SpaceEntry implements Entry {
   public Integer count = 0;
   public String toString() {
      return quot;Count: quot; + count;
    }
}


public class Server {
  public static void main(String[] args) throws Exception {
    SpaceEntry entry = new SpaceEntry();
    JavaSpace space = (JavaSpace) space();

    // Register and write the Entry into the Space
    space.write(entry, null, Lease.FOREVER);

    // retrieve the Entry and check its state.
    SpaceEntry e = space.read(new SpaceEntry(), null, Long.MAX_VALUE);
}
Java Spaces Implementations

    Sun RI (now River Project)
●


    Orbitz (running orbitz.com)
●


    Blitz (open source)
●


    Openwings (?)
●


    Semispaces
●


    TSpaces (IBM's implementation)
●


    GigaSpaces
●
About GigaSpaces Technologies
    Provides Application Platform product (XAP) for
●

      applications characterized by:
            High volume transaction processing and
        –

            Very Low latency requirements
        –

            Large Data Volumes
        –

    Scaled-Out Application Server – GigaSpaces XAP
●


            In-Memory Data Grid
        –

            Service Grid
        –

            Java, .NET and C++
        –

    Customer Base
●


            Financial Services, Retail, Banking, Gaming
        –
XAP – eXtreme Application Platform

XAP – pronounced zap - a new class of application server
  focusing cloud computing and scaling out architectures.


Used for two main domain:
    Data intensive/EDG (write-behind cache)
●


    Compute intensive
●
GigaSpaces Architecture – Sub Systems
GigaSpaces Architecture - Runtime
GigaSpaces Architecture - SLA
How Can GigaSpaces Help Me
    To much data and DB is slow. My application has too many
●

    interactions with database.
    Application does not scale well. We have (strong) hardware but
●

    throughput does not increase anymore (symptom of tier based
    architecture)
    We develop XTP platform. e.g. billing, banking, finance.
●



    Not pleased with my HTTP session clustering solution.
●



    Want an scalable SOA/ESB platform.
●



    Need in memory indexing, searching.
●



    Want to deploy my application in cloud (pay-as-you-go)
●



    Want CBR over my MQ.
●



    We don't use Java. Want to stay in C++ or .NET.
●



    Want SLA in my application/data-partition.
●
Expectations From Application Server

    Data access
●


    Messaging / Event Processing
●


    Remoting
●


    TX management
●


    Web
●
Migration to GigaSpaces
    Messaging / Event processing
●


              Replace MDBs with GigaSpaces event listeners
          –

    Remoting
●


              Replace SLSBs with GigaSpaces SVF
          –
                (Remoting/Executors)
    Data access
●


              Use GigaSpaces 2nd cache for Hibernate
          –

              Convert your DAOs to use GigaSpaces, use mirror to persist
          –

    TX management
●


              Use Spring…
          –

    Web
●


              Use GigaSpaces web processing unit
          –

              Use GS HTTP session replication
          –
Migration in Practice

Converted       Code change           Config Effort
  Layer                               change   (3 is
                                               biggest)

Messaging       Minor to none           Yes       1


                                                  1
Remoting              No                Yes


                                        Yes      2-3
  Data      ORM 2nd level cache: No
 Access            DAO: Yes
                                                  1
  Http                No                No
 Session
XAP and Integration to Other (JEE) Platforms

    Spring
●


    ORM
●


    Lucene/Compass
●


    Mule ESB
●


    JGroovy, JRuby, and hopefully Scala
●


    C++
●


    .NET
●
XAP Alternatives

    Data Grid
●


        GemFire, Coherence
    –

    Shared Memory
●


        Terracotta/NAM, Memcached, Tokyo Cabinet, Infinispin
    –

    Computation Grids
●


        IBM Extreme Scale Platform
    –

    Cloud/Grid
●


        Google AppEngine, GridGain
    –

    Map Reduce Engines
●


        Hadoop, Disco, Skynet
    –
Case Study – MAGFA SMPP Gateway
Case Study – Let's See it in Action
Other Useful Results
    Use everything in place. Memcached helped us a lot to
●

    have a fast, simple and centralized Key/Value store.
    BASE-like transactions in favor of full XA. Memcached as
●

    a transaction-memory.
    Tried on both Linux and Solaris. No tangible difference.
●


    Don't design for an specific platform. Use them as tools.
●


             Easily switched to ActiveMQ, RabbitMQ, Coherence
         –

    Spring greatly helps to apply above rule.
●


    Love immutable. It prevents bugs before they happen.
●


    Reduces contention as much as possible.
●
References

    Migrating JEE Apps to GigaSpaces, Uri Cohen
●


    Scaling Out Tier Based Applications, Nati Shalom
●


    Cloud Computing; Designing Applications for Efficiency,
●

      Geva Perry
    Characteristics of The Next Generation Application
●

      Servers, Guy Nirpaz
    GigaSpaces Wiki
●


    Wikipedia
●
Thanks for Your Attention




          Q/A

Contenu connexe

Tendances

Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...Amazon Web Services
 
Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and componentsD.Rajesh Kumar
 
Designing High Available Cloud Applications
Designing High Available Cloud ApplicationsDesigning High Available Cloud Applications
Designing High Available Cloud ApplicationsGiovanni Mazzeo
 
DevOps Monitoring and Alerting
DevOps Monitoring and AlertingDevOps Monitoring and Alerting
DevOps Monitoring and AlertingKhairul Zebua
 
Melbourne UG Presentation - UI Flow for Power Automate
Melbourne UG Presentation - UI Flow for Power AutomateMelbourne UG Presentation - UI Flow for Power Automate
Melbourne UG Presentation - UI Flow for Power AutomateAndre Margono
 
Automate mule deployments with github actions and travis ci
Automate mule deployments with github actions  and  travis ciAutomate mule deployments with github actions  and  travis ci
Automate mule deployments with github actions and travis ciNeerajKumar1965
 
01 la programmation batch - les debuts
01   la programmation batch - les debuts01   la programmation batch - les debuts
01 la programmation batch - les debutsWenceslas Dima
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design ArchitectureHarish Kumar
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWSAmazon Web Services
 

Tendances (20)

Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
Microservices on AWS: Architectural Patterns and Best Practices | AWS Summit ...
 
Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and components
 
Cloud migration
Cloud migrationCloud migration
Cloud migration
 
Arquitectura web
Arquitectura webArquitectura web
Arquitectura web
 
Designing High Available Cloud Applications
Designing High Available Cloud ApplicationsDesigning High Available Cloud Applications
Designing High Available Cloud Applications
 
Vitualisation
VitualisationVitualisation
Vitualisation
 
DevOps Monitoring and Alerting
DevOps Monitoring and AlertingDevOps Monitoring and Alerting
DevOps Monitoring and Alerting
 
Melbourne UG Presentation - UI Flow for Power Automate
Melbourne UG Presentation - UI Flow for Power AutomateMelbourne UG Presentation - UI Flow for Power Automate
Melbourne UG Presentation - UI Flow for Power Automate
 
Devops
DevopsDevops
Devops
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
Camunda in Action
Camunda in ActionCamunda in Action
Camunda in Action
 
Azure devops
Azure devopsAzure devops
Azure devops
 
Automate mule deployments with github actions and travis ci
Automate mule deployments with github actions  and  travis ciAutomate mule deployments with github actions  and  travis ci
Automate mule deployments with github actions and travis ci
 
SecDevOps
SecDevOpsSecDevOps
SecDevOps
 
01 la programmation batch - les debuts
01   la programmation batch - les debuts01   la programmation batch - les debuts
01 la programmation batch - les debuts
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design Architecture
 
Devops
DevopsDevops
Devops
 
Mendix Platform
Mendix PlatformMendix Platform
Mendix Platform
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWS
 
Database CI/CD Pipeline
Database CI/CD PipelineDatabase CI/CD Pipeline
Database CI/CD Pipeline
 

En vedette

Space-Based Architecture
Space-Based ArchitectureSpace-Based Architecture
Space-Based ArchitectureSuresh Patidar
 
Architecture or revolution
Architecture or revolution Architecture or revolution
Architecture or revolution Nindito Nondito
 
Architectural Space as a Network - Physical and Virtual Communities
Architectural Space as a Network - Physical and Virtual CommunitiesArchitectural Space as a Network - Physical and Virtual Communities
Architectural Space as a Network - Physical and Virtual CommunitiesUCL
 
Architecture form, space and order 1st ed.
Architecture   form, space and order 1st ed.Architecture   form, space and order 1st ed.
Architecture form, space and order 1st ed.Adan Murillo
 

En vedette (6)

Space-Based Architecture
Space-Based ArchitectureSpace-Based Architecture
Space-Based Architecture
 
Architecture or revolution
Architecture or revolution Architecture or revolution
Architecture or revolution
 
Architectural Space as a Network - Physical and Virtual Communities
Architectural Space as a Network - Physical and Virtual CommunitiesArchitectural Space as a Network - Physical and Virtual Communities
Architectural Space as a Network - Physical and Virtual Communities
 
Architecture form, space and order 1st ed.
Architecture   form, space and order 1st ed.Architecture   form, space and order 1st ed.
Architecture form, space and order 1st ed.
 
Le corbusier - A Brief
Le corbusier - A BriefLe corbusier - A Brief
Le corbusier - A Brief
 
Interior space
Interior spaceInterior space
Interior space
 

Similaire à An Introduction To Space Based Architecture

Empowering Amazon EC2 with GigaSpaces XAP
Empowering Amazon EC2 with GigaSpaces XAPEmpowering Amazon EC2 with GigaSpaces XAP
Empowering Amazon EC2 with GigaSpaces XAPUri Cohen
 
A scalable server environment for your applications
A scalable server environment for your applicationsA scalable server environment for your applications
A scalable server environment for your applicationsGigaSpaces
 
Giga Spaces Getting Ready For The Cloud
Giga Spaces   Getting Ready For The CloudGiga Spaces   Getting Ready For The Cloud
Giga Spaces Getting Ready For The Cloudchzesin
 
GigaSpaces - Getting Ready For The Cloud
GigaSpaces - Getting Ready For The CloudGigaSpaces - Getting Ready For The Cloud
GigaSpaces - Getting Ready For The Cloudgigaspaces
 
Performance Comparison of Streaming Big Data Platforms
Performance Comparison of Streaming Big Data PlatformsPerformance Comparison of Streaming Big Data Platforms
Performance Comparison of Streaming Big Data PlatformsDataWorks Summit/Hadoop Summit
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale ArchitectureRightScale
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Nane Kratzke
 
ASAS 2013 - Space-based architecture: Linear scalability? High throughput? Lo...
ASAS 2013 - Space-based architecture: Linear scalability? High throughput? Lo...ASAS 2013 - Space-based architecture: Linear scalability? High throughput? Lo...
ASAS 2013 - Space-based architecture: Linear scalability? High throughput? Lo...Avisi B.V.
 
AWS re:Invent 2016: Building HPC Clusters as Code in the (Almost) Infinite Cl...
AWS re:Invent 2016: Building HPC Clusters as Code in the (Almost) Infinite Cl...AWS re:Invent 2016: Building HPC Clusters as Code in the (Almost) Infinite Cl...
AWS re:Invent 2016: Building HPC Clusters as Code in the (Almost) Infinite Cl...Amazon Web Services
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 NotesRoss Lawley
 
One millions users vs your web application mega testing cloud applications pr...
One millions users vs your web application mega testing cloud applications pr...One millions users vs your web application mega testing cloud applications pr...
One millions users vs your web application mega testing cloud applications pr...Justin Dorfman
 
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your CloudCloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your CloudMark Hinkle
 
Azul yandexjune010
Azul yandexjune010Azul yandexjune010
Azul yandexjune010yaevents
 
Internet World Web2
Internet World Web2Internet World Web2
Internet World Web2BobsNJ
 
Improving velocity through abstraction
Improving velocity through abstractionImproving velocity through abstraction
Improving velocity through abstractionVictorSzoltysek
 
Accelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of GenomicsAccelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of GenomicsAmazon Web Services
 
Building Web Applications on AWS - AWS Summit 2012 - NYC
Building Web Applications on AWS - AWS Summit 2012 - NYCBuilding Web Applications on AWS - AWS Summit 2012 - NYC
Building Web Applications on AWS - AWS Summit 2012 - NYCAmazon Web Services
 
Machine learning model to production
Machine learning model to productionMachine learning model to production
Machine learning model to productionGeorg Heiler
 
Architecture Best Practices on Windows Azure
Architecture Best Practices on Windows AzureArchitecture Best Practices on Windows Azure
Architecture Best Practices on Windows AzureNuno Godinho
 

Similaire à An Introduction To Space Based Architecture (20)

Empowering Amazon EC2 with GigaSpaces XAP
Empowering Amazon EC2 with GigaSpaces XAPEmpowering Amazon EC2 with GigaSpaces XAP
Empowering Amazon EC2 with GigaSpaces XAP
 
A scalable server environment for your applications
A scalable server environment for your applicationsA scalable server environment for your applications
A scalable server environment for your applications
 
Giga Spaces Getting Ready For The Cloud
Giga Spaces   Getting Ready For The CloudGiga Spaces   Getting Ready For The Cloud
Giga Spaces Getting Ready For The Cloud
 
GigaSpaces - Getting Ready For The Cloud
GigaSpaces - Getting Ready For The CloudGigaSpaces - Getting Ready For The Cloud
GigaSpaces - Getting Ready For The Cloud
 
Performance Comparison of Streaming Big Data Platforms
Performance Comparison of Streaming Big Data PlatformsPerformance Comparison of Streaming Big Data Platforms
Performance Comparison of Streaming Big Data Platforms
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale Architecture
 
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
Smuggling Multi-Cloud Support into Cloud-native Applications using Elastic Co...
 
ASAS 2013 - Space-based architecture: Linear scalability? High throughput? Lo...
ASAS 2013 - Space-based architecture: Linear scalability? High throughput? Lo...ASAS 2013 - Space-based architecture: Linear scalability? High throughput? Lo...
ASAS 2013 - Space-based architecture: Linear scalability? High throughput? Lo...
 
AWS re:Invent 2016: Building HPC Clusters as Code in the (Almost) Infinite Cl...
AWS re:Invent 2016: Building HPC Clusters as Code in the (Almost) Infinite Cl...AWS re:Invent 2016: Building HPC Clusters as Code in the (Almost) Infinite Cl...
AWS re:Invent 2016: Building HPC Clusters as Code in the (Almost) Infinite Cl...
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 Notes
 
One millions users vs your web application mega testing cloud applications pr...
One millions users vs your web application mega testing cloud applications pr...One millions users vs your web application mega testing cloud applications pr...
One millions users vs your web application mega testing cloud applications pr...
 
NoSQL and ACID
NoSQL and ACIDNoSQL and ACID
NoSQL and ACID
 
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your CloudCloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
 
Azul yandexjune010
Azul yandexjune010Azul yandexjune010
Azul yandexjune010
 
Internet World Web2
Internet World Web2Internet World Web2
Internet World Web2
 
Improving velocity through abstraction
Improving velocity through abstractionImproving velocity through abstraction
Improving velocity through abstraction
 
Accelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of GenomicsAccelerating Analytics for the Future of Genomics
Accelerating Analytics for the Future of Genomics
 
Building Web Applications on AWS - AWS Summit 2012 - NYC
Building Web Applications on AWS - AWS Summit 2012 - NYCBuilding Web Applications on AWS - AWS Summit 2012 - NYC
Building Web Applications on AWS - AWS Summit 2012 - NYC
 
Machine learning model to production
Machine learning model to productionMachine learning model to production
Machine learning model to production
 
Architecture Best Practices on Windows Azure
Architecture Best Practices on Windows AzureArchitecture Best Practices on Windows Azure
Architecture Best Practices on Windows Azure
 

Dernier

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

An Introduction To Space Based Architecture

  • 1. An Introduction to Space Based Architecture Amin Abbaspour MAGFA IT Development Center twitter.com/abbaspour
  • 2. Agenda Title Time Scalability, why and hows (15) 10 Space Based Architecture (6) 5 Java Spaces (4) 5 GigaSpaces (5) 10 Migrating Spring Apps to GigaSpaces (6) 5 Case Study (2) 10 Conclusion (2) 1 Q/A - 40 slides 45 min
  • 3. Innovation Comes From The Need The applications workload is increasing each day. This is inevitable. We expect fast and reliable softwares even with increasing workload. Speed and reliability means the death or life of a business.
  • 4. But why so much Workload? Todays softwares are not limited to operators and limited society. They directly interact with millions of people and thousand of other softwares. Large scale community sites, like facebook, hi5, twitter. ● Prepaid Telecoms ● Banking/XTP ● Online Gaming ● Online Fraud/Risk Management ●
  • 5. Need For Speed A brokerage can lose up to $4 million per millisecond of latency. - The Tabb Group An additional 500 ms latency resulted in -20% traffic. - Google An additional 100 ms in latency resulted in -1% sales. - Amazon
  • 6. Cost of Downtime According to a 2004 Forrester survey of 235 companies the hourly cost of downtime was: Percent of Companies Hourly Cost 33% $10K-100K 25% $100K-500K 13% $500K- 1M 4% >$1M 25% Didn't Know
  • 7. Unpredictable work load How do you design and build applications that cost- ● effectively scale in such conditions? Without compromising reliability, performance and time- ● to-market?
  • 8. Scalability The solutions is to have scalable softwares. With scalability we create speed and reliability. Vertical scalability; More powerful machines leads to – faster software. Horizontal scalability; More boxes leads to faster and – more reliable software. Linear scalability; The overall throughput = (number of – processing units) * (throughput per unit). Dynamic scalability; Scale on demand (usually using – some sort of provisioning and monitoring capabilities) We usually refer to horizontal scalability, since its more applicable and cost effective. Budget is a great excuse.
  • 9. Amdal's Law if, for example, your program has only 10% of a given function synchronized, then: if the throughput of that function at a single CPU is 100 messages per second, to increase performance by a factor of 10 (to 1,000 msg/sec) we will need to increase our CPU resources by a factor of 100 This is 10 times more then what would have been required if the application wouldn't have any synchronization blocks in its code
  • 10. Scalability Wall Non-Scalable applications are expensive and risky. At some point the application will hit a wall: Application crashes ● Re-architecting the application every few months/years ● Server cost 20,000 Server Throughput: 1,000 tx/sec Contention: 15%
  • 11. Amdal's Law Consequences To have scalable softwares, we should eliminate synchronized blocks. This means eliminating the bottlenecks and contentions.
  • 12. Do We build Scalable Software?
  • 15. Tier Based Car-wash Total CPH is the ● minimal CPH. Failure in each ● warehouse makes the whole business fail. To increase ● performance need to budget all three warehouses. Personnel with ● specialized capabilities.
  • 16. All in One Car-wash To increase CPH, ● simple add new warehouses. Better resources ● utilization. Each warehouse is ● independent. Less steps ●
  • 17. Scaling Made Simple – Process Unit Design
  • 18. Space-Based Architecture Based on Object Space Computational Model. ● Processing Unit ● Self sufficient unit of scale – Combination of Data, Processing and Messaging – Principles of Partitioning ● Content Based Routing ● Interaction Model Abstractions ●
  • 21. Parallel Pus – Bring Linear Scalability
  • 22. The Ideal Scenario - “Write Once Scale Anywhere” Scale-out to get more ● processing power when volume increases. Through caching ● Parallelizing of TX ● Low commodity ● resources Better Utilization ●
  • 23. Space Based Architecture – Theory Basics Object Spaces is a paradigm for development of ● distributed computing applications. Spaces can be used to achieve scalability through parallel ● processing. Objects, when deposited in an Object Space are passive, ● i.e., their methods cannot be invoked while the objects are in the Object Space. This paradigm inherently provides mutual exclusion. ● Linda coordination language was developed at Yale. ● Object Spaces is usually called Tuple Spaces since it ● contains of tuples unrelated to each others.
  • 24. SBA Paradigm in Java; Sun Didn't (Re)invent The Wheel Linda a language and platform on tuple-spaces. ● Space model was recommending a plug-n-play ● infrastructure. Jini was there – So JavaSpaces was invented, based on TupleSpaces ● paradigm and on top of Jini platform. By the way Java is not the only language to take the ● concept. Tuple-spaces are ported to many other languages such as Python, Ruby, Scala, C, .NET, ... .
  • 26. JavaSpaces Standard API // An Entry class public class SpaceEntry implements Entry { public Integer count = 0; public String toString() { return quot;Count: quot; + count; } } public class Server { public static void main(String[] args) throws Exception { SpaceEntry entry = new SpaceEntry(); JavaSpace space = (JavaSpace) space(); // Register and write the Entry into the Space space.write(entry, null, Lease.FOREVER); // retrieve the Entry and check its state. SpaceEntry e = space.read(new SpaceEntry(), null, Long.MAX_VALUE); }
  • 27. Java Spaces Implementations Sun RI (now River Project) ● Orbitz (running orbitz.com) ● Blitz (open source) ● Openwings (?) ● Semispaces ● TSpaces (IBM's implementation) ● GigaSpaces ●
  • 28. About GigaSpaces Technologies Provides Application Platform product (XAP) for ● applications characterized by: High volume transaction processing and – Very Low latency requirements – Large Data Volumes – Scaled-Out Application Server – GigaSpaces XAP ● In-Memory Data Grid – Service Grid – Java, .NET and C++ – Customer Base ● Financial Services, Retail, Banking, Gaming –
  • 29. XAP – eXtreme Application Platform XAP – pronounced zap - a new class of application server focusing cloud computing and scaling out architectures. Used for two main domain: Data intensive/EDG (write-behind cache) ● Compute intensive ●
  • 33. How Can GigaSpaces Help Me To much data and DB is slow. My application has too many ● interactions with database. Application does not scale well. We have (strong) hardware but ● throughput does not increase anymore (symptom of tier based architecture) We develop XTP platform. e.g. billing, banking, finance. ● Not pleased with my HTTP session clustering solution. ● Want an scalable SOA/ESB platform. ● Need in memory indexing, searching. ● Want to deploy my application in cloud (pay-as-you-go) ● Want CBR over my MQ. ● We don't use Java. Want to stay in C++ or .NET. ● Want SLA in my application/data-partition. ●
  • 34. Expectations From Application Server Data access ● Messaging / Event Processing ● Remoting ● TX management ● Web ●
  • 35. Migration to GigaSpaces Messaging / Event processing ● Replace MDBs with GigaSpaces event listeners – Remoting ● Replace SLSBs with GigaSpaces SVF – (Remoting/Executors) Data access ● Use GigaSpaces 2nd cache for Hibernate – Convert your DAOs to use GigaSpaces, use mirror to persist – TX management ● Use Spring… – Web ● Use GigaSpaces web processing unit – Use GS HTTP session replication –
  • 36. Migration in Practice Converted Code change Config Effort Layer change (3 is biggest) Messaging Minor to none Yes 1 1 Remoting No Yes Yes 2-3 Data ORM 2nd level cache: No Access DAO: Yes 1 Http No No Session
  • 37. XAP and Integration to Other (JEE) Platforms Spring ● ORM ● Lucene/Compass ● Mule ESB ● JGroovy, JRuby, and hopefully Scala ● C++ ● .NET ●
  • 38. XAP Alternatives Data Grid ● GemFire, Coherence – Shared Memory ● Terracotta/NAM, Memcached, Tokyo Cabinet, Infinispin – Computation Grids ● IBM Extreme Scale Platform – Cloud/Grid ● Google AppEngine, GridGain – Map Reduce Engines ● Hadoop, Disco, Skynet –
  • 39. Case Study – MAGFA SMPP Gateway
  • 40. Case Study – Let's See it in Action
  • 41. Other Useful Results Use everything in place. Memcached helped us a lot to ● have a fast, simple and centralized Key/Value store. BASE-like transactions in favor of full XA. Memcached as ● a transaction-memory. Tried on both Linux and Solaris. No tangible difference. ● Don't design for an specific platform. Use them as tools. ● Easily switched to ActiveMQ, RabbitMQ, Coherence – Spring greatly helps to apply above rule. ● Love immutable. It prevents bugs before they happen. ● Reduces contention as much as possible. ●
  • 42. References Migrating JEE Apps to GigaSpaces, Uri Cohen ● Scaling Out Tier Based Applications, Nati Shalom ● Cloud Computing; Designing Applications for Efficiency, ● Geva Perry Characteristics of The Next Generation Application ● Servers, Guy Nirpaz GigaSpaces Wiki ● Wikipedia ●
  • 43. Thanks for Your Attention Q/A