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?

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
 

Ä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 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
 

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

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
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 FresherRemote DBA Services
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 

Kürzlich hochgeladen (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

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