Highly informative PPT on web services covering motivation, history, web service model, web service components, and various examples.After reading this you can solution for Interoperability, Firewall traversal and complexity.
3. MotivationMotivation
The ability to program the Web.The ability to program the Web.
Example: Consider an Excel spreadsheet thatExample: Consider an Excel spreadsheet that
summarizes your whole financial picture :summarizes your whole financial picture :
stocks, bank accounts, loans, etc. If some ofstocks, bank accounts, loans, etc. If some of
this information is available through XMLthis information is available through XML
Web services, Excel can update it andWeb services, Excel can update it and
present the update information to the user.present the update information to the user.
4. Web Service definitionWeb Service definition
A simple definition:A simple definition:
““a Web Service is an application componenta Web Service is an application component
accessible over open protocolsaccessible over open protocols””..
5. HistoryHistory
Web services evolved from previousWeb services evolved from previous
technologies that served the same purposetechnologies that served the same purpose
such as RPC, ORPC (DCOM, CORBA andsuch as RPC, ORPC (DCOM, CORBA and
JAVA RMI).JAVA RMI).
Web Services were intended to solve threeWeb Services were intended to solve three
main problems:main problems:
1.1. InteroperabilityInteroperability
2.2. Firewall traversalFirewall traversal
3.3. ComplexityComplexity
6. InteroperabilityInteroperability
Earlier distributed systems suffered fromEarlier distributed systems suffered from
interoperability issues because each vendorinteroperability issues because each vendor
implemented its own on-wire format forimplemented its own on-wire format for
distributed object messaging.distributed object messaging.
Development of DCOM apps strictly bound toDevelopment of DCOM apps strictly bound to
Windows Operating system.Windows Operating system.
Development of RMI bound to JavaDevelopment of RMI bound to Java
programming language.programming language.
7. Firewall traversalFirewall traversal
Collaboration across corporations was an issueCollaboration across corporations was an issue
because distributed systems such as CORBAbecause distributed systems such as CORBA
and DCOM used non-standard ports.and DCOM used non-standard ports.
Web Services use HTTP as a transportWeb Services use HTTP as a transport
protocol and most of the firewalls allow accessprotocol and most of the firewalls allow access
though port 80 (HTTP), leading to easier andthough port 80 (HTTP), leading to easier and
dynamic collaboration.dynamic collaboration.
8. ComplexityComplexity
Web Services is a developer-friendly serviceWeb Services is a developer-friendly service
system.system.
Most of the above-mentioned technologiesMost of the above-mentioned technologies
such as RMI, COM, and CORBA involve asuch as RMI, COM, and CORBA involve a
whole learning curve.whole learning curve.
New technologies and languages have to beNew technologies and languages have to be
learnt to implement these services.learnt to implement these services.
9. Web Service definition revisitedWeb Service definition revisited
A more precise definition:A more precise definition:
an application component that:an application component that:
Communicates via open protocols (HTTP, SMTP, etc.)Communicates via open protocols (HTTP, SMTP, etc.)
Processes XML messages framed using SOAPProcesses XML messages framed using SOAP
Describes its messages using XML SchemaDescribes its messages using XML Schema
Provides an endpoint description using WSDLProvides an endpoint description using WSDL
Can be discovered using UDDICan be discovered using UDDI
10. Web Services ComponentsWeb Services Components
XMLXML –– eXtensible Markup LanguageeXtensible Markup Language –– A uniformA uniform
data representation and exchange mechanism.data representation and exchange mechanism.
SOAPSOAP –– Simple Object Access ProtocolSimple Object Access Protocol –– A standardA standard
way for communication.way for communication.
UDDIUDDI –– Universal Description, Discovery andUniversal Description, Discovery and
Integration specificationIntegration specification –– A mechanism to registerA mechanism to register
and locate WS based application.and locate WS based application.
WSDLWSDL –– Web Services Description LanguageWeb Services Description Language –– AA
standard meta language to described the servicesstandard meta language to described the services
offered.offered.
11. ExampleExample –– A simple Web ServiceA simple Web Service
A buyer (which might be a simple client) is ordering goodsA buyer (which might be a simple client) is ordering goods
from a seller service.from a seller service.
The buyer finds the seller service by searching the UDDIThe buyer finds the seller service by searching the UDDI
directory.directory.
The seller service is a Web Service whose interface is definedThe seller service is a Web Service whose interface is defined
using Web Services Description Language (WSDL).using Web Services Description Language (WSDL).
The buyer is invoking the order method on the seller serviceThe buyer is invoking the order method on the seller service
using Simple Object Access Protocol (SOAP) and the WSDLusing Simple Object Access Protocol (SOAP) and the WSDL
definition for the seller service.definition for the seller service.
The buyer knows what to expect in the SOAP reply messageThe buyer knows what to expect in the SOAP reply message
because this is defined in the WSDL definition for the sellerbecause this is defined in the WSDL definition for the seller
service.service.
12. The Web Service ModelThe Web Service Model
The Web Services architecture is based uponThe Web Services architecture is based upon
the interactions between three roles:the interactions between three roles:
Service providerService provider
Service registryService registry
Service requestorService requestor
The interactions involve the:The interactions involve the:
Publish operationsPublish operations
Find operationFind operation
Bind operations.Bind operations.
13. The Web Service Model (cont)The Web Service Model (cont)
The Web Services model follows theThe Web Services model follows the publishpublish,,
findfind, and, and bindbind paradigm.paradigm.
1. publish1. publish 2. find2. find
3. bind/invoke3. bind/invoke
Web Service
Registry
Web Service
Provider
Web Service
Client
14. XMLXML
XML stands for EXML stands for EXXtensibletensible MMarkuparkup
LLanguage.anguage.
XML is aXML is a markup languagemarkup language much likemuch like
HTML.HTML.
XML was designed toXML was designed to describe datadescribe data..
XML tags are not predefined. You mustXML tags are not predefined. You must definedefine
your own tags.your own tags.
The prefect choice for enabling cross-platformThe prefect choice for enabling cross-platform
data communication in Web Services.data communication in Web Services.
15. XML vs HTMLXML vs HTML
An HTML example:An HTML example:
<html><html>
<body><body>
<h2>John Doe</h2><h2>John Doe</h2>
<p>2 Backroads Lane<br><p>2 Backroads Lane<br>
New York<br>New York<br>
045935435<br>045935435<br>
john.doe@gmail.com<br>john.doe@gmail.com<br>
</p></p>
</body></body>
</html></html>
16. XML vs HTMLXML vs HTML
This will be displayed as:This will be displayed as:
HTML specifies how the document is to be displayed,HTML specifies how the document is to be displayed,
and not what information is contained in the document.and not what information is contained in the document.
Hard for machine to extract the embedded information.Hard for machine to extract the embedded information.
Relatively easy for human.Relatively easy for human.
John DoeJohn Doe
2 Backroads Lane2 Backroads Lane
New YorkNew York
045935435045935435
John.doe@gmail.comJohn.doe@gmail.com
17. XML vs HTMLXML vs HTML
Now look at the following:Now look at the following:
In this case:In this case:
The information contained is being marked, but not forThe information contained is being marked, but not for
displaying.displaying.
Readable by both human and machines.Readable by both human and machines.
<?xml version=1.0?><?xml version=1.0?>
<contact><contact>
<name>John Doe</name><name>John Doe</name>
<address>2 Backroads Lane</address><address>2 Backroads Lane</address>
<country>New York</country><country>New York</country>
<phone>045935435</phone><phone>045935435</phone>
<email>john.doe@gmail.com</email><email>john.doe@gmail.com</email>
</contact></contact>
18. SOAPSOAP
SOAP originally stood for "Simple Object AccessSOAP originally stood for "Simple Object Access
Protocol" .Protocol" .
Web Services expose useful functionality to WebWeb Services expose useful functionality to Web
users through a standard Web protocol called SOAP.users through a standard Web protocol called SOAP.
Soap is an XML vocabulary standard to enableSoap is an XML vocabulary standard to enable
programs on separate computers to interact acrossprograms on separate computers to interact across
any network. SOAP is a simple markup language forany network. SOAP is a simple markup language for
describing messages between applications.describing messages between applications.
Soap uses mainly HTTP as a transport protocol. ThatSoap uses mainly HTTP as a transport protocol. That
is, HTTP message contains a SOAP message as itsis, HTTP message contains a SOAP message as its
payload section.payload section.
19. SOAP CharacteristicsSOAP Characteristics
SOAP has three major characteristics:SOAP has three major characteristics:
ExtensibilityExtensibility –– security and WS-routing aresecurity and WS-routing are
among the extensions under development.among the extensions under development.
Neutrality - SOAP can be used over any transportNeutrality - SOAP can be used over any transport
protocol such as HTTP, SMTP or even TCP.protocol such as HTTP, SMTP or even TCP.
Independent - SOAP allows for any programmingIndependent - SOAP allows for any programming
model .model .
20. SOAP Building BlocksSOAP Building Blocks
A SOAP message is an ordinary XML documentA SOAP message is an ordinary XML document
containing the following elements:containing the following elements:
A required Envelope element that identifies the XMLA required Envelope element that identifies the XML
document as a SOAP message.document as a SOAP message.
An optional Header element that contains headerAn optional Header element that contains header
information.information.
A required Body element that contains call and responseA required Body element that contains call and response
information.information.
An optional Fault element that provides information aboutAn optional Fault element that provides information about
errors that occurred while processing the message.errors that occurred while processing the message.
23. SOAP SecuritySOAP Security
SOAP uses HTTP as a transport protocol andSOAP uses HTTP as a transport protocol and
hence can use HTTP security mainly HTTPhence can use HTTP security mainly HTTP
over SSL.over SSL.
But, since SOAP can run over a number ofBut, since SOAP can run over a number of
application protocols (such as SMTP) securityapplication protocols (such as SMTP) security
had to be considered.had to be considered.
TheThe WS-Security specificationWS-Security specification defines adefines a
complete encryption system.complete encryption system.
24. WSDLWSDL
WSDL stands for Web Services Description Language.WSDL stands for Web Services Description Language.
WSDL is an XML vocabulary for describing Web services. ItWSDL is an XML vocabulary for describing Web services. It
allows developers to describe Web Services and theirallows developers to describe Web Services and their
capabilities, in a standard manner.capabilities, in a standard manner.
WSDL specifies what a request message must contain andWSDL specifies what a request message must contain and
what the response message will look like in unambiguouswhat the response message will look like in unambiguous
notation. In other words, it is a contract between the XMLnotation. In other words, it is a contract between the XML
Web service and the client who wishes to use this service.Web service and the client who wishes to use this service.
In addition to describing message contents, WSDL definesIn addition to describing message contents, WSDL defines
where the service is available and what communicationswhere the service is available and what communications
protocol is used to talk to the service.protocol is used to talk to the service.
25. The WSDL Document StructureThe WSDL Document Structure
A WSDL document is just a simple XMLA WSDL document is just a simple XML
document.document.
It defines a web service using these majorIt defines a web service using these major
elements:elements:
port typeport type - The operations performed by the web- The operations performed by the web
service.service.
message -message - The messages used by the web service.The messages used by the web service.
types -types - The data types used by the web service.The data types used by the web service.
bindingbinding -- The communication protocols used byThe communication protocols used by
the web service.the web service.
27. UDDIUDDI
UDDI stands for Universal Description,UDDI stands for Universal Description,
Discovery and Integration.Discovery and Integration.
UDDI is a directory for storing informationUDDI is a directory for storing information
about web services , like yellow pages.about web services , like yellow pages.
UDDI is a directory of web service interfacesUDDI is a directory of web service interfaces
described by WSDL.described by WSDL.
29. ExamplesExamples
Using a Web ServiceUsing a Web Service
Creating a new Web ServiceCreating a new Web Service
30. Step by StepStep by Step –– using a web serviceusing a web service
1.1. Inside Visual Studio .NET Choose File >Inside Visual Studio .NET Choose File >
New > Project.New > Project.
2.2. Choose Visual C# Projects (or Visual BasicChoose Visual C# Projects (or Visual Basic
Projects if you prefer this language).Projects if you prefer this language).
3. Choose3. Choose
ASP.NETASP.NET
WebWeb
ApplicationApplication
as youras your
templatetemplate
31. Step by StepStep by Step –– using a web serviceusing a web service
Inside the Location text box enter the nameInside the Location text box enter the name
of your project after the prefix :of your project after the prefix :
http://localhost/YourProjectNamehttp://localhost/YourProjectName
Press OK.Press OK.
This makes The Internet InformationThis makes The Internet Information
Services installed on your computer create aServices installed on your computer create a
new directory on the default path:new directory on the default path:
C:InetpubwwwrootFirstExampleC:InetpubwwwrootFirstExample
32. Step by StepStep by Step –– using a web serviceusing a web service
You can open IIS by typing compmgmt.msc sYou can open IIS by typing compmgmt.msc s
in the run command and then choosingin the run command and then choosing
Services And Application > InternetServices And Application > Internet
Information Services.Information Services.
Inside this node you can choose Web SitesInside this node you can choose Web Sites
node and then Default Web Site to see all thenode and then Default Web Site to see all the
web sites on your computer.web sites on your computer.
33. Step by StepStep by Step –– using a web serviceusing a web service
34. Step by StepStep by Step –– using a web serviceusing a web service
In the new project you opened inIn the new project you opened in
VS.NET Move to the SolutionVS.NET Move to the Solution
Explorer.Explorer.
Right Click on the ReferencesRight Click on the References
folder and Choose Add Webfolder and Choose Add Web
References.References.
This Opens the Add WebThis Opens the Add Web
Reference Dialog Box.Reference Dialog Box.
35. Step by StepStep by Step –– using a web serviceusing a web service
Type the Web Service URL and Press Go.Type the Web Service URL and Press Go.
It takes a couple of seconds to find the WebIt takes a couple of seconds to find the Web
services and finally all itservices and finally all it’’s methods appear ins methods appear in
the list box.the list box.
The Web Reference name is shown in theThe Web Reference name is shown in the
Dialog Box.Dialog Box.
Press Add Reference to complete the process.Press Add Reference to complete the process.
36. Step by StepStep by Step –– using a web serviceusing a web service
37. Step by StepStep by Step –– using a web serviceusing a web service
Add a new Web Form.Add a new Web Form.
38. Step by StepStep by Step –– using a web serviceusing a web service
Add the following Controls to the Web FormAdd the following Controls to the Web Form
39. Step by StepStep by Step –– using a web serviceusing a web service
Double Click on the button and insert this code to itDouble Click on the button and insert this code to it’’ss
OnClick event handler.OnClick event handler.
40. Step by StepStep by Step –– using a web serviceusing a web service
1. Set the Web Form as the Start Page.
2. Build and Run the Program.
3. Try to use the Web Application.
41. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
In this Step I will create a new Web ServiceIn this Step I will create a new Web Service
and write a Simple Program that uses it.and write a Simple Program that uses it.
The program will perform various operationsThe program will perform various operations
on an array.on an array.
The client program will be a simple dialogThe client program will be a simple dialog
box that activates those opeartions.box that activates those opeartions.
42. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
Create a new Visual C# project with the nameCreate a new Visual C# project with the name
RemoteArray. The following screen appears.RemoteArray. The following screen appears.
43. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
To see the code Press on the following hyperlink.To see the code Press on the following hyperlink.
44. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
Right Click on the References folder andRight Click on the References folder and
choose add Reference.choose add Reference.
Insert the System.Windows.Forms.dll optionInsert the System.Windows.Forms.dll option
in to this folder.in to this folder.
45. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
46. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
47. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
Insert the following code to the .asmx file youInsert the following code to the .asmx file you’’veve
created.created.
48. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
49. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
50. Step By StepStep By Step –– Creating a Web ServiceCreating a Web Service
Press Ctrl +F5 to Run the Web service.Press Ctrl +F5 to Run the Web service.
51. Step By StepStep By Step –– Using Remote ArrayUsing Remote Array
Add a new project to RemoteArray SolutionAdd a new project to RemoteArray Solution
52. Step By StepStep By Step –– Using Remote ArrayUsing Remote Array
Choose Windows Application from theChoose Windows Application from the
templates.templates.
Add a web reference for the Remote ArrayAdd a web reference for the Remote Array
Web Service.Web Service.
Remember that itRemember that it’’s inside an asmx file.s inside an asmx file.
53. Step By StepStep By Step –– Using Remote ArrayUsing Remote Array
54. Step By StepStep By Step –– Using Remote ArrayUsing Remote Array
Add the following elements to the FormAdd the following elements to the Form
55. Step By StepStep By Step –– Using Remote ArrayUsing Remote Array
Create a private RemoteArray object and a private intCreate a private RemoteArray object and a private int
array object to the Form.array object to the Form.
Insert this code after the Initialize component part.Insert this code after the Initialize component part.
56. Step By StepStep By Step –– Using Remote ArrayUsing Remote Array
Insert the following code to controls handlerInsert the following code to controls handler
57. Step By StepStep By Step –– Using Remote ArrayUsing Remote Array
Set the Windows Application project as the StartupSet the Windows Application project as the Startup
58. Step By StepStep By Step –– Using Remote ArrayUsing Remote Array
Compile and run the application.Compile and run the application.
This is an example that an XML WebThis is an example that an XML Web
application can be used over Windows and notapplication can be used over Windows and not
only with ASP.NETonly with ASP.NET