(cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:3)(cid:6)(cid:7)(cid:8) (cid:9)(cid:6)(cid:5)(cid:8) (cid:10)(cid:9)(cid:6)(cid:9)(cid:7)(cid:3)(cid:6)(cid:7) (cid:11)(cid:6)(cid:12)(cid:13)(cid:14)(cid:15)(cid:14)(cid:3)(cid:16)(cid:13)(cid:17)(cid:18)(cid:3)(cid:5)(cid:13) (cid:19)(cid:20)(cid:14)(cid:12)(cid:9)(cid:4)(cid:16) Jana Polgar Monash University in Melbourne, Australia Robert Mark Bram Monash University in Melbourne, Australia Anton Polgar Monash University in Melbourne, Australia (cid:21)(cid:22)(cid:11)(cid:23)(cid:8)(cid:24)(cid:25)(cid:26)(cid:27)(cid:19)(cid:8)(cid:19)(cid:27)(cid:1)(cid:28)(cid:21)(cid:29)(cid:30)(cid:21)(cid:31)(cid:24) Hershey • London • Melbourne • Singapore Acquisitions Editor: Michelle Potter Development Editor: Kristin Roth Senior Managing Editor: Amanda Appicello Managing Editor: Jennifer Neidig Copy Editor: Kim Barger Typesetter: Diane Huskinson Cover Design: Lisa Tosheff Printed at: Yurchak Printing Inc. Published in the United States of America by Idea Group Publishing (an imprint of Idea Group Inc.) 701 E. Chocolate Avenue Hershey PA 17033 Tel: 717-533-8845 Fax: 717-533-8661 E-mail: [email protected] Web site: http://www.idea-group.com and in the United Kingdom by Idea Group Publishing (an imprint of Idea Group Inc.) 3 Henrietta Street Covent Garden London WC2E 8LU Tel: 44 20 7240 0856 Fax: 44 20 7379 0609 Web site: http://www.eurospanonline.com Copyright © 2006 by Idea Group Inc. All rights reserved. No part of this book may be reproduced, stored or distributed in any form or by any means, electronic or mechanical, including photocopying, without written permission from the publisher. Product or company names used in this book are for identification purposes only. Inclusion of the names of the products or companies does not indicate a claim of ownership by IGI of the trademark or registered trademark. Library of Congress Cataloging-in-Publication Data Polgar, Jana, 1945- Building and managing enterprise-wide portals / Jana Polgar, Robert Mark Bram, and Anton Polgar. p. cm. Includes bibliographical references and index. Summary: "This book discusses the technology behind portals and grid networks, including topics such as management issues, deployment considerations, facilities and tools for creating and managing grid and portal applications"--Provided by publisher. ISBN 1-59140-661-7 (hbk.) -- ISBN 1-59140-662-5 (pbk.) -- ISBN 1-59140-663-3 (ebook) 1. Web portals. 2. Web services. 3. Computational grids (Computer systems) I. Bram, Robert Mark, 1974- II. Polgar, Anton, 1946- III. Title. TK5105.88813.P65 2005 025.04--dc22 2005023875 British Cataloguing in Publication Data A Cataloguing in Publication record for this book is available from the British Library. All work contributed to this book is new, previously-unpublished material. The views expressed in this book are those of the authors, but not necessarily of the publisher. i (cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:3)(cid:6)(cid:7)(cid:8) (cid:9)(cid:6)(cid:5)(cid:8) (cid:10)(cid:9)(cid:6)(cid:9)(cid:7)(cid:3)(cid:6)(cid:7) (cid:11)(cid:6)(cid:12)(cid:13)(cid:14)(cid:15)(cid:14)(cid:3)(cid:16)(cid:13)(cid:17)(cid:18)(cid:3)(cid:5)(cid:13)(cid:8) (cid:19)(cid:20)(cid:14)(cid:12)(cid:9)(cid:4)(cid:16) (cid:9)!(cid:4)(cid:13)(cid:8)(cid:20)"(cid:8)#(cid:20)(cid:6)(cid:12)(cid:13)(cid:6)(cid:12)(cid:16) Preface ................................................................................................. vii Section I: The Toolset Chapter I. Introduction.......................................................................... 1 The Idea of a Portal......................................................................... 1 Technology Aware Managers .......................................................... 3 Service-Oriented Architecture.......................................................... 4 Chapter II. The Foundations of XML and WSDL............................... 7 What is XML? ................................................................................ 8 XML Document Processing and Development ............................... 10 XML Authoring and Java Parsers .................................................. 15 Web Services Description Language: WSDL ................................. 22 Document Object Model ............................................................... 28 Chapter III. Protocols.......................................................................... 32 UDDI (Universal Description, Discovery, and Integration).............. 32 Simple Object Access Protocol (SOAP)........................................ 48 What is URI, URL, URN?............................................................. 52 ii Section II: Web Services as Shared Resources Chapter IV. Web Services .................................................................. 55 Multi-Tier Component-Based Architecture..................................... 56 Web Service Architecture.............................................................. 58 Web Services with JAXB.............................................................. 59 Web Services with JAX-RPC........................................................ 63 Web Service Discovery and Invocation.......................................... 72 XML Documents as Part of Web Services..................................... 76 XML-Based Web Service Endpoint Considerations....................... 79 Chapter V. Servlets............................................................................. 82 The Servlet Application Architecture.............................................. 83 Chapter VI. Java Server Pages (JSP)................................................ 94 JSP Development Notes................................................................ 96 Integrating Servlets and JSP........................................................... 98 Web Module Deployment............................................................ 100 Chapter VII. Web Service Design Issues........................................ 104 Service Endpoint Design .............................................................. 105 Web Service Client Design .......................................................... 110 Available Web Application Frameworks ...................................... 115 Section III: Putting Portals on the Web Chapter VIII. Portals......................................................................... 119 Historical Background ................................................................. 121 What Do Portal Services Deliver.................................................. 127 Chapter IX. Portal Development Framework.................................. 134 MVC Model and Portlets............................................................ 136 Overview of Portal Concepts....................................................... 138 Portlet Lifecycle........................................................................... 145 Environment for Portals................................................................ 162 Portal Deployment....................................................................... 164 Performance and Implementation ................................................. 167 iii Chapter X. Accessing Remote Locations......................................... 173 Cooperative Portlets.................................................................... 177 Page-to-Page Communication Scenarios...................................... 182 Chapter XI. Portlet Authentication and SSO ................................... 186 Authentication Process................................................................. 186 Single Sign On (SSO).................................................................. 190 Chapter XII. Struts Framework........................................................ 192 Struts in Web Service Endpoint.................................................... 192 Struts in Portal Development........................................................ 195 Chapter XIII. Writing Portlets: A Quick Lesson for IT Managers...................................................................................... 196 Chapter XIV. Brief Overview Portal Application Platforms ........... 206 WebSphere Portal for Multiplatforms 5........................................ 206 Apache Portal Tools and Server .................................................. 207 Sun ONE Portal Server............................................................... 208 Portal Development with Struts.................................................... 211 Chapter XV. Installation and Maintenance Costs........................... 216 Chapter XVI. Standards Overview................................................... 219 Portlet Specification JSR 168....................................................... 220 Portlet Relationship with Servlet Specification............................... 222 Web Services for Remote Portlets (WSRP)................................. 226 Chapter XVII. Managing Portals ..................................................... 237 FAQ ........................................................................................... 237 Future Trends.............................................................................. 244 Section IV: Grids as Virtual Organizations Chapter XVIII. Grids ........................................................................ 247 Grid Goals................................................................................... 247 Grid Resources............................................................................ 251 Grid Architectures: Physical and Logical....................................... 254 What is a Grid Network?............................................................. 255 iv OGSA: Web Services as a Grid Platform..................................... 261 OGSA, OGSI, and WSRF: From GT3 to GT4............................ 268 Building Grid Solutions................................................................. 301 Feasibility.................................................................................... 306 References......................................................................................... 309 Glossary............................................................................................. 317 Acronyms ........................................................................................... 324 About the Authors.............................................................................. 328 Index................................................................................................... 330 vii (cid:19)(cid:14)(cid:13)"(cid:9)$(cid:13) An enormous amount of material dealing with the Web and Web Services is available in books, online, and in various publications. Anybody interested in learning can find the material but suffers from the overload of information. Which information is important, up-to-date, and correct? How can I find in- formation that constitutes the background for the problem facing me? Is the information relevant, up to date, and reliable? Can I simply apply what the published references recommended? Inspired by similar questions, we decided to put together a systematic review of current Web technology and trends to meet two goals: 1. Provide information to people who need general, rather than in depth, technical knowledge such as information technology (IT) development mangers, software designers, architects, IT students, and project and program managers. Our ideal reader is technically inclined, with broad interests and management responsibilities. 2. Describe the logical development of business applications technology, from client-server to Web, Web Services, Portal, and computer Grids. The book is practically oriented; it gives a large amount of industry focused advice and down-to-earth observations. The reader will probably need to seek more detailed information in specialized books, but he or she will be able to maneuver in the sea of available information. It is not necessary to read the book sequentially, but there are advantages in doing so as the topics build on previously discussed topics. viii Most importantly, acronyms and glossary terms are explained at the end of the text. Terms that we consider important are listed in the Index. The reader should be familiar with the basics of current information technol- ogy, the fundamentals of Web architecture, and introductory Java. It is pos- sible to understand the ideas without understanding the Java examples that appear in the text. We rely heavily on the XML concepts, and we envisage that the reader will consult the Web for additional information when reading this book. We found many definitions and principles on the Web, and, where possible, we quote the source for the reader. Published Request for Information (RFC) material is used extensively throughout the book. Some information will become obsolete with time, as many suggestions and design principles refer to the current industrial strength implementations. Many examples and practical observations refer to IBM WebSphere as the authors have experience with the product. We encourage readers to critically evaluate some of our more controversial advice. Promises and Expectations of Client-Server Computing The promise of reduced complexity of software and of software development in the third and fourth generation of computers has simply not eventuated. The catch phrase of the client-server paradigm was the promise to reduce the complexity of the software by dividing electronic processing into a smaller portion performed on a client computer and a larger portion performed on a server. This way, the client (the computer, not the person) specializes in front end processing, leaving the logic to the backend server processing. This sepa- ration of duties was supposed to achieve what we call today the separation of concerns. The client interacted with the user and provided data validation, while the server processed the data and returned the result, often by connect- ing to a database. The idea of the Graphical User Interface (GUI) was born, and it was firmly allocated to the client. Nearly immediately, the user interface became much more sophisticated, filling the vacated space with GUI API’s, event processing, and user interface standards. Thus, GUI processing grew into a specialized and complex area, demanding high skills and development costs. Programming languages such as Visual Basic were able to produce function- ally rich user interfaces with graphics, which the user more easily interpreted. ix Previously unseen visual objects, such as tabs, pop up windows, buttons with graphical depiction or symbols of their function, and colorful navigational prompts filled the user’s view. On the server side, additional functionality also filled the void: generalized database connectors; lightweight processes called threads (which introduced additional complexity for synchronization); support for a large variety of de- vices and protocols; and ever-increasingly complex logic. The development process for client-server applications did not become sim- pler either. The two subsystems were often developed in two or more differ- ent programming environments. For example, it was very common to develop client software in Visual Basic or Delphi, while the server software was devel- oped in C or C++ (or both). The previously cohesive development team was broken into client and server specialists. The functional testing introduced a new, expensive, and difficult discipline: integration testing, where the client and server were seen in cooperation for the first time. Finding errors, bugs, and functional irregularities became complex and very expensive, as several specialists had to cooperate to resolve the problems. The initial promise of reduced complexity was broken. The development man- agers were dealing with increased costs and were looking for a solution that would address the increased number of development personnel, ballooning testing and deployment costs. The developers were faced with a specializa- tion dilemma — should I become a client or a server specialist? It should be remembered that the client specialist was also the user interface specialist, being responsible for the design of the user interface and its behavior. At the same time, the end users became accustomed to better usability and demanded ever-improving quality of the user interface, intuitive behavior, and sophisti- cated error management, where it should not matter whether the validation errors originated from the server or client processing. The World of the Web While client-server computing was evolving, the world of the Web was quietly assessing its strength. This occurred in 1989-1990. An interested reader can see one of the early Web sites on http://www.w3.org/History.html or http:// www.w3.org/People/Berners-Lee/WorldWideWeb.html, or read about it in Weaving the Web by Tim Berners-Lee with Mark Fischetti (Berners-Lee & Fischetti, 1999).