Suche senden
Hochladen
Architecting Web Services
âą
Als ODP, PDF herunterladen
âą
6 gefÀllt mir
âą
3,816 views
L
Lorna Mitchell
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 44
Jetzt herunterladen
Empfohlen
XML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEAR
Stephan Schmidt
Â
Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4
Stephan Schmidt
Â
XML processing with perl
XML processing with perl
Joe Jiang
Â
A simple ReSTful webservice for the Goblins (v. 0.5)
A simple ReSTful webservice for the Goblins (v. 0.5)
Danilo Sanchi
Â
JSP Custom Tags
JSP Custom Tags
BG Java EE Course
Â
The Big Documentation Extravaganza
The Big Documentation Extravaganza
Stephan Schmidt
Â
Rich faces
Rich faces
BG Java EE Course
Â
Ajaxppt
Ajaxppt
Ratna Prashanth
Â
Empfohlen
XML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEAR
Stephan Schmidt
Â
Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4
Stephan Schmidt
Â
XML processing with perl
XML processing with perl
Joe Jiang
Â
A simple ReSTful webservice for the Goblins (v. 0.5)
A simple ReSTful webservice for the Goblins (v. 0.5)
Danilo Sanchi
Â
JSP Custom Tags
JSP Custom Tags
BG Java EE Course
Â
The Big Documentation Extravaganza
The Big Documentation Extravaganza
Stephan Schmidt
Â
Rich faces
Rich faces
BG Java EE Course
Â
Ajaxppt
Ajaxppt
Ratna Prashanth
Â
Processing XML with Java
Processing XML with Java
BG Java EE Course
Â
Open Source Package Php Mysql 1228203701094763 9
Open Source Package Php Mysql 1228203701094763 9
isadorta
Â
PHP MySQL
PHP MySQL
Md. Sirajus Salayhin
Â
PHPTAL introduction
PHPTAL introduction
'"">
Â
JavaScript and jQuery Fundamentals
JavaScript and jQuery Fundamentals
BG Java EE Course
Â
Grddl In A Nutshell V1
Grddl In A Nutshell V1
Fabien Gandon
Â
WWW and HTTP
WWW and HTTP
BG Java EE Course
Â
Joomla security nuggets
Joomla security nuggets
guestbd1cdca
Â
Php and MySQL
Php and MySQL
Tiji Thomas
Â
Xhtml 2010
Xhtml 2010
guest0f1e7f
Â
Go OO! - Real-life Design Patterns in PHP 5
Go OO! - Real-life Design Patterns in PHP 5
Stephan Schmidt
Â
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST Presentation
Alex Henderson
Â
PHP MySQL Workshop - facehook
PHP MySQL Workshop - facehook
Brainware Consultancy Pvt Ltd
Â
Java script
Java script
Fajar Baskoro
Â
JSP custom tags
JSP custom tags
Nabeel Aron
Â
<img src="../i/r_14.png" />
<img src="../i/r_14.png" />
tutorialsruby
Â
Php
Php
mohamed ashraf
Â
Dynamic Web Pages Ch 1 V1.0
Dynamic Web Pages Ch 1 V1.0
Cathie101
Â
JavaScript APIs In Focus
JavaScript APIs In Focus
Sergey Ilinsky
Â
Phpvsjsp
Phpvsjsp
guest5b4d24
Â
SPARQLing Services
SPARQLing Services
Leigh Dodds
Â
Blogs and RSS
Blogs and RSS
Jason Rhode
Â
Weitere Àhnliche Inhalte
Was ist angesagt?
Processing XML with Java
Processing XML with Java
BG Java EE Course
Â
Open Source Package Php Mysql 1228203701094763 9
Open Source Package Php Mysql 1228203701094763 9
isadorta
Â
PHP MySQL
PHP MySQL
Md. Sirajus Salayhin
Â
PHPTAL introduction
PHPTAL introduction
'"">
Â
JavaScript and jQuery Fundamentals
JavaScript and jQuery Fundamentals
BG Java EE Course
Â
Grddl In A Nutshell V1
Grddl In A Nutshell V1
Fabien Gandon
Â
WWW and HTTP
WWW and HTTP
BG Java EE Course
Â
Joomla security nuggets
Joomla security nuggets
guestbd1cdca
Â
Php and MySQL
Php and MySQL
Tiji Thomas
Â
Xhtml 2010
Xhtml 2010
guest0f1e7f
Â
Go OO! - Real-life Design Patterns in PHP 5
Go OO! - Real-life Design Patterns in PHP 5
Stephan Schmidt
Â
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST Presentation
Alex Henderson
Â
PHP MySQL Workshop - facehook
PHP MySQL Workshop - facehook
Brainware Consultancy Pvt Ltd
Â
Java script
Java script
Fajar Baskoro
Â
JSP custom tags
JSP custom tags
Nabeel Aron
Â
<img src="../i/r_14.png" />
<img src="../i/r_14.png" />
tutorialsruby
Â
Php
Php
mohamed ashraf
Â
Dynamic Web Pages Ch 1 V1.0
Dynamic Web Pages Ch 1 V1.0
Cathie101
Â
JavaScript APIs In Focus
JavaScript APIs In Focus
Sergey Ilinsky
Â
Phpvsjsp
Phpvsjsp
guest5b4d24
Â
Was ist angesagt?
(20)
Processing XML with Java
Processing XML with Java
Â
Open Source Package Php Mysql 1228203701094763 9
Open Source Package Php Mysql 1228203701094763 9
Â
PHP MySQL
PHP MySQL
Â
PHPTAL introduction
PHPTAL introduction
Â
JavaScript and jQuery Fundamentals
JavaScript and jQuery Fundamentals
Â
Grddl In A Nutshell V1
Grddl In A Nutshell V1
Â
WWW and HTTP
WWW and HTTP
Â
Joomla security nuggets
Joomla security nuggets
Â
Php and MySQL
Php and MySQL
Â
Xhtml 2010
Xhtml 2010
Â
Go OO! - Real-life Design Patterns in PHP 5
Go OO! - Real-life Design Patterns in PHP 5
Â
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST Presentation
Â
PHP MySQL Workshop - facehook
PHP MySQL Workshop - facehook
Â
Java script
Java script
Â
JSP custom tags
JSP custom tags
Â
<img src="../i/r_14.png" />
<img src="../i/r_14.png" />
Â
Php
Php
Â
Dynamic Web Pages Ch 1 V1.0
Dynamic Web Pages Ch 1 V1.0
Â
JavaScript APIs In Focus
JavaScript APIs In Focus
Â
Phpvsjsp
Phpvsjsp
Â
Ăhnlich wie Architecting Web Services
SPARQLing Services
SPARQLing Services
Leigh Dodds
Â
Blogs and RSS
Blogs and RSS
Jason Rhode
Â
Introduction to XML
Introduction to XML
BG Java EE Course
Â
Spring Surf 101
Spring Surf 101
Alfresco Software
Â
Putting SOAP to REST
Putting SOAP to REST
Igor Moochnick
Â
REST dojo Comet
REST dojo Comet
Carol McDonald
Â
Lecture 3 - Comm Lab: Web @ ITP
Lecture 3 - Comm Lab: Web @ ITP
yucefmerhi
Â
Creating Yahoo Mobile Widgets
Creating Yahoo Mobile Widgets
Ricardo Varela
Â
Introduction To Lamp
Introduction To Lamp
Amzad Hossain
Â
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Pamela Fox
Â
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
guest517f2f
Â
DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8
Konstantinos Pantos
Â
Migration testing framework
Migration testing framework
IndicThreads
Â
Struts2
Struts2
yuvalb
Â
RSS
RSS
Jason Rhode
Â
Introduction To Xml
Introduction To Xml
bdebruin
Â
Jsp
Jsp
DSKUMAR G
Â
Alfresco Search Internals
Alfresco Search Internals
Alfresco Software
Â
The Basics Of Page Creation
The Basics Of Page Creation
Wildan Maulana
Â
Apache Camel - WJax 2008
Apache Camel - WJax 2008
inovex GmbH
Â
Ăhnlich wie Architecting Web Services
(20)
SPARQLing Services
SPARQLing Services
Â
Blogs and RSS
Blogs and RSS
Â
Introduction to XML
Introduction to XML
Â
Spring Surf 101
Spring Surf 101
Â
Putting SOAP to REST
Putting SOAP to REST
Â
REST dojo Comet
REST dojo Comet
Â
Lecture 3 - Comm Lab: Web @ ITP
Lecture 3 - Comm Lab: Web @ ITP
Â
Creating Yahoo Mobile Widgets
Creating Yahoo Mobile Widgets
Â
Introduction To Lamp
Introduction To Lamp
Â
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Â
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Â
DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8
Â
Migration testing framework
Migration testing framework
Â
Struts2
Struts2
Â
RSS
RSS
Â
Introduction To Xml
Introduction To Xml
Â
Jsp
Jsp
Â
Alfresco Search Internals
Alfresco Search Internals
Â
The Basics Of Page Creation
The Basics Of Page Creation
Â
Apache Camel - WJax 2008
Apache Camel - WJax 2008
Â
Mehr von Lorna Mitchell
OAuth: Trust Issues
OAuth: Trust Issues
Lorna Mitchell
Â
Web Services PHP Tutorial
Web Services PHP Tutorial
Lorna Mitchell
Â
Best Practice in API Design
Best Practice in API Design
Lorna Mitchell
Â
Git, GitHub and Open Source
Git, GitHub and Open Source
Lorna Mitchell
Â
Business 101 for Developers: Time and Money
Business 101 for Developers: Time and Money
Lorna Mitchell
Â
Things I wish web graduates knew
Things I wish web graduates knew
Lorna Mitchell
Â
Teach a Man To Fish (phpconpl edition)
Teach a Man To Fish (phpconpl edition)
Lorna Mitchell
Â
Web services tutorial
Web services tutorial
Lorna Mitchell
Â
Join In With Joind.In
Join In With Joind.In
Lorna Mitchell
Â
Tool Up Your LAMP Stack
Tool Up Your LAMP Stack
Lorna Mitchell
Â
Going Freelance
Going Freelance
Lorna Mitchell
Â
Understanding Distributed Source Control
Understanding Distributed Source Control
Lorna Mitchell
Â
Best Practice in Web Service Design
Best Practice in Web Service Design
Lorna Mitchell
Â
Coaching Development Teams: Teach A Man To Fish
Coaching Development Teams: Teach A Man To Fish
Lorna Mitchell
Â
Zend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
Lorna Mitchell
Â
Implementing OAuth with PHP
Implementing OAuth with PHP
Lorna Mitchell
Â
Web Services Tutorial
Web Services Tutorial
Lorna Mitchell
Â
Object Oriented Programming in PHP
Object Oriented Programming in PHP
Lorna Mitchell
Â
Example Presentation
Example Presentation
Lorna Mitchell
Â
Could You Telecommute?
Could You Telecommute?
Lorna Mitchell
Â
Mehr von Lorna Mitchell
(20)
OAuth: Trust Issues
OAuth: Trust Issues
Â
Web Services PHP Tutorial
Web Services PHP Tutorial
Â
Best Practice in API Design
Best Practice in API Design
Â
Git, GitHub and Open Source
Git, GitHub and Open Source
Â
Business 101 for Developers: Time and Money
Business 101 for Developers: Time and Money
Â
Things I wish web graduates knew
Things I wish web graduates knew
Â
Teach a Man To Fish (phpconpl edition)
Teach a Man To Fish (phpconpl edition)
Â
Web services tutorial
Web services tutorial
Â
Join In With Joind.In
Join In With Joind.In
Â
Tool Up Your LAMP Stack
Tool Up Your LAMP Stack
Â
Going Freelance
Going Freelance
Â
Understanding Distributed Source Control
Understanding Distributed Source Control
Â
Best Practice in Web Service Design
Best Practice in Web Service Design
Â
Coaching Development Teams: Teach A Man To Fish
Coaching Development Teams: Teach A Man To Fish
Â
Zend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
Â
Implementing OAuth with PHP
Implementing OAuth with PHP
Â
Web Services Tutorial
Web Services Tutorial
Â
Object Oriented Programming in PHP
Object Oriented Programming in PHP
Â
Example Presentation
Example Presentation
Â
Could You Telecommute?
Could You Telecommute?
Â
KĂŒrzlich hochgeladen
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Â
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Â
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Â
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
Â
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Â
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Â
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Â
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
Â
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Â
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Â
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Â
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
Â
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Â
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(âïž+971_581248768%)**%*]'#abortion pills for sale in dubai@
Â
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Roshan Dwivedi
Â
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
MIND CTI
Â
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Â
Scaling API-first â The story of a global engineering organization
Scaling API-first â The story of a global engineering organization
Radu Cotescu
Â
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
Â
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
SynarionITSolutions
Â
KĂŒrzlich hochgeladen
(20)
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Â
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Â
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Â
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Â
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Â
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Â
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Â
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Â
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Â
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Â
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Â
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Â
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Â
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Â
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Â
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
Â
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Â
Scaling API-first â The story of a global engineering organization
Scaling API-first â The story of a global engineering organization
Â
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Â
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
Â
Architecting Web Services
1.
Architecting Web Services
Lorna Mitchell, Ibuildings
2.
3.
PHP community evangelist
4.
Blog at
http://lornajane.net
5.
6.
For local or
remote consumption
7.
For consumption by
discrete/modular systems
8.
Why Web Services
9.
Why Web Services
10.
Why Web Services
11.
Why Web Services
12.
13.
SOAP
14.
REST (REpresentational State
Transfer)
15.
16.
Parameters give method
names
17.
Request body can
take a variety of formats
18.
19.
Can abstract between
existing systems
20.
Familiar functional paradigm
21.
RPC Example Flickr's
XML-RPC Request <methodCall> <methodName> flickr.test.echo </methodName> <params> <param><value><struct> <member> <name> name </name> <value><string> value </string></value> </member> <member> <name> name2 </name> <value><string> value2 </string></value> </member> </struct></value></param> </params> </methodCall>
22.
RPC Example Flickr's
XML-RPC Response <?xml version="1.0" encoding="utf-8" ?> <methodResponse> <params> <param> <value> <string> [escaped-xml-payload] </string> </value> </param> </params> </methodResponse>
23.
24.
Docs of functions
and arguments
25.
If this was
an existing system, existing docs may suffice
26.
27.
Has given formats
for messages and errors
28.
Libraries exist for
creating server and client in most languages
29.
PHP SOAP Server
Example require_once('lib/myClass.php'); ini_set("soap.wsdl_cache_enabled", "0"); $server = new SoapServer("service.wsdl"); $server->setClass("MyClass"); $server->handle();
30.
PHP SOAP Client
Example ini_set('soap.wsdl_cache_enabled','0'); require_once('lib/Snapshot.php'); $wsdl = "Service.wsdl"; $client = new SoapClient($wsdl, $params); $output = $client->requestShot( 'http://www.php.net','', 300, 400);
31.
32.
Widely used with
SOAP
33.
Describes the methods,
arguments and data types available
34.
IDEs can read
this and hint
35.
Validity of requests
is checked before they are sent
36.
WSDL <?xml version
='1.0' encoding ='UTF-8' ?> <definitions name='MyClass' targetNamespace='urn:MyClassInventory' xmlns:tns='urn:MyClassInventory' xmlns:soap=' http://schemas.xmlsoap.org/wsdl/soap/ ' xmlns:xsd=' http://www.w3.org/2001/XMLSchema ' xmlns:soapenc=' http://schemas.xmlsoap.org/soap/encoding/ ' xmlns:wsdl=' http://schemas.xmlsoap.org/wsdl/ ' xmlns='http://schemas.xmlsoap.org/wsdl/'> <message name='getAccountStatusRequest'> <part name='accountID' type='xsd:string'/> </message> <message name='getAccountStatusResponse'> <part name='accountID' type='xsd:string'/> <part name='counter' type='xsd:float' /> </message> <portType name='MyClassPortType'> <operation name='getAccountStatus'> <input message='tns:getAccountStatusRequest'/> <output message='tns:getAccountStatusResponse'/> </operation> </portType> <binding name='MyClassBinding' type='tns:MyClassPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='getAccountStatus'> <soap:operation soapAction='urn:xmethods-delayed-quotes#getAccountStatus'/> <input> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation> </binding> <service name='MyClassService'> <port name='MyClassPort' binding='tns:MyClassBinding'> <soap:address location='http://rivendell.local:10002/MyClassServiceServer.php'/> </port> </service> </definitions>
37.
38.
Otherwise method names,
arguments and types will be needed
39.
40.
Generally uses HTTP
(HyperText Transfer Protocol)
41.
URLs are resource
locations
42.
Verbs tell the
service what to do
43.
Status codes indicate
what the outcome was
44.
45.
Routing to map
requests to internal functionality
46.
Output not always
HTML
47.
48.
POST http://example.com/users
49.
PUT http://example.com/users/lorna
50.
GET http://example.com/users
51.
52.
Must include information
about error handling
53.
54.
REST is full
of great ideas
55.
REST is great
for clean, simple, robust services
56.
57.
General Architecture Considerations
58.
Machine-Readable Formats 1111011110101000001101011011110001001101011111011000101010001011010100001110110111101001111110011100110010100110011000111100011000000111100000011001001101000001011100101101011011100010010111000001111010000100100010010101010101110110000000100101101110100000111001000010100010011111111010001010110000010100000101011000001000000100110000100100110010101001110101100001010110001111000101110111011110010011110101101100110111100111101000001010100100110111001111111010000000000111000000011101000000010011001101100110000101011111010100111011100100000000111010010110100011110110111000011100000010111010010011111011001001010110111011111101110000011111100010010000011010100010010011100000111111101100111111000001000100101011011100001101111011100010101010011000000100011011010000111010000000001100010011011011010010000101110111110110111101110111000111010100001001101011010101110101010100111000010110001110001111001011100011110100000110100110000000100011101011010010011100111011001111111011111000011101000111100110
59.
60.
JSON (JavaScript Object
Notation)
61.
Key/value pairs
62.
Form variables
63.
Background: XML <menu
id="file" value="File"> <popup> <menuitem value="New" onclick="CreateNewDoc()" /> <menuitem value="Open" onclick="OpenDoc()" /> <menuitem value="Close" onclick="CloseDoc()" /> </popup> </menu>
64.
Background: JSON {"menu":
{ "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }}
65.
66.
JSON easier for
JavaScript, use with AJAX-esque requests
67.
Or make both
available
68.
Use built-in libraries
for your platform
69.
70.
How about incorrect
data types? Cast or reject?
71.
Make error messages
meaningful and unique
72.
73.
Manage job queues
and retries
74.
Will users poll
for a change?
75.
Could implement callbacks
76.
77.
The preferred response
format
78.
79.
Can be convenient
80.
Consider performance
81.
82.
http://uk.php.net/sca
83.
http://benramsey.com
84.
http://lornajane.net
85.
Â
86.
WSDL <?xml version
='1.0' encoding ='UTF-8' ?> <definitions name='MyClass' targetNamespace='urn:MyClassInventory' xmlns:tns='urn:MyClassInventory' xmlns:soap=' http://schemas.xmlsoap.org/wsdl/soap/ ' xmlns:xsd=' http://www.w3.org/2001/XMLSchema ' xmlns:soapenc=' http://schemas.xmlsoap.org/soap/encoding/ ' xmlns:wsdl=' http://schemas.xmlsoap.org/wsdl/ ' xmlns='http://schemas.xmlsoap.org/wsdl/'> <message name='getAccountStatusRequest'> <part name='accountID' type='xsd:string'/> </message> <message name='getAccountStatusResponse'> <part name='accountID' type='xsd:string'/> <part name='counter' type='xsd:float' /> </message> <portType name='MyClassPortType'> <operation name='getAccountStatus'> <input message='tns:getAccountStatusRequest'/> <output message='tns:getAccountStatusResponse'/> </operation> </portType> <binding name='MyClassBinding' type='tns:MyClassPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='getAccountStatus'> <soap:operation soapAction='urn:xmethods-delayed-quotes#getAccountStatus'/> <input> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation> </binding> <service name='MyClassService'> <port name='MyClassPort' binding='tns:MyClassBinding'> <soap:address location='http://rivendell.local:10002/MyClassServiceServer.php'/> </port> </service> </definitions>
87.
WSDL: Service <service
name='MyClassService'> <port name='MyClassPort' binding='tns:MyClassBinding'> <soap:address location='http://rivendell.local:10002/MyClassServiceServer.php'/> </port> </service>
88.
WSDL <?xml version
='1.0' encoding ='UTF-8' ?> <definitions name='MyClass' targetNamespace='urn:MyClassInventory' xmlns:tns='urn:MyClassInventory' xmlns:soap=' http://schemas.xmlsoap.org/wsdl/soap/ ' xmlns:xsd=' http://www.w3.org/2001/XMLSchema ' xmlns:soapenc=' http://schemas.xmlsoap.org/soap/encoding/ ' xmlns:wsdl=' http://schemas.xmlsoap.org/wsdl/ ' xmlns='http://schemas.xmlsoap.org/wsdl/'> <message name='getAccountStatusRequest'> <part name='accountID' type='xsd:string'/> </message> <message name='getAccountStatusResponse'> <part name='accountID' type='xsd:string'/> <part name='counter' type='xsd:float' /> </message> <portType name='MyClassPortType'> <operation name='getAccountStatus'> <input message='tns:getAccountStatusRequest'/> <output message='tns:getAccountStatusResponse'/> </operation> </portType> <binding name='MyClassBinding' type='tns:MyClassPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='getAccountStatus'> <soap:operation soapAction='urn:xmethods-delayed-quotes#getAccountStatus'/> <input> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation> </binding> <service name='MyClassService'> <port name='MyClassPort' binding='tns:MyClassBinding'> <soap:address location='http://rivendell.local:10002/MyClassServiceServer.php'/> </port> </service> </definitions>
89.
WSDL: Binding <binding
name='MyClassBinding' type='tns:MyClassPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='getAccountStatus'> <soap:operation soapAction='urn:xmethods-delayed-quotes#getAccountStatus'/> <input> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation> </binding>
90.
WSDL <?xml version
='1.0' encoding ='UTF-8' ?> <definitions name='MyClass' targetNamespace='urn:MyClassInventory' xmlns:tns='urn:MyClassInventory' xmlns:soap=' http://schemas.xmlsoap.org/wsdl/soap/ ' xmlns:xsd=' http://www.w3.org/2001/XMLSchema ' xmlns:soapenc=' http://schemas.xmlsoap.org/soap/encoding/ ' xmlns:wsdl=' http://schemas.xmlsoap.org/wsdl/ ' xmlns='http://schemas.xmlsoap.org/wsdl/'> <message name='getAccountStatusRequest'> <part name='accountID' type='xsd:string'/> </message> <message name='getAccountStatusResponse'> <part name='accountID' type='xsd:string'/> <part name='counter' type='xsd:float' /> </message> <portType name='MyClassPortType'> <operation name='getAccountStatus'> <input message='tns:getAccountStatusRequest'/> <output message='tns:getAccountStatusResponse'/> </operation> </portType> <binding name='MyClassBinding' type='tns:MyClassPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='getAccountStatus'> <soap:operation soapAction='urn:xmethods-delayed-quotes#getAccountStatus'/> <input> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation> </binding> <service name='MyClassService'> <port name='MyClassPort' binding='tns:MyClassBinding'> <soap:address location='http://rivendell.local:10002/MyClassServiceServer.php'/> </port> </service> </definitions>
91.
WSDL: Port Type
<portType name='MyClassPortType'> <operation name='getAccountStatus'> <input message='tns:getAccountStatusRequest'/> <output message='tns:getAccountStatusResponse'/> </operation> </portType>
92.
WSDL <?xml version
='1.0' encoding ='UTF-8' ?> <definitions name='MyClass' targetNamespace='urn:MyClassInventory' xmlns:tns='urn:MyClassInventory' xmlns:soap=' http://schemas.xmlsoap.org/wsdl/soap/ ' xmlns:xsd=' http://www.w3.org/2001/XMLSchema ' xmlns:soapenc=' http://schemas.xmlsoap.org/soap/encoding/ ' xmlns:wsdl=' http://schemas.xmlsoap.org/wsdl/ ' xmlns='http://schemas.xmlsoap.org/wsdl/'> <message name='getAccountStatusRequest'> <part name='accountID' type='xsd:string'/> </message> <message name='getAccountStatusResponse'> <part name='accountID' type='xsd:string'/> <part name='counter' type='xsd:float' /> </message> <portType name='MyClassPortType'> <operation name='getAccountStatus'> <input message='tns:getAccountStatusRequest'/> <output message='tns:getAccountStatusResponse'/> </operation> </portType> <binding name='MyClassBinding' type='tns:MyClassPortType'> <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='getAccountStatus'> <soap:operation soapAction='urn:xmethods-delayed-quotes#getAccountStatus'/> <input> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </input> <output> <soap:body use='encoded' namespace='urn:xmethods-delayed-quotes' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> </output> </operation> </binding> <service name='MyClassService'> <port name='MyClassPort' binding='tns:MyClassBinding'> <soap:address location='http://rivendell.local:10002/MyClassServiceServer.php'/> </port> </service> </definitions>
93.
WSDL: Message <message
name='getAccountStatusRequest'> <part name='accountID' type='xsd:string'/> </message> <message name='getAccountStatusResponse'> <part name='accountID' type='xsd:string'/> <part name='counter' type='xsd:float' /> </message>
Jetzt herunterladen