Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Build SOA with Web services using WebSphere Studio, Part 1: Introduction to SOA and Web services

Warner Onstine (webserv@us.ibm.com), Senior Mentor, ArcMind
Warner Onstine, Senior Mentor at ArcMind, Inc., is a developer with more than 8 years of experience in the industry, the majority of that spent developing Web applications. Warner is co-author of the book Professional Java Tools for Extreme Programming, with chapters focusing on Maven, Swing unit testing, and code coverage using jcoverage.
Rick Hightower (webserv@us.ibm.com), Chief Mentor, ArcMind
Rick Hightower, Chief Mentor at ArcMind, Inc., is a developer with multiple achievements, industry awards, and certifications. Rick is co-author of the book Professional Jakarta Struts, Java Tools to Extreme Programming, and wrote 1/5 of the book, Mastering Tomcat. Rick wrote many well-received tutorials on EJB 2.0 CMP CMR, XDoclet, Apache Axis, ETTK, WSDK, Struts Tiles, and more for IBM developerWorks.

Summary:  This tutorial is the first part of a series that introduces you to Service-Oriented Architecture (SOA), Web services concepts and technology, and demonstrates how to practically apply these concepts using IBM WebSphere® Application Developer Integration Edition. This tutorial also explores the current state of Web services technology. (See all parts of this tutorial series.)

View more content in this series

Date:  11 Nov 2004
Level:  Intermediate PDF:  A4 and Letter (762 KB | 46 pages)Get Adobe® Reader®

Activity:  6936 views
Comments:  

About this tutorial

Purpose of this tutorial

This tutorial is the first part of a series that introduces you to Service-Oriented Architecture (SOA), Web services concepts and technology, and demonstrates how to practically apply these concepts using the IBM WebSphere Application Developer Integration Edition (Application Developer Integration Edition). This tutorial also explores the current state of Web services technology.

Web services are programs that allow systems to interact with each other over a network. They leverage open standards and the power of the Internet to allow businesses to interact with each other more easily than ever before. Businesses continue to have a growing need to work more closely together. As a result, the ability of Web services to support them in a standard, well-defined manner has generated an enormous amount of interest and activity in the Web services arena.

Of course, because of all the excitement, you might think that Web services are just another over-hyped technology. Although there is a great deal of hype surrounding aspects of it, Web services and the underlying XML technologies really do have tremendous value for today's enterprise.

In this tutorial series, we will show that Web services and SOA, while not a silver bullet, might change forever the way you integrate business processes. This applies to integrating with other company's processes or with your own internal processes. They are the next logical step in the evolution of the Web. With Web services, we are moving to a new stage of On Demand Business, where businesses can exchange services and integrate business processes with one another. This brings the issue of Enterprise Application Integration (EAI) to another level, where you can incorporate multiple companies into a single business process, as well as more easily incorporate multiple business processes from one company into a single process.

Driven by these important business needs, the Web services world is evolving rapidly and there is a great deal of innovation, clarification, and specification occurring. Among the important developments are the following:

  • The work of the Web Services Interoperability Organization (WS-I), an open industry organization that promotes Web services interoperability across platforms, operating systems, and programming languages.
  • The development of JAX-RPC (Java APIs for XML-based remote procedure call (RPC)) -- developed as a standard specification under the Java Community Process as JSR-101. JAX-RPC provides the core API for developing and deploying Simple Object Access Protocol (SOAP)-based Web services on the Java platform.
  • The development of JSR-921 (an update to JSR-109) -- Implementing Enterprise Web services builds on three other JSRs (67, 93, and 101) and defines Web services for the Java 2 Platform, Enterprise Edition (J2EE) architecture.
  • The development of the Web Services Security (WS-Security) specification, which proposes a standard set of SOAP extensions, is used to build secure Web services.

To support developers in their interest of Web Services, as well as other J2EE technologies. IBM has made available a trial version of Application Developer Integration Edition as a free download. It offers support for the most important on-going developments in Web services. These include the following:

  • Embedded version of IBM WebSphere Application Server (Application Server) - Express Version 5.1, which includes Enterprise JavaBeans (EJB) development support (for experimental and non-production use only)
  • Support for SOAP 1.1, Web Services Description Language (WSDL) 1.1, EJB 2.0, and Universal, Description, Discovery, and Integration (UDDI) Version 2.0
  • Web Services Description Language for Java (WSDL4J) and Java API (UDDI4J)
  • JAX-RPC (JSR-101) support
  • Support for the JSR-109 architecture for J2EE-based Web services
  • Tools to create, describe, deploy, access, publish, and discover Web services, including an entry-level database for use by JDBC
  • Security support as defined in the WS-Security specification
  • Support for Web service implementation that follows the profiles and scenarios defined by the WS-I
  • A private UDDI registry that is UDDI Version 2 compliant
  • Support for the Basic Profile 1.0 specification of the WS-I
  • Additional documentation, tutorials, and samples

In short, the Application Developer Integration Edition provides an entry-level platform that makes it simple and straightforward to create Web service-based systems. It lets you explore this emerging world of Web services and see what all the excitement is about.

With this tutorial series, you learn how easy it is to use Web services, and how to immediately start using this technology with the Application Developer Integration Edition to help solve problems. The tutorials use a hands-on approach to learning Web services, with a focus on how to apply the core Web services concepts to provide real-world solutions. The first tutorials start with the basics, and succeeding tutorials delve deeper into the technology. This tutorial, the first in the series, provides a broad overview of Web services, instructions on installing, setting up, and running Application Developer Integration Edition, and a broad overview of the tools and capabilities that come as part of Application Developer Integration Edition.


What you need to know for this tutorial

This tutorial assumes you have a working knowledge of Java programming language and XML. Knowledge of J2EE technology and Ant are helpful but not required. All of the example applications are deployed on the embedded Application Server Express that ships with the IBM WebSphere Software Development Kit for Web Services (WSDK). Ant build scripts are provided to make building and deploying the example applications easier and more reliable. References to introductory material on Ant, Java programming language, XML, WebSphere, and J2EE technology are provided in the Resources section at the end of this tutorial.


What this tutorial covers

This tutorial covers getting started with Web services and Application Developer Integration Edition, and introduces you to the complete tutorial series. It examines the following topics, tools, and techniques:

Topics

  • Application Developer Integration Edition fundamentals
  • WSDL support in Application Developer Integration Edition
  • Web services fundamentals
  • Installing Application Developer Integration Edition
  • WSDL, SOAP, and UDDI overviews
  • Working with Application Developer Integration Edition

Tools

  • Application Developer Integration Edition Web services wizard
  • Application Developer Integration Edition Web services browsing (client/server)

Techniques

  • Starting and stopping the server
  • Getting information about the server
  • Running a sample application
  • Using Application Developer Integration Edition Web services wizard to create a Web service from a JavaBean

What the complete tutorial series covers

This series is a hands-on introduction to Web services using Application Developer Integration Edition. Each lesson balances technology descriptions with hands-on, step-by-step labs using the Application Developer Integration Edition. The tutorials also focus upon solving particular issues, rather than simply giving an academic analysis of Web services technologies or specifications. The intention is not only for you to know how to use these tools and technologies, but for you to learn when to apply each to solve real-world problems. This tutorial series has the following tutorials in it:

Introduction to Web services and Application Developer Integration Edition Version 5.1

  • XML Web services fundamentals
  • Download, install, and run Application Developer Integration Edition
  • SOAP, WSDL, and UDDI primer
  • Application Developer Integration Edition features and tools

Build a Unified Modeling Language (UML) model and generate Java code from that model using Application Developer Integration Edition Version 5.1

  • Introduction to UML modeling
  • Lab: Create a UML model
  • Lab: Create Java code from the UML model

Create a Web service from a Java class with Application Developer Integration Edition Version 5.1

  • Introduction to JAX-RPC
  • Expose a Java class as a Web service
  • Lab: Create a Web service from a simple Java class
  • Application Developer Integration Edition and JSR-109 components
  • Lab: Create a Web service from Java class with complex types
  • Describe Web services with WSDL
  • WSDL architecture (including messaging and encoding styles)
  • Map between WSDL and Java programming language
  • Dig in deeper with WSDL and WSDL4J
  • Lab: Describe Web services publishing your services with UDDI and the WSDK 5.1
  • The UDDI Publish API
  • Publish process: Interface definition, implementation, WSDL generation, service publishing
  • Set up the WSDK UDDI registry
  • Publish services to the registry
  • Lab: Publish Web services

Discover Web services with UDDI and the Application Developer Integration Edition Version 5.1

  • Dig in deeper with UDDI and UDDI4J
  • The UDDI Query API
  • The discovery process: Lookup, interface generation, and implementation
  • The WSDK, service discovery, and service invocation
  • Lab: Discover Web services

About the labs in this series

You might have heard of anti-patterns for software. Well, there are also anti-patterns for example code. There is the domain too complicated pattern where the domain presented in the example is either more complex than the technology you are trying to learn or too obscure to show what the example is talking about. The labs strive hard to avoid this by picking a simple domain that is intuitively obvious.

Then there is the steps one through four are so intuitively obvious that we won't explain it pattern. What is intuitively obvious to you might not be intuitively obvious to someone else, and when things don't work you want a step-by-step explanation. Thus, the labs endeavor never to leave out a step. If you want to skip reading a few steps and figure things out, you are free to do just that. However, the step-by-step directions are in every lab.

Lastly, there is the too simple to actually use in real life example pattern. This one is somewhat unavoidable, at least at first. To combat this anti-pattern, the labs, as the tutorial series progresses, get more and more realistic (and complex). For example, the first lab is little more than a Hello, World!, yet later labs use complex types, intermediaries, security, and much more. By the time you complete this series, you should feel comfortable tackling real-world Web service problems and know how to do the following:

  • Consume a Web service
  • Build RPC-style Web services
  • Expose JavaBeans and Enterprise Java Bean (EJB) components as Web services
  • Create JavaBean and EJB components that consume Web services
  • Describe, discover, and publish Web services

You should be able to do this all in a few easy tutorials with labs. Often, you will be able to finish a tutorial in one or two lunch breaks.

All of the tutorials focus on an online DVD rental shop. The system built in the tutorials allow users to submit what category movie they would like to rent, and based on their rental history, the Web service suggests other movies. The system starts simply, with the first implementation just sending back a hard coded string to show how to write a Web service with Application Developer Integration Edition. Later versions of the same Web service send arrays of DVD objects. Eventually you register the services in a UDDI registry and secure the system.


Tools you need for this tutorial

You need at least Java SDK 1.3.1 to run the Application Developer Integration Edition Version 5.1.

What's new in Application Developer Integration Edition Version 5.1?
Application Developer Integration Edition adds support for Business Process Execution Language for Web Services (BPEL4WS), back-end system connectivity using the J2EE Connector Architecture, business rule beans, and programming model extensions. Since Application Developer Integration Edition is based on the popular Eclipse platform, you also gain the benefits of an excellent Integrated Development Environment (IDE).

The Application Developer Integration Edition Version 5.1 includes:

  • Eclipse-based user interface
  • BPEL4WS development environment
  • J2EE development environment
  • Java development environment
  • Web services development environment
  • XML development environment
  • Relational database tools
  • Web development environment
  • Team development
  • Server tools for testing and deployment
  • Tracing, monitoring, and performance analysis tools
  • Debugger

Specifically, Application Developer Integration Edition has many tools for working with Web services, which we will be utilizing throughout the tutorials:

  • WSDL editor
  • Web Services Explorer
  • Discover: UDDI registry browsing
  • Web services wizard for creating and transforming Web services from JavaBeans, EJBs, external URLs that return data, stored procedures, and SQL queries
  • Deploy Web services into Application Server or Tomcat test environments
  • Publish Web services to a private or public UDDI registry
  • Support for UDDI Version 2, SOAP, WSDL, and Web Services Invocation Language (WSIL)
  • Apache Axis 1.0 runtime support

A brief introduction to Application Developer Integration Edition (Eclipse)
Eclipse is an open-source IDE that you can download from the main Eclipse Web site (see Resources). Eclipse is an extensible platform, with many plug-ins available for Java and Web development, among other things. It is meant to be a platform that supports just enough functionality that plug-in developers only have to worry about what their functionality should do and no more. Of course, Eclipse is a full-featured IDE, through its many plug-ins, that make it an excellent choice for Java (and other languages, such as C++) developers.

The Eclipse development model consists of four main concepts:

  • Workbench
  • Perspectives
  • Views
  • Editors

When Eclipse starts up, you are faced with the main GUI component of the system, which constitutes the Workbench. Everything you do happens on the Workbench. Think of the Workbench as a desk where you stack a collection of perspectives. The main menu and toolbar available on the Workbench display potential functionality based on the current tasks in which you are involved. An Eclipse perspective lives on the Workbench and represents a named collection of tasks. A perspective is a logical grouping of editors and views of a project and lets you navigate your project or the files that make up your project. Two examples of Eclipse perspectives are the Java perspective and the Debug perspective. A view could be an outline of an XML file or a list of compile errors on the various files in your project. An editor can be specific to certain kinds of files and gives you editing capabilities specific to the file type, or it could be a general text editor that lets you open any kind of text file. It doesn't do much more than let you cut and paste and save.

The Application Developer Integration Edition adds a new Eclipse perspective called the Server perspective. The Server perspective also adds two new views: the Server Configuration view and the Server view (see Figure 1 one below).

Figure 1. Server perspective

The new server perspective from WSAD IE

Application Developer Integration Edition Web Services wizards
Three wizards are available to make developing Web services simpler. The wizards assist you in creating Web services and clients.

All Web services developed using the Application Developer Integration Edition must be developed within a dynamic Web project. The dynamic Web project wizard prompts you for a Web project name, an .ear file name, and Web context root for the deployed Web application if you decide to manually configure the project.

The Web Services wizard guides you through the selection of supported Web service implementations. Listed below are four different supported Web service types:

  1. JavaBean Web service -- Takes an existing JavaBean component and creates the WSDL and proxies needed to wrap the JavaBean component behind a Web service facade.
  2. Skeleton JavaBean Web service -- This creates a Web service using a wizard-generated JavaBean stub based on the operations defined in a WSDL definition.
  3. EJB Web service -- Takes an existing EJB component and creates the WSDL and proxies needed to wrap the EJB component behind a Web service facade.
  4. Skeleton EJB Web service -- This creates a Web service using a wizard-generated EJB stub based on the operations defined in a WSDL definition.

The Web Service Client wizard walks you through the creation of a client-side object that wraps the calls to the various library objects that take care of making the actual Web services call for you. In addition to generating the client, it also generates a test of the client.

This tutorial now goes into some of the technologies that Web services are built on. This includes WSDL, SOAP, and UDDI. After that, you can use the WSDK to run a Web service that comes installed in the server. If you don't want to know about WSDL, SOAP, or UDDI now, you can skip those sections and come back to them later.


About the authors

Rick Hightower works at Arc-Mind Inc., where he focuses on Struts and J2EE mentoring and consulting. Rick is a software developer at heart with 14 years software development experience (seven of them on the Java platform). Rick has contributed to several Java technology books and written articles for the Java Developer's Journal and IBM developerWorks. Rick recently completed a book on Struts at SourceBeat. He also has written many well-received tutorials on EJB 2.0 CMP CMR, XDoclet, Apache Axis, ETTK, WSDK, Struts Tiles, and more for IBM developerWorks.

Warner Onstine works at Arc-Mind Inc. He is a developer with more than 8 years of experience in the industry, the majority of that spent developing Web applications. Warner is also a co-author of the book Professional Java Tools for Extreme Programming, with chapters focusing on Maven, Swing unit testing, and code coverage using jcoverage.

1 of 10 | Next

Comments



Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services
ArticleID=31686
TutorialTitle=Build SOA with Web services using WebSphere Studio, Part 1: Introduction to SOA and Web services
publish-date=11112004
author1-email=webserv@us.ibm.com
author1-email-cc=
author2-email=webserv@us.ibm.com
author2-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.