SlideShare a Scribd company logo
1 of 2
Download to read offline
Integrating an existing System into an iOS Application*
Boris Oliver Dominguez Quiroz1
Abstract— In this article we are going to describe an inte-
gration scenario who involves an existing system and a native
iOS application. The integration is going to take place inside
the iOS application and we are going to provide more details
about it in this document.
I. CONTEXT
Long time ago an iOS project was created in order to
contact leads and clients. This small app was able to access
to the user’s calendar and also the contacts list. On the
other hand, there’s a company called Leads360 who has its
own system but they want a new iOS application with the
mentioned features above. Currently this company has an
ASMX web service who allows you to authenticate to the
system, register a lead, register a client, register a sale, etc.
Customer or Client Relationship Management (CRM) is
the most important aspect in business sales and marketing
for salesmen. According to various researches and studies,
a potential lead, prospect or e-leads who initiates a contact
to purchase your product or service is 82% more likely to
close a deal with a business, rep, salesperson or freelancer
who calls them back first. That’s why Leads360 wants to see
some notifications in the iOS application for a missed call
or email from a potential lead.
II. PROBLEM
For example you can miss a call or email from a potential
lead we would like to register that person automatically;
when an event like this occurs how do you initiate a process
in a remote system like Leads360, pass the potential lead
information to that process, receive a response from the
remote system, and then use that response data to create
a notification within the iOS application?
III. FORCES
We have to consider the following forces:
• Does the call to the Leads360 service require the iOS
application to wait for a response before continuing
processing?
• Is the call to the Leads360 service a synchronous
request-reply or an asynchronous request?
• Is the integration based on the occurrence of a specific
event like a missed call?
• Is the Leads360 service able to respond to the request
with low latency?
• Is the Leads360 service able to respond to multiple
request at the same time?
*This work was not supported by any organization
1Student of Integration Patterns, ALSIE, Cochabamba
IV. PROPOSED SOLUTION
Leads360. Fortunately, Leads360 has an ASMX web
service (no code required).
iOS Application. We need to consume the externally
hosted service (SOAP web service), so we need to define
some calling mechanisms.
A. Architecture
Basically we have a Client-Server architecture, but in
order to consume the SOAP web service we have to do the
following steps into the iOS application:
• Subscribe the iOS app to the NSNotificationCenter.
• Create the request SOAP Envelope message as NSString
• Create a request to the URL (NSMutableURLRequest)
• Add required request header elements
• Define the request method (HTTPMethod: POST)
• Define the body of the request (HTTPBody: [bytes])
• Implement the NSURLConnectionDelegate methods
(didReceiveResponse, didReceiveData,
didFailWithError, connectionDidFinishLoading)
• Parse the response (implement this inside the
connectionDidFinishLoading delegate method)
• Queue the new potential lead into the notification stack.
B. Normal Flow
This is the normal flow for a missed call event:
• We receive an event in the iOS device (a missed call).
• The NSNotificationCenter notifies the iOS application
that an event has occurred.
• The event is analyzed, and if we detect a potential lead
then we proceed to register it.
• The client (iOS application) sends a process request to
the respective server (Leads360 service) via a network
connection.
• This request is then analyzed, well processed and finally
delivered back to the client (iOS application).
• The client manages the successful response and queues
the new event into the internal stack of notifications.
C. Error Scenarios
It’s important to include an error handling and recovery
strategy as part of the overall solution. We have to think in
the following scenarios:
No internet connection. If there’s no internet connection we
have to create a new Request and add it to the PendingRe-
questQueue. So, when the internet comes back we can try
to send those requests again. It is very important not to lose
information in this point.
An exception during the normal flow. It can be produced
by some wrong data in the HTTPBody, so we need to catch
that NSException and add it in a log file.
HTTP Response Status Code. If the status code we
receive is not equals to 200, we have to analyze what
happened based on the status code number in order to use
our PendingRequestQueue or log some information into a log
file. We have to implement this inside the didFailWithError
delegate method.
D. Security Concerns
In this integration we have the following security concerns:
• The Leads360 service must be protected by implement-
ing the appropriate firewall mechanisms.
• In order to consume the services we have to call the
authentication service first. It will generate a token for
us, and we must use that token in the rest of the services
provided by Leads360. (like the AddLead service)
V. VERIFICATION
In order to test this specific implementation, we have to
deploy the iOS application in a real device and reproduce
the event (missed call). If the missed call event was able to
create a new lead in the Leads360 system, we are going to
be able to see a notification in the iOS application with the
identifier of that potential lead.
VI. CONCLUSIONS
This kind of integration is very common on mobile en-
vironments like iOS and Android, so if the external system
doesn’t have an EndPoint (like a web service), we should
have to implement a new one.
APPENDIX
An appendix section is not required.
ACKNOWLEDGMENT
An acknowledgment section is not required.
REFERENCES
[1] Enterprise Integration Patterns. Designing, Building, and Deploying
Messaging Solutions, Gregor Hohpe. Bobby Woolf, Ed. Boston:
Pearson Education, Inc., 2004.

More Related Content

What's hot

REST API Security by Design with Azure Pipelines
REST API Security by Design with Azure PipelinesREST API Security by Design with Azure Pipelines
REST API Security by Design with Azure Pipelines
42Crunch
 

What's hot (20)

apidays LIVE Jakarta - E5 ways to make your integration more resilient by Je...
apidays LIVE Jakarta - E5 ways to make your integration more resilient  by Je...apidays LIVE Jakarta - E5 ways to make your integration more resilient  by Je...
apidays LIVE Jakarta - E5 ways to make your integration more resilient by Je...
 
Identity's Role in a Zero Trust Strategy
Identity's Role in a Zero Trust StrategyIdentity's Role in a Zero Trust Strategy
Identity's Role in a Zero Trust Strategy
 
How Secure Is Your Secure API?
How Secure Is Your Secure API?How Secure Is Your Secure API?
How Secure Is Your Secure API?
 
Contract {Collaboration} Driven Development - APIdays Interface 2020
Contract {Collaboration} Driven Development - APIdays Interface 2020Contract {Collaboration} Driven Development - APIdays Interface 2020
Contract {Collaboration} Driven Development - APIdays Interface 2020
 
apidays LIVE Paris 2021 - Addressing OWASP API Security Top 10 by Isabelle Ma...
apidays LIVE Paris 2021 - Addressing OWASP API Security Top 10 by Isabelle Ma...apidays LIVE Paris 2021 - Addressing OWASP API Security Top 10 by Isabelle Ma...
apidays LIVE Paris 2021 - Addressing OWASP API Security Top 10 by Isabelle Ma...
 
apidays LIVE London 2021 - Authorization is on the rise. by Damian Schenkelma...
apidays LIVE London 2021 - Authorization is on the rise. by Damian Schenkelma...apidays LIVE London 2021 - Authorization is on the rise. by Damian Schenkelma...
apidays LIVE London 2021 - Authorization is on the rise. by Damian Schenkelma...
 
apidays LIVE New York 2021 - Solving API security through holistic obervabili...
apidays LIVE New York 2021 - Solving API security through holistic obervabili...apidays LIVE New York 2021 - Solving API security through holistic obervabili...
apidays LIVE New York 2021 - Solving API security through holistic obervabili...
 
apidays LIVE London 2021 - API Security challenges and solutions by Wadii Tah...
apidays LIVE London 2021 - API Security challenges and solutions by Wadii Tah...apidays LIVE London 2021 - API Security challenges and solutions by Wadii Tah...
apidays LIVE London 2021 - API Security challenges and solutions by Wadii Tah...
 
apidays LIVE Singapore 2021 - Securing the Open Source supply chain by Liran ...
apidays LIVE Singapore 2021 - Securing the Open Source supply chain by Liran ...apidays LIVE Singapore 2021 - Securing the Open Source supply chain by Liran ...
apidays LIVE Singapore 2021 - Securing the Open Source supply chain by Liran ...
 
REST API Security by Design with Azure Pipelines
REST API Security by Design with Azure PipelinesREST API Security by Design with Azure Pipelines
REST API Security by Design with Azure Pipelines
 
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou
[Kong summit 2019] Egress Gateway Pattern - Zhuojie Zhou
 
Hacker vs AI
Hacker vs AI Hacker vs AI
Hacker vs AI
 
apidays LIVE LONDON - API Abuse - Comprehension and Prevention by David Stewart
apidays LIVE LONDON - API Abuse - Comprehension and Prevention by David Stewartapidays LIVE LONDON - API Abuse - Comprehension and Prevention by David Stewart
apidays LIVE LONDON - API Abuse - Comprehension and Prevention by David Stewart
 
Balancing Mobile UX & Security: An API Management Perspective Presentation fr...
Balancing Mobile UX & Security: An API Management Perspective Presentation fr...Balancing Mobile UX & Security: An API Management Perspective Presentation fr...
Balancing Mobile UX & Security: An API Management Perspective Presentation fr...
 
API Security Webinar : Security Guidelines for Providing and Consuming APIs
API Security Webinar : Security Guidelines for Providing and Consuming APIsAPI Security Webinar : Security Guidelines for Providing and Consuming APIs
API Security Webinar : Security Guidelines for Providing and Consuming APIs
 
Data Driven Security
Data Driven SecurityData Driven Security
Data Driven Security
 
apidays LIVE London 2021 - Confessions of a Product Geek by Rosemary Missier,...
apidays LIVE London 2021 - Confessions of a Product Geek by Rosemary Missier,...apidays LIVE London 2021 - Confessions of a Product Geek by Rosemary Missier,...
apidays LIVE London 2021 - Confessions of a Product Geek by Rosemary Missier,...
 
APIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
APIdays Paris 2019 : Financial-grade API (FAPI) Security ProfileAPIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
APIdays Paris 2019 : Financial-grade API (FAPI) Security Profile
 
Criteria for Effective Modern IAM Strategies (Gartner IAM 2018)
Criteria for Effective Modern IAM Strategies (Gartner IAM 2018)Criteria for Effective Modern IAM Strategies (Gartner IAM 2018)
Criteria for Effective Modern IAM Strategies (Gartner IAM 2018)
 
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
Standard Based API Security, Access Control and AI Based Attack - API Days Pa...
 

Similar to Article Integration Scenarios

Dreamwares_SF Expertise
Dreamwares_SF ExpertiseDreamwares_SF Expertise
Dreamwares_SF Expertise
Manidipa Mitra
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overview
David Scruggs
 
Case study - Using OSGi within the salesforce.com Data Center Automation Init...
Case study - Using OSGi within the salesforce.com Data Center Automation Init...Case study - Using OSGi within the salesforce.com Data Center Automation Init...
Case study - Using OSGi within the salesforce.com Data Center Automation Init...
mfrancis
 
Xively io t_wp-708003f0d106c3f576cf63e87cbd9038
Xively io t_wp-708003f0d106c3f576cf63e87cbd9038Xively io t_wp-708003f0d106c3f576cf63e87cbd9038
Xively io t_wp-708003f0d106c3f576cf63e87cbd9038
suvadeep Kundu
 
7 steps to business success on the Internet of Things
7 steps to business success on the Internet of Things7 steps to business success on the Internet of Things
7 steps to business success on the Internet of Things
The Marketing Distillery
 

Similar to Article Integration Scenarios (20)

Salesforce Mobile architecture introduction
Salesforce Mobile architecture introductionSalesforce Mobile architecture introduction
Salesforce Mobile architecture introduction
 
UiPath Meetup Service now + mainframe and legacy final
UiPath Meetup Service now + mainframe and legacy finalUiPath Meetup Service now + mainframe and legacy final
UiPath Meetup Service now + mainframe and legacy final
 
AWS re:Invent 2016: Re-imagining Insurance Processes with AWS Mobile Services...
AWS re:Invent 2016: Re-imagining Insurance Processes with AWS Mobile Services...AWS re:Invent 2016: Re-imagining Insurance Processes with AWS Mobile Services...
AWS re:Invent 2016: Re-imagining Insurance Processes with AWS Mobile Services...
 
WEB Based claim processing sytem SRS
WEB Based claim processing sytem SRSWEB Based claim processing sytem SRS
WEB Based claim processing sytem SRS
 
Dreamwares_SF Expertise
Dreamwares_SF ExpertiseDreamwares_SF Expertise
Dreamwares_SF Expertise
 
Frequently Asked Questions (FAQs) on IoT Cloud App Development
Frequently Asked Questions (FAQs) on IoT Cloud App DevelopmentFrequently Asked Questions (FAQs) on IoT Cloud App Development
Frequently Asked Questions (FAQs) on IoT Cloud App Development
 
Simplifying IoT App Development - A Whitepaper by RapidValue
Simplifying IoT App Development - A Whitepaper by RapidValueSimplifying IoT App Development - A Whitepaper by RapidValue
Simplifying IoT App Development - A Whitepaper by RapidValue
 
Security information-and-event-management.ppt
Security information-and-event-management.pptSecurity information-and-event-management.ppt
Security information-and-event-management.ppt
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overview
 
Case study - Using OSGi within the salesforce.com Data Center Automation Init...
Case study - Using OSGi within the salesforce.com Data Center Automation Init...Case study - Using OSGi within the salesforce.com Data Center Automation Init...
Case study - Using OSGi within the salesforce.com Data Center Automation Init...
 
IWMW 2000: Self Evident Applications for Universities
IWMW 2000: Self Evident Applications for UniversitiesIWMW 2000: Self Evident Applications for Universities
IWMW 2000: Self Evident Applications for Universities
 
Xively io t_wp-708003f0d106c3f576cf63e87cbd9038
Xively io t_wp-708003f0d106c3f576cf63e87cbd9038Xively io t_wp-708003f0d106c3f576cf63e87cbd9038
Xively io t_wp-708003f0d106c3f576cf63e87cbd9038
 
7 steps to business success on the Internet of Things
7 steps to business success on the Internet of Things7 steps to business success on the Internet of Things
7 steps to business success on the Internet of Things
 
How to build a highly secure fin tech application
How to build a highly secure fin tech applicationHow to build a highly secure fin tech application
How to build a highly secure fin tech application
 
Salesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewSalesforce Integration Pattern Overview
Salesforce Integration Pattern Overview
 
Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)Emerging Technologies: Heroku for ISVs (October 13, 2014)
Emerging Technologies: Heroku for ISVs (October 13, 2014)
 
Vivek Ashvinbhai Pancholi Work Portfolio
Vivek Ashvinbhai Pancholi Work PortfolioVivek Ashvinbhai Pancholi Work Portfolio
Vivek Ashvinbhai Pancholi Work Portfolio
 
Final Report_213110090
Final Report_213110090Final Report_213110090
Final Report_213110090
 
12 Steps To Soa Final
12 Steps To Soa Final12 Steps To Soa Final
12 Steps To Soa Final
 
Top cybersecurity companies in the world
Top cybersecurity companies in the worldTop cybersecurity companies in the world
Top cybersecurity companies in the world
 

Recently uploaded

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
 
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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
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
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

Article Integration Scenarios

  • 1. Integrating an existing System into an iOS Application* Boris Oliver Dominguez Quiroz1 Abstract— In this article we are going to describe an inte- gration scenario who involves an existing system and a native iOS application. The integration is going to take place inside the iOS application and we are going to provide more details about it in this document. I. CONTEXT Long time ago an iOS project was created in order to contact leads and clients. This small app was able to access to the user’s calendar and also the contacts list. On the other hand, there’s a company called Leads360 who has its own system but they want a new iOS application with the mentioned features above. Currently this company has an ASMX web service who allows you to authenticate to the system, register a lead, register a client, register a sale, etc. Customer or Client Relationship Management (CRM) is the most important aspect in business sales and marketing for salesmen. According to various researches and studies, a potential lead, prospect or e-leads who initiates a contact to purchase your product or service is 82% more likely to close a deal with a business, rep, salesperson or freelancer who calls them back first. That’s why Leads360 wants to see some notifications in the iOS application for a missed call or email from a potential lead. II. PROBLEM For example you can miss a call or email from a potential lead we would like to register that person automatically; when an event like this occurs how do you initiate a process in a remote system like Leads360, pass the potential lead information to that process, receive a response from the remote system, and then use that response data to create a notification within the iOS application? III. FORCES We have to consider the following forces: • Does the call to the Leads360 service require the iOS application to wait for a response before continuing processing? • Is the call to the Leads360 service a synchronous request-reply or an asynchronous request? • Is the integration based on the occurrence of a specific event like a missed call? • Is the Leads360 service able to respond to the request with low latency? • Is the Leads360 service able to respond to multiple request at the same time? *This work was not supported by any organization 1Student of Integration Patterns, ALSIE, Cochabamba IV. PROPOSED SOLUTION Leads360. Fortunately, Leads360 has an ASMX web service (no code required). iOS Application. We need to consume the externally hosted service (SOAP web service), so we need to define some calling mechanisms. A. Architecture Basically we have a Client-Server architecture, but in order to consume the SOAP web service we have to do the following steps into the iOS application: • Subscribe the iOS app to the NSNotificationCenter. • Create the request SOAP Envelope message as NSString • Create a request to the URL (NSMutableURLRequest) • Add required request header elements • Define the request method (HTTPMethod: POST) • Define the body of the request (HTTPBody: [bytes]) • Implement the NSURLConnectionDelegate methods (didReceiveResponse, didReceiveData, didFailWithError, connectionDidFinishLoading) • Parse the response (implement this inside the connectionDidFinishLoading delegate method) • Queue the new potential lead into the notification stack. B. Normal Flow This is the normal flow for a missed call event: • We receive an event in the iOS device (a missed call). • The NSNotificationCenter notifies the iOS application that an event has occurred. • The event is analyzed, and if we detect a potential lead then we proceed to register it. • The client (iOS application) sends a process request to the respective server (Leads360 service) via a network connection. • This request is then analyzed, well processed and finally delivered back to the client (iOS application). • The client manages the successful response and queues the new event into the internal stack of notifications. C. Error Scenarios It’s important to include an error handling and recovery strategy as part of the overall solution. We have to think in the following scenarios: No internet connection. If there’s no internet connection we have to create a new Request and add it to the PendingRe- questQueue. So, when the internet comes back we can try to send those requests again. It is very important not to lose information in this point.
  • 2. An exception during the normal flow. It can be produced by some wrong data in the HTTPBody, so we need to catch that NSException and add it in a log file. HTTP Response Status Code. If the status code we receive is not equals to 200, we have to analyze what happened based on the status code number in order to use our PendingRequestQueue or log some information into a log file. We have to implement this inside the didFailWithError delegate method. D. Security Concerns In this integration we have the following security concerns: • The Leads360 service must be protected by implement- ing the appropriate firewall mechanisms. • In order to consume the services we have to call the authentication service first. It will generate a token for us, and we must use that token in the rest of the services provided by Leads360. (like the AddLead service) V. VERIFICATION In order to test this specific implementation, we have to deploy the iOS application in a real device and reproduce the event (missed call). If the missed call event was able to create a new lead in the Leads360 system, we are going to be able to see a notification in the iOS application with the identifier of that potential lead. VI. CONCLUSIONS This kind of integration is very common on mobile en- vironments like iOS and Android, so if the external system doesn’t have an EndPoint (like a web service), we should have to implement a new one. APPENDIX An appendix section is not required. ACKNOWLEDGMENT An acknowledgment section is not required. REFERENCES [1] Enterprise Integration Patterns. Designing, Building, and Deploying Messaging Solutions, Gregor Hohpe. Bobby Woolf, Ed. Boston: Pearson Education, Inc., 2004.