SlideShare a Scribd company logo
Raastech, Inc.
2201 Cooperative Way, Suite 600
Herndon, VA 20171
+1-703-884-2223
info@raastech.com
Understanding and Developing Web Services
For DBAs and Database Developers
Wednesday, May 20,2015
8:30 - 9:30 am
Room: Superior and Erie
© Raastech, Inc. 2015 | All rights reserved. Slide 2 of 61@Raastech
Agenda
1. Introduction
2. Introducing Web Services
3. Accessing a Web Service
4. Anatomy of a WSDL
5. Getting Started: Concepts
6. Live Development Demo
 Java Web Service: Top-Down Development
 Java Web Service: Bottom-Up Development
 BPEL Web Service
7. Recap & Summary
© Raastech, Inc. 2015 | All rights reserved. Slide 3 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 4 of 61@Raastech
About Us
 Ahmed Aboulnaga @Ahmed_Aboulnaga
 18+ years Oracle experience
 Author of “Oracle SOA Suite 11g Administrator’s Handbook”
 OCE (SOA Foundation Practitioner)
 Oracle ACE
.
© Raastech, Inc. 2015 | All rights reserved. Slide 5 of 61@Raastech
About Raastech
 Small systems integrator founded in 2009
 Headquartered in the Washington DC area
 Specializes in Oracle Fusion Middleware
 Oracle Platinum Partner & Reseller
 Oracle SOA Specialized
 100% of consultants are Oracle certified
 100% of consultants present at major Oracle conferences
 100% of consultants have published books, whitepapers, or articles
 Oracle SOA Specialized – 1 in 1,500 worldwide
 Oracle Platinum Partner – 1 in 3,000 worldwide
© Raastech, Inc. 2015 | All rights reserved. Slide 6 of 61@Raastech
Why This Presentation
 Learn to develop a web service from scratch
 Lot of PL/SQL developers are intimidated by SOA development
 Presentation is specific to SOAP, but concepts are similar for REST
© Raastech, Inc. 2015 | All rights reserved. Slide 7 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 8 of 61@Raastech
Custom Drivers
 How application access was previously developed
PL/SQL
ProcedurePL/SQL
Procedure
SQL
Developer
Java
Application
.NET
Application
ODBC driver
JDBC driver
SQL*NET
(internal)
© Raastech, Inc. 2015 | All rights reserved. Slide 9 of 61@Raastech
Specific Target Implementation
 ProC anyone?
 Must be aware of the technology of
the target system implementation
and import the necessary libraries
and drivers compatible with that
technology
PL/SQL
ApplicationJava
Application
Java
Application
.NET
Application
.NET JARs
Java API
JDBC drive
© Raastech, Inc. 2015 | All rights reserved. Slide 10 of 61@Raastech
SOAP over HTTP
 Standardization on SOAP over HTTP
Web
ServiceAny
Application
Java
Application
.NET
Application
SOAP over HTTP
SOAP over HTTP
SOAP over HTTP
© Raastech, Inc. 2015 | All rights reserved. Slide 11 of 61@Raastech
Agnostic Target Implementation
 No need to worry about
implementation technology
of target applications
AWS
Java
Application
SalesForce
Intuit
SOAP over HTTP
SOAP over HTTP
SOAP over HTTP
© Raastech, Inc. 2015 | All rights reserved. Slide 12 of 61@Raastech
PL/SQL Samples
CREATE PROCEDURE getWeather (
zipcode IN VARCHAR2,
temperature OUT NUMBER)
IS
BEGIN
temperature := '35';
END;
CREATE PROCEDURE setWeather (
zipcode IN VARCHAR2,
temperature IN NUMBER)
IS
BEGIN
INSERT INTO weather
VALUES (zipcode, temperature);
END;
Request-Response
Synchronous
1-way
Asynchronous
© Raastech, Inc. 2015 | All rights reserved. Slide 13 of 61@Raastech
Synchronous vs. Asynchronous
PL/SQL
Procedure
PL/SQL
Procedure
PL/SQL
Procedure
PL/SQL
Procedure
© Raastech, Inc. 2015 | All rights reserved. Slide 14 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 15 of 61@Raastech
Web Service Clients
 Now that business functionality is exposed as web services, these
services need to be consumed somehow.
 Since web services are standards based, they can be invoked via the
majority of programming languages or through other services.
© Raastech, Inc. 2015 | All rights reserved. Slide 16 of 61@Raastech
SoapUI
© Raastech, Inc. 2015 | All rights reserved. Slide 17 of 61@Raastech
Accessing a WSDL
 The web service interface is accessible via an HTTP URL:
http://admin.packt.com:7001/Packt-GetWeather-context-root/WeatherPort?WSDL
 The web service implementation may or may not reside on the same
service:
<soap:address location="http://srv.packt.com:8888/Packt-GetWeather-context-
root/WeatherPort"/>
 Often impossible to tell what underlying language was used to create
the web service.
© Raastech, Inc. 2015 | All rights reserved. Slide 18 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 19 of 61@Raastech
Dissecting a WSDL: Interface
<definitions name="Weather">
<types>
<schema>
<element name="zip" type="string"/>
<element name="temp" type="string"/>
</schema>
</types>
<message name="zipReq"><part name="parameters" element="zip"/></message>
<message name="tempResp"><part name="parameters" element="temp"/></message>
<portType name="WeatherPort">
<operation name="getWeather">
<input message="zipReq"/>
<output message="tempResp"/>
</operation>
</portType>
<binding name="WeatherBinding" type="WeatherPort">
<operation name="getWeather">
<input name="zipReq"/>
<output name="tempResp"/>
</operation>
</binding>
<service name="WeatherService">
<port name="WeatherPort" binding="WeatherBinding">
<soap:address location="http://localhost/wc/weather"/>
</port>
</service>
</definitions>
The WSDL is the
interface to the
web service.
Implementation
details of the web
service is unknown.
© Raastech, Inc. 2015 | All rights reserved. Slide 20 of 61@Raastech
<definitions name="Weather">
<types>
<schema>
<element name="zip" type="string"/>
<element name="temp" type="string"/>
</schema>
</types>
<message name="zipReq"><part name="parameters" element="zip"/></message>
<message name="tempResp"><part name="parameters" element="temp"/></message>
<portType name="WeatherPort">
<operation name="getWeather">
<input message="zipReq"/>
<output message="tempResp"/>
</operation>
</portType>
<binding name="WeatherBinding" type="WeatherPort">
<operation name="getWeather">
<input name="zipReq"/>
<output name="tempResp"/>
</operation>
</binding>
<service name="WeatherService">
<port name="WeatherPort" binding="WeatherBinding">
<soap:address location="http://localhost/wc/weather"/>
</port>
</service>
</definitions>
Dissecting a WSDL: Endpoints
Location is referred
to as the “endpoint”.
Identifies where the
actual code resides.
© Raastech, Inc. 2015 | All rights reserved. Slide 21 of 61@Raastech
<definitions name="Weather">
<types>
<schema>
<element name="zip" type="string"/>
<element name="temp" type="string"/>
</schema>
</types>
<message name="zipReq"><part name="parameters" element="zip"/></message>
<message name="tempResp"><part name="parameters" element="temp"/></message>
<portType name="WeatherPort">
<operation name="getWeather">
<input message="zipReq"/>
<output message="tempResp"/>
</operation>
</portType>
<binding name="WeatherBinding" type="WeatherPort">
<operation name="getWeather">
<input name="zipReq"/>
<output name="tempResp"/>
</operation>
</binding>
<service name="WeatherService">
<port name="WeatherPort" binding="WeatherBinding">
<soap:address location="http://localhost/wc/weather"/>
</port>
</service>
</definitions>
Dissecting a WSDL: Operations
This web service
has a single
operation, with an
input and an output
(i.e., synchronous).
© Raastech, Inc. 2015 | All rights reserved. Slide 22 of 61@Raastech
<definitions name="Weather">
<types>
<schema>
<element name="zip" type="string"/>
<element name="temp" type="string"/>
</schema>
</types>
<message name="zipReq"><part name="parameters" element="zip"/></message>
<message name="tempResp"><part name="parameters" element="temp"/></message>
<portType name="WeatherPort">
<operation name="getWeather">
<input message="zipReq"/>
<output message="tempResp"/>
</operation>
</portType>
<binding name="WeatherBinding" type="WeatherPort">
<operation name="getWeather">
<input name="zipReq"/>
<output name="tempResp"/>
</operation>
</binding>
<service name="WeatherService">
<port name="WeatherPort" binding="WeatherBinding">
<soap:address location="http://localhost/wc/weather"/>
</port>
</service>
</definitions>
Dissecting a WSDL: Messages
The type of the
message is defined
in the “schema”.
© Raastech, Inc. 2015 | All rights reserved. Slide 23 of 61@Raastech
JavaBPEL
Today’s Live Development Demo
getWeatherSoapUI
getWeatherSoapUI
© Raastech, Inc. 2015 | All rights reserved. Slide 24 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 25 of 61@Raastech
w3schools References
 http://www.w3schools.com/xml/default.asp
 http://www.w3schools.com/schema/default.asp
 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
 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
© Raastech, Inc. 2015 | All rights reserved. Slide 26 of 61@Raastech
 XML stands for “EXtensible Markup Language”.
 XML was designed to transport and store data.
 XML is designed to be self-descriptive.
 XML was originally designed to transport and store data.
 XML does not contain any logic.
Introduction to XML
© Raastech, Inc. 2015 | All rights reserved. Slide 27 of 61@Raastech
 XML documents follow a tree structure.
 Every XML document must have 1 root element.
 The root element is the parent of all other elements.
<Customer>
<Name>John Doe</Name>
<OrderNumber>61237</OrderNumber>
<Items>
<Item quantity="2">Book</Item>
</Items>
</Customer>
XML Structure – Root Element
© Raastech, Inc. 2015 | All rights reserved. Slide 28 of 61@Raastech
 Comments
<Customer>
<!-- this is a comment -->
<Name>John Doe</Name>
<OrderNumber>61237</OrderNumber>
<Items>
<Item quantity="2">Book</Item>
</Items>
</Customer>
XML Structure – Comments
© Raastech, Inc. 2015 | All rights reserved. Slide 29 of 61@Raastech
 XML documents must have open and close tags.
 Valid HTML, but invalid XML:
<li> XML is easy
XML Structure – Tags
© Raastech, Inc. 2015 | All rights reserved. Slide 30 of 61@Raastech
 Open and close tags must have matching case
 Valid HTML, but invalid XML:
<Customer>John Doe</customer>
XML Structure – Tags
© Raastech, Inc. 2015 | All rights reserved. Slide 31 of 61@Raastech
 XML elements must be properly nested
 Valid HTML, but invalid XML:
<b><u>Hello World</b><u>
XML Structure – Tags
© Raastech, Inc. 2015 | All rights reserved. Slide 32 of 61@Raastech
 Entity reference.
&lt; < less than
&gt; > greater than
&amp; & ampersand
&apos; ' apostrophe
&quot; " quotation mark
XML Structure – Entity Reference
© Raastech, Inc. 2015 | All rights reserved. Slide 33 of 61@Raastech
 Unlike HTML, whitespace is preserved in XML.
<Customer>
<Name>John Doe
is a person. His age is 20.</Name>
</Customer>
XML Structure – Whitespace
© Raastech, Inc. 2015 | All rights reserved. Slide 34 of 61@Raastech
 Attributes
<Customer OrderNumber="61237">
<Items>
<Item quantity="2">Book</Item>
<Item quantity="1">Binder</Item>
</Items>
</Customer>
XML Structure – Attributes
© Raastech, Inc. 2015 | All rights reserved. Slide 35 of 61@Raastech
 Should you use elements or attributes when designing
XML documents?
<Customer>
<OrderNumber>61237</OrderNumber>
<Items>
<Item quantity="1">Binder</Item>
</Items>
</Customer>
<Customer OrderNumber="61237">
<Items>
<Item quantity="1">Binder</Item>
</Items>
</Customer>
XML Structure – Attributes vs. Elements
© Raastech, Inc. 2015 | All rights reserved. Slide 36 of 61@Raastech
 Namespaces are identifiers
<Customers>
<e:Customer xmlns:e="http://raastech.com/Employees">
<e:Name>John Doe</e:Name>
</e:Customer>
<p:Customer xmlns:p="http://raastech.com/Partners">
<p:Name>Jane Doe</p:Name>
</p:Customer>
<Customers>
XML Structure – Namespaces
© Raastech, Inc. 2015 | All rights reserved. Slide 37 of 61@Raastech
 Default namespace; no need to prefix all child elements.
<Customer xmlns="http://raastech.com/Employees">
<Name>John Doe</Name>
</Customer>
XML Structure – Default Namespace
© Raastech, Inc. 2015 | All rights reserved. Slide 38 of 61@Raastech
 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.
Introduction to XML Schema
© Raastech, Inc. 2015 | All rights reserved. Slide 39 of 61@Raastech
 XML Schemas are well-formed XML documents and are
extensible.
 They are typically saved as .xsd files.
 The root element of every XML Schema is the
<schema> element.
 The <schema> element may include attributes such as
the XML namespace.
Introduction to XML Schema
© Raastech, Inc. 2015 | All rights reserved. Slide 40 of 61@Raastech
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element name="OrderNumber" type="xs:string"/>
<xs:element name="Name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Example of an XML Schema
© Raastech, Inc. 2015 | All rights reserved. Slide 41 of 61@Raastech
 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
Simple Element
© Raastech, Inc. 2015 | All rights reserved. Slide 42 of 61@Raastech
 String
<someelement>Hello World</someelement>
 Decimal
<someelement>12.50</someelement>
 Integer
<someelement>12</someelement>
 Boolean
<someelement>true</someelement>
Data Types
© Raastech, Inc. 2015 | All rights reserved. Slide 43 of 61@Raastech
 Date
<someelement>2002-09-24Z</someelement>
<someelement>2008-07-24-06:00</someelement>
 Time:
<someelement>08:00:00</someelement>
 DateTime:
<someelement>2008-07-24T08:00:00</someelement>
Data Types
© Raastech, Inc. 2015 | All rights reserved. Slide 44 of 61@Raastech
 Restrictions are also referred to as facets.
 Examples include:
 minInclusive
 maxInclusive
 Enumeration
 fractionDigits
 Length
 maxInclusive
 maxExclusive
 maxLength
 minLength
 totalDigits
Restrictions
© Raastech, Inc. 2015 | All rights reserved. Slide 45 of 61@Raastech
 Complex elements are XML elements that contains other
elements or attributes.
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Item" type="xs:ItemType" minOccurs="1" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ItemType">
<xs:sequence>
<xs:element name="Item" type="xs:string"/>
<xs:element name="Price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
Complex Element
© Raastech, Inc. 2015 | All rights reserved. Slide 46 of 61@Raastech
 SOAP stands for “Simple Object Access Protocol”.
 It is a communication protocol and allows XML documents to be
exchange over HTTP.
 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
 Body
 Fault
Introduction to SOAP
© Raastech, Inc. 2015 | All rights reserved. Slide 47 of 61@Raastech
 Example:
<?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>
SOAP Message
© Raastech, Inc. 2015 | All rights reserved. Slide 48 of 61@Raastech
 Envelope
 Root element of a SOAP message.
 xmlns:soap namespace should always have the value of
http://www.w3.org/2001/12/soap-envelope.
 Header
 Optional.
 Could include information such as authentication information.
 First child element of the Envelope element.
 Body
 Required.
 Contains the content of the SOAP message (i.e., the payload).
SOAP Message
© Raastech, Inc. 2015 | All rights reserved. Slide 49 of 61@Raastech
 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.
Introduction to WSDL
© Raastech, Inc. 2015 | All rights reserved. Slide 50 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 51 of 61@Raastech
Java Web Service Development: Top-Down Approach
 A top-down web service begins with a WSDL.
 Stubs for the underlying Java classes are created.
 Live Development Demo
© Raastech, Inc. 2015 | All rights reserved. Slide 52 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 53 of 61@Raastech
Java Web Service Development: Bottom-Up Approach
 A bottom-up web service begins with an already existing Java class.
 Class and methods are easily exposed as a web service interface.
 Live Development Demo
© Raastech, Inc. 2015 | All rights reserved. Slide 54 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 55 of 61@Raastech
BPEL Web Service Development
 Live Development Demo
© Raastech, Inc. 2015 | All rights reserved. Slide 56 of 61@Raastech
© Raastech, Inc. 2015 | All rights reserved. Slide 57 of 61@Raastech
SOAP vs. REST
{
"Customer":
{
"FirstName":"John",
"LastName":"Doe"
}
}
<?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:FirstName>John</m:FirstName>
<m:LastName>Doe</m:LastName>
</m:Customer>
</soap:Body>
SOAP Message
 Strong message type validation
 Based on XML standard
 Wide usage and adoption
 Not size-friendly:
 Size of data: 7 bytes
 Size of message: 236 bytes
JSON Message
 Lightweight and efficient (mobile!)
 Growing usage and adoption
 Oracle will standardize on REST
 Size-friendly:
 Size of data: 7 bytes
 Size of message: 50 bytes
© Raastech, Inc. 2015 | All rights reserved. Slide 58 of 61@Raastech
SOAP vs. REST
 http://www.ateam-oracle.com/performance-study-rest-vs-soap-for-mobile-applications/
© Raastech, Inc. 2015 | All rights reserved. Slide 59 of 61@Raastech
Recap
 Why has web services become the accepted standard?
 Are you more familiar with XML terminology?
 What is a popular SOAP client testing tool?
 What is SOAP and what are the components of a SOAP message?
 Can you understand a WSDL when you look at it now?
 What is the difference between top-down and bottom-up web service
development?
 What is REST?
© Raastech, Inc. 2015 | All rights reserved. Slide 60 of 61@Raastech
Contact Information
 Ahmed Aboulnaga
 Technical Director
 @Ahmed_Aboulnaga
 ahmed.aboulnaga@raastech.com
© Raastech, Inc. 2015 | All rights reserved. Slide 61 of 61@Raastech
Q&A

More Related Content

What's hot

Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8
Martijn Dashorst
 
jdays 2015
jdays 2015jdays 2015
jdays 2015
Joe Kutner
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
Shekhar Gulati
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)
Hendrik Ebbers
 
Reactive Applications with Apache Pulsar and Spring Boot
Reactive Applications with Apache Pulsar and Spring BootReactive Applications with Apache Pulsar and Spring Boot
Reactive Applications with Apache Pulsar and Spring Boot
VMware Tanzu
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
Matt Raible
 
Migrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategiesMigrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategies
DanHeidinga
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
 
Spark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RSSpark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RS
Arun Gupta
 
Java 11 OMG
Java 11 OMGJava 11 OMG
Java 11 OMG
Hendrik Ebbers
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011Shreedhar Ganapathy
 
Java Desktop 2019
Java Desktop 2019Java Desktop 2019
Java Desktop 2019
Hendrik Ebbers
 
Java APIs - the missing manual
Java APIs - the missing manualJava APIs - the missing manual
Java APIs - the missing manual
Hendrik Ebbers
 
Oracle WebLogic Server: Remote Monitoring and Management
Oracle WebLogic Server: Remote Monitoring and ManagementOracle WebLogic Server: Remote Monitoring and Management
Oracle WebLogic Server: Remote Monitoring and Management
Revelation Technologies
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and Friends
Yun Zhi Lin
 
Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?
Hendrik Ebbers
 
Android Testing Support Library: The Nitty Gritty - Zan Markan - Codemotion M...
Android Testing Support Library: The Nitty Gritty - Zan Markan - Codemotion M...Android Testing Support Library: The Nitty Gritty - Zan Markan - Codemotion M...
Android Testing Support Library: The Nitty Gritty - Zan Markan - Codemotion M...
Codemotion
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
Martin Grebac
 
Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjug
Toshiaki Maki
 
Micronaut For Single Page Apps
Micronaut For Single Page AppsMicronaut For Single Page Apps
Micronaut For Single Page Apps
Zachary Klein
 

What's hot (20)

Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8Whats up with wicket 8 and java 8
Whats up with wicket 8 and java 8
 
jdays 2015
jdays 2015jdays 2015
jdays 2015
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 
Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)Java APIs- The missing manual (concurrency)
Java APIs- The missing manual (concurrency)
 
Reactive Applications with Apache Pulsar and Spring Boot
Reactive Applications with Apache Pulsar and Spring BootReactive Applications with Apache Pulsar and Spring Boot
Reactive Applications with Apache Pulsar and Spring Boot
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
 
Migrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategiesMigrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategies
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
Spark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RSSpark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RS
 
Java 11 OMG
Java 11 OMGJava 11 OMG
Java 11 OMG
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011
 
Java Desktop 2019
Java Desktop 2019Java Desktop 2019
Java Desktop 2019
 
Java APIs - the missing manual
Java APIs - the missing manualJava APIs - the missing manual
Java APIs - the missing manual
 
Oracle WebLogic Server: Remote Monitoring and Management
Oracle WebLogic Server: Remote Monitoring and ManagementOracle WebLogic Server: Remote Monitoring and Management
Oracle WebLogic Server: Remote Monitoring and Management
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and Friends
 
Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?Java WebStart Is Dead: What Should We Do Now?
Java WebStart Is Dead: What Should We Do Now?
 
Android Testing Support Library: The Nitty Gritty - Zan Markan - Codemotion M...
Android Testing Support Library: The Nitty Gritty - Zan Markan - Codemotion M...Android Testing Support Library: The Nitty Gritty - Zan Markan - Codemotion M...
Android Testing Support Library: The Nitty Gritty - Zan Markan - Codemotion M...
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
 
Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjug
 
Micronaut For Single Page Apps
Micronaut For Single Page AppsMicronaut For Single Page Apps
Micronaut For Single Page Apps
 

Viewers also liked

Want to Apply for US visit visa - Talk to Expert
 Want to Apply for US visit visa - Talk to Expert Want to Apply for US visit visa - Talk to Expert
Want to Apply for US visit visa - Talk to Expert
Abhinav Immigration Services Pvt. Ltd.
 
La trascendencia del quehacer docente
La trascendencia del quehacer docenteLa trascendencia del quehacer docente
La trascendencia del quehacer docente
roquefilosa
 
Maria grazia maria jose
Maria grazia   maria joseMaria grazia   maria jose
Maria grazia maria joseMajo Castillo
 
AUMENTAN LOS CONTROLES - AUMENTAN LAS SANCIONES DE TRÁNSITO EN SANTA FE DE AN...
AUMENTAN LOS CONTROLES - AUMENTAN LAS SANCIONES DE TRÁNSITO EN SANTA FE DE AN...AUMENTAN LOS CONTROLES - AUMENTAN LAS SANCIONES DE TRÁNSITO EN SANTA FE DE AN...
AUMENTAN LOS CONTROLES - AUMENTAN LAS SANCIONES DE TRÁNSITO EN SANTA FE DE AN...alcaldia municipal
 
Los tiempos en pasado presente y futuro
Los tiempos en pasado presente y futuroLos tiempos en pasado presente y futuro
Los tiempos en pasado presente y futuroAndrea Nathalii
 

Viewers also liked (7)

Want to Apply for US visit visa - Talk to Expert
 Want to Apply for US visit visa - Talk to Expert Want to Apply for US visit visa - Talk to Expert
Want to Apply for US visit visa - Talk to Expert
 
La trascendencia del quehacer docente
La trascendencia del quehacer docenteLa trascendencia del quehacer docente
La trascendencia del quehacer docente
 
Maria grazia maria jose
Maria grazia   maria joseMaria grazia   maria jose
Maria grazia maria jose
 
AUMENTAN LOS CONTROLES - AUMENTAN LAS SANCIONES DE TRÁNSITO EN SANTA FE DE AN...
AUMENTAN LOS CONTROLES - AUMENTAN LAS SANCIONES DE TRÁNSITO EN SANTA FE DE AN...AUMENTAN LOS CONTROLES - AUMENTAN LAS SANCIONES DE TRÁNSITO EN SANTA FE DE AN...
AUMENTAN LOS CONTROLES - AUMENTAN LAS SANCIONES DE TRÁNSITO EN SANTA FE DE AN...
 
WRA Resume
WRA ResumeWRA Resume
WRA Resume
 
Cronologia iigm
Cronologia iigmCronologia iigm
Cronologia iigm
 
Los tiempos en pasado presente y futuro
Los tiempos en pasado presente y futuroLos tiempos en pasado presente y futuro
Los tiempos en pasado presente y futuro
 

Similar to Understanding and Developing Web Services: For DBAs and Database Developers

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
Revelation Technologies
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
Deploying to Oracle SOA Suite 12c - Everything You Need To Know
Deploying to Oracle SOA Suite 12c - Everything You Need To KnowDeploying to Oracle SOA Suite 12c - Everything You Need To Know
Deploying to Oracle SOA Suite 12c - Everything You Need To Know
Revelation Technologies
 
What Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA ProjectsWhat Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA ProjectsRevelation Technologies
 
Oracle SOA Development - Hands-On from Start to Finish
Oracle SOA Development - Hands-On from Start to FinishOracle SOA Development - Hands-On from Start to Finish
Oracle SOA Development - Hands-On from Start to Finish
Revelation Technologies
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
Revelation Technologies
 
Vaadin Introduction, 7.3 edition
Vaadin Introduction, 7.3 editionVaadin Introduction, 7.3 edition
Vaadin Introduction, 7.3 edition
Joonas Lehtinen
 
112815 java ee8_davidd
112815 java ee8_davidd112815 java ee8_davidd
112815 java ee8_davidd
Takashi Ito
 
Java servlet technology
Java servlet technologyJava servlet technology
Java servlet technology
Minal Maniar
 
Jax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 PlatformJax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 PlatformWSO2
 
Oracle Database Cloud Service - Provisioning Your First DBaaS Instance
Oracle Database Cloud Service - Provisioning Your First DBaaS InstanceOracle Database Cloud Service - Provisioning Your First DBaaS Instance
Oracle Database Cloud Service - Provisioning Your First DBaaS Instance
Revelation Technologies
 
Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
Upgrading Oracle SOA Suite to 11g: A Real-World Success StoryUpgrading Oracle SOA Suite to 11g: A Real-World Success Story
Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
Revelation Technologies
 
Explore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsExplore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration Topics
CA Technologies
 
JavaEE6 my way
JavaEE6 my wayJavaEE6 my way
JavaEE6 my way
Nicola Pedot
 
Servlets
ServletsServlets
Servlets
ZainabNoorGul
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools Ecosystem
Rocket Software
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop Seattle
Judy Breedlove
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
Matt Stine
 
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
jaxconf
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
Matt Raible
 

Similar to Understanding and Developing Web Services: For DBAs and Database Developers (20)

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
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
 
Deploying to Oracle SOA Suite 12c - Everything You Need To Know
Deploying to Oracle SOA Suite 12c - Everything You Need To KnowDeploying to Oracle SOA Suite 12c - Everything You Need To Know
Deploying to Oracle SOA Suite 12c - Everything You Need To Know
 
What Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA ProjectsWhat Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA Projects
 
Oracle SOA Development - Hands-On from Start to Finish
Oracle SOA Development - Hands-On from Start to FinishOracle SOA Development - Hands-On from Start to Finish
Oracle SOA Development - Hands-On from Start to Finish
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
 
Vaadin Introduction, 7.3 edition
Vaadin Introduction, 7.3 editionVaadin Introduction, 7.3 edition
Vaadin Introduction, 7.3 edition
 
112815 java ee8_davidd
112815 java ee8_davidd112815 java ee8_davidd
112815 java ee8_davidd
 
Java servlet technology
Java servlet technologyJava servlet technology
Java servlet technology
 
Jax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 PlatformJax WS JAX RS and Java Web Apps with WSO2 Platform
Jax WS JAX RS and Java Web Apps with WSO2 Platform
 
Oracle Database Cloud Service - Provisioning Your First DBaaS Instance
Oracle Database Cloud Service - Provisioning Your First DBaaS InstanceOracle Database Cloud Service - Provisioning Your First DBaaS Instance
Oracle Database Cloud Service - Provisioning Your First DBaaS Instance
 
Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
Upgrading Oracle SOA Suite to 11g: A Real-World Success StoryUpgrading Oracle SOA Suite to 11g: A Real-World Success Story
Upgrading Oracle SOA Suite to 11g: A Real-World Success Story
 
Explore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsExplore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration Topics
 
JavaEE6 my way
JavaEE6 my wayJavaEE6 my way
JavaEE6 my way
 
Servlets
ServletsServlets
Servlets
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools Ecosystem
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop Seattle
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
 
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 

More from Revelation Technologies

Operating System Security in the Cloud
Operating System Security in the CloudOperating System Security in the Cloud
Operating System Security in the Cloud
Revelation Technologies
 
Getting Started with Terraform
Getting Started with TerraformGetting Started with Terraform
Getting Started with Terraform
Revelation Technologies
 
Getting Started with API Management
Getting Started with API ManagementGetting Started with API Management
Getting Started with API Management
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 REST
Revelation 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 Cloud
Revelation 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 Framework
Revelation 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 Demand
Revelation 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 Showdown
Revelation 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 Know
Revelation Technologies
 
Cloud Integration Strategy
Cloud Integration StrategyCloud Integration Strategy
Cloud Integration Strategy
Revelation 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 Cloud
Revelation Technologies
 
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
Revelation Technologies
 
Oracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting StartedOracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting Started
Revelation Technologies
 
Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's U...
Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's U...Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's U...
Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's U...
Revelation Technologies
 

More from 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
 
Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's U...
Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's U...Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's U...
Domain Partitions and Multitenancy in Oracle WebLogic Server 12c - Why It's U...
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 

Understanding and Developing Web Services: For DBAs and Database Developers

  • 1. Raastech, Inc. 2201 Cooperative Way, Suite 600 Herndon, VA 20171 +1-703-884-2223 info@raastech.com Understanding and Developing Web Services For DBAs and Database Developers Wednesday, May 20,2015 8:30 - 9:30 am Room: Superior and Erie
  • 2. © Raastech, Inc. 2015 | All rights reserved. Slide 2 of 61@Raastech Agenda 1. Introduction 2. Introducing Web Services 3. Accessing a Web Service 4. Anatomy of a WSDL 5. Getting Started: Concepts 6. Live Development Demo  Java Web Service: Top-Down Development  Java Web Service: Bottom-Up Development  BPEL Web Service 7. Recap & Summary
  • 3. © Raastech, Inc. 2015 | All rights reserved. Slide 3 of 61@Raastech
  • 4. © Raastech, Inc. 2015 | All rights reserved. Slide 4 of 61@Raastech About Us  Ahmed Aboulnaga @Ahmed_Aboulnaga  18+ years Oracle experience  Author of “Oracle SOA Suite 11g Administrator’s Handbook”  OCE (SOA Foundation Practitioner)  Oracle ACE .
  • 5. © Raastech, Inc. 2015 | All rights reserved. Slide 5 of 61@Raastech About Raastech  Small systems integrator founded in 2009  Headquartered in the Washington DC area  Specializes in Oracle Fusion Middleware  Oracle Platinum Partner & Reseller  Oracle SOA Specialized  100% of consultants are Oracle certified  100% of consultants present at major Oracle conferences  100% of consultants have published books, whitepapers, or articles  Oracle SOA Specialized – 1 in 1,500 worldwide  Oracle Platinum Partner – 1 in 3,000 worldwide
  • 6. © Raastech, Inc. 2015 | All rights reserved. Slide 6 of 61@Raastech Why This Presentation  Learn to develop a web service from scratch  Lot of PL/SQL developers are intimidated by SOA development  Presentation is specific to SOAP, but concepts are similar for REST
  • 7. © Raastech, Inc. 2015 | All rights reserved. Slide 7 of 61@Raastech
  • 8. © Raastech, Inc. 2015 | All rights reserved. Slide 8 of 61@Raastech Custom Drivers  How application access was previously developed PL/SQL ProcedurePL/SQL Procedure SQL Developer Java Application .NET Application ODBC driver JDBC driver SQL*NET (internal)
  • 9. © Raastech, Inc. 2015 | All rights reserved. Slide 9 of 61@Raastech Specific Target Implementation  ProC anyone?  Must be aware of the technology of the target system implementation and import the necessary libraries and drivers compatible with that technology PL/SQL ApplicationJava Application Java Application .NET Application .NET JARs Java API JDBC drive
  • 10. © Raastech, Inc. 2015 | All rights reserved. Slide 10 of 61@Raastech SOAP over HTTP  Standardization on SOAP over HTTP Web ServiceAny Application Java Application .NET Application SOAP over HTTP SOAP over HTTP SOAP over HTTP
  • 11. © Raastech, Inc. 2015 | All rights reserved. Slide 11 of 61@Raastech Agnostic Target Implementation  No need to worry about implementation technology of target applications AWS Java Application SalesForce Intuit SOAP over HTTP SOAP over HTTP SOAP over HTTP
  • 12. © Raastech, Inc. 2015 | All rights reserved. Slide 12 of 61@Raastech PL/SQL Samples CREATE PROCEDURE getWeather ( zipcode IN VARCHAR2, temperature OUT NUMBER) IS BEGIN temperature := '35'; END; CREATE PROCEDURE setWeather ( zipcode IN VARCHAR2, temperature IN NUMBER) IS BEGIN INSERT INTO weather VALUES (zipcode, temperature); END; Request-Response Synchronous 1-way Asynchronous
  • 13. © Raastech, Inc. 2015 | All rights reserved. Slide 13 of 61@Raastech Synchronous vs. Asynchronous PL/SQL Procedure PL/SQL Procedure PL/SQL Procedure PL/SQL Procedure
  • 14. © Raastech, Inc. 2015 | All rights reserved. Slide 14 of 61@Raastech
  • 15. © Raastech, Inc. 2015 | All rights reserved. Slide 15 of 61@Raastech Web Service Clients  Now that business functionality is exposed as web services, these services need to be consumed somehow.  Since web services are standards based, they can be invoked via the majority of programming languages or through other services.
  • 16. © Raastech, Inc. 2015 | All rights reserved. Slide 16 of 61@Raastech SoapUI
  • 17. © Raastech, Inc. 2015 | All rights reserved. Slide 17 of 61@Raastech Accessing a WSDL  The web service interface is accessible via an HTTP URL: http://admin.packt.com:7001/Packt-GetWeather-context-root/WeatherPort?WSDL  The web service implementation may or may not reside on the same service: <soap:address location="http://srv.packt.com:8888/Packt-GetWeather-context- root/WeatherPort"/>  Often impossible to tell what underlying language was used to create the web service.
  • 18. © Raastech, Inc. 2015 | All rights reserved. Slide 18 of 61@Raastech
  • 19. © Raastech, Inc. 2015 | All rights reserved. Slide 19 of 61@Raastech Dissecting a WSDL: Interface <definitions name="Weather"> <types> <schema> <element name="zip" type="string"/> <element name="temp" type="string"/> </schema> </types> <message name="zipReq"><part name="parameters" element="zip"/></message> <message name="tempResp"><part name="parameters" element="temp"/></message> <portType name="WeatherPort"> <operation name="getWeather"> <input message="zipReq"/> <output message="tempResp"/> </operation> </portType> <binding name="WeatherBinding" type="WeatherPort"> <operation name="getWeather"> <input name="zipReq"/> <output name="tempResp"/> </operation> </binding> <service name="WeatherService"> <port name="WeatherPort" binding="WeatherBinding"> <soap:address location="http://localhost/wc/weather"/> </port> </service> </definitions> The WSDL is the interface to the web service. Implementation details of the web service is unknown.
  • 20. © Raastech, Inc. 2015 | All rights reserved. Slide 20 of 61@Raastech <definitions name="Weather"> <types> <schema> <element name="zip" type="string"/> <element name="temp" type="string"/> </schema> </types> <message name="zipReq"><part name="parameters" element="zip"/></message> <message name="tempResp"><part name="parameters" element="temp"/></message> <portType name="WeatherPort"> <operation name="getWeather"> <input message="zipReq"/> <output message="tempResp"/> </operation> </portType> <binding name="WeatherBinding" type="WeatherPort"> <operation name="getWeather"> <input name="zipReq"/> <output name="tempResp"/> </operation> </binding> <service name="WeatherService"> <port name="WeatherPort" binding="WeatherBinding"> <soap:address location="http://localhost/wc/weather"/> </port> </service> </definitions> Dissecting a WSDL: Endpoints Location is referred to as the “endpoint”. Identifies where the actual code resides.
  • 21. © Raastech, Inc. 2015 | All rights reserved. Slide 21 of 61@Raastech <definitions name="Weather"> <types> <schema> <element name="zip" type="string"/> <element name="temp" type="string"/> </schema> </types> <message name="zipReq"><part name="parameters" element="zip"/></message> <message name="tempResp"><part name="parameters" element="temp"/></message> <portType name="WeatherPort"> <operation name="getWeather"> <input message="zipReq"/> <output message="tempResp"/> </operation> </portType> <binding name="WeatherBinding" type="WeatherPort"> <operation name="getWeather"> <input name="zipReq"/> <output name="tempResp"/> </operation> </binding> <service name="WeatherService"> <port name="WeatherPort" binding="WeatherBinding"> <soap:address location="http://localhost/wc/weather"/> </port> </service> </definitions> Dissecting a WSDL: Operations This web service has a single operation, with an input and an output (i.e., synchronous).
  • 22. © Raastech, Inc. 2015 | All rights reserved. Slide 22 of 61@Raastech <definitions name="Weather"> <types> <schema> <element name="zip" type="string"/> <element name="temp" type="string"/> </schema> </types> <message name="zipReq"><part name="parameters" element="zip"/></message> <message name="tempResp"><part name="parameters" element="temp"/></message> <portType name="WeatherPort"> <operation name="getWeather"> <input message="zipReq"/> <output message="tempResp"/> </operation> </portType> <binding name="WeatherBinding" type="WeatherPort"> <operation name="getWeather"> <input name="zipReq"/> <output name="tempResp"/> </operation> </binding> <service name="WeatherService"> <port name="WeatherPort" binding="WeatherBinding"> <soap:address location="http://localhost/wc/weather"/> </port> </service> </definitions> Dissecting a WSDL: Messages The type of the message is defined in the “schema”.
  • 23. © Raastech, Inc. 2015 | All rights reserved. Slide 23 of 61@Raastech JavaBPEL Today’s Live Development Demo getWeatherSoapUI getWeatherSoapUI
  • 24. © Raastech, Inc. 2015 | All rights reserved. Slide 24 of 61@Raastech
  • 25. © Raastech, Inc. 2015 | All rights reserved. Slide 25 of 61@Raastech w3schools References  http://www.w3schools.com/xml/default.asp  http://www.w3schools.com/schema/default.asp  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  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
  • 26. © Raastech, Inc. 2015 | All rights reserved. Slide 26 of 61@Raastech  XML stands for “EXtensible Markup Language”.  XML was designed to transport and store data.  XML is designed to be self-descriptive.  XML was originally designed to transport and store data.  XML does not contain any logic. Introduction to XML
  • 27. © Raastech, Inc. 2015 | All rights reserved. Slide 27 of 61@Raastech  XML documents follow a tree structure.  Every XML document must have 1 root element.  The root element is the parent of all other elements. <Customer> <Name>John Doe</Name> <OrderNumber>61237</OrderNumber> <Items> <Item quantity="2">Book</Item> </Items> </Customer> XML Structure – Root Element
  • 28. © Raastech, Inc. 2015 | All rights reserved. Slide 28 of 61@Raastech  Comments <Customer> <!-- this is a comment --> <Name>John Doe</Name> <OrderNumber>61237</OrderNumber> <Items> <Item quantity="2">Book</Item> </Items> </Customer> XML Structure – Comments
  • 29. © Raastech, Inc. 2015 | All rights reserved. Slide 29 of 61@Raastech  XML documents must have open and close tags.  Valid HTML, but invalid XML: <li> XML is easy XML Structure – Tags
  • 30. © Raastech, Inc. 2015 | All rights reserved. Slide 30 of 61@Raastech  Open and close tags must have matching case  Valid HTML, but invalid XML: <Customer>John Doe</customer> XML Structure – Tags
  • 31. © Raastech, Inc. 2015 | All rights reserved. Slide 31 of 61@Raastech  XML elements must be properly nested  Valid HTML, but invalid XML: <b><u>Hello World</b><u> XML Structure – Tags
  • 32. © Raastech, Inc. 2015 | All rights reserved. Slide 32 of 61@Raastech  Entity reference. &lt; < less than &gt; > greater than &amp; & ampersand &apos; ' apostrophe &quot; " quotation mark XML Structure – Entity Reference
  • 33. © Raastech, Inc. 2015 | All rights reserved. Slide 33 of 61@Raastech  Unlike HTML, whitespace is preserved in XML. <Customer> <Name>John Doe is a person. His age is 20.</Name> </Customer> XML Structure – Whitespace
  • 34. © Raastech, Inc. 2015 | All rights reserved. Slide 34 of 61@Raastech  Attributes <Customer OrderNumber="61237"> <Items> <Item quantity="2">Book</Item> <Item quantity="1">Binder</Item> </Items> </Customer> XML Structure – Attributes
  • 35. © Raastech, Inc. 2015 | All rights reserved. Slide 35 of 61@Raastech  Should you use elements or attributes when designing XML documents? <Customer> <OrderNumber>61237</OrderNumber> <Items> <Item quantity="1">Binder</Item> </Items> </Customer> <Customer OrderNumber="61237"> <Items> <Item quantity="1">Binder</Item> </Items> </Customer> XML Structure – Attributes vs. Elements
  • 36. © Raastech, Inc. 2015 | All rights reserved. Slide 36 of 61@Raastech  Namespaces are identifiers <Customers> <e:Customer xmlns:e="http://raastech.com/Employees"> <e:Name>John Doe</e:Name> </e:Customer> <p:Customer xmlns:p="http://raastech.com/Partners"> <p:Name>Jane Doe</p:Name> </p:Customer> <Customers> XML Structure – Namespaces
  • 37. © Raastech, Inc. 2015 | All rights reserved. Slide 37 of 61@Raastech  Default namespace; no need to prefix all child elements. <Customer xmlns="http://raastech.com/Employees"> <Name>John Doe</Name> </Customer> XML Structure – Default Namespace
  • 38. © Raastech, Inc. 2015 | All rights reserved. Slide 38 of 61@Raastech  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. Introduction to XML Schema
  • 39. © Raastech, Inc. 2015 | All rights reserved. Slide 39 of 61@Raastech  XML Schemas are well-formed XML documents and are extensible.  They are typically saved as .xsd files.  The root element of every XML Schema is the <schema> element.  The <schema> element may include attributes such as the XML namespace. Introduction to XML Schema
  • 40. © Raastech, Inc. 2015 | All rights reserved. Slide 40 of 61@Raastech <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="Customer"> <xs:complexType> <xs:sequence> <xs:element name="OrderNumber" type="xs:string"/> <xs:element name="Name" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Example of an XML Schema
  • 41. © Raastech, Inc. 2015 | All rights reserved. Slide 41 of 61@Raastech  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 Simple Element
  • 42. © Raastech, Inc. 2015 | All rights reserved. Slide 42 of 61@Raastech  String <someelement>Hello World</someelement>  Decimal <someelement>12.50</someelement>  Integer <someelement>12</someelement>  Boolean <someelement>true</someelement> Data Types
  • 43. © Raastech, Inc. 2015 | All rights reserved. Slide 43 of 61@Raastech  Date <someelement>2002-09-24Z</someelement> <someelement>2008-07-24-06:00</someelement>  Time: <someelement>08:00:00</someelement>  DateTime: <someelement>2008-07-24T08:00:00</someelement> Data Types
  • 44. © Raastech, Inc. 2015 | All rights reserved. Slide 44 of 61@Raastech  Restrictions are also referred to as facets.  Examples include:  minInclusive  maxInclusive  Enumeration  fractionDigits  Length  maxInclusive  maxExclusive  maxLength  minLength  totalDigits Restrictions
  • 45. © Raastech, Inc. 2015 | All rights reserved. Slide 45 of 61@Raastech  Complex elements are XML elements that contains other elements or attributes. <xs:element name="Customer"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string"/> <xs:element name="Item" type="xs:ItemType" minOccurs="1" maxOccurs="5"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="ItemType"> <xs:sequence> <xs:element name="Item" type="xs:string"/> <xs:element name="Price" type="xs:decimal"/> </xs:sequence> </xs:complexType> Complex Element
  • 46. © Raastech, Inc. 2015 | All rights reserved. Slide 46 of 61@Raastech  SOAP stands for “Simple Object Access Protocol”.  It is a communication protocol and allows XML documents to be exchange over HTTP.  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  Body  Fault Introduction to SOAP
  • 47. © Raastech, Inc. 2015 | All rights reserved. Slide 47 of 61@Raastech  Example: <?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> SOAP Message
  • 48. © Raastech, Inc. 2015 | All rights reserved. Slide 48 of 61@Raastech  Envelope  Root element of a SOAP message.  xmlns:soap namespace should always have the value of http://www.w3.org/2001/12/soap-envelope.  Header  Optional.  Could include information such as authentication information.  First child element of the Envelope element.  Body  Required.  Contains the content of the SOAP message (i.e., the payload). SOAP Message
  • 49. © Raastech, Inc. 2015 | All rights reserved. Slide 49 of 61@Raastech  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. Introduction to WSDL
  • 50. © Raastech, Inc. 2015 | All rights reserved. Slide 50 of 61@Raastech
  • 51. © Raastech, Inc. 2015 | All rights reserved. Slide 51 of 61@Raastech Java Web Service Development: Top-Down Approach  A top-down web service begins with a WSDL.  Stubs for the underlying Java classes are created.  Live Development Demo
  • 52. © Raastech, Inc. 2015 | All rights reserved. Slide 52 of 61@Raastech
  • 53. © Raastech, Inc. 2015 | All rights reserved. Slide 53 of 61@Raastech Java Web Service Development: Bottom-Up Approach  A bottom-up web service begins with an already existing Java class.  Class and methods are easily exposed as a web service interface.  Live Development Demo
  • 54. © Raastech, Inc. 2015 | All rights reserved. Slide 54 of 61@Raastech
  • 55. © Raastech, Inc. 2015 | All rights reserved. Slide 55 of 61@Raastech BPEL Web Service Development  Live Development Demo
  • 56. © Raastech, Inc. 2015 | All rights reserved. Slide 56 of 61@Raastech
  • 57. © Raastech, Inc. 2015 | All rights reserved. Slide 57 of 61@Raastech SOAP vs. REST { "Customer": { "FirstName":"John", "LastName":"Doe" } } <?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:FirstName>John</m:FirstName> <m:LastName>Doe</m:LastName> </m:Customer> </soap:Body> SOAP Message  Strong message type validation  Based on XML standard  Wide usage and adoption  Not size-friendly:  Size of data: 7 bytes  Size of message: 236 bytes JSON Message  Lightweight and efficient (mobile!)  Growing usage and adoption  Oracle will standardize on REST  Size-friendly:  Size of data: 7 bytes  Size of message: 50 bytes
  • 58. © Raastech, Inc. 2015 | All rights reserved. Slide 58 of 61@Raastech SOAP vs. REST  http://www.ateam-oracle.com/performance-study-rest-vs-soap-for-mobile-applications/
  • 59. © Raastech, Inc. 2015 | All rights reserved. Slide 59 of 61@Raastech Recap  Why has web services become the accepted standard?  Are you more familiar with XML terminology?  What is a popular SOAP client testing tool?  What is SOAP and what are the components of a SOAP message?  Can you understand a WSDL when you look at it now?  What is the difference between top-down and bottom-up web service development?  What is REST?
  • 60. © Raastech, Inc. 2015 | All rights reserved. Slide 60 of 61@Raastech Contact Information  Ahmed Aboulnaga  Technical Director  @Ahmed_Aboulnaga  ahmed.aboulnaga@raastech.com
  • 61. © Raastech, Inc. 2015 | All rights reserved. Slide 61 of 61@Raastech Q&A