Live in fragments no longer. Only connect.
Edward Morgan Forster
We wove a web in childhood, A web of sunny air.
Welcome to the world of Web services! This book is one of the first in the new Deitel™ Developer Series, which presents leading-edge computing technologies to software developers, technical managers and IT professionals.
Anyone familiar with the software industry is aware that Web services are one of 2002’s hottest new technologies. Microsoft coined the term "Web services" in June 2000, when the company introduced Web services as a key component of its .NET initiative, a broad new vision for embracing the Internet in the development, engineering and use of software. As others began to investigate Web services, it became clear that the technology could revolutionize distributed computing. Software vendors quickly established Web services strategies and began to enhance their products with support for Web services standards. Now, nearly every major vendor—including Sun Microsystems, IBM, Hewlett-Packard, Oracle and BEA Systems—is marketing Web services tools and applications.
Web services encompass a set of related standards that can enable any two computer applications to communicate and exchange data via a network, such as the Internet. The primary standard used in Web services is the Extensible Markup Language (XML), developed by the World Wide Web Consortium (W3C). XML is a meta-language for describing data and creating markup languages; developers use XML tags to describe individual pieces of data, forming XML documents. Since XML documents are text-based, they can be processed on any platform. XML’s portability and its rapid adoption throughout the industry made it an obvious choice for enabling cross-platform data communication in Web services.
XML provides the foundation for many core Web services standards, including the Simple Object Access Protocol (SOAP), the Web Services Description Language (WSDL) and the Universal Description, Discovery and Integration (UDDI) specification. SOAP is an XML vocabulary (i.e., an XML-based markup language developed for a specific industry or purpose) that enables programs on separate computers to interact across a network, such as the Internet or a company intranet. WSDL, another XML vocabulary created for Web services, allows developers to describe Web services and their capabilities in a standardized format. UDDI is a framework that defines XML-based registries in which businesses can publish information about themselves and the services they offer.
Almost every type of business—from small organizations to large, global enterprises—can benefit from Web services. Companies are already implementing Web services to facilitate a wide variety of business processes, such as expediting the development of corporate software, integrating applications and databases and automating transactions with suppliers, partners and clients. This book explains how developers and businesses can harness the potential of Web services technology to facilitate application-to-application communication and improve efficiency and profitability. For programmers, the book includes appendices on XML, implementing Web services in Java™ and implementing Web services in Visual Basic® .NET.
Who Should Read This Book
Deitel & Associates, Inc., offers several publications that discuss Web services, intended for various audiences. We provide information on www.deitel.com, here and inside this book’s back cover to help you determine which publication is best for you.
Web Services A Technical Introduction is the first book in our A Technical Introduction series, 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. This is not a programming book, but it contains in-depth treatments of technical concepts. It also includes significant programming appendices that present Visual Basic .NET and Java Web services implementations. 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.
This book is divided into several sections. Chapters 1–4 present the business case for Web services. We introduce the basics of Web services, describe Web services’ strengths and limitations and examine the development of Web services standards. We also explore how companies can use Web services to improve productivity and enhance their business models. These chapters present numerous case studies that describe how specific companies are employing Web services to integrate systems and improve communication among departments, supply chains and partners.
Chapters 5–7 delve into more technical topics, including explanations of core Web services technologies and standards. We begin by introducing XML, its history and role in Web services. This leads to an analysis of various XML-derived technologies that incorporate Web services, including e-business XML (ebXML), Business Transaction Protocol (BTP), Business Process Modeling Language (BPML) and Web Services Flow Language (WSFL). We then examine the fundamentals of SOAP, including the SOAP messaging specification, the architecture of SOAP messages and Remote Procedure Calls (RPCs). We also discuss WSDL and present a sample WSDL document. We conclude by exploring various technologies for locating Web services on a network, including public and private UDDI registries, ebXML registries and WS-Inspection documents.
In Chapter 8, we describe a variety of software vendors and the Web services development tools they offer. We also discuss vendors that market Web services management and workflow products. This information is designed to help programmers and IT managers identify tools and products that best fit their Web services requirements. Following this broad overview of Web services development platforms, we examine two of the most popular platforms—.NET and Java—in detail. Chapter 9 examines Web services in the context of Microsoft’s .NET platform, including the basics of creating and consuming Web services in .NET. Chapter 10 explores Sun Microsystems’ Java Web Services Developer Pack and its capabilities for developing and deploying Web services that run on Java platforms.
The book’s final chapters provide a detailed analysis of Web services security issues. In a memo to all Microsoft employees, Bill Gates stated that the company’s highest priority is trustworthy computing—i.e., ensuring that Microsoft applications are reliable, available and secure. Gates’s security emphasis has been echoed across the computing industry as organizations work to improve Internet and network security. Security is particularly crucial to Web services, and we therefore have included a two-chapter treatment of security issues. Chapter 11 presents general computer security concepts, such as cryptography, digital signatures and steganography. In Chapter 12, we examine the set of emerging XML-based security standards designed specifically for Web services.
The book concludes with programming appendices that introduce XML markup and .NET and Java Web services implementations. Appendices B and C contain complete, working examples of Web services and Web service clients built using the standards and tools we discuss throughout the book. We include this material as appendices, because readers must have substantial knowledge of Visual Basic .NET and Java to understand and run the programs. Readers interested in learning these languages should refer to our publications Visual Basic .NET How to Program, Second Edition, Visual Basic .NET for Experienced Programmers and Java How to Program, Fourth Edition; the inside back cover of this book contains additional information on choosing the right book. For a detailed listing of Deitel™ products and services, please see the "advertorial" pages at the back of this book or visit www.deitel.com. Readers also can 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 email@example.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 about Web services with our publications.
Features of Web Services A Technical Introduction
This book contains many features, including:
XML (Extensible Markup Language). XML is gaining widespread popularity in the software-development and e-business communities. As a platform-independent standard for describing data and creating markup languages, XML is ideal for Web services. Many core Web services standards—including SOAP, WSDL and UDDI—are based on XML. Chapter 5, XML and Derivative Technologies, examines the basic structure of XML and overviews key concepts related to the technology. Appendix A, Introduction to XML Markup, describes the fundamentals of XML markup, including elements, attributes and character data.
Simple Object Access Protocol (SOAP). The Simple Object Access Protocol is the lingua franca of Web services, enabling interoperability among disparate applications. SOAP is a simple markup language for describing messages between applications. Built using XML, SOAP provides the platform and programming-language independence that developers require to integrate applications and business processes across the Web. Chapter 6, Understanding SOAP and WSDL, discusses the SOAP specification and SOAP messaging.
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 6, Understanding SOAP and WSDL, examines the WSDL standard and provides an explanation of a sample WSDL document.
XML Registries and Universal Description, Discovery and Integration (UDDI). Before employing a Web service, an organization must locate the service and learn about its capabilities. XML registries, including those based on the Universal Description, Discovery and Integration (UDDI) specification, provide common repositories through which businesses can advertise themselves and their Web services. Chapter 7, UDDI, Discovery and Web Services Registries, introduces the fundamentals of UDDI and XML registries.
.NET Web Services. The .NET platform is one of the most complete environments for building, deploying and accessing Web services. There are many benefits to implementing Web services in .NET, including .NET’s support for multiple programming languages and its tools for code reuse. Chapter 9, .NET Web Services: A Conceptual Overview, introduces Microsoft’s .NET strategy and describes .NET’s support for Web services. Appendix B, Implementing Web Services in .NET, introduces Web services programming with Active Server Pages (ASP) .NET and Visual Basic .NET.
Java Web Services. The Java 2 Platform provides rich support for Web services technologies. Java’s portability, along with its support for XML and standard networking technologies, makes Java ideal for building Internet applications, including those based on Web services. Chapter 10, Java Web Services: A Conceptual Overview, introduces the Java Web Services Developer Pack, which includes APIs for building Java-based Web services and clients. Appendix C, Implementing Web Services in Java, introduces Web services programming with the Java API for XML Messaging (JAXM) and the Java API for XML-based RPC (JAX-RPC).
Web Services Security Standards. By enabling organizations to move transactions beyond corporate firewalls, Web services create significant security challenges. The software industry has developed numerous XML-based standards to address Web services security, including the Security Assertion Markup Language (SAML), the XML Key Management Specification (XKMS), XML Signature and XML Encryption. Chapter 11, Computer and Internet Security, describes fundamental computer security concepts; Chapter 12, Web Services Security, examines Web services security standards and how organizations can ensure the security of Web services transactions.
Web Services A Technical Introduction contains a rich collection of illustrations, tables, and features that highlight significant topics discussed in the text. In addition, each chapter includes objectives, an outline and a summary to help readers identify the chapter’s key goals. This organization, in combination with our extensive Index and glossary, enable the book to be used as a reference. For readers who want additional information on particular topics, all chapters conclude with Internet and Web resources sections; many chapters also include recommended reading lists.
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.
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.
The chapter outline enables readers to approach the material in top-down fashion. Along with the chapter objectives, the outline helps readers anticipate topics and quickly locate information that is of particular interest to them.
An abundance of charts, line drawings and Web screenshots is included. The illustrations and figures provide visual examples of business and technical topics. Charts and tables offer lists of additional resources and break information into an organized, easy-to-read format.
Features and Case Studies
Most chapters contain features, which highlight and build on concepts introduced in the body text. Many features provide case studies on businesses that are implementing Web services, whereas others highlight key Web services-related technologies.
Each chapter ends with a summary that helps readers review and reinforce key concepts. Readers also can use the summaries to discover what topics are discussed in each chapter.
Internet and Web Resources
Each chapter ends with an Internet and Web resources section, which lists Web sites that readers can visit for additional information on the chapter topics.
512 Works Cited
Almost every chapter includes a works cited section, which contains books, articles, Web sites and other resources from which we derived information for the chapter.
Most chapters include recommended reading lists, which refer to books, articles and other resources relevant to the chapter. In most cases, these reading suggestions represent the sources we found most informative while writing the book.
The book’s extensive glossary summarizes the key terms in each chapter. We include the glossary as a helpful reference.
Approximately 2268 Index Entries (with approximately 3,402 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 readers using the book as a reference.
Approximately 3,433 Lines of Code in 18 Example Programs (with Program Outputs)
For readers who are Java and/or Visual Basic .NET programmers, the appendices include complete, working programming examples. All examples are available as downloads from our Web site, www.deitel.com.
Appendices: Pedagogic Approach
Although Web Services A Technical Introduction is not a programming book, we have included several programming appendices that build on topics covered in the main text. These appendices contain a rich collection of programming examples designed to introduce the basics of XML markup and .NET and Java Web services. When presenting programming examples and concepts, we concentrate on the principles of good software engineering and stress program clarity.
Live-Code™ Teaching Approach
Several Web Services A Technical Introduction appendices contain Live-Code™ examples. This 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 programming 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. We call this method of teaching and writing the Live-Code™ Approach. Readers have the option of downloading all of the code examples from www.deitel.com, under the Downloads/ Resources link. Other links provide errata and answers to frequently asked questions. Features of our Live-Code™ examples include:
Syntax Highlighting. This book’s implementation appendices use five-way syntax highlighting to emphasize various programming elements. Our syntax-highlighting conventions are as follows:
errors and ASP .NET directives
text, class, method and variable names
"Code Washing." This is our term for the process we use to format programs so that they have a carefully commented, open layout. The code is grouped into small, well-documented pieces. This greatly improves code readability.
World Wide Web Access
All the source code for the program examples in the appendices (and our other publications) is available on the Internet as downloads from:
Registration is quick and easy and the downloads are free. If you read the programming appendices, we suggest downloading all the examples, then running each program as you read the corresponding discussion. Make changes to the examples and immediately see the effects of those changes—this is a great way to improve your programming skills. [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 in writing from Prentice Hall and the authors.]
In the appendices, we have included programming tips to help readers focus on important aspects of program development. We highlight these tips in the form of Good Programming Practices, Common Programming Errors, Portability Tips and Software Engineering Observations.
6 Good Programming Practices
Good Programming Practices are tips that call attention to techniques that will help developers produce programs that are clearer, more understandable and more maintainable.
16 Common Programming Errors
Developers learning a language tend to make certain kinds of errors frequently. Pointing out these Common Programming Errors reduces the likelihood that readers will make the same mistakes.
2 Portability Tips
We include Portability Tips to help developers write portable code and to provide insights on how programming languages achieve a high degree of portability.
1 Software Engineering Observation
Software Engineering Observations highlight techniques, structural issues and design issues that affect the architecture and construction of software systems, especially large-scale systems.
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. Visit www.deitel.com and subscribe to the Deitel™ Buzz Online e-mail newsletter for periodic updates on all Deitel technology initiatives.
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 Fall 2002. 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.
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 course management systems: WebCT, Blackboard™, CourseCompass and Premium CourseCompass. These enable instructors to create, manage and use sophisticated Web-based educational programs. Course management systems are used primarily in academic institutions and 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 products, visit www.prenhall.com/cms. For demonstrations of existing WebCT, Blackboard and CourseCompass 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, Inc., contributes articles to the free InformIT weekly e-mail newsletter, subscribed to by more than 750,000 IT professionals worldwide. For registration information, 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 covering Web services and other leading-edge technologies through the launch of our Deitel™ Developer Series. Web Services A Technical Introduction and Java Web Services for Experienced Programmers are the first Web services books in the series. These will be followed by several others, including ASP .NET with Visual Basic .NET for Experienced Programmers and ASP .NET with C# for Experienced Programmers. Additional Deitel™ Developer Series books include C# A Programmer’s Introduction, C# for Experienced Programmers, Visual Basic .NET for Experienced Programmers and Visual C++ .NET for Experienced Programmers, which cover .NET topics.
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 programmers and novices from the ground up. These books discuss programming fundamentals, followed by brief introductions to more sophisticated topics. The For Experienced Programmers subseries is designed for seasoned developers seeking to learn new programming languages and technologies without the encumbrance of introductory material. The books in this subseries move quickly to in-depth coverage of the features of the programming languages and software technologies being covered.
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 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 Chapter 5, XML and Derivative Technologies, and Appendix A, Introduction to XML Markup, and certified all of the book’s technical chapters.
Sean E. Santry, a graduate of Boston College with degrees in Computer Science and Philosophy, is Director of Software Development at Deitel & Associates, Inc., and co-author of Java Web Services. Sean co-authored Chapter 10, Java Web Services: A Conceptual Overview and Appendix C, Implementing Web Services in Java.
Rashmi Jayaprakash, a graduate of Boston University with a degree in Computer Science, co-authored Chapter 7, UDDI, Discovery and Web Services Registries, and contributed to Chapter 8, Web Services Platforms, Vendors and Strategies.
Su Zhang, a graduate of McGill University with a Master’s in Computer Science, co-authored Chapter 10 and Appendix C and contributed to Chapter 5. Su also is a co-author of Java Web Services.
Kyle Lomelí, a graduate of Oberlin College with a degree in Computer Science and a minor in East Asian Studies, co-authored Chapter 10 and Appendix C, contributed to Chapter 6, Understanding SOAP and WSDL, and reviewed many of the book’s technical chapters. Kyle also is a co-author of Java Web Services.
Jonathan Gadzik, a graduate of the Columbia University School of Engineering and Applied Science with a major in Computer Science, co-authored Chapter 10 and Appendix C, contributed to Chapter 6, Understanding SOAP and WSDL, and reviewed many of the book’s technical chapters. Jonathan also is a co-author of Java Web Services.
Cheryl Yaeger, a graduate of Boston University with a degree in Computer Science, is the Director of Microsoft® Software Publications at Deitel & Associates, Inc., and is the co-author of C# A Programmer’s Introduction, C# for Experienced Programmers and Visual Basic®.NET for Experienced Programmers. She co-authored Chapter 9, .NET Web Services: A Conceptual Overview, and Appendix B, Implementing Web Services in Visual Basic .NET.
Christina J. Courtemarche, a graduate at Boston University with a degree in Computer Science, contributed to Chapter 5.
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 enhanced many of the graphics throughout the text, designed the cover and created the graphics in the inside front and back covers.
Christi Kelsey, a graduate of Purdue University with a major in Management and a minor in Information Systems, co-authored several case studies in Chapter 4, Web Services and Enterprise Computing.
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 11, Computer and Internet Security, and Chapter 12, Web Services Security.
Matthew R. Kowalewski, a graduate of Bentley College with a degree in Accounting Information Systems, contributed to Chapter 9.
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.
Lucas Ballard, a senior at Brandeis University in Computer Science and Mathematics, contributed to Chapter 1 and Appendix D, Best Web Services Web Sites, created case studies for Chapter 4 and edited the entire manuscript.
Jon Goldstein, a senior at Cornell in Computer Science and Economics, contributed to Chapter 1 and Appendix D, Best Web Services Web Sites, created case studies for Chapter 4 and edited the entire manuscript.
Brian Foster, a sophomore at Northeastern University in Computer Science, contributed to Chapter 8.
Ngale Truong, a sophomore at Northeastern University in Computer Science, contributed to Chapters 5 and 6.
Matthew Rubino, a sophomore at Northeastern University in Computer Science, contributed to Chapter 5, Chapter 8 and Appendix D.
Christina Carney, a senior in Psychology and Business at Framingham State College, researched and co-authored the Internet and Web Resources URLs and helped with the Preface and the glossary.
Marc Marinaccio, a senior at Brown University in History, edited the entire manuscript and contributed to the glossary.
Mike Dos’Santos, a senior at Northeastern University in Computer Science, contributed to Appendix C.
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 Prentice Hall/PTR, and Michael Ruel, who managed the extraordinary review processes for our Deitel™ Developer Series Web services publications. We would also like to thank Mark L. Taub, Editor-in-Chief for computer publications at PH/PTR, for conceptualizing the Deitel™ Developer Series and providing the necessary environment and resources 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 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., designed the cover. Tamara Newnam (firstname.lastname@example.org) carried the cover through to completion and produced the artwork for our programming-tip icons.
We wish to acknowledge the efforts of our reviewers. Adhering to a tight time schedule, these reviewers scrutinized the text, 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.
Christopher Fry (Clear Methods)
Kyle Gabhart (Independent Consultant)
Ari Goldberg (Alphawolf)
Corinne A. Gregory (Speaker, Author, Consultant)
Mason Ham (Zambit Technologies, Inc.)
Michael Hudson (Blueprint Technologies, Inc.)
Anne Thomas Manes (Systinet)
Paul Monday (J. D. Edwards & Co.)
JP Morganthal (iKimbo)
John Mueller (Consultant)
Neal Patel (Microsoft Corporation)
Mike Plusch (Clear Methods)
Teri Radichel (Radical Software)
Sazi Temel (BEA)
Priscilla Walmsley (Consultant)
David Weller (Valtech Technologies, Inc.)
Justin Whitney (Author and Web Services Game Designer)
We would sincerely appreciate your comments, criticisms, corrections and suggestions for improving the book. Please address all correspondence to:
We will respond promptly.
Well, that’s it for now. Welcome to the exciting world of Web services. We hope you enjoy this presentation of business, technical and programming topics as much as we enjoyed writing it.
Dr. Harvey M. Deitel
Paul J. Deitel
Lauren K. Trees
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, government organizations and various branches of 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.
Lauren Trees is a graduate of Brown University with a concentration in Literatures in English. Lauren participated in the conceptualization of this book, performed much of the necessary research and acted as the primary author of Chapters 1–4. She also served as project manager and edited the entire manuscript for accuracy, clarity and effectiveness of presentation. Over the past two years, Lauren has contributed to numerous Deitel and Associates, Inc., publications, including e-Business & e-Commerce for Managers, Wireless Internet & Mobile Business How to Program and Visual Basic® .NET How to Program.
Betsy DuWaldt, Editorial Director of Deitel & Associates, Inc., is a graduate of Metropolitan State College of Denver with a major in Technical Communications (Technical Writing and Editing Emphasis). She acted as primary author of Chapters 5, 6, 8 and Appendix D. Betsy has contributed to numerous Deitel & Associates, Inc., publications, including Wireless Internet & Mobile Business How to Program, C# How to Program and Python How to Program.
About Deitel & Associates, Inc.
Deitel & Associates, Inc., 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 computer programming languages education. The company offers 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 companies and government agencies, branches of the military and business organizations. Through its 25-year publishing partnership with Prentice Hall, Deitel & Associates has published 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, Inc., and the authors can be reached via e-mail at:
To learn more about Deitel & Associates, Inc., its publications and its worldwide corporate on-site curriculum, see the last few pages of this book or visit:
Individuals wishing to purchase Deitel products can do so through bookstores, online booksellers and:
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 through the Deitel™ Buzz Online e-mail newsletter, please register at