SlideShare a Scribd company logo
TEACHING THE WORLD
TO SING IN HARMONY
With Web Services
WHO AM I?
(JUSTIN PASCHAL)
Application Architect – ADI
18 yrs experience
Early Years: COBOL, Visual Basic 4
Lately: C#, PHP, JavaScript, etc.
justin.paschal@vanderbilt.edu
WHO ARE YOU? Intros.
WHY ARE YOU HERE? Applications love solos.
IN THE BEGINNING
THERE WERE
COMPUTERS.
Data
Screen
Screen
Report
Report
Traditional Applications
- Seemingly Miraculous (they did stuff!)
- Financial calculations, data collection
- Screens and Reports were input/output
- “Silos” of data and functionality
- No interconnectedness
- Could always import/export
- Special coding required
- Data was rarely “fresh”
DISTRIBUTED
COMPUTING (RPC):
A SECOND
MELODY+ Allowed for inter-application
communication
• CORBA, DCOM, EDI
• MTS (Microsoft Transaction Server)
• JAVA Enterprise Beans
• COM+
+ Registry of available components/libraries
+ Used MOM (Message-Oriented
Middleware), a system of sending and
queuing messages
- Still closed systems, costly to develop and
maintain
- Required client/server to be on same
platform/language/architecture
- Not designed to be accessed publicly
Transaction Coordinator
DB Ops File Ops Msg Ops
WEB SERVICES: TRUE
HARMONY
La La La Laaaa!
WEB SERVICES: BEGINNINGS
HTTP became a communication standard in 1994.
XML became a standard in February, 1998.
“Web” and “Services” first put together by Bill Gates at the Microsoft
Developers Conference in July, 2000.
SOAP announced as first messaging specification by Microsoft in
2000. 1 month after the announcement of .NET Framework (June,
2000).*
“The problem was getting people to think it was good, even though
it came from Microsoft” – Andrew Layman (The First Web Services
Architect)
SOAP-CL (WSDL) arrives in fall, 2000.
WEB SERVICES ARCHITECTURE
(SOA)
Pros
Standards-based (XML, HTTP)
Language Independent
Reusability
Stateless Connections
Encapsulation of functionality
Simpler, cheaper to maintain
Cons
Learning Curve
Verbose
Stateless Connections
WHY/WHEN WOULD YOU USE WEB
SERVICES?
External access to YOUR data or processes (server)
Want to consume other’s data or processes (client)
When data needs to be validated/approved
Make your web application *appear* to be faster or more responsive
Different applications need to use the same business rules
(reusability)
??
WEB SERVICE STANDARD:
SOAP
XML-based messaging in a
major key.
SIMPLE OBJECT ACCESS
PROTOCOL (SOAP)
Widely supported
HTTP as delivery mechanism, XML as messaging
Platform, Language independent
Uses “envelopes” to contain messages (request/response)
Dozens of specifications for enterprise
WS-Security
WS-Policy
WSDL for discovery
Many tools support proxy generation, language-specific
implementations
WEB SERVICES STANDARD:
XML/SOAP
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:con="http://itsm.vanderbilt.edu/services/configuration/">
<soapenv:Header/>
<soapenv:Body>
<con:GetCIByName>
<!--Optional:-->
<con:apiKey>ASDF123</con:apiKey>
<con:ciName>PEGASUS</con:ciName>
</con:GetCIByName>
</soapenv:Body>
</soapenv:Envelope>
WEB SERVICES STANDARD:
XML/SOAP
Response
<soap:Envelope ..>
<soap:Body>
<GetCIByNameResponse xmlns="http://itsm.vanderbilt.edu/services/configuration/">
<GetCIByNameResult>
<Success>true</Success>
<Message>Successful Response.</Message>
<CIData>
<CIModelExtension>
<AdminID>33</AdminID>
<AdminName>ADI - SERVICE DELIVERY SOLUTIONS</AdminName>
<Name>PEGASUS</Name>
<StatusName>Installed</StatusName>
</CIModelExtension>
</CIData>
</GetCIByNameResult>
</GetCIByNameResponse>
</soap:Body>
</soap:Envelope>
WEB SERVICE STANDARD:
REST
It doesn’t mean PAUSE.
REPRESENTATIONAL STATE
TRANSFER (REST)
New(er), young(er) than SOAP
Designed to be leaner, faster, less complicated than other options
Platform, Language independent
Uses URIs and HTTP Methods to determine actions and responses
5 basic principles:
Give every “thing” an ID
Link things together*
Use standard methods
Resources with multiple representations
Communicate statelessly
USING STANDARD
METHODS
Using the HTTP protocol as intended
HTTP Methods:
• GET
• POST (insert)
• PUT (update)
• DELETE
WEB SERVICES STANDARD: REST
GET
https://wstest.mc.vanderbilt.edu/core/a
pi/secure/{KEY}/emailprocessing/outbox
HTTP/1.1
Accept-Encoding: gzip,deflate
Host: services.mc.vanderbilt.edu
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1
(java 1.5)
Request
POST
/users
HTTP/1.1
Host: myserver
Content-Type:
application/xml <?xml
version="1.0"?>
<user>
<name>Robert</nam
e> </user>
WEB SERVICES STANDARD: REST
{
"EmailItems": [ {
"ExchangeProperties": {
"Id": null,
"ConversationId": null
},
"ID": "ef70454ba333486c929b5bcaf8a0e212",
"FromName": null,
"FromAddress": null,
"To": “someone@Vanderbilt.Edu",
"Cc": null,
"Subject": "Incident created for {CI}",
"Body": “{BODY}”,
"HasAttachments": false,
"Attachments": [],
"ModuleID": 1,
"ItemResourceID": "IM1261589",
"EmailDate": "2015-07-21T22:20:11",
"EmailType": 0,
"ParentEmailTrackingID": null,
"IsRead": false,
"ReadDate": null,
"ReadBy": null,
"MatchesRule": false,
"MatchedRuleName": null
}],
"ConfigurationData": null,
"Success": true,
"Message": null,
"RawData": null
}
Response
DEMOS Watch me now, hey!
ONLINE RESOURCES
Understanding Web Services (Basics) -
http://www.ibm.com/developerworks/webservices/tutorials/ws-
understand-web-services1/ws-understand-web-services1.html
RESTful Web Services (Introduction) -
http://www.ibm.com/developerworks/library/ws-restful/
SOAP UI (free Web Services testing tool) -
http://www.soapui.org/downloads/soapui/open-source.html
Web Service Frameworks List -
https://en.wikipedia.org/wiki/List_of_web_service_frameworks

More Related Content

What's hot

Static web documents
Static web documents Static web documents
Static web documents
bhashwitha kolluri
 
Single Page Applications on JavaScript and ASP.NET MVC4
Single Page Applications on JavaScript and ASP.NET MVC4Single Page Applications on JavaScript and ASP.NET MVC4
Single Page Applications on JavaScript and ASP.NET MVC4
Yuriy Shapovalov
 
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
SSA KPI
 
Introduction to asp.net
Introduction to asp.netIntroduction to asp.net
Introduction to asp.net
Melick Baranasooriya
 
Using Wordpress As An Application Platform -- #WCMKE 2014
Using Wordpress As An Application Platform -- #WCMKE 2014Using Wordpress As An Application Platform -- #WCMKE 2014
Using Wordpress As An Application Platform -- #WCMKE 2014
serversideup
 
SOAP by luv
SOAP by luvSOAP by luv
SOAP by luv
aligarhking
 
Web servers
Web serversWeb servers
Web servers
webhostingguy
 
The Internet Explained To Your Mum In 5 Slides
The Internet Explained To Your Mum In 5 SlidesThe Internet Explained To Your Mum In 5 Slides
The Internet Explained To Your Mum In 5 Slides
Marcello Brivio
 
Tapir user manager
Tapir user managerTapir user manager
Tapir user manager
Paul Houle
 
sell idea
sell ideasell idea
sell idea
Rashmi Joshi
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
TSUBHASHRI
 
Web development
Web developmentWeb development
Web development
Melania Andrisan (Danciu)
 
High performance website
High performance websiteHigh performance website
High performance website
Chamnap Chhorn
 
ASP.NET - Introduction to Web Forms and MVC
ASP.NET - Introduction to Web Forms and MVCASP.NET - Introduction to Web Forms and MVC
ASP.NET - Introduction to Web Forms and MVC
Bilal Amjad
 
Automate capabilities
Automate capabilitiesAutomate capabilities
Automate capabilities
Daniele Fittabile
 
ASP.NET Web form
ASP.NET Web formASP.NET Web form
ASP.NET Web form
Md. Mahedee Hasan
 
3 web services bb
3   web services bb3   web services bb
3 web services bb
Shahid Riaz
 
Basic fundamentals of web application development
Basic fundamentals of web application developmentBasic fundamentals of web application development
Basic fundamentals of web application development
sofyjohnson18
 
Single page applications with backbone js
Single page applications with backbone jsSingle page applications with backbone js
Single page applications with backbone js
Gil Fink
 

What's hot (19)

Static web documents
Static web documents Static web documents
Static web documents
 
Single Page Applications on JavaScript and ASP.NET MVC4
Single Page Applications on JavaScript and ASP.NET MVC4Single Page Applications on JavaScript and ASP.NET MVC4
Single Page Applications on JavaScript and ASP.NET MVC4
 
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
Java Platform and IDE Netbeans 6.7 for Developing Enterprise and Web Applicat...
 
Introduction to asp.net
Introduction to asp.netIntroduction to asp.net
Introduction to asp.net
 
Using Wordpress As An Application Platform -- #WCMKE 2014
Using Wordpress As An Application Platform -- #WCMKE 2014Using Wordpress As An Application Platform -- #WCMKE 2014
Using Wordpress As An Application Platform -- #WCMKE 2014
 
SOAP by luv
SOAP by luvSOAP by luv
SOAP by luv
 
Web servers
Web serversWeb servers
Web servers
 
The Internet Explained To Your Mum In 5 Slides
The Internet Explained To Your Mum In 5 SlidesThe Internet Explained To Your Mum In 5 Slides
The Internet Explained To Your Mum In 5 Slides
 
Tapir user manager
Tapir user managerTapir user manager
Tapir user manager
 
sell idea
sell ideasell idea
sell idea
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Web development
Web developmentWeb development
Web development
 
High performance website
High performance websiteHigh performance website
High performance website
 
ASP.NET - Introduction to Web Forms and MVC
ASP.NET - Introduction to Web Forms and MVCASP.NET - Introduction to Web Forms and MVC
ASP.NET - Introduction to Web Forms and MVC
 
Automate capabilities
Automate capabilitiesAutomate capabilities
Automate capabilities
 
ASP.NET Web form
ASP.NET Web formASP.NET Web form
ASP.NET Web form
 
3 web services bb
3   web services bb3   web services bb
3 web services bb
 
Basic fundamentals of web application development
Basic fundamentals of web application developmentBasic fundamentals of web application development
Basic fundamentals of web application development
 
Single page applications with backbone js
Single page applications with backbone jsSingle page applications with backbone js
Single page applications with backbone js
 

Similar to Teaching the world to sing in harmony with Web Services

The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
Lucas Jellema
 
soap toolkit
soap toolkitsoap toolkit
soap toolkit
elliando dias
 
Metadata describes about data
Metadata describes about dataMetadata describes about data
Metadata describes about data
Dev Sanskriti Vishwavidyalaya (University)
 
Oracle soa training
Oracle soa training Oracle soa training
Oracle soa training
Trainmiddleware
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOAThe Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOA
Lucas Jellema
 
Above the cloud joarder kamal
Above the cloud   joarder kamalAbove the cloud   joarder kamal
Above the cloud joarder kamal
Joarder Kamal
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Getting value from IoT, Integration and Data Analytics
 
Contract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep DiveContract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep Dive
Gabriel Michaud
 
Wso2 con eu 2016 an introduction to the wso2 integration platform by chanak...
Wso2 con eu 2016   an introduction to the wso2 integration platform by chanak...Wso2 con eu 2016   an introduction to the wso2 integration platform by chanak...
Wso2 con eu 2016 an introduction to the wso2 integration platform by chanak...
Chanaka Fernando
 
Differentiating between web APIs, SOA, & integration …and why it matters
Differentiating between web APIs, SOA, & integration…and why it mattersDifferentiating between web APIs, SOA, & integration…and why it matters
Differentiating between web APIs, SOA, & integration …and why it matters
Kim Clark
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
Sascha Wenninger
 
Web Services Foundation Technologies
Web Services Foundation TechnologiesWeb Services Foundation Technologies
Web Services Foundation Technologies
Pankaj Saharan
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
Oracle Application Express
Oracle Application ExpressOracle Application Express
Oracle Application Express
HBoone
 
oracle ebs free web service integration tools
oracle ebs free web service integration toolsoracle ebs free web service integration tools
oracle ebs free web service integration tools
SmartDog Services
 
Would Mr. Spok choose Open Source
Would Mr. Spok choose Open SourceWould Mr. Spok choose Open Source
Would Mr. Spok choose Open Source
vlcinsky
 
Oracle SOA Suite in use – a practical experience report
Oracle SOA Suite in use – a practical experience reportOracle SOA Suite in use – a practical experience report
Oracle SOA Suite in use – a practical experience report
Guido Schmutz
 
Prateek tulsiyan app_integration_tcs
Prateek tulsiyan app_integration_tcsPrateek tulsiyan app_integration_tcs
Prateek tulsiyan app_integration_tcs
Prateek Tulsiyan
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
Serdar Basegmez
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
abhi1112
 

Similar to Teaching the world to sing in harmony with Web Services (20)

The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
 
soap toolkit
soap toolkitsoap toolkit
soap toolkit
 
Metadata describes about data
Metadata describes about dataMetadata describes about data
Metadata describes about data
 
Oracle soa training
Oracle soa training Oracle soa training
Oracle soa training
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOAThe Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOA
 
Above the cloud joarder kamal
Above the cloud   joarder kamalAbove the cloud   joarder kamal
Above the cloud joarder kamal
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
 
Contract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep DiveContract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep Dive
 
Wso2 con eu 2016 an introduction to the wso2 integration platform by chanak...
Wso2 con eu 2016   an introduction to the wso2 integration platform by chanak...Wso2 con eu 2016   an introduction to the wso2 integration platform by chanak...
Wso2 con eu 2016 an introduction to the wso2 integration platform by chanak...
 
Differentiating between web APIs, SOA, & integration …and why it matters
Differentiating between web APIs, SOA, & integration…and why it mattersDifferentiating between web APIs, SOA, & integration…and why it matters
Differentiating between web APIs, SOA, & integration …and why it matters
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
 
Web Services Foundation Technologies
Web Services Foundation TechnologiesWeb Services Foundation Technologies
Web Services Foundation Technologies
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
 
Oracle Application Express
Oracle Application ExpressOracle Application Express
Oracle Application Express
 
oracle ebs free web service integration tools
oracle ebs free web service integration toolsoracle ebs free web service integration tools
oracle ebs free web service integration tools
 
Would Mr. Spok choose Open Source
Would Mr. Spok choose Open SourceWould Mr. Spok choose Open Source
Would Mr. Spok choose Open Source
 
Oracle SOA Suite in use – a practical experience report
Oracle SOA Suite in use – a practical experience reportOracle SOA Suite in use – a practical experience report
Oracle SOA Suite in use – a practical experience report
 
Prateek tulsiyan app_integration_tcs
Prateek tulsiyan app_integration_tcsPrateek tulsiyan app_integration_tcs
Prateek tulsiyan app_integration_tcs
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
 

Recently uploaded

How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
GeorgeMilliken2
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
RAHUL
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
iammrhaywood
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
Nguyen Thanh Tu Collection
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
EduSkills OECD
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
สมใจ จันสุกสี
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Denish Jangid
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
PECB
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
heathfieldcps1
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
Wahiba Chair Training & Consulting
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
How to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 InventoryHow to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 Inventory
Celine George
 

Recently uploaded (20)

How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
 
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UPLAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
LAND USE LAND COVER AND NDVI OF MIRZAPUR DISTRICT, UP
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
 
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
BÀI TẬP DẠY THÊM TIẾNG ANH LỚP 7 CẢ NĂM FRIENDS PLUS SÁCH CHÂN TRỜI SÁNG TẠO ...
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
คำศัพท์ คำพื้นฐานการอ่าน ภาษาอังกฤษ ระดับชั้น ม.1
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
 
How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience How to Create a More Engaging and Human Online Learning Experience
How to Create a More Engaging and Human Online Learning Experience
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
How to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 InventoryHow to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 Inventory
 

Teaching the world to sing in harmony with Web Services

  • 1. TEACHING THE WORLD TO SING IN HARMONY With Web Services
  • 2. WHO AM I? (JUSTIN PASCHAL) Application Architect – ADI 18 yrs experience Early Years: COBOL, Visual Basic 4 Lately: C#, PHP, JavaScript, etc. justin.paschal@vanderbilt.edu
  • 3. WHO ARE YOU? Intros.
  • 4. WHY ARE YOU HERE? Applications love solos.
  • 5. IN THE BEGINNING THERE WERE COMPUTERS. Data Screen Screen Report Report Traditional Applications - Seemingly Miraculous (they did stuff!) - Financial calculations, data collection - Screens and Reports were input/output - “Silos” of data and functionality - No interconnectedness - Could always import/export - Special coding required - Data was rarely “fresh”
  • 6. DISTRIBUTED COMPUTING (RPC): A SECOND MELODY+ Allowed for inter-application communication • CORBA, DCOM, EDI • MTS (Microsoft Transaction Server) • JAVA Enterprise Beans • COM+ + Registry of available components/libraries + Used MOM (Message-Oriented Middleware), a system of sending and queuing messages - Still closed systems, costly to develop and maintain - Required client/server to be on same platform/language/architecture - Not designed to be accessed publicly Transaction Coordinator DB Ops File Ops Msg Ops
  • 8. WEB SERVICES: BEGINNINGS HTTP became a communication standard in 1994. XML became a standard in February, 1998. “Web” and “Services” first put together by Bill Gates at the Microsoft Developers Conference in July, 2000. SOAP announced as first messaging specification by Microsoft in 2000. 1 month after the announcement of .NET Framework (June, 2000).* “The problem was getting people to think it was good, even though it came from Microsoft” – Andrew Layman (The First Web Services Architect) SOAP-CL (WSDL) arrives in fall, 2000.
  • 9. WEB SERVICES ARCHITECTURE (SOA) Pros Standards-based (XML, HTTP) Language Independent Reusability Stateless Connections Encapsulation of functionality Simpler, cheaper to maintain Cons Learning Curve Verbose Stateless Connections
  • 10. WHY/WHEN WOULD YOU USE WEB SERVICES? External access to YOUR data or processes (server) Want to consume other’s data or processes (client) When data needs to be validated/approved Make your web application *appear* to be faster or more responsive Different applications need to use the same business rules (reusability) ??
  • 11. WEB SERVICE STANDARD: SOAP XML-based messaging in a major key.
  • 12. SIMPLE OBJECT ACCESS PROTOCOL (SOAP) Widely supported HTTP as delivery mechanism, XML as messaging Platform, Language independent Uses “envelopes” to contain messages (request/response) Dozens of specifications for enterprise WS-Security WS-Policy WSDL for discovery Many tools support proxy generation, language-specific implementations
  • 13. WEB SERVICES STANDARD: XML/SOAP Request <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="http://itsm.vanderbilt.edu/services/configuration/"> <soapenv:Header/> <soapenv:Body> <con:GetCIByName> <!--Optional:--> <con:apiKey>ASDF123</con:apiKey> <con:ciName>PEGASUS</con:ciName> </con:GetCIByName> </soapenv:Body> </soapenv:Envelope>
  • 14. WEB SERVICES STANDARD: XML/SOAP Response <soap:Envelope ..> <soap:Body> <GetCIByNameResponse xmlns="http://itsm.vanderbilt.edu/services/configuration/"> <GetCIByNameResult> <Success>true</Success> <Message>Successful Response.</Message> <CIData> <CIModelExtension> <AdminID>33</AdminID> <AdminName>ADI - SERVICE DELIVERY SOLUTIONS</AdminName> <Name>PEGASUS</Name> <StatusName>Installed</StatusName> </CIModelExtension> </CIData> </GetCIByNameResult> </GetCIByNameResponse> </soap:Body> </soap:Envelope>
  • 15. WEB SERVICE STANDARD: REST It doesn’t mean PAUSE.
  • 16. REPRESENTATIONAL STATE TRANSFER (REST) New(er), young(er) than SOAP Designed to be leaner, faster, less complicated than other options Platform, Language independent Uses URIs and HTTP Methods to determine actions and responses 5 basic principles: Give every “thing” an ID Link things together* Use standard methods Resources with multiple representations Communicate statelessly
  • 17. USING STANDARD METHODS Using the HTTP protocol as intended HTTP Methods: • GET • POST (insert) • PUT (update) • DELETE
  • 18. WEB SERVICES STANDARD: REST GET https://wstest.mc.vanderbilt.edu/core/a pi/secure/{KEY}/emailprocessing/outbox HTTP/1.1 Accept-Encoding: gzip,deflate Host: services.mc.vanderbilt.edu Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5) Request POST /users HTTP/1.1 Host: myserver Content-Type: application/xml <?xml version="1.0"?> <user> <name>Robert</nam e> </user>
  • 19. WEB SERVICES STANDARD: REST { "EmailItems": [ { "ExchangeProperties": { "Id": null, "ConversationId": null }, "ID": "ef70454ba333486c929b5bcaf8a0e212", "FromName": null, "FromAddress": null, "To": “someone@Vanderbilt.Edu", "Cc": null, "Subject": "Incident created for {CI}", "Body": “{BODY}”, "HasAttachments": false, "Attachments": [], "ModuleID": 1, "ItemResourceID": "IM1261589", "EmailDate": "2015-07-21T22:20:11", "EmailType": 0, "ParentEmailTrackingID": null, "IsRead": false, "ReadDate": null, "ReadBy": null, "MatchesRule": false, "MatchedRuleName": null }], "ConfigurationData": null, "Success": true, "Message": null, "RawData": null } Response
  • 20. DEMOS Watch me now, hey!
  • 21. ONLINE RESOURCES Understanding Web Services (Basics) - http://www.ibm.com/developerworks/webservices/tutorials/ws- understand-web-services1/ws-understand-web-services1.html RESTful Web Services (Introduction) - http://www.ibm.com/developerworks/library/ws-restful/ SOAP UI (free Web Services testing tool) - http://www.soapui.org/downloads/soapui/open-source.html Web Service Frameworks List - https://en.wikipedia.org/wiki/List_of_web_service_frameworks

Editor's Notes

  1. Interesting note: SOAP was held internally by Microsoft for a year due to internal politics. They wanted COM to be the standard. Others disagreed.
  2. * Formal definition is a bit weird. “Hypermedia as the engine of application state”, sometimes abbreviated as HATEOAS. Linking things together to create context, even outside of application boundaries. Ex: ‘ref=“http://example.com/product/1234”’ in the response for a product. Would work just as well in an ID relationship, but only inside the application context.