SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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 BrokerSrinath Perera
 
Apache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixApache ActiveMQ and Apache ServiceMix
Apache ActiveMQ and Apache ServiceMixBruce Snyder
 
UltraESB - an introduction
UltraESB - an introductionUltraESB - an introduction
UltraESB - an introductionAdroitLogic
 
System Configuration for UltraESB
System Configuration for UltraESBSystem Configuration for UltraESB
System Configuration for UltraESBAdroitLogic
 
UltraESB - Advanced services
UltraESB - Advanced servicesUltraESB - Advanced services
UltraESB - Advanced servicesAdroitLogic
 
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 MQRavi Yogesh
 
Mule overview
Mule overviewMule overview
Mule overviewF 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 PracticesTrivadis
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingPeter 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 webinarChanaka Fernando
 
Mule esb flow processing strategies
Mule esb flow processing strategiesMule esb flow processing strategies
Mule esb flow processing strategieshimajareddys
 

Mais procurados (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
 

Destaque

Performance tuning in ranker
Performance tuning in rankerPerformance tuning in ranker
Performance tuning in rankerEosSoftware
 
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 ServersZhenyun Zhuang
 
Achieving quality with tools case study
Achieving quality with tools case studyAchieving quality with tools case study
Achieving quality with tools case studyEosSoftware
 
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 FormatsBarry Feldman
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 

Destaque (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
 

Semelhante a Ranker jms implementation

SOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingSOA Pattern-Asynchronous Queuing
SOA Pattern-Asynchronous QueuingWSO2
 
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
 
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 SystemsSrinath Perera
 
[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging Queues[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging QueuesNaukri.com
 
Enterprise messaging with jms
Enterprise messaging with jmsEnterprise messaging with jms
Enterprise messaging with jmsSridhar Reddy
 
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 OverviewWSO2
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging ServicePeter R. Egli
 
1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptx1480-techintrotoiib-150224130001-conversion-gate01.pptx
1480-techintrotoiib-150224130001-conversion-gate01.pptxBalakoteswaraReddyM
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actiondejanb
 
ActiveMQ interview Questions and Answers
ActiveMQ interview Questions and AnswersActiveMQ interview Questions and Answers
ActiveMQ interview Questions and Answersjeetendra 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 - TEKXMike Willbanks
 
Cpp In Soa
Cpp In SoaCpp In Soa
Cpp In SoaWSO2
 
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 CamelJustin Reock
 

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

Último

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 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
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

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