SlideShare una empresa de Scribd logo
1 de 14
The Service doing “Ping”
In a Service-Oriented Architecture, implementing
“ping” utilities to monitor services and to deduce
business information such as checking SLAs is prone
to error Ignaz Wanders
The Ping Utility
• Ping is originally a computer network administration utility used to test the
reachability of a host on an IP network and to measure the round-trip time for
messages sent from the originating host to a destination computer. (Wikipedia)
• The term originates from active sonar technology
• Defined in 1983
• Phased out from 2003 onwards
– Exploited by internet worms to find new computers
– Added load to the system, causing problems with routers across the internet
– Considered a security risk
• E.g., Ping of Death (malformed ping resulting in buffer overflow)
See http://en.wikipedia.org/wiki/Ping_(networking_utility)
The world of services
Service
Consumer
application
Service
Service
“My service provider says he is
available at least 90% of the time, so
I will check him out regularly if he
keeps his promise!”
2
“My service depends on
another service, so I will not
make my service available if
my service provider is not
available.”
3
1
“If I depend on the availability of
another service, I’ll ask if it is
available, just before I use it.”
“I need a ping!”
The world of service pings
Service
Consumer
application
Service
Service
Ping()
Ping()
Ping()
Each service offers a Ping operation
in the interface (WSDL)
“I need a ping!”
Real-life example 1: A service with special ping operation
<wsdl:operation name="ping">
<soap:operation style="document" soapAction="" />
<wsdl:input>
<soap:header message="tns:Ping" part="header" use="literal" />
<soap:body parts="body" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:header message="tns:PingResponse" part="header" use="literal" />
<soap:body parts="body" use="literal" />
</wsdl:output>
</wsdl:operation>
Real-life example 2: A special ping service
See if it is there, by using ping
1 “If I depend on the availability of
another service, I’ll ask if it is
available, just before I use it.”
This is brilliant. The network is known to have availability
issues every now and then, especially with synchronous
protocols like HTTP.
So before calling a SOAP web service, let’s do a ping first. If the
service doesn’t answer, we don’t call it with the real request.
Flaws:
1. There is no guarantee that after a successful ping, the real
request will pass through.
2. An unsuccessful ping does not guarantee that the real
request would not have passed through.
The conclusion drawn from the result of the ping can very well be wrong
See if it is there, by using ping
1 “If I depend on the availability of
another service, I’ll ask if it is
available, just before I use it.”
Solution:
Just call the service with the real request and make sure that
you handle a connection error properly.
This way, you have never taken the wrong decision.
Compared with the ping “solution,” there will be more
successful hits, which means more business.
Monitoring, by using ping
“My service provider says he is
available at least 90% of the time, so
I will check him out regularly if he
keeps his promise!”
2 Let’s do a ping every n minutes, and calculate the availability
percentage of the provider. This is a measure of the uptime of
the service provider.
Flaws:
1. There is no guarantee that between two successful
pings, the service was really available.
2. An unsuccessful ping can be an intermittent network
issue of very short duration, but it may be counted as n
minutes
The conclusion drawn from the monitoring by pinging has nothing to do with
the real statistics of uptime of the provider
Monitoring, by using ping
“My service provider says he is
available at least 90% of the time, so
I will check him out regularly if he
keeps his promise!”
2
Solution:
Just call the service with the real request and make sure that
you handle a connection error properly.
It doesn’t matter if the service provider is off-air in between
requests. All that matters is that at least x percent of your
requests are served correctly. That’s what needs to be stated
in a service level agreement. And that is what is measurable.
Proactive service provisioning, by using ping
“My service depends on another
service, so I will not make my service
available if my service provider is
not available.”
3 Let’s do a ping of the service provider. If he doesn’t answer I
will close down my web application so consumers can’t use
this functionality. That avoids frustration of the people
receiving connection errors.
I’ll open the web application again after a successful ping.
(no kidding, this exists in real life!)
Flaws:
1. There can be no guarantee the service is down. The web
application will sometimes be shut down erroneously.
This can result in missed business.
The conclusion drawn from the unsuccessful ping is invalid.
Proactive service provisioning, by using ping
“My service depends on another
service, so I will not make my service
available if my service provider is
not available.”
3
Solution:
Just call the service with the real request and make sure that
you handle a connection error properly.
Even in this way you can shut down the web application, for
example after p unsuccessful requests.
Compared with the ping “solution,” there will be more
successful hits, which means more business.
Conclusion
Death to ping services or
operations.
Conclusion
Rather use proper error
handling!

Más contenido relacionado

Similar a The Service doing "Ping"

Presentation File (1).pdf
Presentation File (1).pdfPresentation File (1).pdf
Presentation File (1).pdf
balljay
 
Presentation File.pdf
Presentation File.pdfPresentation File.pdf
Presentation File.pdf
balljay
 
Vivint Wireless How to De-Risk a New Venture & Build a Better ISP - Luke L...
Vivint Wireless   How to De-Risk a New Venture & Build a Better ISP  - Luke L...Vivint Wireless   How to De-Risk a New Venture & Build a Better ISP  - Luke L...
Vivint Wireless How to De-Risk a New Venture & Build a Better ISP - Luke L...
Lounge47
 

Similar a The Service doing "Ping" (20)

Non functional performance requirements v2.2
Non functional performance requirements v2.2Non functional performance requirements v2.2
Non functional performance requirements v2.2
 
False Website Downtime Alerts Are More Than a Nuisance
False Website Downtime Alerts Are More Than a NuisanceFalse Website Downtime Alerts Are More Than a Nuisance
False Website Downtime Alerts Are More Than a Nuisance
 
Presentation File (1).pdf
Presentation File (1).pdfPresentation File (1).pdf
Presentation File (1).pdf
 
UX & FinTech: 3 Ideas to Focus On
UX & FinTech: 3 Ideas to Focus OnUX & FinTech: 3 Ideas to Focus On
UX & FinTech: 3 Ideas to Focus On
 
Service workers and their role in PWAs
Service workers and their role in PWAsService workers and their role in PWAs
Service workers and their role in PWAs
 
Remediating Violated Customers
Remediating Violated CustomersRemediating Violated Customers
Remediating Violated Customers
 
Test execution
Test executionTest execution
Test execution
 
Presentation File.pdf
Presentation File.pdfPresentation File.pdf
Presentation File.pdf
 
Lie Cheat & Steal to build Hyper-Fast Applications using Event-Driven Archite...
Lie Cheat & Steal to build Hyper-Fast Applications using Event-Driven Archite...Lie Cheat & Steal to build Hyper-Fast Applications using Event-Driven Archite...
Lie Cheat & Steal to build Hyper-Fast Applications using Event-Driven Archite...
 
Vivint Wireless How to De-Risk a New Venture & Build a Better ISP - Luke L...
Vivint Wireless   How to De-Risk a New Venture & Build a Better ISP  - Luke L...Vivint Wireless   How to De-Risk a New Venture & Build a Better ISP  - Luke L...
Vivint Wireless How to De-Risk a New Venture & Build a Better ISP - Luke L...
 
Troubleshooting Urouter Problems: WebEx Presentation
Troubleshooting Urouter Problems: WebEx PresentationTroubleshooting Urouter Problems: WebEx Presentation
Troubleshooting Urouter Problems: WebEx Presentation
 
When Things Go Bump in the Night
When Things Go Bump in the NightWhen Things Go Bump in the Night
When Things Go Bump in the Night
 
A-Z Of LimeVPN For Beginners
A-Z Of LimeVPN For BeginnersA-Z Of LimeVPN For Beginners
A-Z Of LimeVPN For Beginners
 
7 Tips for Optimizing Mobile App Metrics
7 Tips for Optimizing Mobile App Metrics7 Tips for Optimizing Mobile App Metrics
7 Tips for Optimizing Mobile App Metrics
 
Top 5 IT challenges for 2017
Top 5 IT challenges for 2017Top 5 IT challenges for 2017
Top 5 IT challenges for 2017
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
Software not working or agents lying
Software not working or agents lyingSoftware not working or agents lying
Software not working or agents lying
 
HSI's Cloud-Hosted Foglight IT Monitoring & APM
HSI's Cloud-Hosted Foglight IT Monitoring & APMHSI's Cloud-Hosted Foglight IT Monitoring & APM
HSI's Cloud-Hosted Foglight IT Monitoring & APM
 
Integration testing with PACT
Integration testing with PACTIntegration testing with PACT
Integration testing with PACT
 
Progressive Web Apps For Startups
Progressive Web Apps For StartupsProgressive Web Apps For Startups
Progressive Web Apps For Startups
 

Último

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
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
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...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

The Service doing "Ping"

  • 1. The Service doing “Ping” In a Service-Oriented Architecture, implementing “ping” utilities to monitor services and to deduce business information such as checking SLAs is prone to error Ignaz Wanders
  • 2. The Ping Utility • Ping is originally a computer network administration utility used to test the reachability of a host on an IP network and to measure the round-trip time for messages sent from the originating host to a destination computer. (Wikipedia) • The term originates from active sonar technology • Defined in 1983 • Phased out from 2003 onwards – Exploited by internet worms to find new computers – Added load to the system, causing problems with routers across the internet – Considered a security risk • E.g., Ping of Death (malformed ping resulting in buffer overflow) See http://en.wikipedia.org/wiki/Ping_(networking_utility)
  • 3. The world of services Service Consumer application Service Service “My service provider says he is available at least 90% of the time, so I will check him out regularly if he keeps his promise!” 2 “My service depends on another service, so I will not make my service available if my service provider is not available.” 3 1 “If I depend on the availability of another service, I’ll ask if it is available, just before I use it.” “I need a ping!”
  • 4. The world of service pings Service Consumer application Service Service Ping() Ping() Ping() Each service offers a Ping operation in the interface (WSDL) “I need a ping!”
  • 5. Real-life example 1: A service with special ping operation <wsdl:operation name="ping"> <soap:operation style="document" soapAction="" /> <wsdl:input> <soap:header message="tns:Ping" part="header" use="literal" /> <soap:body parts="body" use="literal" /> </wsdl:input> <wsdl:output> <soap:header message="tns:PingResponse" part="header" use="literal" /> <soap:body parts="body" use="literal" /> </wsdl:output> </wsdl:operation>
  • 6. Real-life example 2: A special ping service
  • 7. See if it is there, by using ping 1 “If I depend on the availability of another service, I’ll ask if it is available, just before I use it.” This is brilliant. The network is known to have availability issues every now and then, especially with synchronous protocols like HTTP. So before calling a SOAP web service, let’s do a ping first. If the service doesn’t answer, we don’t call it with the real request. Flaws: 1. There is no guarantee that after a successful ping, the real request will pass through. 2. An unsuccessful ping does not guarantee that the real request would not have passed through. The conclusion drawn from the result of the ping can very well be wrong
  • 8. See if it is there, by using ping 1 “If I depend on the availability of another service, I’ll ask if it is available, just before I use it.” Solution: Just call the service with the real request and make sure that you handle a connection error properly. This way, you have never taken the wrong decision. Compared with the ping “solution,” there will be more successful hits, which means more business.
  • 9. Monitoring, by using ping “My service provider says he is available at least 90% of the time, so I will check him out regularly if he keeps his promise!” 2 Let’s do a ping every n minutes, and calculate the availability percentage of the provider. This is a measure of the uptime of the service provider. Flaws: 1. There is no guarantee that between two successful pings, the service was really available. 2. An unsuccessful ping can be an intermittent network issue of very short duration, but it may be counted as n minutes The conclusion drawn from the monitoring by pinging has nothing to do with the real statistics of uptime of the provider
  • 10. Monitoring, by using ping “My service provider says he is available at least 90% of the time, so I will check him out regularly if he keeps his promise!” 2 Solution: Just call the service with the real request and make sure that you handle a connection error properly. It doesn’t matter if the service provider is off-air in between requests. All that matters is that at least x percent of your requests are served correctly. That’s what needs to be stated in a service level agreement. And that is what is measurable.
  • 11. Proactive service provisioning, by using ping “My service depends on another service, so I will not make my service available if my service provider is not available.” 3 Let’s do a ping of the service provider. If he doesn’t answer I will close down my web application so consumers can’t use this functionality. That avoids frustration of the people receiving connection errors. I’ll open the web application again after a successful ping. (no kidding, this exists in real life!) Flaws: 1. There can be no guarantee the service is down. The web application will sometimes be shut down erroneously. This can result in missed business. The conclusion drawn from the unsuccessful ping is invalid.
  • 12. Proactive service provisioning, by using ping “My service depends on another service, so I will not make my service available if my service provider is not available.” 3 Solution: Just call the service with the real request and make sure that you handle a connection error properly. Even in this way you can shut down the web application, for example after p unsuccessful requests. Compared with the ping “solution,” there will be more successful hits, which means more business.
  • 13. Conclusion Death to ping services or operations.
  • 14. Conclusion Rather use proper error handling!