SlideShare a Scribd company logo
Ranker JMS Implementation
Agenda

● Why Event Processing System For Ranker?

● What are challenges?

● General Overview of JMS

● Walk through ActiveMQ

● Why Messaging?

● Other JMS Providers.
Why Messaging?

 ● Asynchronous operation
− A client can schedule work to be done and return
immediately
− A client can be notified in an event-driven fashion when
something has happened

 ● Loose Coupling
− Systems connected via messaging need not be aware
of each other, or use the same technologies
− Key messages can easily be routed to many systems
− Message broker is buffer in case of downtime
Why Messaging?

●  Fire and Forget
   − Message Broker can guarantee messages are
recorded and delivered even vs. crashes

●  Parallelize Work
   − Messages in a single stream can be handled in
parallel by many client threads or systems

●   Throttle Work
    − A large amount of work can be split into a small
number of threads or systems to throttle effort (e.g. due to
licensing restrictions)
Why Event Processing System For Ranker?
● Ranker has a lot of complicated algorithms running behind
  and user really does not need to wait till the execution of all
  the algorithms.

● You may wish to implement this because the request take a
  long time to complete or because several parties may be
  interested in the actual request
● Eg: Crowd ranked/Vote ranked List aggregation (This
  algorithm may take 1- 5 mts to complete depends of user
  contribution.)

● Email sending functionality.

● Moderation of user input (eg. Bad word filtering)

● List Auto tagging.
What are the challenges?


●   Selecting the JMS provider
     − We are running the app based on Spring 3.0
    /Apache tomcat stack, we have to select the
    appropriate JMS provider. We selected Apache
    ActiveMQ.

●   Reasons for selecting ActiveMQ
    − Its pretty easy to integrate with Spring Framework.
    − Open source project.
    − Pretty good documentation available for ActiveMQ as
    well as for Integration with spring framework.
What is JMS?


●   A specification that describes a common way for Java
    programs to create, send, receive and read distributed
    enterprise messages
●   Loosely coupled communication
●   Asynchronous messaging
●   Reliable delivery
    - A message is guaranteed to be delivered once and
    only once.
●   Outside the specification
    - Security services
    - Management services
A JMS Application

●   JMS Clients
    - Java programs that send/receive messages

●   Messages
    - Administered Objects
    preconfigured JMS objects created by an admin for the
    use of clients
    - ConnectionFactory, Destination (queue or topic)

●   JMS Provider
    - messaging system that implements JMS and
    administrative functionality
JMS Administration
JMS Messaging Domains


●   Point-to-Point (PTP)

    ○   Built around the concept of message queues
    ○   Each message has only one consumer

●   Publish-Subscribe systems

    ○   Uses a “topic” to send and receive messages
    ○   Each message has multiple consumers
Point-to-Point Messaging
Message Consumptions
● Synchronously

  ○ A subscriber or a receiver explicitly fetches the message from
    the destination by calling the receive method.

  ○ The receive method can block until a message arrives or can
    time out if a message does not arrive within a specified time
    limit.

● Asynchronously

  ○ A client can register a message listener with a consumer.

  ○ Whenever a message arrives at the destination, the JMS
    provider delivers the message by calling the listener's
    onMessage() method.
Page 1
JMS Message Types
More JMS Features


●   Durable subscription

    ●   By default a subscriber gets only messages
        published on a topic while a subscriber is alive

    ●   Durable subscription retains messages until a they
        are received by a subscriber or expire
More JMS Features

Difference Between Persistent & Nonpersistent deliveries

   − Persistent delivery take cares of reprocessing the
request if the JMS broker restarted before serving the
request, it will use file/db to store the request, this
implementation is costly compare to non persistent delivery.

   − Nonpersistent delivery will just ignore the request if
broker restarted while serving the request.
About ActiveMQ

●   An open-source message broker (compare to JBossMQ,
    or many commercial products)
       − See http://activemq.apache.org/
●   Generally stable and high-performance
●   Can be run standalone, or inside another process, app
    server, or Java EE application
●   Supports everything JMS requires, plus various
    extensions
●   Integrates well into other products
ActiveMQ Message Extensions

●   Virtual Destinations (load-balancing and failover for
    topics)

●   Retroactive Subscriptions (subscriber can receive some
    number of previous messages on connect)

●   Exclusive Consumers & Message Groups (loadbalancing
    and failover while preserving message ordering)

●   Mirrored queues (monitor queue messages)
ActiveMQ Client Connectivity

●   Dictated by the wire protocol a client uses to talk to the
    broker

●   Generally there are two protocol options – OpenWire
    (binary) and Stomp (text)
    − OpenWire is the default and has the most history and
    best support (including SSL) – for Java, .NET, etc.
    − Stomp is easiest to develop for and therefore has the
    most cross-language support (Perl, Python, Ruby, ...)

●   Also a variety of other special-purpose protocols (Jabber,
    adapters for REST/AJAX, etc.)
ActiveMQ Persistence Options

●   Different strategies available for storing persistent
    messages
    − to local files, database, etc.
    − or both – stored to local files and then periodically batch
    undelivered messages to the DB...

●   Default implementation changed between ActiveMQ 4.x
    and 5.x

●   May still customize the persistence engine based on
    specific performance requirements
ActiveMQ SecurityAnd Management

●   OpenWire protocol can use SSL for encryption

●   Broker can use authentication (e.g. username/password
    required to connect)
    − Uses JAAS to identify the back-end user data store
    (properties files, DB, LDAP, etc.)

●   JMX management enabled by default
    − Use a tool like JConsole to monitor queues, etc.

●   Web Console available as well
ActiveMQ Testing

●   ActiveMQ can easily run in an embedded, nonpersistent,
    in-VM only mode for unit tests

●   Also easily to run ActiveMQ via beans in a Spring context,
    if you're testing with Spring

●   ActiveMQ includes a simple JNDI provider if you want to
    test Java EE code that relies on JNDI lookups to access
    JMS resources

●   Can use tools like JMeter to load test the broker
JMS Providers

●   SunONE Message Queue (SUN)
     ○ A JMS provider integrated with the SunONE

       Application Server
     ○ http://www.sun.com



●   MQ JMS (IBM)
    ○ MQSeries is another messaging technology

    ○ Can configure MQ as a JMS provider

    ○ (http://www7b.software.ibm.

      com/wsdd/library/techtip/0112_cox.html)
JMS Providers

●   WebLogic JMS (BEA)
    ○ Enterprise-class messaging system integrated into

      WebLogic Server
    ○ http://dev2dev.bea.com/technologies/jms/index.jsp



●   JMSCourier (Codemesh)
     ○ Merging C++ applications into a JMS environment

     ○ http://www.codemesh.

       com/en/AlignTechnologyCaseStudy.html
More JMS Vendors

●   Fiorano Software http://www.fiorano.com
●   JRUN Server http://www.allaire.com
●   GemStone http://www.gemstone.com
●   Nirvana http://www.pcbsys.com
●   Oracle http://www.oracle.com
●   A more exhaustive listing is available at
●   http://java.sun.com/products/jms/vendors.html

More Related Content

What's hot

JMS Backchannel
JMS BackchannelJMS Backchannel
JMS Backchannel
Rupesh Sinha
 
Understanding JMS Integration Patterns
Understanding JMS Integration Patterns Understanding JMS Integration Patterns
Understanding JMS Integration Patterns
WSO2
 
Scalable Persistent Message Brokering with WSO2 Message Broker
Scalable Persistent Message Brokering with WSO2 Message BrokerScalable Persistent Message Brokering with WSO2 Message Broker
Scalable Persistent Message Brokering with WSO2 Message Broker
Srinath Perera
 
Apache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixApache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMix
Bruce Snyder
 
UltraESB - an introduction
UltraESB - an introductionUltraESB - an introduction
UltraESB - an introduction
AdroitLogic
 
System Configuration for UltraESB
System Configuration for UltraESBSystem Configuration for UltraESB
System Configuration for UltraESB
AdroitLogic
 
UltraESB - Advanced services
UltraESB - Advanced servicesUltraESB - Advanced services
UltraESB - Advanced services
AdroitLogic
 
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQAn Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
Ravi Yogesh
 
Mule overview
Mule overviewMule overview
Mule overview
F K
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)
Juarez Junior
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]
Ryan Cuprak
 
Messaging Frameworks using JMS
Messaging Frameworks using JMS Messaging Frameworks using JMS
Messaging Frameworks using JMS
Arvind Kumar G.S
 
WebLogic JMS System Best Practices
WebLogic JMS System Best PracticesWebLogic JMS System Best Practices
WebLogic JMS System Best Practices
Trivadis
 
Esb 4.9.0 release webinar
Esb 4.9.0 release webinarEsb 4.9.0 release webinar
Esb 4.9.0 release webinar
Chanaka Fernando
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message Queueing
Peter R. Egli
 
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
Chanaka Fernando
 
Mule
MuleMule
Mule scopes 2
Mule scopes 2Mule scopes 2
Mule scopes 2
kunal vishe
 
Mule esb
Mule esbMule esb
Mule esb
Naveen Chintala
 
Mule esb flow processing strategies
Mule esb flow processing strategiesMule esb flow processing strategies
Mule esb flow processing strategies
himajareddys
 

What's hot (20)

JMS Backchannel
JMS BackchannelJMS Backchannel
JMS Backchannel
 
Understanding JMS Integration Patterns
Understanding JMS Integration Patterns Understanding JMS Integration Patterns
Understanding JMS Integration Patterns
 
Scalable Persistent Message Brokering with WSO2 Message Broker
Scalable Persistent Message Brokering with WSO2 Message BrokerScalable Persistent Message Brokering with WSO2 Message Broker
Scalable Persistent Message Brokering with WSO2 Message Broker
 
Apache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixApache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMix
 
UltraESB - an introduction
UltraESB - an introductionUltraESB - an introduction
UltraESB - an introduction
 
System Configuration for UltraESB
System Configuration for UltraESBSystem Configuration for UltraESB
System Configuration for UltraESB
 
UltraESB - Advanced services
UltraESB - Advanced servicesUltraESB - Advanced services
UltraESB - Advanced services
 
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQAn Introduction to the Message Queuing Technology & IBM WebSphere MQ
An Introduction to the Message Queuing Technology & IBM WebSphere MQ
 
Mule overview
Mule overviewMule overview
Mule overview
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]
 
Messaging Frameworks using JMS
Messaging Frameworks using JMS Messaging Frameworks using JMS
Messaging Frameworks using JMS
 
WebLogic JMS System Best Practices
WebLogic JMS System Best PracticesWebLogic JMS System Best Practices
WebLogic JMS System Best Practices
 
Esb 4.9.0 release webinar
Esb 4.9.0 release webinarEsb 4.9.0 release webinar
Esb 4.9.0 release webinar
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message Queueing
 
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
 
Mule
MuleMule
Mule
 
Mule scopes 2
Mule scopes 2Mule scopes 2
Mule scopes 2
 
Mule esb
Mule esbMule esb
Mule esb
 
Mule esb flow processing strategies
Mule esb flow processing strategiesMule esb flow processing strategies
Mule esb flow processing strategies
 

Viewers also liked

Performance tuning in ranker
Performance tuning in rankerPerformance tuning in ranker
Performance tuning in ranker
EosSoftware
 
Eossys
EossysEossys
Eossys
EosSoftware
 
Optimizing JMS Performance for Cloud-based Application Servers
Optimizing JMS Performance for Cloud-based Application ServersOptimizing JMS Performance for Cloud-based Application Servers
Optimizing JMS Performance for Cloud-based Application Servers
Zhenyun Zhuang
 
Achieving quality with tools case study
Achieving quality with tools case studyAchieving quality with tools case study
Achieving quality with tools case study
EosSoftware
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
Barry Feldman
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
Helge Tennø
 

Viewers also liked (6)

Performance tuning in ranker
Performance tuning in rankerPerformance tuning in ranker
Performance tuning in ranker
 
Eossys
EossysEossys
Eossys
 
Optimizing JMS Performance for Cloud-based Application Servers
Optimizing JMS Performance for Cloud-based Application ServersOptimizing JMS Performance for Cloud-based Application Servers
Optimizing JMS Performance for Cloud-based Application Servers
 
Achieving quality with tools case study
Achieving quality with tools case studyAchieving quality with tools case study
Achieving quality with tools case study
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Similar to Ranker jms implementation

SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous Queuing
WSO2
 
Are you weak in the middle?
Are you weak in the middle?Are you weak in the middle?
Are you weak in the middle?
FSCONS
 
Apache ActiveMQ
Apache ActiveMQ Apache ActiveMQ
Apache ActiveMQ
Srushti Patel
 
Towards Improved Data Dissemination of Publish-Subscribe Systems
Towards Improved Data Dissemination of Publish-Subscribe SystemsTowards Improved Data Dissemination of Publish-Subscribe Systems
Towards Improved Data Dissemination of Publish-Subscribe Systems
Srinath Perera
 
[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging Queues[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging Queues
Naukri.com
 
Enterprise messaging with jms
Enterprise messaging with jmsEnterprise messaging with jms
Enterprise messaging with jms
Sridhar Reddy
 
AMQP with RabbitMQ
AMQP with RabbitMQAMQP with RabbitMQ
AMQP with RabbitMQ
Spyros Papageorgiou
 
IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction
ejlp12
 
WSO2 Message Broker - Product Overview
WSO2 Message Broker - Product OverviewWSO2 Message Broker - Product Overview
WSO2 Message Broker - Product Overview
WSO2
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
Peter R. Egli
 
IBM MQ V8 annd JMS 2.0
IBM MQ V8 annd JMS 2.0IBM MQ V8 annd JMS 2.0
IBM MQ V8 annd JMS 2.0
IBM Systems UKI
 
XMPP Academy #1
XMPP Academy #1XMPP Academy #1
XMPP Academy #1
Mickaël Rémond
 
1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptx1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptx
BalakoteswaraReddyM
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
dejanb
 
Messaging in Java
Messaging in JavaMessaging in Java
Messaging in Java
Dmitry Buzdin
 
ActiveMQ interview Questions and Answers
ActiveMQ interview Questions and AnswersActiveMQ interview Questions and Answers
ActiveMQ interview Questions and Answers
jeetendra mandal
 
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
Peter Broadhurst
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
Mike Willbanks
 
Cpp In Soa
Cpp In SoaCpp In Soa
Cpp In Soa
WSO2
 
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and CamelZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
Justin Reock
 

Similar to Ranker jms implementation (20)

SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous Queuing
 
Are you weak in the middle?
Are you weak in the middle?Are you weak in the middle?
Are you weak in the middle?
 
Apache ActiveMQ
Apache ActiveMQ Apache ActiveMQ
Apache ActiveMQ
 
Towards Improved Data Dissemination of Publish-Subscribe Systems
Towards Improved Data Dissemination of Publish-Subscribe SystemsTowards Improved Data Dissemination of Publish-Subscribe Systems
Towards Improved Data Dissemination of Publish-Subscribe Systems
 
[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging Queues[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging Queues
 
Enterprise messaging with jms
Enterprise messaging with jmsEnterprise messaging with jms
Enterprise messaging with jms
 
AMQP with RabbitMQ
AMQP with RabbitMQAMQP with RabbitMQ
AMQP with RabbitMQ
 
IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction
 
WSO2 Message Broker - Product Overview
WSO2 Message Broker - Product OverviewWSO2 Message Broker - Product Overview
WSO2 Message Broker - Product Overview
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
 
IBM MQ V8 annd JMS 2.0
IBM MQ V8 annd JMS 2.0IBM MQ V8 annd JMS 2.0
IBM MQ V8 annd JMS 2.0
 
XMPP Academy #1
XMPP Academy #1XMPP Academy #1
XMPP Academy #1
 
1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptx1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptx
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
 
Messaging in Java
Messaging in JavaMessaging in Java
Messaging in Java
 
ActiveMQ interview Questions and Answers
ActiveMQ interview Questions and AnswersActiveMQ interview Questions and Answers
ActiveMQ interview Questions and Answers
 
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
 
Cpp In Soa
Cpp In SoaCpp In Soa
Cpp In Soa
 
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and CamelZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
ZendCon - Integration and Asynchronous Processing with ActiveMQ and Camel
 

Recently uploaded

Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 

Recently uploaded (20)

Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 

Ranker jms implementation

  • 2. Agenda ● Why Event Processing System For Ranker? ● What are challenges? ● General Overview of JMS ● Walk through ActiveMQ ● Why Messaging? ● Other JMS Providers.
  • 3. Why Messaging? ● Asynchronous operation − A client can schedule work to be done and return immediately − A client can be notified in an event-driven fashion when something has happened ● Loose Coupling − Systems connected via messaging need not be aware of each other, or use the same technologies − Key messages can easily be routed to many systems − Message broker is buffer in case of downtime
  • 4. Why Messaging? ● Fire and Forget − Message Broker can guarantee messages are recorded and delivered even vs. crashes ● Parallelize Work − Messages in a single stream can be handled in parallel by many client threads or systems ● Throttle Work − A large amount of work can be split into a small number of threads or systems to throttle effort (e.g. due to licensing restrictions)
  • 5. Why Event Processing System For Ranker? ● Ranker has a lot of complicated algorithms running behind and user really does not need to wait till the execution of all the algorithms. ● You may wish to implement this because the request take a long time to complete or because several parties may be interested in the actual request ● Eg: Crowd ranked/Vote ranked List aggregation (This algorithm may take 1- 5 mts to complete depends of user contribution.) ● Email sending functionality. ● Moderation of user input (eg. Bad word filtering) ● List Auto tagging.
  • 6. What are the challenges? ● Selecting the JMS provider − We are running the app based on Spring 3.0 /Apache tomcat stack, we have to select the appropriate JMS provider. We selected Apache ActiveMQ. ● Reasons for selecting ActiveMQ − Its pretty easy to integrate with Spring Framework. − Open source project. − Pretty good documentation available for ActiveMQ as well as for Integration with spring framework.
  • 7. What is JMS? ● A specification that describes a common way for Java programs to create, send, receive and read distributed enterprise messages ● Loosely coupled communication ● Asynchronous messaging ● Reliable delivery - A message is guaranteed to be delivered once and only once. ● Outside the specification - Security services - Management services
  • 8. A JMS Application ● JMS Clients - Java programs that send/receive messages ● Messages - Administered Objects preconfigured JMS objects created by an admin for the use of clients - ConnectionFactory, Destination (queue or topic) ● JMS Provider - messaging system that implements JMS and administrative functionality
  • 10. JMS Messaging Domains ● Point-to-Point (PTP) ○ Built around the concept of message queues ○ Each message has only one consumer ● Publish-Subscribe systems ○ Uses a “topic” to send and receive messages ○ Each message has multiple consumers
  • 12.
  • 13. Message Consumptions ● Synchronously ○ A subscriber or a receiver explicitly fetches the message from the destination by calling the receive method. ○ The receive method can block until a message arrives or can time out if a message does not arrive within a specified time limit. ● Asynchronously ○ A client can register a message listener with a consumer. ○ Whenever a message arrives at the destination, the JMS provider delivers the message by calling the listener's onMessage() method.
  • 16. More JMS Features ● Durable subscription ● By default a subscriber gets only messages published on a topic while a subscriber is alive ● Durable subscription retains messages until a they are received by a subscriber or expire
  • 17. More JMS Features Difference Between Persistent & Nonpersistent deliveries − Persistent delivery take cares of reprocessing the request if the JMS broker restarted before serving the request, it will use file/db to store the request, this implementation is costly compare to non persistent delivery. − Nonpersistent delivery will just ignore the request if broker restarted while serving the request.
  • 18. About ActiveMQ ● An open-source message broker (compare to JBossMQ, or many commercial products) − See http://activemq.apache.org/ ● Generally stable and high-performance ● Can be run standalone, or inside another process, app server, or Java EE application ● Supports everything JMS requires, plus various extensions ● Integrates well into other products
  • 19. ActiveMQ Message Extensions ● Virtual Destinations (load-balancing and failover for topics) ● Retroactive Subscriptions (subscriber can receive some number of previous messages on connect) ● Exclusive Consumers & Message Groups (loadbalancing and failover while preserving message ordering) ● Mirrored queues (monitor queue messages)
  • 20. ActiveMQ Client Connectivity ● Dictated by the wire protocol a client uses to talk to the broker ● Generally there are two protocol options – OpenWire (binary) and Stomp (text) − OpenWire is the default and has the most history and best support (including SSL) – for Java, .NET, etc. − Stomp is easiest to develop for and therefore has the most cross-language support (Perl, Python, Ruby, ...) ● Also a variety of other special-purpose protocols (Jabber, adapters for REST/AJAX, etc.)
  • 21. ActiveMQ Persistence Options ● Different strategies available for storing persistent messages − to local files, database, etc. − or both – stored to local files and then periodically batch undelivered messages to the DB... ● Default implementation changed between ActiveMQ 4.x and 5.x ● May still customize the persistence engine based on specific performance requirements
  • 22. ActiveMQ SecurityAnd Management ● OpenWire protocol can use SSL for encryption ● Broker can use authentication (e.g. username/password required to connect) − Uses JAAS to identify the back-end user data store (properties files, DB, LDAP, etc.) ● JMX management enabled by default − Use a tool like JConsole to monitor queues, etc. ● Web Console available as well
  • 23. ActiveMQ Testing ● ActiveMQ can easily run in an embedded, nonpersistent, in-VM only mode for unit tests ● Also easily to run ActiveMQ via beans in a Spring context, if you're testing with Spring ● ActiveMQ includes a simple JNDI provider if you want to test Java EE code that relies on JNDI lookups to access JMS resources ● Can use tools like JMeter to load test the broker
  • 24. JMS Providers ● SunONE Message Queue (SUN) ○ A JMS provider integrated with the SunONE Application Server ○ http://www.sun.com ● MQ JMS (IBM) ○ MQSeries is another messaging technology ○ Can configure MQ as a JMS provider ○ (http://www7b.software.ibm. com/wsdd/library/techtip/0112_cox.html)
  • 25. JMS Providers ● WebLogic JMS (BEA) ○ Enterprise-class messaging system integrated into WebLogic Server ○ http://dev2dev.bea.com/technologies/jms/index.jsp ● JMSCourier (Codemesh) ○ Merging C++ applications into a JMS environment ○ http://www.codemesh. com/en/AlignTechnologyCaseStudy.html
  • 26. More JMS Vendors ● Fiorano Software http://www.fiorano.com ● JRUN Server http://www.allaire.com ● GemStone http://www.gemstone.com ● Nirvana http://www.pcbsys.com ● Oracle http://www.oracle.com ● A more exhaustive listing is available at ● http://java.sun.com/products/jms/vendors.html