Presentation is loading. Please wait.

Presentation is loading. Please wait.

Developing Web Services with the Eclipse Web Tools Platform

Similar presentations


Presentation on theme: "Developing Web Services with the Eclipse Web Tools Platform"— Presentation transcript:

1 Developing Web Services with the Eclipse Web Tools Platform
Boris Minkin

2 Web Services? What and why?
Companies need to integrate existing systems – achieve interoperability among disparate implementations Web Services and XML came along with the ability to provide standard communication interface between these systems They are essentially language/platform-neutral remote procedure calls built on HTTP infrastructure

3 Fundamental standards and technologies
XML – eXtensible Markup Language: The syntax used for Web Service messages, configuration files, description files, etc. HTTP – Hypertext Transfer Protocol: The standard transport used to communicate between Web Service servers and clients RPC – Remote Procedure Call: The technique of executing a method call remotely—here, the client calling a web service’s operation.

4 Web Service standards and technologies
SOAP – Simple Object Access Protocol. An XML-based standard for sending messages (in a SOAP envelope) between web services and clients. WSDL—Web Service Definition Language XML-based description of a web services public interface. (Similar to CORBA IDL.) UDDI—Universal Description, Discovery and Integration. And XML-based registry for web service. Interrogated with SOAP messages, returns WSDL documents. CORBA: Common Object Request Broker Architecture

5 Locating and Using Web Services
UDDI Registry Query registry Obtain WSDL Publish WSDL Get result back Client Application Web Service Call web service operation

6 Java Web Service related standards and protocols
Web Services are Part of J2EE 1.4 Web Services for Java: JSR 101/109 standard One can generate web service from Java Bean or Stateless Session EJB Various Protocols and Standards: JAXP—Java API for XML Processing JAX-RPC—Java API for XML-based RPC JAXR—Java API for XML registries SAAJ—SOAP with Attachments API for Java SAX—Simple API for XML processing DOM API—Document Object Model API

7 What is Eclipse? Open-Source Java Integrated Development Environment (IDE) Initially donated by IBM to the Open-Source foundation Includes: Java Development Tools (JDT) Integrated Testing and Debugging Support Incremental compilation and build Team development support CVS support comes out of the box Pluggable – major advantage – can develop custom plug-ins – variety is available at sites such as:

8 Eclipse main concepts Workspace Project Workbench Perspective
A workspace is a place where Eclipse stores the user’s data. It’s a tree with projects, folders and files. A workspace can contains many projects You can have several workspaces but only one workspace can be activated at a time. Project Collection of folders and files Workbench The workbench is the development environment window contains one or more perspectives Perspective A layout with a set of editors and views Some Perspectives include: Java, CVS, Debug, Resource, etc. Editor/View Editors allow to edit content of a particular type (e.g., Java code editor) Views present information in non-editable way (some views include Ant, Console, Declaration, Error log, Hierarchy, Javadoc, Navigator, Outline, Package Explorer, Problems, Search

9 Eclipse Web Tools Project (WTP) Platform
One of the top Eclipse projects Adds Web/J2EE/Web Services development facilities J2EE and Web perspectives Web, EJB and Enterprise Application projects Variety of editors and views for editing JSP/HTML, XML, other files Provides tools for: Web applications using JSP / Servlets Provides editors for XML, HTML, JSP, JavaScript Enterprise Java Beans (EJB) Web Service (based on Apache AXIS) Database exploration Support for servers such as Tomcat, JBoss, etc. WTP Roadmap: WTP 0.7, July 2005 – End User Tools WTP 1.0, December 2005 – Platform APIs WTP 1.5, June 2006 – Java EE 5.0

10 Two ways to create Web Service with Eclipse WTP
Bottom up: You create the web service Java Bean or Stateless Session EJB Eclipse creates the glue classes and the WSDL Top down: You write the WSDL Eclipse creates the necessary glue classes and the service’s method stubs in a Java Bean You implement the operations

11 Eclipse WTP – Web Services Tools
Wizard to create Web service top-down (from WSDL) and bottom-up (from Java). Wizard creates a Java stub that binds to a Web service. Wizard can optionally configure test client and deployment of your Web service You can also specify to monitor your web service once its launched

12 Eclipse WTP – Web Services Tools
Graphical WSDL/XSD Editor Edit your WSDL file without wrestling with the syntax Collections of related ports Abstract sets of one or more operations supported by one or more ports. Containers for data type definitions using XML schema type system Concrete protocol and data format specifications for a particular port type Graphical WSDL editor helps one to edit WSDL files. Every WSDL file includes the following major interrelated entities that describe every web service: Types: A container for data type definitions using XML schema type system. Messages: An abstract, typed definition of the data being communicated. A message can have one or more typed parts, for example the highlighted message getLatestDateTimeResponse has just one part which is its return parameter of xsd:date (XML Schema date type). Port types: Abstract sets of one or more operations supported by one or more ports. Operations: Abstract description of an action supported by the service that defines the input and output message as well as optional fault message. Bindings: Concrete protocol and data format specification for a particular port type. The binding information contains the protocol name, the invocation style, a service ID, and the encoding for each operation. Services: A collection of related ports. Ports: Single endpoint, which is defined as an aggregation of a binding and a network address. Abstract, typed definitions of the data being communicated. A message can have one or more typed parts, for example the highlighted message getLatestDateTimeResponse has just one part which is its return parameter of xsd:date (XML Schema date type).

13 Eclipse WTP – Web Services Tools
XML Schema, WSDL, and WS-I validators Ensure your documents conform to standards (WSDL, XSD) and standard extensions (WS-I)

14 Eclipse WTP – Web Services Tools
Web Service Explorer Publish/Discover Web services. Invoke Web services dynamically. No code generation required for testing. One can go ahead and specify method parameters to invoke them

15 Eclipse WTP – Web Services Tools
TCP/IP Monitor is a powerful facility to show data sent through the wire and to simplify analysis of any possible problems Shows the list of interactions (request/response) that have been performed in the chronological order. When a developer clicks on the particular interaction, the system displays the time of request, how long it took the system to respond (in milliseconds) and type of protocol that was used (usually, HTTP). Displays the SOAP response envelope Displays the contents of SOAP envelope generated by web services request.

16 A First Web Tools Project – Step 1
Before we can make any web services we have to create a Dynamic Web Project in Eclipse. However, before we can make a dynamic Web Project, we need to configure a target server.

17 A First Web Tools Project – Step 2
Now, we are ready to create our Dynamic Web Project. Since Tomcat is just a Web Container provider, Web project is enough for it. For servers such as JBoss or WebSphere, you will need to create Enterprise Application Project.

18 J2EE Scenario – Typical Web Services Application Architecture
Java class accesses data from a database or another source Java class exposed as a Web service

19 Our Sample Application Description
StockData 1 1..N stockName stockSymbol StockService getLatestPrice getLatestVolume getLatestDateTime getStockName getStockSymbol setStockName setStockSymbol getStockHistory price volume dateTime get/setPrice get/setVolume get/setDateTime Just two Java classes – one for exposing the methods to be called through the service, – another for data gathering

20 Free stuff !!! You can go ahead and download yourself all the software I’ll use in the demo: J2SE 5.0 JRE: Eclipse 3.1.2: Eclipse Web Tools Project (WTP) 1.0: You can download the complete set (including Eclipse itself and all required components) You can also install it using Eclipse Install/Update facility – from Help menu select Software Updates – Find and Install, New Features to Install, then: New Remote Site with any name and URL: Tomcat 5.0/5.5:

21 Demo – Building Bottom-Up Web Service
Create a web service, bottom-up Exploring a Web Service using the Web Services Explorer Exploring generated WSDL using WSDL file editor Creating a simple client to invoke our web service Writing our own client Create a web service, top down See here for WTP update instructions: Check out

22 Invoke our Web Service from Java command line application
package services; /** * Creating a simple Java client to invoke Web Service through the generated service locator and * service end point interface. */ public class StockServiceClient { * To invoke stock service public static void main(String[] args) { try{ StockServiceServiceLocator wsl = new StockServiceServiceLocator(); StockService ws = (StockService) wsl.getStockService(); String name = ws.getStockName(); System.out.println("Stock name: " + name); double price = ws.getLatestPrice(); System.out.println("Stock price: " + price); long volume = ws.getLatestVolume(); System.out.println("Stock volume: " + volume); } catch (Exception e) { e.printStackTrace(); }

23 Invoke our Web Service from Microsoft .NET client
Demonstrates Web Services Interoperability Using Microsoft .NET 1.1 framework generation and compilation tools Sample program I’ve written in C#

24 To get more information…
WTP website WTP newsgroup news://news.eclipse.org/eclipse.webtools WTP Community Resources (articles, tutorials, events) Article in Eclipse Developer Journal – Developing Web Services with Eclipse WTP:


Download ppt "Developing Web Services with the Eclipse Web Tools Platform"

Similar presentations


Ads by Google