SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Semelhante a Are you weak in the middle?

SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingWSO2
 
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 Jitendra Bafna
 
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 infrastructureYshay Yaacobi
 
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 actionMukesh Singh
 
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 webinarChanaka Fernando
 
Patna_Meetup_MQ
Patna_Meetup_MQPatna_Meetup_MQ
Patna_Meetup_MQOm Prakash
 
Microservice at a glance
Microservice at a glanceMicroservice at a glance
Microservice at a glanceKetan Ghumatkar
 
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
 
Introduction to AdroitLogic and UltraESB
Introduction to AdroitLogic and UltraESBIntroduction to AdroitLogic and UltraESB
Introduction to AdroitLogic and UltraESBAdroitLogic
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservicesRon Barabash
 
Monolithic to Microservices Architecture - STM 6
Monolithic to Microservices Architecture - STM 6Monolithic to Microservices Architecture - STM 6
Monolithic to Microservices Architecture - STM 6Tricode (part of Dept)
 
Introduction of Apache Camel
Introduction of Apache CamelIntroduction of Apache Camel
Introduction of Apache CamelKnoldus Inc.
 
ESB vs API management
ESB vs API managementESB vs API management
ESB vs API managementAdroitLogic
 
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 CalcDidiet A. Pambudiono
 
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.0WSO2
 
API Days Australia
API Days AustraliaAPI Days Australia
API Days Australiaconfluent
 

Semelhante a 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
 

Mais de FSCONS

Rikard Fröberg - Events for everybody
Rikard Fröberg - Events for everybodyRikard Fröberg - Events for everybody
Rikard Fröberg - Events for everybodyFSCONS
 
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 ProjectFSCONS
 
Ester Ytterbrink - FOSS for crips
Ester Ytterbrink - FOSS for cripsEster Ytterbrink - FOSS for crips
Ester Ytterbrink - FOSS for cripsFSCONS
 
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å shareaFSCONS
 
Appleseed Social Networking
Appleseed Social NetworkingAppleseed Social Networking
Appleseed Social NetworkingFSCONS
 
Distributed Democracy
Distributed DemocracyDistributed Democracy
Distributed DemocracyFSCONS
 
Open Hardware Repository
Open Hardware RepositoryOpen Hardware Repository
Open Hardware RepositoryFSCONS
 
2010 11 eek kangas
2010 11 eek kangas2010 11 eek kangas
2010 11 eek kangasFSCONS
 
The Inanna Project
The Inanna ProjectThe Inanna Project
The Inanna ProjectFSCONS
 
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
 
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 2010FSCONS
 
Embedding Linux For An Automotive Environment
Embedding Linux For An Automotive EnvironmentEmbedding Linux For An Automotive Environment
Embedding Linux For An Automotive EnvironmentFSCONS
 
GNU Parallel - Ole Tange
GNU Parallel - Ole TangeGNU Parallel - Ole Tange
GNU Parallel - Ole TangeFSCONS
 
Embedded erlang-fscons-2010
Embedded erlang-fscons-2010Embedded erlang-fscons-2010
Embedded erlang-fscons-2010FSCONS
 
Filesharer? GO TO JAIL!
Filesharer? GO TO JAIL!Filesharer? GO TO JAIL!
Filesharer? GO TO JAIL!FSCONS
 
Etik och it
Etik och itEtik och it
Etik och itFSCONS
 
Kaizendo: Customizable schoolbooks
Kaizendo: Customizable schoolbooksKaizendo: Customizable schoolbooks
Kaizendo: Customizable schoolbooksFSCONS
 
Multitouching your apps
Multitouching your appsMultitouching your apps
Multitouching your appsFSCONS
 
Who are the free users
Who are the free usersWho are the free users
Who are the free usersFSCONS
 

Mais de 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
 

Último

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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
🐬 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
 
[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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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 MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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.pdfUK Journal
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Último (20)

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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

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