SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
COLLABORATE 15 – IOUG Forum
Development
1 | P a g e “Understanding and Developing Web Services – For DBAs and Developers”
White Paper
Understanding and Developing Web Services – For DBAs and
Developers
Ahmed Aboulnaga, Raastech
Harold Dost III, Raastech
ABSTRACT
WSDL. XSD. SOAP. Namespaces. Port types. If these terms make little sense, this presentation is for you. By the end of this
presentation, you will completely understand how to dissect and decipher a web service interface, understand key design
patterns, and learn how to develop top-down and bottom-up web services in technologies such as Java and Oracle SOA Suite.
TARGET AUDIENCE
This white paper is intended for DBAs and developers who have never developed a SOAP web service before and are looking
to understand what it takes. A basic background in programming is required.
EXECUTIVE SUMMARY
Learner will be able to:
 Obtain a thorough and deep understanding of all pieces of the web service interface.
 Learn how to develop web services in Java, SOA, and OSB.
 Understand the difference between top-down and bottom-up web service development.
BACKGROUND
In the past, when you wanted to make an application call from one application to another, you would have to familiarize
yourself with the implementation language of the called application. If you are a Java application looking to make a call to a
PL/SQL procedure, then you must import all the necessary Oracle Database libraries into your Java application to successfully
invoke the stored procedure. As more and more applications entered the enterprise, this became development nightmare.
This is where web services gained popularity. In its ability to offer a standardized approach to call in and out of web services, it
no longer mattered if you were a C#, .NET, Java, or PL/SQL application. Your call to the external application is done over a
common standard supported by all, SOAP over HTTP. By standardizing on web services, and in specific, SOAP over HTTP,
there is no need to worry about the implementation technology of the target application.
TECHNICAL DISCUSSIONS AND EXAMPLES
COLLABORATE 15 – IOUG Forum
Development
2 | P a g e “Understanding and Developing Web Services – For DBAs and Developers”
White Paper
Dissecting a WSDL
PL/SQL is a programming language no different than other programming languages. In the first snippet, this is a simple
procedure that accepts a zipcode as the input and returns the temperature as the output. This is a simple procedure that has real
world value. In the world of web services, this is referred to as a request-response type of call, or synchronous call. The second
snippet demonstrates a 1-way or asynchronous invocation where in no response is returned to the caller.
Each PL/SQL procedure has a name, input, and optional output parameters. And most PL/SQL packages have a header that
defines the interface to the package. The package header merely provides the developer with the information necessary to call
the package. This is similar to a web service WSDL.
WSDL stands for “Web Services Description Language”. It is an XML document that describes a web service (i.e., it is the
interface specification for the web service). It specifies the location of the web service, the operations it supports, and the
message types.
Web services are typically accessed via an HTTP URL similar to the following:
 http://sandbox.raastech.com/jws/weather?WSDL
Opening up the WSDL in a web browser reveals the interface to the web service, which is simply the definition of this web
service, giving the developer enough information to make the call. This interface is identical to a package header.
In the web service below, there are color coded highlighted sections that we would like to focus on.
 GREEN: Here, it describes the operation of the web service; getWeather. This is no different than the PL/SQL
procedure name shown in the previous figure. In it, we can see that this operation has an input parameter and an
output parameter.
 RED: This section merely states that the input parameter zipRequest is definition of of zipcode as shown in the gray
section.
 GRAY: The elements here have the specifics of the message. For example, zipcode is of type integer.
 BLUE: Lastly, this WSDL has another URL inside of it! This is referred to as the endpoint. It merely describes the
location of where the actual binary code resides. In the majority of cases, this is on the same server as the WSDL, but
not necessary.
COLLABORATE 15 – IOUG Forum
Development
3 | P a g e “Understanding and Developing Web Services – For DBAs and Developers”
White Paper
Web Service Concepts
In the References section at the end of this white paper are a series of links to w3schools, and excellent beginner resource for
those wanting to embark on web service development. Most of us are already familiar with XML, but it’s the details, specifics,
and terminology that is lost to the majority of developers.
Introduction to: XML Structure
This white paper is not intended to duplicate what is already on the w3schools.com website, so we will merely list a few points
worth considering here:
 XML documents follow a tree structure.
 Every XML document must have 1 root element.
 The root element is the parent of all other elements.
 Comments take the form <!-- a comment -->.
 Unlike HTML, XML documents must have open and close tags, and the open and close tags are case sensitive.
 XML elements must be properly nested. For example, this is improper XML: <b><u>Hello</b></u>
 Entity reference, for example, is using &lt; to represent the < sign.
 Unlike HTML, white space is preserved in XML <Name>John Doe is 23 years old.</Name>.
Introduction to: XML Schema
<definitions name="Weather">
<types>
<schema>
<element name="zipcode" type="integer"/>
<element name="temperature" type="string"/>
</schema>
</types>
<message name="zipRequest"><part name="parameters" element="zipcode"/></message>
<message name="tempResponse"><part name="parameters" element="temperature"/></message>
<portType name="WeatherPort">
<operation name="getWeather">
<input message="zipRequest"/>
<output message="tempResponse"/>
</operation>
</portType>
<binding name="WeatherBinding" type="WeatherPort">
<operation name="getWeather">
<input name="zipRequest"/>
<output name="tempResponse"/>
</operation>
</binding>
<service name="WeatherService">
<port name="WeatherPort" binding="WeatherBinding">
<soap:address location="http://localhost/wc/weather"/>
</port>
</service>
</definitions>
COLLABORATE 15 – IOUG Forum
Development
4 | P a g e “Understanding and Developing Web Services – For DBAs and Developers”
White Paper
An XML schema defines the elements in an XML document. In the WSDL shown above, the XML Schema is within the
<schema> tags. The name, type, and constraints of each element (i.e., variable) is defined here.
 XML Schema defines elements in an XML document.
 XML Schema defines attributes in an XML document.
 XML Schema defines child elements, and optionally their number and order.
 XML Schema defines data types for both elements and attributes.
 XML Schema defines default and fixed values for elements and attributes.
 XML Schemas are well-formed XML documents and are extensible.
 They are typically saved as .xsd files and imported into a WSDL.
 The root element of every XML Schema is the <schema> element.
 The <schema> element may include attributes such as the XML namespace.
An XML schema is comprised of either one or more simple elements or complex elements.
 A simple element contains only plain text that can be defined in one of several predefined data types (or custom
types).
 The predefined data types in XML Schema include: string, decimal, integer, boolean, date, time
 Complex elements are XML elements that contains other elements or attributes.
Introduction to: SOAP
SOAP is a communication protocol and allows XML documents to be exchange over HTTP.
 SOAP stands for “Simple Object Access Protocol”.
 As a result, it is platform and technology independent, and ideal for Internet-based communication.
 A SOAP message is an XML document that contains the following: envelope, header (optional), body, fault (optional)
Below is an example of a SOAP message. This constitutes the entire message that is sent to the web service.
An envelope is the root element of a SOAP message. A header is optional and, for example, may contain information such as
authentication specifics. The header is the first child element of the envelope element. The body is always required and contains
the content of the SOAP message (i.e., the payload).
Java Web Service Development
In the References section, there are two links that walk through the development of a top-down and a bottom-up Java web
service. In face, you do not have to be a seasoned Java developer to implement a fully functioning production quality web
service in Java.
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope">
<soap:Body>
<m:Customer xmlns:m="http://raastech.com/Customer">
<m:Name>John Doe</m:Name>
</m:Customer>
</soap:Body>
COLLABORATE 15 – IOUG Forum
Development
5 | P a g e “Understanding and Developing Web Services – For DBAs and Developers”
White Paper
A top-down web service basically begins with a WSDL. You must have a WSDL that defines the operations, messages, and
schema. Once imported into Oracle JDeveloper 11g or 12c, through a series of navigation and clicks, stubs for the underlying
Java classes are created. Simply stick in your logic there! Walkthrough instructions provided here:
 http://blog.raastech.com/2009/01/creating-top-down-java-web-service-for.html
A bottom-up web service is the reverse. In this scenario, you begin with an already pre-existing Java class. Through a series of
right-clicks and wizards, you can easily expose the Java class and methods as a web service interface with little to no
programming involved! Walkthrough instructions provided here:
 http://blog.raastech.com/2009/03/creating-bottom-up-java-web-service-for.html
SOAP vs. REST
This white paper focused on SOAP-based web services. Emerging as the new challenger is REST-JSON. SOAP has strong
message type validation and based on the XML standard. Unfortunately, message payloads are typically heavy and not as
lightweight as REST. Compare the two messages below; SOAP and REST-JSON.
The Oracle A-Team released a performance study comparing SOAP versus REST for mobile applications and the results are
heavily tilted towards REST-JSON. The study can be found here: http://www.ateam-oracle.com/performance-study-rest-vs-
soap-for-mobile-applications/
REFERENCES
Web service concepts:
 http://www.w3schools.com/xml/default.asp
 http://www.w3schools.com/schema/default.asp
COLLABORATE 15 – IOUG Forum
Development
6 | P a g e “Understanding and Developing Web Services – For DBAs and Developers”
White Paper
 http://www.w3schools.com/xpath/default.asp
 http://www.w3schools.com/xsl/default.asp
 http://www.w3schools.com/xquery/default.asp
 http://www.w3schools.com/webservices/default.asp
 http://www.w3schools.com/webservices/ws_wsdl_intro.asp
 http://www.w3schools.com/webservices/ws_soap_intro.asp
Java web service development walkthrough:
 http://blog.raastech.com/2009/01/creating-top-down-java-web-service-for.html
 http://blog.raastech.com/2009/03/creating-bottom-up-java-web-service-for.html
Performance Study – REST vs SOAP for Mobile Applications
 http://www.ateam-oracle.com/performance-study-rest-vs-soap-for-mobile-applications/

Contenu connexe

Tendances

WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIRajkattamuri
 
Soap web service
Soap web serviceSoap web service
Soap web serviceNITT, KAMK
 
WML-Tutorial
WML-TutorialWML-Tutorial
WML-TutorialOPENLANE
 
SOAP, UDDI, WSDL. XML definitions
SOAP, UDDI, WSDL. XML definitions SOAP, UDDI, WSDL. XML definitions
SOAP, UDDI, WSDL. XML definitions Wish Mrt'xa
 
WebServices Basic Introduction
WebServices Basic IntroductionWebServices Basic Introduction
WebServices Basic IntroductionShahid Shaik
 
Bt0087 wml and wap programing2
Bt0087 wml and wap programing2Bt0087 wml and wap programing2
Bt0087 wml and wap programing2Techglyphs
 
WebService-Java
WebService-JavaWebService-Java
WebService-Javahalwal
 
ITFT_Wireless markup language
ITFT_Wireless markup languageITFT_Wireless markup language
ITFT_Wireless markup languageShilpa Sharma
 
HTML to XML/XSL:
HTML to XML/XSL: HTML to XML/XSL:
HTML to XML/XSL: knape_jay
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Peter R. Egli
 
Web programming by Najeeb ullahAzad(1)
Web programming by Najeeb ullahAzad(1)Web programming by Najeeb ullahAzad(1)
Web programming by Najeeb ullahAzad(1)azadmcs
 
WML Script by Shanti katta
WML Script by Shanti kattaWML Script by Shanti katta
WML Script by Shanti kattaSenthil Kanth
 
Web programming unit IIII XML &DOM NOTES BY BHAVSINGH MALOTH
Web programming unit IIII XML &DOM NOTES BY BHAVSINGH MALOTHWeb programming unit IIII XML &DOM NOTES BY BHAVSINGH MALOTH
Web programming unit IIII XML &DOM NOTES BY BHAVSINGH MALOTHBhavsingh Maloth
 

Tendances (18)

WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
 
Soap web service
Soap web serviceSoap web service
Soap web service
 
WML-Tutorial
WML-TutorialWML-Tutorial
WML-Tutorial
 
Xml material
Xml materialXml material
Xml material
 
SOAP, UDDI, WSDL. XML definitions
SOAP, UDDI, WSDL. XML definitions SOAP, UDDI, WSDL. XML definitions
SOAP, UDDI, WSDL. XML definitions
 
Wsdl
WsdlWsdl
Wsdl
 
Web Services - WSDL
Web Services - WSDLWeb Services - WSDL
Web Services - WSDL
 
WebServices Basic Introduction
WebServices Basic IntroductionWebServices Basic Introduction
WebServices Basic Introduction
 
Bt0087 wml and wap programing2
Bt0087 wml and wap programing2Bt0087 wml and wap programing2
Bt0087 wml and wap programing2
 
WebService-Java
WebService-JavaWebService-Java
WebService-Java
 
Introduction to xml
Introduction to xmlIntroduction to xml
Introduction to xml
 
ITFT_Wireless markup language
ITFT_Wireless markup languageITFT_Wireless markup language
ITFT_Wireless markup language
 
Web service architecture
Web service architectureWeb service architecture
Web service architecture
 
HTML to XML/XSL:
HTML to XML/XSL: HTML to XML/XSL:
HTML to XML/XSL:
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)
 
Web programming by Najeeb ullahAzad(1)
Web programming by Najeeb ullahAzad(1)Web programming by Najeeb ullahAzad(1)
Web programming by Najeeb ullahAzad(1)
 
WML Script by Shanti katta
WML Script by Shanti kattaWML Script by Shanti katta
WML Script by Shanti katta
 
Web programming unit IIII XML &DOM NOTES BY BHAVSINGH MALOTH
Web programming unit IIII XML &DOM NOTES BY BHAVSINGH MALOTHWeb programming unit IIII XML &DOM NOTES BY BHAVSINGH MALOTH
Web programming unit IIII XML &DOM NOTES BY BHAVSINGH MALOTH
 

En vedette

QPatch By Sophion
QPatch By SophionQPatch By Sophion
QPatch By Sophionchrismathes
 
Using XA for Batch – Bad idea? (article)
Using XA for Batch – Bad idea? (article)Using XA for Batch – Bad idea? (article)
Using XA for Batch – Bad idea? (article)Revelation Technologies
 
Ads team12 final_project_presentation
Ads team12 final_project_presentationAds team12 final_project_presentation
Ads team12 final_project_presentationPriti Agarwal
 
maxima & minima
 maxima & minima maxima & minima
maxima & minimajeewanjungg
 
Steven Duplij - Generalized duality, Hamiltonian formalism and new brackets
Steven Duplij - Generalized duality, Hamiltonian formalism and new bracketsSteven Duplij - Generalized duality, Hamiltonian formalism and new brackets
Steven Duplij - Generalized duality, Hamiltonian formalism and new bracketsSteven Duplij (Stepan Douplii)
 
Educational company brochure BeglinWoods Architects
Educational company brochure BeglinWoods ArchitectsEducational company brochure BeglinWoods Architects
Educational company brochure BeglinWoods ArchitectsSimon Woods
 
Dynamic Programming
Dynamic ProgrammingDynamic Programming
Dynamic Programmingcontact2kazi
 
Memory segmentations
Memory  segmentations Memory  segmentations
Memory segmentations maamir farooq
 
Selection sort lab mannual
Selection sort lab mannualSelection sort lab mannual
Selection sort lab mannualmaamir farooq
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with DockerRevelation Technologies
 
Dba matlab code
Dba matlab codeDba matlab code
Dba matlab codebooterboot
 
TRAFFIC CODE MATLAB Function varargouttraffic code
TRAFFIC CODE MATLAB Function varargouttraffic codeTRAFFIC CODE MATLAB Function varargouttraffic code
TRAFFIC CODE MATLAB Function varargouttraffic codeYograj Ghodekar
 
Matlab code of chapter 4
Matlab code of chapter 4Matlab code of chapter 4
Matlab code of chapter 4Abdo Khalaf
 
Putting Learners First (Revised and Updated 10/22/15)
Putting Learners First (Revised and Updated 10/22/15)Putting Learners First (Revised and Updated 10/22/15)
Putting Learners First (Revised and Updated 10/22/15)David Blake
 
Matlab to vhdl
Matlab to vhdlMatlab to vhdl
Matlab to vhdlsumalama
 
Matlab code of chapter 4
Matlab code of chapter 4Matlab code of chapter 4
Matlab code of chapter 4Mohamed El Kiki
 
Pca matlab code_matlab_central
Pca matlab code_matlab_centralPca matlab code_matlab_central
Pca matlab code_matlab_centraldkkamat
 
Matlab code for comparing two microphone files
Matlab code for comparing two microphone filesMatlab code for comparing two microphone files
Matlab code for comparing two microphone filesMinh Anh Nguyen
 

En vedette (20)

QPatch By Sophion
QPatch By SophionQPatch By Sophion
QPatch By Sophion
 
Using XA for Batch – Bad idea? (article)
Using XA for Batch – Bad idea? (article)Using XA for Batch – Bad idea? (article)
Using XA for Batch – Bad idea? (article)
 
Ads team12 final_project_presentation
Ads team12 final_project_presentationAds team12 final_project_presentation
Ads team12 final_project_presentation
 
maxima & minima
 maxima & minima maxima & minima
maxima & minima
 
Steven Duplij - Generalized duality, Hamiltonian formalism and new brackets
Steven Duplij - Generalized duality, Hamiltonian formalism and new bracketsSteven Duplij - Generalized duality, Hamiltonian formalism and new brackets
Steven Duplij - Generalized duality, Hamiltonian formalism and new brackets
 
Educational company brochure BeglinWoods Architects
Educational company brochure BeglinWoods ArchitectsEducational company brochure BeglinWoods Architects
Educational company brochure BeglinWoods Architects
 
Poscat seminar 4
Poscat seminar 4Poscat seminar 4
Poscat seminar 4
 
Dynamic Programming
Dynamic ProgrammingDynamic Programming
Dynamic Programming
 
Memory segmentations
Memory  segmentations Memory  segmentations
Memory segmentations
 
Selection sort lab mannual
Selection sort lab mannualSelection sort lab mannual
Selection sort lab mannual
 
Job description (red lobster case)
Job  description (red lobster case)Job  description (red lobster case)
Job description (red lobster case)
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with Docker
 
Dba matlab code
Dba matlab codeDba matlab code
Dba matlab code
 
TRAFFIC CODE MATLAB Function varargouttraffic code
TRAFFIC CODE MATLAB Function varargouttraffic codeTRAFFIC CODE MATLAB Function varargouttraffic code
TRAFFIC CODE MATLAB Function varargouttraffic code
 
Matlab code of chapter 4
Matlab code of chapter 4Matlab code of chapter 4
Matlab code of chapter 4
 
Putting Learners First (Revised and Updated 10/22/15)
Putting Learners First (Revised and Updated 10/22/15)Putting Learners First (Revised and Updated 10/22/15)
Putting Learners First (Revised and Updated 10/22/15)
 
Matlab to vhdl
Matlab to vhdlMatlab to vhdl
Matlab to vhdl
 
Matlab code of chapter 4
Matlab code of chapter 4Matlab code of chapter 4
Matlab code of chapter 4
 
Pca matlab code_matlab_central
Pca matlab code_matlab_centralPca matlab code_matlab_central
Pca matlab code_matlab_central
 
Matlab code for comparing two microphone files
Matlab code for comparing two microphone filesMatlab code for comparing two microphone files
Matlab code for comparing two microphone files
 

Similaire à Understanding and Developing Web Services - For DBAs and Developers (whitepaper)

Similaire à Understanding and Developing Web Services - For DBAs and Developers (whitepaper) (20)

Wsdl1
Wsdl1Wsdl1
Wsdl1
 
Web Services
Web Services Web Services
Web Services
 
SOA and web services
SOA and web servicesSOA and web services
SOA and web services
 
Introduction to Web Services Protocols.ppt
Introduction to Web Services Protocols.pptIntroduction to Web Services Protocols.ppt
Introduction to Web Services Protocols.ppt
 
SynapseIndia dotnet web applications development
SynapseIndia  dotnet web applications developmentSynapseIndia  dotnet web applications development
SynapseIndia dotnet web applications development
 
Webservices
WebservicesWebservices
Webservices
 
Xml+messaging+with+soap
Xml+messaging+with+soapXml+messaging+with+soap
Xml+messaging+with+soap
 
ASP.NET Unit-4.pdf
ASP.NET Unit-4.pdfASP.NET Unit-4.pdf
ASP.NET Unit-4.pdf
 
Xml Data Feeds And Web Services For Affiliates
Xml Data Feeds And Web Services For AffiliatesXml Data Feeds And Web Services For Affiliates
Xml Data Feeds And Web Services For Affiliates
 
Web-Services!.pptx
Web-Services!.pptxWeb-Services!.pptx
Web-Services!.pptx
 
REST vs WS-*: Myths Facts and Lies
REST vs WS-*: Myths Facts and LiesREST vs WS-*: Myths Facts and Lies
REST vs WS-*: Myths Facts and Lies
 
Service Oriented Architecture Updated Luqman
Service Oriented Architecture Updated  LuqmanService Oriented Architecture Updated  Luqman
Service Oriented Architecture Updated Luqman
 
UNIT-1 Web services
UNIT-1 Web servicesUNIT-1 Web services
UNIT-1 Web services
 
Xml web services
Xml web servicesXml web services
Xml web services
 
Web services for developer
Web services for developerWeb services for developer
Web services for developer
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
Unit 3 WEB TECHNOLOGIES
Unit 3 WEB TECHNOLOGIES Unit 3 WEB TECHNOLOGIES
Unit 3 WEB TECHNOLOGIES
 
Web services Tutorial /Websoles Strategic Digital Solutions
Web services Tutorial /Websoles Strategic Digital SolutionsWeb services Tutorial /Websoles Strategic Digital Solutions
Web services Tutorial /Websoles Strategic Digital Solutions
 
Web services | Websoles
Web services | WebsolesWeb services | Websoles
Web services | Websoles
 

Plus de Revelation Technologies

Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
Automating Cloud Operations: Everything You Wanted to Know about cURL and RESTAutomating Cloud Operations: Everything You Wanted to Know about cURL and REST
Automating Cloud Operations: Everything You Wanted to Know about cURL and RESTRevelation Technologies
 
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudGetting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudRevelation Technologies
 
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...Revelation Technologies
 
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices FrameworkIntroducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices FrameworkRevelation Technologies
 
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Revelation Technologies
 
PTK Issue 72: Delivering a Platform on Demand
PTK Issue 72: Delivering a Platform on DemandPTK Issue 72: Delivering a Platform on Demand
PTK Issue 72: Delivering a Platform on DemandRevelation Technologies
 
PTK Issue 71: The Compute Cloud Performance Showdown
PTK Issue 71: The Compute Cloud Performance ShowdownPTK Issue 71: The Compute Cloud Performance Showdown
PTK Issue 71: The Compute Cloud Performance ShowdownRevelation Technologies
 
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Revelation Technologies
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Revelation Technologies
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Revelation Technologies
 
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to KnowThe Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to KnowRevelation Technologies
 
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
Compute Cloud  Performance Showdown: Amazon Web Services, Oracle  Cloud, IBM ...Compute Cloud  Performance Showdown: Amazon Web Services, Oracle  Cloud, IBM ...
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...Revelation Technologies
 
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the CloudSecuring your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the CloudRevelation Technologies
 
Oracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting StartedOracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting StartedRevelation Technologies
 
Developing Web Services from Scratch - For DBAs and Database Developers
Developing Web Services from Scratch - For DBAs and Database DevelopersDeveloping Web Services from Scratch - For DBAs and Database Developers
Developing Web Services from Scratch - For DBAs and Database DevelopersRevelation Technologies
 

Plus de Revelation Technologies (20)

Operating System Security in the Cloud
Operating System Security in the CloudOperating System Security in the Cloud
Operating System Security in the Cloud
 
Getting Started with Terraform
Getting Started with TerraformGetting Started with Terraform
Getting Started with Terraform
 
Getting Started with API Management
Getting Started with API ManagementGetting Started with API Management
Getting Started with API Management
 
Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
Automating Cloud Operations: Everything You Wanted to Know about cURL and RESTAutomating Cloud Operations: Everything You Wanted to Know about cURL and REST
Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
 
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudGetting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
 
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
 
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices FrameworkIntroducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
 
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
 
PTK Issue 72: Delivering a Platform on Demand
PTK Issue 72: Delivering a Platform on DemandPTK Issue 72: Delivering a Platform on Demand
PTK Issue 72: Delivering a Platform on Demand
 
PTK Issue 71: The Compute Cloud Performance Showdown
PTK Issue 71: The Compute Cloud Performance ShowdownPTK Issue 71: The Compute Cloud Performance Showdown
PTK Issue 71: The Compute Cloud Performance Showdown
 
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
 
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to KnowThe Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
 
Cloud Integration Strategy
Cloud Integration StrategyCloud Integration Strategy
Cloud Integration Strategy
 
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
Compute Cloud  Performance Showdown: Amazon Web Services, Oracle  Cloud, IBM ...Compute Cloud  Performance Showdown: Amazon Web Services, Oracle  Cloud, IBM ...
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
 
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the CloudSecuring your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
 
Hands-On with Oracle SOA Cloud Service
Hands-On with Oracle SOA Cloud ServiceHands-On with Oracle SOA Cloud Service
Hands-On with Oracle SOA Cloud Service
 
Oracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting StartedOracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting Started
 
Developing Web Services from Scratch - For DBAs and Database Developers
Developing Web Services from Scratch - For DBAs and Database DevelopersDeveloping Web Services from Scratch - For DBAs and Database Developers
Developing Web Services from Scratch - For DBAs and Database Developers
 

Dernier

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Dernier (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Understanding and Developing Web Services - For DBAs and Developers (whitepaper)

  • 1. COLLABORATE 15 – IOUG Forum Development 1 | P a g e “Understanding and Developing Web Services – For DBAs and Developers” White Paper Understanding and Developing Web Services – For DBAs and Developers Ahmed Aboulnaga, Raastech Harold Dost III, Raastech ABSTRACT WSDL. XSD. SOAP. Namespaces. Port types. If these terms make little sense, this presentation is for you. By the end of this presentation, you will completely understand how to dissect and decipher a web service interface, understand key design patterns, and learn how to develop top-down and bottom-up web services in technologies such as Java and Oracle SOA Suite. TARGET AUDIENCE This white paper is intended for DBAs and developers who have never developed a SOAP web service before and are looking to understand what it takes. A basic background in programming is required. EXECUTIVE SUMMARY Learner will be able to:  Obtain a thorough and deep understanding of all pieces of the web service interface.  Learn how to develop web services in Java, SOA, and OSB.  Understand the difference between top-down and bottom-up web service development. BACKGROUND In the past, when you wanted to make an application call from one application to another, you would have to familiarize yourself with the implementation language of the called application. If you are a Java application looking to make a call to a PL/SQL procedure, then you must import all the necessary Oracle Database libraries into your Java application to successfully invoke the stored procedure. As more and more applications entered the enterprise, this became development nightmare. This is where web services gained popularity. In its ability to offer a standardized approach to call in and out of web services, it no longer mattered if you were a C#, .NET, Java, or PL/SQL application. Your call to the external application is done over a common standard supported by all, SOAP over HTTP. By standardizing on web services, and in specific, SOAP over HTTP, there is no need to worry about the implementation technology of the target application. TECHNICAL DISCUSSIONS AND EXAMPLES
  • 2. COLLABORATE 15 – IOUG Forum Development 2 | P a g e “Understanding and Developing Web Services – For DBAs and Developers” White Paper Dissecting a WSDL PL/SQL is a programming language no different than other programming languages. In the first snippet, this is a simple procedure that accepts a zipcode as the input and returns the temperature as the output. This is a simple procedure that has real world value. In the world of web services, this is referred to as a request-response type of call, or synchronous call. The second snippet demonstrates a 1-way or asynchronous invocation where in no response is returned to the caller. Each PL/SQL procedure has a name, input, and optional output parameters. And most PL/SQL packages have a header that defines the interface to the package. The package header merely provides the developer with the information necessary to call the package. This is similar to a web service WSDL. WSDL stands for “Web Services Description Language”. It is an XML document that describes a web service (i.e., it is the interface specification for the web service). It specifies the location of the web service, the operations it supports, and the message types. Web services are typically accessed via an HTTP URL similar to the following:  http://sandbox.raastech.com/jws/weather?WSDL Opening up the WSDL in a web browser reveals the interface to the web service, which is simply the definition of this web service, giving the developer enough information to make the call. This interface is identical to a package header. In the web service below, there are color coded highlighted sections that we would like to focus on.  GREEN: Here, it describes the operation of the web service; getWeather. This is no different than the PL/SQL procedure name shown in the previous figure. In it, we can see that this operation has an input parameter and an output parameter.  RED: This section merely states that the input parameter zipRequest is definition of of zipcode as shown in the gray section.  GRAY: The elements here have the specifics of the message. For example, zipcode is of type integer.  BLUE: Lastly, this WSDL has another URL inside of it! This is referred to as the endpoint. It merely describes the location of where the actual binary code resides. In the majority of cases, this is on the same server as the WSDL, but not necessary.
  • 3. COLLABORATE 15 – IOUG Forum Development 3 | P a g e “Understanding and Developing Web Services – For DBAs and Developers” White Paper Web Service Concepts In the References section at the end of this white paper are a series of links to w3schools, and excellent beginner resource for those wanting to embark on web service development. Most of us are already familiar with XML, but it’s the details, specifics, and terminology that is lost to the majority of developers. Introduction to: XML Structure This white paper is not intended to duplicate what is already on the w3schools.com website, so we will merely list a few points worth considering here:  XML documents follow a tree structure.  Every XML document must have 1 root element.  The root element is the parent of all other elements.  Comments take the form <!-- a comment -->.  Unlike HTML, XML documents must have open and close tags, and the open and close tags are case sensitive.  XML elements must be properly nested. For example, this is improper XML: <b><u>Hello</b></u>  Entity reference, for example, is using &lt; to represent the < sign.  Unlike HTML, white space is preserved in XML <Name>John Doe is 23 years old.</Name>. Introduction to: XML Schema <definitions name="Weather"> <types> <schema> <element name="zipcode" type="integer"/> <element name="temperature" type="string"/> </schema> </types> <message name="zipRequest"><part name="parameters" element="zipcode"/></message> <message name="tempResponse"><part name="parameters" element="temperature"/></message> <portType name="WeatherPort"> <operation name="getWeather"> <input message="zipRequest"/> <output message="tempResponse"/> </operation> </portType> <binding name="WeatherBinding" type="WeatherPort"> <operation name="getWeather"> <input name="zipRequest"/> <output name="tempResponse"/> </operation> </binding> <service name="WeatherService"> <port name="WeatherPort" binding="WeatherBinding"> <soap:address location="http://localhost/wc/weather"/> </port> </service> </definitions>
  • 4. COLLABORATE 15 – IOUG Forum Development 4 | P a g e “Understanding and Developing Web Services – For DBAs and Developers” White Paper An XML schema defines the elements in an XML document. In the WSDL shown above, the XML Schema is within the <schema> tags. The name, type, and constraints of each element (i.e., variable) is defined here.  XML Schema defines elements in an XML document.  XML Schema defines attributes in an XML document.  XML Schema defines child elements, and optionally their number and order.  XML Schema defines data types for both elements and attributes.  XML Schema defines default and fixed values for elements and attributes.  XML Schemas are well-formed XML documents and are extensible.  They are typically saved as .xsd files and imported into a WSDL.  The root element of every XML Schema is the <schema> element.  The <schema> element may include attributes such as the XML namespace. An XML schema is comprised of either one or more simple elements or complex elements.  A simple element contains only plain text that can be defined in one of several predefined data types (or custom types).  The predefined data types in XML Schema include: string, decimal, integer, boolean, date, time  Complex elements are XML elements that contains other elements or attributes. Introduction to: SOAP SOAP is a communication protocol and allows XML documents to be exchange over HTTP.  SOAP stands for “Simple Object Access Protocol”.  As a result, it is platform and technology independent, and ideal for Internet-based communication.  A SOAP message is an XML document that contains the following: envelope, header (optional), body, fault (optional) Below is an example of a SOAP message. This constitutes the entire message that is sent to the web service. An envelope is the root element of a SOAP message. A header is optional and, for example, may contain information such as authentication specifics. The header is the first child element of the envelope element. The body is always required and contains the content of the SOAP message (i.e., the payload). Java Web Service Development In the References section, there are two links that walk through the development of a top-down and a bottom-up Java web service. In face, you do not have to be a seasoned Java developer to implement a fully functioning production quality web service in Java. <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"> <soap:Body> <m:Customer xmlns:m="http://raastech.com/Customer"> <m:Name>John Doe</m:Name> </m:Customer> </soap:Body>
  • 5. COLLABORATE 15 – IOUG Forum Development 5 | P a g e “Understanding and Developing Web Services – For DBAs and Developers” White Paper A top-down web service basically begins with a WSDL. You must have a WSDL that defines the operations, messages, and schema. Once imported into Oracle JDeveloper 11g or 12c, through a series of navigation and clicks, stubs for the underlying Java classes are created. Simply stick in your logic there! Walkthrough instructions provided here:  http://blog.raastech.com/2009/01/creating-top-down-java-web-service-for.html A bottom-up web service is the reverse. In this scenario, you begin with an already pre-existing Java class. Through a series of right-clicks and wizards, you can easily expose the Java class and methods as a web service interface with little to no programming involved! Walkthrough instructions provided here:  http://blog.raastech.com/2009/03/creating-bottom-up-java-web-service-for.html SOAP vs. REST This white paper focused on SOAP-based web services. Emerging as the new challenger is REST-JSON. SOAP has strong message type validation and based on the XML standard. Unfortunately, message payloads are typically heavy and not as lightweight as REST. Compare the two messages below; SOAP and REST-JSON. The Oracle A-Team released a performance study comparing SOAP versus REST for mobile applications and the results are heavily tilted towards REST-JSON. The study can be found here: http://www.ateam-oracle.com/performance-study-rest-vs- soap-for-mobile-applications/ REFERENCES Web service concepts:  http://www.w3schools.com/xml/default.asp  http://www.w3schools.com/schema/default.asp
  • 6. COLLABORATE 15 – IOUG Forum Development 6 | P a g e “Understanding and Developing Web Services – For DBAs and Developers” White Paper  http://www.w3schools.com/xpath/default.asp  http://www.w3schools.com/xsl/default.asp  http://www.w3schools.com/xquery/default.asp  http://www.w3schools.com/webservices/default.asp  http://www.w3schools.com/webservices/ws_wsdl_intro.asp  http://www.w3schools.com/webservices/ws_soap_intro.asp Java web service development walkthrough:  http://blog.raastech.com/2009/01/creating-top-down-java-web-service-for.html  http://blog.raastech.com/2009/03/creating-bottom-up-java-web-service-for.html Performance Study – REST vs SOAP for Mobile Applications  http://www.ateam-oracle.com/performance-study-rest-vs-soap-for-mobile-applications/