|
Live in fragments no longer. Only connect. Edward
Morgan Forster
We wove a web in childhood, A web of sunny air.
Charlotte Brontë
Welcome to Web services and the world of interoperable, distributed
programming with XML, SOAP, WSDL, UDDI and the Java™ platform! This book is
one of the first in the new Deitel™ Developer Series, which presents
leading-edge computing technologies to software developers and IT
professionals.
Web-services technology has gained much attention from the
information-technology press and from companies that employ Internet-based
applications to conduct business. The term Web services refers to a specific
class of applications that use platform and programming-language-neutral data
representations and communications protocols to achieve interoperability. By
using Web services, companies can ensure that their applications will
communicate with those of their business partners and customers.
The primary technologies that enable Web services include the eXtensible
Markup Language (XML), the Simple Object Access Protocol (SOAP), the HyperText
Transfer Protocol (HTTP), the Web Services Description Language (WSDL), and
Universal Description, Discovery and Integration (UDDI) registries.
The World Wide Web Consortium (W3C) developed XML in response to the Web
developer community's growing need for a platform-independent language capable
of describing data. Web developers wanted a simple language like the HyperText
Markup Language (HTML) but with the added flexibility that would allow them to
create customized language elements to describe data. XML provides this
capability by defining a markup-language syntax with which developers can
create element vocabularies. Developers then can use these elements to mark up
individual pieces of data, forming XML documents. Since XML documents are text
based and use a standard character encoding, they can be processed on any
platform. The portability of XML and its rapid adoption throughout the
information-technology industry made it an obvious choice for enabling
cross-platform data communication in Web services.
Though the W3C now oversees the development of SOAP, a number of industry
leaders, including IBM Microsoft and DevelopMentor, originally developed SOAP
as a general means for building distributed computing systems. SOAP is an XML
vocabulary of elements that enables programs on separate computers to interact
across a network, such as the Internet or a company intranet. SOAP messages
are XML documents whose contents describe a particular action to invoke on a
remote application. For example, a client could send a SOAP message to a
credit-card-verification Web service. After performing the verification, the
Web service could respond with a SOAP message that contains credit-card
authorization information. Any application that supports XML can process SOAP
messages.
SOAP defines the structure of these messages, not how the messages are
transferred between computers. SOAP relies on an underlying transport protocol
such as HTTP—the fundamental protocol of the Web—to transfer messages across
the network. HTTP is a simple, text-based protocol already familiar to most
Web developers. Also, most networks allow HTTP communications to pass through
their firewalls uninhibited. This ensures that communication between
Web-services based applications will not be hindered by firewall security
restrictions. To ensure that Web-services-based applications are secure, the
W3C and other organizations are developing a number of technologies, including
XML Encryption, XML Signature, XML Key Management Specification (XKMS),
Security Assertions Markup Language (SAML) and eXtensible Access Control
Markup Language (XACML), each of which we discuss in Chapter 13, Web Services
Security.
WSDL is an XML vocabulary that enables Web-services developers to describe
their Web services in a standardized format. WSDL documents provide
information for programs to determine how to use the functionalities that Web
services provide. By processing a WSDL document, an application can determine
exactly what data is required for requests to a Web service and what data the
Web service will return.
With the popularity of Web services comes the need for organizing published
services so that developers and applications can locate appropriate Web
services and obtain their WSDL descriptions. UDDI registries follow the model
of the telephone book to organize Web services. Web-services providers can
publish their Web services—with WSDL descriptions—in public UDDI registries.
Developers and applications then can query these registries to locate desired
Web services, along with their complete WSDL descriptions and information
about the companies that provide the Web services.
While developers can build Web services in any programming language and on
any platform that supports these technologies, Sun Microsystems' Java 2
Platform and Microsoft's .NET Framework stand out as the primary, most
complete environments for building, deploying and accessing Web services. The
Java 2 Platform has an established community of developers and industry
support for enhancing the platform with new technologies through the Java
Community Process (JCP). The .NET Framework has pervasive Web services support
and enables developers to build applications in many programming languages.
Web services were designed with interoperability in mind, so
Web-services-based applications built on either of these platforms, and many
others can work together.
In Java Web Services for Experienced Programmers, we introduce the
fundamental technologies that enable Web services, and concentrate on the APIs
available for building Web services on the Java platform. Using the Java Web
Services Developer Pack from Sun Microsystems, and Web-services platforms from
vendors such as the Apache Foundation, Systinet, The Mind Electric, Cape Clear
and others, we demonstrate the interoperability that SOAP and WSDL provide.
The Java Web Services Developer Pack (JWSDP) was released as a product by Sun
Microsystems three weeks before this book went to the presses. This fortuitous
event enabled us to ensure that the discussions and code examples throughout
the book are fully compliant with the JWSDP.
Who Should Read This Book
Deitel & Associates, Inc. has several Java and Web-services
publications, intended for various audiences. We provide information on
www.deitel.com,
here, inside this book’s back cover and in the Deitel™ Buzz Online
e-mail newsletter (www.deitel.com/newsletter/subscribe.html) to help you determine
which publication is best for you.
Our Java book, Java How to Program, 4/e is part of
our How to Program Series for college students and professionals. It
provides a comprehensive treatment of Java and includes learning aids and
extensive ancillary support. Java How to Program assumes that the
reader has little or no programming experience, but it gets up to speed
quickly and offers a solid treatment of Java programming through the
intermediate level. Early chapters focus on fundamental programming
principles. The book builds on these to create increasingly complex and
sophisticated programs that demonstrate how to use Java technologies to create
graphical user interfaces, networking applications, multithreaded
applications, Web-based applications, graphics, multimedia and more. We
encourage professors and professionals to consider the Java Complete
Training Course, 4/e. This package includes Java How to Program, 4/e
as well as the Java Multimedia Cyber Classroom, 4/e, an interactive
multimedia Windows®-based CD-ROM that provides extensive e-Learning features.
The Java Complete Training Course, 4/e and Java Multimedia Cyber
Classroom, 4/ e are discussed in detail later in this Preface.
Our book, Advanced Java 2 Platform How to Program,
is intended for advanced college courses and for professional developers. With
Java How to Program, 4/e as a launching point, Advanced Java 2
Platform How to Program provides in-depth treatments of several groupings
of advanced topics—advanced GUI and graphics, distributed systems,
introductory Web services, Enterprise Java and XML technologies. Specific
technologies include Swing, the Model-View-Controller architecture, graphics
with Java 2D™ and Java 3D™, JavaBeans, Security, JDBC, servlets, JavaServer
Pages™ (JSP), Java 2 Micro Edition™ (J2ME), Enterprise JavaBeans™ (EJB), Java
Message Service (JMS), Jini™, Jiro™, JavaSpaces™, Java Management Extensions (JMX),
CORBA®, Peer-to-Peer, JXTA and Apache SOAP.
This book, Java Web Services for Experienced Programmers,
is part of the new Deitel™ Developer Series, intended for professional
software developers—from novices through experienced programmers. Java Web
Services for Experienced Programmers is part of the For Experienced
Programmers subseries, designed for the experienced programmer who wants a
deep treatment of a new technology. Java Web Services for Experienced
Programmers begins with an overview of XML, which provides a foundation
for Web-services technologies. The book continues by delving deeply into more
sophisticated topics, such as Simple Object Access Protocol (SOAP), Web
Services Description Language (WSDL), the Java API for XML-based RPC (JAX-RPC),
the Java API for XML Messaging (JAXM) and more. Unlike the How to Program
Series books, the Deitel™ Developer Series books do not include the
extensive pedagogic features, such as chapter exercises and ancillary support
materials (for college professors) required for academic courses.
Web Services A Technical Introduction is the first
publication in our A Technical Introduction subseries, which offers
broad overviews of new technologies. We designed this publication to be a
"literacy" book that explains Web services, explores the benefits they provide
to businesses and discusses key concepts related to the technology. We believe
that the information we present will be useful both to programmers, who must
learn to incorporate Web services in their applications and networks, and to
IT managers, who must decide when and how to adopt this important new
technology. For programmers, this book does include programming-intensive
appendices on building Web services in Java and in Visual Basic®
.NET (with ASP .NET).
Each of our Java books presents many complete, working Java
programs and depicts their inputs and outputs in actual screen shots of
running programs. This is our signature Live-Code™ approach. Each
book’s source code is available free for download at
www.deitel.com.
For a detailed listing of Deitel™ products and services,
please see the "advertorial" pages at the back of this book and visit
www.deitel.com.
Readers may also want to register for our new Deitel™ Buzz Online
e-mail newsletter (www.deitel.com/newsletter/subscribe.html),
which provides information about our publications, company announcements,
links to informative technical articles, programming tips, teaching tips,
challenges, anecdotes and more.
As you proceed, if you would like to communicate with us,
please send an e-mail to
deitel@deitel.com—we
always respond promptly. Please check our Web sites,
www.deitel.com,
www.prenhall.com/deitel
and
www.InformIT.com/deitel
for frequent updates, errata, FAQs, etc. When sending an e-mail, please
include the book’s title and edition number. We sincerely hope that you enjoy
learning Web services technologies with our publications.
Features of Java Web Services: For Experienced
Programmers
This edition contains many features, including:
Syntax Highlighting. This book uses five-way syntax
highlighting to emphasize XML and Java programming elements in a manner
similar to that of many development tools. Our syntax-highlighting
conventions are as follows:
comments
keywords
literal values
errors and JSP directives
text, class, method and variable
names
"Code Washing." This is our term for the
process we use to format the book’s programs so that they have a carefully
commented, open layout. The code is grouped into small, well-documented
pieces. This greatly improves code readability—an especially important
goal for us, considering that this book contains approximately 13,321
lines of code in 103 complete Live-Code™ programs.
XML. Use of Extensible Markup Language (XML) is
exploding in the software-development industry, in the e-business and
e-commerce communities, and is foundational to Web services. Because XML
is a platform-independent technology for describing data and for creating
markup languages, XML’s data portability integrates well with Java-based
portable applications and services. Chapters 2–5 introduce XML, Document
Type Definitions, the Document Object Model (DOM™) and Extensible
Stylesheet Language (XSL and XSLT).
Simple Object Access Protocol (SOAP). The
Simple Object Access Protocol is the lingua franca that enables
Web-services interoperability. SOAP is a simple markup language for
describing messages between applications. Built using XML, SOAP provides
the true platform and programming-language independence that modern
applications require for integrating business processes and transactions
across the Web. We discuss SOAP and Web-services platforms for deploying
SOAP-based Java Web services in Chapter 6.
Web Services Description Language (WSDL). The
Web Services Description Language provides developers with an XML-based
language for describing Web services and exposing those Web services for
public access. Chapter 7, Web Services Description Language discusses WSDL.
XML Registries and Universal Description, Discovery and
Integration (UDDI). Businesses and consumers need to be able to
locate organizations that provide Web services. XML registries, including
those based on Universal Description, Discovery and Integration (UDDI),
provide common repositories for business information and WSDL descriptions
of Web services. Chapter 8, UDDI, Discovery and Web Services Registries
introduces the fundamentals of XML registries. Chapter 10, Java API for
XML Registries, presents the Java technology that enables programmatic
access to UDDI and other XML registries.
Java API for XML-based Remote Procedure Calls (JAX-RPC).
SOAP is an important protocol for Web services, but not all developers
need to work with SOAP messages directly. JAX-RPC provides developers with
a powerful API for building RPC-oriented Web services and Web-services
clients without requiring developers to manipulate SOAP messages. This
enables developers to concentrate on the Web services and clients, instead
of on the underlying messaging protocol. Based in part on Java’s Remote
Method Invocation (RMI) API, JAX-RPC enables developers to define remote
interfaces for their Web services, and provides tools for generating WSDL
documents, stubs and ties from those interfaces. JAX-RPC also enables
client developers to generate client-side classes for interacting with a
Web service based on that service’s WSDL document. Chapter 9, Java API for
XML-Based RPC discusses the details of using JAX-RPC for building Web
services and for building clients, including those that use the Dynamic
Invocation Interface (DII), dynamic proxies and static stubs. We also
demonstrate a JAX-RPC client that interacts with a Web service implemented
in Visual Basic® .NET.
Java API for XML Messaging (JAXM) and SOAP with
Attachments API for Java (SAAJ). SAAJ provides a robust API for
developers who require access to the detailed structures of SOAP messages.
Using JAXM, developers can create Web services based on various profiles,
which enable the use of messaging frameworks such as ebXML. JAXM also
enables developers to build asynchronous Web services and clients through
the use of message providers. Chapter 11, JAXM and SAAJ presents these
foundational Java-Web-services technologies.
Java API for XML Registries (JAXR). XML
registries based on UDDI, ebXML and other technologies enable businesses
to publish and discover Web services. JAXR provides a Java API with which
developers can manipulate these registries. Through JAXR, developers can
build applications for searching XML registries, for publishing new Web
services and for manipulating existing registry entries. Chapter 10, Java
API for XML Registries discusses JAXR for querying, publishing and
manipulating XML registry entries.
Computer, Internet and Web-Services Security.
The ease with which businesses can integrate transactions and processes
across the Internet by using Web-services technologies raises numerous
security concerns. The World Wide Web Consortium (W3C) and other industry
leaders are developing security technologies for Web services, such as XML
Encryption, Security Assertions Markup Language (SAML), and others.
Chapter 12, Computer and Internet Security and Chapter 13, Web Services
Security discuss general security concerns and specific technologies for
securing Web services.
Wireless Web Services. By some estimates, about
a billion people worldwide are using mobile devices, such as wireless
phones and PDAs, and this number is increasing rapidly. Enabling access to
Web services from mobile devices is crucial to these technologies. The
Java 2 Micro Edition provides a Java platform for building mobile
applications, and various third parties have developed APIs and
implementations for accessing Web services from J2ME-enabled devices.
Chapter 14, Wireless Web Services and J2ME discusses the integration of
mobile devices into the Web-services infrastructure and presents J2ME
MIDlets that access Web services.
Pedagogic Approach
Java Web Services for Experienced Programmers contains
a rich collection of examples. The book concentrates on the principles of good
software engineering and stresses program clarity. We are educators who teach
edge-of-the-practice topics in industry classrooms worldwide. We avoid arcane
terminology and syntax specifications in favor of teaching by example.
We use fonts to distinguish between features such as menu
names and menu items and other elements that appear in graphical user
interfaces (GUIs). Our convention is to emphasize GUI features in a sans-serif
bold Helvetica font (e.g.,
File
menu) and to emphasize program text in a serif bold Courier font (e.g.,
boolean
x
=
true;).
Live-Code™ Teaching Approach
Java Web Services for Experienced Programmers includes
103 Live-Code™ examples. This presentation style exemplifies the way we teach
and write about programming and is the focus of our multimedia Cyber
Classrooms and Web-based training courses as well. Each new concept is
presented in the context of a complete, working example that is followed by
one or more windows showing the program’s input/output dialog. Reading the
examples in the text is much like entering and running them on a computer.
Readers have the option of downloading all of the book’s code examples from
www.deitel.com,
under the Downloads/Resources
link. Other links provide errata and answers to frequently asked questions.
World Wide Web Access
All of the source code for the program examples in Java Web
Services: For Experienced Programmers (and our other publications) is
available on the Internet as downloads from the following Web sites:
www.deitel.com
www.prenhall.com/deitel
Registration is quick and easy and these downloads are
free. We suggest downloading all the examples, then running each program as
you read the corresponding portion of the book. Make changes to the examples
and immediately see the effects of those changes—this is a great way to
improve your programming skills. Setup instructions for required software can
be found in Chapter 1, Introduction, and at our Web sites, along with the
examples. [Note: This is copyrighted material. Feel free to use it as
you study, but you may not republish any portion of it in any form without
explicit permission from Prentice Hall and the authors.]
Objectives
Each chapter begins with objectives that inform readers of
what to expect and give them an opportunity, after reading the chapter, to
determine whether they have met the intended goals.
Quotations
The chapter objectives are followed by sets of quotations.
Some are humorous, some are philosophical and some offer interesting insights.
We have found that readers enjoy relating the quotations to the chapter
material. Many of the quotations are worth a "second look" after you
read each chapter.
Outline
The chapter outline enables readers to approach the
material in top-down fashion. Along with the chapter objectives, the outline
helps users anticipate topics and set a comfortable and effective learning
pace.
13,321 Lines of Code in 103 Example Programs (with Program
Outputs)
We present Java Web services features in the context of
complete, working Web services and client programs. All examples are available
as downloads from our Web site,
www.deitel.com.
Summary
Each chapter ends with a summary that helps readers review
and reinforce key concepts.
Approximately 1,818 Index Entries (with approximately 2,682
Page References)
We have included an extensive Index. This resource enables
readers to search for any term or concept by keyword. The Index is especially
useful to practicing programmers who use the book as a reference.
"Double Indexing" of All Live-Code™ Examples
Java Web Services for Experienced Programmers has 103
Live-Code™ examples, which we have "double indexed." For every program in the
book, we took the figure caption, and indexed it both alphabetically and as a
subindex item under "Examples." This makes it easier to find examples using
particular features.
Java Multimedia Cyber Classroom and The Complete Java
Training Course
For readers who want to learn Java or reinforce their Java
skills before reading this book, we have prepared an interactive,
CD-ROM-based, software version of Java How to Program, 4/e called the Java
Multimedia Cyber Classroom, 4/e. This resource, ideal for corporate
training and college courses, is loaded with interactive e-learning features.
The Cyber Classroom is packaged with the Java How to Program, 4/e
book at a discount in the boxed product called The Complete Java Training
Course, 4/e. If you already have the book and would like to purchase the
Java Multimedia Cyber Classroom, 4/e separately, please visit
www.InformIT.com/cyberclassrooms. The ISBN number
for the Java Multimedia Cyber Classroom, 4/e is 0-13-064935-X. Many
Deitel™ Cyber Classrooms are available in CD-ROM and Web-based training
formats.
The CD-ROM provides an introduction in which the authors
overview the Cyber Classroom’s features. The textbook’s 197 Live-Code™
example Java programs truly "come alive" in the Cyber Classroom. If you
are viewing a program and want to execute it, you simply click the
lightning-bolt icon, and the program will run. You immediately will see—and
hear, when working with audio-based multimedia programs—the program’s output.
Click the audio icon, and one of the authors will discuss the program and
"walk you through" the code.
The Cyber Classroom also provides navigational aids,
including extensive hyperlinking. The Cyber Classroom is browser based,
so it remembers sections that you have visited recently and allows you to move
forward or backward among those sections. The thousands of index entries are
hyperlinked to their text occurrences. Furthermore, when you key in a term
using the "find" feature, the Cyber Classroom will locate occurrences
of that term throughout the text. The Table of Contents entries are "hot," so
clicking a chapter name takes you immediately to that chapter.
Readers like the fact that solutions to approximately half
the exercises in Java How to Program, 4/e are included with the
Cyber Classroom. Studying and running these extra programs is a great way
for readers to enhance their learning experience.
Professionals and student users of our Cyber Classrooms
tell us that they like the interactivity and that the Cyber Classroom
is an effective reference due to its extensive hyperlinking and other
navigational features. We received an e-mail from a reader who said he lives
"in the boonies" and cannot attend a live course at a university, so the
Cyber Classroom provided an ideal solution to his educational needs.
Professors tell us that their students enjoy using the
Cyber Classroom, spend more time on the courses and master more of the
material than in textbook-only courses. For a complete list of the available
and forthcoming Cyber Classrooms and Complete Training Courses,
see the Deitel™ Series page at the beginning of this book, the product
listing and ordering information at the end of this book or visit
www.deitel.com,
www.prenhall.com/deitel
or
www.InformIT.com/deitel.
Deitel e-Learning Initiatives
e-Books and Support for Wireless Devices
Wireless devices will play an enormous role in the future
of the Internet. Given recent bandwidth enhancements and the emergence of 3G
wireless technologies, it is projected that, within two years, more people
will access the Internet through wireless devices than through desktop
computers. Deitel & Associates is committed to wireless accessibility and has
published Wireless Internet & Mobile Business How to Program. To fulfill the
needs of a wide range of customers, we are developing our content in
traditional print formats and in new electronic formats, such as e-books, so
that readers can access content virtually anytime, anywhere. Subscribe to the
Deitel™ Buzz Online newsletter (www.deitel.com/newsletter/subscribe.html)
for periodic updates on all Deitel technology initiatives.
e-Matter
Deitel & Associates is partnering with Prentice Hall’s
parent company, Pearson PLC, and its information technology Web site,
InformIT.com, to launch
the Deitel e-Matter series at
www.InformIT.com/deitel in Spring 2003. The Deitel
e-Matter series will provide professionals with an additional source of
information on specific programming topics at modest prices. e-Matter consists
of stand-alone sections taken from published texts, forthcoming texts or
pieces written during the Deitel research-and-development process. Developing
e-Matter based on pre-publication manuscripts allows us to offer significant
amounts of the material well before our books are published.
Learning Management Systems
We are working with many corporate e-Learning providers to
make our electronic products available in popular, AICC-compliant, SCORM-compliant
learning management systems.
Course Management Systems: WebCT, Blackboard, CourseCompass
and Premium CourseCompass
We are working with Prentice Hall to integrate our How to
Program Series courseware into four series of Course Management Systems-based
products: WebCT, Blackboard™, CourseCompass and Premium CourseCompass. These
enable college instructors to create, manage and use sophisticated Web-based
educational programs. Course Management Systems feature course customization
(such as posting contact information, policies, syllabi, announcements,
assignments, grades, performance evaluations and progress tracking), class and
student-management tools, a grade book, reporting tools, communication tools
(such as chat rooms), a whiteboard, document sharing, bulletin boards and
more. Instructors can use these products to communicate with their students,
create online quizzes and exams from questions directly linked to the text and
efficiently grade and track test results. For more information about these
upcoming products, visit
www.prenhall.com/cms. For demonstrations of existing
WebCT, Blackboard and CourseCompass course materials, visit
cms.prenhall.com/webct,
cms.prenhall.com/blackboard
and
cms.prenhall.com/coursecompass,
respectively.
Deitel and InformIT Newsletters
Deitel Column in the InformIT Newsletters
Deitel & Associates contributes articles to the free
InformIT weekly e-mail newsletter, subscribed to by more than 750,000 IT
professionals worldwide. To subscribe, visit
www.InformIT.com
and click the MyInformIT
tab.
Deitel™ Buzz Online Newsletter
Our own free newsletter, the Deitel™ Buzz Online, includes
commentary on industry trends and developments, links to articles and
resources from our published books and upcoming publications, product-release
schedules, challenges, anecdotes and more. To subscribe, visit
www.deitel.com/newsletter/subscribe.html.
The Deitel™ Developer Series
Deitel & Associates, Inc., is making a major commitment to
Web services through the launch of our Deitel™ Developer Series.
Java Web Services for Experienced Programmers and Web Services A
Technical Introduction are the first Web-services books in this new
series. These will be followed by additional titles on Web-services
technologies.
The Deitel™ Developer Series is divided into three
subseries. The A Technical Introduction subseries provides IT managers
and developers with detailed overviews of emerging technologies. The A
Programmer’s Introduction subseries is designed to teach the fundamentals
of new languages and software technologies to developers from the ground up.
These books discuss programming fundamentals, followed by brief introductions
to more sophisticated topics. Finally, the For Experienced Programmers
subseries is designed for seasoned developers seeking to learn new programming
languages and technologies. The books in this subseries move quickly to
in-depth coverage of the programming languages and software technologies being
covered.
Acknowledgments
One of the great pleasures of writing a book is
acknowledging the efforts of many people whose names may not appear on the
cover, but whose hard work, cooperation, friendship and understanding were
crucial to the production of the book.
Many other people at Deitel & Associates, Inc., devoted
long hours to this project. Below is a list of our full-time employees who
contributed to this publication:
Tem R. Nieto, a graduate of the Massachusetts Institute
of Technology, is Director of Product Development at Deitel & Associates,
Inc. He is co-author of C#: A Programmer’s Introduction, C# for
Experienced Programmers, Visual Basic .NET for Experienced
Programmers and numerous texts in the How to Program series.
Tem co-authored Chapters 2–5 on XML technologies.
Lauren Trees, a graduate of Brown University with a
concentration in Literatures in English contributed to the Preface,
Chapter 1, Introduction, Chapter 8, UDDI, Discovery and Web Services
Registries, Chapter 12, Computer and Internet Security and Chapter 13, Web
Services Security.
Rashmi Jayaprakash, a graduate of Boston University
with a degree in Computer Science, co-authored Chapter 8, UDDI, Discovery
and Web Services Registries.
Laura Treibick, a graduate of the University of
Colorado at Boulder with a degree in Photography and Multimedia, is
Director of Multimedia at Deitel & Associates, Inc. She created and
enhanced many of the graphics throughout the text.
Barbara Deitel applied copy edits to the manuscript and
compiled the quotations for all the chapters.
Abbey Deitel, a graduate of Carnegie Mellon
University’s Industrial Management Program and President of Deitel &
Associates, Inc., co-authored Chapter 12, Computer and Internet Security,
and Chapter 13, Web Services Security.
We would also like to thank the participants in the Deitel
& Associates, Inc., College Internship Program who contributed to this
publication.
A. James O’Leary, a senior in Computer Science and
Psychology at Rensselaer Polytechnic Institute, co-authored Chapter 11 and
Chapter 12.
Christina Carney, a senior in Psychology and Business
at Framingham State College, researched the Internet and Web Resources
URLs.
We are fortunate to have been able to work with the
talented and dedicated team of publishing professionals at Prentice Hall. We
especially appreciate the extraordinary efforts of our editor, Karen McLean of
PH/PTR and her assistant, Michael Ruel, who manages the extraordinary review
processes for our Deitel™ Developer Series publications. We would also
like to thank Mark L. Taub, Editor-in-Chief of computer publications at PH/
PTR, for conceptualizing the Deitel™ Developer Series and providing the
necessary resources and encouragement to help us generate the many books in
this series. A special note of appreciation goes to Marcia Horton,
Editor-in-Chief of Engineering and Computer Science at Prentice Hall. Marcia
has been our mentor in publishing and our friend for 18 years at Prentice
Hall. She is responsible for all aspects of Deitel publications at all Pearson
divisions including Prentice Hall, PH/PTR and Pearson International.
Laura Treibick, the Director of Multimedia at Deitel &
Associates, Inc., and Dr. Harvey M. Deitel designed the cover. Tamara Newnam (smart_art@earthlink.net)
carried the cover through to completion, and inserted five of our Deitel bug
characters in the cover art (can you find them?).
We wish to acknowledge the efforts of our reviewers, who,
adhering to a tight time schedule, scrutinized the text and the programs,
providing countless suggestions for improving the accuracy and completeness of
the presentation. We sincerely appreciate the time these people took from
their busy professional schedules to help us ensure the quality, accuracy and
timeliness of this book.
Dibyendu Baksi (Sun Microsystems)
Arun Gupta (Sun Microsystems)
Christian Hessler (Sun Microsystems, Inc.)
Doug Kohlert (Sun Microsystems)
Debra Scott, Ph.D. (Sun Microsystems)
Saleem Arif (Data Concepts)
Kevin Curley (Cape Clear)
Christopher Fry (Clear Methods)
Kyle Gabhart (Objective Solutions, Inc.)
Ari Goldberg (Alphawolf)
Adam C. Gross (Grand Central Communications, Inc.)
Mason Ham (Zambit Technologies)
Michael Hudson (Blueprint Technologies, Inc.)
Anne Thomas Manes (Systinet)
George McKevitt (Comcast)
Paul Monday (J. D. Edwards & Co.)
JP Morganthal (iKimbo)
Clifton Nock (J. D. Edwards & Co.)
Neal Patel (Microsoft Corporation)
Mike Plusch (Clear Methods)
Teri Radichel (Radical Software)
Rani Sandoy-Brown (AT&T Wireless)
Chris Trevino (AT&T Wireless)
Sazi Temel (BEA Systems)
Priscilla Walmsley (Consultant)
David Weller (Valtech Technologies, Inc.)
Justin Whitney (Writer and Web Services Game Designer)
Ilan Zolar (Pacific Bell)
We would sincerely appreciate your comments, criticisms,
corrections and suggestions for improving the book. Please address all
correspondence to:
deitel@deitel.com
We will respond promptly.
Well, that’s it for now. Welcome to the exciting world of
Web services. Good luck!
Dr. Harvey M. Deitel
Paul J. Deitel
Jonathan Gadzik
Kyle Lomelí
Sean E. Santry
Su Zhang
About the Authors
Dr. Harvey M. Deitel, Chairman
and Chief Strategy Officer of Deitel & Associates, Inc., has 41 years
experience in the computing field, including extensive industry and academic
experience. Dr. Deitel earned B.S. and M.S. degrees from the Massachusetts
Institute of Technology and a Ph.D. from Boston University. He worked on the
pioneering virtual-memory operating-systems projects at IBM and MIT that
developed techniques now widely implemented in systems such as UNIX®, Linux™
and Windows XP. He has 20 years of college teaching experience, including
earning tenure and serving as the Chairman of the Computer Science Department
at Boston College before founding Deitel & Associates, Inc., with his son,
Paul J. Deitel. He is the author or co-author of several dozen books and
multimedia packages and is writing many more. With translations published in
Japanese, Russian, Spanish, Traditional Chinese, Simplified Chinese, Korean,
French, Polish, Italian, Portuguese and Greek, Dr. Deitel’s texts have earned
international recognition. Dr. Deitel has delivered professional seminars to
major corporations, and to government organizations and the military.
Paul J. Deitel, CEO and Chief Technical Officer of
Deitel & Associates, Inc., is a graduate of the Massachusetts Institute of
Technology’s Sloan School of Management, where he studied Information
Technology. Through Deitel & Associates, Inc., he has delivered Java, C, C++
and Internet and World Wide Web programming courses to industry clients
including Compaq, Hewlett-Packard, Sun Microsystems, White Sands Missile
Range, Rogue Wave Software, Boeing, Dell, Stratus, Fidelity, Cambridge
Technology Partners, Open Environment Corporation, One Wave, Hyperion
Software, Lucent Technologies, Adra Systems, Entergy, CableData Systems, NASA
at the Kennedy Space Center, the National Severe Storms Laboratory, IBM and
many other organizations. He has lectured on C++ and Java for the Boston
Chapter of the Association for Computing Machinery and has taught
satellite-based Java courses through a cooperative venture of Deitel &
Associates, Inc., Prentice Hall and the Technology Education Network. He and
his father, Dr. Harvey M. Deitel, are the world’s best-selling
programming-language textbook authors.
Jonathan Gadzik is a graduate of the Columbia
University School of Engineering and Applied Science, where he received a
Bachelor of Science in Computer Science. He is a Sun-Certified Programmer and
Developer for the Java 2 Platform, and is a Sun-Certified Web-Component
Developer for the J2EE Platform. He has contributed to several Deitel
publications, including Java How to Program, 4/e, Advanced Java 2
Platform How to Program, Visual Basic .NET How to Program and C#
How to Program.
Kyle Lomelí is a graduate of Oberlin College where he
majored in Computer Science and minored in East Asian Studies. At Oberlin
College he researched, designed and developed agent-based distributed systems.
He is a Sun Certified Developer for the Java 2 Platform, and has contributed
to several Deitel publications, including Advanced Java 2 Platform How to
Program, Visual Basic .NET How to Program and C# How to Program.
Sean E. Santry, Director of Software Development with
Deitel & Associates, Inc., and co-author of Advanced Java 2 Platform How to
Program, is a graduate of Boston College where he studied Computer Science
and Philosophy. At Boston College he performed original research on the
application of metaphysical systems to object-oriented software design.
Through Deitel & Associates, Inc. he has delivered advanced-level industry
courses in Java, C++, object-oriented programming, Enterprise JavaBeans, Web
services, design patterns and other technologies for clients including Sun
Microsystems, Computer Associates, EMC, Dell, Compaq, HP, Boeing,
Washingtonpost.Newsweek Interactive and others. He has contributed to numerous
Deitel publications, including various editions of Java How to Program;
XML How to Program; C++ How to Program; C# How to Program;
C How to Program; e-Business and e-Commerce How to Program and
e-Business and e-Commerce for Managers. Before joining Deitel &
Associates, he developed e-business applications with BiT Group, a Boston-area
consulting firm.
Su Zhang holds B.Sc and a M.Sc degrees in Computer
Science from McGill University. Her graduate research included modeling and
simulation, real-time systems and Java technology. She worked on Java and
Web-technologies-related projects prior to joining Deitel. She has contributed
to other Deitel publications, including Advanced Java 2 Platform How to
Program and Python How to Program.
About Deitel & Associates, Inc.
Deitel & Associates is an internationally recognized
corporate instructor-led training and content-creation organization
specializing in Internet/World Wide Web software technology,
e-business/e-commerce software technology, object technology and
programming-languages education. The company provides courses in Internet and
World Wide Web programming, wireless Internet programming, Web services (in
both Java and .NET languages), object technology, and major programming
languages and platforms, such as Visual Basic® .NET, C#, Visual
C++ .NET, Java™, Advanced Java™, C, C++, XML, Perl, Python, ASP .NET, ADO .NET
and more. Deitel & Associates, Inc., was founded by Dr. Harvey M. Deitel and
Paul J. Deitel, the world’s leading programming-language textbook authors. The
company’s clients include many of the world’s largest computer companies,
government agencies, branches of the military and business organizations.
Through its 27-year publishing partnership with Prentice Hall, Deitel &
Associates, Inc., publishes leading-edge programming textbooks, professional
books, interactive CD-ROM-based multimedia Cyber Classrooms,
Complete Training Courses, e-books, e-matter, Web-based training courses
and course-management-systems e-content. Deitel & Associates and the authors
can be reached via e-mail at:
deitel@deitel.com
To learn more about Deitel & Associates, its publications
and its worldwide corporate on-site curriculum, see the last few pages of this
book or visit:
www.deitel.com
Individuals wishing to purchase Deitel books, Cyber
Classrooms, Complete Training Courses and Web-based training
courses can do so through bookstores, online booksellers and:
www.deitel.com
www.prenhall.com/deitel
www.InformIT.com/deitel
www.InformIT.com/cyberclassrooms
Bulk orders by corporations and academic institutions
should be placed directly with Prentice Hall. See the last few pages of this
book for worldwide ordering details. To follow the Deitel publishing program,
please register for the Deitel™ Buzz Online newsletter at
www.deitel.com/newsletter/subscribe.html
The World Wide Web Consortium (W3C)
Deitel & Associates, Inc., is a member of the World Wide
Web Consortium (W3C). The W3C was founded in 1994 "to develop common
protocols for the evolution of the World Wide Web." As a W3C member, Deitel &
Associates, Inc., holds a seat on the W3C Advisory Committee (the company’s
representative is our CEO and Chief Technology Officer, Paul Deitel). Advisory
Committee members help provide "strategic direction" to the W3C through
meetings held around the world. Member organizations also help develop
standards recommendations for Web technologies (such as XHTML, XML and many
others) through participation in W3C activities and groups. Membership in the
W3C is intended for companies and large organizations. To obtain information
on becoming a member of the W3C visit
www.w3.org/ Consortium/Prospectus/Joining.
[ top ]
© 1992-2005. Deitel & Associates, Inc. All Rights Reserved.
|