java web services - soap and rest services

VasantPrasad 17 views 30 slides Aug 28, 2024
Slide 1
Slide 1 of 30
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30

About This Presentation

It is about Java Web Services. It gives information about Web services


Slide Content

Java Web Services
Sharmila Chalasani
MS Computer Science
State university of New York at Binghamton
Termination Project
Summer 2004

Outline
Introduction to web services
Existing solutions
Web service Architecture
Standards used
Web services technology
JAX-RPC Architecture
Hosting using Java web services
Steps involved in creating weather web service
Consuming my weather forecast web service (client details)
Some facts about web services
References

Why are we here?

"Web Services" contain the word "Web" and Web
technologies matter.
More and more people get connected using
computers, televisions, mobiles, …

"Web Services" contain the word "services" and we
wonder why kind of services they will fulfill for us.
We already have services on the Web, so what's
missing?

The Problem (eg. how to buy tomatoes)

Find the tomato sellers;
Yellow Pages: contain companies that are selling
tomatoes, their location, and contact information.

Find the service offered according to my needs;
Where, when and how can I buy tomatoes?

Buy the tomatoes;
do the transaction

Traditional web application/Web
service

Web Service Requirement
Applications need to communicate:
Unless tomato buyers can communicate to tomato sellers, there
will be no business.
The system must scale:
-As many tomato buyers and sellers as possible.
-Being able to use any future new kind of tomatoes or any kind of
products (potatoes, video games, …)
-Add new layers: security!
The solution must be portable across environments:
-Not all tomato buyers and sellers will use the same system or the
same language.
Used by anyone, anywhere, and with any kind of devices.

Existing solutions

How can two (or more) applications communicate
today?

Ad Hoc solutions:
Unless you want to buy your own tomatoes, it won't
be useful.

Language-oriented solutions (Java RMI, …)
Works well if the tomato seller uses your language

Service-oriented solutions (CORBA, DCE, DCOM)
And about the Web?

Web service: definition
A Web service is a software system identified by a
URI, whose public interfaces and bindings are
defined and described using XML. Its definition can
be discovered by other software systems. These
systems may then interact with the Web service in a
manner prescribed by its definition, using XML based
messages conveyed by Internet protocols.
Loosely coupled, reusable software components that
semantically encapsulate discrete functionality and
are distributed and programmatically accessible over
standard Internet protocols.

Advantages of Web service

Not based on a programming language:
Java, .Net, C, C++, Python, Perl, …

Not based on a programming data model:
objects vs non-objects environments.

Convergence of SOA (Service-Oriented
Architecture) and Web.

Based on web technologies

Do not need huge framework of memory

Basic usage is b-to-b ,remote controlled
devices,internal external appl communications

Web services application
•Can use Web Services to integrate across
departments, agencies, to companies, etc.

Web service Architecture
An architecture view based on SOAP, WSDL, and UDDI.

Web service Transport

Data format
XML (subset of XML 1.0), URL encoding.
Data format schema definition: XML Schema

Wire format
XML Protocol (XML-RPC, SOAP), URI
Transfer protocol: HTTP, SMTP, JMS, BEEP, …

WS built on existing standards

Extensible Markup Language (XML)

The HTTP (Hypertext Transfer Protocol) standard is allowing
more systems to communicate with one another.

SOAP (Simple Object Access Protocol) (built on XML)
standardizes the messaging capability on different systems.

UDDI (Universal Description, Discovery, and Integration )
standardizes the publishing and finding of Web services.

WSDL (Web Services Description Language ) standardizes
the description of Web services so providers and requesters
are speaking the same language.

Web Services technology
3 major Web services toolkits being used widely
.NET Web services: Developed by Microsoft and is an
integral part of the complete .NET framework. Integrated and
easy to use with Visual Studio .NET. services are hosted on IIS
web servers.
Java Web services: Sun’s Web service implementation for the
Java community. Comes bundled in a complete Java Web
services Development Pack (JWSDP Ver 1.3) including Tomcat
web server.
 Apache Axis: Initially developed by IBM and donated to the
Apache group. One of the earliest and stable Web service
implementation. Runs on Apache Web servers.

Package used in my project

JWSDP 1.3 (java web services developer pack)

JWSDP includes :
-Java XML pack
-Tomcat Java Servlet
-JavaServer pages containers
-Registry server
-Ant build tool.

 JWSDP 1.4 is released now …

Java API used in my project
JAX-RPC (Java API for XML based RPC)

Features and Developer Benefits :
- Portable and interoperable web services
- Ease of development of web services endpoints & clients
- Increased developer productivity
- Support for open standards: XML, SOAP, WSDL
- Standard API developed under Java Community Process
- Support for tools
- RPC programming model with support for attachments
- Support for SOAP message processing model & extensions
- Secure web services
- Extensible type mapping

JAX-RPC Architecture

Hosting using Java Web Services
Required tools and files to create java web service :
Ant Tool : This a tool extensively used in J2EE architecture for
handling multiple configuration files while compiling several
files. You can consider it similar to make utility in unix platforms.
Build.xml : This is the file used by the Ant tool to get the
compilation and path directives. It contains options to selectively
compile-server, compile-client, generate-client, run-client etc
Build.properties : Some misc properties and path settings that
are referred to by build.xml.
config.xml : Defines the URL for WSDL file location. Each Web
services has a corresponding WSDL (Web service Definition
Language) document.

Hosting Java web services cont.
jaxrpc-ri.xml: Defines the various end points for referencing a
Web service.  
Misc. utilities:
wscompile: The wscompile tool generates stubs, ties,
serializers, and WSDL files used in JAX-RPC clients and
services. The tool reads as input a configuration file and either
a WSDL file or an RMI interface that defines the service.
wsdeploy: Reads a WAR file (something like Jar file) and the
jaxrpc-ri.xml  file and then generates another WAR file
that is ready for deployment

Steps : creating my project
“MyWeatherService”
• Deploy the service using “ant deploy” and verifying the service
using
service endpoint's URL:
http://localhost:8080/weather-jaxrpc/weather

Deployed “MyWeatherService”
• This page also has a URL to the service's WSDL file.
• model.gz file contains the internal data structures that
describe the service.

WSDL file of my web service

“MyWeatherService” functions

Functions available from service endpoint interface :
- boolean isvalidZipCode(String zip)
- String getWeatherReport(String zip)
- HashMap getZipcodeListMap()
- getHighTemp , getLowTemp, getHumidity,
getWind, getVisibility etc.
Communicating modes accessing web service
Stubs, dynamic proxy,DII(dynamic invocation interface)

Consuming “MyWeatherService”
Clients created to consume my weather service :
genereate stubs, compile client, package client, run the client
Static stub client
stubs are created before runtime (by wscompile), it is usually
called a static stub. .It makes this call through a stub, a local
object which acts as a proxy for the remote service.
Dynamic Proxy client
This client creates a Service object which is factory of
proxies(stubs are created at runtime dynamically)
Web Client
This client used .jsp pages to display web form for the user to
enter zipcode to get weather forecast by calling
getWeatherReport function on the stubs created before.

Consuming Web service cont.

Consuming Web service cont.
WebClient

Web services: challenges

A whole suite of technologies to design:
communication protocol
description of services
enable security and privacy
describe complex interactions
...

Must design to be interoperable and Web-
friendly

Some facts

Web service is a new paradigm, it is in initial stages.

Web service tech is evolving rapidly, sometimes in
unexpected directions .such changes may cause
difficulties early on.

Various standards and specifications are still being
defined and refined.

Security standards are also being defined.

The key security issues for WS concern authentication ,
authorization, and ensuring security at the transport
and message level.They remain a work in progress by
the community.

References

 Java web services tutorial from sun
http://java.sun.com/webservices/docs/1.1/tutorial/doc/

Java Web services In a Nutshell O’Reilly – Kim
Topley

 XML In a Nutshell O'Reilly

 Java Web Services for Experienced Programmers
Deitel developer series

 Java Web Services David Chappell O’Reilly

 New updates about the package jwsdp & projects
are discussed here https://jwsdp.dev.java.net/

Thanks
Tags