SlideShare ist ein Scribd-Unternehmen logo
1 von 36
FSCONS 2010
Vjaceslavs Klimovs, Nicolae Paladi
Are you weak
in the middle?
Use of message oriented middleware for
secure transaction processing in
heterogeneous application environment
About us
●Vjaceslavs Klimovs
● Software Engineering degree from
Gothenburg University
● Employed by Opera Software
● Various hobby projects
● SCJP, SCJD, SCWCD, ZCE, CCNP
●Nicolae Paladi
● Software Engineering degree from
Gothenburg University
● Current studies at Luleå University
● Intrest in functional languages and
miscellaneous open source projects
Overview
● Theory
● Definition
● Motivation
● Classification
● MOM
● Practice
● Standards
● APIs
● What's on the market
● Case study
● Sloth – transaction processing system at
Peer Mobile AB
Middleware
Middleware is a link between two
or more objects:
● Different parts of the application
● Different local applications
● Different distributed applications
Essentially, middleware is a
software glue.
There are several types of middleware:
● Transactional – X/Open XA
● Procedural – XML-RPC...
● Object oriented – CORBA...
● Message oriented – AMQP, Stomp
Transactional middleware
Includes:
● Transaction process monitors
● Web application servers
Used for:
● Monitoring transaction while it is passed from
one resource to another
● ACID across multiple resources
Examples:
● TPM: JBoss Enterprise Middleware Suite
● Web application server: WebSphere
Procedural middleware
Includes:
● Technologies and standards for remote
procedure calling
Used for:
●(Typically) synchronous remote procedure
invocation
● Hiding complexity from the caller
Examples:
● Java RMI
● .NET Remoting
● XML-RPC
Object oriented middleware
Includes:
● Object request brokers
Used for:
● Object oriented, often asynchronous,
local or remote method invocation
● Hiding complexity from the caller
Examples:
● CORBA
Message oriented middleware
Includes:
● Message brokers
Used for:
● Store and forward messaging
● Publish/subscribe messaging
Examples:
● RabbitMQ
● ActiveMQ
Distinction between middleware types is
blurry.
● CORBA is ultimately used for remote
procedure invocation → Procedural semantics
● RMI requires proxy (stub) object → Object
orientation
● Message broker +
transaction monitor →
Transactional capabilities
(Message oriented) middleware key requirements
● Heterogeneity
● Scalability
● Reliability
● Message receiving subsystem – register and
acknowledge
● A message routing system - filter and process
● Message delivery subsystem - deliver
MOM key components
Looks familiar, doesn't it?
System of that kind was around for a very long
time - e-mail
● Receive – SMTP
● Filter – before after or inside MTA
● Deliver – POP, IMAP
Another example is XMPP – solves
federation problem.
The problem, revisited
● High number of requests
● High request variance in both priority and
workload
● Reliability requirements
● Not a lot of money for development
From the perspective of Next Big Thing
Transactional, procedural, object oriented
middleware are not suitable for this kind
of work:
● Not scalable enough
● Not reliable enough
● Poor coping with request variance
OTOH, it is important to know what is important
Does it really matter for this particular user,
right now, this very second, that their status
update, tweet or whatever highly important
information they have just created reaches
their friends immediately?
But even more important is to know what is not
important.
Also, how many times can you potentially use word “important” on one slide?
Probably not
There is no need to do everything all at once
From the Next Big Thing perspective, there are
however three types of latency requirements:
● No tolerance for delay (150-200 ms) – typically
the creator of the content
● Small tolerance (8-10 s) – typically direct
connections of the creator of the content
● Ample tolerance (1-2 minutes) – everyone else
Queue everything and delight everyone with the
Help of
Message oriented
middleware (MOM)
“Great thing about standards is that there
are so many to choose from”
Standards:
● AMQP - binary, draft specification
● STOMP - text based, specification is final
● JMS – not a protocol but an API, many
implementations
Plenty of message brokers on the
market:
Which message broker do I choose?
It depends.
● Inconclusive performance benchmarks
● Only partially overlapping feature sets
● Varying level of support, both community and
commercial
● Different use case focus
Peer Mobile AB business concept
● SMS-based mobile commerce service
● Usable for both online and offline media
● Focuses on identifying and processing
customer data based on mobile phone numbers
● Reliability ---> loosing transactions will mean
loss of customer goodwill
● Latency tolerance ---> the use of SMS
assumes allows tolerance for a latency of up to 2
minutes
● Scalability ---> large number of transactions
during peak times
● Interoperability with up to 6 external services
and an arbirary number of business partners
● Priority variation ---> amount and priority of
external service communication depends on the
type of the transaction
At Peer Mobile AB, we choose Apache
ActiveMQ for several reasons:
● Better configuration flexibility
● Excellent community support
● More appropriate focus –
● Relatively low number of
producers/consumers
● High number of messages
● Appropriate reliability guarantees
ActiveMQ is packed with features. Key features
are*:
●OpenWire for high performance clients in Java, C, C++, C#
●Stomp support so that clients can be written easily in C,
Ruby, Perl, Python,
●Supports many advanced features such as Message
Groups, Virtual Destinations, Wildcards and Composite
Destinations
●Fully supports JMS 1.1 and J2EE 1.4 with support for
transient, persistent, transactional and XA messaging
●Supports pluggable transport protocols such as in-VM,
TCP, SSL, NIO, UDP, multicast
●Supports very fast persistence using JDBC along with a
high performance journal
●Designed for high performance clustering, client-server,
peer based communication
●Can be used as an in memory JMS provider, ideal for unit
testing JMS
*from ActiveMQ website
Types of messages:
● Persistent
● Non persistent
Types of message
acknowledgement:
● Auto
● Explicit acknowledgement
● JMS transactions
● XA
Meet the Sloth
As used in Peer Mobile:
● Simple PHP frontend (talking Stomp to the
broker)
● Geographically distributed ActiveMQ message
brokers
● Clustered JDBC high-performance persistence
● Sloth - geographically distributed transaction
processor
Benchmark
●Multiple cheapest Xen instances
●Geographic distribution
●Enqueueing more than 1,5 thousand
transactions per second
Potential:
● Reasonable vertical scalability
● Virtually unlimited horizontal scalability
● Dynamic scaling using cloud
● Potentially open sourcing
Thank you for listening!
vklimovs [swirly thing] peermobile.se
nicolae.paladi [swirly thing] peermobile.se

Weitere ähnliche Inhalte

Ähnlich wie Are you weak in the middle?

Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
AgileNetwork
 
WSO2 Product Release webinar - The WSO2 ESB 4.8.0
WSO2 Product Release webinar - The WSO2 ESB 4.8.0WSO2 Product Release webinar - The WSO2 ESB 4.8.0
WSO2 Product Release webinar - The WSO2 ESB 4.8.0
WSO2
 

Ähnlich wie Are you weak in the middle? (20)

SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous Queuing
 
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
Wso2 esb 5.0.0 product release webinar
Wso2 esb 5.0.0   product release webinarWso2 esb 5.0.0   product release webinar
Wso2 esb 5.0.0 product release webinar
 
Patna_Meetup_MQ
Patna_Meetup_MQPatna_Meetup_MQ
Patna_Meetup_MQ
 
Microservice at a glance
Microservice at a glanceMicroservice at a glance
Microservice at a glance
 
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
 
Introduction to AdroitLogic and UltraESB
Introduction to AdroitLogic and UltraESBIntroduction to AdroitLogic and UltraESB
Introduction to AdroitLogic and UltraESB
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservices
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Monolithic to Microservices Architecture - STM 6
Monolithic to Microservices Architecture - STM 6Monolithic to Microservices Architecture - STM 6
Monolithic to Microservices Architecture - STM 6
 
Breaking down a monolith
Breaking down a monolithBreaking down a monolith
Breaking down a monolith
 
AMQP with RabbitMQ
AMQP with RabbitMQAMQP with RabbitMQ
AMQP with RabbitMQ
 
Introduction of Apache Camel
Introduction of Apache CamelIntroduction of Apache Camel
Introduction of Apache Camel
 
Industrial presentation
Industrial presentationIndustrial presentation
Industrial presentation
 
ESB vs API management
ESB vs API managementESB vs API management
ESB vs API management
 
Monitoring SLA with Prometheus and LibreOffice Calc
Monitoring SLA with Prometheus and LibreOffice CalcMonitoring SLA with Prometheus and LibreOffice Calc
Monitoring SLA with Prometheus and LibreOffice Calc
 
WSO2 Product Release webinar - The WSO2 ESB 4.8.0
WSO2 Product Release webinar - The WSO2 ESB 4.8.0WSO2 Product Release webinar - The WSO2 ESB 4.8.0
WSO2 Product Release webinar - The WSO2 ESB 4.8.0
 
API Days Australia
API Days AustraliaAPI Days Australia
API Days Australia
 

Mehr von FSCONS

Rikard Fröberg - Events for everybody
Rikard Fröberg - Events for everybodyRikard Fröberg - Events for everybody
Rikard Fröberg - Events for everybody
FSCONS
 
Open Hardware Repository
Open Hardware RepositoryOpen Hardware Repository
Open Hardware Repository
FSCONS
 
How far are we ready to go?
How far are we ready to go?How far are we ready to go?
How far are we ready to go?
FSCONS
 
Embedded erlang-fscons-2010
Embedded erlang-fscons-2010Embedded erlang-fscons-2010
Embedded erlang-fscons-2010
FSCONS
 
Who are the free users
Who are the free usersWho are the free users
Who are the free users
FSCONS
 

Mehr von FSCONS (20)

Rikard Fröberg - Events for everybody
Rikard Fröberg - Events for everybodyRikard Fröberg - Events for everybody
Rikard Fröberg - Events for everybody
 
Mats Lundälv - Open Accessibility Everywhere – Presenting the AEGIS Project
Mats Lundälv - Open Accessibility Everywhere – Presenting the AEGIS ProjectMats Lundälv - Open Accessibility Everywhere – Presenting the AEGIS Project
Mats Lundälv - Open Accessibility Everywhere – Presenting the AEGIS Project
 
Ester Ytterbrink - FOSS for crips
Ester Ytterbrink - FOSS for cripsEster Ytterbrink - FOSS for crips
Ester Ytterbrink - FOSS for crips
 
Evenemang för alla - Presentation på sharea
Evenemang för alla - Presentation på shareaEvenemang för alla - Presentation på sharea
Evenemang för alla - Presentation på sharea
 
Appleseed Social Networking
Appleseed Social NetworkingAppleseed Social Networking
Appleseed Social Networking
 
Distributed Democracy
Distributed DemocracyDistributed Democracy
Distributed Democracy
 
Open Hardware Repository
Open Hardware RepositoryOpen Hardware Repository
Open Hardware Repository
 
2010 11 eek kangas
2010 11 eek kangas2010 11 eek kangas
2010 11 eek kangas
 
The Inanna Project
The Inanna ProjectThe Inanna Project
The Inanna Project
 
Fcons
FconsFcons
Fcons
 
How far are we ready to go?
How far are we ready to go?How far are we ready to go?
How far are we ready to go?
 
Glyn moody ethics of intellectual monopolies - fscons 2010
Glyn moody   ethics of intellectual monopolies - fscons 2010Glyn moody   ethics of intellectual monopolies - fscons 2010
Glyn moody ethics of intellectual monopolies - fscons 2010
 
Embedding Linux For An Automotive Environment
Embedding Linux For An Automotive EnvironmentEmbedding Linux For An Automotive Environment
Embedding Linux For An Automotive Environment
 
GNU Parallel - Ole Tange
GNU Parallel - Ole TangeGNU Parallel - Ole Tange
GNU Parallel - Ole Tange
 
Embedded erlang-fscons-2010
Embedded erlang-fscons-2010Embedded erlang-fscons-2010
Embedded erlang-fscons-2010
 
Filesharer? GO TO JAIL!
Filesharer? GO TO JAIL!Filesharer? GO TO JAIL!
Filesharer? GO TO JAIL!
 
Etik och it
Etik och itEtik och it
Etik och it
 
Kaizendo: Customizable schoolbooks
Kaizendo: Customizable schoolbooksKaizendo: Customizable schoolbooks
Kaizendo: Customizable schoolbooks
 
Multitouching your apps
Multitouching your appsMultitouching your apps
Multitouching your apps
 
Who are the free users
Who are the free usersWho are the free users
Who are the free users
 

Kürzlich hochgeladen

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[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
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Are you weak in the middle?

  • 1. FSCONS 2010 Vjaceslavs Klimovs, Nicolae Paladi Are you weak in the middle? Use of message oriented middleware for secure transaction processing in heterogeneous application environment
  • 2. About us ●Vjaceslavs Klimovs ● Software Engineering degree from Gothenburg University ● Employed by Opera Software ● Various hobby projects ● SCJP, SCJD, SCWCD, ZCE, CCNP ●Nicolae Paladi ● Software Engineering degree from Gothenburg University ● Current studies at Luleå University ● Intrest in functional languages and miscellaneous open source projects
  • 3. Overview ● Theory ● Definition ● Motivation ● Classification ● MOM ● Practice ● Standards ● APIs ● What's on the market ● Case study ● Sloth – transaction processing system at Peer Mobile AB
  • 5. Middleware is a link between two or more objects: ● Different parts of the application ● Different local applications ● Different distributed applications Essentially, middleware is a software glue.
  • 6. There are several types of middleware: ● Transactional – X/Open XA ● Procedural – XML-RPC... ● Object oriented – CORBA... ● Message oriented – AMQP, Stomp
  • 7. Transactional middleware Includes: ● Transaction process monitors ● Web application servers Used for: ● Monitoring transaction while it is passed from one resource to another ● ACID across multiple resources Examples: ● TPM: JBoss Enterprise Middleware Suite ● Web application server: WebSphere
  • 8. Procedural middleware Includes: ● Technologies and standards for remote procedure calling Used for: ●(Typically) synchronous remote procedure invocation ● Hiding complexity from the caller Examples: ● Java RMI ● .NET Remoting ● XML-RPC
  • 9. Object oriented middleware Includes: ● Object request brokers Used for: ● Object oriented, often asynchronous, local or remote method invocation ● Hiding complexity from the caller Examples: ● CORBA
  • 10. Message oriented middleware Includes: ● Message brokers Used for: ● Store and forward messaging ● Publish/subscribe messaging Examples: ● RabbitMQ ● ActiveMQ
  • 11. Distinction between middleware types is blurry. ● CORBA is ultimately used for remote procedure invocation → Procedural semantics ● RMI requires proxy (stub) object → Object orientation ● Message broker + transaction monitor → Transactional capabilities
  • 12. (Message oriented) middleware key requirements ● Heterogeneity ● Scalability ● Reliability
  • 13. ● Message receiving subsystem – register and acknowledge ● A message routing system - filter and process ● Message delivery subsystem - deliver MOM key components
  • 15. System of that kind was around for a very long time - e-mail ● Receive – SMTP ● Filter – before after or inside MTA ● Deliver – POP, IMAP Another example is XMPP – solves federation problem.
  • 16. The problem, revisited ● High number of requests ● High request variance in both priority and workload ● Reliability requirements ● Not a lot of money for development From the perspective of Next Big Thing
  • 17.
  • 18. Transactional, procedural, object oriented middleware are not suitable for this kind of work: ● Not scalable enough ● Not reliable enough ● Poor coping with request variance
  • 19. OTOH, it is important to know what is important Does it really matter for this particular user, right now, this very second, that their status update, tweet or whatever highly important information they have just created reaches their friends immediately? But even more important is to know what is not important. Also, how many times can you potentially use word “important” on one slide?
  • 21. There is no need to do everything all at once From the Next Big Thing perspective, there are however three types of latency requirements: ● No tolerance for delay (150-200 ms) – typically the creator of the content ● Small tolerance (8-10 s) – typically direct connections of the creator of the content ● Ample tolerance (1-2 minutes) – everyone else
  • 22. Queue everything and delight everyone with the Help of Message oriented middleware (MOM)
  • 23. “Great thing about standards is that there are so many to choose from” Standards: ● AMQP - binary, draft specification ● STOMP - text based, specification is final ● JMS – not a protocol but an API, many implementations
  • 24. Plenty of message brokers on the market:
  • 25.
  • 26. Which message broker do I choose? It depends. ● Inconclusive performance benchmarks ● Only partially overlapping feature sets ● Varying level of support, both community and commercial ● Different use case focus
  • 27. Peer Mobile AB business concept ● SMS-based mobile commerce service ● Usable for both online and offline media ● Focuses on identifying and processing customer data based on mobile phone numbers
  • 28. ● Reliability ---> loosing transactions will mean loss of customer goodwill ● Latency tolerance ---> the use of SMS assumes allows tolerance for a latency of up to 2 minutes ● Scalability ---> large number of transactions during peak times ● Interoperability with up to 6 external services and an arbirary number of business partners ● Priority variation ---> amount and priority of external service communication depends on the type of the transaction
  • 29. At Peer Mobile AB, we choose Apache ActiveMQ for several reasons: ● Better configuration flexibility ● Excellent community support ● More appropriate focus – ● Relatively low number of producers/consumers ● High number of messages ● Appropriate reliability guarantees
  • 30. ActiveMQ is packed with features. Key features are*: ●OpenWire for high performance clients in Java, C, C++, C# ●Stomp support so that clients can be written easily in C, Ruby, Perl, Python, ●Supports many advanced features such as Message Groups, Virtual Destinations, Wildcards and Composite Destinations ●Fully supports JMS 1.1 and J2EE 1.4 with support for transient, persistent, transactional and XA messaging ●Supports pluggable transport protocols such as in-VM, TCP, SSL, NIO, UDP, multicast ●Supports very fast persistence using JDBC along with a high performance journal ●Designed for high performance clustering, client-server, peer based communication ●Can be used as an in memory JMS provider, ideal for unit testing JMS *from ActiveMQ website
  • 31. Types of messages: ● Persistent ● Non persistent
  • 32. Types of message acknowledgement: ● Auto ● Explicit acknowledgement ● JMS transactions ● XA
  • 34. As used in Peer Mobile: ● Simple PHP frontend (talking Stomp to the broker) ● Geographically distributed ActiveMQ message brokers ● Clustered JDBC high-performance persistence ● Sloth - geographically distributed transaction processor
  • 35. Benchmark ●Multiple cheapest Xen instances ●Geographic distribution ●Enqueueing more than 1,5 thousand transactions per second Potential: ● Reasonable vertical scalability ● Virtually unlimited horizontal scalability ● Dynamic scaling using cloud ● Potentially open sourcing
  • 36. Thank you for listening! vklimovs [swirly thing] peermobile.se nicolae.paladi [swirly thing] peermobile.se