SlideShare a Scribd company logo
1 of 21
Download to read offline
Introduction to Web Services
Ed Marshall
2015 STC Technical Summit
Copyright 2015
Web Services – A Growing Area
• Web Service - An application that provides a
Web API to provide a platform / language
independent application
• Related to service-oriented architectures
(SOAs)
• Uses several protocols to send / receive XML
messages
6/19/2015
Who Uses Web Services
• Financial – mortgage companies, institutional
traders, banks, etc.
• Web retail – Amazon Web Services, Nokia, and
Netflix
• Software – Google and Dyn
• Social Media – Twitter, Flickr, Picasa, You Tube,
Facebook, and Linked In
6/19/2015
Sample Web Services APIs
• Amazon Web Services –
http://aws.amazon.com/tools/?nc1=f_dr
• Google – http://code.google.com/p/google-gdata/
https://developers.google.com/google-apps/documents-
list/?csw=1#what_can_this_api_do
• Android – http://developer.android.com/index.html
6/19/2015
More Web Service Examples
• http://flickrpy.googlecode.com/svn/trunk/tags
2set.py
• http://docs.python.org/2/tutorial/interpreter.
html
• https://dev.twitter.com/
• https://developer.linkedin.com/
• https://developers.facebook.com/
6/19/2015
Sample Web Services Documentation
• Developer.android.com
• https://help.dynect.net/dns-api-knowledge-base/
• Google.Gdata.Documentation.chm - http://code.google.com/p/google-
gdata/source/browse/#svn%2Fdocs
• https://dev.twitter.com/docs
• http://www.twilio.com/docs/api
• Microsoft Tablet PC SDK documentation:
http://msdn.microsoft.com/en-us/library/ms840465.aspx
http://msdn.microsoft.com/en-us/library/ms839522.aspx
• https://kenai.com/projects/suncloudapis/pages/Home
6/19/2015
Types of Web Services
• REST – Representational State Transfer
• SOAP – Simple Object Access Protocol
• XML-RPC – XML Remote Procedure Call
• JSON-RPC – JavaScript Object Notation
Remote Procedure Call
6/19/2015
REST (Representational state transfer)
• RESTful APIs do not require XML-based web service
protocols (SOAP and WSDL) to support their interfaces.
• REST is not a protocol, but a set of architectural principles.
REST services provide simpler interfaces, all resources are
identified in the request, and you can manage the
resources from the REST API.
• REST services offer an easy-to-parse URL structure, that
identifies the categories of data available.
• REST services use standard HTTP methods.
6/19/2015
REST (Under the Hood)
Web Service APIs that adhere to the REST constraints are called RESTful.
RESTful APIs have the following characteristics:
• Specify a base URI, such as http://example.com/resources/
• Use a standard internet data type. Most commonly, JSON. Other types
such as valid Internet media type (for example, XML, Atom,
microformats, images, etc.)
• Use standard HTTP methods (GET, PUT, POST, or DELETE)
• Provide the current state of the resource in the call (referred to as
stateless)
• Supply any resources needed via hypertext links
6/19/2015
Format for REST Commands
HTTP provides the following request methods (used by REST
APIs):
• GET – Lists / retrieves data from a record. Doesn’t change
the record
• POST – Posts / stores writes data into a record. Creates a
new entry in a collection / data in a record
• PUT – Replaces the entire collection with another
collection.
• DELETE – Removes data from a record. Performs the same
operation every time.
6/19/2015
Web Application Description Language
(WADL)
• A machine-readable XML description of REST web services.
• WADL is the REST equivalent of SOAP’s Web Services Description
Language (WSDL).
Note, most developers still prefer good API documentation over reading
WADLs or WSDLs.
6/19/2015
SOAP (Simple Object Access Protocol)
• Defines the communication method and the
structure of the messages. Uses XML for the
data.
• A SOAP service publishes a definition of its
interface in a machine-readable document,
using WSDL (Web Services Definition
Language).
6/19/2015
XML-RPC
• An older protocol than SOAP.
• Uses a specific XML format for data transfer
instead the proprietary XML format used by
SOAP.
• An XML-RPC call is usually simpler and uses
less bandwidth than a SOAP call.
6/19/2015
JSON-RPC
• Similar to XML-RPC but uses JSON instead of
XML for data transfer.
• Defines a small number of data types and
commands.
• JSON-RPC supports notifications (data sent to
the server that does not require a response)
and multiple calls can be sent to the server
which can be answered out of order.
6/19/2015
Format for a JSON Request
A request is a call to a specific method provided by a remote
system. It must contain three specific properties:
• method - A String with the name of the method to be
invoked.
• params - An Array of objects to be passed as parameters to
the defined method.
• id - A value of any type, which is used to match the
response with the request that it is replying to.
6/19/2015
Format for a JSON Receiver
The receiver of the request must reply with a valid response
to all received requests. A response must contain the
following properties:
• result - The data returned by the invoked method. If an
error occurred while invoking the method, this value must
be null.
• error - A specified Error code if there was an error invoking
the method, otherwise null.
• id - The id of the request it is responding to.
6/19/2015
Sample JSON-RPC Request
A simple request and response:
Request:
{“method": "echo", "params":
["Hello JSON-RPC"], "id": 1}
Response
<-- {"result": "Hello JSON-RPC",
"error": null, "id": 1}
6/19/2015
Web Services / SOA resources
• Web Services A Manager’s Guide – Anne Thomas
Mannes
• Service Oriented Architecture for Dummies –
Judith Hurwitz, Robin Bloor, and Carol Baroudi
• Developing User Assistance for Mobile Apps –
Joe Welinske
6/19/2015
Documentation Tools
• Adivo (www.adivo.com)
• Sphinx documents python code
(http://sphinx-doc.org/)
• Swagger – Used to create interactive examples
in your Web Services documentation
(swagger.io)
Live demo: http://petstore.swagger.io/
6/19/2015
Summary
• Fast growing field – In 2014, cloud computing industry was
expected to grow to a $150 billion industry.
• Combines traditional tech. writing w/ API skills > higher pay,
more flexibility, not as boring work
• Work w/ “cool” (fun) technologies (Amazon, music, photos,
messaging, etc.)
• Gets you into revenue generating areas such as marketing,
not just “cost centers”.
6/19/2015
Closing
• Thank you.
• Questions?
Ed Marshall
Marshall Documentation Consulting
ed.marshall@verizon.net
www.MarshallDocumentationServices.com
LinkedIn: Ed Marshall
Twitter: EdMarshall
+1 978-339-3095
6/19/2015

More Related Content

What's hot

W3C Web Annotation WG Update (I Annotate 2016)
W3C Web Annotation WG Update (I Annotate 2016)W3C Web Annotation WG Update (I Annotate 2016)
W3C Web Annotation WG Update (I Annotate 2016)Robert Sanderson
 
Sasaki practical-linked-data
Sasaki practical-linked-dataSasaki practical-linked-data
Sasaki practical-linked-dataFelix Sasaki
 
Micro-Servicing Linked Data
Micro-Servicing Linked DataMicro-Servicing Linked Data
Micro-Servicing Linked DataopenCypher
 
2010 SUNYLA - The X Layer - a solution for a special collection a Buffalo State
2010 SUNYLA - The X Layer - a solution for a special collection a Buffalo State2010 SUNYLA - The X Layer - a solution for a special collection a Buffalo State
2010 SUNYLA - The X Layer - a solution for a special collection a Buffalo StateMike Curtis
 
KD-2013-Optimizing-Document-Search-using-Lucene
KD-2013-Optimizing-Document-Search-using-LuceneKD-2013-Optimizing-Document-Search-using-Lucene
KD-2013-Optimizing-Document-Search-using-LuceneHarshakumar Ummerpillai
 
Working with Crossref and registering content
Working with Crossref and registering contentWorking with Crossref and registering content
Working with Crossref and registering contentCrossref
 
Talis Platform: A Linked Data Engine
Talis Platform: A Linked Data EngineTalis Platform: A Linked Data Engine
Talis Platform: A Linked Data EngineLeigh Dodds
 
Let your data shine... with OpenRefine
Let your data shine... with OpenRefineLet your data shine... with OpenRefine
Let your data shine... with OpenRefineOpen Knowledge Belgium
 
Ciel, mes données ne sont plus relationnelles
Ciel, mes données ne sont plus relationnellesCiel, mes données ne sont plus relationnelles
Ciel, mes données ne sont plus relationnellesXavier Gorse
 
Lawson for Total Beginners
Lawson for Total BeginnersLawson for Total Beginners
Lawson for Total BeginnersNogalis Inc
 
IMLS Big Data in Libraries 3Rs Conference
IMLS Big Data in Libraries 3Rs ConferenceIMLS Big Data in Libraries 3Rs Conference
IMLS Big Data in Libraries 3Rs ConferenceSarah Bratt
 
Checking for originality: Crossref Similarity Check
Checking for originality: Crossref Similarity CheckChecking for originality: Crossref Similarity Check
Checking for originality: Crossref Similarity CheckCrossref
 
Why is JSON-LD Important to Businesses - Franz Inc
Why is JSON-LD Important to Businesses - Franz IncWhy is JSON-LD Important to Businesses - Franz Inc
Why is JSON-LD Important to Businesses - Franz IncFranz Inc. - AllegroGraph
 
Open Data and Web API
Open Data and Web APIOpen Data and Web API
Open Data and Web APISammy Fung
 
Measure Twice and Cut Once: How a Budget Cut Impacted Subscription Renewals f...
Measure Twice and Cut Once: How a Budget Cut Impacted Subscription Renewals f...Measure Twice and Cut Once: How a Budget Cut Impacted Subscription Renewals f...
Measure Twice and Cut Once: How a Budget Cut Impacted Subscription Renewals f...NASIG
 
Toronto OpenRefine MeetUp Nov 2015
Toronto OpenRefine MeetUp Nov 2015Toronto OpenRefine MeetUp Nov 2015
Toronto OpenRefine MeetUp Nov 2015Martin Magdinier
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis PlatformLeigh Dodds
 

What's hot (20)

R training at Aimia
R training at AimiaR training at Aimia
R training at Aimia
 
W3C Web Annotation WG Update (I Annotate 2016)
W3C Web Annotation WG Update (I Annotate 2016)W3C Web Annotation WG Update (I Annotate 2016)
W3C Web Annotation WG Update (I Annotate 2016)
 
Sasaki practical-linked-data
Sasaki practical-linked-dataSasaki practical-linked-data
Sasaki practical-linked-data
 
Micro-Servicing Linked Data
Micro-Servicing Linked DataMicro-Servicing Linked Data
Micro-Servicing Linked Data
 
2010 SUNYLA - The X Layer - a solution for a special collection a Buffalo State
2010 SUNYLA - The X Layer - a solution for a special collection a Buffalo State2010 SUNYLA - The X Layer - a solution for a special collection a Buffalo State
2010 SUNYLA - The X Layer - a solution for a special collection a Buffalo State
 
KD-2013-Optimizing-Document-Search-using-Lucene
KD-2013-Optimizing-Document-Search-using-LuceneKD-2013-Optimizing-Document-Search-using-Lucene
KD-2013-Optimizing-Document-Search-using-Lucene
 
Working with Crossref and registering content
Working with Crossref and registering contentWorking with Crossref and registering content
Working with Crossref and registering content
 
Talis Platform: A Linked Data Engine
Talis Platform: A Linked Data EngineTalis Platform: A Linked Data Engine
Talis Platform: A Linked Data Engine
 
Let your data shine... with OpenRefine
Let your data shine... with OpenRefineLet your data shine... with OpenRefine
Let your data shine... with OpenRefine
 
Ciel, mes données ne sont plus relationnelles
Ciel, mes données ne sont plus relationnellesCiel, mes données ne sont plus relationnelles
Ciel, mes données ne sont plus relationnelles
 
Lawson for Total Beginners
Lawson for Total BeginnersLawson for Total Beginners
Lawson for Total Beginners
 
IMLS Big Data in Libraries 3Rs Conference
IMLS Big Data in Libraries 3Rs ConferenceIMLS Big Data in Libraries 3Rs Conference
IMLS Big Data in Libraries 3Rs Conference
 
CEK KEMIRIPAN PADA CROSSREF
CEK KEMIRIPAN PADA CROSSREFCEK KEMIRIPAN PADA CROSSREF
CEK KEMIRIPAN PADA CROSSREF
 
Checking for originality: Crossref Similarity Check
Checking for originality: Crossref Similarity CheckChecking for originality: Crossref Similarity Check
Checking for originality: Crossref Similarity Check
 
Why is JSON-LD Important to Businesses - Franz Inc
Why is JSON-LD Important to Businesses - Franz IncWhy is JSON-LD Important to Businesses - Franz Inc
Why is JSON-LD Important to Businesses - Franz Inc
 
Open Data and Web API
Open Data and Web APIOpen Data and Web API
Open Data and Web API
 
Flex Olap Components
Flex Olap ComponentsFlex Olap Components
Flex Olap Components
 
Measure Twice and Cut Once: How a Budget Cut Impacted Subscription Renewals f...
Measure Twice and Cut Once: How a Budget Cut Impacted Subscription Renewals f...Measure Twice and Cut Once: How a Budget Cut Impacted Subscription Renewals f...
Measure Twice and Cut Once: How a Budget Cut Impacted Subscription Renewals f...
 
Toronto OpenRefine MeetUp Nov 2015
Toronto OpenRefine MeetUp Nov 2015Toronto OpenRefine MeetUp Nov 2015
Toronto OpenRefine MeetUp Nov 2015
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis Platform
 

Similar to Intro to Web Services - 2015 STC Summit talk

(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service BIOVIA
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API RecommendationsJeelani Shaik
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25Jon Petter Hjulstad
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIsamesar0
 
Restful webservice
Restful webserviceRestful webservice
Restful webserviceDong Ngoc
 
Your API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel BadYour API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel BadAmanda Folson
 
Advanced Web Design And Development BIT 3207
Advanced Web Design And Development BIT 3207Advanced Web Design And Development BIT 3207
Advanced Web Design And Development BIT 3207Lori Head
 
Api design and development
Api design and developmentApi design and development
Api design and developmentoquidave
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...Jitendra Bafna
 
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & RestoreLadies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restoregemziebeth
 
Integration on Force.com Platform
Integration on Force.com PlatformIntegration on Force.com Platform
Integration on Force.com PlatformAmit Jain
 
REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulnessDavid Waite
 
What is API - Understanding API Simplified
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API SimplifiedJubin Aghara
 

Similar to Intro to Web Services - 2015 STC Summit talk (20)

(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API Recommendations
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
APITalkMeetupSharable
APITalkMeetupSharableAPITalkMeetupSharable
APITalkMeetupSharable
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIs
 
Restful webservice
Restful webserviceRestful webservice
Restful webservice
 
Your API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel BadYour API is Bad and You Should Feel Bad
Your API is Bad and You Should Feel Bad
 
Advanced Web Design And Development BIT 3207
Advanced Web Design And Development BIT 3207Advanced Web Design And Development BIT 3207
Advanced Web Design And Development BIT 3207
 
Api design and development
Api design and developmentApi design and development
Api design and development
 
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...
 
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & RestoreLadies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
Ladies Be Architects - Integration - Multi-Org, Security, JSON, Backup & Restore
 
Overview of java web services
Overview of java web servicesOverview of java web services
Overview of java web services
 
Integration on Force.com Platform
Integration on Force.com PlatformIntegration on Force.com Platform
Integration on Force.com Platform
 
SOA Testing
SOA TestingSOA Testing
SOA Testing
 
REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulness
 
What is API - Understanding API Simplified
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API Simplified
 
06 web api
06 web api06 web api
06 web api
 
The DNA of a great API
The DNA of a great APIThe DNA of a great API
The DNA of a great API
 
Restful webservices
Restful webservicesRestful webservices
Restful webservices
 

Recently uploaded

OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 

Recently uploaded (20)

OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 

Intro to Web Services - 2015 STC Summit talk

  • 1. Introduction to Web Services Ed Marshall 2015 STC Technical Summit Copyright 2015
  • 2. Web Services – A Growing Area • Web Service - An application that provides a Web API to provide a platform / language independent application • Related to service-oriented architectures (SOAs) • Uses several protocols to send / receive XML messages 6/19/2015
  • 3. Who Uses Web Services • Financial – mortgage companies, institutional traders, banks, etc. • Web retail – Amazon Web Services, Nokia, and Netflix • Software – Google and Dyn • Social Media – Twitter, Flickr, Picasa, You Tube, Facebook, and Linked In 6/19/2015
  • 4. Sample Web Services APIs • Amazon Web Services – http://aws.amazon.com/tools/?nc1=f_dr • Google – http://code.google.com/p/google-gdata/ https://developers.google.com/google-apps/documents- list/?csw=1#what_can_this_api_do • Android – http://developer.android.com/index.html 6/19/2015
  • 5. More Web Service Examples • http://flickrpy.googlecode.com/svn/trunk/tags 2set.py • http://docs.python.org/2/tutorial/interpreter. html • https://dev.twitter.com/ • https://developer.linkedin.com/ • https://developers.facebook.com/ 6/19/2015
  • 6. Sample Web Services Documentation • Developer.android.com • https://help.dynect.net/dns-api-knowledge-base/ • Google.Gdata.Documentation.chm - http://code.google.com/p/google- gdata/source/browse/#svn%2Fdocs • https://dev.twitter.com/docs • http://www.twilio.com/docs/api • Microsoft Tablet PC SDK documentation: http://msdn.microsoft.com/en-us/library/ms840465.aspx http://msdn.microsoft.com/en-us/library/ms839522.aspx • https://kenai.com/projects/suncloudapis/pages/Home 6/19/2015
  • 7. Types of Web Services • REST – Representational State Transfer • SOAP – Simple Object Access Protocol • XML-RPC – XML Remote Procedure Call • JSON-RPC – JavaScript Object Notation Remote Procedure Call 6/19/2015
  • 8. REST (Representational state transfer) • RESTful APIs do not require XML-based web service protocols (SOAP and WSDL) to support their interfaces. • REST is not a protocol, but a set of architectural principles. REST services provide simpler interfaces, all resources are identified in the request, and you can manage the resources from the REST API. • REST services offer an easy-to-parse URL structure, that identifies the categories of data available. • REST services use standard HTTP methods. 6/19/2015
  • 9. REST (Under the Hood) Web Service APIs that adhere to the REST constraints are called RESTful. RESTful APIs have the following characteristics: • Specify a base URI, such as http://example.com/resources/ • Use a standard internet data type. Most commonly, JSON. Other types such as valid Internet media type (for example, XML, Atom, microformats, images, etc.) • Use standard HTTP methods (GET, PUT, POST, or DELETE) • Provide the current state of the resource in the call (referred to as stateless) • Supply any resources needed via hypertext links 6/19/2015
  • 10. Format for REST Commands HTTP provides the following request methods (used by REST APIs): • GET – Lists / retrieves data from a record. Doesn’t change the record • POST – Posts / stores writes data into a record. Creates a new entry in a collection / data in a record • PUT – Replaces the entire collection with another collection. • DELETE – Removes data from a record. Performs the same operation every time. 6/19/2015
  • 11. Web Application Description Language (WADL) • A machine-readable XML description of REST web services. • WADL is the REST equivalent of SOAP’s Web Services Description Language (WSDL). Note, most developers still prefer good API documentation over reading WADLs or WSDLs. 6/19/2015
  • 12. SOAP (Simple Object Access Protocol) • Defines the communication method and the structure of the messages. Uses XML for the data. • A SOAP service publishes a definition of its interface in a machine-readable document, using WSDL (Web Services Definition Language). 6/19/2015
  • 13. XML-RPC • An older protocol than SOAP. • Uses a specific XML format for data transfer instead the proprietary XML format used by SOAP. • An XML-RPC call is usually simpler and uses less bandwidth than a SOAP call. 6/19/2015
  • 14. JSON-RPC • Similar to XML-RPC but uses JSON instead of XML for data transfer. • Defines a small number of data types and commands. • JSON-RPC supports notifications (data sent to the server that does not require a response) and multiple calls can be sent to the server which can be answered out of order. 6/19/2015
  • 15. Format for a JSON Request A request is a call to a specific method provided by a remote system. It must contain three specific properties: • method - A String with the name of the method to be invoked. • params - An Array of objects to be passed as parameters to the defined method. • id - A value of any type, which is used to match the response with the request that it is replying to. 6/19/2015
  • 16. Format for a JSON Receiver The receiver of the request must reply with a valid response to all received requests. A response must contain the following properties: • result - The data returned by the invoked method. If an error occurred while invoking the method, this value must be null. • error - A specified Error code if there was an error invoking the method, otherwise null. • id - The id of the request it is responding to. 6/19/2015
  • 17. Sample JSON-RPC Request A simple request and response: Request: {“method": "echo", "params": ["Hello JSON-RPC"], "id": 1} Response <-- {"result": "Hello JSON-RPC", "error": null, "id": 1} 6/19/2015
  • 18. Web Services / SOA resources • Web Services A Manager’s Guide – Anne Thomas Mannes • Service Oriented Architecture for Dummies – Judith Hurwitz, Robin Bloor, and Carol Baroudi • Developing User Assistance for Mobile Apps – Joe Welinske 6/19/2015
  • 19. Documentation Tools • Adivo (www.adivo.com) • Sphinx documents python code (http://sphinx-doc.org/) • Swagger – Used to create interactive examples in your Web Services documentation (swagger.io) Live demo: http://petstore.swagger.io/ 6/19/2015
  • 20. Summary • Fast growing field – In 2014, cloud computing industry was expected to grow to a $150 billion industry. • Combines traditional tech. writing w/ API skills > higher pay, more flexibility, not as boring work • Work w/ “cool” (fun) technologies (Amazon, music, photos, messaging, etc.) • Gets you into revenue generating areas such as marketing, not just “cost centers”. 6/19/2015
  • 21. Closing • Thank you. • Questions? Ed Marshall Marshall Documentation Consulting ed.marshall@verizon.net www.MarshallDocumentationServices.com LinkedIn: Ed Marshall Twitter: EdMarshall +1 978-339-3095 6/19/2015