Beruflich Dokumente
Kultur Dokumente
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
"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.
Yellow Pages: contain companies that are selling tomatoes, their location, and contact information.
do the transaction
Existing solutions
How can two (or more) applications communicate today? Ad Hoc solutions:
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.
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
Can use Web Services to integrate across departments, agencies, to companies, etc.
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,
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.
.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: Suns 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.
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
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
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.
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
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.
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.
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
http://java.sun.com/webservices/docs/1.1/tutorial/doc/
Java Web services In a Nutshell OReilly Kim Topley XML In a Nutshell O'Reilly Java Web Services for Experienced Programmers Deitel developer series Java Web Services David Chappell OReilly New updates about the package jwsdp & projects are discussed here https://jwsdp.dev.java.net/
Thanks