Você está na página 1de 403

Software Engineering

for Modern Web


Applications:
Methodologies and
Technologies

Daniel M. Brandon
Christian Brothers University, USA

InformatIon scIence reference


Hershey New York
Acquisitions Editor: Kristin Klinger
Development Editor: Kristin Roth
Senior Managing Editor: Jennifer Neidig
Managing Editor: Jamie Snavely
Assistant Managing Editor: Carole Coulson
Copy Editor: Brenda Leach
Typesetter: Carole Coulson
Cover Design: Lisa Tosheff
Printed at: Yurchak Printing Inc.

Published in the United States of America by


Information Science Reference (an imprint of IGI Global)
701 E. Chocolate Avenue, Suite 200
Hershey PA 17033
Tel: 717-533-8845
Fax: 717-533-8661
E-mail: cust@igi-global.com
Web site: http://www.igi-global.com

and in the United Kingdom by


Information Science Reference (an imprint of IGI Global)
3 Henrietta Street
Covent Garden
London WC2E 8LU
Tel: 44 20 7240 0856
Fax: 44 20 7379 0609
Web site: http://www.eurospanbookstore.com

Copyright 2008 by IGI Global. All rights reserved. No part of this publication 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 set are for identification purposes only. Inclusion of the names of the products or companies does
not indicate a claim of ownership by IGI Global of the trademark or registered trademark.

Library of Congress Cataloging-in-Publication Data

Software engineering for modern Web applications : methodologies and technologies / Daniel M. Brandon, editor.

p. cm.

Summary: "This book presents current, effective software engineering methods for the design and development of modern Web-based
applications"--Provided by publisher.

Includes bibliographical references and index.

ISBN 978-1-59904-492-7 (hardcover) -- ISBN 978-1-59904-494-1 (ebook)

1. Application software--Development. 2. Internet programming. 3. Web site development. 4. Software engineering. I. Brandon, Dan,
1946-

QA76.76.A65.S6588 2008

005.1--dc22

2008008470

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 set is original material. The views expressed in this book are those of the authors, but not necessarily of
the publisher.
If a library purchased a print copy of this publication, please go to http://www.igi-global.com/agreement for information on activating the
library's complimentary electronic access to this publication.
Table of Contents

Preface .............................................................................................................................................. xii

Chapter I
Web Engineering: Introduction and Perspectives .................................................................................1
San Murugesan, Southern Cross University, Australia
Athula Ginige,University of Western Sydney, Australia

Chapter II
Augmented WebHelix: A Practical Process for Web Engineering .....................................................25
Nary Subramanian, University of Texas at Tyler, USA
George Whitson, University of Texas at Tyler, USA

Chapter III
Model-Centric Architecting Process ...................................................................................................53
Tony C. Shan, IBM, USA
Winnie W. Hua, CTS, Inc., USA

Chapter IV
Architecture, Specification, and Design of Service-Oriented Systems...............................................68
Jaroslac Krl, Charles University, Czech Republic
Michal emlika, Charles University, Czech Republic

Chapter V
Data Integration Through Service-Based Mediation for Web-Enabled
Information Systems ...........................................................................................................................84
Yaoling Zhu, Dublin City University, Ireland
Claus Pahl, Dublin City University, Ireland

Chapter VI
Using Patterns for Engineering High-Quality Web Applications .....................................................100
Pankaj Kamthan, Concordia University, Canada
Chapter VII
Component-Based Deployment for Web Applications:
Experiences with Duct Tape and Glue ..............................................................................................123
Kevin Gary, Arizona State University, USA
Harry Koehnemann, Arizona State University, USA

Chapter VIII
Evolving Web Application Architectures: From Model 2 to Web 2 .................................................138
David Parsons, Massey University, New Zealand

Chapter IX
Applying Agility to Database Design ...............................................................................................160
Guoqing Wei, FedEx Corporation, USA
Linda Sherrell, University of Memphis, USA

Chapter X
Automatic Creation of GUIs for Web Based ERP Systems.............................................................179
Jorge Marx Gmez, Universitt Oldenburg, Germany
Daniel Lbke, Leibniz Universitt Hannover, Germany

Chapter XI
Prototyping in Web Development .....................................................................................................191
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack, Elegance Technologies, Inc., USA

Chapter XII
Testing Methods for Web Applications .............................................................................................207
Dave L. Mills, University of Memphis, USA

Chapter XIII
Outsourcing Issues in Web Development .........................................................................................217
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack, Elegance Technologies, Inc., USA

Chapter XIV
Engineering Wireless Mobile Applications ......................................................................................239
Qusay H. Mahmoud, University of Guelph, Canada
Zakaria Maamar, Zayed University, UAE

Chapter XV
Project Management and Web Software Engineering ......................................................................254
Daniel M. Brandon, Christian Brothers University, USA
Chapter XVI
Resources on Web-Centric Computing .............................................................................................292
Margaret Menzin, Simmons College, USA

Compilation of References ............................................................................................................354

About the Contributors .................................................................................................................373

Index .................................................................................................................................................378
Detailed Table of Contents

Preface .............................................................................................................................................. xii

Chapter I
Web Engineering: Introduction and Perspectives .................................................................................1
San Murugesan, Southern Cross University, Australia
Athula Ginige,University of Western Sydney, Australia

Chapter I discusses our dependence and reliance on the Web which has increased dramatically over the
years. As a result, the development of Web applications has become more complex and challenging
than most of us think. In many ways, it is also different and more complex than traditional software
development. But, currently, the development and maintenance of most Web applications is chaotic and
far from satisfactory. To successfully build and maintain large, complex Web-based systems and ap-
plications, Web developers need to adopt a disciplined development process and a sound methodology.
The emerging discipline of Web engineering advocates a holistic, disciplined approach to successful
Web development. In this chapter, we articulate and raise awareness of the issues and considerations
in large, complex Web application development, and introduce Web engineering as a way of managing
complexity and diversity of large-scale Web development.

Chapter II
Augmented WebHelix: A Practical Process for Web Engineering .....................................................25
Nary Subramanian, University of Texas at Tyler, USA
George Whitson, University of Texas at Tyler, USA

Chapter II discusses Process is an important element in the success of any information systems develop-
ment project especially in academia where typically an undergraduate term project needs to go through
the development phases within the space of a semester. The omission of customer feedback results in
students completing toy projects without significant real-world experience; efforts to incorporate
artificial customer interactions have not been very successful either. WebHelix has been recently intro-
duced as a practical process for Web engineering that helps students gain valuable real-world experience
without sacrificing project and product management phases. In this chapter, we propose the augmented
WebHelix process that augments the WebHelix in three ways: provides an option at the end of each slice
of the helix to both release the current version and continue to the next slice of development, and pro-
vides a qualitative evaluation framework, called the project evaluation framework (PEF); that provides a
systematic approach for evaluating the status of the project; and the ability to evaluate the project at the
end of each phase in a slice of the helix. In this chapter, we describe the augmented WebHelix process
and demonstrate its applicability to both academia and industry with examples.

Chapter III
Model-Centric Architecting Process ...................................................................................................53
Tony C. Shan, IBM, USA
Winnie W. Hua, CTS, Inc., USA

Chapter III defines a methodical approach, named model-centric architecting process (MAP), to effec-
tively cope with the architecture design complexity and manage the architecting process and lifecycle of
information systems development in a service-oriented paradigm. This comprehensive method comprises
four dimensions of architecting activities: requirement analysis, specification, validation, and planning
(RSVP). The process is broken down to 9 interrelated models: meta architecture, conceptual architecture,
logical architecture, physical architecture, deployment architecture, management architecture, informa-
tion architecture, aspect architecture, and component architecture. This systematic framework may be
customized in different formats to design various information systems in different industries.

Chapter IV
Architecture, Specification, and Design of Service-Oriented Systems...............................................68
Jaroslac Krl, Charles University, Czech Republic
Michal emlika, Charles University, Czech Republic

Service-oriented software systems (SOSS) are discussed in Chapter IV. It is preferable to understand
service orientation not to be limited to Web services and Internet only. It is shown that there are several
variants of SOSS having different application domains, different user properties, different development
processes, and different software engineering properties. The conditions implying advantageous user
properties of SOSS are presented.

Chapter V
Data Integration Through Service-Based Mediation for Web-Enabled
Information Systems ...........................................................................................................................84
Yaoling Zhu, Dublin City University, Ireland
Claus Pahl, Dublin City University, Ireland

The Web and its underlying platform technologies have often been used to integrate existing software
and information systems. In Chapter V the Web context, where the Web platform is used to integrate dif-
ferent organisations or software systems, additionally the problem of heterogeneity arises. We introduce
a specific data integration solution for Web applications such as Web-enabled information systems. Our
contribution is an integration technology framework for Web-enabled information systems comprising,
firstly, a data integration technique based on the declarative specification of transformation rules and
the construction of connectors that handle the integration and, secondly, a mediator architecture based
on information services and the constructed connectors to handle the integration process.
Chapter VI
Using Patterns for Engineering High-Quality Web Applications .....................................................100
Pankaj Kamthan, Concordia University, Canada

Chapter VI discusses the development and maintenance of Web applications from an engineering perspec-
tive. A methodology, termed as POWEM, for deploying patterns as means for improving the quality of
Web applications is presented. The role of a process, the challenges in making optimal use of patterns,
and feasibility issues involved in doing so, are analyzed. The activities of a systematic selection and ap-
plication of patterns are explored. Following a top-down approach to design, examples illustrating the
use of patterns during macro- and micro-architecture design of a Web application are given. Finally, the
implications towards Semantic Web applications and Web 2.0 applications are briefly outlined.

Chapter VII
Component-Based Deployment for Web Applications:
Experiences with Duct Tape and Glue ..............................................................................................123
Kevin Gary, Arizona State University, USA
Harry Koehnemann, Arizona State University, USA

The software engineering community touts component-based software systems as a potential silver bul-
let for many of its woes: reducing cycle time; reducing cost;, increasing productivity;, allowing easier
integration - to name just a few. Indeed, many Web-based systems are now built with open-source
and vendor provided component technologies. While these advances have led to improvements in the
development process, they have also led to a great deal of pressure on downstream processes as these
systems must be deployed, tuned, and supported. The complexities in deploying and supporting com-
ponent-based software for distributed and Web-based applications are not understood in the academic
or professional communities. Chapter VII stresses the need for addressing this problem by presenting
component-based software for Web applications from a deployment perspective, characterizing the is-
sues through real-world experiences with highly component-based applications, and presents strategies
and directions for the community to pursue.

Chapter VIII
Evolving Web Application Architectures: From Model 2 to Web 2 .................................................138
David Parsons, Massey University, New Zealand

Chapter VIII discusses how Web application software architecture has evolved from the simple begin-
nings of static content, through dynamic content, to adaptive content and the integrated client-server
technologies of the Web 2.0. It reviews how various technologies and standards have developed in a
repeating cycle of innovation, which tends to fragment the Web environment, followed by standardiza-
tion, which enables the wider reach of new technologies. It examines the impact of the Web 2.0, XML,
Ajax and mobile Web clients on Web application architectures, and how server side processes can support
increasingly rich, diverse and interactive clients. It provides an overview of a server-side Java-based
architecture for contemporary Web applications that demonstrates some of the key concepts under dis-
cussion. By outlining the various forces that influence architectural decisions, this chapter should help
developers to take advantage of the potential of innovative technologies without sacrificing the broad
reach of standards based development.
Chapter IX
Applying Agility to Database Design ...............................................................................................160
Guoqing Wei, FedEx Corporation, USA
Linda Sherrell, University of Memphis, USA

Chapter IX discusses the introduction of agile practices into software organizations which may cause
unhealthy tensions between the developers and data professionals. The underlying reason is that when
agile methodologies are employed, the two communities use incompatible approaches, namely simple
design and iterative development, which are practices associated with all agile methodologies, and big
design up front (BDUF), a popular database technique. BDUF is inflexible, as once the database founda-
tion is set, it is difficult to make changes throughout the software development life cycle. This chapter
describes a database development method for a Web environment. The result is that the database develop-
ment becomes more iterative and incremental. This has the added benefit of supporting rapid application
development in a dynamic environment, a fundamental characteristic of most Web applications.

Chapter X
Automatic Creation of GUIs for Web Based ERP Systems.............................................................179
Jorge Marx Gmez, Universitt Oldenburg, Germany
Daniel Lbke, Leibniz Universitt Hannover, Germany

Service-oriented architecture (SOA) is an emerging architectural style for developing and structuring
business applications, especially enterprise resource planning (ERP) systems. However, current com-
position standards like BPEL have no ability to interact with users. Therefore, we propose in Chapter
X a mechanism for including user interaction descriptions into the composition and extending the
composition platform for generating user interfaces. In our case study, a federated ERP (FERP) system,
this mechanism has been implemented in a prototype based on yet another workflow language (YAWL)
dynamically generating Web pages for accessing the ERP system. Because every aspect including the
user interfaces can be manipulated through the service composition, such systems are highly flexible
yet maintainable.

Chapter XI
Prototyping in Web Development .....................................................................................................191
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack, Elegance Technologies, Inc., USA

Chapter XI addresses issues, alternatives, and best practices for prototyping in Web development. The
chapters primary objective is to provide a clear and concise overview of key concepts and best practices
for practitioners and students, as well as other audiences. The chapter focuses on graphical user interface
(UI) prototyping for Web development, but many of the principles apply to non-UI prototyping and other
sorts of software development. First, we introduce the chapter, and review the major objectives, benefits
and risks, and classifications of prototypes. Second, we describe the major approaches to prototyping.
Finally, we conclude with future trends and a summary of best practices.
Chapter XII
Testing Methods for Web Applications .............................................................................................207
Dave L. Mills, University of Memphis, USA

Chapter XII introduces several modern methods and tools for creating tests and integrating testing in
Web applications, as well as presenting some practices that expand the role of testing in software devel-
opment. Teams adopting practices such as test-driven development (TDD) and acceptance (customer)
testing have shown significant gains in the quality and correctness of the code produced. These practices
encourage a more holistic view of testing by integrating a sound testing solution into current software
development life cycle models. Furthermore, tests can play an important role in gathering requirements
and providing documentation. In this chapter, in addition to offering an initiation to some of the modern
testing methods and tools, the authors hope to motivate readers to consider testing as a multi-purpose
tool to be used throughout all stages of development.

Chapter XIII
Outsourcing Issues in Web Development .........................................................................................217
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA
Roger Jack, Elegance Technologies, Inc., USA

Chapter XIII addresses issues, alternatives, and best practices that apply when outsourcing Web de-
velopment. The chapters primary objective is to provide a concise overview of key concepts and best
practices for practitioners and students, as well as other audiences. First, we introduce the chapter, pro-
vide background, and present three key ideas that are expanded and developed in the two subsequent
sections. The first describes four steps to help executives and upper management address strategic issues
and decisions in outsourcing. The second describes four more steps to help managers, team leaders, and
development teams address more tactical issues. We conclude with future trends and implications, and
a summary of the best practices.

Chapter XIV
Engineering Wireless Mobile Applications ......................................................................................239
Qusay H. Mahmoud, University of Guelph, Canada
Zakaria Maamar, Zayed University, UAE

Chapter XIV discusses conventional desktop software applications which are usually designed, built,
and tested on a platform similar to the one on which they will be deployed and run. Wireless mobile
application development, on the other hand, is more challenging because applications are developed on
one platform (like UNIX or Windows) and deployed on a totally different platform like a cellular phone.
While wireless applications can be much smaller than conventional desktop applications, developers
should think in small terms of the devices on which the applications will run and the environment in
which they will operate instead of the amount of code to be written. This chapter presents a systematic
approach to engineering wireless application and offers practical guidelines for testing them. What is
unique about this approach is that it takes into account the special features of the new medium (mobile
devices and wireless networks), the operational environment, and the multiplicity of user backgrounds;
all of which pose new challenges to wireless application development.
Chapter XV
Project Management and Web Software Engineering ......................................................................254
Daniel M. Brandon, Christian Brothers University, USA

The process involved with the development of web applications is significantly different from the pro-
cess of developing applications on older platforms. This is a difference not only in technologies but
in the overall business process and associated methodology, in other words the project management.
Web applications generally manage content and not just data, and many web applications are document
centric versus data centric. In addition, there are many more people involved in the definition, design,
development, testing, and approval for Web applications. The pace of business life is much quicker to-
day than in the past, thus Web applications need to be deployed much quicker that earlier IT application
and they need to be engineered for more flexibility and adaptability in terms of changing requirements,
changing content, changing presentation, mass user customization. In addition, security concerns are
more prevalent in Web applications since the end users are outside as well as inside the corporate virtual
perimeter. Web applications can serve a global audience and thus there are more diverse stakeholders
for these applications. Issues such as language, culture, time zones, weights and measures, currency,
logistics, and so forth, need to be considered. This chapter re-examines the project management issues
involved with Web applications.

Chapter XVI
Resources on Web-Centric Computing .............................................................................................292
Margaret Menzin, Simmons College, USA

Chapter XVI provides an extensive listing of resources for Web software engineering as well as an
author sponsored link to more detailed and more current resources as they become available.

Compilation of References ............................................................................................................354

About the Contributors .................................................................................................................373

Index .................................................................................................................................................378
xii

Preface

Not since the industrial revolution have people all over the world experienced such dramatic business
and lifestyle changes as are now occurring due to information technology (IT) in general and to the
Internet specifically. According to the RAND organization (Hundley, 2004):

Advances in information technology are affecting most segments of business, society, and governments
today in many if not most regions of the world. The changes that IT is bringing about in various aspects
of life are often collectively called the information revolution.

THE INformaTIoN aNd INTErNET rEvoluTIoN

The current IT revolution is not the first of its kind. Historians and nations may debate the exact time
and place of previous information revolutions, but they were:

The invention of writing, first in Mesopotamia or China about 3000B.C.


The invention of the written book in China or Greece about 1000B.C.
Gutenbergs printing press and engraving about 1450A.D.

One is reminded of the opening sentence from A Tale of Two Cities by Charles Dickens: It was the
best of times, it was the worst of times. Dickens was referring to the French Revolution, but today in
the 21st century we are well into the IT Revolution.
All major revolutions help some people and organizations, and these may think it is the best of
times but they also hurt some, and these organizations and people think it to be the worst of times.
With big revolutions there always will be big winners and big losers. As an example, when the print-
ing press was invented, the largest occupation in Europe was the hand copying of books in thousands
of monasteries each of which was home to hundreds of monks; fifty years later the monks had been
completely displaced. The impact to society was enormous, not because of the displacement of monks
by other craftsmen and machines, but because the price of books dropped so drastically that common
people could now afford to educate themselves.
For many this new IT revolution is bringing great things with unprecedented improvements in the
quality and efficiency of all we do as organizations and as individuals. However for others, IT is a double-
edged sword bringing about many problems, disturbances, and unresolved issues such as the creation of
a Digital Divide between the IT the haves and the have-nots. In addition IT security and privacy
problems are getting out of control as evidenced by computer viruses, worms, e-mail fraud and spam,
the compromise of personal and private digital information, spyware, piracy of intellectual property,
xiii

identity theft, IP hijacking, hacking, and other computer crimes. Today, there are major and numerous
security holes in most software that corporations and individuals use on an everyday basis.
The single most important technology of this information revolution has to be the Internet, which is
the combination of several underlying technologies. Consider the penetration rate (in the time to reach
50 million users) of milestone information technologies of the recent past compared to the Internet:

It took the telephone 40 years to reach 50 million users.


It took radio 38 years to reach 50 million users.
It took cable TV 10 years to reach 50 million users.
It only took the Internet only 5 years to reach 50 million users!

It seems that most of the really cool and innovative IT products and projects today involve Web
applications, one way or another; such products and technologies as Amazon, Google, YouTube, Map-
Quest, eBay, Priceline, and iPhone immediately come to mind. However, as well as these glamorous
innovations, many more everyday business applications are migrating to the Web. This is true for both
intra-company applications and extra-company applications.
But the Internet and related technologies are beginning to cause significant industrial disruptions
including:

Internet shopping is disrupting traditional sales channels for hard goods;


Internet sharing and distribution is disrupting traditional intellectual property rights and sales of
soft goods (print, audio, video, multi-media);
Voice Over IP combined with ultra high speed optical and wireless media will start to disrupt
traditional telecommunications;
Open source software with community on-line support will start to disrupt the traditional software
marketplace;
Separation of work from workplace will disrupt corporate and personal real estate and related
business sectors;
As national barriers (political, physical, economic, and temporal) are removed, massive globaliza-
tion will allow the free flow of both work and product;
The need for retraining and lifetime learning coupled with distance education is transforming
the traditional higher education landscape.

The process and results of these disruptions has been called creative destruction by the RAND
Corporation, and this results in the economic eclipse of organizations not embracing the new IT world.
Traditional mechanisms of government (i.e., jurisdiction, taxation, regulation, permits and licenses, etc.)
will also be subject to significant disruption in response to these other changes, as will the insurance
and finance industries.

BETTEr cHEapEr fasTEr

Todays commerce landscape is defined by fierce global competition, thus the battle cry of the modern
business world is:
xiv

Better !

Cheaper !

Faster !

That battle cry starts in the board room then down through the management chain as these themes
are the crux of market positioning (quality, cost, and time to market) as illustrated in Figure I-1. As Tom
Cruise said in the movie Top Gun: I feel a need, a need for speed. That need for speed has been
emphasized to IT project managers and software development teams by upper management.
To produce better and/or cheaper products or services and get them to market quicker requires better,
cheaper, faster processes as illustrated in Figure I-2. In todays world, information systems play a key
role and an ever increasing role in the overall process of producing/delivering products or providing
services. Today almost every aspect in the design, creation, delivery, and support of products or services
today is highly dependent on IT.
The IT platform of choice for implementing business applications has evolved over the last 50 years
mainly by mutations rather than by the continuous change of natural selection. This is illustrated in
Figure I-3. Todays Internet and Web applications specifically offer business a way to tap into a global
market very quickly. Both large and small organizations can easily, cheaply, and quickly put forth a
global presence and/or storefront via todays Internet.
The initial simplicity of Web-based HTTP/HTML applications provided a rapid proliferation of
simple internet applications. In those early days of the Internet, Web-user interface designers may have
felt a little envious of their colleagues who created desktop (PC) client-server software. PC and client-
server desktop applications had a richness and responsiveness that initially seemed out of reach for early

Figure I-1. Marketing dimensions


Better product cheaper
quality cost
or s ervice

faster

Time T o
market

Figure I-2. Products and processes

products processes

Better, requires Better,


cheaper, faster cheaper, faster
xv

HTML Web software. However, today software technology stacks such as DHTML and Ajax now allow
rich and responsive Web applications to be built which increase the depth and breadth of possible Web
application penetration and proliferation.
Web-based applications have continued to evolve as more and newer technolgies become available.
We are now into the Web 2 era with these rich and dynamic Web pages, and we are beginning to ex-
periment with Web 3 technologies and methodologies to create a hyperspace not only of documents,
but also of multi-dimensional database objects.

WEB sofTWarE ENGINEErING

From a software engineering perspective, and also from a project management perspective, develop-
ing Web-based applications is different from developing traditional applications based on mainframe

Figure I-3. Application platform evolution


Better

cheaper
automation mainframe

distributed client faster


processing server

universal Web
access Based

Figure I-4. Web evolution


199x -2003 2004 - 200x 200x - 201x

WWW Web 2 Web 3

HTTp xml semantic


HTml Web
soap
Javascript
dHTml soa
css ajax
xvi

and/or client-server technologies. Some of these differences arise due to changes in the technologies
involved, some differences are due to the business climate today, and some differences are due to the
scope and nature of the Web applications themselves.
The pace of business life is much quicker today than in the past, stimulated in a large extent due to
global competition and the rate of new technology advances. Thus Web applications need to be deployed
much quicker than earlier IT applications. Also due to the rapid business pace today, Web applications
need to be engineered for more flexibility and adaptability in terms of changing requirements, changing
content, and changing presentation. Business growth can be rapid for some products and services, thus
Web applications need to be more scalable to accommodate large and rapid growth in terms of number
of users and number of hits. Many Web applications are also for products that feature the concept of
mass customization which often translates into user customization of the Web user interface as well
as the product and/or service being delivered.
Web applications can serve a global audience and thus there are more diverse stakeholders for these
applications. Issues such as language, culture, time zones, weights and measures, currency, logistics,
and so forth, need to be considerd. Norms and even laws may be different where Web applications are
defined as opposed to where Web applications are utilized. Also because of the larger and more diverse
stakeholder sets, Web applications are subject to much more external scrutiny.
Web applications are physically or virtually delivered over a network rather than installed as was
the case with mainframe or desktop applications. Thus network considerations such as responsiveness,
throughput, and security are much greater.
Older mainframe, client-server, and/or desktop applications generally involved a single programming
language (and toolset), at least for each distinct application/program. Mainframe applications were typi-
cally written in COBOL, RPG, or FORTRAN and client-server/desktop applications were written in C,
C++, or Visual Basic. However, producing Web applications generally involves multiple languages and
tool sets including HTML, JavaScript, and CSS on the browser (client) side, and Java, PHP, ASP, or Perl
on the server side. New technologies may also be intermixed on both sides including XML, SOAP, and
Ajax. For business applications, a common denominator between older applications and Web applica-
tions has been the use of SQL for database queries and manipulation.
Web applications generally manage content and not just data; further, many Web applications are
document centric versus data centric. There are many more people involved in the definition, design,
development, testing, and approval for Web applications as opposed to older IT applications, both techni-
cal types and business types. This is illustrated in Figure I-5, which shows that many Web applications
have not only a software development lifecycle, but also a content management lifecycle.
This book addresses many of the above differences between Web software engineering and traditional
software engineering platforms, and introduces and discusses methodologies and technologies for suc-
cessful application development in the Web environment:

Chapter I: Web Engineering: Introduction and Perspectives. Web-based systems and applica-
tions now deliver a complex array of functionality to a large number of diverse groups of users. As our
dependence and reliance on the Web has increased dramatically over the years, their performance, reli-
ability and quality have become paramount importance. As a result, the development of Web applications
has become more complex and challenging than most of us think. In many ways, it is also different and
more complex than traditional software development. But, currently, the development and maintenance
of most Web applications is chaotic and far from satisfactory. To successfully build and maintain large,
complex Web-based systems and applications, Web developers need to adopt a disciplined development
process and a sound methodology. The emerging discipline of Web engineering advocates a holistic,
xvii

Figure I-5. Dual cycles of Web engineering

software IT data Base Test Tech Network


programmers
analysts designers admins Engineers Writers Engineers

IT line
managers
software development lifecycle

document
project Web
management
manager application
system

Business
line
managers content approval & control

language
product market communication Graphic
& culture Trainers Webmaster
managers analysts specialists designers
specialists

disciplined approach to successful Web development. In this chapter, we articulate and raise awareness
of the issues and considerations in large, complex Web application development, and introduce Web
engineering as a way of managing complexity and diversity of large-scale Web development.
Chapter II: Augmented WebHelix: A Practical Process for Web Engineering. Process is an impor-
tant element in the success of any information systems development project especially in academia where
typically an undergraduate term project needs to go through the development phases within the space of
a semester. Traditionally academic processes have been adapted versions of well-known industrial pro-
cesses with one major exception lack of customer feedback in the process. This omission of customer
feedback results in students completing toy projects without significant real-world experience; efforts
to incorporate artificial customer interactions have not been very successful either. It is our opinion that
the industry processes cannot be simply copied in academia; what is required is a process that will better
equip the students to face real-world challenges. WebHelix has been recently introduced as a practical
process for Web engineering that helps students gain valuable real-world experience without sacrificing
project and product management phases. In this chapter, we propose the Augmented WebHelix process
that augments the WebHelix in three ways: provides an option at the end of each slice of the helix to
both release the current version and continue to the next slice of development, and provides a qualita-
tive evaluation framework, called the project evaluation framework (PEF); that provides a systematic
approach for evaluating the status of the project; and the ability to evaluate the project at the end of each
phase in a slice of the helix. The first augmentation provides the ability to release and continue which
is more practical than the go/no-go approach adopted by WebHelix; the second augmentation, the PEF,
allows different factors besides the return-on-investment as in WebHelix to be considered for evaluating
the current phase and status of the project, and the third augmentation provides the ability to ensure the
project is on track. In this chapter, we describe the augmented WebHelix process and demonstrate its
applicability to both academia and industry with examples.
Chapter III: Model-Centric Architecting Process. This chapter defines a methodical approach,
named model-centric architecting process (MAP), to effectively cope with the architecture design
xviii

complexity and manage the architecting process and lifecycle of information systems development in
a service-oriented paradigm. This comprehensive method comprises four dimensions of architecting
activities: requirement analysis, specification, validation, and planning (RSVP). The process is broken
down to 9 interrelated models: meta architecture, conceptual architecture, logical architecture, physi-
cal architecture, deployment architecture, management architecture, information architecture, aspect
architecture, and component architecture. A 2-D matrix serves as a blueprint to denote a step-by-step
procedure to produce and manage the architectural artifacts and deliverables in the lifecycle of systems
architecture design, development and governance. The holistic framework provides a multidisciplinary
view of the design principles, tenets, idioms, and strategies in the IT architecting practices. The char-
acteristics and features of the constituent elements in the MAP approach are articulated in great detail.
Recommendations and future trends are also presented in the context. It helps build high-quality service-
oriented solutions focused on different domains, and in the meantime keeps the agility, flexibility and
adaptiveness of the overall method. This systematic framework may be customized in different formats
to design various information systems in different industries.
Chapter IV: Architecture, Specification, and Design of Service-Oriented Systems. Service-ori-
ented software systems (SOSS) are becoming the leading paradigm of software engineering. The crucial
elements of the requirements specification of SOSSs are discussed as well as the relation between the
requirements specification and the architecture of SOSS. It is preferable to understand service orienta-
tion not to be limited to Web services and Internet only. It is shown that there are several variants of
SOSS having different application domains, different user properties, different development processes,
and different software engineering properties. The conditions implying advantageous user properties
of SOSS are presented. The conditions are user-oriented interfaces of services, the application of peer-
to-peer philosophy, and the combination of different technologies of communication between services
(seemingly the obsolete ones inclusive), and autonomy of the services. These conditions imply excellent
software engineering properties of SOSSs as well. Service orientation promises to open the way to the
software as a proper engineering product.
Chapter V: Data Integration Through Service-Based Mediation for Web-Enabled Information
Systems. The Web and its underlying platform technologies have often been used to integrate existing
software and information systems. Traditional techniques for data representation and transformations
between documents are not sufficient to support a flexible and maintainable data integration solution
that meets the requirements of modern complex Web-enabled software and information systems. The
difficulty arises from the high degree of complexity of data structures, for example in business and
technology applications, and from the constant change of data and its representation. In the Web context,
where the Web platform is used to integrate different organisations or software systems, additionally the
problem of heterogeneity arises. We introduce a specific data integration solution for Web applications
such as Web-enabled information systems. Our contribution is an integration technology framework for
Web-enabled information systems comprising, firstly, a data integration technique based on the declara-
tive specification of transformation rules and the construction of connectors that handle the integration
and, secondly, a mediator architecture based on information services and the constructed connectors to
handle the integration process.
Chapter VI: Using Patterns for Engineering High-Quality Web Applications. In this chapter,
we view the development and maintenance of Web applications from an engineering perspective. A
methodology, termed as POWEM, for deploying patterns as means for improving the quality of Web
applications is presented. To that end, relevant quality attributes and corresponding stakeholder types are
identified. The role of a process, the challenges in making optimal use of patterns, and feasibility issues
involved in doing so, are analyzed. The activities of a systematic selection and application of patterns
are explored. Following a top-down approach to design, examples illustrating the use of patterns during
xix

macro- and micro-architecture design of a Web application are given. Finally, the implications towards
Semantic Web applications and Web 2.0 applications are briefly outlined.
Chapter VII: Component-Based Deployment for Web Applications. The software engineering
community touts component-based software systems as a potential silver bullet for many of its woes:
reducing cycle time; reducing cost;, increasing productivity;, allowing easier integration - to name just a
few. Indeed, many Web-based systems are now built with open-source and vendor provided component
technologies. While these advances have led to improvements in the development process, they have
also led to a great deal of pressure on downstream processes as these systems must be deployed, tuned,
and supported. The complexities in deploying and supporting component-based software for distributed
and Web-based applications are not understood in the academic or professional communities. This
chapter stresses the need for addressing this problem by presenting component-based software for Web
applications from a deployment perspective, characterizing the issues through real-world experiences
with highly component-based applications, and presents strategies and directions for the community to
pursue.
Chapter VIII: Evolving Web Application Architectures, from Model 2 to Web 2. This chapter
explores how Web application software architecture has evolved from the simple beginnings of static
content, through dynamic content, to adaptive content and the integrated client-server technologies of
the Web 2.0. It reviews how various technologies and standards have developed in a repeating cycle of
innovation, which tends to fragment the Web environment, followed by standardization, which enables
the wider reach of new technologies. It examines the impact of the Web 2.0, XML, Ajax and mobile
Web clients on Web application architectures, and how server side processes can support increasingly
rich, diverse and interactive clients. It provides an overview of a server-side Java-based architecture
for contemporary Web applications that demonstrates some of the key concepts under discussion. By
outlining the various forces that influence architectural decisions, this chapter should help developers
to take advantage of the potential of innovative technologies without sacrificing the broad reach of
standards based development.
Chapter IX: Applying Agility to Database Design. Agile methods are flexible, allowing software
developers to embrace changes during the software development life cycle. But the introduction of agile
practices into software organizations may cause unhealthy tensions between the developers and data
professionals. The underlying reason is that when agile methodologies are employed, the two communi-
ties use incompatible approaches, namely simple design and iterative development, which are practices
associated with all agile methodologies, and big design up front (BDUF), a popular database technique.
BDUF is inflexible, as once the database foundation is set, it is difficult to make changes throughout the
software development life cycle. This chapter describes a database development method for a Web envi-
ronment. Using this method, a data professional divides the database into loosely coupled partitions and
resolves the above conflicts by applying certain agile practices. The result is that the database develop-
ment becomes more iterative and incremental. This has the added benefit of supporting rapid application
development in a dynamic environment, a fundamental characteristic of most Web applications.
Chapter X: Automatic Creation of GUIs for Web Based Systems. Service-oriented architecture
(SOA) is an emerging architectural style for developing and structuring business applications, especially
enterprise resource planning (ERP) systems. SOA applications are composed of small, independent and
network-accessible software components, named services. The service composition is normally based on
the enterprises business processes. However, current composition standards like BPEL have no ability
to interact with users. Therefore, we propose a mechanism for including user interaction descriptions
into the composition and extending the composition platform for generating user interfaces. In our case
study, a federated ERP (FERP) system, this mechanism has been implemented in a prototype based on yet
xx

another workflow language (YAWL) dynamically generating Web pages for accessing the ERP system.
Because every aspect including the user interfaces can be manipulated through the service composition,
such systems are highly flexible yet maintainable.
ChapterXI: Prototyping in Web Development. This chapter addresses issues, alternatives, and
best practices for prototyping in Web development. The chapters primary objective is to provide a clear
and concise overview of key concepts and best practices for practitioners and students, as well as other
audiences. The chapter focuses on graphical user interface (UI) prototyping for Web development, but
many of the principles apply to non-UI prototyping and other sorts of software development. First, we
introduce the chapter, and review the major objectives, benefits and risks, and classifications of proto-
types. Second, we describe the major approaches to prototyping. Finally, we conclude with future trends
and a summary of best practices.
Chapter XII: Testing Methods for Web Applications. This chapter introduces several modern
methods and tools for creating tests and integrating testing in Web applications, as well as presenting
some practices that expand the role of testing in software development. Teams adopting practices such
as test-driven development (TDD) and acceptance (Customer) testing have shown significant gains in
the quality and correctness of the code produced. These practices encourage a more holistic view of
testing by integrating a sound testing solution into current software development life cycle models.
Furthermore, tests can play an important role in gathering requirements and providing documentation.
In this chapter, in addition to offering an initiation to some of the modern testing methods and tools,
the authors hope to motivate readers to consider testing as a multi-purpose tool to be used throughout
all stages of development.
Chapter XIII: Outsourcing Issues in Web Development. This chapter addresses issues, alternatives,
and best practices that apply when outsourcing Web development. The chapters primary objective is to
provide a concise overview of key concepts and best practices for practitioners and students, as well as
other audiences. First, we introduce the chapter, provide background, and present three key ideas that are
expanded and developed in the two subsequent sections. The first describes four steps to help executives
and upper management address strategic issues and decisions in outsourcing. The second describes four
more steps to help managers, team leaders, and development teams address more tactical issues. We
conclude with future trends and implications, and a summary of the best practices.
Chapter XIV: Engineering Wireless Mobile Applications. Conventional desktop software ap-
plications are usually designed, built, and tested on a platform similar to the one on which they will
be deployed and run. Wireless mobile application development, on the other hand, is more challeng-
ing because applications are developed on one platform (like UNIX or Windows) and deployed on a
totally different platform like a cellular phone. While wireless applications can be much smaller than
conventional desktop applications, developers should think in small terms of the devices on which the
applications will run and the environment in which they will operate instead of the amount of code to
be written. This chapter presents a systematic approach to engineering wireless application and offers
practical guidelines for testing them. What is unique about this approach is that it takes into account the
special features of the new medium (mobile devices and wireless networks), the operational environ-
ment, and the multiplicity of user backgrounds; all of which pose new challenges to wireless application
development.
Chapter XV: Project Management and Web Software Engineering. The process involved with the
development of Web applications is significantly different from the process of developing applications
on older platforms. This is a difference not only in technologies but in the overall business process and
associated methodology, in other words the project management. Web applications generally manage
content and not just data, and many Web applications are document centric versus data centric. In addition,
xxi

there are many more people involved in the definition, design, development, testing, and approval for
Web applications. The pace of business life is much quicker today than in the past, thus Web applications
need to be deployed much quicker that earlier IT application and they need to be engineered for more
flexibility and adaptability in terms of changing requirements, changing content, changing presentation,
mass user customization. In addition, security concerns are more prevalent in Web applications since the
end users are outside as well as inside the corporate virtual perimeter. Web applications can serve a global
audience and thus there are more diverse stakeholders for these applications. Issues such as language,
culture, time zones, weights and measures, currency, logistics, and so forth, need to be considered. This
chapter re-examines the project management issues involved with Web applications.
Chapter XVI: Resources on Web-Centric Computing. This chapter provides an extensive listing
of resources for Web software engineering as well as an author sponsored link to more detailed and more
current resources as they become available

rEfErENcE

Hundley, R., et al. (2004), The Global Course of the Information Revolution: Recurring Themes and
Regional Variations, RAND Corporation, www.rand.org/publications/MR/MR1680/


Chapter I
Web Engineering:
Introduction and Perspectives

San Murugesan
Southern Cross University, Australia

Athula Ginige
University of Western Sydney, Australia

aBsTracT

Web-based systems and applications now deliver a complex array of functionality to a large number of
diverse groups of users. As our dependence and reliance on the Web has increased dramatically over
the years, their performance, reliability and quality have become paramount importance. As a result,
the development of Web applications has become more complex and challenging than most of us think.
In many ways, it is also different and more complex than traditional software development. But, cur-
rently, the development and maintenance of most Web applications is chaotic and far from satisfactory.
To successfully build and maintain large, complex Web-based systems and applications, Web developers
need to adopt a disciplined development process and a sound methodology. The emerging discipline
of Web engineering advocates a holistic, disciplined approach to successful Web development. In this
chapter, we articulate and raise awareness of the issues and considerations in large, complex Web ap-
plication development, and introduce Web engineering as a way of managing complexity and diversity
of large-scale Web development.

INTroducTIoN plications now deliver a complex array of varied


content and functionality to a large number of
Within a decade, the World Wide Web has become heterogeneous users. The interaction between a
ubiquitous, and it continues to grow unabated Web system and its backend information systems
at exponential rate. Web-based systems and ap- has also become more tight and complex.

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Web Engineering

As we now increasingly depend on Web-based Hence, ad hoc development is not appropriate


systems and applications, their performance, for large, complex Web systems, and it could result
reliability and quality have become paramount in serious problems: the delivered systems are not
importance, and the expectations of and demands what the user wants; they are not maintainable
placed on Web applications have increased sig- and scalable, and hence have short useful life;
nificantly over the years. As a result, the design, they often do not provide desired levels of per-
development, deployment and maintenance of formance and security; and/or most Web systems
Web-based systems have become more complex are often much behind schedule and overrun the
and difficult to manage. budget estimates.
Though massive amounts of Web development More importantly, many enterprises and
and maintenance continue to take place, most of organisations cannot afford to have faulty Web
them are carried out in ad hoc manner, resulting systems or tolerate downtime or inconsistent or
in poor quality Web systems and applications. stale content/information. The problems on the
Problems such as outdated or irrelevant informa- Web become quickly visible and frustrate the
tion, difficulties in using the Web site and finding users, possibly costing the enterprises heavily in
relevant information of interest, slow response, terms of financial loss, lost customer and loss of
Web site crashes, and security breaches are reputation. As is often said, We cannot hide the
common. We encounter these kinds of problems problems on the Web.
because Web developers failed to address users Unfortunately, despite being faced with these
needs and issues such as content management, problems and challenges, most Web application
maintenance, performance, security, and scalabil- development still continues to be ad hoc, chaotic,
ity of Web applications. They also often overlook failure-prone, and unsatisfactory. And this could
important non-technical considerations such as get worse as more inherently complex Web sys-
copyright and privacy. tems and applications that involve interaction with
Many Web developers seem to think that many other systems or components pervade us
Web application development is just simple Web and our dependence on them increases.
page creation using HTML or Web development To successfully build large-scale, complex
software such as Front Page or Dreamweaver and Web-based systems and applications, Web de-
embodying few images and hyperlinking docu- velopers need to adopt a disciplined development
ments and Web pages. Though certain simple process and a sound methodology, use better
applications such as personal Web pages, semi- development tools, and follow a set of good
nar announcements, and simple online company guidelines.
brochures that call for simple content presenta- The emerging discipline of Web engineering
tion and navigation fall into this category, many addresses these needs and focuses on successful
Web applications are complex and are required to development of Web-based systems and appli-
meet an array of challenging requirements which cations, while advocating a holistic, disciplined
change and evolve. There is more to Web appli- approach to Web development.
cation development than visual design and user Web Engineering uses scientific, engineer-
interface. It involves planning, Web architecture ing, and management principles and systematic
and system design, testing, quality assurance and approaches to successfully develop, deploy, and
performance evaluation, and continual update and maintain high-quality Web systems and applica-
maintenance of the systems as the requirements tions (Murugesan et al., 1999). It aims to bring
and usage grow and develop. Web-based system development under control,


Web Engineering

minimise risks and improve quality, maintain- development process, discusses considerations
ability, and scalability of Web applications. in Web design and recommends ten key steps for
The essence of Web engineering is to suc- successful development. In conclusion, it offers
cessfully manage the diversity and complexity perspectives on Web Engineering and highlights
of Web application development, and hence, some of the challenges facing Web developers and
avoid potential failures that could have serious Web engineering researchers.
implications.
This chapter aims to articulate and raise aware-
ness of the issues and considerations in large-scale EvoluTIoN of THE WEB
Web development and introduce Web engineering
as a way of managing complexity and diversity The Web has become closely ingrained with our
of large-scale Web development. life and work in just a few years. From its initial
Following a brief outline of the evolution of objective of facilitating easy creation and sharing
the Web and the categorisation of Web applica- of information among a few scientists using simple
tions based on their functionality, this chapter Web sites that consisted primarily of hyperlinked
examines current Web development practices text documents, the Web has grown very rapidly
and their limitations, and emphasises the need in its scope and extent of use, supported by con-
for a holistic, disciplined approach to Web de- stant advances in Internet and Web technologies
velopment. It then presents an overview of Web and standards. In 10 years, the number of Web
engineering, describes an evolutionary Web sites dramatically has grown from 100 to over 45
million (Figure 1).

Figure 1. Growth of Web sites

Note: Web Sites = Number of Web servers; one host may have multiple sites by using different domains or port numbers.
Source: Hobbes Internet Timeline, 2004, www.zakon.org/robert/internet/timeline/


Web Engineering

Enterprises, travel and hospitality industries, Media: Integration of different types of


banks, educational and training institutions, media such as data, text, graphics, images,
entertainment businesses and governments use audio and video, and their presentation (ani-
large-scale Web-based systems and applica- mation, 3D visualisation); different types of
tions to improve, enhance and/or extend their interaction and channels of communications
operations. E-commerce has become global (one-to-one, one-to-many, many-to-one, and
and widespread. Traditional legacy information many-to-many).
and database systems are being progressively Information science: Information organisa-
migrated to the Web. Modern Web applications tion, presentation, indexing, retrieval, aggre-
run on distributed hardware and heterogeneous gation, and management; and collaborative
computer systems. Furthermore, fuelled by recent and distributed content creation.
advances in wireless technologies and portable Information and communication technol-
computing and communication devices, a new ogy and networking: Efficient and cost-ef-
wave of mobile Web applications are rapidly fective storage, retrieval, processing, and
emerging. The Web has changed our lives and presentation of information; infrastructures
work at every level, and this trend will continue that facilitate transfer and sharing of data
for the foreseeable future. and information; wired and wireless Inter-
The evolution of the Web has brought to- net communication; and personalised and
gether some disparate disciplines such as media, context-aware Web applications.
information science, and information and com-
munication technology, facilitating easy creation, Many new Web technologies and standards
maintenance, sharing, and use of different types of have emerged in the last couple of years to better
information from anywhere, any time, and using support new, novel Web applications: XML, Web
a variety of devices such as desktop and notebook services, the Semantic Web, Web personalisation
computers, pocket PCs, personal digital assistants techniques, Web mining, Web intelligence, and
(PDAs), and mobile phones. Contributions of each mobile and context-aware services.
of these disciplines to the evolution and growth The advances in Internet and Web technologies
of the Web are: and the benefits they offer have led to an avalanche
of Web sites, a diverse range of applications, and
phenomenal growth in the use of the Web.

Table 1. Categories of Web applications based on functionality

Functionality/Category Examples
Informational Online newspapers, product catalogues, newsletters, manuals, reports, online classifieds, online books
Interactive Registration forms, customized information presentation, online games
Transactional Online shopping - ordering goods and services, online banking, online airline reservation, online payment
of bills
Workflow oriented Online planning and scheduling, inventory management, status monitoring, supply chain management
Collaborative work Distributed authoring systems, collaborative design tools
environments
Online communities, Discussion groups, recommender systems, online marketplaces, e-malls (electronic shopping malls),
marketplaces online auctions, intermediaries


Web Engineering

categories of Web applications process, rather than simply hacking together a


few Web pages.
The scope and complexity of Web applications Web applications are not just Web pages, as
vary widely: from small scale, short-lived (a few they may seem to a causal user. The complexity
weeks) applications to large-scale enterprise ap- of many Web-based systems is often deceptive
plications distributed across the Internet, as well and is not often recognised by many stakeholders
as via corporate intranets and extranets. Web ap- clients who fund the development, Web devel-
plications now offer vastly varied functionality and opment managers and Web developersearly in
have different characteristics and requirements. the development.
Web applications can be categorised in many Several attributes of quality Web-based sys-
waysthere is no unique or widely accepted tems such as usability, navigation, accessibility,
way. Categorisation of Web applications based on scalability, maintainability, compatibility and
functionality (Table 1) is useful in understanding interoperability, and security and reliability often
their requirements and for developing and deploy- are not given the due consideration they deserve
ing Web-based systems and applications. during development. Many Web applications also
fail to address cultural or regional considerations,
and privacy, moral and legal obligations and re-
WEB dEvElopmENT pracTIcEs quirements. Most Web systems also lack proper
testing, evaluation, and documentation.
Web development has a very short history, com- While designing and developing a Web appli-
pared to the development of software, informa- cation, many developers fail to acknowledge that
tion systems, or other computer applications. But Web systems requirements evolve, and they do
within a period of few years, a large number of not take this into consideration while developing
Web systems and applications have been devel- Web systems. Web-based systems development is
oped and put into widespread use. not a one-time event as perceived and practiced by
The complexity of Web-based applications has many; it is a process with an iterative lifecycle.
also grown significantlyfrom information dis- Another problem is that most Web application
semination (consisting of simple text and images development activities rely heavily on the knowl-
to image maps, forms, common gateway interface edge and experience of individual (or a small group
[CGI], applets, scripts, and style sheets) to online of) developers and their individual development
transactions, enterprise-wide planning and sched- practices rather than standard practices.
uling systems, Web-based collaborative work Anecdotal evidence and experience suggest
environments, and now multilingual Web sites, that the problems of ad hoc development (outlined
Web services and mobile Web applications. above and in the Introduction section) continue to
Nevertheless, many consider Web develop- be faced by developers, users, and other stakehold-
ment primarily an authoring work (content/page ers. As a result, these are increasing concerns about
creation and presentation) rather than application the manner in which complex Web-based systems
development. They often get carried away by are created as well as the level of performance,
the myth that Web development is an art that quality, and integrity of these systems.
primarily deals with media manipulation and
presentation. Sure, like the process of designing Many organisations are heading toward a Web
and constructing buildings, Web development has crisis in which they are unable to keep the system
an important artistic side. But Web development updated and/or grow their system at the rate that
also needs to follow a discipline and systematic is needed. This crisis involves the proliferation


Web Engineering

of quickly hacked together Web systems that (Deshpande et al., 2002; Deshpande & Hansen,
are kept running via continual stream of patches 2001; Ginige & Murugesan, 2001a, 2001b; Glass,
or upgrades developed without systematic ap- 2001; Lowe 2003; Murugesan et al., 1999; Press-
proaches. (Dart, 2000) man, 2001 and 2004).
Web applications have the following charac-
Poorly developed Web-based applications have teristics:
a high probability of low performance and/or
failure. Recently, large Web-based systems have Web applications constantly evolve. In many
had an increasing number of failures (Williams, cases, it is not possible to fully specify what
2001). In certain classes of applications such as a Web site should or will contain at the start
supply-chain management, financial services, of the development process, because its
and digital marketplaces, a system failure can structure and functionality evolve over time,
propagate broad-based problems across many especially after the system is put into use.
functions, causing a major Web disaster. The Further, the information contained within
cost of bad design, shabby development, poor and presented by a Web site will also change.
performance, and/or lack of content management Unlike conventional software that goes
for Web-based applications has many serious through a planned and discrete revision at
consequences. specific times in its lifecycle, Web applica-
The primary causes of these failures are a lack tions continuously evolve in terms of their
of vision, shortsighted goals, a flawed design and requirements and functionality (instability
development process, and poor management of of requirements). Managing the change and
development effortsnot technology (Ginige & evolution of a Web application is a major
Murugesan, 2001a). The way we address these technical, organisational and management
concerns is critical to successful deployment and challengemuch more demanding than a
maintenance of Web applications. traditional software development.
Therefore, one might wonder whether devel- Further, Web applications are inherently
opment methodologies and processes advocated different from software. The content, which
over the years for software or information systems may include text, graphics, images, audio,
development and software engineering principles and/or video, is integrated with procedural
and practices could be directly used for devel- processing. Also, the way in which the
oping Web applications. Though the valuable content is presented and organised has im-
experiences gained and some of processes and plications on the performance and response
methodologies used in software engineering (and time of the system.
other domains) could be suitably adapted for Web Web applications are meant to be used by
development as appropriate, they are not adequate, a vast, variable user communitya large
as Web development is rather different from soft- number of anonymous users (could be
ware development in several aspects. many millions like in the cases of eBay and
the 2000 Sydney Olympics Web site) with
Web development is different varying requirements, expectations, and
skill sets. Therefore, the user interface and
It is important to realise that Web application usability features have to meet the needs
development has certain characteristics that make of a diverse, anonymous user community
it different from traditional software, information to whom we cannot offer training sessions,
system, or computer application development thus complicating human-Web interaction


Web Engineering

(HWI), user interface, and information traditional and non-traditional software,


presentation. interpreted scripting languages, HTML files,
Nowadays, most Web-based systems are databases, images, and other multimedia
content-driven (database-driven). Web- components such as video and audio, and
based systems development includes cre- complex user interfaces (Offurt, 2002).
ation and management of the content, as The delivery medium for Web applications
well as appropriate provisions for subsequent is quite different from that of traditional
content creation, maintenance, and man- software. Web applications need to cope
agement after the initial development and with a variety of display devices and for-
deployment on a continual basis (in some mats, and supporting hardware, software,
applications as frequently as every hour or and networks with vastly varying access
more). speeds.
In general, many Web-based systems Security and privacy needs of Web-based
demand a good look and feel, favour- systems are more demanding than that of
ing visual creativity and incorporation of traditional software.
multimedia in presentation and interface. The Web exemplifies a greater bond between
In these systems, more emphasis is placed art and science than generally encountered
on visual creativity and presentation. in software development.
Web applications have a compressed de-
velopment schedule, and time pressure is These unique characteristics of the Web and
heavy. Hence, a drawn-out development Web applications make Web development differ-
process that could span a few months to a ent and more challenging than traditional software
year or more is not appropriate. development.
Ramifications of failure or dissatisfaction of
users of Web-based applications can be much
worse than conventional IT systems. WEB ENGINEErING
Web applications are developed by a small
team of (often young) people with diverse Web engineering is way of developing and orga-
backgrounds, skills, and knowledge com- nising knowledge about Web application devel-
pared to a team of software developers. opment and applying that knowledge to develop
Their perception of the Web and the quality Web applications, or to address new requirements
of Web-based systems also differ consider- or challenges. It is also a way of managing the
ably, often causing confusion and resulting complexity and diversity of Web applications.
in misguided priorities. A Web-based system is a living system. It is
There are rapid technological changescon- like a garden it continues to evolve, change,
stant advances in Web technologies and and grow. A sound infrastructure must be in place
standards bring their own challenges new to support the growth of a Web-based system in
languages, standards, and tools to cope with; a controlled, but flexible and consistent manner.
and lots of errors and bugs in early versions of Web engineering helps to create an infrastructure
new mark-up languages, development tools, that will allow evolution and maintenance of a Web
and environments (technology instability). system and that will also support creativity.
Web development uses cutting-edge, diverse Web engineering is application of scientific,
technologies and standards, and integrates engineering, and management principles and
numerous varied components, including disciplined and systematic approaches to the


Web Engineering

successful development, deployment and main- Web-based systems. As previously stated, de-
tenance of high quality Web-based systems and velopment of Web-based systems is much more
applications (Murugesan et al., 1999). than traditional software development. There are
It is a holistic and proactive approach to the subtle differences in the nature and lifecycle of
development of large Web-based systems, and Web-based and software systems, as well as the
it aims to bring the current chaos in Web-based way in which theyre developed and maintained.
system development under control, minimise Web development is a mixture between print
risks, and enhance the maintainability and quality publishing and software development, between
of Web systems. marketing and computing, between internal com-
Since its origin and promotion as a new dis- munications and external relations, and between
cipline in 1998 (Deshpande, Ginige, Murugesan art and technology (Powell, 2000).
& Hansen, 2002; Murugesan, 1998), Web engi-
neering is receiving growing interest among the Evolution of Web Engineering
stakeholders of Web-based systems, including
developers, clients, government agencies, users, Web Engineering is progressively emerging as a
academics, and researchers. In addition, this new discipline addressing the unique needs and
new field has attracted professionals from other challenges of Web-based systems development.
related disciplines such as multimedia, software Since 1998, when the First Workshop on Web
engineering, distributed systems, computer sci- Engineering was held in Brisbane, Australia, in
ence, and information retrieval. conjunction with the World Wide Web Conference
(WWW7), there has been series of workshops
Web Engineering is multidisciplinary and special tracks at major international confer-
ences (WWW conferences 1999-2005, HICS
Building a large, complex Web-based system 1999-2001, SEKE 2002 and 2003 and others), and
calls for knowledge and expertise from many a dedicated annual International Conference on
different disciplines and requires a diverse team Web Engineering (ICWE) 2002-2005.
of people with expertise in different areas. Web There also have been a few special issues of
engineering is multidisciplinary and encompasses journals on topics related to Web Engineering.
contributions from diverse areas: systems analysis There are two new dedicated journals, Journal
and design, software engineering, hypermedia/ of Web Engineering (www.rintonpress.com/
hypertext engineering, requirements engineer- journals/jweonline.html) and Journal of Web
ing, human-computer interaction, user interface, Engineering and Technology (www.inderscience.
information engineering, information indexing com), as well as an edited book, Web Engineer-
and retrieval, testing, modelling and simulation, ing: Managing Diversity and Complexity of
project management, and graphic design and Web Application Development (Murugesan &
presentation. Deshpande, 2001).
Contrary to the perception of some profession- The bibliography at the end of this chapter
als, Web Engineering is not a clone of software gives details of special issues, conferences, books,
engineering, although both involve programming and journal articles on Web engineering and other
and software development (Ginige & Murugesan, related areas.
2001a). While Web Engineering uses software New subjects and courses on Web engineer-
engineering principles, it encompasses new ap- ing are now being taught at universities, both at
proaches, methodologies, tools, techniques, and undergraduate and postgraduate levels, and more
guidelines to meet the unique requirements of research is being carried out on various aspects


Web Engineering

of Web engineering. Also, not surprisingly, norm and is catered to. And, this also mandates
there is growing interest among Web develop- adoption of a disciplined process for successful
ers in using Web engineering approaches and Web development.
methodologies.
Web development process

EvoluTIoNary WEB A Web development process outlines the various


dEvElopmENT steps and activities of Web-based systems devel-
opment. It should clearly define a set of steps that
Web-applications are evolutionary. For many Web developers can follow and must be measurable and
applications, it is not possible to specify fully trackable (Ginige & Murugesan, 2001c).
what their requirements are or what these systems Characteristics of Web applications that make
will contain at the start of their development and their development difficultand uniquely chal-
later, because their structure and functionality lenginginclude their real-time interaction,
will change constantly over time. Further, the complexity, changeability, and the desire to pro-
information contained within and presented by a vide personalised information. In addition, the
Web site often changes in some applications as effort and time required to design and develop
often as every few minutes to a couple of times a a Web application is difficult to estimate with a
day. Thus, the ability to maintain information and reasonable accuracy.
to scale the Web sites structure (and the functions Based on our practical experience in building
it provides) is a key consideration in developing Web applications, we recommend an evolutionary
a Web application. process for Web development, shown in Figure
Given this Web environment, it seems the 2. This process assists developers in understand-
only viable approach for developing sustainable ing the context in which the application will
Web applications is to follow an evolutionary be deployed and used; helps in capturing the
development process where change is seen as a requirements; enables integration of the know-

Figure 2. Web development process

Context Analysis

System Architecture Process


Quality Control & Assurance

Design Model
Project Management

Documentation

Project Plan

Web Site
Development

Evaluation &
Maintenance Deployment


Web Engineering

how from different disciplines; facilitates the information about the operational and application
communication among various members involved environment, and identify the profile of typical
in the development process; supports continuous system users.
evolution and maintenance; facilitates easier In addition to the functional requirements, po-
management of the information content; and tential demands on the scalability, maintainability,
helps in successfully managing the complexity availability, and performance of the system need
and diversity of the development process (Ginige to be specifically elicited and understood by the
& Murugesan 2001c). developers at the beginning of the development
process. Based on this information, developers
context analysis then arrive at the systems functional, technical,
and non-technical requirements, which, in turn,
The first essential step in developing a Web-based influence the systems architectural design.
system is context analysis, where we elicit and For instance, if the information content and the
understand the systems major objectives and systems functions are going to evolve consider-
requirements, as well as the needs of the systems ably, like in most e-business systems, the system
typical users and the organisation that needs the needs to be designed for scalability. On the other
system. It is important to realise at this stage that hand, if the information changes frequently like
requirements will change and evolve even dur- in weather reports, special sales offerings, job
ing system development and after its deployment. vacancies, product price list, brochures, and latest
It is also important to study briefly the operation news or announcements to keep the informa-
for which a Web application is to be developed, tion current and consistent, the system needs to
and the potential implications of introduction of the be designed for easy information maintainability
new system on the organisation. This study should (Merialdo et al., 2003). Moreover, where the ap-
normally include: how information (to be made plication demands very high availability and needs
available on the Web) is created and managed; to cater for high peak or uncertain demands, the
organisational policy on ownership and control system may be required to run on multiple Web
(centralised or decentralised) of information; its servers with load balancing and other performance
current and future plans and business objectives; enhancement mechanisms (Almedia & Menasce,
possible impact of the introduction of Web-based 2002; Menasce & Almedia, 2002; Oppenheimer
applications on the organisation; the resulting & Patterson, 2002). Examples of this category
changes in its business and business processes; of applications are online stock trading, online
and emerging trends in the industry sector. banking, and high volume near-real-time sports
As the Web applications evolve and need to be and entertainment Web sites such as the Olympics,
modified to cater to new requirements some Wimbledon, and Oscar Web sites.
of which arise from changes or improvements in Thus, it is very important to recognise that
the business process as a result of deployment of scalability, maintainability, and/or performance
the new Web-based system an understanding need to be built into the initial system architecture.
of a big picture about the organisation and its It would be very hard, or impossible, to incor-
information management policies and practices is porate these features if the initial architecture is
a prerequisite for successful design, development, not designed to support them. To illustrate this,
and deployment of Web-based applications. consider an e-business Web site that provides
Before starting Web development, therefore, product information, such as price and availabil-
developers need to elicit and understand the sys- ity, which appears on many different pages and
tems major objectives and requirements, gather changes frequently. If the Web site is designed

0
Web Engineering

as static Web pages, then every time a products information required to develop the Web applica-
information changes, one has to incorporate the tion. In addition, it can also identify non-technical
change in every page that contains this informa- issues that have to be addressed for successful
tion. This is a cumbersome and laborious task, implementation and application of the system.
and often changes are only made to a few pages, These may include reengineering of business
instead of all relevant pages. As a consequence of processes where required, organisational and
this, the same information appearing on different management policies, staff training, and legal,
pages will be inconsistent. cultural and social aspects.
A better approach to ensure consistency of in- Context analysis can minimise or eliminate
formation across all Web pages is to automatically the major problems plaguing large Web-based
retrieve the information, when and where needed, system development. But, many developers and
from a single information source. If product in- project managers overlook this essential first step
formation is stored in a single central database, in Web system development and face the problems
then by extracting the relevant information from later when it is hard to correct them.
this database, we can dynamically create various Based on the context analysis, we then arrive at
Web pages that contain this information. In the the systems technical and non-technical require-
database-driven approach, we need to change ments (Lowe, 2003), which, in turn, influence the
the information only in one place: the database. system architecture design.
Further, the database-driven Web sites can have
a back-end system to allow an authorised person, architecture design
who may not be skilled in Web page development,
to make information changes easily through a Web In system architecture design, we decide on vari-
interface, from anywhere. A database-driven Web ous components of the system and how they are
site requires a completely different architecture linked. At this stage, we design:
than a Web site that has only static Web pages.
Hence, an appropriate architecture that would An overall system architecture describing
meet the systems requirements needs to be chosen how the network and the various servers
early in the system development. (Web servers, application servers and da-
Thus, as highlighted in Table 2, the objective tabase servers) interact;
of context analysis is to capture and derive the key

Table 2. Objectives of context analysis of Web applications

The objectives of context analysis, the first step in Web development, are to:
Identify the stakeholders and their broader requirements and experiences.
Identify the functions the Web site needs to provide (immediately, and in the
short, medium, and long term).
Establish what information needs to be on the Web site, how to get this
information, and how often this information may change.
Identify the corporate requirements in relation to look and feel, performance,
security, and governance.
Get a feel of the number of users (typical and peak) and anticipated demands on
the system.
Study similar (competitive) Web sites to gain an understanding of their
functionalities, strengths, and limitations.


Web Engineering

An application architecture depicting vari- Web page design


ous information modules and the functions
they support; and Web page design is an important activity; it de-
A software architecture identifying various termines what information is presented and how
software and database modules required to it is presented to the users. A prototype usually
implement the application architecture. contains a set of sample pages to evaluate the page
layout, presentation, and navigation (within and
Table 3 summarises the means of fulfilling among different pages). Based on the feedback
some of the requirements of Web-based applica- from the stakeholders, the page design is suitably
tions (Ginige & Murugesan, 2001c). modified. This process may go through a few
We then decide on an appropriate development iterations until the stakeholders and designers
process model (Uden, 2002; Pressman, 2004) and are satisfied with the page layout, presentation
develop a project plan. To successfully manage and the navigation structure.
Web development, a sound project plan and a real- Web page content development needs to take
istic schedule are necessary. Progress of develop- into consideration the stakeholders requirements,
ment activities must be monitored and managed. users cognitive abilities (Cloyd, 2001), technical
Project planning and scheduling techniques that issues and considerations, nontechnical issues,
are commonly used in other disciplines can be earlier experiences of developers and users, and
used for Web development. Following this, the lessons learned from similar Web applications
various components of the system and Web pages (Figure 3).
are designed, developed and tested. If the Web system is intended for global use,
by users from different countries, the Web content
and presentation may have to be localised; there

Table 3. Means of fulfilling the requirements of Web application

Requirement Means of Fulfilment


Uniform look and feel across all the Web pages that can Creation of Web pages using templates and style sheets
easily be modified
Consistency of information that may appear in different Storing information in a single place (in a database or as an XML file) -
places or pages without duplication of information in different places or databases and re-
trieving the required information for presentation where and when needed
Ease of information update and maintenance Provision of a back-end system to edit information in a data repository;
could have Web interface for easy access from anywhere
Ability to add new Web pages easily Dynamic generation of navigational links, rather than predetermined static
navigational links
Decentralised system administration Provision of a multi-user login system to access back-end systems and in-
clusion of a user administration system that can assign specific functions
and data sets to content managers and other developers/administrators
Mechanisms for quality control and assessing the relevance Inclusion of metadata for Web pages; use of a Web robot for gathering sa-
of information lient information, processing the information gathered and taking appropri-
ate action(s) for ensuring quality or relevance of information presented.
Increased probability of being found through search engines Using meta tags and registering with search engines


Web Engineering

Figure 3. Web page design

Experience of
lessons learned users and
developers

stakeholder Nontechnical
requirements considerations

Technology Web page users cognitive


constraints design skills & abilities

Guidelines for
Information Information
look & feel content
structure access methods
development

also may be a need for multilingual Web sites terns (by analysing Web logs), and take suitable
(for details, see Becker & Mottay, 2001; Collins, measures to fix the shortcomings and weaknesses,
2002). Also, the Web sites content and usability if any.
have to be designed from a global perspective and
be responsive to cultural sensitivity in language project management
along with appropriate use of colour, presentation,
and animation (Becker & Mottay, 2001). The purpose of project management is to ensure
that all the key processes and activities work in
Web maintenance harmony. Building successful Web-based applica-
tions requires close coordination among various
After a Web-based system is developed and de- efforts involved in the Web development cycle.
ployed online for use, it needs to be maintained. Many studies, however, reveal that poor project
As outlined earlier, content maintenance is a management is the major cause of Web failures
continual process. We need to formulate content both during development and subsequently in
maintenance policies and procedures, based on the operational phase. Poor project manage-
the decision taken at the system architecture de- ment will defeat good engineering; good project
sign stage on how the information content would management is a recipe for success. Successfully
be maintained, and then we need to implement managing a large, complex Web development is a
them. Further, as the requirements of Web systems challenging task requiring multidisciplinary skills
grow and evolve, the system needs to be updated and is, in some ways, different from managing
and also may be redesigned to cater to the new traditional IT projects.
requirements. Quality control, assurance and documenta-
It is important to periodically review Web- tion are other important activities, but they are
based systems and applications regarding the often neglected. Like project management, these
currency of information content, potential security activities need to spread throughout the Web
risks, performance of the system, and usage pat- development lifecycle.


Web Engineering

steps to successful development 9. Measure the systems performance, analyse


the usage of the Web application from Web
Successful development of Web systems and logs, and review and address users feedback
applications involves multiple interactive steps and suggestions.
which influence one another. We recommend the 10. Refine and update the system.
following key steps for successful development
and deployment of Web applications (Ginige &
Murugesan, 2001c): WEB sysTEm dEsIGN:
cHallENGEs
1. Understand the systems overall function
and operational environment, including The Internet is an open platform that provides
the business objectives and requirements, unparalleled opportunities. But it has virtually no
organisation culture and information man- control over visitor volume, or when and how they
agement policy. access a Web system. This makes developing Web
2. Clearly identify the stakeholdersthat is, applications that exhibit satisfactory performance
the systems main users and their typical even under a sudden surge in number of users a
profiles, the organisation that needs the nebulous and challenging task.
system, and who funds the development. Satisfying the expectations and needs of differ-
3. Elicit or specify the (initial) functional, ent types of users with varying skills is not easy.
technical, and nontechnical requirements When users find a site unfriendly, confusing, or
of the stakeholders and the overall system. presented with too much information, they will
Further, recognise that these requirements leave frustrated. Worse yet, these frustrated users
may not remain the same; rather, they are may spread the bad news to many others. Web
bound to evolve over time during the system site usability factors include good use of colours,
development. information content, easy navigation, and many
4. Develop overall system architecture of the more. They also include evaluation from an inter-
Web-based system that meets the technical national perspective so that you can reach a global
and nontechnical requirements. audience. Web usability factors that impact the
5. Identify subprojects or subprocesses to Web user experience are (Becker & Berkemeyer,
implement the system architecture. If the 2002): page layout, design consistency, accessibil-
subprojects are too complex to manage, ity, information content, navigation, personalisa-
further divide them until they become a set tion, performance, security, reliability, and design
of manageable tasks. standards (naming conventions, formatting, and
6. Develop and implement the subprojects. page organisation).
7. Incorporate effective mechanisms to man- A Web-based system also has to satisfy many
age the Web systems evolution, change, and different stakeholders besides the diverse range of
maintenance. As the system evolves, repeat users, including: persons who maintain the system,
the overall process or some parts of it, as the organisation that needs the system, and those
required. who fund the system development. These may
8. Address the nontechnical issues, such as pose some additional challenges to Web-based
revised business processes, organisational system design and development.
and management policies, human resources Todays Web-savvy consumers do not toler-
development, and legal, cultural, and social ate much margin of error or failure. Web system
aspects. slow down, failure, or security breach may cause


Web Engineering

a loss of its customers probably permanently. these system qualities are often more daunting
A whopping 58 percent of first time customers to understand and manage.
would not return to a site that crashed (Electronic Scalability refers to how well a systems
Hit and Run, USA Today, 10 Feb 2000). Accord- architecture can grow, as traffic, demand for
ing to a study (Inter@ctive Week, 6 Sep 1999), services, or resource utilisation grows. As Web
US$4.35 billion may be lost in e-business due to sites grow, small software weaknesses that had
poor Web download speeds alone. no initial noticeable effects can lead to failures,
As Web applications are becoming mission- reliability problems, usability problems, and
critical, there is greater demand for improved security breaches. Developing Web applications
reliability, performance, and security of these that scale well represents one of todays most
applications. important development challenges.
Poor design and infrastructure have caused Flexibility is the extent to which the solution
many Web applications to be unable to support the can adapt as business requirements change. A
demands placed on them, so they have therefore flexible architecture facilitates greater reusability
failed. Many Web sites have suffered site crashes, and quicker deployment.
performance failures, security breaches, and out- Thus, the challenge is to design and develop
ages resulting in irate customers, lost revenue, sustainable Web systems for better:
devalued stocks, a tarnished reputation (bad pub-
licity, lack of customer confidence), permanent Usabilityinterface design, navigation
loss of customers, and law suits (Williams, 2001). (Becker & Mottay 2001),
Stock prices have become inextricably linked to Comprehension,
the reliability of a companys e-commerce site. Performanceresponsiveness,
The recent major failures and their impact on Security and integrity,
enterprises have served as a forceful reminder Evolution, growth, and maintainability,
of the need for capacity planning, and improved and
performance, quality, and reliability. Successful Testability.
Web application deployment demands consistent
Web site availability, a better understanding of
its performance, scalability, and load balancing. WEB TEsTING aNd EvaluaTIoN
Proactive measures are needed to prevent grind-
ing halts and failures from happening in the first Testing plays a crucial role in the overall develop-
place. ment process (Becker & Berkemeyer, 2002; Hieatt
Large-scale Web system design is a complex & Mee, 2002; Lam, 2001). However, more often
and a challenging activity as it needs to consider than not, testing and evaluation are neglected
many different aspects and requirements, some aspects of Web development. Many developers
of which may have conflicting needs (Ivory & test the system only after it had met with failures
Hearst, 2002; Siegel, 2003; Cloyd, 2001). or limitations have become apparent, resorting
We use terms like scalability, reliability, avail- to what is known as retroactive testing. What is
ability, maintainability, usability, and security desired in the first place is proactive testing at
to describe how well the system meets current various stages of the Web development lifecycle.
and future needs and service-level expectations. Benefits of proactive testing include assurance of
These -ilities characterise (Williams, 2000) a proper functioning and guaranteed performance
Web systems architectural and other qualities. levels, avoidance of costly retroactive fixes, opti-
In the face of increasingly complex systems, mal performance, and lower risk.


Web Engineering

Testing and validating a large complex Web KNoWlEdGE aNd sKIlls for
system is a difficult and expensive task. Testing WEB dEvElopmENT
should not be seen as a one-off activity carried
out near the end of development process. One The knowledge and skills needed for large,
needs to take a broad view and follow a more complex Web application development are quite
holistic approach to testing from design all the diverse and span many different disciplines. They
way to deployment, maintenance, and continual can be broadly classified as:
refinement.
The test planning needs to be carried out early Technologies supporting and facilitating
in the project lifecycle. A test plan provides a Web applications
roadmap so that the Web site can be evaluated Design methods
through requirements or design stage. It also Design for usabilityinterface design,
helps to estimate the time and effort needed for navigation
testing establishing a test environment, find- Design for comprehension
ing test personnel, writing test procedures before Design for performance
any testing can actually start, and testing and responsiveness
evaluating the system. Design for security and integrity
Lam (2001) groups Web testing into the follow- Design for evolution, growth and
ing broad categories and provides excellent practi- maintainability
cal guidelines on how to test Web systems: Design for testability
Graphics and multimedia design
Browser compatibility Web page development
Page display System architecture
Session management Web development methods and processes
Usability Web project management
Content analysis Development tools
Availability Content management
Backup and recovery Web standards and regulatory require-
Transactions ments
Shopping, order processing
Internalisation Web development Team
Operational business procedures
System integration As previously mentioned, development of a
Performance Web application requires a team of people with
Login and security diverse skills and backgrounds (Hansen, 2004).
These individuals include programmers, graphic
Experience shows that there are many com- designers, Web page designers, usability experts,
mon pitfalls in Web testing and attempts should content developers, database designers and ad-
be made overcome them (Lam, 2001). Testing and ministrators, data communication and networking
evaluation of a Web application may be expensive, experts, and Web server administrators. A Web
but the impact of failures resulting from lack of development team is multidisciplinary, like a film
testing could be more costly or even disastrous. production team, and must be more versatile than
a traditional software development team.


Web Engineering

Hansen et al. (2001) presents a classification with such developments. (Deshpande, Olsina &
of the participants in a Web development team Murugesan, 2002)
and a hierarchy for their skills and knowledge.
This classification helps in forming a team and Some of the areas that need further study, in
in devising a strategy for successful reskilling of no particular order, include:
the development team.
Web application delivery on multiple devices
desktop and pocket PCs, mobile phones,
coNclusIoN PDAs, TVs and refrigerators
Context-aware Web applications and con-
Web engineering is specifically targeted toward text-sensitive responses
the successful development, deployment and Device-independent Web access and content
maintenance of large, complex Web-based sys- presentation
tems. Modelling and simulation of Web applica-
It advocates a holistic and proactive approach tions and systems
to developing successful Web applications. As Performance evolution and enhancement
more applications migrate to the Web environ- Testing and validation of systems
ment and play increasingly significant roles in Effort and cost estimation
business, education, healthcare, government, Web personalisation
and many day-to-day operations, the need for a Quality control and assurance
Web engineering approach to Web application
development will only increase. Further, as we No silver Bullet!
now place greater emphasis on the performance,
correctness, and availability of Web-based sys- Web Engineering will not make the problems
tems, the development and maintenance process and the risks go away. But, it can help you plan,
will assume greater significance. monitor, control, and cope with the challenging
Web Engineering is an emerging discipline task of developing large, complex Web applica-
having both theoretical and practical significance. tions. It will also facilitate making more informed
It is gaining the interest among researchers, devel- decisions and developing better quality and better-
opers, academics, and clients. This is evidenced engineered Web systems and applications.
by increased research activities and publications It is important to understand the wider con-
in this area, hosting of dedicated international text in which a Web-based system or application
conferences and workshops, publication of new will be used, and design an architecture that
journals devoted to Web Engineering, and univer- will support the development, operation, and
sities offering special courses and programmes on maintenance as well as evolution of the Web ap-
the subject. It is destined for further advancement plication in that context, addressing the key issues
through research, education, and practice. and considerations. We strongly recommend that
Web developers and project managers move away
To advance Web engineering, it is essential to from an ad hoc, hacker-type approach to a well-
define its core body of knowledge, to identify the planned, systematic, and documented approach
areas in need of greater research and to develop for the development of large, high-performance,
a strategy to tackle the new technologies, new evolutionary, and/or mission-critical Web sites
applications and the various technical, method- and applications.
ological, and societal issues that arise in tandem


Web Engineering

Our key recommendations for successfully Maintainable


developing and implementing large, complex Secure
Web application are to: Perform satisfactorily even under flash and
peak loads
Adopt a sound strategy and follow a suit- Scalable
able methodology to successfully manage Portable, where required perform across
the development and maintenance of Web different common platforms; compatible
systems. with multiple browsers
Recognise that, in most cases, development Reusable
of a Web application is not an event, but Interoperable with other Web and informa-
a process, since the applications require- tion systems
ments evolve. It will have a start, but it will Universal accessibility (access by people
not have a predictable end as in traditional with different kinds disabilities)
IT/software projects. Well-documented
Within the continuous process, identify,
plan, and schedule various development Time to deploy an online Web system, though
activities so that they have a defined start still important, is no longer a dominant process
and finish. driver, as more emphasis is now placed on quality
Remember that the planning and scheduling Web systems in terms of functionally, usability,
of activities is very important to successfully content maintainability, performance, and reli-
manage the overall development, allocate ability.
resources, and monitor progress. Web engineering can help enterprises and
Consider the big picture during context developers to convert their Web systems and
analysis, planning, and designing a Web applications from a potential costly mess into
application. If you do not, you may end up powerful resource for gaining sustainable com-
redesigning the entire system and repeating petitive advantage.
the process all over again. If you address the
changing nature of requirements early on,
you can build into the design cost-effective acKNoWlEdGmENT
ways of managing change and new require-
ments. The authors would like to thank Yogesh Desh-
Recognise that development of a large Web pande and Steve Hansen, both from University
application calls for teamwork and shared of Western Sydney, Australia, for their contribu-
responsibility among the team members, so tion in origination and development of the Web
motivate a team culture. engineering discipline and for their input on
various aspects of Web development reported in
Web engineering has been successfully ap- this chapter which evolved through our collabora-
plied in a number of Web applications. A well- tive efforts over the years. We would also like to
engineered Web system is: thank our graduate students Anupama Ginige
and Indra Seher who contributed to formulation
Functionally complete and correct and presentation some of the ideas presented in
Usable this chapter.
Robust and reliable


Web Engineering

rEfErENcEs complexity of Web application development. IEEE


Multimedia, 8(2), 22-25.
Almeida, V.A.F., & Menasce, D.A. (2002). Ca-
Ginige, A., & Murugesan, S. (2001c). Web engi-
pacity planning for Web services: An essential
neering: A methodology for developing scalable,
tool for managing Web services. IT Professional,
maintainable Web applications. Cutter IT Journal,
(July-August), 33-38.
14(7), 24-35.
Becker S., & Berkemeyer, A. (2002). Rapid ap-
Glass, R. (2001). Whos right in the Web develop-
plication design and testing for usability. IEEE
ment debate? Cutter IT Journal, 14(7), 6-10.
Multimedia, (Oct-Dec), 38-46.
Hansen, S. (2002). Web information systems: The
Becker, S., & Mottay, F. (2001). A global perspec-
changing landscape of management models and
tive of Web usability for online business applica-
Web applications. Proceedings of the 14th inter-
tions. IEEE Software, 18(1), 54-61.
national conference on software engineering and
Cloyd, M.H. (2001). Designing user-centered knowledge engineering (pp. 747-753). ACM.
Web applications in Web time. IEEE Software,
Hansen, S., Deshpande, Y. & Murugesan S. (2001).
18(1), 62-69.
A skills hierarchy for Web-based systems devel-
Collins, R.W. (2002). Software localization for opment. In S. Murugesan & Y. Deshpande (Eds.),
Internet software: Issues and methods. IEEE Web Engineering Managing Diversity and Com-
Software, (March/April), 74-80. plexity of Web Application Development (LNCS
Vol 2016, pp. 223-235). Berlin: Springer.
Dart, S. (2001). Configuration management: A
missing link in Web engineering. Norwood, MA: Hieatt, E., & Mee, R. (2002). Going faster: Test-
Arttech House. ing the Web application. IEEE Software, (March
- April), 60-65.
Deshpande, Y. et al. (2002). Web engineering.
Journal of Web Engineering, 1(1), 3-17. Ivory, M.Y, & Hearst, M.A. (2002). Improving Web
site design. IEEE Internet Computing, (March
Deshpande, Y., Ginige, A., Murugesan, S., & Han-
- April), 56-63.
sen, S., (2002). Consolidating Web engineering as
a discipline. SEA Software, (April), 32-34. Lam, W. (2001). Testing e-commerce systems: A
practical guide. IT Professional, 3(2), 19-27.
Deshpande, Y., & Hansen, S. (2001). Web engi-
neering: creating a discipline among disciplines. Lowe, D. (2003). Web system requirements: An
IEEE Multimedia, (April - June), 82-87. overview. Requirements Engineering, 8, 102-
113.
Deshpande Y., Olsina, L., & Murugesan, S.
(2002). Web engineering. Report on the Third Menasce, D.A, & Almeida, V.A.F. (2002). Capac-
ICSE Workshop on Web Engineering, ICSE2002, ity planning for Web services: Metrics, models,
Orlando, FL, USA. and methods. Upper Saddle River, NJ: Prentice
Hall.
Ginige, A., & Murugesan, S. (2001a). Web en-
gineering: An introduction. IEEE Multimedia, Merialdo, P. et al. (2003). Design and development
8(1), 14-18. of data-intensive Web sites: The Araneus Atzeni.
ACM Transactions on Internet Technology, 3(1),
Ginige, A. & Murugesan, S. (2001b). The essence
49-92.
of Web engineering: Managing the diversity and


Web Engineering

Murugesan, S. (1998). Web engineering. Presenta- Williams, J. (2001). Avoiding CNN moment. IT
tion at the First Workshop on Web Engineering, Professional, 3(2), 68-70.
World Wide Web Conference (WWW7), Brisbane,
Australia.
Murugesan, S. et al. (1999). Web engineering: BIBlIoGrapHy oN WEB
A New Discipline for Development of Web- ENGINEErING
based systems. In Proceedings of the First ICSE
Workshop on Web Engineering, Los Angeles For further information on many different aspects
(pp. 1-9). of Web development and Web Engineering, we
have listed below some useful resources such as
Murugesan, S., & Deshpande, Y. (Eds) (2001). Web
books, special issues, journal articles, and Web
engineering: Managing diversity and complexity
sites.
of Web application development. Lecture Notes
in Computer Science Hot Topics, 2016. Berlin:
Books
Springer Verlag.
Offutt, J. (2002). Quality attributes of Web soft- Burdman, J. (1999). Collaborative Web develop-
ware applications. IEEE Software, Special Issue ment: Strategies and best practices for Web teams.
on Software Engineering of Internet Software, Addison-Wesley.
19(2), 25-32.
Dart, S. (2001), Configuration management: A
Oppenheimer, D., & Patterson, D.A. (2002). missing link in Web engineering. Norwood, MA:
Architecture and dependability of large-scale Arttech House.
Internet services. IEEE Internet Computing,
Dustin, E., Rashka, J., & McDiarmid, D. (2001).
September-October, 41-49.
Quality Web systems: Performance, security, and
Pressman, R.S. (2001). What a tangled Web we usability. Reading, MA: Addison-Wesley.
weave. IEEE Software, 18(1), 18-21.
Friedlein, A. (2000). Web project management:
Pressman, R.S. (2004). Applying Web Engineer- Delivering successful commercial Web sites.
ing, Part 3. Software Engineering: A Practitioners Morgan Kaufmann.
Perspective (6th ed.). New York: McGraw-Hill.
Friedlein, A. (2003). Maintaining and evolv-
Reifer, D.J. (2000). Web development: Estimat- ing successful commercial Web sites. Morgan
ing quick-to-market software. IEEE Software, Kaufmann.
17(6), 57-64.
Gerrad, P. & Thompson, N. (2002). Risk-based
Siegel, D.A. (2003). The business case for user- e-business testing. Artech Publishers.
centered design: Increasing your power of persua-
Hackos, J.T. (2002). Content management for
sion. Interactions, 10(3).
dynamic Web delivery. John Wiley & Sons.
Uden, L. (2002). Design process for Web applica-
Lowe, D. & Hall, W. (1999). Hypermedia and the
tions. IEEE Multimedia, (Oct-Dec), 47-55.
Web: An engineering approach. New York: John
Williams, J. (2000). Correctly assessing the Wiley & Sons.
ilities requires more than marketing hype. IT
Professional, 2(6), 65-67.

0
Web Engineering

Menasce, D.A. & Almeida, V.A.F. (2002). Capac- Journals


ity planning for Web services: Metrics, models,
and methods. Upper Saddle River, NJ: Prentice IEEE Internet Computing. www.computer.org/
Hall. internet
Nakano, R. (2002). Web content management: IEEE Software. www.computer.org/software
A collaborative approach. Boston: Addison
Wesley. Journal of Web Engineering, Rinton Press. www.
rintonpress.com/journals/jwe
Nguyen, H. Q. (2001). Testing applications on the
Web: Test planning for Internet-based systems. Journal of Web Engineering and Technology.
John Wiley. www.inderscience.com

Nielsen, J. (1999). Designing Web usability: The Web Information Systems Engineering. http://
practice of simplicity. Indianapolis, IN: New www.i-wise.org
Riders Publishing. World Wide Web, Kluwer Academic Publishers.
Powell, T.A. (1998). Web site engineering: Be- http://www.kluweronline.com/issn/1386-145X
yond Web page design. Upper Saddle River, NJ:
Prentice Hall. special Issues
Powell, T.A. (2000). Web design: The complete
guide. New York: McGraw-Hill. Engineering Internet Software, IEEE Software,
March-April 2002.
Pressman, R.S. (2004). Applying Web engineer-
ing. In Software engineering: A practitioners Testing E-business Applications, Cutter IT Jour-
perspective. New York: McGraw-Hill. nal, September 2001.

Rosenfeld, L. & Morville, P. (2002). Information Usability and the Web, IEEE Internet Computing,
architecture for the World Wide Web: Designing March-April 2002.
large-scale Web sites. OReilly & Associates. Usability Engineering, IEEE Software, January-
Scharl, A. (2000). Evolutionary Web Develop- February 2001.
ment. Springer. Web Engineering, Cutter IT Journal, 14(7), July
Shklar, L. & Rosen, R. (2003). Web application 2001.
architecture: Principles, protocols and practices. Web Engineering, IEEE MultiMedia, Jan.Mar.
John Wiley & Sons. 2001 (Part 1) and AprilJune 2001 (Part 2).
Stottlemyer, D. (2001). Automated Web testing
toolkit: Expert methods for testing and managing Journal articles
Web applications. John Wiley.
Vidgen, R. et al (2002). Developing Web informa- Almedia, V.A.F., & Menasce, D.A. (2002). Capac-
tion systems: From strategy to implementation. ity planning for Web services: An essential tool
Butterworth Heinemann. for managing Web services. ITPro, July-August
2002, 33-38.
Wodtke, C. (2002). Information architecture:
Blueprints for the Web. New Riders. Arlitt, M., et al. (2001). Characterizing the scal-
ability of a large Web-based shopping system.


Web Engineering

ACM Transactions on Internet Technology, 1(1), Engineering and Knowledge Engineering, Italy,
44-69. 2002, pp. 731 737.
Barnes, S. & Vidgen, R. (2002). An integrative Deshpande, Y. & Hansen, S. (2002). Web Engi-
approach to the assessment of e-commerce qual- neering: Creating a discipline among disciplines.
ity. Journal of Electronic Commerce Research, IEEE Multimedia, 82-87.
3(3). http://www.webqual.co.uk/papers/jecr_pub-
Fewster, R. & Mendes, E. (2001, April 4-6).
lished.pdf
Measurement, prediction and risk analysis for
Baskerville. et al. (2003). Is Internet-speed soft- Web applications. IEEE Seventh International
ware development different? IEEE Software, Software Metrics Symposium London, England,
Nov-Dec, 70-77. pp. 338-348.
Becker, S. & Mottay, F. (2001). A global perspec- Ginige, A. & Murugesan, S. (2001) Web engi-
tive of Web usability for online business applica- neering: An introduction. IEEE Multimedia,
tions. IEEE Software, 18(1), 54-61. 8(1), 14-18.
Brewer, E.A. (2002). Lessons from giant-scale Ginige, A. & Murugesan, S. (2001). Web engi-
services. IEEE Internet Computing, July, 46-55. neering: A methodology for developing scalable,
maintainable Web applications. Cutter IT Journal,
Cardellini, V. et al. (1999). Dynamic balancing on
14(7) 2435.
Web server systems. IEEE Internet Computing,
May-June, 2839. Ginige, A. & Murugesan, S. (2001). The essence
of Web engineering: Managing the diversity and
Ceri, S., Fraternali, P., & Bongio, A. (2000, May).
complexity of Web application development. IEEE
Web modelling language (WebML): A modelling
Multimedia, 8(2), 22-25.
language for designing Web sites. Proceedings
of the World Wide Web WWW9 Conference, Glass, R. Whos right in the Web development
Amsterdam. debate? Cutter IT Journal, 14(7), 6-10.
Cloyd, M.H. (2001). Designing user-centered Goeschka, K.M. & Schranz, M.W. (2001). Client
Web applications in Web time. IEEE Software, and legacy integration in object-oriented Web
18(1), 62-69. engineering. IEEE Multimedia, Special issues
on Web Engineering, 8(1), 32-41.
Collins, R.W. (2002). Software localization for
Internet software: Issues and methods. IEEE Hieatt, E. & Mee, R. (2002). Going faster: Testing
Software. the Web application. IEEE Software, 60-65.
Davison, B.D. (2002). A Web catching primer. Ingham, D.B., Shrivastava, S.K., & Panzieri, F.
IEEE Internet Computing. (2000). Constructing dependable Web services.
IEEE Internet Computing, 25-33.
Deshpande et al. (2002). Web engineering. Journal
of Web Engineering, 1(1), 3-17. Isakowitz, T., Stohr, E. & Balasubmmnian, P.
(1995). RMM: A methodology for structured hy-
Deshpande, Y. et al. (2002). Consolidating Web
permedia design. Comm A CM, 38(8), 35-44.
engineering as a discipline. SEA Software.
Ivory, M.Y & Hearst, M.A. (2002). Improving Web
Deshpande, Y. et al. (2002, July). Web site au-
site design. IEEE Internet Computing, 56-63.
diting The first step towards reengineering.
Proc 14th International Conference on Software


Web Engineering

Kirda, E., Jazayeri, M., Kerer, C. & Schranz, M. Perlman, G. (2002). Achieving universal usability
(2001). Experiences in engineering flexible Web by designing for change. IEEE Internet Comput-
services. IEEE Multimedia, Special issues on ing, 46-55.
Web Engineering, 8(1), 58-65.
Powel, T.A. (1998). Web site engineering: Beyond
Lam, W. (2001). Testing e-commerce systems: A Web page design. Prentice Hall.
practical guide. IT Professional, 3(2), 19-27.
Pressman, R.S. (2001). What a tangled Web we
Liu, S., et al. (2001). A practical approach to en- weave. IEEE Software, 18(1), 18-21.
terprise IT security. IT Professional, 3(5) 35-42.
Pressman, R.S. (2001). Can Internet-based ap-
Lowe, D. (2003). Web system requirements: An plications be engineered? IEEE Software, 15(5),
overview. Requirements Engineering, 8, 102- 104-110.
113.
Reifer, D.J. (2000). Web development: Estimating
Lowe, D. & Henderson-Sellers, B. (2001). OPEN quick-to-market software. IEEE Software.
to change. Cutter IT Journal, 14(7), 11-17.
Roe, V. & Gonik, S. (2002). Server-side design
Maurer, F. & Martel, S. (2002). Extreme program- principles for scalable Internet systems. IEEE
ming: Rapid development for Web-based applica- Software, 34-41.
tions. IEEE Internet Computing, 86-90.
Scalable Internet Services (2001). Internet Com-
Menasce, D.A. (1993). Load testing of Web sites. puting.
IEEE Internet Computing, 89-92.
Schwabe, D. & Rossi, G. (1998). An object oriented
Merialdo. P. et al. (2003). Design and development approach to Web-based application design. Theory
of data-intensive Web sites: The Araneus Atzeni. and Practice of Object Systems (TAPOS), special
ACM Transactions on Internet Technology, 3(1), issue on the Internet, 4(4), 207-225.
49-92.
Schwabe, D., Esmemldo, L., Rossi, G. & Lyardet,
Mich, L. et al. (2003). Evaluating and designing F. (2001). Engineering Web application for reuse.
Web site quality. IEEE Multimedia, 34-43. IEEE Multimedia, 8(1), 20-31.
Offutt, J. (2002). Quality attributes of Web soft- Scott, D., & Sharp, R. (2002). Developing secure
ware applications. IEEE Software, Special Issue Web applications, IEEE Internet Computing,
on Software Engineering of Internet Software, 38-45.
19(2), 25-32.
Siegel, D.A. (2003). The business case for user-
Olsina, L., Lafuente, G. & Rossi, G. (2001). centred design: Increasing your power of persua-
Specifying quality characteristics and attributes sion. Interactions, 10(3).
for Websites. In S. Murugesan & Y. Deshpande
Upchurch, L. et al. (2001). Using card sorts to elicit
(Eds), Web engineering managing diversity and
Web page quality attributes. IEEE Software.
complexity of Web application development (pp.
266-278). Berlin: Springer. Williams, J. (2000). Correctly assessing the
ilities requires more than marketing hype. IT
Oppenheimer, D., & Patterson, D.A. (2002). Archi-
Professional, 2(6), 65-67.
tecture and dependability of large-scale Internet
services. IEEE Internet Computing, 41-49.


Web Engineering

Web sites Web Information System Development Methodol-


ogy: www.wisdm.net
ACM SIGWEB: www.acm.org/sigweb
Web Information Systems Engineering: http://
Jakob Nielsens Website: www.useit.com www.i-wise.org

NIST Web Usability: zing.ncsl.nist.gov/WebT- Web Quality: www.webqual.co.uk


ools/index.html
World Wide Web Consortium: www.w3.org
Universal Usability Guide: www.universalus-
ability.org
conferences
Usability Professional Association: www.upas-
soc.org International Conference on Web Engineering
(ICWE) 2004 and 2005. www.icwe2004.org;
Usable Web: www.usableweb.com
www.icwe2005.org
Web Engineering Resources, R.S. Pressman
Web Information Systems Engineering Confer-
and Associates: www.ispa.com/spi/index.
ence. http://www.i-wise.org/
html#webe
World Wide Web Conference. www.www2004.
Web Engineering.org Community Homepage:
org; www.www2005.org
www.webengineering.org

This work was previously published in Web Engineering: Principles and Techniques, edited by W. Suh, pp. 1-30, copyright
2005 by IGI Publishing, formerly known as Idea Group Publishing (an imprint of IGI Global).




Chapter II
Augmented WebHelix:
A Practical Process for Web Engineering

Nary Subramanian
University of Texas at Tyler, USA

George Whitson
University of Texas at Tyler, USA

aBsTracT

Process is an important element in the success of any information systems development project, espe-
cially in academia where typically an undergraduate term project needs to go through the development
phases within the space of a semester. Traditionally academic processes have been adapted versions of
well-known industrial processes with one major exceptionlack of customer feedback in the process.
This omission of customer feedback results in students completing toy projects without significant
real-world experience; efforts to incorporate artificial customer interactions have not been very suc-
cessful either. It is our opinion that the industry processes cannot be simply copied in academia; what
is required is a process that will better equip the students to face real-world challenges. WebHelix has
been recently introduced as a practical process for Web engineering that helps students gain valuable
real-world experience without sacrificing project and product management phases. In this chapter we
propose the Augmented WebHelix process that augments the WebHelix in three ways: provides an option
at the end of each slice of the helix to both release the current version and continue to the next slice of
development; provides a qualitative evaluation framework, called the project evaluation framework (PEF),
that provides a systematic approach for evaluating the status of the project; and the ability to evaluate
the project at the end of each phase in a slice of the helix. The first augmentation provides the ability
to release and continue which is more practical than the go/no-go approach adopted by WebHelix; the
second augmentation, the PEF, allows different factors besides the return-on-investment as in WebHelix
to be considered for evaluating the current phase and status of the project, and the third augmentation
provides the ability to ensure the project is on track. In this chapter we describe the augmented WebHelix
process and demonstrate its applicability to both academia and industry with examples.

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Augmented WebHelix

1. INTroducTIoN to a certain degree the concepts such as software


process, divide-and-conquer, establishment of
A Web application is an information system that phases, and project management, with the belief
can deliver complex content and functionality to a that some understanding of these core ideas will
broad population of end users [17] and consists of help the students complete the semester project
a set of Web pages that are generated in response while at the same time, in many cases, doing
to user requests [5]. Examples of Web applications course work besides taking the full load of classes
include search engines, online stores, auctions, for the semester. Our experience in the past has
news sites, instructional sites, and games. Features been that very frequently students do not complete
of a Web application include substantial published or in many cases skip altogether the important
content, a complex navigational model, a complex phases of analysis and design for the term proj-
data design, many computational modules, and ects defeating the very purpose of preparing the
security considerations. students for the industry.
Most companies have a Web presence today. Most of the courses focus on using one of the
The initial Web presence for a company is often an software development processes such as the wa-
informational Web site with little or no database terfall, incremental, object-oriented, extreme pro-
use. Because of the simplicity of informational gramming (XP), rational unified process (RUP),
Web sites, companies often underestimate the or system development life cycle (SDLC) [17, 26,
difficulty of upgrading such a site to a database- 27]. Our analysis for the reasons for many of the
driven Web application. They see little need to problems faced by the students in their project
use a formal software engineering process and courses has led us to the conclusion that simply
this generally produces a Web application that is adapting an industry-strength process does not
behind schedule, not fully functional and almost help in academia. One of the most important
impossible to upgrade. Experienced project man- reasons seems to be that the current processes
agers realize that developing a Web application used in the industry and recommended for use
could be a complex effort and that some form in academia, suffer from one big requirement
of systems analysis and design is needed. But, - the feedback loops require actual customer
projects usually have small budgets and short participation. Most academic projects do not
deadlines, so if too much time is spent in the have realistic customer feedback resulting in the
design phase, projects usually do not get finished following problems:
on time (this has been referred to as the analysis-
paralysis problem in [26]). 1. Students imagine the feedback: Students
A similar situation exists in academia as well. go through the motions of updating their arti-
The majority of the courses in computer science facts based on imagined customer feedback;
(CS) and computer information systems (CIS) while role-playing and reviews have their
programs require term projects to be completed uses in software development, their primary
during the semester. Very often the upper-level purpose is not to replace the customer and
courses require the term projects to be team proj- this imagination approach tends to make the
ects as well with the expectation that the students feedback mechanism almost unimportant;
will familiarize themselves with the real-world 2. Students ignore feedback: The assump-
system and software development processes. tion is that let us assume that the customer
All the projects, almost without exception, go has approved the artifacts of the previous
through the broad phases of analysis, design, phasethis assumption is very closely
and implementation. Many of the courses stress related to imagined feedback; the realistic


Augmented WebHelix

mechanism that fosters healthy communi- ever, WH does the evaluation only by computing
cation and engenders team cohesiveness is the return-on-investment (ROI) and does not take
completely lost; other factors into account.
3. Traceability studies are often misleading: In this chapter we propose the augmented
In this method, the students establish the WebHelix process (AWH) that augments the WH
traceability of the artifacts of one phase with by permitting a release and continue feature (as
those of the preceding phase; in industry opposed to the release or continue feature) at the
traceability is used as a technique to verify end of each slice, and by providing a qualitative
the artifacts of a phase but the correctness evaluation framework, called the project evalua-
is usually ascertained with the help of tion framework (PEF), that provides a systematic
customer feedback; therefore, traceability approach for evaluating the status of the project
studies alone tend to mislead the students at the end of each phase on a slice on the helix
and remain an academic exercise; (as opposed to just once at the end of a slice in
4. Lack of faith in the process: Students be- WH) by considering different factors including
gin to believe that analysis and design were ROI. In this chapter we describe the AWH and
done just because the instructor wanted demonstrate its applicability to both academia
and that in real life they needed to only code and industry with examples.
and their job was done; such an impression This chapter is organized as follows: Cur-
ill-prepares the students for the industry; rent Web Application Development Processes
5. Incomplete projects: Students end up with discusses some of the interesting processes for
incomplete projects due to the apparent Web application development and evaluation,
lack of functioning of the process; students and provides a basis for the introduction of the
face one of the major problems faced by the AWH; The Augmented WebHelix Process sec-
industry due to inadequate process or inad- tion discusses the AWH; the Project Evaluation
equate application of an established process; Framework section discusses the PEF used by
in some cases this results in demoralized AWH; the Application of the Augmented Web-
students and in the worst case results in Helix Process section discusses the application
students who change their majors. of AWH to several Web application projects; the
Observations section presents our observations on
In order to overcome these limitations the the use of the AWH process; and the Conclusion
WebHelix process (WH) model was proposed and Future Work section concludes the chapter
[28]WH is a helical process model for develop- and provides directions for future work.
ing Web applications where each turn of the helix
is referred to as the slice and each slice consists
of five phases including analysis, design, coding, 2. currENT WEB applIcaTIoN
testing, and evaluation. The evaluation phase de- dEvElopmENT procEssEs
termines whether the current version of the Web
application is ready for release to the customer Since a Web application includes a complete set
or whether another iteration that takes the project of modules to perform business functions its
through the next slice of the helix is mandated. construction needs to follow a systematic and
Since evaluation phase is critical in making the practical methodology. Once this methodology
release or continue decision, it is important that has been established, some approach to project
the evaluation takes into account all the factors management also needs to be used in building
important for the business and the project; how- the application. Many Web application processes


Augmented WebHelix

have been proposed. Some are modifications of be completed quickly, the substantial up-front
traditional software engineering processes, some time involved in UML-based design techniques
are adjusted business re-engineering plans, and may be difficult to achieve in practice. Agile UP
some are extensions of traditional Web page (AUP) [29] has been proposed as a simplified
development tools. While all of the current Web version of RUP; however, the requirements for
application design processes have merit, none is employing AUP include staff knowledge and
universally accepted as the Web application tool independence, both of which, we believe, are
process. In this section we briefly survey the intrinsically unsuited to academic projects.
current Web application process methodologies Extreme programming (XP) has been popular-
and evaluation approaches. ized by numerous developers [2]. It is a natural
Most of todays Web application development fit for building Web applications because of its
processes are extensions of standard software en- emphasis on minimum design, quick prototype
gineering processes. The waterfall model process development and acceptance testing. The more
was perfect for developing a file maintenance general agile programming paradigm stresses
program for mainframes, but far too restrictive the importance of reducing the design overhead
a process for building a Web application. Similar in project development and being able to modify
to software development, Web application devel- the project development plan [1]. Web application
opment is also an iterative process [27] and one processes derived from these technologies keep
such iterative process is the spiral [4] approach; the design phase of Web application development
but the exact steps at each cycle of the spiral are small and produce limited documentation. While
debated, as is the metric to be used to determine streamlining the process of developing the original
the completion of a cycle, while the iterated application, extreme programming teams must be
waterfall model, another iterative process, is careful to produce adequate documentation for
considered too rigid an approach for developing project maintenance and upgrading. It has been
Web applications [17]. suggested that Scrum [19] together with XP will
Object-oriented development of Web appli- help develop academic projects quickly; however,
cations has been proposed [8] using the .NET basis for Scrum seems to be alien to students at
framework. Another object-oriented approach is most U.S. universities since rugby, which was the
to add stereotypes for Web navigation to the UML original basis for Scrum, is unknown to many
[13]. A more extensive use of UML is seen in the students.
Web application extensions (WAE) [9]. In fact, A few of todays Web application development
much of the work of those who believe in model processes have been derived from a business-ori-
driven design (MDD) seems to be motivated by ented approach to applications development [21].
the UML [14]. The rational unified process (RUP) Most of these processes develop a business plan
[27] is another process that makes extensive use of for the e-business associated with the Web applica-
UML while at the same time being iterative and tion, sometimes re-engineering the business along
object-oriented. Domain-driven Web application the way, and use factors like return-on-investment
development generalizes MDD in that it attempts (ROI) as a metric for the Web application devel-
to discover more general predevelopment patterns opment process. While the business success of
[11] and then automate the design process. All of the Web application is important, and we believe
the object-oriented Web application development that business decisions should play a larger role
processes, especially those based on the UML, in all stages of software development than seen
have a large number of design diagrams and docu- in the traditional software engineering processes;
ments. Since Web applications generally need to we also believe that it cannot be the only metric
used in the software process.


Augmented WebHelix

Some of todays Web application development based system term projects academia needs a
processes have been derived from well-known process that supports rapid prototyping while at
Web content tools. Hypermedia application de- the same time prepares the students for industry.
velopment [25] has been around for more than It is our belief that a useful Web engineering
fifty years, and because of their database use, process for academia should have the following
many of the hypermedia software development attributes:
processes and tools adapt well to Web applica-
tion development. Web page design tools, like 1. Supports rapid prototyping
Microsofts FrontPage and Macromedia Studio, 2. Supports incremental development
have migrated into good Web application develop- 3. Helps the students to evaluate the artifacts
ment tools and some Web application development of a phase
processes are based on these tools [12], and some 4. Helps the students be on track to complete
are extensions [6]. the project
A number of Web developers have coined the 5. Minimizes documentation
term, Web Engineering, to describe the theory of
Web application development. In Web engineer- One such process is the WebHelix (WH) pro-
ing, a balance is struck among the programming, cess that was introduced in [28]. The advantages
publishing and business aspects of developing of WH are:
Web Applications [10]. There are a large number
of different Web application processes that fall 1. Does a careful business analysis of the prob-
under the umbrella of Web engineering. Some able success of the Web application
of the features common to all Web engineering 2. Has a formal Web engineering process:
processes are: a. That is helical except for some pre and
post stages and each stage is exited
The Web site of the application has much when a testing and profit threshold
informational content and the development are met
of the site involves considerable attention to b. Develops the systems architecture,
publishing this content; navigational system and information
The Web application development process model as quickly as possible
has an information management design, not c. Is agile with a small design step and
just a database management design; produces no unnecessary model dia-
While the system architecture is important, grams
as in all software engineering processes, the 3. Has an associated Project Management plan
navigational system is often closely related that:
to the systems architecture;
The Web application process tends to be a. Creates a task list from a systems ar-
spiral, agile (if not extreme) and of short chitecture diagram
duration. b. Uses a Gantt chart to synchronize the
team workload
In spite of the large number of Web engineering
processes that have been developed over the past However, one of the issues with WebHelix, it
few years, none has been fully accepted as the has been pointed out, has been the lack of a evalu-
Web engineering process neither in the industry ation framework and its over-dependence on ROI
nor in the academia. In order to complete Web- calculation as a technique to move from one slice


Augmented WebHelix

to another which does not permit straightforward facilitates learning... Therefore, an evaluation
application in an academic setting. In order to process that uses strict definitions for non-func-
overcome these drawbacks the WebHelix process tional requirements seems to have limited practical
was augmented with an evaluation framework, benefit. In [18] a framework, called framework
called the project evaluation framework, and the for e-metrics, has been suggested for evaluating
resulting Augmented WebHelix is described in business metrics of Web applications that uses
the next section. the concept of functionality interaction which
For evaluation of projects several measures refers to the interaction between applications
and frameworks have been proposed. For ex- up-stream and down-stream of the value chain
ample, for the Boehms spiral process model for a business. The e-metrics framework defines
[4], risk assessment is used in each turn of the three levels of metrics for efficiency, effectiveness,
spiral, and as suggested in [17], not everybody and strategic importance of managerial decisions
is comfortable with risk assessment techniques. and each level is evaluated along the dimensions
WebQEM [15] provides an evaluation process of planning, development, inbound, production,
with four phases: quality requirements defini- and outbound. As may be expected, the e-metrics
tion and specification; elementary evaluation; framework may be useful only to evaluate the
global evaluation; and conclusion. For example, process management and product management
for an e-commerce Web site, usability has been aspects of Web application development, but
defined to include global site understandability does not seem to assist in the evaluation of tech-
(which has been further broken down into global nical and other business factors that need to be
organization scheme, quality of labeling system, considered for releasing a version of the product
audience-oriented guided tour, and image map), or continuing with further development. In [20]
feedback and help features (which has been bro- the COBRA (cost estimation, benchmarking, and
ken down into quality of help features, addresses risk assessment) method is used for cost estima-
directory, link-based feedback, and form-based tion of Web applications. This method uses data
feedback), interface and aesthetic features (fur- from previous projects for arriving at an estimate;
ther decomposed into cohesiveness by grouping however, as mentioned accurate cost data is hard
main control objects, presentation permanence to come by and cost usually is only one aspect
and stability of main controls, and style issues), that needs to be considered when making the
and miscellaneous features (broken down into decision to release the product or continue with
foreign language support, Web site last update further development. In [16] it has been pointed
indicator, and screen resolution indicator). Some out that metrics vary from company-to-company
of the sub-factors have been further decomposed. and suggests several metrics that could be used
Similar approach has been adopted for other non- by companies for evaluating the effectiveness of
functional requirements of a Web application their Web applications including site performance,
such as functionality, reliability, and efficiency. user efficiency, customer satisfaction, customer
However, these definitions seem rather rigid since loyalty, and average time spent on their system.
the definition of usability, for example, of a Web While these metrics could be used to evaluate
application (including an e-commerce application) the effectiveness of Web sites they should be
could vary significantly from project-to-project used to complement other factors that affect the
and from organization-to-organization (see [16] release/continue decisions. The project evaluation
for a discussion of this point); for example, in framework (PEF) introduced later in this chapter
[17] usability has been defined as usability is hopes to overcome the drawbacks of some of the
a measure of how well a computer system current approaches by providing a systematic ap-
proach to making release/continue decisions.

0
Augmented WebHelix

3. THE auGmENTEd WEBHElIx the Augmented WebHelix process (AWH), as


procEss follows:

Figure 1 shows the original WebHelix (WH) pro- 1. Provided a systematic framework to qualita-
cess [28]. WH uses a modified spiral approach to tively evaluate whether to release the project
systems development. Some parts of the design in the current state and/or to continue to
process, like the business analysis and planning, the next slice; this evaluation framework
are done once at the beginning of the process. is called the project evaluation framework
Some parts of the process, like deployment and (PEF)
maintenance, are done once at the end of the 2. The evaluation is done at the end of each
process. The major creation of the Web applica- phase of a slice rather than once at the end
tion (coding) is done by using an identical set of of a slice; this helps to keep the project on
steps repeatedly, producing a set of more and more track
complete prototypes, with the final prototype be- 3. In order to more accurately reflect the needs
ing the completed Web application. of the real world, the AWH gives the follow-
It has been pointed out that WH suffers from ing choices for the project at the end of each
a lack of metrics to determine when to release slice:
or to continue to the next slice of the helix and
the fact that WH depends on ROI as the only a. Release the project and do not continue
means for moving from one slice of the helix to to the next slice (go the deployment and
the next which makes WH somewhat unsuitable maintenance phase of the project)
for straightforward application in academia. We b. Release the project and continue to the
therefore augmented the WH process, called next slice (the released portion goes

Figure 1. The original WebHelix process


Augmented WebHelix

into the deployment and maintenance i. Select Web application platform.


phase) ii. Select information storage technolo-
c. Do not release the project but go to the gies.
next slice to add additional features. 2. Determine project management plan and se-
lect a project management tool if needed.
Figure 2 shows the Augmented WebHelix pro- 3. Develop a detailed business plan with a better
cess. The process starts with the Business Analysis ROI estimate and again decide whether to
and Planning phases, respectively, the PreHelix1 continue with the project or not (typically
and PreHelix2 phases. After the Planning phase, used in industry projects)
the project enters the first slice of the helix at
the Analysis phase and then proceeds clockwise Step 1: Analysis
round the slice through the Design, Coding, and 1. Develop or update the software requirements
Test phases. After each phase in a slice there is an document.
Evaluation phase (represented by ) wherein the 2. Develop or update the complete menu/navi-
PEF is applied to decide whether to proceed to the gation system and some sample screens for
next phase in the slice or not. During the evalua- application.
tion following the Test phase the major decision 3. Develop or update the information design.
of whether to release the product (Release) or to i. Entities
continue to the next slice of the helix (Continue) ii. Web, database and other storage sys-
or both is determined. After the final slice the post tems.
helix phases of deployment (Deploy or PostHelix1) 4. Create detailed test criteria for project ac-
and maintenance (Maintain or PostHelix2) are ceptance.
performed. The details of activities performed
in each phase are described below. If a Continue Step 1A: Analysis Phase Evaluation
decision is made at the end of a slice then the 1. Develop factors for analysis phase evalua-
project can proceed along two paths simultane- tion
ouslyone taking it to the Analysis phase of the 2. Apply the PEF to decide whether to go
subsequent slice and the other taking the project to Step 2 or notif analysis phase is
to the deployment phase. determined to be incomplete repeat the
analysis phase (may be viewed as proceed-
PreHelix 1 Business Analysis ing directly to the analysis phase of the
1. Catalogue the business processes. next slice); continue on to the design phase.
2. Capture real and virtual supply chains.
3. Develop a high-level business plan Step 2: Design
i. Add usual modules plus 1. Develop or update a detailed system architec-
ii. Estimate potential internal/exter- ture diagram and an updated menu/naviga-
nal profit as a return-on-invest- tion system. Also add annotations to capture
ment (ROI) to determine whether any background processing needed.
to proceed with the project or not 2. Develop or update an object diagram for the
(typically used in industry projects). main objects of the Web application.
3. Develop or update a complete information
PreHelix 2: Planning design system, including a detailed database,
1. Select hardware and software XML and Web site design.


Augmented WebHelix

Figure 2. The augmented WebHelix process


Business
Analysis
(PreHelix 1)

Planning

(PreHelix 2)


Analysis
Test
Release (after 1 slice)
Slice 1 Design
Coding

Continue

Analysis Release (after 2 slices)


Test

Slice 2 Design
Coding

Continue

Time
...

Analysis
Test

Slice n Design
Coding

Release (after n slices)

Deploy
Legend (PostHelix1)
Evaluation Phase
Mandatory Transition Maintain
Optional Transition
(PostHelix2)
Arrow head points to direction
of transition/traverse

4. Develop or update a complete project man- 5. Update the test criteria for project accep-
agement plan. tance.
i. From the systems architecture diagram
make a complete list of tasks. Step 2A: Design Phase Evaluation
ii. Create the programming team and 1. Develop factors for design phase evalua-
make a list of personal skills. tion
iii. Create a Gantt chart for the project. 2. Apply the PEF to decide whether to go to Step
3 or notif design phase is determined to be


Augmented WebHelix

incomplete repeat the design phase (may be Step 4A: Testing Phase Evaluation
viewed as proceeding directly to the design 1. Develop factors for testing phase evalua-
phase of the next slice); if the analysis phase tion
is now determined to be incomplete repeat 2. Apply the PEF to decide whether testing
the analysis phase (may be viewed as pro- phase is completed or not; if testing phase
ceeding directly to the analysis phase of the is determined to be incomplete repeat the
next slice); continue on to the coding phase. testing phase (may be viewed as proceeding
directly to the testing phase of the next slice)
Step 3: Coding and Integration and do not go to the next step; if coding phase
1. Select components to be added to the sys- is determined to be incomplete repeat the
tem. coding phase (may be viewed as proceeding
2. Develop Web site, write code, integrate directly to the coding phase of the next slice)
components and unit test all code. We use and do not go to the next step; if the design
teams of two during the code development phase is now determined to be incomplete
and refactoring [2]. repeat the design phase (may be viewed as
3. Update the test criteria for project accep- proceeding directly to the design phase of
tance. the next slice) and do not go to the next step;
if the analysis phase is now determined to be
Step 3A: Coding Phase Evaluation incomplete repeat the analysis phase (may
1. Develop factors for coding phase evalua- be viewed as proceeding directly to the
tion. analysis phase of the next slice) and do not
2. Apply the PEF to decide whether to go to go to next step; if testing phase is determined
Step 4 or notif coding phase is determined to be complete go to the next step.
to be incomplete repeat the coding phase 3. Use PEF to determine whether to Release
(may be viewed as proceeding directly to the and/or Continue.
coding phase of the next slice); if the design 4. If PEF application results in a Yes for
phase is now determined to be incomplete Release then release the current prototype
repeat the design phase (may be viewed as and go to PostHelix1 phase.
proceeding directly to the design phase of 5. If PEF application results in a Yes for Con-
the next slice); if the analysis phase is now tinue then begin Step 1 of the next slice.
determined to be incomplete repeat the
analysis phase (may be viewed as proceed- PostHelix 1: Deployment and Training
ing directly to the analysis phase of the next 1. Deploy the Web application.
slice); continue on to the testing phase. 2. Set up a training program for using the Web
application.
Step 4: Testing
1. Use structured walkthroughs to test Web PostHelix 2: Maintenance and Future Up-
design. dates
2. Use multimedia testing, including automa- The number of slices through the helix can
tion tools, to test code and integration. vary depending on the project due to the follow-
3. Work with customer and complete the ac- ing reasons:
ceptance testing
1. During the planning phase it may be de-
termined that the overall project could be


Augmented WebHelix

developed in a series of increments with each on a helix two evaluations are made: first evalu-
increment delivering greater functionality. ation determines if the testing phase is complete
In that case each increment may be developed (phase-stage) and if so the second evaluation as
as a separate slice. to whether the product may be released and/or
2. Each increment may itself be developed the project should proceed to the next slice is
over several slices; incomplete analysis determined (slice-stage); if the phase-stage evalu-
phase signals the start of the analysis phase ation determines that the testing phase has not
of the next slice, incomplete design phase completed, then the slice-stage evaluation does
could signal the start of the analysis or the not take place.
design phase of the next slice, and so on. At the end of application of the PEF at the
3. Since AWH provides Release and Continue slice-stage we will be able to determine if the
option, subsequent slices may optimize Release (whether the product can be released)
existing functionality or improve non- is a yes (Y) or a no (N) and if Continue (project
functional requirements such as reliability, needs to continue to the next slice) is a Y or a N.
performance, and modifiability. Table 1 gives the actions possible with the four
combinations of Ys and Ns. There is one more
Of course, the more slices traversed the longer possibility with the PEF which is the U statethe
the time taken to complete the project and more Unknown state; in this state we do not have enough
effort is expended on the project. Therefore, the information currently to determine if the state is
number of slices should be taken from a project a Y or a N. Therefore Table 1 has nine possible
management and quality standpoint. determinations. The steps to help resolve some
of the determinations in Table 1 are discussed
later in this section.
4. proJEcT EvaluaTIoN The application of the steps of the PEF results
framEWorK in an AND-OR graph called the Factor Interde-
pendency Graph or a FIG. FIG establishes the
Project evaluation framework (PEF) helps to de- relationships between the factors affecting Release
termine if the project in its current state is ready and Continue stages (also referred to as variables
to proceed to the next phase of a slice, ready of the project). There can be three types of rela-
for release, and/or needs to continue to the next tionships: AND; OR; and EQUAL. In an AND
slice of AWH. PEF borrows concepts from the relationship all the child factors need to be satisfied
NFR Framework [7], where NFR stands for non- in order for the parent factor to be satisfied and
functional requirements, which is a qualitative, even if one child factor is not satisfied then the
process-oriented and goal-oriented framework. parent factor is not satisfied. In an OR relation-
The NFR Framework and its derivatives have ship satisfaction of even one child factor satisfies
been used for evaluating processes [24], software the parent factor. In an EQUAL relationship the
artifacts [23], and for establishing traceability parent factor takes the same level of satisfaction
[22]. as the child. The creation of a FIG is also called
At the end of each phase on a helix, PEF is ap- decomposition (or clarification) of the Release
plied to evaluate whether that phase is completed (or Continue) stage into its constituent factors.
or not, called the phase-stage evaluation. If deter- EQUAL relationship is also called a refinement.
mined to be complete, the project may proceed PEF creates three types of FIGs: one type of
to the next phase on the helix; the project may FIG is used for evaluation at the phase-stage (the
repeat the phase. At the end of the Testing phase FIGs for evaluating the ends of Analysis, Design,


Augmented WebHelix

Coding, and Test phases could all be different); the parent factor is U
another FIG for evaluating Release; and the third R3. If even one child factor is N then
FIG for evaluating Continue. the parent factor is N
The steps of the PEF are iterative and in- R4. A combination of only Y and U
clude: among the child factors will have
an effect of Y on the parent
1. Determine the factors that affect the stage b. If a factor has OR relationship with its
2. Create a FIG for the stage by establishing child factors, then
the relationships (AND, OR, or EQUAL) R5. If all the child factors are N then
among the factors determined in step 1 the parent factor is N
3. Apply the propagation rules to the FIGs to R6. If all the child factors are U then
determine if the values of parent factors of the parent is U
a stage (completion of a phase, Release or R7. If even one child factor is a Y then
Continue) is one of Y, N or U; the propaga- the parent is Y
tion rules are: R8. A combination of only N and U
a. If a factor has AND relationship with among the child factors will have
its child factors, then an effect of N on the parent
R1. If all the child factors are Y then c. If a factor has only one child (EQUAL
the parent factor is Y relationship), then
R2. If all the child factors are U then

Table 1. Determination of course of action based on the values of release and continue variables
Release Continue Action
Determination 1 Y N Release the Web application in its current state and do not go to the next
slice of the helix.
Determination 2 N Y Do not release the Web application in its current state and continue on
to the next slice of the helix.
Determination 3 N N We are unable to determine whether to continue or to release; this may
be due to incomplete knowledge at present (discussed later in this
section).
Determination 4 Y Y Here we have an option of either releasing the current version and/or
continuing with further development in the next slice of the helix.
Determination 5 Y U We can make the release but we are not sure based on the current
information whether to continue to the next slice of the helix (discussed
later in this section).
Determination 6 N U We cannot make the release but we are not sure based on the current
information whether to continue to the next slice of the helix (discussed
later in this section).
Determination 7 U Y We can continue to the next slice of the helix but we are not sure based
on the current information whether to release the Web application now
(discussed later in this section).
Determination 8 U N We cannot continue to the next slice of the helix but we are not sure
based on the current information whether to release the Web application
now (discussed later in this section).
Determination 9 U U We are unsure of whether to release or to continue to the next slice of
the helix (discussed later in this section).


Augmented WebHelix

R9. If child is Y then the parent is Y do we mean by testing is successful, that is, the
R10. If child is N then the parent is N factor Testing Successful is met? This is clarified
R11. If child is U then the parent is U by further AND-decomposing (indicated by the
4. For phase-stage evaluation, if the root factor single arc) the factor Testing Successful into its
(the top-most factor in a FIG) is a Y, then child factors Errors Acceptable and System Works,
the phase is complete and the project can that mean, respectively, that the errors in the cur-
proceed to the next phase; however, if the rent version are acceptable as per organizations
root factor is an N or a U, then the project standards and that the system is accessible over
may have to repeat the current phase or may the internet in an acceptable manner. The factor
have to repeat from an earlier phase in the Requirements Met is AND-decomposed into fac-
next slice tors NFRs Met and FRs Met, where NFR stands
5. For slice-stage evaluation use Table 1 to for non-functional requirements and FR stands
determine the next course of action. for functional requirementsthe requirements
are met when both the functional and non-func-
FIGs may be drawn using the notation of a tional requirements are met. The factor NFRs
circle for a factor, a line for a relationship, a single Met is OR-decomposed (indicated by the double
arc for AND-decomposition, and a double arc arc) into factors Reliability and Efficiency this
for OR-decomposition, and an example FIG for means that the factor NFRs Met is satisfied if
slice-stage is shown in Figure 4. A phase-stage either reliability or efficiency or both are satis-
FIG looks similar with the major difference being fied for the Web application in its current version.
that during phase-stage we are concerned with Similarly, the factor FRs Met is OR-decomposed
factors that affect the phase while during slice- into factors Storefront and ProductInfo, which
stage evaluation we are concerned with factors means that the functional requirements of the
that affect Release and Continue variables. The Web application are satisfied if the application
ontology for the FIG is shown in Figure 3. has either a Storefront or provides ability to ob-
The FIG of Figure 4 is read as follows: the tain product information (captured by the factor
top-most factor (root factor) Release (on the left ProductInfo). Similarly the factor Business Goals
side of Figure 4) is AND-decomposed (indicated Achieved is AND-decomposed into factors Profit-
by the single arc) into three child factorsTest- able and Improves Customer Relationship which
ing Successful, Requirements Met, and Business means that profitability and improved customer
Goals Achieved; this means that the factor Release relationship are both required for achievement
is a Y only if all its child factors are each Y (that of business goals. The factor Profitable has been
is the current version may be released if the test- refined (EQUAL relationship) into the factor ROI
ing is successful, the requirements are met, and Acceptable which means that the current version
the business goals are achieved). However, what is profitable if the ROI is acceptable. In a similar

Figure 3. Ontology for FIGs

Factor Relates Factors AND Decomposition

OR Decomposition ! Priority Claim Factor


Augmented WebHelix

Figure 4. Example factor interdependency graph (FIG) for slice-stage

Release Continue
Testing Requirements Business Goals Features to be
Successful Met Achieved Added Helps Business Goals

Improves Features Improves


Errors NFRs FRs Profit- Customer Expected by Company Feas- Profit-
System
Acceptable Works Met Met able Relationship Customer Image ible able

ROI ROI
Store- Product Accept- Technical Sched. Cultural Accept-
Reliability Efficiency front Info able Feasibility Feasibility Feasibility able

Figure 5. A more practical excel representation of the FIG on the left in Figure 4

manner the FIG for Continue (the FIG on the right braces; if no annotation exists, then it means that
side of Figure 4) may be read. the factor is a root or has an EQUAL relationship
However, perhaps a more useful way will be with it child.
to use an Excel spreadsheet as shown in Figure 5, One of the advantages of using Excel is that
where the FIG of on the left of Figure 4 is shown simple macros may be written with VB (Visual
inverted with the leaf factors in the top-most row Basic) in Excel so that the state of the root factor
and proceeding to the root factor in a downward Release or Continue is computed semi-auto-
manner. The relationships are captured by an- matically. For example, the code in Figure 6 is a
notating a factor with AND, OR, EQUAL within simple example of a VB macro written using the


Augmented WebHelix

Microsoft VB editor that captures the state of the a more definite answer for the state of the
factor NFRs Met (in cell C2 of Figure 5) given sub factors (i.e., a Y or a N);
the values (or states) of its child factors Reliability 3. Some factors may have higher priorities
(cell C1) and Efficiency (cell D1). than others and we may need to apply the
This way of semi-automatically calculating the updated propagation rules given in the later
states of Release and Continue will considerably part of Section 5;
ease the burden on the project stakeholders dur- 4. Earlier stages may need to be repeated in the
ing the evaluation phases, both phase-stage and next slices: for example, if the design phase
slice-stage, of Augmented WebHelix. of the current slice uncovers an analysis er-
What happens if during the evaluation using ror then instead of proceeding to the coding
PEF we encounter states in rows corresponding phase of the current slice, we proceed to the
to Determination 3 or Determination 5 through analysis phase of the next slice.
Determination 9 of Table 1? Whenever we en-
counter situations corresponding to these rows, it
means that our current knowledge is incomplete 5. applIcaTIoN of THE
and the reasons could be: auGmENTEd WEBHElIx procEss

1. The decompositions for Release and Con- The AWH process has been applied to more
tinue have not considered all the pertinent than a dozen projects within the Department of
factors; Computer Science at the University of Texas at
2. Further decompositions of some of the fac- Tyler. In the senior level course, COSC 4360,
tors may be warrantedwe do not know the Net-Centric Computing, we build a full Web ap-
state of a factor (i.e., it is U) but if we could plication with an equal emphasis on the software
find that factors sub factors we may know engineering aspects of the application and how

Figure 6. A simple VB macro for partially evaluating FIG of Figure 5


Augmented WebHelix

the underlying network protocols (HTTP) operate 5.1 application of aWH for
as the applications executes. The Web application developing Games E-store
is started early in the semester and AWH is in-
troduced as a required design methodology to be The Games E-Store project was developed by a
used to complete the project. By using AWH, the team of three seniors for the COSC4309 Design
students were able to finish fairly complex Web of Information Systems course in the Fall of 2006.
applications that implemented an informational The application of different steps of AWH for this
computer security Web site including a message project is described below.
board, secure login and considerable database-
driven content. PreHelix 1: It was determined that the team
In COSC 4309, Design of Information Sys- will develop an e-store for video games called
tems course, we build Web applications with GameBuy. This activity took 1 day.
more attention being paid to systems analysis PreHelix 2: The resources needed for this
and design than to the coding aspects of a Web project were determinedfor example, the devel-
application. In the course, students are given a opment environment (Microsoft Visual Studio),
booklet describing AWH and then the students any special security features, the categories of the
develop complete Web applications using the video games and the number of games in each
AWH process. For example, in the Fall of 2005, category were determined. It was determined
we developed a CS Alumni site that contained an that there will be following phases: business
updatable newsletter, message board, e-portfolio requirements analysis, software requirements
for all current and former students and specialized analysis, design, coding, and testing. This activ-
search engine. By using AWH, students were able ity took 1 day.
to savor many of the aspects of Web application Step 1 (Slice1)Business requirements
design and still finish a complex project. In the analysis: The initial business requirements for
Fall of 2006, three information systems were the project were developed as shown in Figure
developed by student teams using AWH; one was 7. This activity took 3 days.
a e-store for games, another a Web log, and the Step 1A (Slice 1)Business requirements
third a library checkout system. evaluation: The Excel spread sheet used to
In the Spring of 2006, for the course COSC3331, evaluate the business requirements is shown
e-commerce programming, we again used AWH in Figure 8. The corresponding FIG is a simple
for five Web application projects developed by one as shown in Figure 9the parent factor (the
teams of two students each these included an root factor) Business Requirements Completed
e-book store, an e-realty store, an e-jersey shop, is AND-decomposed into the five child factors:
an e-ball shop, and an e-T-shirt store. Services Provided by GameBuy, Benefits, Finan-
Here we explain in detail how the AWH was cial Advantages, Competitive Advantages, and
used in the development of two projects, both of Technical Advantages. As can be seen from the
which developed e-commerce store, one for games Figure 8, two of the factors are not satisfied (that
and the other for books, one as part of COSC4309 is get a value of N) one (Competitive Advantages)
and the other as part of COSC3331. In the games due to the fact that one requirement may be con-
e-store project students focused on moving from sidered a software requirement while the other
one phase to the other, while in the e-store for (Technical Advantages) due to the fact that one
books project students focused on moving from requirement repeats. Using the propagation rules
one slice to another. of PEF (specifically, rule R3) it may be determined
that the business requirements are not completed

0
Augmented WebHelix

Figure 7. The initial business requirements for the games e-store project

Video Game Online Store

B1 E-Commerce (Online Store)


B2 Up-to-date listing of products
B3 Reduce overhead cost by replacing storefront
B4 Reduce Staff
B5 Customer Friendly
B6 Gather customer Information cheaply
B7 Less startup cost
B8 Reduce customer service support
B9 Suggest products to users
B10 Real-time inventory
B11 Secure customer information
B12 Process payments online

and, therefore, the project had to redo the business Step 2 (Slice 3)Design: The user interfaces,
requirements as part of Slice 2. database, and the classes to be used for this project
Step 1 (Slice 2)Business requirements were all designed. This activity took 3 weeks.
analysis: The updated business requirements is Step 2A (Slice 3)Design evaluation: The
shown in Figure 10. This activity took 1 day. phase-stage evaluation indicated completion of
Step 1A (Slice 2)Business requirements design phase.
evaluation: Upon evaluating the business require- Step 3 (Slice 3)coding: All the components
ments with the FIG of Figure 9 we can determine of the system were coded and integrated. This
that the phase is complete since all child factors activity took 2 weeks.
are now satisfied. Step 3A (Slice 3)Coding evaluation: The
phase stage evaluation indicated completion of
The next phase is software requirements the coding phase.
analysis. Since this is analysis phase as well we Step 4 (Slice 3)Testing: The information
proceed to the analysis phase of the next slice, system was tested. This activity took 1 week.
Slice 3. Step 4A (Slice 3)Testing evaluation
(Phase-Stage): The phase stage evaluation in-
Step 1 (Slice 3)Software requirements dicated completion of the testing phase.
analysis: During this phase the software require- Step 4A (Slice 3)Testing evaluation (Slice-
ments for the project were developed. This activity Stage): The slice stage evaluation indicated that
took 3 days. the product was complete and there was not need
Step 1A (Slice 3)Software requirements to go to the next slice. The Continue was N and
evaluation: A FIG similar to Figure 9 was devel- Release was Ytherefore from Table 1 (Determi-
oped with one of the child factors being traceability nation 1), it was determined that the product was
of the software requirements to the business re- ready for release. A more complete application
quirements. The phase-stage evaluation indicated of the FIG for slice-stage determination is given
completion of software requirements phase. in Section 5.2, for the second example of AWH
application.


Augmented WebHelix

Figure 8. Evaluation of initial business requirements for the games e-store project

Figure 9. FIG corresponding to the spreadsheet evaluation of Figure 8

Business Requirements Complete

Technical
Services Advantages
Provided Benefits Competitive
Financial
by GameBuy Advantages
Advantages

PostHelix1: The product was deployed and Figure 11 shows the progress of this project
demonstrated. This activity took 2 days. through the AWH process; three slices were used
PostHelix2: The product entered the mainte- some fully and some partially. The entire project
nance phase and is still being maintained. was completed within a period of two months with
evaluations taking less than a day to complete.


Augmented WebHelix

5.2 application of aWH for PreHelix 1: Here the team developed a detailed
developing Book E-store business plan that included the following factors:
mission, potential customers, market entry, com-
This project was developed by a team of three petition, and profit avenues. The business plan also
seniors for the COSC3331 E-Commerce Pro- discussed the advantages of using e-commerce for
gramming in the Spring of 2006. The applica- this business. This phase lasted 2 weeks.
tion of different steps of AWH for this project is PreHelix 2: Here the team developed the
described below. software requirements for the Web application
for the e-commerce storefront for Zebra Books.
The constraints on the requirements included the

Figure 10. Updated business requirements for the Games E-Store Project

Video Game Online Store

B1 E-Commerce (Online Store)


B2 Up-to-date listing of products
B3 Reduce overhead cost by replacing storefront
B4 Reduce Staff
B5 Customer Friendly
B6 Gather customer Information cheaply
B7 Less startup cost
B8 Reduce customer service support
B9 Secure customer information
B10 Process payments online

Figure 11. The flow of the Games E-Store Project through AWH process

Business
Analysis

Planning

Slice 1: Business
Analysis Design Coding Test
Requirements
Continue
Slice 2: Updated
Business Analysis Design Coding Test
Requirements
Continue
Slice 3: Software
Requirements, Design, Analysis Design Coding Test
Coding and Test
Release

Deploy

Maintain


Augmented WebHelix

usage of Visual Studio 2003 as the IDE (integrated access/update were quickly prototyped in Visual
development environment) for application devel- Studio. Also the business classes that the code
opment, ASP.NET as the technology for the Web will use were designed at this step. This step
application, Visual Basic.NET as the language for took 3 days.
the Web application, and Microsoft SQL for the Step 2A (Slice 1)Design evaluation: This
database. During this stage, the number of itera- phase-stage evaluation determined the comple-
tions of the helix as well as the features needed tion of this phase.
for each iteration were also decided as follows: Step 3 (Slice 1)Coding: During this step
the prototyped screens were provided with Vi-
1. Iteration 1: Development of product sual Basic back end code and the database was
catalogincludes the development of the populated with the catalog items. This step took
catalog database, the basic storefront and 4 days.
facilities (front-end) for viewing/updating Step 3A (Slice 1)Coding evaluation: This
the catalog; phase-stage evaluation determined the completion
2. Iteration 2: Catalog Search Facility, Paypal of this phase.
Transaction Ability, and Shopping Basket Step 4 (Slice 1)Testing: During this step
feature; the database and the front-end were tested to
3. Iteration 3: Ability to Place Orders and ensure all the database calls worked and that the
accept Customer Details. contents of the database were correct such as for
example, the prices were correctly input and there
This phase took 1 week. were no spelling mistakes in the item descriptions.
Each iteration was developed in its own slice, The storefront look and feel was also evaluated
however, the decision whether to Release and/or to ensure that the requirements were met. This
Continue at the end of each slice was made us- step took 3 days.
ing PEF (discussed later). For each slice Step Step 4A (Slice 1)Testing evaluation: This
1 (Analysis) through Step 5 (Evaluation) were phase stage evaluation determined the completion
performed. We discuss these steps for Iteration of this phase.
1 (Slice 1) below. Step 4A (Slice 1)Testing evaluation
(Slice-Stage): During this step PEF was applied
Step 1 (Slice 1)Analysis: During this step to determine the states of Release and Continue
all the items that need to be in the product cata- variables currently for the project. The Excel
log were determined including the item name, spreadsheet shown in Figure 5 was used for the
description, cost, and a picture (if available). The evaluation of the Release variable and macros
storefront look and feel was also determined. The developed as shown in Figure 6 were used to
features of the screens for viewing the catalog partially automate the evaluation process. For
and/or update the catalog were also determined. slice 1, Reliability and Efficiency (cells C1 and
This step took 3 days. D1, respectively, of Figure 5) are both considered
Step 1A (Slice 1)Analysis evaluation: This met since the partial product does have these
was done similar to that for the project of Section properties1; likewise, the Storefront factor (cell
5.1 and the phase-stage evaluation determined the E1) and ProductInfo factor (cell F1) are both met
completion of this phase. since at the end of this slice both exist. By propa-
Step 2 (Slice 1)Design: During this step the gation rule R7, since at least one child factor of
database schema was developed for the catalog NFRs Met factor (cell C2) is a Y, the NFRs Met is
and the screens for the storefront and database also Y. Likewise, by rule R7, the factor FRs Met


Augmented WebHelix

(cell E2) is also a Y. By propagation rule R1, the 12) is a Y since we have used the available tech-
parent factor Requirements Met is a Y as well. nology successfully for this slice and we believe
However, the factor ROI Acceptable (cell G1) is we can do so for the next slice as well; the factor
not met since as is the system does not have the Schedule Feasibility (cell D1) is a Y as well since
functionality to improve ROI therefore, by rule we have no reason to expect schedule slippage;
R10, the factor Profitable (cell G2) is not met (that and factor Cultural Feasibility (cell E1) is a Y
is, it gets an N by the propagation rule). The factor since the company (the development group of two
Improves Customer Relationship (cell H2) is not students) does not have any issues in continuing
met (N) since the Web application currently does further work on this project. By propagation rule
not provide much functionality for the customer. R1, the parent factor Feasible (cell C2) is a Y. The
By propagation rule R3, the parent factor Busi- factor ROI Acceptable (cell F1) is a Y since as per
ness Goals Achieved (cell G3) is not met, that is, our calculations the ROI will improve with more
it gets an N). The factor Errors Acceptable (cell features that customers can useby propagation
A2) was met (Y) since the errors were small; rule R9, the parent factor Profitable (cell F2) is a Y.
likewise the factor System Works is acceptable The factor Improves Company Image (cell B2) is a
(Y) since the system is accessible over a browser. Y since a more usable Web site will help improve
By propagation rule R1, the parent factor Test- the company image; therefore, by propagation
ing Successful (cell A3) is a Y. By propagation rule R1, since all the child factors of the parent
rule R3, the parent factor Release (cell A4) is an factor Helps Business Goals (cell B3) is a Y, the
N since one of its child factors (Business Goals parent factor is itself a Y. The factor Features
Achieved) is an Nthat is the product cannot be Expected by Customer (cell A2) is a Y since the
released in its current stage. features planned for iteration 2 (slice 2) are usu-
For deciding the value of Continue variable we ally provided by e-commerce sites - therefore, by
used the Excel spreadsheet representation of the propagation rule R9, the parent factor Features
FIG on the right of Figure 4 (shown in Figure 12). to be Added (cell A3) is a Y. Since both the child
The factor Technical Feasibility (cell C1 of Figure factors of the factor Continue (cell A4) is a Y, by

Figure 12. A more practical excel representation of the FIG on the right in Figure 4


Augmented WebHelix

propagation rule R1, the parent factor Continue PostHelix2: The project was maintained (will
is also a Y; that is, the project is good to go on to be continued into the next semester by another
the next slice of the helix. group of students)
In a similar manner, Step1 through Step 4A
of the AWH were applied for the next two slices; Here again the project was completed within
they together took another two weeks. However, about 2 months including the evaluation process.
for the final slice, during the evaluation phase, The progress of this project through the AWH
Release is a Y and Continue is an N which means process is shown in Figure 13.
that the project needs to be released in its current
state and not continued to the next slice. The reason
for Release to be a Y is that ROI Acceptable and 6. oBsErvaTIoNs
Improves Customer Relationship factors (cells G1
and H2, respectively, of Figure 5) are now both In Section 5 we described in detail the applica-
Y, which makes its parent factor Business Goals tion of Augmented WebHelix. In this section we
Achieved (cell G3 of Figure 5) also Y, and this in discuss the lessons learned from the application
turn makes Release a Y. However, for Continue, and the merits/demerits of AWH.
the factor Features Expected By Customer (cell
A2 of Figure 12) is an N since most of the fea- 6.1 salient features of aWH
tures commonly available in e-commerce sites
are already there and, therefore, Continue is an AWH is an iterative process for rapidly devel-
N as well. oping Web applications with several repetitive
slices each of consist of eight phases: analysis,
PostHelix1: The project was deployed and analysis evaluation, design, design evaluation,
presented (took 3 days) coding, coding evaluation, testing, and testing

Figure 13. The flow of the book E-Store Project through AWH process
Business
Analysis

Planning

Slice 1: Iteration 1:
Analysis, Design, Analysis Design Coding Test
Coding, Test
Continue
Slice 2: Iteration 2:
Analysis, Design, Analysis Design Coding Test
Coding, Test
Continue
Slice 3: Iteration 3:
Analysis, Design, Analysis Design Coding Test
Coding, Test
Release

Deploy

Maintain


Augmented WebHelix

evaluation, where the evaluation phases use the the requirements for a better process. Firstly, the
PEF for accomplishing the task. Thus AWH is students do not need to imagine the feedbackthe
significantly different from the other processes PEF lists the factors that the project needs to fulfill
described in Section 2. It is not a simple linear and the students need to determine how satisfac-
waterfall process since AWH is iterative and torily the factors have been met (or otherwise)
there are intervening evaluation phases; it is dif- and document reasons; therefore, the feedback
ferent from spiral since evaluation phase uses is provided in a systematic manner. Secondly,
the systematic PEF unlike the somewhat vague because of the systematic effort required by AWH,
risk assessment done by the spiral process; it is students cannot ignore feedbackthe evaluation
different from RUP since the evaluation phase of phase of AWH depends on using PEF to make
AWH serves as the milestone to proceed to the go/no-go decisions. Traceability is established by
next phase unlike in RUP where there is no formal making it one of the important factors in the PEF
framework to decide the completion or otherwise and ensuring the artifacts of the current phase are
of the current phase; and AWH is different from traceable (or not) with those of the previous phase
XP in that analysis and design are stressed but and capturing justifications. Because of the prac-
the evaluation phases ensure that documentation ticality of AWH, students realize the invaluable
is kept to the bare minimum in the spirit of XP. help provided by a process. In fact they tend to
We also believe that AWH is better than these become process-oriented at the end of the project
other processes simply because of the success of which we feel is a good preparation for the industry.
AWH in rapidly developing Web applications in Finally, due to the continual guidance provided
the academic environment. The PEF uses cardinal by AWH we have never had a failed project so
measurement of the achievement of each factor; far; students quickly discover deviations, if any,
this follows from the economic concept of satis- and their reasons and find time, if necessary, to
ficing [7] used by the NFR Framework [7] (from keep their projects on track.
which the PEF is derived) which means that fac-
tors may not be achievable in the absolute sense 6.3 Number of slices Through the
but only in the relative sense; moreover, we found Helix
that students were able to easily assign cardinal
measures more repetitively since they found some In the two examples discussed in Section 5 both
parallel with the grading system widely used in went through three slices of the helix: this is coin-
the universities. It has asked what happens if, for cidentaldifferent projects can through different
example, the design phase uncovers a require- numbers of slices through the helix. The number
ments defect? This defect would be found during of slices is dependent on factors discussed at the
the design evaluation phase of the current slice end of Section 3.
and as per the AWH procedure we would go to the
analysis phase of the next slice; therefore AWH is 6.4 variability of Evaluation factors
equipped to handle out-of-phase problems. Between slices

6.2 aWH meets the requirements for In Section 5 we assumed the factors for evaluation
a Better process to be static between slices. This need not be so
in the real world; if factors change during devel-
In Section 1 we stated some reasons why existing opment the FIG can be updated to reflect reality
processes were unsuitable for our use in academia. and during the next evaluation phase the updated
In this subsection we highlight how AWH meets FIG will be used for evaluation. Thus in the Zebra


Augmented WebHelix

Books project (Section 5.2) the factor FRs Met claimed that the factor Cultural Feasibility (cell
(Figure 4 or Figure 5) could be decomposed to E1 in Figure 12) is a Y since the company (the
reflect the functional requirements for each slice development group of two students) does not
rather than just Storefront and ProductInfo which have any issues in continuing further work on
are both available in the first iteration itself. this project. The statement within quotes is the
justification and this can be captured by a claim
6.5 assigning priority to factors factor.

In Section 5 we assumed all factors to be of the 6.7 promotes Team Work


same priority. This need not be true in practice
(for example, profitability may be of high priority The students will have to work together for the
in many cases); in order to indicate priority on a evaluation phase since it is quite possible that dif-
FIG the ! symbols (see Figure 3) are used in the ferent artifacts may satisfy the factors and no one
graphical representation and colored cells in the student may have developed or be even aware of all
Excel representation, and the propagation rules the artifacts. This is a positive aspect of AWH for
are extended as below (where the evaluator can academic projects since, at least initially, students
make the appropriate decisions): are wary of working with others in a team.

In an AND-relationship involving high-priority 6.8 captures rationale for decisions


factors:
R12. If a high-priority child factor is a Y and the This is perhaps one of the biggest strengths of
remaining child factors are all N then the AWH. Since PEF captures justifications and
parent factor may be a Y. since the justifications encapsulate the reasons
R13. If a high-priority child factor is a U then the for the decisions taken at various phases, AWH
parent factor may be U. implicitly promotes capture of rationale for the
decisions. This helps the project team to quickly
In an OR-relationship involving high-priority re-evaluate past decisions based on the rationale
factors: used for the decisions.
R14. If a high-priority child factor is an N and
the remaining child factors are all Y then 6.9 simulates customer feedback
the parent factor may be a N.
R15. If a high-priority child factor is a U then the Another positive aspect of AWH is that the
parent factor may be U. evaluation framework necessitates team work
and rationale capture. The discussion within
6.6 Capturing Justifications in the the team to complete the evaluation table very
fIG closely simulates that of the interaction with live
customer but does not require an actual customer.
In Figure 8 we have written the justifications for For example, in Figure 8, when students are trying
the decisions, but these do not appear in the FIG to determine the satisfaction (or otherwise) of the
of Figure 9. The justifications for Y and N (and factor Benefits they will have to discuss among
U) may also be captured in the FIG by means of themselves for determining reasons and rationale
claim factors; graphical notation is a dotted circle for satisfaction of the factor; the rationale (or jus-
(as shown in Figure 3) and in Excel it is a cell with tification) will help capture customer feedback in
the justification in italics. Thus for example, we practice and lead to better understanding of the


Augmented WebHelix

problem domain. The team is fully aware of taking course of a semester for the local industry. The
decisions and the reasons for taking themex- experience of the students has been successful
actly the feedback the students may expect had with the major difference being that the evalua-
they interacted with a real customer. tion phases are completed with input from their
industry customers whenever necessary (for
6.10 supports rapid prototyping example, in Figure 8, the satisfaction of the fac-
tor Services to be Provided by GameBuy will
All projects that have used AWH have finished well need to be determined by customer feedback and
within schedule. On those rare occasions where all captured as such in the justification). The authors
the features could not be implemented, the project have also used AWH for private projects with
team was aware of the reasons for not implement- industry and likewise our experience has been
ing them. Besides, rapid prototyping supported positive as well. We therefore believe that AWH
by AWH is backed by upfront requirements and is scalable for industry projects; however, we need
design so that students realize that implementa- to apply this process on large teams before we can
tion does not supplant these important activities. be confident of AWHs scalability.
In fact, one of our undergraduate seniors happily
informed us that he got a job only because he was 6.14 some Issues with aWH
able to stress the importance of documentation
in the system development process. While AWH has several advantages, based on the
performance and the feedback from the students
6.11 phases may Be decomposed we found that there are still some issues that
need to be resolved. Chief among them is the fact
As shown by the example of Section 5.1, the that AWH is not very easy to learn initially. The
analysis phase of a slice was decomposed into students had to learn from instructors notes that
business requirements analysis and software are themselves evolving as the course is taught
requirements analysis. Thus a generic phase each time and too many of the concepts of AWH
may be decomposed as required by the project. were somewhat involved. They had several ques-
Decomposition is viewed as another pass through tions on the process which when clarified helped
the same generic phase in the next slice of the them become comfortable with the process. Their
helix as shown in Figure 11. answers to embedded questions in the exams also
confirm this observation. AWH forces team work,
6.12 develop understanding of especially the evaluation phases. This sometimes
system Evolution creates stress on the students who are working on
teams for the first time. Students do not always
An important point to note in Figure 13 is that each appreciate the need for any documentation at
slice of the helix extends the existing system. This all, and the capturing of justifications as part of
helps to teach the students about system evolution evaluation is seen as unnecessary. However, we
and how this is a natural property of systems. believe that development of better pedagogical
aids including text books on AWH will help us
6.13 scalable to Industry projects overcome some of these problems; however, the
benefits obtained from using AWH makes it a
AWH has been used in Capstone Projects where promising Web engineering process.
students complete information systems in the


Augmented WebHelix

7. coNclusIoN aNd fuTurE 3. PEF is applied at the end of each phase


WorK (phase-stage evaluation) of a slice in order
to determine whether to proceed to the next
Process is important for developing Web-based phase of the same slice and at the end of slice
systems. While several processes such as incre- (slice-stage evaluation) to determine whether
mental, Rational unified process, object-oriented, or not to proceed to the next slice.
extreme programming, and system development
lifecycle are available for use by industry, their The FIGs may be drawn graphically or repre-
adaptation to the academic world has been trouble- sented in Excel spreadsheets. The latter approach
some, chiefly because of the lack of feedback from allows for the use of Visual Basic macros for au-
actual customers for several academic projects. tomatic evaluation. The practicality of the AWH
The feedback from customers is taken for granted was confirmed by applying it for several Web
in most industry-oriented processes. WebHelix application projects in the academia and industry.
[27] was introduced as a process that is useful The lessons learned from applying AWH rein-
for academia and industry by providing a good forced our belief that AWH is a practical process
balance between process formalities and practi- for Web engineering.
cal constraints. WebHelix is a helical process for There are several directions for further re-
developing Web applications where each turn of search. In our application of AWH for the project
the helix, called a slice, has five phases: analy- of Section 5.1, we assumed that when a phase is
sis, design, coding, testing, and evaluation. The decomposed into say, Business Requirements
evaluation phase determines whether the current Analysis and Software Requirements Analysis,
version of the Web application is ready for release we simply move to the analysis phase of the sub-
to the customer or whether further development sequent slice; however, we did not apply PEF to
through another slice of the helix is required. do slice jump. We deliberately did this in order to
The evaluation phase mostly uses the return-on- keep the idea simple; however, we believe we need
investment (ROI) factor to determine the next to modify AWH in order to make this slice jump
course of action which restricts its usefulness for legal and we need to study this concept further. Our
academic projects. In this chapter we proposed belief that AWH is scalable to industry require-
the augmented WebHelix (AWH) process that ments is based on performance of the process on
augments the WebHelix in three ways: Capstone Projects that our students cooperatively
develop with the local industry and the personal
1. Provides an option to both release the current experience of the authors on their private projects
version and continue with the next iteration with industry. However, we need to use AWH
in the next slice; this reflects reality better with large teams to confirm its general industrial
since in many projects iterative/incremental applicability. PEF currently gives qualitative
development process is used; metrics; more specifically it helps make Yes/No
2. Provides a qualitative evaluation framework, decisions for both the phase-stage and slice-stage
called the project evaluation framework evaluations. It will be perhaps helpful if some form
(PEF) for evaluating the project status; this of quantitative metrics could be provided by the
framework allows factors affecting a particu- PEF. We have developed quantitative metrics for
lar project to be considered for evaluation by software measurement [22], and we hope to extend
constructing AND-OR graphs called Factor that work to PEF. Yet another line of research is
Interdependency Graphs (or FIGs) and ap- to identify how AWH works in combination with
plying propagation rules on the FIGs; other processes such as extreme programming,

0
Augmented WebHelix

component-based development, and rational uni- software engineering. Boston:.Kluwer Academic


fied process, among others. This will help create Publishers.
hybrid strategies that organizations could use
8. Clark, B. (2004). Enterprise application inte-
perhaps more effectively to migrate from their
gration using .NET. Addison-Wesley.
current process to the AWH process.
However, we believe that the augmented 9. Conallen, J. (2003). Building Web applications
WebHelix is a useful and practical process for with UML, 2/E. Addison-Wesley.
engineering Web applications by practitioners
10. Deshpande, Y., & Hansen, S. (2001) Web engi-
both in the industry and academia.
neering: Creating a discipline among disciplines.
IEEE Multimedia, April-June, 82-87.
acKNoWlEdGmENT 11. Evans, E. (2003). Domain-driven design:
Tackling complexity in the heart of software.
We express sincere gratitude to the anonymous Addison-Wesley.
referees of the earlier version of this chapter for
12. Hawthorne Software Engineering Company,
their insightful comments and suggestions which
Software Development. Retrieved on September
helped us significantly improve the quality of the
27, 2007, http://www.hawthornesoftware.com/
chapter.
Software.htm
13. Koch, N., & Kraus, A. (2002). The expressive
rEfErENcEs power of UML-based Web engineering. Paper
presented at the Second International Workshop
1. Aoyama, M. (1998).Web-based agile software on Web-Oriented Software Technology (IW-
development, IEEE Software, 57-65. WOST2), Malaga, Spain.
2. Beck, K., & Fowler, M. (2001). Planning Ex- 14. Mellor, S., & Balcer, M. (2002). Executable
treme Programming, Addison-Wesley.. UML: A foundation for model driven architecture.
Addison-Wesley.
3. Becker, S. A., & Bostelman, M. L. (1999). Align-
ing strategic and project measurement systems. 15. Olsina, L., & Rossi, G. (2002) Measuring
IEEE Software, 16(3), 46-51. Web application quality with WebQEM. IEEE
Multimedia, 9(4), 20-29.
4. Boehm, B., & Hansen, W. J. (2001). The spiral
model as a tool for evolutionary acquisition. Re- 16. Patton, S. (2002). Web metrics that mat-
trieved on September 27, 2007, http://www.stsc. ter. Computer World. [Electronic version].
hill.af.mil/crosstalk/2001/05/boehm.html Retrieved on September 27, 2007, from http://
www.computerworld.com/databasetopics/data/
5. Boehm, A., & Lowe, D. (2006). Murach's ASP.
story/0,10801,76002,00.html
NET 2.0 Web programming with VB 2005. Fresno,
CA: Mike Murach & Associates. 17. Pressman, R. S. (2005). Software engineer-
ing: A practitioners perspective. New York:
6. Britton, C., & Bye, P. (2004).IT architecture
McGraw-Hill.
and middleware. Addison-Wesley.
18. Riggins, F. J., & Mitra, S. (2003). A frame-
7. Chung, L., Nixon, B. A., Yu, E., & Mylopou-
work for developing net-enabled business metrics
los, J. (2000) Non-functional requirements in


Augmented WebHelix

through functionality interaction. Retrieved on Maintenance, (pp. 669-672). IEEE Computer


September 27, 2007, from http://ids.csom.umn. Society. Budapest, Hungary.
edu/faculty/friggins/e-metrics.pdf
25. White, B. (1996, May 6-11). Web document
19. Rising, L & Janoff, N. S. (2000). The scrum engineering. Talk given at 5th International World
software development process for small teams. Wide Web Conference, Paris, France. [Electronic
IEEE Software, July/August, 2-8. version]. Retrieved on September 27, 2007, http://
www.slac.stanford.edu/pubs/slacpubs/7000/slac-
20. Ruhe, M., Jeffrey, R., & Wieczorek, I. (2003,
pub-7150.html
May). Cost Estimation for Web Applications. In
Proceedings of the 25th International Confer- 26. Whitten, J. L., & Bentley, L. D. (2006). Systems
ence on Software Engineering, IEEE Computer analysis and design methods. McGraw Hill..
Society, (pp. 285-294).
27. Schach, S., (2005). Object-oriented and clas-
21. Standing, C. (2002). Methodologies for devel- sical software engineering. McGraw Hill.
oping Web applications. Information and Software
28. Whitson, G. (2006) WebHelix: Another Web
Technology, 44(3), 151-159.
engineering process. The Journal of Computing
22. Subramanian, N., Chung, L., & Song, Y-t. Sciences in Colleges, 21(5), 21-27.
(2006, June). An NFR-Based framework to estab-
29. http://www.ambysoft.com/unifiedprocess/ag-
lish traceability between application architectures
ileUP.html
and system architectures. In Proceedings of the
7th ACIS International Conference on Software
Engineering, Artificial Intelligence, Network-
ENdNoTE
ing, and Parallel/Distributed Computing (SNPD
2006), IEEE Computer Society, Las Vegas. 1.
One observation that could be made is how
23. Subramanian, N., & Chung, L. (2003, Sep- do we know that Reliability and Efficiency
tember). Process-oriented metrics for software are met for these are themselves in some
architecture evolvability. In Proceedings of the senses vague qualitiesthis can be better
International Workshop on Principles of Software estimated by decomposing Reliability and
Evolution, IEEE Computer Society, (pp. 65-70). Efficiency into their sub factors: for example,
Helsinki, Finland. Reliability could mean Non Failure of Web
site and 24x7 accessibility; Efficiency
24. Subramanian, N., Puerzer, R., & Chung, L.
could mean All pertinent information
(2005, September). A comparative evaluation of
available on the screen and ease of use
maintainability: A study of engineering depart-
and evaluating these sub factors first.
ments Website maintainability. In Proceedings
of the International Conference on Software




Chapter III
Model-Centric Architecting
Process
Tony C. Shan
IBM, USA

Winnie W. Hua
CTS, Inc., USA

aBsTracT

This chapter defines a methodical approach, named model-centric architecting process (MAP), to effec-
tively cope with the architecture design complexity and manage the architecting process and lifecycle of
information systems development in a service-oriented paradigm. This comprehensive method comprises
four dimensions of architecting activities: requirement analysis, specification, validation, and planning
(RSVP). The process is broken down into nine interrelated models: meta architecture, conceptual archi-
tecture, logical architecture, physical architecture, deployment architecture, management architecture,
information architecture, aspect architecture, and component architecture. A 2-D matrix serves as a
blueprint to denote a step-by-step procedure to produce and manage the architectural artifacts and
deliverables in the lifecycle of systems architecture design, development and governance. The holistic
framework provides a multidisciplinary view of the design principles, tenets, idioms, and strategies in
the IT architecting practices. The characteristics and features of the constituent elements in the MAP
approach are articulated in great detail. Recommendations and future trends are also presented in the
context. It helps build high-quality service-oriented solutions focused on different domains, and in the
meantime keeps the agility, flexibility and adaptiveness of the overall method. This systematic framework
may be customized in different formats to design various information systems in different industries.

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Model-Centric Architecting Process

INTroducTIoN The Zachman framework (Zachman, 1987) is a


logical structure for classifying and organizing
In todays on-demand business world, the elec- the descriptive representations of an enterprise IT
tronic business models demand increasingly environment that are significant to the manage-
higher performance of information technology ment of the organization as well as to the devel-
(IT) systems. We must do more with less, so as opment of the enterprises information systems.
to provide a higher level of services at a lower It takes the form of the two-dimensional matrix,
cost for the business to compete and succeed. and has achieved a level of penetration in the
This means that IT has to build more complex, domain of business and information systems
flexible, scalable, extensible, and forward-think- architecture and modeling. It is mainly used as
ing technical solutions, to meet the ever-growing a planning or problem-solving tool. However,
business needs. it tends to implicitly align with the data-driven
In large organizations like worldwide financial approach and process-decomposition methods,
institutions, virtually hundreds, if not thousands, and it operates above and across the individual
of IT applications and systems have been built project level. Extended enterprise architecture
or purchased to provide electronic services for framework (E2AF) (IEAD, 2004) takes a very
external customers and internal employees in the similar approach in the Zachman framework. Its
past years, utilizing heterogeneous technologies scope contains business, information, system,
and architectures to satisfy diverse functional and infrastructure in a 2-dimensional matrix.
requirements from different lines of business. E2AF is more technology-oriented. Both of
The banking industry is no exception. The these approaches are heavyweight methodolo-
business process operations generally contain gies, which require a fairly steep learning curve
different business sectors in retail, commercial, to get started.
small business, wealth management, and capital Rational unified process (RUP) (Kruchten,
management. In particular, services are delivered 2003) attempted to overcome these shortcom-
to different channels such as automated teller ings by applying the unified modeling language
machines (ATMs), Web browsers, interactive (UML) in a use-case driven, object-oriented and
voice response, agent assistance, emails, mobile component-based approach. The concept of 4+1
devices, and so forth. To effectively manage the views interprets the overall system structure from
architecture complexity and optimize the design multiple perspectives. RUP is more process-ori-
practices in such a disparate environment, a ented, and rooted in a waterfall-like approach.
multidisciplinary design approach is crucial to RUP barely addresses software maintenance and
abstract concerns, divide responsibilities, mitigate operations, and lacks an in-depth coverage on
risks, encapsulate the complexity, and rationalize physical topology and development/testing tools.
operating processes. It mainly operates at the individual project level.
RUP has recently been expanded to enterprise
unified process (EUP), part of which has become
BacKGrouNd open source OpenUP in Eclipse Process Frame-
work (EPF) project (Eclipse, 2007).
Previous studies in the last few decades have Another heavyweight approach, The Open
strived to address the issue of architecture de- Group Architectural Framework (TOGAF) (The
sign complexity, which has grown exponentially Open Group, 2007), is a detailed framework
as the computing paradigm has evolved from a with a set of supporting tools for developing an
monolithic to a service-oriented architecture. enterprise architecture to meet the business and


Model-Centric Architecting Process

information technology needs of an organization. man, 2001) is a co-coordinating framework for


The three core parts of TOGAF are architecture the standardization of open distributed process-
development method (ADM), enterprise archi- ing in heterogeneous environments. It creates
tecture continuum, and TOGAF resource base. an architecture that integrates the support of
The scope of TOGAF covers business process distribution, interworking and portability, using
architecture, applications architecture, informa- five viewpoints and eight transparencies.
tion architecture, and technology architecture. Scenario-based architecture analysis method
The focal point of TOGAF is at the enterprise (SAAM) (SEI, 2007) was developed to analyze
architecture level, rather than the individual ap- a system for modifiability but is useful for test-
plication architecture level. On the other hand, ing any nonfunctional aspect. Architectures are
model-driven architecture (MDA) (OMG, 2007) examined via scenarios in SAAM with regard
takes an agile approach. MDA aims to separate to achieving quality attributes. The Solution
business logic or application logic from the un- Architecture of N-Tier Applications (Shan, 2006)
derlying platform technology. The core of MDA presents a multi-layer and multi-pillar model for
is the platform-independent model (PIM) and Web-based applications.
platform-specific model (PSM), which provide Despite sporadic use of the methods previously
greater portability and interoperability as well as discussed, most todays real-world practices of
enhanced productivity and maintenance. MDA is information system development are still ad hoc,
primarily for the software modeling part in the manual, and error-prone. This type of immaturity
development lifecycle process. inevitably leads to chaotic outcomes and failures
Other related works on IT architecture frame- in the project execution. A recent survey (Standish
works are largely tailored to particular domains. Group, 2007) reveals that a vast majority of in-
They are useful references when a team creates formation systems projects are behind schedule,
their own models for their organization. The over budget, or canceled. Inadequate systematic
C4ISR architecture framework (DoD, 1997) gives frameworks describing the key design practices
comprehensive architectural guidance for various and artifacts in the service-oriented paradigm are
Commands, Services, and Agencies within the directly attributed to this situation.
U.S. Department of Defense, in order to ensure A new framework is proposed in the next sec-
interoperable and cost effective military systems. tion, with more detailed descriptions of the key
The Federal Enterprise Architecture (FEA) frame- characteristics and features of the components in
work (Federal Office, 2007) provides direction and the section that follows. The best practice usage
guidance to U.S. federal agencies for structuring and future trends are presented in the subsequent
enterprise architecture. The Treasury Enterprise sections, followed by the conclusions section.
Architecture Framework (TEAF) (Treasury
Department, 2000) is to guide the planning and
development of enterprise architectures in all comprEHENsIvE mETHod
bureaus and offices of the Treasury Department.
The Purdue Enterprise Reference Architecture As discussed in the preceding section, most of
(PERA) (Purdue University, 1989) is aligned to the previous methods reveal the architectural
computer integrated manufacturing. aspects of a software application to some extent at
ISO/IEC 14252 (a.k.a. IEEE Standard 1003.0) a fairly high level or from a restricted perspective.
is an architectural framework built on POSIX The necessity of a comprehensive approach to
open systems standards. The ISO reference model architecting the end-to-end distributed solutions
for open distributed processing (RM-ODP) (Put- becomes more and more evident, demanding a


Model-Centric Architecting Process

systematic disciplined way. A highly structured Innovations: The stimulation and protection
mechanism is thus designed in this chapter to meet of the corporate innovations is enforced in
this ever-growing need, and present a comprehen- the IT architecture, management, and gov-
sive and holistic view of all architectural elements, ernance processes.
components, knowledge, platforms, planning,
and their interrelationships. Design procedures Technical Principles
are established accordingly in this approach to
facilitate the creation, organization, and manage- Flexibility: The technical model is agile and
ment of the architecture assets and solutions at nimble to be adaptive in response to future
different levels in a large organization. business needs.
Responsive change management: Changes
design philosophy to the corporate architecture/infrastructure
environment are planned and implemented
The development of this disciplined mechanism in a phased approach.
followed some key design principles, part of which Requirement scope control: Avoid scope
were adapted from TOGAF (The Open Group, creeping and waterfall approach.
2007) but significantly modified/expanded to be Technology standardization: Techno-
tailored to the services-oriented distributed ap- logical diversity is controlled to minimize
plication development process. immature and proprietary solutions and
products.
Business Principles Interoperability: Software, hardware,
network and infrastructure should conform
Primacy of principles: All groups and to defined standards that promote com-
stakeholders within an organization must patibility for data, applications, services,
follow these principles of solution architect- communications, integration, security and
ing. technology.
Maximize benefits: Maximum benefits will
be achieved to the entire organization. Solution Principles
Business Continuity: Business opera-
tions are not interrupted in spite of system Ease of use: Solutions are user friendly,
changes. with the underlying technology transparent
Active engagement: All stakeholders to users, so they can concentrate on tasks at
participated in the process to accomplish hand.
business objectives. Technology independence: Technical solu-
Compliance with regulations: The archi- tions are independent of specific technology
tecting processes comply with all relevant choices and therefore can operate on a variety
laws, policies, and regulations. of technology platforms.
IT accountability: The IT group accounts Common services and components: Mini-
for owning and implementing IT processes mize the redundant development of similar
and infrastructure that enable solutions to functionalities to promote common service
satisfy business requirements for func- and components across the organization.
tionality, service levels, cost, and delivery
timelines.


Model-Centric Architecting Process

Data Principles Service Principles

Data asset: Data is an asset that has value Encapsulation: Service elements and details
to the enterprise and is managed accord- are enclosed inside larger, more abstract
ingly. entities.
Data ownership: Each data element owned Loose coupling: Services maintain a rela-
by an entity accountable for the data qual- tionship that minimizes dependencies and
ity. only requires that they maintain an aware-
Common vocabulary and meta-data: Data ness of each other.
is defined consistently throughout the orga- Contract: Beyond what is described in the
nization, and the meta-data are standardized service contract, services hide logic from
and available to all users. the outside world.
Shared data: Data is shared across lines Reusability: Logic is divided into services
of business for individual applications and with the intention of promoting reuse.
systems to perform their duties. Composability: Collections of services
Data access: Data is accessible for users to can be coordinated and assembled to form
perform their functions composite services.
Data security: Data is protected from Autonomy: Services have whole control
unauthorized use and disclosure. In addi- over the logic they encapsulate.
tion to the traditional aspects of national Statelessness: Services minimize retaining
security classification, this includes, but is information specific to an activity.
not limited to, protection of pre-decisional, Discoverability: Services are designed to
sensitive, and proprietary information. be outwardly descriptive so that they can be
found and assessed via available discovery
mechanisms.

Figure 1. RSVP dimensions in MAP


Model-Centric Architecting Process

General approach mation architecture, aspect architecture, and


component architecture.
The Model-centric Architecting Process (MAP)
is designed in this work as a multi-disciplinary Meta architecture: The fundamental or-
approach. It defines a comprehensive method to ganization and formal description of an IT
control the application design and development system portfolio, interrelationships, deci-
practices for the quality delivery of information sions and their associated rationales.
systems. The MAP framework is a holistic disci- Conceptual architecture: The grouping
pline to help analyze and strategize the thought of functional capabilities and practices that
process, methods, tradeoffs, and patterns in the make use of conceptualism in architec-
architecture design. ture.
As illustrated in Figure 1, there are four di- Logical architecture: The static and dy-
mensions defined in MAP: requirement analysis, namic structure of layers, modules, and
specification, validation, and planning (RSVP), building blocks that are mapped to the server
which aligns with the best practices in systems and and technology platforms, which are the
software engineering. The requirement analysis is baseline containers for the applications.
to thoroughly examine the business requirements Physical architecture: The runtime en-
and identify the architectural requirements. The vironment that is mapped to software and
specification dimension deals with designing hardware products, on which applications
the architecture based on the outcome of the are installed and run in operations.
analysis results and producing the architecture Deployment architecture: The topologi-
specifications. The validation dimension is for cal layout the solution system that will be
objective/subjective verification and certifica- deployed at different geographical locations
tion of the architecture design completed. Lastly, connected via networks.
the focus of the planning dimension is for both Management architecture: The architec-
individual application architecture and portfolio ture and infrastructure to manage, govern,
architecture. The granularity varies at the enter- and administrate IT assets and enterprise-
prise, division, channel, business domain, and wise distributed computer systems.
project levels. Benchmarks are used to measure Information architecture: The practice of
and track the maturity of architecture models. The processing, storing, and utilizing informa-
planning emphasizes the architecture reusability tion (data or knowledge), which is often
and generalization, which lead to architectural structured in relation to its context in user
styles and patterns for an enterprise computing interactions and large databases.
environment. The RSVP dimensions represent Aspect architecture: Organization of
the major stages in the architecture lifecycle of architectural, control operational and de-
solution designs. velopment aspects, which are cross-cutting
MAP forms a common baseline to imple- concerns and advice.
ment service-oriented architecture, integration, Component architecture: An evolution
process and management in information systems. from object-oriented design where a compo-
It primarily focuses on a broad range of archi- nent of a program refers to a generic module
tecture models, as illustrated in Figure 2: meta composed of a set of elements or objects.
architecture, conceptual architecture, logical The granularity of components varies, be-
architecture, physical architecture, deployment ing primitive, aggregated, or composite.
architecture, management architecture, infor- The structure of a component can become


Model-Centric Architecting Process

Figure 2. Architecture levels in MAP

D e p lo y m e n t Management

M e ta

P h y s ic a l map C o n c e p tu a l

C omponent In fo rm a tio n
L o g ic a l

A spect

complex enough so that the component itself and components to an architecture level brings
needs a micro-framework to organize the forth a holistic view of the key architecture de-
design artifacts. sign artifacts from end to end, eliminating the
disconnect between the architecture design and
implementation design in the traditional approach.
modEl-cENTrIc arcHITEcTING In addition, the meta model sheds light on the
procEss portfolio blueprint, cross-application concerns,
roadmapping, and optimization to pave the way
Some of the nine architecture models in MAP towards a service-oriented enterprise. The nine
have been routinely used in the project archi- architecture types are articulated in detail in the
tecting practices, such as conceptual, logical, following subsections.
physical, and information architectures. The MAP
framework introduces the concept and applica- meta architecture
tion of new modeling disciplines, and intensifies
unprecedented attention to the key design at- As shown in Figure 3, the requirements of meta
tributes for the service-oriented paradigm. The architecture are architecture vision, principles, te-
deployment architecture is distinguished from nets, idioms, guidance, and trends. It also includes
physical architecture, in order to further sepa- the alignment of business and technology models,
rate concerns and enhance loose coupling of the as well as the architecture portfolio rationaliza-
models. The management architecture becomes tion and IT simplification. From the architecture
an independent module to take account of the specification perspective, the meta architecture
increasing demand for quality of services and specifies a number of key architecture artifacts
non-functional requirements. Lifting aspects across the application portfolio: architecture


Model-Centric Architecting Process

Figure 3. Meta architecture in MAP

Figure 4. Conceptual architecture in MAP

mission and vision, strategy, roadmap, methods, conceptual architecture


tools, frameworks, cross application architecture
models, architectural patterns, business analysis The conceptual architecture, as depicted in Figure
patterns, and standards. 4, deals with modeling the system functionalities,
In the meta architecture validation stage, identifying non-functional requirements, deter-
enterprise standards and polices are established, mining the service-level agreements, analyzing
coupled with reference models and solution pat- the business process, and scoping the system
terns. Prototype and proof-of-concept evaluations capabilities. The deliverables of the conceptual
are used to justify the feasibility of new technolo- architecture design are the use case diagram, use
gies and products. Best practice guidelines and case specification, system scope, architecture
development cookbooks are created as guiding constraints and assumptions, architecture risks,
documentation for the project teams. The meta user interface specification, and service access
architecture planning emphasizes on strategy, specification (API and service interface).
domain/channel architecture, architecting op- In validating the conceptual architecture,
timization, architecture blueprint, architecture the business patterns and skeletal architecture
taxonomy for classification and ontology for are assessed to conduct the impact and agility
semantics. analysis. The industry standards are verified, and
the notations are standardized. With regard to the

0
Model-Centric Architecting Process

Figure 5. Logical architecture in MAP

Figure 6. Physical architecture in MAP

planning, the conceptual architecture deals with point, the logical architecture must align closely
the architecture process, content, context, reuse with the business process architecture. The model
and generalization. should be platform-independent and product-ag-
nostic, allowing for openness and flexibility for
logical architecture long-term stability in the design.

As sketched in Figure 5, in terms of requirements, physical architecture


the logical architecture is with regard to the overall
system structure, technology options and selec- The physical architecture, as drawn in Figure 6,
tion criteria, module organization and application handles the platform selection criteria, product
domain modeling. In the logical architecture, the mapping approach, capacity planning, and qual-
design is specified via the architecture diagram, ity attribute analysis. The physical architecture
subsystem responsibilities and relationships, specification captures the platform selection,
communication diagram, activity diagram, key hardware model, system management, system
technology selection, architecture layering, and backup and disaster recovery, scalability, high
interoperability. availability, authentication & authorization, se-
The focus of the logical architecture validation curity, and network requirement.
is on the architectural patterns, business rules, A key decision justification in the physical ar-
workflow, integration patterns, and reference chitecture is build versus buy. Enterprise standards
models. From the architecture planning stand- are checked with regard to the products used in the


Model-Centric Architecting Process

Figure 7. Deployment architecture in MAP

Figure 8. Management architecture in MAP

projects. Regulatory requirements and compliance chitecture specification are the network topology,
are evaluated. Exception rationales and tradeoffs hosting farm or hotel, deployable build models,
are carefully deliberated. The product lifecycle configuration specification, development/test/
and roadmap have a significant impact on the production environments, deployment diagram,
physical architecture planning. Additionally, the installation specification, user guide, and data
architecture maturity and longevity quantify the center operations.
evolution of physical architecture design. In the deployment architecture verifica-
tion, the deployment patterns should have been
deployment architecture considered as the engineering implementation
approaches. Other artifacts are also examined,
As represented in Figure 7, the requirement such as compliance, SSO, authorization, encryp-
scope of the deployment architecture contains tion, and resource sharing via server hotels and
the run-time environment to host the individual partitioning. Regarding the planning, the data
applications with the topological organization in center design and environment buildout will meet
the geographical data centers. It also takes ac- the needs of the business continuity and timely
count of staging, pilot, recovery time objective, technology recovery. Virtualization and grid
recovery point objectives, release and backout computing are leveraged to maximize the reuse
plans. The key elements in the deployment ar- of infrastructure.


Model-Centric Architecting Process

Figure 9. Information architecture in MAP

Figure 10. Aspect architecture in MAP

management architecture Information architecture

The elements in management architecture require- As illustrated in Figure 9, the information archi-
ments, as pictured in Figure 8, are solution provi- tecture handles the data and content requirements,
sioning, automation, capacity, service versioning, such as persistence, reporting, data integration,
service interaction security, and SLA monitoring. data quality, analytics, business intelligence,
The management architecture specification cov- data store, and data extract-transform-load. The
ers event handling, fault troubleshooting, product information architecture specification defines the
trace, debug data transfer and analysis, problem data model, storage, DBMS, database schema,
isolation and diagnosis, service relationship vi- replication, data transfer, data backup, data cach-
sualization, and business process status. ing, reporting, metadata, query, workload priority,
From the management architecture valida- and access control.
tion viewpoint, the key artifacts are inspected The information architecture validation
such as data collection, analysis, persistence, consists of evaluations of data normalization,
visualization, environment optimization, policy security, integrity, transactional versus analytic,
governance, certification, and registry. The man- reuse, replication, quality, analysis, stream flow,
agement architecture planning focuses on the and audit. The information architecture plan-
overall system management, service repository, ning deals with reference data, data integration
system recovery plan, dashboard, and governance & virtualization, knowledge engineering, data
process. retention and archiving.


Model-Centric Architecting Process

aspect architecture The component architecture validation is


related to standards, compliance, open source as-
The aspect architecture, as described in Figure 10, set repository, interface, component composition
treats crosscutting concerns as aspects in systems and orchestration. In the component architecture
using the architectural patterns. The aspect ar- planning, the focus is on the component hierarchy,
chitecture pertains to the application framework, maintainability, conventions, component catalog
design patterns, sequence diagram, collaboration and repository, and reuse efficiency.
diagram, performance tuning, session manage-
ment, and open source products.
The primary artifacts in the aspect architecture applIcaTIoN aNd fuTurE
validation are enterprise standards, compliance, TrENds
dependency injection, annotations, proxy, indus-
try standards, and reusable assets. The aspect Table 1 is a 2-D matrix, which summarizes the
architecture planning handles common concerns, key artifacts in the MAP. The matrix serves as a
patterns, aspect-oriented design methods, and reference card of major activities and deliverables
inversion of control. defined in the architecting lifecycle. The process
can be leveraged as a baseline to construct in-
component architecture formation systems in a round-trip engineering
process. The nine models provide a progressive
As portrayed in Figure 11, the component architec- granularity for architecting and design that was
ture is at the micro level of design and construc- not addressed in such a comprehensive manner
tion in application software. The analysis of the in previous studies. The framework also clarifies
component needs and progressive decomposition the synergies and linkage between the models,
from the process down to the method level help facilitating the forward-engineering and reverse-
identify reusable components and toolkits to engineering activities and responsibilities.
be leveraged, either commercial off-the-shelf From a design perspective, the framework
(COTS) or open source products. Regarding the provides an architectural skeleton of a distributed
specification, the component architecture covers application. Various elements in the MAP are
the component specification, CRC cards, class candidates to be selected to build a solutions ar-
diagram, design patterns, technology, package, chitecture model. For example, a Web application
and open source utilities. framework can be chosen as the micro-structure

Figure 11. Component architecture in MAP


Meta Conceptual Logical Physical Deployment Management Information Aspect Architecture Component
Architecture Architecture Architecture Architecture Architecture Architecture Architecture Architecture
- Architecture - Functionality - IT system - Platform - Run-time - Solution - Persistence - Crosscutting concerns - Detailed/ Micro
principles modeling structure requirements environment provisioning requirement - Application, software, design
- Architecture - Non-functional - Technology - Product mappings - Staging - Automation & - Reports hardware, network, - Service
trends requirements options and - Network - Pilot capacity - ETL infrastructure level components
- Biz and - SLA selection requirement - Recovery - Multiple - BI - Aspect patterns - Operations
Technology - Business - Application - Quality attribute time and point service - Data warehouse Process
alignment process flow domain analysis objectives versions - Data mart service

(analysis)

Architecture
- Architecture - System scoping modeling - Release and - Secure service - Risk data component

Requirements
rationalization - Capability - Organization backout plan interactions - OLTP/OLAP object method
and - Monitor SLA decomposition
simplification
- Cross-app - Use case - Architecture - Platform selection - Network - Event handling - Data model - Application - Component
architecture diagram & diagram - Hardware model topology and fault - Storage framework specification
- Roadmap specification - Subsystem - System - Farm/Hotel troubleshoot- - DBMS - Design patterns - Service
- Architectural - System context responsibilities performance - Build models ing - Database schema - Sequence diagram
Model-Centric Architecting Process

definitions
patterns - Architecture and - System backup - Configuration - Product trace - Replication - Collaboration - CRC cards
- Business analysis constraints and relationships and DR specification and debug data - Data transfer diagram - Class diagram
patterns assumptions - Communica- - Scalability - DEV, TEST, transfer and - Data backup - Performance tuning - Design patterns
- Architecture - Architecture tion diagram - High availability UAT, PROD analysis - Data caching - Session management - Technology
methods risks - Activity - Authentication environments - Problem - Reporting - Open source products - Package
- Architecture - User interface diagram - Security - Deployment isolation and - Metadata - System & UI - Open source

(modeling)
standards specification - Key - Capacity planning diagram diagnosis - Query navigation utilities
- Architecture - Service access technology - Installation - Service - Workload priority - Libraries
frameworks specification selections specification relationship - Access control - Widgets

Architecture Specification
- Modeling tools - Computation- - Architecture - User guide visualization - Toolkits
independent layering - DMZ and - Business - API
- Inter- Firewalls process status
operability
Table 1. Reference card of model-centric architecting process

- Appraisal - Assessment - Review - Evaluation - Examination - Inspection - Normalization - Justification - Review


- Prototype and - Impact analysis - Architectural - Enterprise - Deployment - Data collection - Data security - Enterprise standards - Enterprise
POC - Skeletal patterns standards patterns - Analysis - Data integrity - Compliance standards
- Reference architecture - Business rules - Compliance - Enterprise - Persistence - Transactional vs. - Dependency injection - Compliance
models - Business - Workflow - Exception standards - Visualization analytic - Annotations - Open source
- Solution patterns patterns - Integration rationale - Compliance - Environment - Data reuse - Proxy asset repository
- Best-practice - Industry patterns - Reference models - SSO and optimization - Data replication - Industry standards - Interface

(governance)
guidelines standards - SOA, BPM, - Regulatory authorization - Policy - Data quality - Reusable assets - Component
- Cookbooks - Notation ESB, WS requirements - Encryption governance - Data analysis composition

Architecture Validation
- Standards standards - Biz process - Build vs. buy - Resource sharing - Certification - Data stream flow - Component
- Benchmarks - Agility analysis choreography - Registry & audit orchestration
- Strategy - Process - Model - Product lifecycle - Data Center - System - Reference data - Common concerns - Component
- Domain /Channel - Content alignment with - Product roadmap planning management - Information - Patterns hierarchy
architecture - Context biz process - Architecture - Business - Service integration & - Aspect-oriented - Maintain-ability
- Optimization - Architecture architecture maturity Continuity repository virtualization design methods - Conventions
- Blueprint reuse - Platform- - Longevity - Technology - System - Knowledge - Inversion of control - Component

(vision)
Planning
- Taxonomy - Architecture independent & recovery recovery plan engineering catalog and

Architecture
- Ontology generalization tech-agnostic - Virtualization - Dashboard - Data retention and repository
archiving

RSVP Portfolio level System level Software level


Model-Centric Architecting Process

of the application software organization. And the online collaborative planning, which decentralizes
aspect solutions can be used to address application- control and responsibility for overall plans and
wise concerns in the design, such as the session permit online access to plans that is equal for all
management, logging, and MVC pattern. related participants.
From a development standpoint, the solution As new enabling technologies are emerging at
modules cataloged in the MAP facilitates the an unprecedented pace and the standards/speci-
development activities. Various tools listed can fications in SOA are maturing, the attributes and
be employed to semi-automate the development contents of the MAP framework tend to expand
lifecycle. The UML tool is used to document use drastically and some of them become obsolete
cases and activity diagrams, as well as conduct much faster. Timely refreshment and frequent
object-oriented analysis and design. The IDE reassessment are mandatory to keep pace with the
tools are used to code and implement software latest advances in the field. The strategic planning
services and components. The testing tools are and execution process also need to be revalidated
used to validate and profile application units and accordingly. Future work includes building do-
components regressively. The build tools automate main-oriented reference models, implementation
the compilation and packaging of the deployable patterns, best practice styles, closer alignment with
as well as the installer. The version control tools business process strategy/architecture, capability
assure the effective configuration management maturity, and governance policies/program. Since
and quality control. The community tools help the difficulties in SOA architecting practices are
coordinate the collaborations among the resources beyond technical challenges, large organizations
that may be geographically located beyond the must make sociological changes in mindset to
continent boundaries in todays globalized de- adopt the engineering practices and overcome
velopment environment. the cultural barriers during the transition. Other
From an implementation point of view, a disciplines must be leveraged and incorporated
lightweight Linux-Apach-MySQL-PHP (LAMP) as well, to establish an overarching methodical
combination can be directly employed in small- approach to sustainable architecture designs.
and medium-size applications. Other engines and
servers presented in the MAP are used for large-
scale complex systems, such as portal server, pro- coNclusIoN
cess engine, rule engine, middleware, embedded
database, and service registry/repository. Various To effectively manage the architecture complexity
open source solutions can be directly deployed to and organize diverse technical assets in informa-
monitor and manage the system operations. tion systems, a comprehensive method is a neces-
From a project management viewpoint, vari- sity to abstract concerns, define roles, separate
ous products specified in the method help man- responsibilities, and present a holistic view of the
age the development tasks and issues efficiently. architectural aspects in a highly structured way.
dotProject is a project management tool designed The Model-centric Architecting Process (MAP)
to assist in the management of defined project approach introduced in this chapter is a holistic
work. The defect tracking system such as Bugzilla framework to facilitate architecting distributed
provides a collaborative environment to resolve applications in a systematic fashion. It provides
development issues and bugs. POM-based tools comprehensive taxonomy of the architectural
like Maven can manage a projects build, report- artifacts from both development and runtime
ing and documentation from a central piece of perspectives. It builds concrete architecture
information. Products like Wrike facilitate the solutions focused on different domains, and in


Model-Centric Architecting Process

the meantime keeps the agility, flexibility and IEAD (Institute for Enterprise Architecture
adaptiveness of the overall method. Developments) (2004). Extended enterprise ar-
The design principles of the framework are chitecture framework. Retrieved May 18, 2007,
presented in the context. The general approach from http://www.enterprise-architecture.info
comprises an array of multiple dimensions: re-
Kruchten, P. (2003). The rational unified process:
quirement, specification, validation, and planning
An introduction. 3rd Edition. Massachusetts:
(RSVP). MAP is composed of a range of archi-
Addison Wesley.
tecture models: meta architecture, conceptual
architecture, logical architecture, physical archi- OMG (Object Management Group) (2007). Model
tecture, deployment architecture, management driven architecture. Retrieved May 18, 2007, from
architecture, information architecture, aspect http://www.omg.org/mda
architecture, and component architecture. The
Purdue University (1989). The Purdue enterprise
elements of each module are discussed and the
reference architecture. Retrieved May 18, 2007,
features are articulated in detail.
from http://pera.net
Thanks to its comprehensiveness, this over-
arching framework has been extensively used Putman, J.R. (2001). Architecting with RM-ODP.
in the service-oriented application development New Jersey: Prentice Hall PTR.
in one form or another. It can be streamlined as
Shan, T.C., & Hua, W.W. (2006). Solution archi-
an agile variant tailored to specific domains or
tecture of N-Tier applications. In Proceedings of
individual projects. The approach has proven
3rd IEEE International Conference on Services
to be a great success in the real-world project
Computing (pp. 349-356). California: IEEE Com-
work in terms of cost saving, productivity, stan-
puter Society.
dardization, and communications. Moreover,
this method is scalable and flexible for dynamic Software Engineering Institute (SEI) at CMU
extensions and expansions, which can serve as a (2007). Scenario-based architecture analysis
meta-framework to incorporate other general or method. Retrieved on May 18, 2007, from http://
specialized frameworks. www.sei.cmu.edu/architecture/scenario_paper
Standish Group (2007). The Standish Group
Chaos Report 2006. Retrieved May 18, 2007,
rEfErENcEs
from http://www.standishgroup.com
DoD C4ISR Architecture Working Group The Open Group (2007). The Open Group ar-
(1997). C4ISR architecture framework. Version chitecture framework. Retrieved May 18, 2007,
2. Retrieved May 18, 2007, from http://www.fas. from http://www.opengroup.org/togaf
org/irp/program/core/fw.pdf
Treasury Department CIO Council (2000). Trea-
Eclipse (2007). Eclipse process framework. Re- sury enterprise architecture framework. Version
trieved May 18, 2007, from http://www.eclipse. 1. Retrieved May 18, 2007, from http://www.
org/epf eaframeworks.com/TEAF/teaf.doc
Federal Office of Management and Budget (2007). Zachman, J.A. (1987). A framework for informa-
Federal enterprise architecture framework. tion systems architecture. IBM Systems Journal,
Retrieved May 18, 2007, from http://www.white- 26(3), 276-295.
house.gov/omb/egov/a-2-EAModelsNEW2.html




Chapter IV
Architecture, Specification, and
Design of Service-Oriented
Systems
Jaroslac Krl
Charles University, Czech Republic

Michal emlika
Charles University, Czech Republic

aBsTracT

Service-oriented software systems (SOSS) are becoming the leading paradigm of software engineering.
The crucial elements of the requirements specification of SOSSs are discussed as well as the relation
between the requirements specification and the architecture of SOSS. It is preferable to understand
service orientation not to be limited to Web services and Internet only. It is shown that there are several
variants of SOSS having different application domains, different user properties, different development
processes, and different software engineering properties. The conditions implying advantageous user
properties of SOSS are presented. The conditions are user-oriented interfaces of services, the application
of peer-to-peer philosophy, and the combination of different technologies of communication between
services (seemingly the obsolete ones inclusive), and autonomy of the services. These conditions imply
excellent software engineering properties of SOSSs as well. Service orientation promises to open the
way to the software as a proper engineering product.

INTroducTIoN explosive growth in the number of conferences,


products, and articles discussing and using the
Service orientation (SO) is becoming the cen- principles of SO and service-oriented architec-
tral topic of software engineering. There is an tures (SOA). Service-oriented software systems

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Architecture, Specification, and Design of Service-Oriented Systems

(SOSS) are of different types depending on the feasible functions of SOSSs include the functions
character of the functions the system provides, the important for user top-management.
system environment (for example, e-commerce Feasible functions of any large system depend
or a decentralized international enterprise), and on its architecture. The decision as to what archi-
the way the system is developed. The common tecture is to be used must therefore be formulated
property of SOSS is that their components behave in early stages of the system life cycle. On the
like the services in real life mass service systems. other hand, the structure, techniques, and content
The SOSS must then be virtual peer-to-peer (p2p) of requirements specifications are influenced by
networks of autonomous components (services). the properties of the system architecture and the
The services can have various properties; they details of its implementation. We shall show
need not be Web services in the sense of W3C that SOSS should use a combination of various
(2002) and need not therefore use standard com- techniques developed during the software history
munication protocols, compare Barry and As- (for example, message passing, object orientation,
sociates (2003) and Datz (2004). common databases, and, sometimes, batch-orient-
We shall show that the software engineering ed systems). All these issues should be addressed
properties as well as the user-oriented properties in the specifications of SOSSs. SO is a paradigm
of any SOSS strongly depend on the properties new for many software people. It implies some
of the service interfaces and that user interfaces problems with the application of SO.
of the system should be implemented as specific
services (peers of the network) as well. All these
issues are related to the architecture of the sys- pEEr-To-pEEr INformaTIoN
tem. We will discuss how the properties of the sysTEms (p2pIs)
architecture influence the set of feasible func-
tions, development (especially the requirements Large information systems must often be devel-
specifications), feasible development techniques oped as a network of loosely coupled autonomous
(for example, agile ones), standards, politics of IT componentsservices (possibly information
management, and marketing strategies of software systems) integrated using peer-to-peer principle
vendors and/or system integrators (Figure 1). The (further P2PIS). The change of the architecture

Figure 1. Central role of system architecture

Feasible Users,CEO
requirements inclusive

IT managers
Marketing policies of
IT System software vendors and
management architecture systems integrators

Software vendors
Software Development
developers


Architecture, Specification, and Design of Service-Oriented Systems

should be accompanied by changes in require- simplifies the integration of new divisions


ments specification that should reflect the service- and/or of newly purchased enterprises as
oriented structure of the system. well as the selling out or outsourcing of
The specification of P2PIS starts from the some divisions or splitting the enterprise
specification of system user interface (portal) into smaller ones.
and from the specifications of the services. The Information systems of e-government built
specification of services starts from the defini- as a network of the information systems of
tion of their interfaces. It can be accompanied by particular offices1 (Krl & emlika, 2001).
specification of the services of the infrastructure A long-term collaboration between the in-
(message formats, communication protocols, formation system of an enterprise and the
middleware services, in general). Services in information systems of its business part-
P2PIS can be newly developed applications, en- ners needed for supply chain management
capsulated legacy systems, or third party products. (SCM) (Lowson, King & Hunter, 1999) and
P2PIS enables new types of requirements (for customer relationship management (CRM)
example, the requirement that a P2PIS should (Dych, 2002).
support decentralized and flexible organization of An open association of health organizations
a global enterprise, see Krl & emlika, 2003) and (physicians, hospitals, laboratories, health
makes achievable software engineering properties database services, and so forth) forming an
like reusability, flexibility, openness, maintain- information system intended to simplify,
ability, the use of legacy systems and third party enhance, and speed up health care.
products, or the reduction of development costs Process control systems (soft real-time
and duration. Experience shows that such systems systems) supporting, e.g. computer inte-
can be extremely stable (Krl, 1995). grated manufacturing. Such systems were
There are two main variants of P2PIS. The the first systems having main properties of
first one is used in e-commerce where the ser- service-oriented systems. They have proved
vice starting a communication must first look for for the first time the advantages of service
communication partners. The partners must offer orientation.
their interfaces (typically specified by WSDL).
This schema implies the use of Internet and If a system S has p2p architecture, it must
international standards like SOAP. We shall call have structure allowing its peers/services to col-
such systems (software) alliances. laborate. The services must be equipped by gates
The systems formed by stable sets of services connecting them to a middleware. The system
knowing their permanent communication partners S must usually be equipped by a user interface
will be called (software) confederations. Confed- (portal). There can be several portals. Alliances
erations occur often. Examples are: need not have any portals (Figure 2).
The properties of P2PIS depend substantially
Information systems of international enter- on the properties of the interfaces provided by
prises having the structure of a network of the gates and by the functions of the middleware.
autonomous organizational units (divisions). The most important property of the interfaces is
The information systems are formed by a how much they vary. Stable interfaces increase
peer-to-peer network of the information sys- the stability of P2PIS, reduce the development
tems of the divisions and by some additional and maintenance costs, and hide the implemen-
components serving the whole enterprise tation details and philosophy of the component.
(for example, portals). Such an architecture It is shown below that the gates need not trans-

0
Architecture, Specification, and Design of Service-Oriented Systems

Figure 2. Architecture of a service oriented system (G is a gate, UC is an user interface service (por-
tal))

UC System
interface 1

Old service
Service G Middleware G Service
interface

System
Service G UC interface 2

form components into Web services and that history of collaboration with the partners and
the middleware in confederations need not be about the current situation (that is, credibility)
Internet based. On the other hand, Web services on the market. The partner should evaluate the
and Internet-oriented middleware are necessary enterprise of the initiator similarly. The partners
in alliances as the use of worldwide standards and have to check whether to conclude a contract.
tools is the precondition of e-commerce and of Supervision is necessary as someone must be
the communication between partners unknown to responsible for any business operations. The busi-
each other before the communication starts. ness documents produced in this way are often
Note that SOSSs are usually built starting to be formally confirmed by people. It holds for
from the specification of the interfaces and that P2PIS in general, but it is especially needed in
the components providing the services are mainly alliances.
integrated as black boxes. Current practice is to establish the coopera-
tion in alliances via Web services in the sense of
alliances W3C. The dialog of business partners then starts
using UDDI, WSDL standards, and continues
A crucial issue of the development of alliances in SOAP.
is the standardization of communication proto- The coordination of the business processes
cols. From the technical point of view, the dialog of several partners can be a complicated task.
between partners (peers) in a P2PIS can easily Optimal solution of the supervision of the stages
be fully automated, but the business agreements of business processes is a cornerstone of alliance
should be (and, due to business and legislative requirements specification. It is to some degree
reasons, usually are) controlled (supervised) true for confederations as well. The business
personally by representatives of the communi- processes are often developed using development
cating parties. tools like .NET or J2EE. There are discussions
The dialog is driven by a businessperson about what choice is the best (see the discussion
(initiator) searching for business partners. The on e-services in Communications of the ACM,
businessperson applies knowledge about the July 2003, pp. 24-69).


Architecture, Specification, and Design of Service-Oriented Systems

The main advantage of alliances is their flex- fore be understandable for users and experts in
ibility, generality, and standardized solutions. economy and even for lawyers, who should be
The disadvantage is the problems with efficiency, user-oriented. It is not clear whether messages
stability, the size of the used standards, and prob- in SOAP format can fulfill this requirement. It
lems with integration of legacy systems and third indicates that a proper message presentation tier
party products. enhancing communication legibility should be
A deeper problem is that SOAP is not too user available.
friendly as it is based on remote procedure calls
(RPC) close to programmers knowledge domain software confederations
(for example, object orientation) and not to the
user problem domains. It enlarges the problems E-Government: Confederation via
with requirements specification via WSDL and Integration
UDDI. UDDI is a centralized service. Central-
ized services are not good in p2p frameworks. We shall demonstrate some typical software con-
It is confirmed by the experiences with UDDI federation (SWC) related issues on the example
systems. SOAP, like object-oriented languages, of e-government. The engine of e-government
requires many method calls and, therefore, also state information system, SISis one of the
many messages during even very simple dialogs. largest software systems to be built in any country.
It causes efficiency problems, problems with pro- Let us now give the list of the most important
totyping and understanding the communication requirements on SIS:
by human beings.
The systems using RPC (for example, SOAP) SIS should service citizens, enterprises,
are better suited to the business operative than and state and municipal offices. SIS should
to business process analysis, usually based on a be able to communicate with information
common data tier. systems of private companies and/or (po-
Alliances are suited to operative tasks in the tentially) of citizens. To fulfill it, SIS must
global market. Important decisions should often have a complex subsystem (portal) providing
be, however, preceded by analysis of the market the interface for citizens. Such an interface
and the history of cooperation with a given partner. should be flexible in its functionality depend-
It implies user involvement, massive data analysis, ing on the rights/profiles of specific groups
and the tools specific for it. The tools often do not of citizens and/or state officers/clerks. There
fit into RPC/SOAP frameworks. should be one or more user interface gates
A very important advantage of alliances is that (portals) providing an integrated interface
communicating software parties can be in the making the internal structure of the system
framework of the SOAP/Web services developed invisible (transparent).
individually like programs serving, for example, SIS should support the collaboration of all
terminals. state offices and majorities. Examples are the
It can happen that a business case (process) collaboration during the investigation of car
fails for some reason. In this case, the reasons of robberies and/or document verification.
the failure and people responsible for it can be SIS should reflect the frequent changes in
detected via the analysis of the messages logged laws and in the structure of state administra-
during the corresponding business process. The tion.
analysis can be used as evidence at court. The SIS should use autonomous tools, often third-
messages stored in a log memory must there- party products for data filtering, mining, and


Architecture, Specification, and Design of Service-Oriented Systems

analyzing. It is likely that many new tools use of various turns known from the history of
will be added in the future. computing for specific tasks like data recon-
struction, data- or object-oriented design for the
As there are many systems used by individual development of peers.
offices, it is very difficult to rewrite them in time.
The existing system should therefore be integrated Manufacturing System: Decomposition
without any substantial change of its functions. and Integration
The systems must be easily integrated into SIS
without any substantial reconstruction. There Systems supporting e-government are the systems
is yet another, maybe substantially important, developed mainly via integration of existing
reason for these requirements. No office will systems, possibly equipped by appropriate gates
take any responsibility for a (sub)system if there and transformed so that they can work as services
is any doubt it works correctlythere must be (peers in a p2p system). Some SOSSs are, how-
the feeling of ownership of the (sub)system. It ever, developed from scratch via decomposition
can reduce the resistance of users and/or politi- of the system into services. Then the services,
cians caused by their apprehensions about their user interfaces, and middleware are developed
positions and power. and integrated. It is typical for (soft) real-time
As it is highly desirable that the IS of various systems, for example, in manufacturing. Such
offices should be at the local level (in a particular systems have shown many advantages of service
office), used without substantial changes (for ex- orientation.
ample, business as before). It usually implies that Figure 3 shows the interface of the manager of
the interfaces of constituent autonomous informa- a flexible manufacturing system producing parts
tion systems (autonomous components/services) of machine tools (Krl, 1995). The manufactur-
tend to be user knowledge domain oriented and ing of the parts is defined by linear sequences
coarse grained. We shall see that it offers sub- of manufacturing operations. A generalization
stantial software engineering advantages as well to more complex workflows (for example, as-
as many benefits for users. A properly specified sembling) is possible but the interface becomes
and designed software confederation increases the more complex. The workshop manager chooses
dynamics of the system structure and openness the central (actual) operation D.i, and the system
of the system. shows the previous and next operations in the
The conclusions can be illustrated on the fol- technological sequence D and in the workplace
lowing example. People responsible for SIS of queues. Note that the manager felt the interface as
the Czech Republic wanted to redevelop the SIS a support for the standard management activities
as a monolithic system from scratch. Practical that were familiar. The manager could add/modify
experiences induced them to accept that the SIS the technological sequence and rearrange the
must be a P2PIS. queues. The required data could also be filled
The number of peers in confederations is not by a scheduler from the enterprise level. If the
too large (compared with e-commerce) and the scheduler produced right data, no actions from
peers are known. The collection of peers (services) the manager were needed. We call such types of
does not vary too quickly. The communication business processes reconstruction (BPR) the soft
protocols between the peers can then be suited to one. It should be used as often as possible.
particular needs; they can be based on nonstan- The interface of the manager was data-ori-
dardized tools/solutions without any substantial entedgenerated from a database. Other parts
penalty (compare to Demetriades, 2003). It allows of the system communicated via commands (for


Architecture, Specification, and Design of Service-Oriented Systems

Figure 3. Interface of the manager of the manufacturing system


Work-
places Production chain
segment

WP1.z-1 WP1.z WP1.z+1 Segment of WP1


Wp1 Q.j D.i-1 R.h queue

WP2.y-1 WP2.y WP2.y+1 Segment of WP2


Wp2 E.k D.i H.p queue

WP3.x-1 WP3.x WP3.x+1 Segment of WP3


Wp3 F.t D.i+1 M.r queue

The data of the actual operation D.i

example, store product P in warehouse place Middleware Enhancement in


WP), so different attitudes (not only RPC) had Confederations
to be used. It was important that the structure
of software services reflected the structure (and The decision whether to use standard or propri-
interfaces) of real-life services. etary message formats should be based on a proper
These properties of the system were the reasons (service-oriented) analysis of the partnerships of
why the flexible manufacturing system (FMS), autonomous services. The standards in their cur-
an island of automation, was very successfully rent form are difficult to use. It can be reasonable
used for more than twenty years in an enterprise for the dynamic enterprises to choose a propri-
having several successive enterprise information etary solution of message formats. It need not be
systems. FMS was used without any substantial too difficult to adapt the proprietary solutions to
changes and almost without any maintenance. future stabilized standards using the tools like
It was thanks to the fact that the interface has XSLT and PHP. Using the tools like XSLT and
corresponded to the manager intuition, used his PHP, we can build new types of services called
knowledge, and supported his skills. To general- front-end gate (FEG). FEG is a service used
ize, EAI (service interface) should support the as a front-end part of the gate G of a service S
intuition and knowledge of users and should be (Figures 4 and 5) or as a router. FEG transforms
user and problem oriented. The user should have the formats of input and output messages of S
a chance to influence the design of the interface. into forms acceptable by the partners of S and
User orientation of interfaces offers the possi- hides undesirable properties of the gate G, like
bility to simulate (even substitute) the services disclosing the implementation details of S. The
(components) not yet existing by communica- problem is that, according to our experiments,
tion via portals. We say then that such interfaces XSLT is awfully ineffective and unstable today
are user performable. It substantially enhances for more complex tasks.
prototyping tools.


Architecture, Specification, and Design of Service-Oriented Systems

Figure 4. Three-tier service (encapsulated information system) with gate G and its communication
links

Application service (encapsulated legacy system)

Implementation depemdent communication


Old service Other services of system
User tier interface

Partner-friendly communication
Application tier

G Front End Gate (FEG)


A service providing message
Data tier translations and routing - of
middleware enhacement

Figure 5. System with front-end gates

UC System
interface 1

FEG
Old service
FEG middleware G Service
Service G interface
FEG
FEG

System
Service G UC interface 2

Our two examples show the main extreme situ- services. They should be intuitively similar to
ations in the confederation development. In e-gov- the boundaries of real world services.
ernment, the system is mainly built via integration A specific issue in confederations is that we
of existing systems. In this case, we can define the must often also apply attitudes/philosophies
interfaces only. In the case of manufacturing, the known from the software development history.
integration stage is preceded by decomposition. Middleware can be implemented via Internet or via
In this case, we must specify the boundaries of a common database with triggers. CORBA can be


Architecture, Specification, and Design of Service-Oriented Systems

used in some situations as well. All the attitudes outsourcing opportunities, reduction of number
must be in practice combined, depending on the of messages, integration of products of various
type of the functionality (for example, commands vendors, openness, and so forth).
on operational level and data analysis on manage-
ment level), so different philosophies can and must
be applied and combined in confederations. It HIsTorIcal TEcHNoloGIEs
increases the complexity of development. usEd IN sErvIcE-orIENTEd
sysTEms
Business Processes in Confederations
As mentioned above, it is not feasible to limit the
Business processes in confederations (BPC) must philosophy and the software architecture to one
be composed from stepsfunctions/actions of choice, so the crucial point of the requirements
peers offered by their interfaces. We have seen specification is what philosophy or combination
that business services must usually be supervised of philosophies is to be used. This issue is not
by usersthe owners of the processesor there addressed in existing CASE tools and only a
should be such a possibility. It is also necessary little by research. We shall attempt to find some
to offer users a tool to define business processes. criteria for the choice of philosophy using histori-
Both requirements imply that the languages cal knowledge.
understood by the gates should be based on user Due to an improper, too concise coding of date,
knowledge domain languages and notions. They almost all programs written in COBOL had to
should be user-oriented. be rewritten during the 1990s. It is known as the
The data defining business processes are best Y2K problem. It appeared that many enterprises
to store in system user interface (portals) and the used COBOL programs for years without having
business steps are supervised via a portal or by any COBOL programmer. Such programs had
a temporary service S controlling the particular to be very stable as they were used without any
process. An extreme solution is that there are no maintenance. Systems written in COBOL are like
business processes defining data. Business data SOSSs designed as virtual networks of COBOL
analysis (via, for example, OLAP) must be based applications. The communication between the
on a data-oriented view. In this case, the users applications is implemented via data stores/files.
(usually managers) must have a transparent ac- If input data stores of an application A are ready,
cess to data tiers of the components. It is a very A can be started and it works autonomously until
complicated problem (Lenzerini, 2001). input data stores are processed. Thanks to this
The notions and languages specifying the ac- property, COBOL systems can be developed
tions of components (for example, bookkeeping) incrementally provided that input data stores can
in a user-oriented way are remarkably stable. The be easily generated. Each application can be speci-
same can therefore hold for the languages of the fied as a data transformer and programmed and
component interfaces. It is then possible that the tested autonomously. It led to specific techniques.
interface of a component need not vary if the COBOL systems usually contained various input
component implementation varies. The stability filters, data format transformers, report genera-
of interfaces is important for the communica- tors, and so forth.
tion partners of the given component and for The ability of components to be developed
the stability of SOSSs. It has further substantial autonomously is the crucial qualitative property of
software engineering advantages (modifiability, the components of large systems. Batch COBOL


Architecture, Specification, and Design of Service-Oriented Systems

systems must often be combined with services an autonomous component (encapsulated legacy
of confederations. An example is massive data system) AC belongs to some department/divi-
reconstruction. sion (for example, its local information system),
Data-oriented systems (DOS) appeared after the department is satisfied with AC, and AC can
the success of modern database systems. It was provide all required information/services to other
common at that time that the main aim was collaborating autonomous components, then AC
to computerize operative levels of enterprises can and often should be integrated without any
(warehouses, bookkeeping, business data). Data substantial reconstruction. It reduces coding ef-
types were known and various known operations fort as substantial parts of the system are reused.
could be defined over the same data. Moreover, The people using AC feel that they still own it.
properly designed data structures can be used for It is well known that a feeling of ownership is
many other potential operations that is, the advantageous and often necessary.
data enabled many further operations not speci- Confederative architecture can support new
fied yet. It was and still is supported by the power requirement types raised by CEO, like the trans-
of SQL language. The data orientation must be formation of the enterprise organization structure
applied in confederations when the services are into a decentralized form, selective outsourcing of
intelligent, especially if management activities some parts of the information system, selling out
must be supported. Technically, it implies data some divisions/departments, integration of newly
analysis and presentation tools (Figure 3). There purchased firms/divisions, support for supply
are, however, problems with common database chain management, and forming various business
schema and data replication (Lenzerini, 2001). coordination groups (Krl & emlika, 2002).
Elements of DOS must be applied in subsystems
providing online/interactive data analysis (for front-End Gates
example, OLAP/ROLAP).
Requirements specifications of software confed-
erations must be based on the properties of the
ImplEmENTaTIoN IssuEs interfaces of autonomous services/components
(AC). The AC is used as black box, that is, its
Integration of legacy systems interface is known only to its partners. This is
very important, as interfaces, especially the user-
Technically, a legacy system LS is integrated into oriented ones, are usually more stable than the
the system via adding a gate G to LS. LS then implementations (Krl & emlika, 2003).
becomes an autonomous service AC (Figure 4). Interfaces should hide the implementation
G connects AC to a middleware. AC is also re- details and philosophy of autonomous services. If
constructed to be a permanent process if needed. we, however, need the gate G from Figure 5 to offer
The software confederation then has the structure an access to all functionality of the corresponding
from Figure 2. We will often say that AC is an component, the gate must usually disclose the main
autonomous component if we want to express its features of the implementation. So, under such a
implementation character. condition, the message formats of G must be, to
Although the choice of the p2p architecture some degree, implementation oriented. As such, it
seems to be a technical matter, it should be is not stable enough or optimal for some (usually
included into requirements specification as it many) partners of AC. We have seen that we can
substantially influences user properties of the use front-end gates (FEG) to solve the problem.
system and the structure of the specifications. If FEG is again an autonomous service (peer) with


Architecture, Specification, and Design of Service-Oriented Systems

the properties similar to user components. FEG 80% usefulness of the system consuming 20%
must usually be developed it is a white box. of effort only.
Front-end gates play several roles. They stabi-
lize and generalize the interfaces of components petri Nets
and make them partner-friendly. They can provide
several different interfaces of a given AC when FEG are based on specific tools and methods hav-
different groups of its partners need different ing common features with compiler construction
interfaces. Different FEGs can provide different and formal language translation. Methodologi-
security levels or different middleware services cally, they are similar to user interface services
for different partners. In some situations, one (portals). They can also play the role of message
FEG can provide a parallel access to more than routers. The time of execution of FEG is negli-
one application component. The condition is gible as there is no waiting on answers from users
that some application components offer similar and/or technologies. FEG can compose several
or complementary functions (for example, in a messages into one message and decompose one
lecture/test reservation system of a university, message into several messages. FEG is a solution
different application components may handle of the interoperability problem mentioned by Sch-
different faculties or subject groups). oder and Fischbach (2003). FEG can therefore be
FEG can direct messages to the components viewed as a generalization of places in Petri nets
that are less loaded at a given moment. Some ser- with colored tokens (Petersen, 1997). Tokens are
vices can be replicated. It enables load balancing messages, whereas application services behave
and distribution of services. As FEG is used as like processes in temporal colored Petri nets. It is
a white box, the properties of its input language open as to how to generalize Petri nets so that they
L and its output language L1 must be included enable a proper modeling (diagramming inclusive)
in the requirements specifications. It is similar and simulation of confederations. Petri nets de-
to the specification and design of user interface scribe, in some sense, atoms of communications
components (portals), compare Krl and emlika in networks of static structure. Workflows must
(2003), and to the generation of temporary services therefore be defined using some other tools. Petri
controlling individual business processes. The nets are used in manufacturing control systems
proper specification of gates and front-end gates (Vondrk et al., 2001). It again indicates links be-
substantially simplifies the system specification, tween software confederations and manufacturing
documentation, development, and maintenance. systems (and, generally, soft real-time systems).
FEG can be viewed as an enhancement of the Confederations are necessary but there is not
middleware services as the developers develop, enough experience with them among computer
in this case, rather the middleware than the ap- professionals at enterprise level.
plications (Figure 5, see Krl, 1999).
The interfaces of software services should mir- rEquIrEmENT spEcIfIcaTIoN
ror the interfaces of real-life services if possible. IssuEs
P2p systems enable the incremental development
strategy starting from the most useful services. The requirement specifications for confederations
The relation of the services to their real-life must often be oriented toward the use of existing
counterparts enables a reliable estimation of what systems and their interfaces. The specifications
services are the most useful ones. According to should take into account the properties of the inter-
Pareto 80-20 rule, it enables the achievement of faces and their dynamics. It appears that the people


Architecture, Specification, and Design of Service-Oriented Systems

with the experience with low-level process control The first SOSS have long ago manifested their
systems could today help a lot at the top-most tier advantages like easy prototyping, incremental
of enterprise systems now having confederative development, stability, and flexibility. The main-
architecture, as the confederative orientation is stream of software engineering has then not been
common for the soft real-time system developers. faced with the necessity to build confederations
They should therefore take part in requirements at enterprise level. There was no appropriate
specification of large software systems. technology and no strong need to leave the design
The requirements can now include the new viewing the system as one possibly distributed
system function types formulated by CEOs like logical unit containing no large black boxes.
enterprise decentralization, boundaries of divi- The situation has changed due to the progress
sions, various forms of in- and outsourcing, CRM, in hardware and software (Internet). SOSS became
purchase coalitions, and so forth. Many such technically feasible. At the same time, globaliza-
requirements are feasible only if the enterprise tion has generated the need for confederated global
information system is confederated and has an enterprises and, therefore, for SOSS.
appropriate structure. The top management should The services can be cloned and made movable
be aware about it, and the developers should know like software agents. It can simplify the design of
something about management and its needs. So, mobile systems. There are issues common with
there should be no high wall between developers grid systems.
and users (Krl & emlika, 2003). It contradicts the
recommendations from Recipe for Success by paradigm shift
Standish Group, available at www.standishgroup.
com. Note that agile programming proposes per- The construction of any system as a collection
manent contacts between developers and users. of services mirroring the structure of real-world
Software confederations offer the opportunity to services has substantial advantages:
use agile programming in the development of large
systems provided they are service-oriented. As the interfaces are user-oriented, the
Confederations are challenge and issues for system specification is simpler due to easier
CIO like the balance between centralized and involvement of users and a better structure
decentralized agreement of message formats. The of the specification. It simplifies the use of
concept of software confederations and e-com- the system by users, as they understand what
merce is a large challenge for software vendors the system offers. The users can then easily
and system integrators. They have to change their modify business processes.
business strategies. It supports preferable software engineering
properties like openness, maintainability,
modifiability, and so forth.
oTHEr IssuEs The services can be specified by their in-
terfaces. It opens the opportunity to apply
Software confederations can solve the problem agile programming (Beck et al., 2001) or
of Reorg Cycle (Armour, 2003) saying that the extreme programming (Beck, 1999) in large
enterprises are permanently reorganized. As projects.
during a lengthy reorganization, the conditions
on the market change and a new reorganization The decomposition of the activities into auton-
is necessary. SO is a solution, as it simplifies and omous services is a very important invention. It is
shortens the reorganization. likely that the use of human-like behaving services


Architecture, Specification, and Design of Service-Oriented Systems

in service-oriented systems brings the flexibility ture (MDA) (OMG, 2001a) are used there. SO is
and power known from human society. common for the lowest enterprise management
The main barrier of a wider application of (manufacturing) systems and should be common
service orientation in our sense is that SO is a new on the top management level (management of
paradigm for the majority of software develop- international enterprises), as well. The middle
ers. The acceptance and governance of SO will management (local factories) usually rely on OO
therefore be a long-term process (remember the methodology (compare Table 1).
case of object orientation). There is no general The format mismatch of enterprise applica-
agreement, even in the definition of the content of tion interface (EAI) can be resolved by front-end
service orientation (Barry and Associates, 2003). gates. Note that EAI is not primarily intended
Many antipatterns from Brown et al. (1998), like to support B2B (compare Pinkston, 2002). The
Islands of Automation, Function Decomposi- fact that manufacturing systems are service-ori-
tion, and so forth, need not be antipatterns in ented has important consequences. The middle
SOSS anymore. Other antipatterns like Lava management, usually managing the local units of
Flow are not dangerous. international enterprises, should not insist on the
The main attributes of good SOSSs are: (i) use of OO methods as a golden hammer applicable
system is designed as a peer-to-peer network of everywhere as it can lead to the application of OO
services; (ii) the peers mirror real-life services philosophy outside its applicability. The shift to
and have user-oriented interfaces; and (iii) it SOSS on the upper enterprise level is, however,
is preferable to have user performable service not easy as there is lack of SO experts. It is not
interfaces. optimal to involve here only the people from
middle management level. They are not service-
Information systems of oriented. It is difficult for them to convert their
manufacturing and Information object-oriented thinking into the service-oriented
systems of Global Enterprises one. The obstacle is their mental barrier. The nice
OO design patterns (Gamma et al., 1993) are, to
The automated manufacturing systems have the a high degree, useless in SOSS; OO people often
main features of software confederations; they have the feeling that the confederative philosophy
are (partly) service-oriented. SO has therefore is a step back. Such a barrier is exceptional for
been applied in manufacturing systems for many people having experience with systems including
years. Object orientation (OO) is common now at technological process control. The difficulty of
the enterprise level. OO CASE systems based on the acceptance of SO thinking could be for OO
UML (OMG, 2001b) and model-driven architec- people even more difficult than the conversion

Table 1. Application domains of object and confederative orientations


Software Technique Area of Application
Service orientation Manufacturing control level: CIM components, real-time systems
(possibly partly)
Object orientation (for example, Monolithic enterprise level: middle management, divisions of an
UML, MDA) still suffices international enterprise, highly centralized organizations
Service orientation desirable, Global (world-wide) enterprise level: international enterprises, state
necessary, EAI administration ...
SO philosophy necessary, EAI, World-wide business: some health network services, coalition of car
B2B vendors, e-business

0
Architecture, Specification, and Design of Service-Oriented Systems

from structural thinking to OO thinking (com- are no good modeling tools for SOSS. The main
pare Nelson, Armstrong & Ghods, 2002) several obstacle here, however, is the inability or unwill-
decades ago. ingness of many developers to apply SO. It is the
consequence of the fact that it is as any paradigm
shift: a long-term process. Solution can be in the
coNclusIoN engagement of people already having the service-
oriented feeling, for example, of the developers
Important functions, especially the functions of soft real-time systems.
supporting CEO activities, depend on application SO changes the tasks of IT management that
of service orientation. It implies that the system should facilitate the agreements of the details of
must have a proper architecture as a p2p network system architecture. IT management can be less
of autonomous services having user-oriented dependent on software vendors as it now has a
interface, system user interface services, and greater freedom of what to buy from whom and
eventually, some newly developed infrastructure what to develop to achieve a competitive advan-
services (FEG). The SO philosophy therefore tage. Good software engineering properties of
influences requirements specification more sub- SOSS simplify many tasks of IT management
stantially than other philosophies. This issue is (selective outsourcing, development process
not understood enough. Architectures are very control, modifications and maintenance, and so
difficult to change. They must therefore be chosen forth). SO requires changes of marketing strate-
early during the requirements specifications. Vice gies and methods of software vendors and system
versa, the requirements must reflect the properties integrators.
of the architecture. SOSS developers must often apply data- and
User-oriented interfaces of services simplify object-oriented techniques and even integrate
the collaboration between users and developers, batch applications. The developers must be able to
enable the development, exploiting the possibility understand and use the knowledge of users from
that services can be simulated via user interface all the levels of organization hierarchy. It is not
services (portals). It simplifies the design of busi- easy, and it should be taken into account in the
ness processes and enhances the software engi- education of software experts, usually too proud
neering properties of the system. Good interfaces of their narrow and detailed computer-oriented
can easily be designed if the services mirror the knowledge.
real-life services. SO is a philosophy influencing the whole
The user-oriented interfaces can serve as a software industry and practice. It promises to
specification of the services. It is achievable only open the way to the software of the quality known
if the collaboration between users and developers from the other branches of industry (no Warranty
should be tight, and the developers should be able Disclaimer).
to understand user knowledge domains. It must be
trained. The user-oriented interfaces enable the
use of different implementation technologies in acKNoWlEdGmENT
different services and the agile forms of develop-
ment in large projects. This work has been supported by Czech Sci-
Properly chosen system architecture influences ence Foundation by grants No. 201/02/1456 and
and often determines the tools and processes of 201/04/1102.
the system development. An issue is that there


Architecture, Specification, and Design of Service-Oriented Systems

rEfErENcEs Krl, J. (1999). Middleware orientation: Inverse


software development strategy. In W. Wojtkovski,
Armour, P. (2003). The Reorg Cycle. Communica- W. G. Wojtkowski, S. Wrycza, & J. upani (Eds.),
tions of the ACM, 46, 19-22. Systems development methods for databases,
enterprise modeling, and workflow management
Barry and Associates. (2003). Retrieved August
(pp. 385-396). New York: Kluwer Academic/Ple-
15, 2004, from http://www.service-architecture.
num.
com
Krl, J., & emlika, M. (2000). Autonomous
Beck, K. (1999). Extreme programming explained:
components. In V. Hlav, K. G. Jeffery, & J.
Embrace change. Boston: Addison-Wesley.
Wiedermann (Eds.), SOFSEM 2000: Theory and
Beck, K., Beedle, M., van Bennekum, A., Cock- practice of informatics, Vol. 1963 LNCS (pp. 375-
burn, A., Cunningham, W., Fowler, M., et al. 383). Berlin: Springer-Verlag.
(2001). Agile programming manifesto. Retrieved
Krl, J., & emlika, M. (2001). Electronic govern-
August 15, 2004, from http://www.agilemanifesto.
ment and software confederations. In A. M. Tjoa,
org/
& R. R. Wagner (Eds.), Twelfth International
Bray, I. K. (2002). An introduction to requirements Workshop on Database and Experts System Ap-
engineering. Harlow, UK: Addison-Wesley. plication (pp. 125-130). Los Alamitos, CA: IEEE
Computer Society.
Brown, W. J., Malveau, R. C., McCormick, I.
H. W., & Mowbray, T. J. (1998). AntiPatterns: Krl, J., & emlika, M. (2002). Component types in
Refactoring software, architectures, and projects software confederations. In M. H. Hamza, (Ed.),
in crisis. New York: John Wiley & Sons. Applied informatics (pp. 125-130). Anaheim:
ACTA Press.
Datz, T. (2004, January 15). What you need to
know about service-oriented architecture. CIO Krl, J., & emlika, M. (2003). Software confed-
Magazine. Retrieved August 15, 2004, from erations - An architecture for global systems and
http://64.28.79.79/archive/011504/soa.html global management. In S. Kamel, (Ed.), Managing
globally with information technology (pp. 57-81).
Demetriades, J. T. (2003). Does IT still matter. Hershey, PA: Idea Group.
Business Integration Journal, 20-23.
Lenzerini, M. (2001). Data integration is harder
Donnay Software Designs (1999). Mature, por- than you thought. Retrieved August 15, 2004,
table, data-driven systems. Retrieved August 15, from www.science.unitn.it/coopis, choice vid-
2004, from http://www.dclip.com/datadr.htm eos/slides
Dych, J. (2002). The CRM handbook: A business Lowson, B., King, R., & Hunter, A. (1999).
guide to customer relationship management. Quick response: Managing the supply chain to
Boston: Addison-Wesley Professional. meet consumer demand. New York: John Wiley
Gamma, E., Helm, R., Johnson, R., & Vlissides, & Sons.
J. (1993). Design patterns. Elements of reusable Nelson, J., Armstrong, D. A., & Ghods, M. (2002).
object-oriented software. Boston: Addison- Old dogs and new tricks. Communications of the
Wesley. ACM, 45(10), 132-136.
Krl, J. (1995). Experience with the development OMG. (2001a). Model driven architecture. Re-
and use of flexible manufacturing systems. Un- trieved August 15, 2004, from http://www.omg.
published manuscript. org/mda


Architecture, Specification, and Design of Service-Oriented Systems

OMG. (2001b). Unified Modeling Language. Vondrk, I., Kruel, M., Matouek, P., Szturc, R., &
Retrieved August 15, 2004, from www.omg.org/ Bene, M. (2001). From business process modeling
technology /documents/formal/uml.htm to workflow management. In M. Bielikov (Ed.),
DATAKON 2001 (pp. 241-248). Brno.
Peterson, J. L. (1997). Petri nets. ACM Computing
Surveys, 9(3), 223-251. W3C. (2001). Web service definition language. A
proposal of W3 Consortium. Retrieved August 15,
Pinkston, J. (2002). The ins and outs of integra-
2004, from http://www.w3.org/TR/wsdl
tion, how EAI differs from B2B integration. e-I
Journal, 48-52. W3C. (2002). Web services activity. Retrieved
August 15, 2004, from http://www.w3.org/2002/
Rowe, D. (2002). E-government motives and or-
ws/
ganizational framework. In J. Pour, & J. Voek
(Eds.), Systems integration 2002, Conference Yourdon, E. (1988). Modern structured analysis
presentations (pp. 93-99). Prague University of (2nd ed.). Prentice Hall.
Economics, Prague, Czech Republic.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy,
F., & Lorensen, W. (1991). Object-oriented model- ENdNoTEs
ing and design. Englewood Cliffs, NJ: Prentice
Hall. 1
Other solutions are not feasible for techni-
cal as well as for practical reasons (Krl &
Schoder, D., & Fischbach, K. (2003). Peer-to-
emlika, 2001, 2003; Rowe, 2002).
peer prospects. Communications of the ACM,
46, 27-29.

This work was previously published in Service-Oriented Software System Engineering: Challenges and Practices, edited by
Z. Stojanovic and A. Dahanayake, pp. 182-200, copyright 2005 by IGI Publishing, formerly known as Idea Group Publishing
(an imprint of IGI Global).




Chapter V
Data Integration Through
Service-Based Mediation for
Web-Enabled Information
Systems
Yaoling Zhu
Dublin City University, Ireland

Claus Pahl
Dublin City University, Ireland

aBsTracT

The Web and its underlying platform technologies have often been used to integrate existing software
and information systems. Traditional techniques for data representation and transformations between
documents are not sufficient to support a flexible and maintainable data integration solution that meets
the requirements of modern complex Web-enabled software and information systems. The difficulty
arises from the high degree of complexity of data structures, for example in business and technology
applications, and from the constant change of data and its representation. In the Web context, where the
Web platform is used to integrate different organisations or software systems, additionally the problem
of heterogeneity arises. We introduce a specific data integration solution for Web applications such as
Web-enabled information systems. Our contribution is an integration technology framework for Web-
enabled information systems comprising, firstly, a data integration technique based on the declarative
specification of transformation rules and the construction of connectors that handle the integration
and, secondly, a mediator architecture based on information services and the constructed connectors
to handle the integration process.

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

INTroducTIoN problems in data processing; database query


languages are a good example here.
The Web and its underlying platform technologies XML as a markup language for document
have often been used to integrate existing software and data structuring has been the basis of many
and information systems. Information and data Web technologies. XML-based transformation
integration is a central issue in this context. Basic languages like XSLT, the XML Stylesheet Trans-
techniques based on XML for data representation formation Language, XML-based data can be
and XSLT for transformations between XML translated between formats. With recent advances
documents are not sufficient to support a flex- in abstract, declarative XML-based data query and
ible and maintainable data integration solution transformation languages beyond the procedural
that meets the requirements of modern complex XSLT, this technology is ready to be utilised in
Web-enabled software and information systems. the Web application context. The combination
The difficulty arises from the high degree of of declarative abstract specification and auto-
complexity of data structures, for example, in mated support of the architecture implementation
business and technology applications, and from the achieves the necessary flexibility to deal with
constant change of data and its representation. In complexity and the maintainability of constantly
the Web context, where the Web platform is used changing data and system specifications.
to integrate different organisations or software Our objective is to explore and illustrate solu-
systems, the problem of heterogeneity arises also. tions to compose a set of data integration services.
This calls for a specific data integration solution The data integration services deliver a unified data
for Web applications such as Web-enabled infor- model built on top of individual data models in
mation systems. dynamic, heterogeneous, and open environments.
The advent of Web services and service-ori- The presentation of this technology framework
ented architecture (SOA) has provided a unified aims to investigate the practical implications of
way to expose the data and functionality of an current research findings in Web information
information system. Web services are provided systems technology.
as-is at certain location and can be discovered and A lightweight mediated architecture for Web
invoked using Web languages and protocols. SOA services composition shall be at the centre of our
is a service-based approach to software applica- solution. Data integration is a central architec-
tion integration. The use of standard technologies tural composition aspect. The flexibility of the
reduces heterogeneity and is, therefore, central architecture to enable information integration is
to facilitating application integration. The Web essential in order to separate the business pro-
services platform is considered an ideal infrastruc- cess rules from the rest of the application logic.
ture to solve the problems in the data integration Therefore, the data transformation rules are best
domain such as heterogeneity and interoperability expressed at the abstract model level. We apply
(Orriens et al., 2003; Haller et al., 2005; Zhu et our solution to the Web Services platform in
al., 2004). We propose a two-pronged approach the context of information technology services
to address this aim: firstly, data integration and management in the application service providers
adaptivity through declarative, rule-based ser- ASP (on demand) business area. We focus on
vice adaptor definition and construction; and, this context to illustrate problems and solutions.
secondly, a mediator architecture that enables Portals, provided by ASPs, are classical examples
adaptive information service integration based where data might come from different sources that
on the adaptive service connectors. Abstraction motivate our research. In order to consume the
has been used successfully to address flexibility information, the data models and representation


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

needs to be understood by all participants. The BacKGrouNd


ASP maintains the application, the associated
infrastructure, and the customers data. The ASP data Integration context
also ensures that systems and data are available
when needed. The application service provider or ASP busi-
The chosen area demonstrates the need to ness model, which has been embraced by many
support deployment of Web service technology companies, promotes the use of software as a
beyond toy examples (Stern & Davies, 2004). It service. Information systems (IS) outsourcing
is a specific, but important area due to the need is defined as the handing over to third party the
to find solutions to accommodate constant struc- management of IT and IS infrastructure, resources
tural changes in data representations. Two central and/or activities (Willcocks & Lacity, 1998). The
themes shall be investigated: ASP takes primary responsibility for managing
the software application on its infrastructure,
To identify data model transformation rules using the Internet as the delivery channel be-
and how to express these rules in a formal, tween each customer and the primary software
but also accessible and maintainable ways application. The ASP maintains the application
are central to the data integration problem and ensures that systems and data are available
and its automation; when needed. Handing over the management of
Service composition to enable interoper- corporate information systems to third party ap-
ability through connector and relationship plication service providers in order to improve
modelling based on workflow and business the availability of the systems and reduce costs
processes is central. is changing the ways that we manage information
and information systems.
Our contribution based on these themes is an Information integration aims at bringing to-
integration technology framework for Web-en- gether various types of data from multiple sources
abled information systems comprising: such that it can be accessed, queried, processed,
and analysed in an integrated and uniform man-
A data integration technique based on the ner. In a large modern enterprise, it is inevitable
declarative specification of transformation that different parts of the organization will use
rules and the construction of connectors different systems to produce, store, and search
that handle the integration in a software their critical data.
system; Recently, service-based platforms have been
A mediator architecture based on informa- used to provide integration solutions for ASP
tion services and the constructed connectors applications. Data integration in these types of
to handle the integration process. collaborating systems is necessary. This problem
has been widely addressed in component-based
We start our investigation by providing some software development through adaptor and con-
data integration background. We then present nector approaches (Crnkovic & Larsson, 2000;
the principles of our declarative data integration Szyperski, 2002). In the service-based Web ap-
technique. The mediator architecture that realises plications context, the data in XML representation
the data integration technique for Web services retrieved from the individual Web services needs
is subsequently presented. A larger application to be merged and transformed to meet the inte-
scenario will then be discussed. We end with gration requirements. The XML query and trans-
some conclusions. formation rules that govern the integration may


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

Figure 1. Example of data integration in adaptive service architecturestwo data schemas that
need to be transformed into one another

transformation
between views

change; therefore, the programs for building up the data Integration principles
connectors that facilitate the connection between
integrated Web services and data service providers Information integration is the problem of com-
need to be adjusted or rewritten. As with schema bining heterogeneous data residing at different
integration, the schema-mapping task cannot be sources, and providing the user with a unified
fully automated since the syntactic representation view (Lenzerini, 2002). This view is central in
of schemas and data do not completely convey the any attempt to adapt services and their underlying
semantics of different data sources. As a result, data sources to specific client and provider needs.
for both schema mapping and schema integration, One of the main tasks in information integration
we must rely on an outside source to provide some is to define the mappings between the individual
information about how different schemas (and data sources and the unified view of these sources
data) correspond. For instance, a customer can and vice versa to enable this required adaptation,
be identified in the configuration management as the example in Figure 1 illustrates. The data
repository by a unique customer identifier; or, the integration itself is defined using transformation
same customer may be identified in the problem languages.
management repository by a combination of a There are two major architectural approaches
service support identifier and its geographical to the data integration problem that provide the
location. In this case, a transformation might be infrastructure for the execution of transformations
necessary; see Fig. 1 for a visualisation of the (Widom, 1995).
customer identifier example.
Data warehousing is an eager or in-advance
approach that gathers data from the appropri-


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

ate data sources to populate the entities in the to merge several source XML documents into
global view. A data warehousing approach one document before it can be transformed into
to integration is suitable for data consumers another document according to an over-arching
wanting to access to local copies of data so general schema.
that it can be modified and calculated to
suite the business needs by nature.
In contrast, the mediated approach extracts a dEclaraTIvE daTa
only data from export schemas in advance. INTEGraTIoN aNd
A mediated approach to integration is suit- TraNsformaTIoN TEcHNIquE
able for information that changes rapidly, for
service environments that change, for clients A declarative, rules-based approach can be applied
in need tailored data, for queries that operate into the data transformation problem (Orriens et
over large amounts of data from numerous al., 2003). A study by Peltier et al. (2001) introduces
information sources, and most importantly, the MTRANS language that is placed on top of
for clients with the need of the most recent XSLT to describe data model transformations.
state of data. XSLT is generated from an MTrans specification.
The transformation rules are expressed in the
xslT shortcomings form of MTrans and then parsed using a genera-
tor. Peltier et al. argue that the data transforma-
XSLT is the most widely used language for XML tion rules are best expressed declaratively at the
data integration, but these XSLT transformations abstract model level rather than at the concrete
are difficult to write and maintain for large-scale operational level in order to reduce the complexity
information integration. It is difficult to separate of the transformation rules.
the source and target parts of the rules as well as A data integration engine for the Web services
the filtering constraints. The verbosity of XML context can be built in the Web service business
makes manual specifications of data and transfor- process execution language WS-BPEL, which is
mations difficult in any case. With this difficulty another example of the benefits of abstraction in
in mind, we propose a declarative query and transformation and integration. A common over-
transformation approach yielding more expressive arching information model governs what types
power and the ability to automatically generate of services are involved in the composition. In
query programs as connectors to improve the (Rosenberg & Dustdar, 2005), a business rule
development of services-based data integration engine-based approach has been introduced to
in Web-based information systems. separate the business logic from the executable
XSLT does work well in terms of transforming WS-BPEL process.
data output from one Web service to another in an These two examples illustrate current work
ad hoc manner. XSLT code is, however, difficult in this context. Now, a detailed discussion shall
to write and almost impossible to reuse in a large elicit the specific requirements for service-based
enterprise integration solution. The syntactical information integration.
integration of the query part and construction
part of a XSLT transformation program is hard requirements for mediated
to read and often new programs are needed even Integration
when a small portion of the data representation
changes. XSLT does not support the join of The flexibility of the architecture in which infor-
XML documents. We would in our context need mation integration is to be realised is essential


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

in order to separate the business logic from the and reduction (to express transformation
rest of the application logic. Therefore, the data rules that exclude parts of the data from the
transformation rules are best expressed at an result).
abstract business model level. These rules, stored Compositionality is an essential feature for
in a repository, can be used to dynamically create an XML query and transformation language
XSLT-based transformations using a connector to support query composition.
or integration service as the mediator. These
integration services are the cornerstones of a A rule-based, declarative language enables
mediator architecture that processes composite developers to concentrate on the integration
client queries that possibly involve different data logic rather than on implementation details and
sources provided by different Web services. We enables the required compositionality and expres-
start our investigation by discussing the proper- siveness.
ties of suitable integration and transformation Most XML and semi-structured data query
languages. languages have been proposed to extract XML
XML data might be provided without ac- data from the XML databases or the Web. A
companying schema and sometimes is not well- comparative analysis of existing languages has
formed; XML data often contains nested struc- been done by Reynaud et al. (2001). A language is
tures. Therefore, transformation techniques need generally designed to suit the needs for a limited
more expressive power than traditional database application domain such as database querying or
languages such as relational algebra or SQL. The data integration; some languages are designated
characteristics of an XML query language have only for semi-structured data that predated the
been studied extensively (Jhingran et al., 2002; XML-format. A query language should be able
Lenzerini, 2002; Peltier et al., 2002). However, to query data sources using complex predicates,
these investigations often focus on the features to joins, and even document restructuring. We add
query an XML or semi-structured data repository the following criteria specifically for the context
in the spirit of database query languages rather of Web-based data integration:
than constructing a new XML document in the
context of the data integration. The following Join: The language must support joins of
principles, which are inspired by the data integra- multiple XML data sources. A join condi-
tion literature such as (Lenzerini, 2002), aim to tion is necessary to compare attributes or
provide a comprehensive requirements list. elements in any number of XML documents.
In data integration systems, data is most
The language should support both querying likely to come from more than one source.
and restructuring XML Data. Data model: The queries and their answers
The language must enable the generation of are the instances of a data model. Sometimes,
query programs by other programs. a rich data model is needed to support the
The language should be capable of express- functionality of some query languages. The
ing the following operations in addition to underlying framework plays a major role
the ones existing in database languages (such in determining a data model for a query
as projection, selection, and joins): restruc- language.
turing (constructing a new set of element Incomplete query specification: XML
instances based on variable bindings and and semi-structured data is not as rigid as
the global schema); combination (merging relational data in term of schema defini-
two or more element instances into one); tions and data structure. Therefore, it is


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

important that a query language is capable UnQL (the unstructured query language) is
of expressing queries in incomplete form, a query language originally developed for
such as by using wildcard and regular ex- querying semi-structured data and nested
pressionsalso called partially-specified relational databases with cyclic structures.
path expressions. It has later been adapted to query XML
Halt on cyclic query terms: If a language documents and data. Its syntax uses query
supports querying with incomplete query patterns and construction patterns and a
specification by wildcard and regular expres- query consists of a single select or traverse
sion, it might cause termination problems. rule that separates construction from query-
Therefore, features to detect cyclic condi- ing. Queries may be nested, in which case
tions are required. the separation of querying and construc-
Building new elements: The ability to con- tion is abandoned. UnQL was one of the
struct a new node added to the answering tree first languages to propose a pattern-based
is an important feature for data integration querying (albeit with subqueries instead of
systems. rule chaining).
Grouping: Grouping XML nodes together XML-QL uses query patterns and path
by some conditions by querying the distinct expressions to select data from XML
values is another important feature in data sources. These patterns can be augmented
integration. Some languages use nested by variables for selecting data. XML-QL
queries to perform grouping operations; in uses query patterns containing multiple
contrast, some more powerful languages variables that may select several data items
have built-in constructors. at a time instead of path selections that may
Nested queries: Nested queries are common only select one data item at a time. Further-
in relational database languages for joining more, variables are similar to the variables
different data elements by their values. In of logic programming, that is, joins can be
logic-based languages, the construction part evaluated over variable name equality. Since
and the selection part are separated. XML-QL does not allow one to use more
Query reduction: Query reduction allows than one separate rule, it is often necessary
users to specify what part of the elements to employ subqueries to perform complex
or what nodes in the query conditions will queries.
be removed from the resulting XML tree.
The shortcomings of these widely known and
A number of potential candidates shall briefly used languages in the context of the given require-
be discussed in the context of these require- ments and the language comparisons have led
ments: us to choose a fully declarative language called
Xcerpt (Bry & Schaffert, 2002) that satisfies all
XQuery is a W3C-suppported query lan- criteria that we have listed earlier on. However,
guage that aims at XML-based database other recently developed and well-supported trans-
systems. XQuery is an extension of XPath formation languages such as ATL and QVT are
2.0 adding functionalities needed by a full similarly suitable candidates. While QVT satisfies
query language. The most notable of these the criteria, it is currently not as well supported
functionalities are support of sequences, through tools and accessible tutorial material.
the construction of nodes and variables, and Xcerpt is a query language designed for query-
user-defined functions. ing and transforming both data on the standard

0
Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

Web (e.g., XML and HTML data) and data on the variables in the query pattern against underlying
Semantic Web (e.g., RDF data). Xcerpt not only XML termssimilar to UnQL, but strict unifica-
allows one to construct answers in the same data tion is used in UnQL.
formats as the data queries like XQuery, but also
allows further processing of the data generated declarative Transformation rules
by this same query program. One of the design
principles is to strictly separate the matching part We have adapted Xcerpt to support the construc-
and the construction part in a query. Xcerpt follows tion of the service connectors, which is our central
a pattern-based approach to querying the XML objective:
data. A similar approach has been proposed in the
languages UnQL and XML-QL. However, Xcerpt From the technical point of view, in order
has extended the pattern-based approach in the to promote code reuse, the individual in-
following aspects. Firstly, the query patterns can tegration rules should not be designed to
be specified by incomplete query specifications perform the transformation tasks alone.
in three dimensions. Incomplete query specifica- The composition of rules and rule chaining
tions can be represented in depth, which allows demand the query part of service connector
XML data to be selected at any arbitrary depth to be built ahead of the construction part of
in breadth, which allows querying neighbouring the service connector.
nodes by using wildcards, and in order. Incomplete From the business point of view, the data
query specifications allow the pattern specifica- presentation of the global data model
tions to be specified in a more flexible manner but changes as element names change or ele-
without losing accuracy. Secondly, the simulation ments are being removed. These should not
unification computes answer substitutions for the affect the query and integration part of the

Figure. 2. Declarative query and transformation specification of customer array element in Xcerpt

CONSTRUCT
CustomerArray [
all Customer[
nameAsContracted[var Name],
companyId[var CompanyId],
serviceOrganizationIdentifier[var OrgId],
all supportidentifier[
CustomerSupportIdentifier [var Code],
ISOCountryCode [var CSI]
]
]
]
FROM
arrayOfCustomer[[
item [[
orgName[var Name],
companyId[var CompanyId],
gcdbOrgId [var OrgId],
countryCode[var Code],
csiNumber[var CSI]
]]
]]


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

logic. Only an additional construction part way down to the ground rules. In addition to the
is needed to enable versioning of the global original Xcerpt approach, we propose a media-
data model. tor-based data integration architecture where the
Xcerpt-based connectors are integrated with the
Grouping and incomplete query specifications client and provider Web services. WS-BPEL code
turn out to be essential features. is generated by a transformation generator within
Xcerpt is a document-centric language the mediator service (see Figure 4 below, which
which is designed to query and transform XML is explained in a separate section).
and semi-structured documents. Therefore, the
ground rules, which read data from the docu- Implementation of connector
ment resources, are tied with at least one resource construction
identifier. This is a bottom up approach in terms
of data population because the data are assigned The construction of Xcerpt-based connectors,
from the bottom level of the rules upward until which specify integration through declarative
the rule application reaches the ultimate goal of rules, can be automated using rule chaining.
a complex, hierarchically structured rule. These Ground rules are responsible for querying data
rules are defined through an integration goal at from individual Web services. Intermediate
the top level and structured into sub-rules down composite rules are responsible for integrating
to ground rules, which address individual data the ground rules to render data types that are
elements. described in global schemas. The composite rules
Figure 2 shows a transformation example are responsible for rendering the data objects
for a customer array based on Figure 1. Figure described in the interfaces of the mediator Web
1 is a graphical illustration of XML-based data services based on demand. Therefore, exported
structures. The upper structure provides the data data from a mediator service is the goal of the
schema of the input document; the lower structure corresponding connector (i.e., a query program);
is the target data schema that a transformation see Figure 3. Figure 1 defines again the respective
needs to map onto. The graphical representation input and output data schemas. The CONSTRUCT
allows us to avoid the verbosity of XML-based data .. FROM clauses in Figure 3 define the individual
representations for this investigation. An output rules. Here, information from ArrayOfCus-
customer in CustomerArray is constructed based tomers and Customers is selected to construct
on the elements of an item in an arrayOfCustomer the SupportIdentifier.
by using a pattern matching approach, identifying We apply backward goal-based rule chaining
relevant attributes in the source and referring to in this adapted implementation to execute com-
them in the constructed output through variables. plex queries based on composite rules. Figure 3
For instance, the Name variable is used to declare shows an example of this pattern matching-based
nameAsContracted and OrgName as semantically approach that separates a possibly partial query
equal elements in both representations that are based on resource and construction parts. This
syntactically different. transformation rule maps the supportIdentifier
This original Xcerpt approach is unfortunately element of the customer example from Figure 1.
not feasible in an information integration solu- Figure 3 is a composite rule based on the Sup-
tion because the resource identifiers can not be portIdentifier construction rule at a lower level.
hard coded in the ground rules in our setting. A These rules are saved in a repository. When
wrapper mechanism has been developed to pass needed, a rule will be picked and the backward rule
the resource identifiers from the goal level all the chaining enables data objects to be populated to


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

Figure 3. Transformation specification in Xcerpt based on goal chaining


GOAL
Out { Resource {"file:SupportIdentifier_Customer.xml"},
SupportIdentifier [ All var SupportIdentifier ] }
FROM
Var SupportIdentifier -> SupportIdentifier {{}}
END
CONSTRUCT
SupportIdentifier [var Code, optional Var Cname, Var Code]
FROM
in { Resource {"file:customer1.xml"},
ArrayOfCustomer [[
customer [[ optional countryName [var CName],
countryCode [var Code]
csiNumber [var CSI] ]] }
END
CONSTRUCT
SupportIdentifier [var Code, Var Cname, optional Var Code]
FROM
in { Resource {"file:customer2.xml"},
Customers [[ customer [[
countryName [var CName],
optional countryCode [var Code]
csiNumber [var CSI] ]] }
END

answer transformation requests. This architecture tion architecture uses Web services to enable the
will be detailed in the subsequent section. provision of data on demand whilst keeping the
underlying data sources autonomous.
There is consequently a need for mediators
mEdIaTor arcHITEcTurE in an architecture that harmonise and present
the information available in heterogeneous data
motivation sources (Stern & Davies, 2003). This harmonisa-
tion comes in the form of identification of semantic
Zhu et al. (2004) argue that traditional data in- similarities in data while masking their syntactic
tegration approaches such as federated schema differences; see Figure 1. Relevant and related
systems and data warehouses fail to meet the data is then integrated and presented to a higher
requirements of constantly changing and adap- layer of applications. The sourcing, integration,
tive environments. We propose, based on (Haller and presentation of information can be seen as
et al., 2005; Sheth & Larson, 1990; Wiederhold, logically separated mediator rules for integra-
1992; Zhu et al., 2004), a service-oriented data tion, implemented by mediator services, which
integration architecture to provide a unified view shall form the basis for the presented mediator
of data on demand from various data sources. A architecture.
service-oriented data integration architecture is Garcia-Molina et al. (1997) identify that the
different from business process integration as the following requirements are essential in order to
latter is concerned with integrating the business build a mediator architecture. Firstly, it must be
process rather than data. The proposed integra- based on a common data model that is more flexible


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

than the models commonly used for the database Schema repository: Each object within
management systems. Secondly, it must be sup- the model is a logical representation of the
ported by a common query language. Finally, entity and will often be populated with data
there must be a tool to make the creation of new sourced from more than one repository.
mediators and mediator systems more cost-effec- The advantage of having a unified view of
tive than building them from scratch. data is to make sure that the customers will
have a consistent view of data and to avoid
Architecture Definition duplication.
Information services: These provide source
The mediator architecture transforms local XML data retrieved from the underling data
documents into documents based on a global repositories to clients and other services.
schema. Figure 4 illustrates this architecture with The signature of the Web service interfaces
a few sample information servicesCustomer such as input parameters and data output
Data, E-business System, Request Logging and is agreed in advance by business domain
Analysis Servicethat a client might access. The experts from both client and provider sides.
data integration engine is built based on a com- The benefit of asking the data sources to
position of individual services using WS-BPEL, provide a Web service interface is to delegate
where component invocation orders are predefined the responsibility and cut down the effort
in the integration schemas. These service orches- spent on developing data access code and
trations are defined by specifying the order in understanding the business logic.
which operations should be invoked. Data integration and mediation services:
The proposed Web services-based mediator A common data model can be implemented
architecture, Figure 4, contains the following as an XML schema. Two basic approaches
components: have been proposed for the mappings
between the export schemas and the feder-

Figure 4. Mediator architecture for adaptive service-based information systems with sample informa-
tion services

Mediator Service Customer Data


Customer Data
Service
Service
: Activate
BPEL Process
: Query Transformation Engine : Invocation
Client Query Transformation Engine E-business
Client Query a: Result (WS-BPEL Mediator) E-business
Application Service (WS-BPEL Mediator) Systems Service
Application Service Systems Service
b: Result : Result
: Transformation
: Conversion Request Generation
: Executed Service Requests
Service Requests
Integration Service Query Program Analysis Service
Integration Service Analysis Service
(Connector Generator
(Connector Generator
& Xcerpt Engine)
& Xcerpt Engine)
: Xcerpt Query Rules

Schema Transformation Rule


Schema Transformation Rule
Repository Repository
Repository Repository


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

ated schema called global-as-view and provider. Within the composite mediator service,
local-as-view in (Lenzerini, 2002). The both transformation and connector generation ser-
former approach defines the entities in the vices are separated, and only loosely coupled.
global data model as views over the export
schemas whereas the latter approach defines developer activities
the export schemas as views over the global
data model. In this work, a data integration The architecture in Figure 4 explains the runtime
service will be treated as a mediator in the view from the client and user perspective. In order
mediator architecture. We introduce a novel to complete the picture, the development perspec-
approach to ease and improve the develop- tive shall also be addressed. Figure 5 illustrates
ment of the mediators. There are two quite development activities, looking at the develop-
different styles of transformation: proce- ers of architecture, rules, and servicesand
dural, with explicit source model traversal their respective activities. A number of actors
and target object creation and update; and including service provider engineers, application
declarative, with implicit source model software engineers, integration business analysts,
traversal and implicit target object creation. integration software architects, and integration
Therefore, an approach based on a declara- software engineers are distinguished. These are
tive rule mark up language to express the associated with the activities they are involved
data transformation rules and a rule engine in. In particular, the integration team is involved
have been chosen. The mapping should be with Xcerpt-based rule definition and application.
conducted at the abstract syntax mappings Activities are also related among themselves. The
level, leaving the rendering of the result participation of different roles from possibly dif-
to a separate step at runtime to the BPEL ferent organisations (application customer, service
engine. provider, integration team) demonstrates the need
Query component: The query service is for common understanding and maintainability of
designed to handle inbound requests from the integration problem, which can be achieved
the application consumer side. The applica- through abstract and declarative rule specifica-
tion developers build their applications and tions (here in Xcerpt format), shared by service
processes around common objects and make provider developers, integration business analysts,
successive calls to the mediated Web ser- and integration software developers.
vices. Therefore, the interfaces of individual
Web service providers are transparent to the
application customers; they may send any applIcaTIoN scENarIo aNd
combinations of the input parameters to the dIscussIoN
query service. In order to facilitate these
unpredicted needs, the query service has The presented data integration technique and the
to decompose the input messages into a set mediated architecture are complemented by an
of pre-defined WS-BPEL flows. Normally a incremental, evolutionary process model. Some
BPEL flow belongs to a mediator that deliv- pragmatic aspects of this process shall now be ad-
ers a single common object. Occasionally, dressed. In the proposed architecture, the unified
two or more mediators need to be bundled data model (over-arching schema) is maintained
together to deliver a single object. manually. The schema for large enterprise integra-
tion solutions might consist of a large number of
Each of the components can in principle be data aspects. From the development point of view,
offered as a service by a (potentially different) it is only reasonable to deliver the data integration


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

services on a phased basis such as one data aspect of source to destination model mapping, the users
for one release cycle. A mediator consists of the intervention is needed to select one from more
following components: the individual provided than one set of mappings that are generated. In
Web services; a WS-BPEL workflow; and one or our proposed architecture, the service connectors
more service connectors, as illustrated in Figure can be generated on the fly by rule composition.
4. Mediators in our solution are used to deliver The sacrifice is that semantic similarity is not
these data aspects according to the unified schema. taken into consideration.
This schema is available to the customers so that The data integration rules are created at the
these can decide which mediator to call based on higher level than the Xcerpt ground query pro-
the definition of the unified schema. grams themselves, as the following schematic
The focus of this investigation is not on the example demonstrates (Figure 3 shows an example
automatic composition of Web services, rather on of a composite rule like A below).
how the data output from multiple Web services
can be automatically integrated according to a Rule A: A(a, b) := B(a, b), C(b)
global data model and sent back to users. There- Rule B: B(a ,b) := D(a), E(b)
fore, in terms of the WS-BPEL process flow, a Rule C: C(b) := E(b), F(b)
static approach with respect to the orchestration of
the involved Web services can be taken. These can Each of the above rules would be implemented
be orchestrated together in form of a WS-BPEL in the Xcerpt language. In this example, rule
flow built in advance. A is a composite rule, based on B and C. This
During the development phase, the mappings could be used to answer a users query directly,
between the global model and the local models but internally referring to subordinated rules
will be expressed at the abstract model level, for dealing with the extraction and transformation
instance in the widely used MOF (meta object of specific data aspects. The resource identifiers
facility) framework for modelling language defi- in form of variables and the interfaces for the
nition. Model transformation between different data representation such as version number of
metamodels can then be automatically carried out. the unified data model will be supplied to the
The inputs are the source XML schema defini- transformation generator. The rule mappings in
tions and the transformation rules. The output is the transformation generator serve as an index to
an XSLT transformation file. find the correct Xcerpt queries for execution. As
In the proposed process model illustrated in a result, a query program including both query
Figure 5, the unified data model and the creation of part and construction part is being executed to
rules are the responsibility of the business solution generate the XML output, which is sent back to
analysts, not necessarily the software architect. the transformation generator.
The rules are merely mappings from the elements In terms of examples, we have so far only
exposed by Web service providers to the elements addressed complex transformations based on
in the unified data model. We assume here that compositional rules within data provided by one
the semantic similarity is determined manually. Web servicethe customer information service.
In the literature on data model transformation, Queries could of course demand to integrate data
the automation of the mapping is often limited to from different services. For instance, to retrieve all
transforming the source model and the destination services requests by a particular customer would
model rather than integrating more than one data target two services, based on several composite
model into a unified data model. Even in the case integration and transformation rules.


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

fuTurE TrENds reconcile integration problems that arise in par-


ticular in dynamic and changing environments.
Adaptivity in service-based software systems is We have excluded the problem of semantic
emerging as a crucial aspect beyond the discussed interoperability from our investigation. Map-
area of service-based ASP infrastructures and pings between schemas might still represent the
on-demand information systems. Adaptability of same semantic information. The recently widely
services and their infrastructure is necessary to investigated semantic Web services field, with

Figure 5. Overview of different developer roles and their activities involved


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

ontology-based domain and service models, can success of the service-based information systems
provide input for some planned extensions in this architecture from the deployment point of view.
direction (Haller et al., 2005).
Re-engineering and the integration of legacy
systems is another aspect that we have not ad- rEfErENcEs
dressed. The introduction of data transforma-
tion techniques for reengineering activities can Alonso, G., Casati, F., Kuno, H. & Machiraju, V.
improve the process of re-engineering legacy (2004). Web servicesConcepts, architectures
systems and adopting service-oriented archi- and applications. Springer Verlag.
tecture to manage the information technology
BPEL Coalition (2006). Business process execu-
services (Zhang & Yang, 2004). Business rules
tion language for Web services version 1.1. Re-
often change rapidly, requiring the integration of
trieved on April 14, 2008 from http://www.ibm.
legacy systems to deliver a new service. How to
com/developerworks/library/ws-bpel/
handle the information integration in the context
of service management has not yet been exploited Bry, F. & Schaffert, S. (2002). Towards a declara-
in sufficient detail in the context of transformation tive query and transformation language for XML
and re-engineering. and semistructured data: Simulation unification.
In Proceedings Intl. Conference on Logic Pro-
gramming. LNCS 2401, Springer-Verlag.
coNclusIoN
Crnkovic, I. & Larsson, M. (2000). A case study:
Demands on component-based development. In
The benefit of information systems on demand
Proceedings of the 2nd International Confer-
must be supported by corresponding information
ence on Software Engineering, (pp. 23-31). ACM
service management systems. Many application
Press.
service providers are currently modifying their
technical infrastructures to manage information Garcia-Molina, H., Papakonstantinou, Y., Quass,
using a Web services-based approach. However, D., Rajaraman, A., Sagiv, Y., Ullman, Y. D., Vas-
how to handle information integration in the salos, V. & Widom, J. (1997). The TSIMMIS ap-
context of service-based information systems has proach to mediation: Data models and languages.
not yet been fully exploited. Journal of Intelligent Information Systems, 8(2),
The presented framework utilises information 117-132.
integration technologies for service-oriented soft-
Haller, A., Cimpian, E., Mocan, A., Oren, E. &
ware architectures. The crucial solutions for the
Bussler, C. (2005). WSMX - A semantic service-
information integration problem are drawn from
oriented architecture. In Proceedings of the Iner-
mediated architectures and data model transfor-
national Conference on Web Services ICWS05.
mation, allowing the data from local schemas to
be transformed, merged, and adapted according Jhingran, A.D., Mattos, D. & Pirahesh, N.H.
to declarative, rule-based integration schemas for (2002). Information integration: A research
dynamic and heterogeneous environments. We agenda. IBM System Journal 41(4), special issue
have proposed a declarative style of transforma- on information integration. [Electronic version]
tion, with implicit source model traversal and Retrieved on April 14, 2008 from www.research.
implicit target object creation. The development ibm.com/journal/sj/414/jhingran.pdf
of a flexible mediator service is crucial for the
Lenzerini, M. (2002). Data integration: A theoreti-
cal perspective. In Proceedings of the Principles


Data Integration Through Service-Based Mediation for Web-Enabled Information Systems

of Database Systems Conference PODS02, (pp. Stern, A & Davis, J. (2003). A taxonomy of infor-
233-246). ACM. mation technology services: Web services as IT
services. In Proceedings of the First International
Orriens, B., Yang, J. & Papazoglou, M. (2003). A
Conference on Service Oriented Computing.
framework for business rule driven Web service
composition. In M. A. Jeusfeld & O. Pastor, (Eds). Stern, A. & Davis, J. (2004). Extending the Web
Proceedings of the ER2003 Workshops, LNCS services model to IT services. In Proceedings
2814, (pp. 52-64). Springer-Verlag. of the IEEE International Conference on Web
Services, (pp. 824-825).
Peltier, M., Bezivin, J & Guillaume, G. (2001).
MTRANS: A general framework, based on Szyperski, C. (2002). Component software:
XSLT, for model transformations. In Proceedings Beyond object-oriented programming, 2nd Ed.
of the Workshop on Transformations in UML Addison-Wesley.
WTUML01.
Widom, J. (1995). Research problems in data
Peltier, M., Ziserman, F. & Bezivin. (2002). On warehousing. In Proceedings of the 4th Interna-
levels of model transformation. In Proceedings tional Conference on Information and Knowledge
of the XML Europe Conference (pp. 1-17). Paris, Management.
France: Graphic Communications Association.
Wiederhold, G. (1992). Mediators in the archi-
Reynaud, C., Sirot, J. P. & Vodislav, D. (2001). tecture of future information systems. IEEE
Semantic integration of XML heterogeneous data Computer, 25. March, 38-49.
sources. In Proceedings of the IDEAS Conference
Willcocks, L. P. & Lacity, M. C. (1998). The sourc-
(pp. 199-208).
ing and outsourcing of IS: Shock of the new? In
Rosenberg, F. & Dustdar, S. (2005). Business L. P. Willcocks & M. C. Lacity (Eds.) Strategic
rules integration in BPEL - A service-oriented sourcing of information technology: Perspectives
approach. In Proceedings of the 7th International and practices. Wiley.
IEEE Conference on E-Commerce Technology.
Zhang, Z. & Yang, H. (2004). Incubating services
Sheth A. P. & Larson J. A. (1990). Federated in legacy systems for architectural migration. In
database systems for managing distributed, het- Proceedings of the 11th Asia-Pacific Software
erogeneous, and autonomous databases. ACM Engineering Conference (APSEC04) (pp. 196-
Computing Surveys, 22(3), 183. 203).
Seltsikas, P. & Currie, W.L. (2002). Evaluating Zhu, F., Turner, M., Kotsiopoulos, I., Bennett, K.,
the application service provider (ASP) business Russell, M., Budgen, D., Brereton, P., Keane, J.,
model: The challenge of integration. In Proceed- Layzell, P., Rigby, M. & Xu, J. (2004). Dynamic
ings of the 35th Annual Hawaii International Data Integration Using Web Services. In Pro-
Conference, (pp. 2801-2809). ceedings 2nd International Conference on Web
Services (ICWS04).


00

Chapter VI
Using Patterns for Engineering
High-Quality Web Applications
Pankaj Kamthan
Concordia University, Canada

aBsTracT

In this chapter, we view the development and maintenance of Web applications from an engineering per-
spective. A methodology, termed as POWEM, for deploying patterns as means for improving the quality
of Web applications is presented. To that end, relevant quality attributes and corresponding stakeholder
types are identified. The role of a process, the challenges in making optimal use of patterns, and feasibility
issues involved in doing so, are analyzed. The activities of a systematic selection and application of pat-
terns are explored. Following a top-down approach to design, examples illustrating the use of patterns
during macro- and micro-architecture design of a Web application are given. Finally, the implications
towards Semantic Web applications and Web 2.0 applications are briefly outlined.

INTroducTIoN In order to continue providing the desirable


services to the consumers, it is the responsibility
In the past decade, the Internet and the Web have of the providers to ensure the quality of Web ap-
opened new vistas for many sectors of society plications. There have been several approaches
including education, businesses, and government. from different viewpoints for understanding and
Indeed, Web applications have played an increas- managing the issue of the quality of Web applica-
ingly integral role in our daily activities of com- tions. However, as discussed later, most focus on
munication, information, and entertainment, and (1) quality as an afterthought rather than as an
continue to do so. In retrospect, the sustainability integral consideration to be embraced early and
of the successes of Web applications is brought into carried throughout the development process, and
question due to their failures (Nguyen, Johnson, (2) preventative rather than curative means for
& Hackett, 2003), many of which are related to addressing quality. The purpose of this chapter is
issues of quality (Pertet & Narasimhan, 2005; to motivate the use of patterns (Appleton, 1997)
Vijayaraghavan, 2003).

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Using Patterns for Engineering High-Quality Web Applications

within a systematic approach to the develop- interaction, they are expected to be an exemplar
ment of high-quality Web applications and to of universality (delivered to anybody, anywhere,
point out the benefits and challenges in doing so at any time, on virtually any device), and so on.
(Kamthan, 2008). These characteristics naturally manifest in their
The rest of the chapter is organized as follows. development, operation, and maintenance.
We first outline the background and state-of-the-
art necessary for the discussion that follows and Engineering of Web applications
state our position in that regard. This is followed
by a discussion of the suitability of a process The need for managing increasing size and
model, the presentation of the quality model that complexity of Web applications and the neces-
includes quality attributes at a granular level for sity of a planned development was realized in
representations in Web applications, selection and the late 1990s (Coda et al., 1998; Powell, Jones,
application of patterns as means for addressing & Cutts, 1998). This led to the discipline of Web
the quality attributes in the quality model, and Engineering (Ginige & Murugesan, 2001), which
supporting examples. Next, challenges and direc- has been treated comprehensively in recent years
tions for future research are outlined and, finally, (Kappel et al., 2006; Mendes & Mosley, 2006;
concluding remarks are given. Rossi et al., 2008).
Web Engineering is defined as a discipline
concerned with the establishment and use of sound
BacKGrouNd scientific, engineering and management principles
and disciplined and systematic approaches to the
In this section, we present a synopsis of Web successful development, deployment, and mainte-
Engineering, quality in Web applications, and nance of high-quality Web applications. It relies
patterns. and draws upon other engineering disciplines
including computer engineering, document en-
characteristics of Web applications gineering, hypermedia engineering, information
systems engineering, media engineering, network
There are certain uniquely defining social and engineering, software engineering, and systems
technical characteristics of Web applications that engineering for its existence.
bring enormous benefits to the users. They also For the rest of the chapter, a Web application
pose a variety of new challenges that the provid- will mean a Web site that behaves like an inter-
ers must deal with. active software system specific to a domain in
Specifically, Web applications differ from a distributed client-server environment. A Web
traditional software in many ways including application will in general require programmatic
that they are largely document-centric (rather ability and may deploy additional software (such
than data-centric), they are delivered to a user as application servers, media servers, or database
over the network (rather than locally installed), servers) for some purpose (such as dynamic de-
their users often have little control over the be- livery of resources).
havior or rendering of information, they need to
increasingly compete for visibility, the laws of quality of Web applications
jurisdictions from where they are being served
and where they being consumed can be quite The unique nature of Web applications as com-
different, they are based on user interfaces that pared to traditional software makes the need for
currently lack standards for presentation and high-quality all the more critical. That Web

0
Using Patterns for Engineering High-Quality Web Applications

applications exhibit high-quality is critical to A pattern is typically described (Meszaros &


all stakeholders involved. If unaddressed, there Doble, 1998) using an ordered list of elements la-
is a potential for a resource in a Web application beled as (pattern) name, author, context, problem,
to be rendered unreadable on a user agent of a forces, solution, example, and related patterns.
customer, be inaccessible to someone who is At times, these assigned labels may vary across
visually impaired, or be prohibitive to adaptive a domain or a community of users. Furthermore,
maintenance by an engineer (say, for transfor- optional elements, such as those related to meta-
mation from one environment to another for a data, may be included to enrich the description.
certain purpose). This can impact the sine qua In the rest of the chapter, the elements of a pattern
non of any organization, whether it is commercial, are highlighted in italics.
educational, or governmental. In general, patterns do not exist in isolation and
There have been various initiatives for address- are usually part of an overall vocabulary (namely,
ing the quality of Web applications: listing, orga- a communication and organization structure such
nizing, and discussing relevant quality attributes as a pattern system or a pattern language)
(Brajnik, 2001; Dustin, Rashka, & McDiarmid, that attempts to solve a larger problem than an
2001; Hasan & Abuelrub, 2006; Offutt, 2002; individual pattern.
Ziemer & Stlhane, 2004), including in some Patterns were formally introduced in the urban
cases from a users perspective (Ross, 2002); and planning and architecture domain. Since then,
providing a means for evaluation (Mich, Franch, patterns have permeated into computer science
& Gaio, 2003; Olsina & Rossi, 2002). However, and software engineering in general and the de-
these efforts are limited by one or more of the velopment of Web applications in particular. It
following issues: although quality attributes rel- has been shown that patterns can be successfully
evant to Web applications are given, the means applied to both academic (Kendall, 1998) and
of addressing them are either suggested casually industrial (Beck et al., 1996) contexts.
or not at all, and the focus is less on assurance In particular, patterns have been discovered in
(prevention) and more on evaluation (cure). For the following domains of interest to us: navigation
example, the emphasis ostensibly is on testing design (Gillenson, Sherrell, & Chen, 2000; Rossi,
rather than on inspections. Schwabe, & Lyardet, 1999); hypermedia design
(German & Cowan, 2000; Rossi, Lyardet, &
patterns for Web applications Schwabe, 1999); and Web applications in general
(Montero, Lozano, & Gonzlez, 2002; Rossi &
A pattern is defined as a proven solution to a Koch, 2002; Van Duyne, Landay, & Hong, 2003;
recurring problem in a given context (Appleton, Weiss, 2003).
1997). The existence of rationalized and proven Indeed, patterns have been used for the devel-
solutions based on established principles, that are opment of certain Web applications (Garzotto et
specific to problems in a given context in a struc- al., 1999; Montero, Lozano, & Gonzlez, 2002;
tured form, often makes patterns more practical Montero, Lpez-Jaquero, & Molina, 2003). How-
in their applicability compared to other means ever, in these cases the relation of patterns to the
(Wesson & Cowley, 2003), such as guidelines underlying development process or to the improve-
(Vijayaraghavan, 2003), for an improvement in ment of quality is not discussed explicitly.
quality.

0
Using Patterns for Engineering High-Quality Web Applications

ToWards a sysTEmaTIc A pattern-based software development process


INTEGraTIoN of paTTErNs IN based on case-based reasoning (CBR) has been
THE ENGINEErING of discussed and applied to an Internet chat appli-
larGE-scalE WEB cation (Wentzlaff & Specker, 2006). However,
applIcaTIoNs it does not explicitly suggest any implications
towards quality. Also, besides problem and solu-
In this section, we propose a methodology for pat- tion, it does not take other mandatory elements
tern-oriented Web Engineering, namely POWEM, of a pattern into consideration. For example, it
for addressing the quality of Web applications. The does not discuss the significance of the context
construction of POWEM is driven by character- in which a problem occurs and the forces that its
istics unique to Web applications and inspired by solution resolves.
situational method engineering (Kumar & Welke, The selection and adoption of a process model
1992) in such a way that acknowledges the signifi- depends on several factors including the follow-
cance of quality assurance in Web applications ing non-mutually exclusive factors that we deem
and the role of patterns in addressing it. indispensable:
POWEM consists of the following interrelated
and non-linear sequence of broadly labeled non- Flexibility: It is well-known that the de-
atomic activities: velopment of Web applications is uniquely
sensitive to changes in the market and other
1. Selecting the development process model. uncertainties (Ginige & Murugesan, 2001;
2. Identifying and organizing quality concerns Ziemer & Stlhane, 2004). This requires that
from a semiotics viewpoint. the development process of Web applications
3. Selecting and applying suitable patterns. be flexible. The flexibility can be achieved
by allowing revisitations of previous phases
The aforementioned activities need to be and by facilitating parallel development.
satisfied as a collective. Furthermore, each of the Support for quality improvement: There
activities needs to be feasible. While pursuing one must be an explicit provision in the process
activity, the non-linearity allows us to revisit other specification for improvement of the qual-
activities and make appropriate modifications if ity of the underlying product, namely Web
deemed necessary. applications, using patterns.
In the following sections, we expound on the User-centricity: It is well-known that Web
work involved in each of these activities. applications are inherently interactive in
nature, and the users (and their computing
selecting the development process environments) vary broadly in their capabili-
model ties. Therefore, any selection and adoption of
a process model must especially be sensitive
The inclusion of patterns in the development of to the users.
Web applications cannot be ad hoc or an after-
thought. In fact, the deployment of patterns in the The other factors could for example be low
development of Web applications needs to take learning curve of the process model, the fa-
place within the auspices of a suitable process miliarity of engineers with the process model,
model. maturity demonstrated by successful/proven use,
and cost-effective, broad, and readily available
tool support.

0
Using Patterns for Engineering High-Quality Web Applications

A flexible user-centric process aiming for the component-based systems. OPEN defines a
development of high-quality Web applications process meta-model that can be instantiated
will typically be non-linear (iterative and incre- to suit large size projects.
mental), and address aspects of both the analysis
and the synthesis. Furthermore, both analysis Each of XP (Wallace, Raggett, & Aufgang,
and synthesis will typically have their own set 2002), RUP (Kappel et al., 2006), and OPEN via
of workflows. During analysis, an understanding its dialect Web OPEN (Henderson-Sellers, Lowe,
and specification of the problem domain will take & Haire, 2002) have been adapted to Web ap-
place, leading to artifacts such as the domain plications. There is explicit support for the use
model and use model, and based on them, the of patterns during design in XP, UP, and OPEN
requirements specification. During synthesis, an and, by reference, their extensions/instantiations
understanding and specification of the solution for Web applications.
domain will take place, leading to artifacts for the The benefits and drawbacks of agile and dis-
macro-architecture design and micro-architecture ciplined approaches to development have been
design, followed by the implementation of source pointed out and a heterogeneous combination
code and data. that balances agility and discipline is suggested
(Boehm & Turner, 2004). Further discussion of
The Agility-Discipline Spectrum this issue is beyond the scope of this chapter.

We recommend three different types of process Feasibility of Development Process


environments for the development of Web ap- Model
plications. They are all in agreement with the
aforementioned criteria, are customizable, and The adoption of the process model for the de-
their suitability depends on the (team) size of velopment of a Web application will evidently
the project. depend on the organizational process maturity
(Paulk et al., 1995). This in turn involves several
XP: Extreme programming (XP) (Beck & factors, including budget, availability of qualified
Andres, 2005) is a broadly-used and well- personnel, submission time line, nature of the
documented agile methodology (Highsmith, application domain (for example, established or
2002) for test-driven software development. new), and available tool support.
XP is suited for small-to-medium size proj-
ects. Identifying and organizing quality
UP: The unified process (UP) (Jacobson, concerns from a semiotics
Booch, & Rumbaugh, 1999) is an archetype viewpoint
of model-based and use case-driven con-
figurable process framework, of which the A Web application should be able to communi-
Rational Unified Process (RUP) (Kruchten, cate with humans and with machines. We adopt
2004) is an instance. RUP is suited for large the theory of semiotics (Stamper, 1992) for this
size projects. purpose. For the sake of this chapter, we focus on
OPEN: The object-oriented process, en- the semiotic quality of the representations in Web
vironment, and notation (OPEN) process applications. Among the proposed approaches
framework (Firesmith & Henderson-Sellers, for quality, we adopt and extend the treatment in
2002) is a configurable process framework (Lindland, Sindre, & Slvberg, 1994).
for the development of object-oriented and

0
Using Patterns for Engineering High-Quality Web Applications

The steps of the construction are as follows: We contend that the quality attributes in Table
1 are necessary, however, make no claim of their
1. View: From a semiotics perspective, we can sufficiency. The relevance of these quality at-
view a Web application on six interrelated tributes that justifies their inclusion is discussed
levels: physical, empirical, syntactic, seman- later.
tic, pragmatic, and social. In this chapter, The quality attributes within the same tier in
we shall restrict ourselves to the pragmatic Table 1 not necessarily mutually exclusive. For
level, which is responsible for the relation of example, the steps taken towards improving reli-
signs to their interpreters. The interpreters ability (say, fault tolerance) may lead to redundant
in our case are the stakeholders, namely the source code or data (that can be unfavorable to
producers and the consumers of the Web maintainability) and but enable ease-of-use (that
application. can be favorable to usability).
2. Decompose: We contend that quality is a The quality attributes in Tier 2 depend on
multi-dimensional concept, and decompose that in Tier 1. For example, if an engineer cannot
it into granular levels that consist of known comprehend the information in a Web applica-
attributes that can be addressed directly or tion, he/she may not be able to maintain it to its
indirectly (Fenton & Pfleeger, 1997). These desired expectations.
quality attributes could for example manifest
themselves as non-functional requirements The Pragmatic Quality-Stakeholder
of a Web application. For the definitions of Contract
these quality attributes, we adopt the IEEE
Standard 1061-1998 and the ISO/IEC 9126-1 For the sake of this chapter, we view pragmatic
Standard. quality as a contract between a Web application
3. Assign: Among the possible means, we and a stakeholder. For the sake of simplicity,
choose patterns for improving the quality we will limit ourselves to the discussion of (not
attributes of a Web application. necessarily mutually exclusive) stakeholders of
the type end-user and engineer.
The aforementioned construction summarized The relevance of quality attributes in Table 1
in Table 1. varies with respect to stakeholder types. The qual-

Table 1. A model for addressing the semiotic quality of Web applications by means of patterns
Means for Quality
Semiotic Level Quality Attributes
Assurance

Social Quality Concerns

[Tier 2]
Maintainability, Usability
Pragmatic Patterns
[Tier 1]
Comprehensibility, Performance, Readability, Reliability

Physical, Empirical, Syntactic, and Semantic Quality Concerns

0
Using Patterns for Engineering High-Quality Web Applications

ity attributes of direct concern to an end-user at selecting and applying suitable


the level Pragmatic-Tier 1 are comprehensibility, patterns
performance, readability, and reliability. The qual-
ity attributes of direct concern to an engineer at In general, the relationship between a quality
the level Pragmatic-Tier 1 is comprehensibility. attribute and a pattern is many-to-many (as, for
The quality attributes of direct concern to an example, is evident from Table 2). This leads to
end-user at the level Pragmatic-Tier 2 is usability. the need for selection of patterns.
We will view accessibility as a special case of There are some patterns available specifically
usability (Mendes & Mosley, 2006). The quality for addressing maintainability concerns of Web
attributes of direct concern to an engineer at the applications (Weiss, 2003). However, in some
level Pragmatic-Tier 2 is maintainability. We will cases the solutions are highly technology-specific,
consider modifiability, portability, and reusability not all the mandatory elements of a pattern are
as special cases of maintainability (Buschmann appropriately documented, and the integration
et al., 1996). of patterns into any development process is not
Finally, we note that the significance and prior- mentioned. There are also some patterns available
ity of quality attributes will likely vary across dif- for addressing usability concerns of Web appli-
ferent types of Web applications (Selmi, Kraem, cations (Graham, 2003; Perzel, & Kane, 1999).
& Ghzala, 2005). For example, the quality needs However, usability is viewed as an atomic (non-
of an education portal will vary from that of a Web decomposable) concept, the patterns are strongly
application providing weather information. oriented towards user interface design, and their
integration into any user-centered development
Feasibility of Quality Attributes process is not shown explicitly.
The underlying problem at hand along with
It is assumed that user modeling at an early stage the context in which it occurs will play a crucial
in the process has led to user profiles, which role in selecting desirable patterns. Although there
can then be used to derive user requirements are preliminary results on automation such as an
pertaining to quality. However, in a distributed expert system-based decision analysis (McPhail &
environment of a Web application that aims to Deugo, 2001), the selection of patterns appropriate
serve remote users, a precise realization of such for a task largely remains a manual process.
profiles can be challenging. There are two main non-mutually exclusive
The expectations of improving the quality concerns in the application of patterns: (1) the
attributes of a Web application must be feasible understanding of the pattern description, and
in order to be practical. We contend that the (2) the order in which patterns are applied. The
pragmatic quality attributes in Table 1 cannot, understanding of the underlying problem the
with respect to the stakeholders, be completely context in which it occurs, and the trade-offs and
satisfied. For example, an a priori guarantee that consequences of the proposed solution, is impera-
a Web application will be usable to all users at all tive. The appropriate use of patterns depending
times in all task-specific or environment-specific on the context of use is particularly critical.
situations that the users can find themselves in, A well-documented pattern description will
is simply unrealistic. Therefore, the quality re- have context and related patterns elements that
quirements of a Web application must reflect the may give an indication of the order of application
fact that certain attributes can only be satisficed of patterns. The patterns that precede the pattern
(Simon, 1996). under consideration will usually be mentioned in
the context element and the patterns that succeed

0
Using Patterns for Engineering High-Quality Web Applications

the pattern under consideration will usually be Macro-Architecture Design of Web


mentioned in the related patterns element. The Applications
order in which patterns should be selected and
applied is straightforward when a set of patterns The macro-architecture design is the place where
is organized as pattern system or a pattern lan- high-level design decisions, independent of any
guage, as these cases the relationships among implementation paradigm or technology, are
patterns are explicit. made.
The macro-architecture patterns that we sug-
Selecting and Applying Patterns to the gest are based on the notion that Web applications
Design of Web Applications are a class of distributed request-response-type in-
teractive systems. Specifically, the applicable pat-
In the following, we will limit ourselves to ad- terns are the CLIENT-SERVER pattern (Schmidt
dressing the role of patterns in the design phase. et al., 2000) followed by the APPLICATION
In the design phase, the patterns for high-level SERVER pattern (Manolescu & Kunzle, 2001),
design are applied first, followed by the patterns which in turn is followed by the MODEL-VIEW-
for low-level design. CONTROLLER (MVC) pattern (Buschmann et
The selection of patterns in our case is based on al., 1996). Figure 1 presents an abstract view of
generality, neutrality with respect to any specific these macro-architecture design patterns.
application domain, broad availability, parity to The CLIENT-SERVER pattern supports main-
the quality attribute at hand, suitability of the tainability. For example, a server or resources on
context and the forces (where available), and the the server-side could be modified without impact-
reputation of the authors. ing the client. Also, a single server can support
Often, a pattern is referred to by its name. multiple clients simultaneously, or a client could
In the following, the name of a pattern is listed make simultaneous requests for resources residing
in uppercase in order to distinguish it from the on multiple servers. For instance, an extensible
main text. markup language (XML) document could be

Figure 1. A view of the macro-architecture design patterns in the development of Web applications

0
Using Patterns for Engineering High-Quality Web Applications

located on one server while an image graphic on reliability design


another and a cascading style sheet (CSS) docu-
ment on yet another. For addressing reliability (specifically, avail-
The APPLICATION SERVER pattern also ability) concerns, the macro-architecture design
supports maintainability; it isolates the Web ap- of server-side components of a Web applica-
plication from other aspects on the server-side tion could use a number of available patterns
such that the communication between the ap- (Ahluwalia & Jain, 2006). For example, extra
plication itself and the Web server takes place measures (unrelated to the functionality of the
via the SINGLE POINT OF ACCESS (Yoder & Web application) to support the availability of a
Barcalow, 1997) pattern. This separation allows Web application could be included by using the
the Web application to evolve independently. INTRODUCE REDUNDANCY pattern, and if
The separation of structure of content in a and when the need arises, a failure message could
markup document from its presentation is one be relayed using the FAILURE NOTIFICATION
of the principles of Web Architecture (Jacobs pattern. In retrospect, redundancy also increases
& Walsh, 2004). By adopting this principle and maintenance responsibilities.
an appropriate use of MVC, leads to a separa-
tion of semantically-different aspects into three Micro-Architecture Design of Web
components, namely model, view, and control- Applications
ler, and a theoretical minimization of coupling
between those components. Thus, modifications The micro-architecture design is the place where
to one component are localized and the propaga- low-level design decisions that must be easily
tion of changes to other components is minimal. implemented are cast. In the following, we will
Furthermore, the same model in a MVC could focus only on the design aspects that impact
also be used with multiple views and multiple pragmatic quality. As such, our attention is geared
controllers. For example, the same information more towards client-side rather than server-side
could be transformed and delivered to different concerns.
browser environments or user needs. This in- Interaction design (Preece, Rogers, & Sharp,
variably improves the maintainability of a Web 2002) is an approach to the design of interactive
application. systems that focuses on the human as well as
We note that a true separation of model, view, the computer aspects. Its goal is to make both
and controller at the macro-architecture level alone content and user interfaces useful, easy-to-use,
is hard to realize in practice. In an object-oriented and enjoyable. Many of the patterns available for
environment, it is with the help of micro-archi- interaction design in general (Tidwell, 2005) are
tecture design patterns (Gamma et al., 1995) such also applicable to Web applications.
as OBSERVER, COMPOSITE, and STRATEGY, We now consider three major interaction design
that a separation is achieved. aspects of Web applications, namely information
There are several implementations of MVC design, navigation design, and search design.
available in a variety of programming languages The discussion is essentially independent of any
such as Java and PHP Hypertext Preprocessor specific domain.
(PHP), and application frameworks like Asynchro-
nous JavaScript and XML (AJAX) (Mahemoff, Information design
2006) and Rails (Tate & Hibbs, 2006).
Information design is concerned with the structure
and behavior of the information served to the user.

0
Using Patterns for Engineering High-Quality Web Applications

The heterogeneity of information is pervasive the same information. Specifically, information


in Web applications. It is often the case that the in these views could be presented (Tidwell, 2005)
information presented on a single Web Page is in TWO-PANEL SELECTOR pattern when we
aggregated from several sources. For example, have two different views that are to be presented
the Home Page of a news organization served simultaneously, or CLOSABLE PANELS or
from the main source may include a latest news CARD STACK patterns when we have several
ticker from one server and weather information different views to be presented in such as way that
from another server, the stock market information only one view is visible at a time in each panel or
from a financial Web Service, and periodically stack, respectively.
changing advertisements from yet another source. Tables are often used to structure information
This can be systematically realized by the use of in two dimensions. However, the presence of many
the WHOLE-PART pattern (Buschmann et al., columns (or multiple lines to a row) can adversely
1996), which enables a hierarchical organization affect readability, as it becomes increasingly
of objects. Since each of these objects can be hard to separate the entries visually. The ROW
modified or replaced independently, the WHOLE- STRIPING pattern (Tidwell, 2005) suggests the
PART pattern supports maintainability. Also, use of two similar shades to alternately color the
since a part can correspond to more than one backgrounds of the table rows.
whole, the WHOLE-PART pattern also sup- Now, documents in a Web application may
ports reusability. However, multiple indirections contain images for presenting some information
stemming from client requests and responses for such as the corporate logo or product pictures.
fulfilling them can lead to a loss of performance, The FAST-DOWNLOADING IMAGES pattern
particularly when each part itself is structured suggests creation of images optimized for color
as WHOLE-PART. and size in an appropriate format, and thus aids
The classification of information is a con- accessibility and performance. The REUSABLE
ventional approach by humans to understanding IMAGES pattern suggests caching images that
information. The information organization pat- appear at multiple places in a Web application,
terns (Van Duyne, Landay, & Hong, 2003), when and thereby aids performance.
use appropriately, aid comprehensibility and us- To improve usability, there should be a provi-
ability. For example, the GRID LAYOUT pattern sion in the information design to support internal
that suggests the organization of information in a locus of control (thereby provide options to a user)
single document (Web Page) into a grid of rows and for users to recover, say, from inadvertent
and columns where every atomic information ele- errors. The MULTI-LEVEL UNDO pattern
ment is made to fit within this grid. The WHATS (Tidwell, 2005) provides a way to easily reverse
NEW PAGE pattern that provides newly added a series of actions performed by the user.
information to a Web application could include
the CHRONOLOGICAL ORGANIZATION Navigation design
pattern. A document in a Web application that
provides event proceedings could contains a list Navigation design concerned with the linear
of publications and/or their authors based on the or nonlinear traversal in information space for
ALPHABETICAL ORGANIZATION pattern. some purpose by a user. Usually, sophisticated
The users of a Web application can vary in intra- and inter-document navigation within the
their capabilities and preferences, and may find context of Web application is realized by the use
one view of information to be more usable than of hypermedia (Nelson, 1984).
another. The MIRRORWORLD pattern (German Over the years, various patterns for navigating
& Cowan, 2000) provides two or more views of through a Web Application have been proposed

0
Using Patterns for Engineering High-Quality Web Applications

(Lyardet & Rossi, 1998; Van Duyne, Landay, & Over the years, various patterns for searching
Hong, 2003). These navigation patterns, when Web applications have been proposed (Lyardet,
use appropriately, aid usability. For example, Rossi, & Schwabe, 1999; Van Duyne, Landay, &
the BREADCRUMBS pattern could be used to Hong, 2003). The searching patterns, when use
inform the user of his/her location and the FLY- appropriately, can aid performance. The use of
OUT MENU pattern could be used to present STRAIGHTFORWARD SEARCH FORMS with
content organized in a compound menu where a SIMPLE SEARCH INTERFACE that require
each menu item itself has a sub-menu. The FLY- minimal technical background on part of the user,
OUT MENU pattern could itself be arranged SELECTABLE SEARCH SPACE that can restrict
horizontally or vertically as suggested by the the search to a specific category, SELECTABLE
HORIZONTAL NAVIGATION or VERTICAL KEYWORDS that based on the past experience
NAVIGATION patterns (Marks & Hong, 2006), can suggest keywords for improving subsequent
respectively. The CLEAR ENTRY POINTS search results, and ORGANIZED SEARCH
pattern presents only a few entry points into the RESULTS that present a summary of the most
interfaces, which can restrict the navigation to a relevant search results, improve the effectiveness
specific category and make it task-oriented. of the searching activity.
Any navigation design must take exceptional
behavior into consideration to support usability. Examples
The SESSION pattern (Weiss, 2003) can help
maintain the state of the Web application in the Figure 2 gives an abstract illustration of some of
event of an interruption of navigation flow. The the interaction design patterns mentioned previ-
MISSING LINK pattern (German & Cowan, ously. The numbers indicate the order of applica-
2000) informs the user that certain hyperlink tion and the FLY-OUT MENU items are shown
does not exist and suggests alternatives. in dashed lines to exemplify non-permanence (as
There are navigation design patterns that aid the items hide-and-show and are on the canvas
comprehensibility (Tidwell, 2005). For example, only temporarily). Since, in general, many of the
the WIZARD pattern leads the user through the patterns (such as those that are behavioral) in the
interface step by step for carrying out tasks in a pre- development of Web applications are not visual
scribed order. The RESPONSIVE DISCLOSURE in nature, Figure 2 is not representative but rather
pattern starts with a very minimal interface, and presents only one view.
guides a user through a series of steps by showing Figure 3 gives a concrete example of the use of
more of the interface as the user completes each some interaction design patterns in the Products
step. These two patterns could, for example, be Page at Adobe Systems. A close examination
used for carrying out a registration process. can lead to the discovery of other patterns not
highlighted in the snapshot (to prevent crowd-
search design ing) or even to other patterns not mentioned in
this chapter.
Search design is concerned with the ease, rele-
vancy, and speed of finding information requested Feasibility of Selecting and Applying
by a user. Searching is not native to Web applica- Patterns
tions, but has become ever more challenging as
the amount of information to be searched through The adoption and subsequent deployment of pat-
increases. terns needs to be viable. The challenges in the
patterns selection process stem from a variety
of factors that we now discuss.

0
Using Patterns for Engineering High-Quality Web Applications

Figure 2. A collection of interaction design patterns in the development of Web applications

Figure 3. An assembly of some interaction design patterns in the development of Web applications

availability of patterns that there be design and implementation patterns


that can sufficiently map the solution space.
For an adoption of a pattern-based approach to the There is no a priori guarantee that for every quality
development of Web applications, it is important related problem there will be suitable pattern(s)
available to solve it.


Using Patterns for Engineering High-Quality Web Applications

locatability of patterns There are some patterns that may be classified into
familiar categories (like structural or behav-
Even when it is ascertained that for a given prob- ioral) while others may be presented as a linear
lem, a pattern does exist, that pattern needs to and loosely related collection. These collections
be located. There are a few obstacles in locating may be only print-based (say, in books), be only
desirable patterns, of which representation and electronically-based (say, on the Web), but may
classification of patterns are critical. only rarely be a combination thereof. In spite of
Representation. There is at present no unique some isolated efforts, patterns are currently also
way of representing patterns. There are a variety of not organized by quality attributes. This could
notations with varying degree of formality in use adversely impact the task of locating desirable
for representing patterns. Furthermore, the qual- patterns (Segersthl & Jokela, 2006).
ity of representing patterns varies significantly.
Not all patterns make proper use of mandatory cost of selecting patterns
elements of a pattern, while others make seldom
use of optional elements. It has been pointed out One of the benefits of pattern solutions is con-
(Meszaros & Doble, 1998) that the name assigned ceptual reuse. However, reuse of any knowledge,
to a pattern by its author is crucial. However, including the use of patterns in the development
there are some patterns that have obtuse rather of Web applications, is neither automatic, nor
than evocative names (Meszaros & Doble, 1998) free. There is a cost in terms of time, effort, and
that may not be familiar to a typical reader. Also, resources of learning and adaptation involved in
there are patterns similar or same names but se- any reuse (Boehm et al., 2001), and patterns are
mantically different functionality, and patterns in no exception.
different collections with similar intent or func- For example, there is a learning curve involved
tionality but with different names. For example, in aspects such as understanding the pattern de-
the EASY UNDO pattern from one collection scription at large, checking if and how accurately
(Rossi, Lyardet, & Schwabe, 2000) is similar to the context of the pattern matches with that of the
the MULTI-LEVEL UNDO pattern from another problem of the Web application under develop-
collection (Tidwell, 2005). These patterns may ment at hand, and the constraints under which
have been (re)discovered independently. the solution suggested by the pattern exists. The
Classification. There is currently no unique trade-offs and consequences associated with the
classification scheme for organizing patterns.

Figure 4. Patterns help the engineering of large-scale Web applications, and conversely, Web applica-
tions help the distribution of patterns to it's global community of users


Using Patterns for Engineering High-Quality Web Applications

solution proposed by the pattern can help deter- patterns for designing Web applications and
mine the suitability of the solution with respect make them publicly available. This collection,
to the required time, effort, and resources. It is namely Patterns for Web Applications (PWA),
crucial that the team responsible for the Web ap- would explicitly acknowledge original sources,
plication must have the knowledge and skills to be navigable, searchable, and evolvable. Users of
be able to understand the constraints of a pattern, P4W4P would have context-dependent help and
including the forces that must be overcome to opportunities for feedback available to them at all
implement a pattern in the available technolo- times. P4W4P would also provide maintenance
gies-of-choice. facilities such as modifying the information of an
In general, patterns can be related in many existing pattern and adding/deleting a pattern. The
ways. We discuss two cases here. The application access to these administrative services would be
of a pattern may require that certain pattern(s) restricted. Moreover, P4W4P would apply PWA to
have already been applied (similar to a pre- itself. In other words, P4W4P would help PWA,
condition(s)). Also, the application of a pattern and in turn, PWA would help P4W4P. Figure 4
places the system under development in a new illustrates this symbiosis.
context (similar to a post-condition(s)). Indeed, An initial, albeit informal and elementary,
due to such context-driven relationships among feasibility study for P4W4P was performed. The
them, the use of one pattern can necessitate the development of P4W4P followed an instance of
use of other pattern(s). That means, the decision UP with minor variations such as more emphasis
of selecting patterns cannot be singular; it must on NFRs and on interaction design, and less on
take into account the application of patterns as a lengthy documentation. Based on instructors
collective that is usually a directed acyclic graph formative assessment, some of these deliverables
(DAG). were revisited and revised for compliance with
future submissions. Many of the patterns men-
poWEm in software Engineering tioned previously were included in PWA and used
Education during the development of P4W4P.

POWEM at present has been put into practice in Learning Implications


academia only. In this section, we briefly describe
one experience of integrating patterns in software The reactions and learning outcomes of students
engineering education. at the end of P4W4P were mixed. In general, the
Under authors supervision, a lightweight students found the P4W4P experience to be worth-
variation of POWEM was followed in a software while. However, they also faced and overcame
engineering course project titled Patterns for various challenges. The students initially found
Web, Web for Patterns (P4W4P): A Pattern Man- the notion of a pattern rather abstract and hard to
agement System. P4W4P was given in multiple comprehend, particularly when it was introduced
undergraduate- and graduate-level courses, each in a domain-independent fashion, but stimulating
spanning about four months, and was carried out once exposed to real-world examples. They found
by multiple teams of size 10 or so. the selection from a large number of patterns and
The basic idea of P4W4P was the following. application of seemingly similar patterns available
The evolution of the Web coincides with the as- on certain topics to be, at times, overwhelming.
cent of patterns, and the crosspollination of the On the other hand, this made them appreciate
two has proven fruitful. P4W4P would include the necessity of a well-designed navigation and
a cohesive and carefully selected collection of precise searching in P4W4P. The students found


Using Patterns for Engineering High-Quality Web Applications

that, in some cases, the descriptions of certain potential directions of poWEm


patterns were inadequate (such as absence of Evolution
some mandatory elements) in order for them to
make an informed decision about their selection. The evolution of POWEM is motivated (but not
In retrospect, this also helped them rediscover necessarily mandated) by the directions of evolu-
and include certain key aspects such as the context tion of the Web. POWEM can be extended in at
of pattern when creating the pattern base PWA. least two orthogonal directions.
For patterns to continue being useful as enti- One possible extension of the model presented
ties of knowledge (May & Taylor, 2003), they in Table 1 is increasing the granularity of the qual-
must be adequately described and documented, ity attributes at the level Pragmatic-Tier 1, and
readily available and findable, and evolve with thereby adding another level (say, Tier 0) under-
the needs of the Web application. In other words, neath it. In that case, for example, fault tolerance
the efforts towards improving the quality of Web and availability could be two quality attributes
applications will inevitably depend on the quality that belong to the level Pragmatic-Tier 0.
of patterns themselves. In retrospect, this makes Other possible extensions of the model are the
early initiatives like P4W4P only natural. use of patterns for improving higher- or lower-
level semiotic quality concerns.
poWEm in perspective
Patterns in Social Web Engineering
It is obvious that POWEM is not absolute in its
realization. Indeed, the discussion on the fea- In recent years, the pseudonym Web 2.0 (OReilly,
sibility of each of the steps in POWEM places 2005) has been used to describe the apparent
constraints and invariably determines the scope humanization and socialization of the Web
of POWEM. as it moves towards becoming a means of partici-
POWEM also does not come with an explicit pation and collaboration. An elaboration of the
guarantee of an improvement in quality. It is social level of Table 1 could help towards accom-
expected that engineers must be trained to make modating applications for Web 2.0. For example,
appropriate use of patterns, which often comes one extension of interest would be addressing
with experience. For example, not being able to the social quality concerns, namely credibility,
understand the context in which a problem oc- legality, privacy, and security.
curs can lead to a misapplication of the solution A mature collection of patterns for addressing
of the pattern and hence a non-optimal or even credibility concerns pertaining to Web applica-
undesirable result. tions (Kamthan, 2007) are yet be discovered.
It is known that to improve is to be able to However, patterns for legality (specifically,
measure. However, there is currently a lack of licensing) (Kaminski & Perry, 2007; Perry &
established metrics to quantify an improvement Kaminski, 2005), patterns for privacy (Hafiz,
in quality via the use of patterns for any class of 2006; Romanosky et al., 2006; Van Duyne, Lan-
applications. day, & Hong, 2003; Weiss, 2003) and security
(Schumacher et al., 2006; Van Duyne, Landay,
& Hong, 2003; Weiss, 2003) have been proposed
fuTurE TrENds recently.
Since steps taken towards the aforementioned
The work presented in this chapter can evolve in social quality concerns are not always favorable
a few different directions, which we now briefly to usability, care would need to be taken in se-
discuss.


Using Patterns for Engineering High-Quality Web Applications

lecting and applying these patterns in the devel- to come to a realization, however, the efforts
opment of Web applications. Furthermore, such towards a systematic approach towards address-
extensions would also require that the aspects of ing the quality of ontologies for the Semantic
micro-architecture design to which the patterns Web (Burton-Jones et al., 2005) and patterns for
are applied, are essentially different than those developing ontologies (Gangemi, 2005) will be
dealt with in this chapter. For example, in case crucial.
of applying patterns for privacy and security, the For the sustainability of the architecture of
attention would be more on the server-side rather the Web and for the sake of mutual benefit, it is
than on client-side components. essential that the extensions of the Web evolve har-
monically. Therefore, the Semantic Web initiative
Patterns in Semantic Web Engineering and the Social Web efforts such as Web 2.0 need
to co-exist (Lassila & Hendler, 2007; Shadbolt,
The original goal of the Web was the invention Hall, & Berners-Lee, 2006). This will inevitably
of a medium for both human- and machine-con- be crucial for the evolution of POWEM and for
sumption of information. This vision, particularly the newer generation of Web applications.
the latter, however, has not been completely real-
ized yet. anti-patterns for quality of Web
The Semantic Web has recently emerged as applications
an extension of the current Web that adds tech-
nological infrastructure for better knowledge An anti-pattern (Brown et al., 1998) is defined as
representation, interpretation, and reasoning a combination of two aspects. First, for a recur-
(Hendler, Lassila, & Berners-Lee, 2001). It thus ring problem in a given context, there is a solution
makes information far more amenable to ma- such that if this solution is applied, the system
chine-consumption than that is possible within is placed in a state worse than it was previously.
the current Web. Second, to ameliorate this, the negative solution
An ontology is an explicit formal specification is refactored to a positive solution. If a pattern
of a conceptualization that consists of a set of reflects a best practice, then an anti-pattern
concepts in a domain and relations among them reflects a lesson learned (Appleton, 1997).
(Gruber, 1993). Ontologies provide precise means A pattern applied to an inappropriate context
of representing knowledge and, arguably, form one can compromise the benefit it offers and give the
of the most important layers in the Semantic Web appearance of an anti-pattern. For example, pat-
infrastructure. By enabling better (perhaps even terns that suggest solutions involving the use of
intelligent) opportunities for organization and color will not be applicable in situations where
inferencing from given information (via naviga- the underlying monitor does not support it (such
tion or searching), ontologies can play a crucial as when the screen is monochrome) or the user
role in Web Engineering of the future (Kamthan is color blind.
& Pai, 2006). There is currently an apparent lack of stable
In other words, pattern-oriented Semantic and mature collection of anti-patterns for Web
Web Engineering, when practiced well, could applications. However, there is much negative
spawn a new generation of Web applications that guidance available such as for establishing trust
are developed by taking past, present, and future (Sillence et al., 2006) that could be captured and
into consideration. An elaboration of the semantic structured as anti-patterns for Web applications.
level of Table 1 could help towards accommodat- This will inevitably strengthen POWEM.
ing applications for the Semantic Web. For that


Using Patterns for Engineering High-Quality Web Applications

patterns for mobile Web Engineering ment life cycle and maintenance of high-quality
Web applications.
The use of mobile devices continues to increase In conclusion, patterns provide the rigor
and the future of mobile applications appears necessary for Web Engineering to mature as an
promising. A pattern-oriented systematic ap- engineering discipline. They provide a practi-
proach for a development of mobile applications cal and preventative (rather than curative) means
would be of interest. There have been initiatives to addressing the quality of Web applications, if
for addressing the quality (Spriestersbach & they are located, adopted and applied with care,
Springer, 2004) and patterns proposed for the taking feasibility issues into consideration. By
development of mobile applications (Ahlgren & adopting and investing in a user- and quality-cen-
Markkula, 2005; Ballard, 2007; Roth, 2002). tric and pattern-oriented approach as manifested
However, recasting POWEM for mobile in POWEM, all stakeholders can benefit in the
applications would neither be trivial, nor auto- long-term.
matic. The constrained environment of mobile
applications is uniquely different from that of the
stationary (desktop) applications (Ocampo et al., acKNoWlEdGmENT
2003), and must to be taken into consideration.
The author would like to thank his students for
their dedicated participation in P4W4P, and the
coNclusIoN reviewers for their feedback and suggestions for
improvement.
The society has increasingly become dependent
upon the services provided by Web applications. If
the surveys are any indication, this trend is likely rEfErENcEs
to continue. However, the services provided by
a Web application may not be unique: for a pro- Ahlgren, R., & Markkula, J. (2005, June 13-15).
ducer, this means competition; for a consumer, Design patterns and organisational memory in
this means choice. Therefore, for a Web applica- mobile application development. Paper presented
tion, meeting stakeholder expectations of high at the Sixth International Conference on Product
quality is not only a reflection of the ethical and Focused Software Process Improvement (PRO-
moral obligation of its products but an imperative FES 05), Oulu, Finland.
for its survivability.
Ahluwalia, K. S., & Jain, A. (2006, October 21-23).
The demands and expectations from users
High availability design patterns. Paper presented
of Web applications over the last decade have
at the 13th Conference on Pattern Languages of
evidently had an impact on how these systems
Programs (PLoP 06), Portland, USA.
have been developed. Indeed, the development
environment of Web applications is constantly Ballard, B. (2007). Designing the mobile user
facing technological and social challenges posed experience. John Wiley and Sons.
by new implementation languages, variations in
Beck, K., & Andres, C. (2005). Extreme program-
user agents, demands for new services, and user
ming explained: Embrace change (2nd Edition).
classes from different cultural backgrounds, age
Addison-Wesley.
groups, and capabilities. This motivates the need
for a methodical approach towards the develop- Beck, K., Crocker, R., Meszaros, G., Vlissides,
J., Coplien, J. O., Dominick, L., & Paulisch, F.


Using Patterns for Engineering High-Quality Web Applications

(1996, March 25-29)). Industrial experience with Firesmith, D., & Henderson-Sellers, B. (2002).
design patterns. Paper presented at the 18th In- The OPEN process framework: An Introduction.
ternational Conference on Software Engineering Addison-Wesley.
(ICSE 1996), Berlin, Germany.
Gamma, E., Helm, R., Johnson, R., & Vlissides,
Boehm, B. W., Abts, C., Brown, A. W., Chulani, J. (1995). Design patterns: Elements of reusable
S., Clark, B. K., Horowitz, E., Madachy, R., Reifer, object-oriented software. Addison-Wesley.
D., & Steece, B. (2001). Software cost estimation
Garzotto, F., Paolini, P., Bolchini, D., & Valenti,
with COCOMO II. Prentice Hall.
S. (1999, November 15-18). Modeling-by-pat-
Boehm, B., & Turner, R. (2004). Balancing agil- terns of Web applications. Paper presented at
ity and discipline: A guide for the perplexed. the International Workshop on the World Wide
Addison Wesley. Web and Conceptual Modeling (WWWCM 99),
Paris, France.
Brajnik, G. (2001, June 4-6). Towards valid qual-
ity models for Web sites. Paper presented at the German, D. M., & Cowan, D. D. (2000, January
Seventh Conference on Human Factors and the 4-7). Towards a unified catalog of hypermedia
Web (HFWeb 01), Madison, USA. design patterns. Paper presented at the 33rd Ha-
waii International Conference on System Sciences
Brown, W. J., Malveau, R. C., McCormick, H. W.,
(HICSS 00), Maui, USA.
& Mowbray, T. J. (1998). AntiPatterns: Refactor-
ing software, architectures, and projects in crisis. Gilb, T. (1988). Principles of software engineering
John Wiley and Sons. management. Addison-Wesley.
Burton-Jones, A., Storey, V. C., Sugumaran, V., Gillenson, M., Sherrell, D. L., & Chen, L. (2000).
& Ahluwalia, P. (2005). A semiotic metrics suite A Taxonomy of Web site traversal patterns and
for assessing the quality of ontologies. Data and structures. Communications of the AIS, 3(4),
Knowledge Engineering, 55(1), 84-102. 2000.
Buschmann, F., Meunier, R., Rohnert, H., Som- Ginige, A., & Murugesan, S. (2001). Web en-
merlad, P., & Stal, M. (1996). Pattern oriented gineering: An introduction. IEEE Multimedia,
software architecture, volume 1: A system of 8(1), 14-18.
patterns. John Wiley and Sons.
Graham, I. (2003). A pattern language for Web
Coda, F., Ghezzi, C., Vigna, G., & Garzotto, F. usability. Addison-Wesley.
(1998, April 16-18). Towards a software engineer-
Gruber, T. R. (1993). Toward principles for the
ing approach to Web site development. Paper
design of ontologies used for knowledge sharing.
presented at the Ninth International Workshop on
In N. Guarino & R. Poli (Eds.) Formal ontology
Software Specification and Design (IWSSD-9),
in conceptual analysis and knowledge representa-
Ise-shima, Japan.
tion. Kluwer Academic Publishers.
Dustin, E., Rashka, J., & McDiarmid, D. (2001).
Hafiz, M. (2006, October 21-23). A Collection
Quality Web systems: Performance, security, and
of privacy design patterns. Paper presented at
usability. Addison-Wesley.
the 13th Conference on Pattern Languages of
Fenton, N. E., & Pfleeger, S. L. (1997). Software Programs (PLoP 06), Portland, USA.
metrics: A rigorous & practical approach. Inter-
Hasan, L. R., & Abuelrub, E. (2006, June 19-
national Thomson Computer Press.
21). Criteria for evaluating quality of Websites.


Using Patterns for Engineering High-Quality Web Applications

Paper presented at the Sixth IBIMA Conference Kappel, G., Prll, B., Reich, S., & Retschitzeg-
on Managing Information in Digital Economy, ger, W. (2006). Web engineering. John Wiley
Bonn, Germany. and Sons.
Henderson-Sellers, B., Lowe, D., & Haire, B. Kendall, E. A. (1998). Utilizing patterns and pat-
(2002). OPEN process support for Web develop- tern languages in education. Annals of Software
ment. Annals of Software Engineering, 13(1-4), Engineering, 6(1-4), 281-294.
163-201.
Kruchten, P. (2004). The rational unified process:
Hendler, J., Lassila, O., & Berners-Lee, T. (2001). An introduction (Third Edition). Addison-Wes-
The Semantic Web. Scientific American, 284(5), ley.
34-43.
Kumar, K., & Welke, R. J. (1992). Methodology
Highsmith, J. (2002). Agile software development engineering: A proposal for situation-specific
ecosystems. Addison-Wesley. methodology construction. In W. W. Cotterman
& J. A. Senn (Eds.), Challenges and strategies for
Jacobs, I., & Walsh, N. (2004). Architecture of the
research in systems development, (pp, 257-269).
World Wide Web, volume one. W3C Recommenda-
John Wiley and Sons.
tion. World Wide Web Consortium (W3C).
Lassila, O., & Hendler, J. (2007). Embracing Web
Jacobson, I., Booch, G., & Rumbaugh, J. (1999).
3.0. IEEE Internet Computing, 11(3), 90-93.
The unified software development process. Ad-
dison-Wesley. Lindland, O. I., Sindre, G., & Slvberg, A. (1994).
Understanding quality in conceptual modeling.
Kaminski, H., & Perry, M. (2007, May 27-30).
IEEE Software, 11(2), 42-49.
Open source software licensing patterns. Paper
presented at the Sixth Latin American Conference Lyardet, F., & Rossi, G. (1998, August 11-14).
on Pattern Languages of Programming (Sugar- Patterns for designing navigable information
LoafPLoP 07), Porto de Galinhas, Brazil. spaces. Paper presented at the Fifth Conference
on Pattern Languages of Programs (PLoP 98),
Kamthan, P. (2007). Towards a systematic ap-
Monticello, USA.
proach for the credibility of human-centric Web
applications. Journal of Web Engineering, 6(2), Lyardet, F., Rossi, G., & Schwabe, D. (1999, July
99-120. 8-10)). Patterns for adding search capabilities
to Web information systems. Paper presented
Kamthan, P. (2008). Patterns for improving the
in the Fourth European Conference on Pattern
pragmatic quality of Web information systems.
Languages of Programming and Computing
In C. Calero, M. . Moraga, & M. Piattini
(EuroPLoP 1999), Irsee, Germany.
(Eds.), Handbook of research on Web informa-
tion systems quality. Hershey, PA: Idea Group Mahemoff, M. (2006). Ajax design patterns.
Publishing. OReilly Media.
Kamthan, P., & Pai, H.-I. (2006, May 21-24). Se- Manolescu, D., & Kunzle, A. (2001, September
mantic Web-enabled Web engineering: The case 11-15). Several patterns for eBusiness applica-
of patterns. Paper presented at the Seventeenth tions. Paper presented at the Eighth Conference
Annual Information Resources Management As- on Pattern Languages of Programs (PLoP 01),
sociation International Conference (IRMA ;06), Monticello, USA.
Washington, D.C.


Using Patterns for Engineering High-Quality Web Applications

May, D., & Taylor, P. (2003). Knowledge Man- ing wireless Internet services. IEEE Transactions
agement with Patterns. Communications of the on Software Engineering, 29(12), 1122-1134.
ACM, 46(7), 94-99.
Offutt, J. (2002). Quality attributes of Web soft-
McPhail, J. C., & Deugo, D. (2001, June 4-7). ware applications. IEEE Software, 19(2), 25-32.
Deciding on a pattern. Paper presented at the
Olsina, L., & Rossi, G. (2002). Measuring Web
14th International Conference on Industrial and
application quality with WebQEM. IEEE Multi-
Engineering Applications of Artificial Intelligence
media, 9(4), 20-29.
and Expert Systems (IEA/AIE 2001). Budapest,
Hungary. OReilly, T. (2005). What is Web 2.0: Design
patterns and business models for the next genera-
Mendes, E., & Mosley, N. (2006). Web engineer-
tion of software. OReilly Network, September
ing. Springer-Verlag.
30, 2005.
Meszaros, G., & Doble, J. (1998). A pattern
Paulk, M. C., Weber, C. V., Curtis, B., & Chris-
language for pattern writing. In R. C. Martin,
sis, M. B. (1995). The capability maturity model:
D. Riehle, & F. Buschmann (Eds.). Pattern lan-
Guidelines for improving the software process.
guages of program design 3. Addison-Wesley,
Addison-Wesley.
(pp 529-574).
Perry, M., & Kaminski, H. (2005, July 6-19). A
Mich, L., Franch, M., & Gaio, L. (2003). Evaluating
pattern language of software licensing. Paper
and designing Web Site quality. IEEE Multimedia.
presented at the Tenth European Conference on
10(1), 34-43.
Pattern Languages of Programs (EuroPloP 05),
Montero, F., Lpez-Jaquero, V., & Molina, J. Irsee, Germany.
P. (2003, September 1-2). Improving e-Shops
Pertet, S. M., & Narasimhan, P. (2005). Causes
environments by using usability patterns. Paper
of failure in Web applications. PDL Technical
presented at the Second Workshop on Software
Report PDL-CMU-05-109. Carnegie Mellon
and Usability Cross-Pollination, Zrich, Swit-
University, Pittsburgh, USA.
zerland.
Powell, T. A., Jones, D. L., & Cutts, D. C. (1998).
Montero, F., Lozano, M., & Gonzlez, P. (2002,
Web site engineering. Prentice-Hall.
August 5-7). Designing Web sites by using design
patterns. Paper presented at the Second Latin Perzel, K., & Kane, D. (1999, August 15-18).
American Conference on Pattern Languages Usability patterns for applications on the World
of Programming (SugarLoafPLoP 02), Rio de Wide Web. Paper presented at the Sixth Confer-
Janeiro, Brazil. ence on Pattern Languages of Programs (PLoP
99), Monticello, USA.
Nelson, T. H. (1984). Literary machines. Mind-
ful Press. Preece, J., Rogers, Y., & Sharp, H. (2002). Interac-
tion design: Beyond human-computer interaction.
Nguyen, H. Q., Johnson, R., & Hackett, M. (2003).
John Wiley and Sons.
Testing applications on the Web: Test planning for
mobile and Internet-based systems (2nd Edition). Romanosky, S., Acquisti, A., Hong, J., Cranor, L.
John Wiley and Sons. F., & Friedman, B. (2006, October 21-23). Privacy
patterns for online interactions. Paper presented
Ocampo, A., Boggio, D., Mnch, J., & Palladino,
at the 13th Conference on Pattern Languages of
G. (2003). Towards a reference process for develop-
Programs (PLoP 06), Portland, USA.


Using Patterns for Engineering High-Quality Web Applications

Ross, M. (2002). Quality in Web design for visu- Selmi, S. S., Kraem, N., & Ghzala, H. H. B.
ally impaired users. Software Quality Journal, (2005, July 27-29). Toward a comprehension view
10(4), 285-298. of Web engineering. Paper presented at the Fifth
International Conference on Web Engineering
Rossi, G., & Koch, N. (2002, July 3-7). Patterns
(ICWE 05), Sydney, Australia.
for adaptive Web applications. Paper presented
at the Seventh European Conference on Pattern Shadbolt, N., Hall, W., & Berners-Lee, T. (2006).
Languages of Programs (EuroPLoP 02). Irsee, The Semantic Web revisited. IEEE Intelligent
Germany. Systems, 21(3), 96-101.
Rossi, G., Lyardet, F. D., & Schwabe, D. (1999). De- Sillence, E., Briggs, P., Harris, P, & Fishwick,
veloping hypermedia applications with methods L. (2006). A framework for understanding trust
and patterns. ACM Computing Surveys. 31(4es). factors in Web-based health advice. Interna-
tional Journal of Human-Computer Studies, 64,
Rossi, G., Lyardet, F., & Schwabe, D. (2000, July
697-713.
5-9). Patterns for E-commerce applications. Paper
presented at the Fifth European Conference on Simon, H. (1996). The Sciences of the Artificial
Pattern Languages of Programs (EuroPLoP 2000), (3rd Edition). The MIT Press.
Irsee, Germany.
Spriestersbach, A., & Springer, T. (2004). Quality
Rossi, G., Pastor, O., Schwabe, D., & Olsina, L. attributes in Mobile Web Application Develop-
(2008). Web engineering: Modelling and imple- ment. In F. Bomarius & H. Iida (Eds.). Product
menting Web applications. Springer-Verlag. Focused Software Process Improvement. (pp.
120-130).Springer-Verlag.
Rossi, G., Schwabe, D., & Lyardet, F. (1999, May
11-14). Improving Web information systems with Stamper, R. (1992, October 5-8). Signs, Organi-
navigational patterns. Paper presented at the zations, Norms and Information Systems. Paper
Eighth International World Wide Web Conference presented at the Third Australian Conference on
(WWW8), Toronto, Canada. Information Systems, Wollongong, Australia.
Roth, J. (2002). Patterns of mobile interaction. Tate, B. A., & Hibbs, C. (2006). Ruby on Rails:
Personal and Ubiquitous Computing. 6(4), 282- Up and Running. OReilly Media.
289.
Tidwell, J. (2005). Designing interfaces: Pat-
Schmidt, D. C., Stal, M., Rohnert, H., & Busch- terns for effective interaction design. OReilly
mann, F. (2000). Pattern-oriented software archi- Media.
tecture, Volume 2: Patterns for concurrent and
Van Duyne, D. K., Landay, J., & Hong, J. I.
networked objects. John Wiley and Sons.
(2003). The design of sites: Patterns, principles,
Schumacher, M., Fernandez-Buglioni, E., Hy- and processes for crafting a customer-centered
bertson, D., Buschmann, F., & Sommerlad, P. Web experience. Addison-Wesley.
(2006). Security patterns: Integrating security
Vijayaraghavan, G. V. (2003). A taxonomy of E-
and systems engineering. John Wiley and Sons.
commerce risks and failures. Masters Thesis.
Segersthl, K., & Jokela, T. (2006, April 22-27). Florida Institute of Technology. Melbourne,
Usability of interaction patterns. Paper presented USA.
at the CHI 2006 Conference on Human Factors in
Wallace, D., Raggett, I., & Aufgang, J. (2002).
Computing Systems, Montral, Canada.
Extreme programming for Web projects. Ad-
dison-Wesley.

0
Using Patterns for Engineering High-Quality Web Applications

Weiss, M. (2003, September 8-12). Patterns for on Software and Usability Cross-Pollination,
Web applications. Paper presented at the Tenth Zrich, Switzerland.
Conference on Pattern Languages of Programs
Yoder, J., & Barcalow, J. (1997, September 3-5).
(PLoP 03), Urbana, USA.
Architectural patterns for enabling application
Wentzlaff, I., & Specker, M. (2006, July 10). security. Paper presented at the Fourth Confer-
Pattern based development of user friendly Web ence on Pattern Languages of Programs (PLoP
applications. Paper presented at workshop on 1997), Monticello, USA.
Model-Driven Web Engineering (MDWE 06),
Ziemer, S., & Stlhane, T. (2004, July 27). The
Palo Alto, CA, USA..
use of trade-offs in the development of Web ap-
Wesson, J., & Cowley, L. (2003, September 1-2). plications. Paper presented at the International
Designing with patterns: Possibilities and pit- Workshop on Web Quality (WQ 2004). Munich,
falls. Paper presented at the Second Workshop Germany.


Using Patterns for Engineering High-Quality Web Applications

appENdIx

Table 2 summarizes the patterns mentioned in this chapter. It clearly reflects that the mapping between
patterns and quality attributes is many-to-many. The following rating scheme is used: a (+) label adja-
cent a pattern name reflects a positive impact on the corresponding quality attribute, whereas a () label
reflects a negative impact. The list of patterns is subject to evolution. (The purpose of the chapter was
not to provide a definitive list of patterns or point out every single pattern for a given quality attribute.)
The rating scheme can also evolve to become more granular.

Table 2. Pragmatic quality attributes of a Web application and corresponding patterns with ratings

Pragmatic Quality Attribute Pattern(s)


Comprehensibility ALPHABETICAL ORGANIZATION (+) CHRONOLOGICAL ORGANIZATION
(+) RESPONSIVE DISCLOSURE (+)
WIZARD (+)
Maintainability APPLICATION SERVER (+)
CLIENT-SERVER (+)
INTRODUCE REDUNDANCY ()
MODEL-VIEW-CONTROLLER (+)
WHOLE-PART (+)
Performance FAST-DOWNLOADING IMAGES (+)
ORGANIZED SEARCH RESULTS (+)
SELECTABLE KEYWORDS (+)
SELECTABLE SEARCH SPACE (+)
SIMPLE SEARCH INTERFACE (+) STRAIGHTFORWARD SEARCH FORMS (+)
WHOLE-PART ()
Readability FLY-OUT MENU (+)
GRID LAYOUT (+)
HORIZONTAL NAVIGATION (+)
VERTICAL NAVIGATION (+)
ROW STRIPING (+)
Reliability FAILURE NOTIFICATION (+)
INTRODUCE REDUNDANCY (+)
Usability BREADCRUMBS (+)
CARD STACK (+)
CLEAR ENTRY POINTS (+)
CLOSABLE PANELS (+)
FAST-DOWNLOADING IMAGES (+)
MISSING LINK (+)
MIRRORWORLD (+)
MULTI-LEVEL UNDO (+)
SESSION (+)
TWO-PANEL SELECTOR (+)
WHATS NEW PAGE (+)




Chapter VII
Component-Based Deployment
for Web Applications:
Experiences with Duct Tape and Glue

Kevin Gary
Arizona State University, USA

Harry Koehnemann
Arizona State University, USA

aBsTracT

The software engineering community touts component-based software engineering as a solution for
many of its woes including reducing cycle time, reducing costs, increasing productivity, allowing easier
integration to name just a few. Indeed, many Web-based systems are now built with open-source and
vendor provided component technologies. While these advances have led to improvements in the de-
velopment process, they have also led to a great deal of pressure on downstream processes as these
systems must be deployed, tuned, and supported. The complexities in deploying and supporting com-
ponent-based software for distributed and Web-based applications are not understood in the academic
or professional communities. This chapter stresses the need for addressing this problem by presenting
component-based software for Web applications from a deployment perspective, characterizing the is-
sues through real-world experiences with highly component-based applications, and presents strategies
and directions for the community to pursue.

INTroducTIoN aNd moTIvaTIoN AJAX, and so on. These discussions are de-
served, and show the rapid pace at which the
Discussion of the engineering of modern Web- understanding of engineering such applications
based systems inevitably focuses on many of has evolved. These technologies are realized
todays popular buzzwords such as services- through a proliferation of methods and frame-
oriented architecture (SOA), n-tier architecture works giving architects literally dozens of tools
patterns, lightweight and Agile methodologies, to construct applications to deploy on the Web.

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Component-Based Deployment for Web Applications

However, this chapter considers a topic that has More to the point, do we hear our application
not received fair attention or debate. That topic support personnel espousing the benefits of flex-
is the downstream issues and costs involved in ible and collaborating components as frequently
deploying (and redeploying) component-based as we hear from developers? Rhetorically the
software for distributed and Web-based applica- answer is no as the application support teams
tions. The main body of attention in Web-based members are too busy writing scripts, trying
software engineering is from point of view of the to understand deployment descriptors, figuring
architects and developers, with ample debate on out what component is in what package, discov-
the merits of methods, patterns, and frameworks. ering undocumented hidden dependencies in
While development teams tend to fall in love components by tracing through stack traces, and
with these technologies, adequate consideration finding a way to get the entire system talking in
is rarely given to the ramifications of supporting a particular Web application server production
them once the application is thrown over the environment.
wall to the application support team. The application support team, which includes
Component-based software engineering assemblers, deployers, and operators, cannot
(CBSE) is a relatively new driver in Web-based remain the forgotten partner for long. Configura-
software engineering and has enjoyed rapid ac- tion management, release management, testing,
ceptance in both industry and the research com- deployment, and other business functions will
munity. Spurred by the advent of distributed com- continue to raise issues related to CBSE:
puting via the Internet, academic institutions and
professional communities alike now teach, train, Configuration management (CM): The
and mentor in the well-founded principles of ob- componentization of the software system
ject-oriented design and programming, and extend means more possible permutations of com-
this model to coarser-grained component-based ponents (configurations) to manage and sup-
computing. Many (if not most) Web developers port. For systems of any size there can be an
today espouse the benefits of component-based explosion in permutations as development
computing including reusability, flexibility, loose decompose systems into components.
coupling, modularity, separation of concerns, and Release management (RM): Closely re-
so forth, without necessarily understanding how lated to CM, RM is also concerned with
component-based computing delivers on these coordinating all business processes related
promises. We by no means imply component- to getting software out the door, as well as
based Web applications are wrong; but we do how to provide updates, patches and migra-
feel there are significant gaps and assumptions tion to new releases. Given the potentially
made about the goodness of these principles that dynamic and plug-n-play nature of CBSE,
fails to address significant issues that may arise, this becomes a high-risk area to organiza-
specifically in the areas of deployment and post- tions supporting Web-based applications.
deployment support. CBSE, while demonstrating Software test: The proliferation of compo-
value-add for software development processes, nents coupled with dynamic composition
is not yet proven across the full set of business creates a tremendous burden on test groups
processes supporting enterprise class software. to validate that the software system will
CBSE may in fact imply greater complexity, and remain robust in the face of various com-
therefore higher costs for supporting deployment ponent configurations. When can the group
and release processes for Web-based systems. be comfortable that a sufficient coverage of


Component-Based Deployment for Web Applications

deployable configurations is stable? Note are re-emerging in the CBSE community and will
testing activities are separated from Quality continue to grow due to several influences:
Assurance processes, as one may claim that
CBSE has a greater potential for delivering The availability of off-the-shelf architectures
quality software out of development, and and frameworks, both commercial and open
that point is not debated. source;
Deployment: This process packages soft- Design techniques like aspect oriented pro-
ware and physically installs it onto appropri- gramming and model driven architecture
ate hardware resources and then configures that continue to separate system functional-
the system under the constraints presented ity into more refined modules;
in the hosted environment. The explosion of The growing popularity of open source
distributed and component-based software computing;
systems increases system complexity dra- Innovations in training and education;
matically, and is a focal point of the ideas The impact of the Internet and distributed
presented in this chapter. computing;
Application support: Post-deployment Software economic pressures such as an
processes for supporting deployed produc- increase in outsourcing, elevated risks (and
tion-level software systems. These processes costs) of failure, and the dot-com bust force
include production system monitoring, post- software organizations to reconsider reuse
deployment application tuning, execution and component assembly.
failover/rollover processes, and deploying
upgrades and patches. The separation between development and de-
Other business issues: There are also a ployment has all but become institutionalized.
host of organizational and social issues Development teams and deployment teams meet
involved in deploying component-based on organizational charts at a relatively high
systems. Customers often must be educated level. Lines of communication are informal
on new ways of receiving software and sup- where deployment teams may borrow develop-
port. Licensing terms must be stated that ers to help resolve their issues. Product vendors
define legal concerns, intellectual property, for software development also contribute to the
and cost issues for systems composed of separation by aligning tools along the developer
components obtained from a wide variety and deployer/operator line. For example, developer
of sources. Application support personnel tools (e.g., IBM-Rational Application Developer)
need to be trained with new skill sets for and the deployment operation products (e.g., IBM
deploying and maintaining component- WebSphere, IBM Tivoli) may not developed by
based software systems. Strategic planners the same organizations. While they are inte-
(executive decision-makers) and tacticians grated, the products are created, marketed, and
(project managers) must understand the sold separately.
ramifications of CBSE.

These issues are not new to the software cHaracTErIzING THE


engineering community; they are in fact why compoNENT proBlEm
a large body of software lifecycle and software
process literature exists. However, these issues The term software component has a broad mean-
ing in the software community. However, most


Component-Based Deployment for Web Applications

definitions share some common themesencap- Java Database Connectivity (JDBC) is a popu-
sulates functionality, communicates through lar software package that will serve as a concrete
well-defined interfaces, provides a simple plug- example. The JDBC Component Specification
and-play model, and allows easy replacement defines several Component Interfaces (Connec-
of system behaviors. Few definitions consider tion, Statement, ResultSet) and has many vendor
all the forms a component will manifest itself Component Implementations, including MySQL,
throughout the development lifecycle. Cheesman Oracle, and so forth. Figure 1 provides a diagram
& Daniels (2002) presented a view of components illustrating the relationship of these three compo-
from the complete software lifecycle and discussed nent forms defined by Cheesman & Daniels (2002).
components in the following forms: A deployer installs the binary representation of
the Installed Component as a file mysql.jar on all
Component interface: Defines a set of appropriate nodes requiring connectivity. The
features offered; analogous to a CORBA Installed Component might require configuration
or Java interface in some property file that must also be deployed
Component specification: A software unit with the system. Finally, at run-time there is an
that describes behavior for a component as instance of that component providing connectivity
a set of Component Interfaces to the external data source.
Component implementation: An assembly
that implements a Component Specifica- component dependencies Issues
tion
Installed component: A specific instal- There can be many hidden dependencies with this
lation and configuration of a Component simple example that impact a deployment. The first
Implementation simple dependency is that JDBC refers to classes
Component object: A run-time instance of a in the Java library, meaning the components
component with unique state and identity

Figure 1. Example component interface, specification, and implementation

java.sql
Factory
DriverManager Date

.interface .interface .interface .interface


Driver Connection Statement ResultSet

com.mysq l.jdbc
org.apache.log4j
MySQLDriver
Statement

ClientConnection ResultSet
artifact artifact
Config Config
-MySQLDefs


Component-Based Deployment for Web Applications

specification, and therefore its implementation, a mild amount of pain reconfiguring. But once
has an implicit dependency on some version of completed, the process and lessons learned are
the J2SE. Also, the component implementation typically undocumented and then forgotten. When
(MySQL in this example) obtains configuration the pain repeats itself too often, developers will
information from an external property file so that commonly create scripts to speed the reconfigure
file must exist and be properly configured at run- process and also help them remember it (e.g.,
time. It also requires a specific version of the log4j homegrown scripts for connecting to different
component which itself depends on a property databases, such as a development database or a
file for configuration. Finally, the implementa- test database). While undocumented activities
tion depends on a database process executing on like this (a form of duct tape and glue) are ef-
some node and the configuration file be properly fective in development, production deployments
configured to reference this node. have larger and more variable environments, and
Quality of service is also an issue. Replacing this approach will not scale for the application
the MySQL implementation with a new one can support team.
greatly impact the execution profile for the node
running the component. Processing and memory Build-Time vs. run-Time
requirements vary widely across implementa-
tions. The previous section described the many forms a
Lastly, versioning can be an issue. While the component takes through the software lifecycle.
MySQL component requires a specific version Software components are an independently
of the log4j component, a component in another deployable and enactable portion of a software
part of the system may require a different version. system. Deploying and enacting a component
Separating the executable space of components (the run-time view of a component) can lead
can be solved in some instances (Java Classload- to issues. The 4+1 software architecture model
ers provide a nice facility), but the system must (Krutchen, 1995) espoused by the rational uni-
have been initially designed and architected to fied process (RUP) addresses, at least through
support such a feature. notation, the issues of deploying and enacting
Developers rarely have issues with hidden components. Figure 2 shows the 4+1 model and
dependencies, if they have them at all. They con- its related views.
figure their environment early and rarely need to The Logical View provides the systems logical
change it. When there are changes, they experience organization defining how functionality is parti-

Figure 2. Rational unified process 4+1 architectural views


Component-Based Deployment for Web Applications

Figure 3. Deployment view of a logical component model

tioned into packages, subsystems, and interfaces, tion of a system. Questions like, do we need a
as well as those elements implementations. UML JDBC 2.0 compliant database? or will a given
package and class diagrams are commonly drawn node support the computational and memory re-
to illustrate this view. The Implementation view quirements for this set of components? or what
describes how the conceptual logical elements property files must I configure? can be answered
map to physical artifacts (source files) and then with a Deployment View of the system. Many
how those physical elements are built into compo- researchers have advocated quality of service
nents (UMLs definition of component) and other information and languages for CBSE. However,
artifacts required for execution. Makefiles, Ant it is unfortunate that few of those efforts have
build descriptors, and other scripts commonly made it into practice so deployers and operators
represent this view. The Process View depicts are left with few if any characteristics to reason
the processes that execute in the system and the about their systems.
Deployment View depicts those processes on
physical nodes in which they execute.
The Logical and Implementation views (the rEal World scENarIos
build-time views) are vital to developers and are
typically understood on most successful software This section presents experiences from actual
projects. However, the Process and Deployment systems that reveal the pain and cost of deploy-
views (the run-time views) are not as well con- ing highly configurable systems based on com-
sidered on most projects. In fact, many projects ponents.
do not properly consider deployment aspects
of the Implementation view. Figure 3 shows an Hidden dependencies
example deployment view of Component Ob-
jects at execution time for the database example Hidden dependencies are a large problem in
discussed earlier. understanding and deploying systems. Some
With the proper performance and quality motivational examples were presented in the
characteristics, Deployment Diagrams can help previous section. In this section we elaborate on
deployment and operations teams make informed types of hidden dependencies and present real
decisions regarding the installation and configura- world scenarios.


Component-Based Deployment for Web Applications

Configuration Files even less documented. Open source tools are a


particular challenge, primarily because the user
There are many examples of hidden dependencies community is the integration testbed. The first
in configuration files. These files allow develop- user to try a combination of component versions
ers, testers, deployers, operatorsany user of the is the one that will reveal any issues.
systemto dynamically configure it. Software
components then use these values to configure A developer was experimenting with an open
and tune themselves. While a great asset for de- source Model Driven Architecture tool to under-
velopers who configure their system for a rather stand how it could help his organizations software
static development/QA/System test environment development. He had previously installed the
in an otherwise relatively fixed deployment, necessary toolsAnt, JBoss, and so forthbut
understanding all the tuneable parameters for a continued to get nondescript errors when he
large system is a complex problem. Systems place deployed the application. In frustration he rein-
configurable items like IP addresses, filename and stalled everything on a different computer and,
paths, JNDI and CORBA names, and a plethora to his surprise, it ran successfully. He eventually
of tuning parameters in these files that need to discovered the product was not compatible with
vary across deployments. his version of JBoss and that those dependencies
were not documented anywhere and there was
An operator spent days spent reconfiguring no error indicating this conflict. It was only by
files to make a system operational. The system accident that he installed a compatible version of
configuration properties worked in the develop- JBoss. Unfortunately most businesses cannot rely
ment environment, but the same configuration file on luck to resolve component problems.
in the mock production environment generated
many exceptions. When the code read property Deployment problems with component ver-
values, it always assumed the values would be sions can also appear when two components in a
legitimate and performed no error checking. system depend on different versions of the same
Missing or incorrect property values caused component. Problems arise when the component
format or null pointer exception. The operators space is cluttered with multiple versions of the
were not Java programmers, so members of the same component.
development team spent several hours helping the
application support team get the system opera- In an early version of a nameless servlet
tional. Ironically, the next release had identical engine, Web applications shared their loaded
problems with new property values added to the component space (classes in jar files) with all
configuration files. other Web applications in the engine, meaning
different Web applications could not load differ-
Old habits die hard in any organization, and ent versions of the same component. In order to
institutional policies (and policing those policies enable the deployment, operators instantiated
through reviews), are commonly required to multiple instances of the servlet engine, each
institute changes. with its own web server, and used router tricks
to route traffic to appropriate machines.
Versions of Components
Component version problems like this are
While component dependencies are not well difficult to discover in development or even QA.
documented, dependencies between versions are Developers are responsible for their application,


Component-Based Deployment for Web Applications

but typically not responsible for its operation with to Cauchos Resin processor to speed rendering
other applications. It is not until the deployment requests. By leveraging the TraX API, the software
team configures the system for a particular site was able to incorporate this change transparently
that these problems are typically revealed, then to developers. Some performance enhancements
resolved with a little duct tape and glue. were mentioned in the release notes, but there
Another common example of versioning were no interface changes at the programmatic
components is found in HTML for browsers. level. The system built and functional unit tests
Developers and testers must consider the different passed. However, the system and scalability
types and different versions of browsers found tests failed. Several days of analysis showed the
in their user base. Browser variants can differ internal implementation of the XSLT processor
dramatically with variants in HTML, different improved its performance by holding references
Javascript language support, supported plugins. to stateful internal buffers. While caching these
The problem is compounded when considering buffers improved performance, it caused dramatic
the variable WAP devices and their different changes to the resource consumption profile for
form factors. the component in terms of memory and CPU
utilization.
plug-n-playplug-n-poof
While the idea of plug-n-play components
One of the major benefits touted by the compo- is attractive, it is not enough for a component to
nent community is the ability to drop in alternate conform to a standard interface. Deployers must
implementations of a component transparently understand how the run-time characteristics of
to the rest of the system. The ability to provide alternative components affect the overall behavior
an alternate implementation, the argument goes, of the system. Compile-time interfaces provide
allows for greater deployment flexibility leading encapsulation, but at run-time the entire set of
to easier maintenance, localization of error, best- components deployed to a node must compete
of-breed economies for components, and so on. for the same set of resources. In other words, the
However, experience has found components can resource consumption characteristics of compo-
rarely be interchanged in a production system nents should not be encapsulated, because the
without potentially serious consequences. In this resources consumed are not encapsulated, but
section we examine how things can go awry. instead shared across all of the components of
the system.
Dynamic Component Assembly
Binding to Non-Standard Interfaces
Dynamic component assembly at run-time is con-
sidered a huge win, and significant effort is being Component vendors provide value-added services
spent in the component community constructing as a means to draw customers to use their compo-
formalisms and methodologies for assembly. The nents. These services include robust toolsets (such
existence of well-defined interfaces and configu- as IDE integration), well-written documentation,
ration and wiring standards supposedly allows and the inclusion of unit test suites. One common
for the plug in plug-n-play. form of value-add service is to include additional
APIs outside the APIs defined for a component
A content delivery system included a particular standard. Customers who use these APIs are (often
version of the open source XSLT processor Xalan. unwittingly) tied to the vendor implementation,
The next deployment included an XSLT upgrade

0
Component-Based Deployment for Web Applications

and their software will no longer port to alterna- alternative implementations may be introduced
tive component implementations. without rebuilding and retesting the software
across all possible configurations, introducing
In an open source enterprise portal, the 2.0 costs instead of saving time and money.
implementation had a compile-time dependence
on Xerces XML parsing APIs, so when an alterna- Component Quality of Service
tive parser was introduced, the system would not
build. The problem was identified and rectified in A final variant on plug-n-play situations occurs
the next version of the portal, but demonstrates when the semantics of the component implemen-
that software development with a component- tation deviate from expected semantics, yet there
based philosophy must be built against alternative is no mechanism for expressing the different
component implementations to ensure tight cou- behavior.
pling to specific extensions has not occurred.
A Web application used Oracle for its data-
The preceding example is common and base server and was being ported to SQL Server.
troublesome, but the bright side is that such issues The application would occasionally deadlock
can be addressed during development as they are when trying to perform database writes. Analy-
compile-time issues. More serious issues occur sis showed the developers assumed row-level
downstream during test and deployment if alter- database locking when accessing objects, yet
native component implementations are provided the version of SQL Server being used provided
that build with the rest of the system, but throw page-level locking.
run-time errors when certain functionalities are
not supported. Certainly, when testing against the SQL Server
database such situations should be uncovered, but
Early versions of the Postgres and JTDS SQL how will they be addressed? If they are addressed
Server JDBC drivers threw MethodNotSupport- by rewriting sections of application code to avoid
edExceptions for unsupported JDBC 2.0 standard deadlocks, then in fact we have again violated
APIs. Although JDBC 2.0 provides methods to the plug-n-play principle by forcing changes in
check for the support of various features, it is an application component to deal with the level
difficult to programmatically check and provide of service provided by the database component.
alternative implementations at a method level Furthermore, there is no standard mechanism
for each interface that is used, and there is no by which one can express this assumption; it is
guarantee that even if you do so you will prevent merely understood by developers and imple-
all possible exception scenarios. So developers menters alike. It is possible that Ontology-based
using these incomplete database drivers would approaches (for example, the KAON project
not reveal their problem until run-time. Hopefully (Oberle, Eberhart, Staab, & Volz, 2004)) might
developer unit tests catch these problems, but address this problem, but these solutions have not
some may be missed and are hopefully revealed made it from the lab to the market yet.
in more formal system testing. The plug-n-play scenarios in this section are
certainly preventable, but not without additional
Vendors need to provide value-added services effort spent on testing various configurations that
that may take the form of standard API extensions include alternative component implementations.
or partial implementation of API standards. The is- It is also counter to a culture that grabs the latest
sue this causes for deployers is an uncertainty that


Component-Based Deployment for Web Applications

open source implementation without stressing requirements occur with the system in operation,
conformance and compliance processes. not in keeping the system operating. Second,
the cost of deployment is expensive if it requires
missed requirements for operations developers on site to provide assistance. Finally,
scripts are a better, more reliable, duct tape and
Poor planning and requirements also lead to run- glue than people.
time duct tape and glue. While many requirements
address the systems functionality and behavior,
requirements on the support and operation of the BusINEss ImpacTs
running system are often late or incomplete if
they are even considered. The previous section related experiences with the
immaturity of deployment technology; unfortu-
Despite years in planning and development, nately this immaturity dwarfs in comparison to
a large, global telecommunications system did the understanding of the full range of business
not have an automated strategy for periodically impacts in this area. This is a large area in which
uploading required routing data to its distributed the community has very little understanding.
nodes. The interim solution was to manually
transfer generated files to the proper nodes scat- lifecycle model Improvements
tered around the world until the system had an
automated method for getting the proper data onto Software process models should be revisited to
the proper nodes. Surprisingly this task, which provide more support for back-end, post-devel-
kept the entire communication system function- opment activities. The community needs to raise
ing, was completely manual. Instead of scripts, deployment to the level of a first class process
operators manually uploaded data files via ftp on phase. While most software methodologies have a
a daily basis. Even more surprising, the operators deployment activity or phase, their major activities
did not have an appreciation for the activitys and discussions center on the ones close to devel-
importance; that failure to upload the files by a opment. The inclusion of deployment is almost
specific time, loading the wrong file on the wrong a token to show completeness. For example, the
node, or an error in the files transmission would rational unified process (RUP) defines workflows
cause a catastrophic system failure. Fortunately for requirements, analysis, design, implementa-
the manual process was quickly replaced. After tion, test, and deployment. (Jacobson, Booch,
the system went live, developers were kept on at & Rumbaugh, 1999) devotes an entire chapter to
the deployment site and one of them who knew every workflow in the Rational Unified Process,
the possible ramifications recognized the risks except deployment.
with the current process. Scripts were created In addition, the information and the respec-
to automate the process and check the uploaded tive representation advocated by process models
files for errors. in the deployment area also need to be revisited,
particularly as they relate to components. The
Situations such as these provide several impor- UML provides notation support with Component
tant lessons. First, deployment requirements are Diagrams and Deployment Diagrams, but that
typically not sufficiently expressed even in large information is not semantically rich enough to ad-
complex systems with significant deployment dress the problems characterized here. While work
responsibilities. Operational requirements are in the area of component quality of service and
easy to overlook since most of the interesting contracts will help, components need to provide


Component-Based Deployment for Web Applications

more deployment information through metadata job roles. Both are vital to their systems success.
similar to J2EE Deployment Descriptors. Ad- However the cost of an experienced, graduate
ditional work in component metadata facilities degreed developer is significantly more than the
(JSR-175, 2003), languages, and additional qual- traditional operator.
ity attributes for deployment will lead to better Universities need to address these gaps. There
processes and tools. is some understanding of the skill sets required,
The scripts, tools, and hacks described above but these need to make their way in to university
are vital to deployment organizations and to the curricula. Furthermore, the curricular tracks,
success of many products. However, process even when present, are too separated; a more in-
models do not discuss them as a formal activity. tegrated form of learning experience is required.
Consequently, they are typically created outside For example, students may receive a Bachelors
the scope of the planned product lifecycle. These degree in Computer Science, Information Systems
activities need to be raised to first class status (CIS/MIS), or Information Technology, but dif-
and considered a business asset. They should be ferent academic units in different colleges within
managed projects with a formal requirements the university typically deliver these. While an
activity, regular release cycle, and supporting MIS student may be asked to take a program-
documentation. ming course or two, this does not expose them
to how scalable enterprise Web applications are
Economics constructed, nor does it truly expose them to
working in teams with their future software engi-
Research into the cost models for component- neering counterparts. Interdisciplinary study and
based systems remains open. While many tout integrated hands-on learning experiences must
the cost benefits of CBSE, practical experiences be provided in university programs.
show increased pain and expense on the backend
likely not considered before now. While it would Better understanding of product
be foolish to move back to monolithic systems, scope
those expressing the benefits of components are not
considering all the costs. What does the intersec- Lack of planning is perhaps the largest reason
tion of application types, deployment scenarios, we experience pain and expense deploying
and business models tell us about the complete component-based systems. While the 4+1 Ar-
lifecycle costs of CBSE? Are there more factors chitecture Model (Krutchen, 1995) advocates
that help determine the costs? Can some of the scenarios in all four views, few systems have
risk be mitigated and if so, how? formal requirements around deployment and
CBSE has also changed the nature of deploy- operational scenarios. Most requirements and
ment and operations, requiring more sophisticated analysis activities focus primarily on functional
skill sets and training for those positions. Not long requirements and secondarily on non-functional
ago operators were strong system administrators requirements. Requirements are commonly
with networking and scripting skills. Component evaluated using the FURPS framework (Grady
based systems have become so complex that we & Caswell, 1987)functionality, usability, reli-
now find traditionally trained software devel- ability, performance, and supportability. The
opers deploying and monitoring the health of supportability requirements discussed here are
these systems. Now we commonly see workers typically very limited, non-existent, or discovered
with M.S. degrees in Computer Science with too late in the process to properly address before
significant development experience filling these deployment. Developers can only plan and design
for known requirements.


Component-Based Deployment for Web Applications

The business side of a software product or- of license variants today makes attempting to
ganization needs to understand and commit to combine off-the-shelf components into a solution
a component strategy suitable to their market. a harrowing experience.
If platform X and database Y are on the product
roadmap, then developers and testers exercise
those component combinations on every release. dIscussIoN aNd opEN
The engineering side has the obligation to commu- dIrEcTIoNs
nicate the cost of supporting those combinations
so the business organization can decide where Insufficient attention has been paid to compo-
they belong on the product roadmap and how to nent-based deployment and post-deployment
charge for them. A salesperson the committing to processes. We are not alone in this belief. Recent
the product running on some other platform with symposia and workshops include tracks dedicated
some other database in a short timeframe unwit- to these issues (including Component Deployment
tingly commits the organization to a component 2002, 2004, and 2005, ICSE Workshop on CBSE
deployment it cannot support. 2003, 9th IEEE Conference on Engineering of
The organizational commitment to a compo- Computer-based Systems 2002). While certainly
nent roadmap extends to licensing issues as well. welcome, more discussion is given to architecture
An organization must perform due diligence to description languages (ADLs), dynamic compo-
ensure the acquired component may be used in nent assembly, and QoS/resource optimization
the ways the providers licensing model allows. than to the tangible pain of application support
Licensing models may provide unanticipated teams. When deployment is discussed, the fo-
constraints, such as pricing by CPU versus pric- cus is on specific techniques in transitioning
ing by concurrent requests versus pricing over architectures into deployed systems, and not on
an aggregate load on the Web application in a a comprehensive discussion of the full range of
given timeframe (daily, monthly, etc.). These issues facing application support teams.
constraints may be difficult to understand, add This is not to say that there is no discussion in
complexity to a deployment architecture, and academic and industry research. Crnkovic (2003)
lead to unpleasant cost surprises, particularly in presents an overview of CBSE and includes a dis-
hosted environments. Open source components cussion on deployment issues, though not quite at
add another dimension to these constraints. the same playing field as more evolutionary issues
Open source components may suffer from poor such as component maintenance. Van Ommering
understanding of the license and specialized (2001) describes four aspects of independent
variants of standard licensing models. There is deployment, yet these aspects really map to an
a significant difference in intellectual property orderly description of versioning issues between
and commercialization of software distributed components across the full component lifecycle.
under the GNU public license (GPL), lesser GPL Weyuker (1998) also tackles a specific dimen-
(LGPL), and BSD style licenses. Newer dual- sion of the component problem, noting as long
licensing models, such as the MySQL and PHP as a decade ago that testing component-based
licenses, attempt to promote open source while systems may lead to additional complexity and
at the same time protecting commercial interests, cost. Hoffmann & Neubauer (2005) acknowledge
but may inadvertently make it more difficult for that to discuss practical component-based systems
adopters to understand how the solutions may be today requires considering platform-specific
repackaged. While the community is fond of the technologies, and compares platform-indepen-
colloquial open source term, the proliferation dent technologies eODL, UML 2.0, and OMGs


Component-Based Deployment for Web Applications

Deployment and Configuration (DnC) configura- determine where each component or collocation
tion (2003 version). Lau & Ukis (2006) identify is to be placed (p. 6-68). No recommendations
that too few discussions focus on binding binary on how such as decision is made are provided.
components in the deployment phase. The deployment and configuration specification
Perhaps the most comprehensive academic (OMG 2006) addresses this gap by taking making
study of component deployment issues is provided the usual platform independent model (PIM) and
by (Carzaniga, Fuggetta, Hall, Heimbigner, van platform specific model (PSM) mappings, and
der Hoek, & Wolf, 1998). Although dated, this defining a UML Profile with specific actors for
group walks the reader through a complete treat- executing the process. While this abstract model is
ment of deployment from the process perspective useful for tool developers, it is not directly useful
and presents a range of challenges for component for application support people.
deployment that exist still today. They then sug- Vendors do not necessarily facilitate emerg-
gest a taxonomy for framing the set of technolo- ing standards in this area as well. They are aware
gies related to this area. This is presented almost that open, standard deployment environments
exclusively from a process perspective, which is may sacrifice some value-added capabilities in
a useful viewpoint, but does not provide a neat their tools. Application support managers, whose
conceptual mapping for the set of related method- purchasing power typically falls under the IT divi-
ologies (such as ADLs, notations like UML, etc.). sion of an organization (instead of the engineer-
However, to date this is the most comprehensive ing division) will make buy or no-buy decisions
treatment, and yet it is a technical report nearly based on the robustness of tools for supporting
a decade old! deployment and post-deployment processes. So
Industry standard component models while standards exist for developers in technology
such as Javas J2EE model (JCP 2002) and the platforms such as J2EE and CORBA, the usability
CORBA Component Model (CCM 2002) provide of tools provided by vendors varies widely and
deployment configuration specifications. The may facilitate proprietary extensions.
J2EE component model identifies the roles of Unfortunately, the real answers to how scope
Application Component Provider, Application and importance in these issues are not within
Assembler, and Deployer, but does not include our grasp today. Further research must be done,
in the model an expression of meta-information not just on specific tools and experiences, but
for determining how to arrange components. on broader and more ambitious agendas that
Deployment descriptors provide a description of define the problem, the range of solutions, and
a deployed environment, but are not the means to the economic impact of these downstream activi-
get there. An assumption is made that tools will ties on the health of web-based application and
be available to each role to facilitate the process; system providers. Here are some directions for
but again it is not clear how the tools would assist the community:
in decision making.
The CORBA Component Model specifica- Common process models: RUPs 4+1
tion (OMG 2002) suffers from the same gap. architecture model is a start, but merely
Component assembly and deployment on various implies a use case driven process where one
host environments is described in the specifica- evolves from logical to physical (or concrete)
tion, including a discussion of the participants in deployment models. A more explicit and
deployment process. But a sample deployment comprehensive consideration of process
scenario starts by assuming The deployment models, such as that given in (Carzaniga,
application has a conversation with the user to


Component-Based Deployment for Web Applications

Fuggetta, Hall, Heimbigner, van der Hoek In this chapter we have attempted to energize
& Wolf 1998), is needed. the community around the practical issues of
Common terminology: A common vocabu- deployment of component-based systems. We
lary for deployment is required. Too often believe this area is undernourished and is fertile
narrowly defined problems such as version- ground for the development of models, tools, and
ing or component assembly are described in methods for both academia and industry. We
general deployment terminology. have presented motivating scenarios based on
Formal definitions of languages and our practical experience in industry, and outlined
models:Liu & Smith(2006) have broken some research issues to follow. A survey of the
new ground with an attempt to formally community shows that others are also beginning to
characterize software deployment processes address the issues, but much more work is needed
and constraints. This work is fresh in the for us to both understand the problem space and
sense is deals with deployment directly, in- recommend solutions.
stead of through an extension to an existing
notation such as UML or an ADL. While
extensions to such languages may eventually rEfErENcEs
be folded in, the direct formal representation
of deployment processes will help mature Carzaniga, A., Fuggetta, A., Hall, R., Heimbig-
understanding of the field. ner, D., van der Hoek, A., & Wolf, A. (1998). A
Deployment evaluation: Extensions to characterization framework for software deploy-
architecture evaluation techniques to ac- ment technologies (Tech. Rep. CU-CS-857-98).
count for deployment Quality attributes Boulder, CO: University of Colorado, Department
identifying and quantifying deployment of Computer Science.
characteristics could have the same impact
Cheesman, J. & Daniels, J. (2002). UML
on deployment as quality attributes for
components: A simple process for specifying
software architectures have had for systems
component-based software. Reading, MA: Ad-
design.
dison-Wesley.
Economic impact models: There is a need
to model downstream costs versus upstream Crnkovic, I. (2003). Component-based software
benefits.This model should incorporate cost engineering New challenges in software devel-
models, licensing models, risk assessments, opment. Paper presented at the 25th International
and organizational impacts. Data is needed to Conference on Information Technology Inter-
shed light on just how expensive this problem faces. Cavtat, Croatia.
is, where the greatest pain lies, and uncover
Grady, R. & Caswell, D.L. (1987). Software
cause-and-effect between upstream design
metrics: Establishing a company-wide program.
activities versus downstream deployment
Upper Saddle River, NJ: Prentice-Hall.
and post-deployment activities.The impacts
on the full range of business activities must Hoffman, A., & Neubauer, B. (2004). Deploy-
be considered. ment and configuration of distributed systems.
Better education and training: Univer- Paper presented at the 4th International SDL and
sities need to respond to the challenge to MSCWorkshop. Ottawa, Canada.
teach students that a software system is not
Jacobson, I., Booch, G. & Rumbaugh, J. (1999).
complete if it cannot be reliably deployed
The unified software development process. Read-
and re-deployed.
ing MA: Addison-Wesley.


Component-Based Deployment for Web Applications

Krutchen, P. (1995). The 4+1 View Model of Oberle, D., Eberhart, A., Staab, S., & Volz, R.
software architecture. IEEE Computer, 12(6), (2004). Developing and managing software com-
42-50. ponents in an ontology-based application server. In
Proceedings of the 5th International Middleware
Java Community Process (2002). JSR 88: Java EETM

Conference, Toronto, Canada: Springer-Verlag.


application deployment. Retrieved on January 21,
2007, from http://jcp.org/en/jsr/detail?id=88 Object Management Group (2002). CORBA com-
ponent model, version 3.0.
Java Community Process (2003). JSR 175: A
metadata facility for the Java programming
TM
Object Management Group (2006). Deployment
language. Retrieved on January 21, 2007, from and configuration of component-based distributed
http://jcp.org/en/jsr/detail?id=175 applications specification, version 4.0.
Lau, K. & Ukis, V. (2006). Defining and checking Van Ommering, R. (2001). Techniques for inde-
deployment contract for software components. pendent deployment to build product populations.
Paper presented at the 9th International SIGSOFT Paper presented at the 2001 Working IEEE / IFIP
Symposium on Component-based Software Engi- Conference on Software Architecture. Amster-
neering (CBSE06). Stockholm, Sweden. dam, The Netherlands.
Liu, Y. & Smith, S. (2006). A formal framework Weyuker, E. (1998). Testing component-based
for component deployment. Paper presented at software: A cautionary tale. IEEE Software.
the 21st ACM Conference on Object-Oriented September/October 1998.
Programming, Systems, Languages, and Applica-
tions (OOPSLA06). Portland, OR.




Chapter VIII
Evolving Web Application
Architectures:
From Model 2 to Web 2

David Parsons
Massey University, New Zealand

aBsTracT

This chapter explores how Web application software architecture has evolved from the simple begin-
nings of static content, through dynamic content, to adaptive content and the integrated client-server
technologies of the Web 2.0. It reviews how various technologies and standards have developed in a
repeating cycle of innovation, which tends to fragment the Web environment, followed by standardisation,
which enables the wider reach of new technologies. It examines the impact of the Web 2.0, XML, Ajax
and mobile Web clients on Web application architectures, and how server side processes can support
increasingly rich, diverse and interactive clients. It provides an overview of a server-side Java-based
architecture for contemporary Web applications that demonstrates some of the key concepts under dis-
cussion. By outlining the various forces that influence architectural decisions, this chapter should help
developers to take advantage of the potential of innovative technologies without sacrificing the broad
reach of standards based development.

INTroducTIoN now take for granted. Subsequently, technologies


that could build Web pages on the fly, such as
Web applications grew out of the World Wide common gateway interface (CGI) scripts, active
Web in the 1990s, driven by the need, particularly server pages (ASPs) and Java Enterprise Edition
within e-commerce applications, for dynamic con- components like servlets and JavaServer Pages
tent. Early Web content, limited to static hypertext (JSPs), transformed the landscape of the Web by
markup language (HTML) pages, could not sup- introducing the Web application, rather than just
port on-line sales, transactions, personalisation, the Web site.
or any of the other features of the Web that we

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Evolving Web Application Architectures

The cycle of innovation that saw the change may converge into new approaches. Illustrative
from static to dynamic content in the mid 1990s examples are provided using the Java Enterprise
has continued unabated. The post dot com era Edition and supporting open source tools.
has seen Web application design move into a
number of new areas. On the one hand we see a
rapid evolution of the Web client into the mobile, THE WEB fraGmENTaTIoN cyclE
cross-platform space, with mobile browser-hosted
technologies such as XHTML-MP (extensible One of the characteristics of the evolution of the
hypertext markup languagemobile profile, the Web is what we might term the Web fragmenta-
standard mark-up promoted by the Open Mobile tion cycle, which is the effect of technology driven
Alliance, a consortium of commercial interests in change in two conflicting directions. On the one
the mobile communications industry), and micro hand, we have seen that a particular Web technol-
browsers like Opera Mobile that run on top of a ogy, for example a particular type of browser or
Java Micro Edition environment. On the other server side application, can drive Web evolution
hand we see a change on the server side from the using features specific to that technology. An
walled garden Web application, providing only early example of this was the introduction into
content from a single source, to open Service-Ori- Netscape Navigator of HTML tags for presenta-
ented Architectures that enable disparate services tion (Lie & Bos, 1999). Netscapes development
from many sources to be integrated by exchanging of LiveScript (later JavaScript), and Microsofts
data using the extensible markup language (XML). introduction of the XMLHttpRequest into Outlook
On both client and server we see service driven Web Access (Van Eaton, 2005) can also be seen
mashups (re-used, intermingled services) and the in this light. On the other hand we see prolifera-
programmable Web, aspects sometimes associ- tion of Web access tools that increase the reach
ated with the umbrella term the Web 2.0. These of the Web across many different types of client.
changes raise questions about the future of the One example of this was the consortium of mobile
Web application, for example, can we realistically phone network operators that joined in the WAP
consider both a rich client and a mobile applica- (wireless access protocol) Forum in the late 1990s
tion that will work across many different types to enable Web access via a wide range of mobile
of device? How do extensible markup language devices by introducing the WAP browser and the
(XML) based technologies like Web services and wireless markup language (WML).
XSLT (extensible stylesheet language transfor- The effect of technology specific innovation
mations) fit in to Web application architecture? is to narrow the accessibility of Web content
How will the Web client evolve with the increas- to those who have the appropriate technology.
ing use of browser hosted applications and Ajax While these innovations may increase qualities
(Asynchronous JavaScript and XML)? Much of such as usability and functionality for some,
the discussion around the Web 2.0 focuses on the they will exclude those who do not have the right
social networking aspects of Web based applica- technology. In contrast, the effect of wider reach
tions, but there is an equally important discussion is to encourage generic technologies for Web
to be had about the underlying architectures and access that enable more types of client to access
technologies of applications in the Web 2.0 era. Web-based content, while potentially decreasing
In this chapter we try to address some questions usability and functionality due to the need to run
about how Web application architecture contin- on a lowest common denominator platform. The
ues to evolve, what forces come into play, and resolution to this dichotomy has traditionally
how apparently conflicting paths of development been the introduction of standards on a post hoc


Evolving Web Application Architectures

Figure 1. The Web fragmentation cycle

W eb Status Quo

Proprietary I nnovation
Increasing R each
in One T ool

Post H oc S tandards

basis, which set an industry-wide benchmark that platform, language independent view of how a
most products will ultimately comply with. These document should be accessed and manipulated,
standards enable the fragmentation caused by in- but was partly based on the concept of the level
novation to be (at least partially and temporarily) 0 DOM, which was the de facto standard al-
resolved by integrating propriety innovation into ready implemented in the browsers of the time.
a common Web technology platform (Figure 1). Similarly, at around the same time, the HTML
Once proprietary innovations have been integrated specification, including its many contradictions
into a common standard, those technologies enjoy and lack of well-formedness, was engineered from
broader implementation and wider reach, and the innovations already established by browsers in
Web status quo moves forward. common use. While the fragmentary, proprietary
views of the DOM and HTML were emerging,
Identifying the Web fragmentation others were attempting to maintain the original
cycle in practice concepts of separation of structure, content and
presentation that were originally intended for
Of course the fragmentation cycle shown in Web-based documents, for example, by promoting
Figure 1 is an over-simplification, since there are the standardisation and use of style sheets (Lie
many overlapping cycles related to different Web & Bos, 1999). Over a series of standardisation
application technologies. Therefore the concept cycles, that concept has gradually been reasserted,
of the Web status quo is somewhat misleading, with the development of the extensible hypertext
since there is never a stable point from which we markup language (XHTML) and cascading style
embark on a new cycle. However it is possible to sheets (CSS). Unlike HTML, XHTML does not
identify specific instances of this cycle at vari- allow the arbitrary mixing of content, structure
ous points in time and identify the two aspects and presentation, delegating presentation and, to
of innovation and reach. One such example was some extent, structural management of Web page
the level 1 document object model (DOM), which content (written in XHTML) to external style
was designed to introduce a standard, cross sheets (written in CSS).

0
Evolving Web Application Architectures

The Emergence of ajax able to dynamically populate a search text box


with suggestions for search terms as characters
A recent example of the Web fragmentation cycle were typed into it, providing, of course, that the
has been the emphasis in browser hosted tools for browser was able to support it. Ajax itself is not a
providing a richer client experience, including technology but a label, applied by Garrett (2005),
Web service clients for mashup services and, in to a way of building Web applications that uses
particular, Ajax (asynchronous JavaScript and the XMLHttpRequest object within client side
XML). Ajax is not a particularly new concept, scripts to seamlessly update Web pages. Garret
following on as it does from a longer tradition of summarised Ajax as a combination of:
client side processing. This began in the mid 1990s
with the introduction of JavaScript into Netscape Standards based presentation using XHTML
Navigator and Java applets into the HotJava and CSS
browser, and was followed by dynamic HTML Dynamic display and interaction using the
(DHTML) which combined HTML, style sheets document object model
and scripts in a way that enabled documents to Data interchange and manipulation using
be animated (dynamically manipulated) in the XML and extensible stylesheet language
browser, with a view of the document that has transformations (XSLT)
since been formalised by the W3Cs document Asynchronous data retrieval using the
object model (Le Hgaret, Whitmer, & Wood, XMLHttpRequest
2006). However the significant difference between JavaScript binding everything together
Ajax and previous approaches is the concept of
the one page Web application, whereby page Figure 2 shows the general architecture of
content is updated asynchronously from the Ajax based systems. The key to this architecture
server without the whole page being rebuilt. The is that the Ajax engine mediates between the
two main advantages of this approach are that it user interface and the server, processing on the
enables a more interactive user experience, and client where possible (using DHTML) and, where
that it can reduce the amount of Web traffic re- necessary, sending asynchronous HTTP requests
quired to update a page, though both of these are and receiving XML data (or indeed data in any
dependent on careful design. An early example other suitable format) that it renders in the browser
of this approach was Google Suggest, which was via the DOM. Of course the technologies listed

Figure 2. Ajax architecture


B ro w se r C lie n t

U se r In te rfa ce

Ja va S crip t S e rve r S id e S yste m s


HTML +
C a ll
C S S D a ta
X M L H ttp R e q u e st
A ja x E n g in e W e b a n d /o r X M L S e rve r

X M L D a ta


Evolving Web Application Architectures

by Garrett are not the only way to provide one- page (if there are errors) or the next logical page
page applications on the Web, since alternative in the business process. In contrast an Ajax ap-
technologies like Flash can be used to similar proach might be to trigger a local Ajax function
effect. by an event such as a button being pressed (or
As a simple example of how Ajax might be tabbing fields, or keys being pressed) rather than
applied, we might consider how it could be used submitting a form to a server side URI.
to manage the submission of login data from a
Web page. In the usual client server interaction, <input name="submit type="button"
an HTML form will submit data to the server us- onclick="ajaxLogin();" value=Submit" />
ing a standard action that posts the data to a URI.
JavaScript may perform some surface validation The local Ajax function will use an XML-
on the client (e.g., checking for empty fields or HttpRequest to communicate asynchronously
password length), but true validation (checking with the server, and trigger a function that pro-
the users ID and password against the security cesses the return value and interacts with the
domain) is done after the page is submitted to current page to update it appropriately.
the server. Here for example an HTML form
tag submits to a server side URI after invoking
a local validation function xhrequest = getXMLHttpRequest();

<form action="/processlogin" method="post " xhrequest.onreadystatechange = processLogin;
onsubmit="return validateLoginData(this);"> xhrequest.open("post", url, true);
xhrequest.send(null);
The server response will then be to generate
a different client page, either a regenerated login

Figure 3. Standard multi-page processing compared with the Ajax one page approach
S ta n d a rd M u lti-P a g e D e sig n

W eb P age
S e rve r s id e w e b
L o g in fo rm W eb P age
a p p lica tio n

A ja x O n e P a g e D e sig n

Manipulate current page

W eb P age
L o g in fo rm

A ja x F u n ctio n S e rve r s id e w e b
a p p lica tio n


Evolving Web Application Architectures

function processLogin() in 2006. The intention of this new domain was


to provide a standard way for users to access the
// process the server response data and manipulate mobile Internet by guaranteeing that a site with a
the current page .mobi extension was designed for mobile device
access. The primary mechanism for this was to
Figure 3 shows how the two approaches differ use XHTML-MP (extensible hypertext mark-up
in terms of their page flow. The Ajax version is languagemobile profile), the successor to the
the one page Web. WAP Forums wireless mark-up language (WML)
Although they can bring significant benefits as the standard page mark-up for .mobi domains
in the contexts in which they work, the aspect of (the WAP Forum was the precursor to the Open
fragmentation that Ajax and similar technolo- Mobile Alliance). This approach, however, has
gies bring is that they rely on the programming come in for some severe criticism. Tim Berners
platform within the Web browser, excluding Lee, the father of the World Wide Web, com-
those Web clients that do not support these mented that:
technologies. At the same time there has been
a separate move towards broader Web access This domain will have a drastically detrimental
on mobile devices, which is in conflict with the effect on the Web. By partitioning the HTTP infor-
reliance on client side JavaScript or similar tools mation space into parts designed for access from
that are needed to support Ajax. Indeed there is mobile access and parts designed (presumably)
a potential conflict between two of the Web 2.0 not for such access, an essential property of the
patterns, as described by OReilly (2005), namely Web is destroyed (Berners Lee, 2004).
software above the level of a single device
and rich user experience. Of course there is However, over time we can expect that this
no reason why these two patterns should be mu- separation between mobile and non-mobile Web
tually exclusive, but the Ajax approach to a rich sites will fade away as first technology, and then
user experience, with the current level of mobile standards, will minimise the differences between
browser technology, is potentially fragmentary. desktop and mobile content delivery. Further de-
Whilst some rudimentary Ajax implementations velopment of mobile browsers will begin to provide
may be possible with JavaScript enabled mobile Ajax or alternative rich client functionality on
browsers like Opera Mobile, most of the highly more types of mobile device. We can also expect
interactive, desktop style Ajax application cannot the technologies that underlie the .mobi domain,
currently be accessed from mobile devices. such as XHTML-MP, to evolve over time and
support such an increase in functionality. After a
mobile standardisation: The .mobi period dominated by fragmented tools and tech-
domain niques, we can expect a common set of standards
to emerge that will give consistency across the
At the same time as the desktop browser was being Web, regardless of browser, rendering specialised
increasingly leveraged to develop a rich, interac- mobile content unnecessary. Figure 4 shows how
tive user experience based on asynchronous server Ajax and specialised mobile content can be seen to
requests, there was a move by the mobile phone fit into the Web fragmentation cycle, and that the
network operators and handset manufacturers in two trends should resolve into device independent
the Open Mobile Alliance to increase the reach of rich content.
the Web by introducing the .mobi top level domain


Evolving Web Application Architectures

Figure 4. The fragmentation between specialised mobile content and Ajax

W ide R each D ynam ic


C ontent

Specialised m obile
Ajax C ontent
content

D evice In dependent
R ich C ontent

Listing 1. The innerHTML property and DOM methods compared


<?xml version=".0"?>
<!DOCTYPE html PUBLIC "-//WC//DTD XHTML .//EN"
"http://www.w.org/TR/xhtml/DTD/xhtml.dtd">
<html xmlns="http://www.w.org//xhtml" xml:lang="en">
<head>
<title>innerHTML and the DOM</title>
</head>
<body>
<div id="section"></div>
<div id="section"></div>
<script type="text/javascript">

// add an element containing text using innerHTML


document.getElementById("section").innerHTML =
"<p id='para'>Section  uses innerHTML</p>";

// add an element containing text using the DOM


var para = document.createElement("p");
para.setAttribute("id","para");
para.appendChild(document.createTextNode
("Section  uses the DOM"));
document.getElementById("section").appendChild(para);

</script>
</body>
</html>


Evolving Web Application Architectures

Innovations That do Not Become cycle that sees a clean merging of innovations and
standards standards will not always apply.

Although we have so far presented the fragmen-


tation cycle as a repeating pattern of innovation WEB 1.0 arcHITEcTurE
and reach being resolved by standardisation, this
is also an over-simplification in the sense that not So far in this chapter we have focused largely
all innovations are neatly resolved by the devel- on the evolving client side components of Web
opment of agreed standards. One example where application architecture. However it is on the
this process does not appear to be satisfactorily server that the major Web application processes
resolved is the common use and implementation actually take place. Therefore, we also need to
of the innerHTML property within many browser consider how Web application architectures have
DOMs, despite the slim chance of it becoming a evolved in terms of server side components and
standard part of the DOM specification published interactions. Before exploring how current in-
by the World Wide Web Consortium (W3C). Use novations and standards may affect the future
of this property is driven largely by its simplic- direction of Web application design, we will first
ity, since it makes it easy for Web developers review some of the main architectural aspects of
to insert dynamic content into a text node of a established practice. In the spirit of the level 0
Web based document. This makes it very useful DOM, we might perhaps categorise pre-Web 2.0
for developing Ajax applications. Objections to architectures as the Web 1.0. In this type of
the use of this property are primarily that it can architecture, there are some standard patterns that
be easily misused, since content, structure and are commonly used and integrated into popular
presentation aspects of the document can become Java Web application frameworks such as Struts
muddled together with client side scripts when and JavaServer Faces. These patterns include the
content is manipulated in this way. Unfortunately Model 2 architecture (Seshadri, 1999), which is
the alternative approach, to use the standard loosely based on the Model View Controller pat-
APIs of the DOM, is often considerably more tern (Buschmann et al., 1996) and the Template
complex, compounded by variations in the way View pattern (Fowler, 2003).
that the DOM APIs are actually implemented in
different browsers. The simple example in List- The server page Template model
ing 1 shows an XHTML page that includes a
script (written in JavaScript) that adds an element Established Web application technologies that
containing text using the innerHTML property, support dynamic content, like JavaServer Pages
and adds a similar element using the methods of (JSPs) and Microsofts Active Server Pages,
the DOM. Even for such a simple operation, the use a relatively simple model of a layered Web
DOM version is much more complex. Not only based architecture, whereby server side applica-
is the code itself longer, but the performance of tion execution can be integrated into presenta-
the innerHTML approach is much faster in most tional mark-up. Dynamic content is based on
situations (Koch, 2006) the transformation of database content into Web
Given the conflicting viewpoints in this debate, based pages, and form based input into database
it is difficult see to how the fragmentation can be updates. Architectural patterns for this type of
easily resolved. Therefore we should acknowledge Web application are based on simplifications of
again that the simplistic view of the fragmentation the Model View Controller pattern, like the JSP


Evolving Web Application Architectures

Listing 2. An example of the Template View pattern using a JavaServer Page and the JSTL
<?xml version=".0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
doctype-public="-//WC//DTD XHTML .//EN"
doctype-system=" http://www.w.org/TR/xhtml/DTD/xhtml.dtd "
version=".">

<jsp:useBean id="choice" class="com.webhomecover.beans.QuoteChoice"


scope="session" />
<jsp:useBean id="contents" class="com.webhomecover.beans.ContentsDetails"
scope="session" />
<jsp:useBean id="buildings" class="com.webhomecover.beans.BuildingsDetails"
scope="session" />

<html xmlns="http://www.w.org//xhtml" xml:lang="en">


<head>
<link href="webhomecover.css" rel="stylesheet"
type="text/css" />
<title>WebHomeCover Insurance Quote</title>
</head>
<body>
<h>Here is your insurance quote from WebHomeCover</h>
<c:if test="${choice.buildings}">
<h>Your Buildings Quote:</h>
<jsp:getProperty name="buildings"
property="formattedInsuranceQuote"/>
</c:if>
<c:if test="${choice.contents}">
<h>Your Contents Quote:</h>
<jsp:getProperty name="contents"
property="formattedInsuranceQuote"/>
</c:if>
<form action="welcome.jsp" method="get">
<input type="submit" value=
"Thanks for the quote, now take me back to the home page" />
</form>
</body>
</html>
</jsp:root>

Model 2 architecture (Seshadri, 1999). Here, a (2003) characterises this as the Template View ap-
server side component at the controller layer, the proach to page generation, where the server page
Front Controller (Fowler, 2003), is responsible for provides the presentation template and dynamic
interpreting client requests, delegating to other content is inserted into it at predefined locations,
server side components in the model layer to preferably using XHTML compliant tags. The
provide the necessary data objects, and ensuring code example in Listing 2 shows a JSP that uses
that the thread of control is ultimately forwarded the template view approach. It is a document in
to a component suitable for rendering the client XML format that contains a combination of stan-
response. This component is usually a server dard mark-up tags, using XHTML (the template,
page, which is able to embed dynamic content into highlighted in bold text), and other tags, specific
presentational markup using special tags. Fowler to the Java server side environment, that generate


Evolving Web Application Architectures

Figure 5. The Web 1.0 application architecture, based on the Model 2 and Template View patterns
Front Controller
1 re q u e st Data Access Object
2 U p d a te / q u e ry

O b je ct M o de l
Co m m a n d
S e rvle t DTO O /R D A O

O b jects
3 SQL
5 re sp o n se 4 co n te n t

Model 2 S e rve r P a g e
Tag
L ib ra ry
Template View Data Transfer Object D atabas e

dynamic content. These tags are a combination Content is returned in DTOs that can be processed
of standard JSP tags (jsp:root, jsp:useBean, by the object model layer and/or embedded into
jsp:getProperty) and the if tag from the JSP server page components using tag libraries (4).
Standard Tag Library (JSTL). These server page components can then gener-
Behind the view/controller layer, the map- ate a dynamic response (5). In traditional Web
ping between the data store and the model is the applications, that response has typically been in
responsibility of data access objects (DAOs) that the form of HTML.
interact with the higher levels of the system via
data transfer objects (DTOs) (Alur et al., 2003). In The xml Transformation model
most real world cases the data store is a relational
database, requiring some object relational (O/R) More recently, XML (extensible markup language)
mapping, enabling the structured query language based technologies have become popular in Web
(SQL) to be used to read and write persistent data. application architectures, in no small part due to
The DTO components that encapsulate updates or the limitations of HTML, which is purely a page
query results can be embedded into server pages mark-up syntax and cannot be used to represent
using appropriate tag libraries. data at any level of abstraction, whereas XML can
Figure 5 illustrates the basic Web 1.0 archi- be used to represent semi-structured data that is
tecture. Initial routing of all hypertext transfer not restricted to page mark-up (Abiteboul, Bun-
protocol (HTTP) requests from Web clients is eman, & Suciu, 2000). Certain principles underlie
handled by the front controller component that the use of XML in a Web application. Its role is
receives all the requests, parses their parameters essentially to provide services that cannot be sup-
and delegates to the appropriate object model layer ported using more traditional approaches to Web
components via command objects (1). There are a applications based on representing content directly
number of frameworks that encapsulate this design in HTML. There are four broad categories where
pattern, including Struts and JavaServer Faces. In XML provides such services (Bosak, 1997):
both cases, the front controller component is a Java
servlet. Any interaction between the model and Applications that require the Web client to
persistent data is done via the DAO/DTO layer (2), mediate between two or more heterogeneous
which interacts with the underlying data store (3). databases;


Evolving Web Application Architectures

Figure 6. The Transform View pattern, where a source document is transformed into a client page using
an XSL Transformation

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" From XML
href="transform2.xsl"?>
<policy-claims>
<company-domain>
http://www.WebHomeCover.com
</company-domain> Via XSLT
<contents-image>
contents.gif
</contents-image>
<?xml version="1.0"?>
<buildings-image>
<xsl:stylesheet version="1.0"
buildings.gif
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
</buildings-image>
<xsl:output method="xml"
<policy type="contents">
doctype-public="-//W3C//DTD XHTML 1.1//EN"
<policy-holder>A. Liu</policy-holder>
doctype-system="
<claims>
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd "/>
<claim>
<xsl:template match="/">
<year>2002</year>
<html xmlns="http://www.w3.org/1999/xhtml"
<details>Stolen TV</details>
xml:lang="en">
</claim>
<head>
</claims>
<title>Insurance Claims</title>
</policy>
Etc </head>
<body>
<h1>Claimants and policy types</h1>
<xsl:for-each select="policy-claims/policy">
<p class="{@type}">
<?xml version="1.0"?>
Name: <xsl:value-of select="policy-holder"/>
<!DOCTYPE html<xsl:choose>
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
etc
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en">
<head>
<title>Insurance Claims</title>
</head>
<body>
<h1>Claimants and policy types</h1>
<p class="contents">
Name: A. Liu
<img src="contents.gif" alt="contents"/>
To
</p> XHTML
etc

Applications that attempt to distribute a Meeting these requirements means that a


significant proportion of the processing load Web application that uses XML needs a more
from the Web server to the Web client; complex server side architecture than the simple
Applications that require the Web client to template model, and data has to be represented in,
present different views of the same data to and translated between, multiple formats, which
different users; may include XML, object model and database
Applications in which intelligent Web agents level representation. Whereas the template view
attempt to tailor information discovery to pattern assumes a component based plugging-in
the needs of individual users. of object model components into a server page


Evolving Web Application Architectures

template, the XML based model requires some perform the dynamic transformation. In contrast,
kind of transformation to take place from data, a transformation executed on the server can be
taken from some source and represented by XML, applied dynamically and reliably, independent
into mark-up that can be interpreted by the client. of the client. Listing 3 shows an example of how
Fowler (2003) characterises this approach as the such transformations can be executed on the server
Transform View model where, instead of using a using tags from the JSP Standard Tag Library.
server page to embed object model components Specifically, the transform tag from the JSTL
into a page template, an extensible stylesheet XML library applies an XSL transformation style
language (XSL) processor is needed to transform sheet to an XML document.
an XML document into a generated client page. A simplified visualisation of the distinction
In order to make this transformation, the XSL between the template and transform approaches
processor applies an XSL transformation (XSLT) in shown in Figure 7. In the template view, the
stylesheet that defines how the input document is server page integrates components from the object
to be transformed. model into a mark-up based template. The page
Figure 6 shows how an XML document is template is embedded in the server page itself.
transformed by an XSL Transformation into an In the transform approach the XSL processor
XHTML client page. This transformation can integrates elements from XML documents into
take place either on the client or the server, de- a mark-up based transformation, with the page
pending on whether the client is able to process template embedded in the transformation style
the transformation (most desk top browsers are sheet. If the transformation is performed on the
able to do this). server, the server page simply triggers the trans-
The main problem with executing transfor- formation process.
mations on the client, even assuming the client
is able to perform those transformations, is that xml in Web applications
they will provide static content, since the assign-
ment of the transforming style sheet will be hard Bosaks (1997) four roles of XML can be sup-
coded into the XML document. Alternatively, ported in various ways by the transform model.
we would have to rely on the client providing Mediation between heterogeneous databases can
the necessary scripting and DOM support to be seen from more than one perspective. In some

Listing 3. The Transform View pattern implemented on the server using the JSP Standard Tag Library
<?xml version=".0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:x="http://java.sun.com/jsp/jstl/xml"
version=".0">

<jsp:directive.page contentType="text/html"/>
<jsp:output omit-xml-declaration="true" />

<c:import url="policies.xsl" var="stylesheet" />


<c:import url="policies.xml" var="xmldocument" />
<x:transform doc="${xmldocument}" xslt="${stylesheet}" />

</jsp:root>


Evolving Web Application Architectures

Figure 7. The Template View and Transform View patterns compared

Page T empl ate


Tem pla te
View

Server Page
D ata Source Object Model Eng ine C lient Page

Transform XSLT Stylesheet

View

D ata S ource XM L D ocum ent XSL P rocessor C lient Page

cases, XML Web services can be used to integrate There are various ways that XML can be
the various data sources of a single organisation used to offload some of the processing from
or collaborating group of organisations. In this the server to the client, but again some aspect
sense XML can be seen as the natural succes- of transformation is essential. XML documents
sor to more traditional forms of electronic data provide a presentation neutral way of represent-
interchange (EDI). In other cases, such as those ing the underlying content of an application, but
included in the patterns of the Web 2.0, there is the typical role of the Web client is to render that
the concept of specialised databases being the core data in an appropriate way. Tools for this type
item of value in a system, with the opportunity of transformation, such as XSLT, are therefore
to reuse these databases in new combinations of an essential component of an XML-centric Web
services. In this type of scenario the databases application architecture. This is what underlies
in question may be distributed over a wide range the concept of the transform model, since XSLT
of providers, with no formal relationship or set is able to express how one XML document may
of contracts between them. Here, the XML Web be transformed into another document, which
services are in the public domain. From any of may be XML or may use a different syntax such
these perspectives, raw XML data may be the as XHTML. The way that processing can be
way of communicating between systems, but offloaded from the server to the client ranges in
transformations are necessary to apply queries sophistication from the simple separation of XML
or filters to the data and transform it to meet the data, XSL transformations and CSS (cascading
specific requirements of a client system. style sheets, used to style the presentation of a
document) to Ajax applications. In the former case,

0
Evolving Web Application Architectures

we rely on the ability of the browser to download, aspect of XML is what supports the concept of the
cache, and process by transformation and styling, semantic Web, enabling a greater degree of reflec-
XML documents. Since the same transformations tion about Web-based information sources on the
and style sheets can be used with multiple XML part of Web applications. Although discussion
documents from similar data sources (i.e., related of the Semantic Web is beyond the scope of this
but different queries across the same data source) chapter, XML and XML Schema are important
all that is required of the server is to send the foundation technologies that support the higher
XML documents to the client for processing. In level aspects of the Semantic Web technology
the latter case, various Ajax tools can be used to stack such as the resource description framework
develop rich client processes based on JavaScript (Hendler, 2001).
and asynchronous XML messaging. This is a
more complex approach, since instead of relying The limitations of the Transform
on the browsers native ability to process XSLT, model
we are relying on a JavaScript application to sup-
port client side processing and parsing of XML Whilst transformations, used directly, can have
documents. While it is possible to offload some certain advantages such as the ability to leverage
presentational style sheet processing to small the common abilities of browsers to perform XSL
devices using this kind of markup, not all mobile transformations on the client, on their own they
clients are able to manipulate XML documents have a number of drawbacks. First, the syntax of
using XSL Transformations or by using client the XSL transformation is complex, and can be
side scripting languages like JavaScript. However, difficult to maintain, particularly where the ap-
many small devices can support the use of Java ply-templates approach is used to transform the
Micro Edition to manipulate XML documents XML documents using pattern matching. Second,
on the client, using small footprint parsers such using a transformation directly cannot easily be
as kXML. Therefore an Ajax-style approach is integrated with other server side processes, even
possible even in the absence of JavaScript. if the transformations are actually executed on
Where it is not possible to offload the process- the server rather than the client. The advantage
ing necessary for XML transformations onto the of the XSLT approach is that a relatively small set
client, the server can take responsibility for en- of transformations can be used to manage a large
abling the Web client to present different views of number of XML documents in a Web applica-
the same data to different users. One of the useful tion. However they are not particularly flexible.
ways that we can apply XSL transformations of In contrast, using a tag-based template approach
XML data in a Web application is to provide dif- gives us a highly flexible way of integrating both
ferent transformations for different types of client mark-up and programmatic logic. Passani &
device. For example, the same content, represented Transatti (2002) argue that XSL Transformations
in XML, could be transformed into XHTML for are a very poor approach to providing adaptive
desktop browsers, wireless markup language mark-up for different devices, because they mean
(WML) for legacy mobile phones, XHTML-MP writing separate transforms for each type of cli-
for more recent mobile phone browsers, and so ent. In contrast, template based tools such as the
on. The same techniques can be use for person- wireless abstraction library (WALL) enable us
alisation or customisation of the content itself, to encapsulate different page generation behind
targeting the user as well as the device processing tags (Passani & Transatti, 2002). It is
Finally, agents can utilise XML because it possible, however to use parts of XSL combined
provides metadata about Web-based content. This with tags to gain the benefits of both approaches.


Evolving Web Application Architectures

Figure 8. Combining transform and template views

D a ta Source XSLT / XPath Page T empl ate

Server Page
XM L D ocum ent XSL P rocessor C lient Page
Engine

Listing 4. Combining the Template View and Transform View approaches in a JSP
<?xml version=".0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:x="http://java.sun.com/jsp/jstl/xml"
version=".">
<jsp:directive.page contentType="text/html"/>
<jsp:output omit-xml-declaration="false"
doctype-root-element="html"
doctype-public="-//WC//DTD XHTML .//EN"
doctype-system="http://www.w.org/TR/xhtml/DTD/xhtml.dtd" />

<html xmlns="http://www.w.org//xhtml" xml:lang="en">


<head>
<link href="webhomecover.css" rel="stylesheet"
type="text/css" />
<title>WebHomeCover Insurance Policies</title>
</head>
<body>
<div>
<! main page presentational content here,
including XPath expressions, e.g.
>
<c:import url="./policies.xml" var="xmldocument"/>
<x:parse doc="${xmldocument}" var="xml"/>
<x:out select="$xml/policies/policy/policy-holder"/>

</div>
</body>
</html>
</jsp:root>

Rather than transforming documents in a single template model. However the key is to combine
process, we can combine partial transformations both transformations and templates into a single
with template based mark-up. This can help us server page to ensure adequate performance. It
to gain the benefits of XML in Web applications is technically possible to generate a server page,
without losing the programmatic flexibility of the marked up using device adaptive tags, from


Evolving Web Application Architectures

a transformation, and then run that generated approach, but in the server page in the combined
page through the server page engine. However template/transform approach.
this two stage process can be very inefficient.
The alterative approach is to integrate partial
transforms, for example using XPath filters on WEB 2.0 GENEraTIoN
the XML data, within the same server page as applIcaTIoN arcHITEcTurE
the adaptive mark-up. This means a single pass
through the server page (Figure 8). In the previous sections we introduced some of the
The code extract in Listing 4 shows the basic architectural features of Web applications that may
principles of this approach. The template view use either template or transform approaches, or a
provides the main structure of the page and gener- combination of both. In this section we describe a
ates the XHTML tags that build the presentation. Web 2.0 generation architecture for adaptive Web
Within this page, however, XPath expressions are applications that leverages XML as a data repre-
applied to an XML document to insert dynamic sentation format within an adaptive architecture,
content. One of the main contrasts between the integrates service oriented aspects, and combines
transform and mixed template and transform ap- both template and transform elements. Perhaps the
proaches is that the responsibility for the XHTML most important feature of this architecture is the
mark-up is in the XSLT document in the transform introduction of an XML data layer that integrates

Figure 9. A Web application architecture integrating XML

3a
E xte rn a l u rl E xte rn a l
w e b se rvice w e b se rvice
clie n t se rve r
XML
X M L D a ta L a ye r

1b W eb
re q u e st 6 b re sp o n se
se rvice

1 a re q u e st XML 2 3 b U p d a te / q u e ry
U p d a te / q u e ry

F ro n t C o n tro lle r O /X M L
DTO O /R D A O

XML
6a re sp o n se 5 4 SQL
co n te n t
O b je ct M o d e l

S e rve r P a g e
XHTML Tag
L ib ra ry

D atabas e

S tyle X S LT /
S tyle X S L P ro ce sso r
S heet XXPPa th
a th
S heet


Evolving Web Application Architectures

disparate data sinks and sources into a cohesive parts of a document. These XML path queries
XML management process at the same level as should be performed via a server page using tag
the object model. This enables a system to man- libraries that integrate both XML data retrieval
age requests and responses in a consistent way, and adaptive markup to ensure encapsulation and
regardless of whether the client request is for a reuse. Once the content is transformed it can be
Web service or presentation mark-up, and whether transferred to the device in the generated mark-up
our data sources are local databases or remote format for processing by the client. This may be a
Web services. An outline of the architecture and device oriented mark-up (6a) or a Web service (6b).
its core processes is shown in Figure 9. Of course many mobile devices can both process
In this architecture, client requests to a front mark-up and act as end points for Web services. It
controller component may come either from should be noted that services may take different
presentation oriented devices (1a) or external forms. For example, a server side component may
Web service clients (1b). The request is delegated provide XML messaging service for Ajax clients
to a joint XML data and object model layer (2). by using the mechanism described above, whereby
Depending on the requirements of the request, program components generate XML documents
queries delegated via the XML data layer may and stream these to JavaScript components on the
either retrieve XML content from one or more client. However Web services may take a more
external services running on other Web servers heavyweight form, using standards such as Web
(3a), generate XML content from a local database services description language (WSDL), simple
via suitable queries (3b) or perhaps combine object access protocol (SOAP) and universal
multiple data sources. Where content is based on description, discovery and integration (UDDI).
external Web services, content will already be in In this case, generation of XML from program-
XML format. Where content is held locally in a ming components will typically be done via tool
database that is not natively XML, some kind of support to generate the necessary XML docu-
transformation will be required between relational ments, stubs and skeletons to enable client/server
and XML data. Rather than implementing such a interoperability. The current generation of Java
direct transformation, which would provide only Web service tools are based on the Java API for
XML to the controller layer, it is probably wise XML Web services (JAX-WS).
to maintain the data transfer object (DTO) pat- This type of XML centric architecture has a
tern, but add XML generation capabilities to the number of benefits. First, we can gain reuse of
DTOs. This approach means that the DTOs can both external Web services and local components.
be used both as objects in their own right within Second, we can provide adaptivity that integrates
the object model of the underlying entities in both client device mark-up and Web service end-
the system and as sources of XML documents. points. From a business perspective it provides
A layer of object/relational data access objects maximum leverage of external services and APIs
(DAOs) is required to perform the translation while gaining maximum potential distribution
from relational data to object model and create across all possible client types. Encapsulation of
the XML generating DTOs (4). Multiple XML data access and transformation should provide
documents may be generated from a model that benefits in terms of maintainability and cost.
is created from a single database query, since For example, separating out concerns between
multiple object level queries can be used against XML, object models and the database, rather
any graph of DTOs. The XML content returned than directly generating XML from the database,
from the XML data layer (5) is transformed via can assist in the reuse of legacy data sources and
an XSL process utilizing XPath queries to build provide added security through additional layer-


Evolving Web Application Architectures

ing. In terms of the Web fragmentation cycle, the These beans provide both an object model to
architecture is based on common XML, Java and organise the requested set of data and a way of
SQL standards while integrating some aspects of generating XML documents from one or more
innovative Web 2.0 service based and cross-device beans. This is particularly useful where a client
architectures. page will include data from multiple tables that
have some kind of associative relationship, realised
Integrating Java and xml in the application as a related graph of objects.
Generating XML from JavaBeans can be done
So far we have introduced a number of features using frameworks or custom code. Geary (2001),
of Web application architecture relating to either for example, provides some guidance on how to
XML or Java, but indicated that a Web applica- implement JavaBeans that can generate XML. In
tion architecture need to be able to support data cases where the XML content encapsulates nested
objects that can convert to and from Java and elements from multiple domain components, the
XML. In this section we discuss some aspects of beans will form a composite pattern (Gamma et al.,
how Java and XML can be integrated, including 1995) with the composite objects organising sub
some standard tools. In a Java based architecture, elements and the leaf objects generating element
the O/XML DTOs should be based on the relevant content. Listing 5 shows a simple implementation
parts of the JavaBean specification that enable of this pattern, where the class that implements
them to be used via tag libraries in JSPs, and be the getXmlElement method (representing an
manipulated by the JSP Expression Language. insurance policy) is associated with a collection

Listing 5. Generating XML content from composite JavaBeans


public String getXmlElement(boolean graph)
{
StringBuffer element = new StringBuffer();
element.append
("<policy policy-number=\"" + getPolicyNumber() + "\">");
element.append
("<start-date>" + getFormattedDate() + "</start-date>");
element.append
("<annual-premium>" + getAnnualPremium() +
"</annual-premium>");
element.append
("<number-of-claims>" + claims.size() +
"</number-of-claims>");
element.append("<paid-up>" + getPaidUp() + "</paid-up>");
if(graph)
{
element.append("<claims>");
Iterator<Claim> claimIter = claims.iterator();
while(claimIter.hasNext())
{
Claim claim = claimIter.next();
element.append(claim.getXmlElement());
}
element.append("</claims>");
}
element.append("</policy>");
return element.toString();
}


Evolving Web Application Architectures

of Claim objects that generate their own XML This can be done manually using the Java API
content via a call to a polymorphic getXmlEle- for XML processing (JAXP) but is perhaps bet-
ment method. Each of these methods generates ter performed by tools like JAXB, particularly
a fragment of a larger XML document. since more recent versions of JAXB, unlike the
The link between the JavaBeans and the data- original implementation, can convert both from
base will depend on the nature of the database and XML to Java and from Java to XML. The partial
the transactional requirements of the persistence code example in Listing 6 shows how JAXB can
layer. In some cases a simple manual mapping be used to generate XML documents from Java
using JDBC may be adequate, but it is likely that objects via a Marshaller, in this case a collection
frameworks implementing standards such as the of Policies objects. The collection of Policies is
Java Persistence API will be required for indus- derived from an ObjectFactory class generated
trial strength persistence. How the JavaBeans by the JAXB framework.
interact with the XML layer will also depend on Once XML documents are generated from
the requirements of the application. As we have the JavaBeans layer, XML processing should
described, manual solutions are possible, but it be performed via JSPs using tags from libraries
may be more appropriate to use tools such as such as the JSP standard tag library (JSTL), which
the open source XMLBeans (Apache Software includes a dedicated sub-library for XML process-
Foundation, 2006) or Java XML binding (JAXB) ing. However there are a number of other XML
which is integrated into the standard Java plat- processing tag libraries available in Java that may
form from version 6 onwards. The choice here be used instead. Listing 7 shows the JSTL being
will often depend on whether the application is used for a simple XSL transformationsimilar to
mainly driven by an object model or by XML listing 3but this time, not using a static XML
documents, since frameworks like XMLBeans document. A JavaBean is used to generate an
and JAXB depend on the data model being XML document which is transformed by a style
derived from XML Schemas, and Java objects sheet using JSTL tags. In this code example we
being generated subservient to that XML data assume that the getXmlDocument method is re-
model. Another important consideration is the sponsible for marshalling the various components
generation of Java objects from XML documents. of a complete XML document, in contrast to the

Listing 6. Transforming objects into XML documents using JAXB


ObjectFactory policiesFactory = new ObjectFactory();
Policies policies = policiesFactory.createPolicies();
JAXBContext ctx = JAXBContext.newInstance(Policies.class);

Marshaller m = ctx.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(policies, System.out);
try
{
OutputStream os = new FileOutputStream (new File("newpolicies.xml"));
m.marshal(policies, os);
}
catch(Exception e)
{
e.printStackTrace();
}


Evolving Web Application Architectures

Listing 7. Using the JSTL tags for processing of JavaBeans that generate XML

<?xml version=".0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:x="http://java.sun.com/jsp/jstl/xml"
version=".0">

<jsp:directive.page contentType="text/html"/>
<jsp:output omit-xml-declaration="true" />

<c:import url="claims.xsl" var="stylesheet" />


<x:transform doc="${claim.xmlDocument}" xslt="${stylesheet}"/>

</jsp:root>

getXmlElement method we saw in Listing 5, which model, using WALL syntax, can be integrated
generated a fragment of a larger document. Using with XML elements using the transform view
the JSP Expression Language, claim.xmlDocu- model by applying tags (such as those from the
ment refers to the getXmlDocument method of JSTL) that enable XPath queries to be applied to
a JavaBean stored in the scope of the Web page an XML document and the results included in
under the lookup name claim. a server page. During the page processing, the
WALL tags will be turned into the appropriate
adapting to client devices mark-up for the client device while the XPath
elements will provide the content from the source
If an architecture is to be flexible enough to manage XML document. Listing 8 shows part of a server
multiple types of client browsers, the server side page that incorporates WALL tags to generate
page generation has to be able to adapt to different adaptive mark-up, along with XPath queries using
types of client device, which can be identified by the JSTL. The key difference between the XML
the User-Agent field in the HTTP request header. processing in Listing 7 and that in Listing 8 is
If an XML transform layer is in place, the under- that the former uses the transform view pattern,
lying content can easily be adapted, but how it is whereas the latter uses the combined template and
actually adapted is another question. Fortunately, transform view pattern outlined in Figure 8.
there are a number of Java-based technologies that By using the WALL device aware library we
can assist us in adapting server-side content to are able to provide a single server page for many
the client device without manually interrogating different types of device. However we might in
the user-agent field. One example is the wireless addition choose to provide our own customised
abstraction library (WALL), a JSP tag library transform for particular types of device. For
that builds on the wireless universal resource file example, a transform could be used that would
(WURFL) (Passani & Trasatti, 2002). WURFL is take advantage of the rich client technologies
an XML database that is able to map user agent available on the desktop. Many Web 2.0 applica-
information to the capabilities of the originating tions leverage Ajax and Flash, though there are
device, while WALL generates device specific many other possibilities. At the least, we might
mark-up. JSP pages based on the template view apply a cascading style sheet (CSS) to manage


Evolving Web Application Architectures

Listing 8. Combining the WALL library with the JSTL to generate adaptive mark-up

<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>


<%@ taglib uri="/WEB-INF/tld/wall.tld" prefix="wall" %><wall:document>
<wall:xmlpidtd />
<wall:head>
<wall:title enforce_title="true">Claim Display</wall:title>
</wall:head>
<wall:body>
<wall:block>
<wall:br />
<jsp:useBean id="claims" class="webapp.classes.ClaimsBean" />
<x:parse doc="${claims.xmlDocument}" var="xml"/>
<x:forEach select="$xml/claims/claim">
Claim Description: <x:out select="description"/>
<wall:br/>
Claim amount: $<x:out select="amount"/>
<wall:br/>
</x:forEach>
</wall:block>
</wall:body>
</wall:document>

the presentation in the browser. Where the client Ajax applications but also deliver cross platform
is a service end point, and the system provides applications to both desktop and mobile clients.
content as a Web service, direct XSLT transforms To be innovative while broadening reach as much
can be used, since they would not be generating as possible it is necessary both to work within
presentation mark-up but XML documents suit- well supported standards (e.g., parts of the DOM)
able for Web service use. but also to leverage tools that provide flexibility
across platforms, whether it be increasing support
for certain technologies on multiple platforms
coNclusIoN (e.g., JavaScript support in mobile browsers) or
tools that adapt themselves to different clients
In this chapter we have described how Web appli- (e.g., tag libraries for adaptive mark-up.) To sup-
cations have evolved from static content, through port the integration of different approaches and
dynamic content based on a server page template technologies, a highly flexible architecture that
model, to contemporary architectures that rely leverages patterns, layers and XML centric data
heavily on the transformation of XML documents management is necessary. In this chapter we have
and increasingly complex client side applica- described a reference architecture that is based
tions. We have discussed this evolution within a on Java, XML and server side tag libraries that
model that shows how Web technologies tend to supports the transformation of local or service
fragment as a result of innovation, and then find based content into client-adaptive output formats,
broader reach as a result of standardisation. To using a combination of the template view and
develop Web applications in this context we need transform view design patterns. This architecture
to be aware both of new technological develop- takes into account both current thinking on the
ments and also how generic standards support is technologies of Web-based applications and the
evolving. For example we may wish to develop encapsulation and reuse of standard libraries.


Evolving Web Application Architectures

Building Web applications based on this architec- Garrett, J. (2005). Ajax: A new approach to Web
ture should enable developers to gain maximum applications. Retrieved on July, 2007, from
flexibility and reach without relying too heavily http://www.adaptivepath.com/publications/es-
on proprietary tools. says/archives/000385.php
Geary, D. (2001). Advanced JavaServer pages.
Upper Saddle River, NJ: Sun Microsystems Press
rEfErENcEs
/ Prentice Hall.
Abiteboul, S., Buneman, P., & Suciu, D. (2000). Hendler, J. (2001). Agents and the Semantic Web.
Data on the Web - From relations to semistruc- IEEE Intelligent Systems, 16(2), 30-37.
tured data and XML. San Francisco: Morgan
Koch, P. (2006). ppk on JavaScript. Berkeley,
Kaufmann.
CA: New Riders.
Alur, D. Crupi, J., & Malks, D. (2003). Core J2EE
Le Hgaret, P., Whitmer, R., & Wood, L. (2006).
patterns: Best practices and design strategies,
Document object model (DOM). Retrieved on
2nd Edition. Upper Saddle River, NJ: Sun Mi-
July, 2007, from http://www.w3.org/DOM/Over-
crosystems Press / Prentice Hall.
view
Apache Software Foundation. (2006). Apache
Lie, H. W., & Bos, B. (1999). Cascading style
XMLBeans. Retrieved on July, 2007, from http://
sheets: Designing for the Web, 2nd edition. Harlow,
xmlbeans.apache.org/index.html
England: Addison Wesley Longman.
Berners Lee, T. (2004). New top level domains
OReilly, T. (2005). What is Web 2.0: Design
.mobi and .xxx considered harmful. Retrieved
patterns and business models for the next gene-
on January, 2007, from http://www.w3.org/De-
ration of software. Retrieved on July, 2007, from
signIssues/TLD
http://www.oreillynet.com/pub/a/oreilly/tim/
Bosak, J. (1997). XML, Java, and the future of the news/2005/09/30/what-is-web-20.html
Web. Retrieved on July, 2007, from http://www.
Passani, L., & Trasatti, A. (2002). WURFL. Re-
ibiblio.org/pub/sun-info/standards/xml/why/xm-
trieved on July, 2007, from http://wurfl.source-
lapps.htm
forge.net/
Buschmann, F., Meunier, R., Rohnert, H., Som-
Seshadri, G. (1999). Understanding JavaServer
merlad, P., & Stal, M. (1996). Pattern-oriented
pages model 2 architecture: Exploring the MVC
software architecture: A system of patterns.
design pattern. JavaWorld, December.
Chichester: Wiley.
Van Eaton, J. (2005). Outlook Web access - A
Fowler, M. (2003). Patterns of enterprise applica-
catalyst for Web evolution. Retrieved on July,
tion architecture. Boston: Addison-Wesley.
2007, from http://msexchangeteam.com/ar-
Gamma, E., Helm, R., Johnson, R., & Vlissides, chive/2005/06/21/406646.aspx
J. 1995. Design patterns: Elements of reusable
object-oriented software. Reading, MA.: Ad-
dison-Wesley.


0

Chapter IX
Applying Agility to Database
Design
Guoqing Wei
FedEx Corporation, USA

Linda Sherrell
University of Memphis, USA

applyING aGIlITy To daTaBasE coupled partitions and resolves the above conflicts
dEsIGN by applying certain agile practices. The result
is that the database development becomes more
Agile methods are flexible, allowing software de- iterative and incremental . This has the added
velopers to embrace changes during the software benefit of supporting rapid application develop-
development life cycle. But the introduction of ment in a dynamic environment, a fundamental
agile practices into software organizations may characteristic of most Web applications.
cause unhealthy tensions between the developers
and data professionals. The underlying reason is
that when agile methodologies are employed, the BacKGrouNd
two communities use incompatible approaches,
namely simple design and iterative develop- Traditional software Engineering
ment, which are practices associated with all
agile methodologies, and big design up front Traditional software life cycle models, also known
(BDUF), a popular database technique. BDUF as plan-driven or document-driven approaches,
is inflexible, as once the database foundation is treat software development as a linear planning
set, it is difficult to make changes throughout the process where the majority of the planning is
software development life cycle. This chapter completed before design. The waterfall model,
describes a database development method for which consists of five phases, as shown in Figure
a Web environment. Using this method, a data 1, is the most common example. In the require-
professional divides the database into loosely ments phase, developers aim to determine their

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Applying Agility to Database Design

Figure 1. Waterfall model

clients needs based on interviews or question- rent analysis, design or implementation, return to
naires. Then in the analysis phase, developers the requirements phase, and renegotiate the SRS.
analyze and refine the requirements and amend This process may also involve a change control
their findings in a software requirements specifi- board. The development can not continue until
cation (SRS) document, which acts as a contract the requirements have been finalized again; this
between the developers and clients. Once the SRS consumes time and resources. Another drawback
is agreed upon, developers move to the design is that clients do not see the product until the devel-
phase. The implementation phase does not start opment organization finishes the implementation
until completion of the overall design. After the and releases the product. Furthermore the different
product implementation phase, product delivery background knowledge between developers and
to the clients occurs, and finally the software clients can also lead to alternative understand-
development lifecycle moves to the last phase, ings of the SRS with the final product often not
post-delivery maintenance (Schach, 2003). meeting the clients expectations.
About 40% of software development com- To help counteract the limitations of the
panies still use the traditional waterfall model waterfall model, the rapid prototyping software
(Neil & Laplane, 2003). The document-driven life cycle model may be employed. In particular,
approach is seen as an advantage for large, com- this model allows feedback from the customer
plex projects such as safety critical software or during requirements analysis, so there is a bet-
aerospace projects where there may be multiple ter likelihood that the final product will meet the
contractors. The associated standards with their customers needs. Software developers may even
predictability help to mitigate personnel turnover decide to use an incremental model in order to
and allow management to better compare projects gain feedback from the customer multiple times
(Boehm & Turner, 2004). in the software life cycle. Note that this model
However, there are several drawbacks to the still requires extensive planning of the overall
waterfall model. In particular, when the require- architectural design before increments are imple-
ments change, the developers have to stop the cur- mented (Schach, 2003).


Applying Agility to Database Design

Although rapid prototyping and incremental Customer collaboration over contract negotia-
development allow for more feedback from the tion.
customer than the waterfall model, plan-driven Responding to change over following a plan.
approaches are still more appropriate when the
requirements are mostly stable (Boehm & Turner, That is, while there is value in the items on the
2004). In modern software development, it is al- right, we value the items on the left more
most impossible to ask stakeholders to give all of (Boehm & Turner, 2004, p. 195).
the requirements at the beginning of the project and
expect them not to make changes later on. Projects In addition, a truly agile method must be
with dynamic requirements due to rapidly chang- iterative (several cycles) and incremental (not
ing markets are more commonplace. Especially deliver the product all at once) (Boehm & Turner,
in the Internet-based economy, clients not only 2004, p. 17)
require the flexibility to change or add require- Many software developers or companies have
ments during the software development lifecycle, begun to use agile methodologies (Lindvall, et al.,
but they also want quick product delivery. 2002; Sanja, 2005). For example, Sabre Airline
In summary, plan-driven methodologies are Solutions Corporation has advocated using and
especially problematic for Web applications for adapting XP throughout the organization for many
three main reasons. First, most Web applications years. To date, there are over 30 teams, with more
require rapid application development. Second, than 300 developers that have successfully used
Web applications are highly dynamic in nature, XP to develop projects (Layman, Williams, and
and third, feedback from the customer should not Cunningham, 2004). At Microsoft, Scrum has
wait until final delivery of the product. been accepted and used in different development
teams (Schwaber, 2003; Taft, 2005).
modern agile software Engineering
How agile methodologies resolve
In order to better satisfy the demands of soft- Traditional limitations
ware development with a dynamic nature, agile
software engineering approaches were invented. As mentioned above, there are two major limi-
Some of the agile methodologies currently in use tations to the waterfall modelthe inability to
include Scrum (1986), Schwaber & Beedle (2002), facilitate changing requirements and the release
Crystal (1996), Cockburn (2005), Feature Driven of the product to the customer near the end of the
Development (1995), Palmer & Felsing (2002), software life cycle. Agile methodologies solve
eXtreme Programming (1996), and Beck (2005). these problems with their incremental and iterative
All the agile methodologies share a set of com- development philosophy. To illustrate, we use the
mon goals, which were formalized in the Agile life cycle model of extreme programming (XP)
Manifesto in 2001. The following quote clearly (Figure 2). Projects are divided into a number of
outlines the agile objectives in relationship to increments, and each increment includes user
traditional software development. stories that are prioritized by the customer. User
stories consist of one or two sentences on 3 X
Individuals and interactions over processes and 5 index cards. The implementation (see inside
tools. the dashed line frame) includes a number of
Working software over comprehensive documen- iterations. Each iteration typically lasting about
tation. two weeks, implements one piece of the product.
During the implementation, customers can revise


Applying Agility to Database Design

Figure 2. eXtreme programming process

their requirements whenever they think it is neces- Is daTaBasE dEvElopmENT


sary. Based on the changes, software developers rEady for aGIlE mETHods?
re-factor the code to satisfy the customers. At
the end of each iteration the developers invite the As previously mentioned, compared to conven-
customers to perform acceptance testing to make tional approaches, agile software development
sure this piece of the product meets their needs. focuses on working code and customer col-
The incremental and iterative development limits laboration as opposed to contract negotiation,
the effects of the requirements change since the and responding to change other than following
change only affects the current piece of the project. a plan (Boehm & Turner, 2004). This is exactly
Even in the worst case, a piece of the code can what many project stakeholders need in todays
easily be completely redone (Beck, 2005). In ad- rapidly changing marketplace; however, in the
dition, stakeholders gain a concrete feeling about data professional community, common wisdom
the current product during acceptance testing at dictates that the entire data model be carefully
the end of each iteration thereby resolving the designed up front and protected from change
second limitation of the waterfall model. thereafter (Harriman, Leo, & Hodegetts, 2004,
One of the original practices of XP is the p. 100). The reason for this mandate is that the
metaphor, an expression or an analogy used to data model is usually the bottom layer of the ap-
foster project understanding during develop- plication architecture, as shown in Figure 3.
ment. Throughout the remainder of this chapter, The test code, applications, input data file, and
the authors will use some metaphors to give the output data file all rely on the database. Therefore,
reader a flavor of this practice. For more informa- normally database refactoring costs more than
tion about the 13 XP practices as described by code refactoring. For example, if the require-
Jeffries (2001) and the authors experiences in a ment causes the datas column value to change
previous agile project, the interested reader may from 10 to 10.0, in order to preserve informational
refer to (Mills, et. al., 2006). semantics along with behavioral semantics, the
associated variable type must be changed from


Applying Agility to Database Design

Figure 3. Application architecture

Figure 4. Big design up front process

integer to double or float in the application and Big design up front


testing code. Especially when there are mul-
tiple applications that rely on one database, the Based on the above reasons, database development
propagation of changes affect each of the other is still a linear and serial process. The leading
components and their effects are widespread. The development approach for databases is big design
situation is even worse when the development team up front (BDUF), as illustrated in Figure 4. In the
structure has the software developers responsible beginning of development, the data professionals
for the design and implementation of the GUI gather, analyze and finalize all of the requirements
and the corresponding application, while the data from the clients. Then the data professionals
professionals focus on building the data model. design the conceptual data model based on the
In particular, refactoring the database will also requirements. They define a database prototype
require refactoring by the software developer. with all the entities and their relationships. Next


Applying Agility to Database Design

the data professionals define the attributes and the base based on the initial requirements and then
corresponding data type for each entity. In other selected agile practices to develop the software
words, the conceptual model is transformed to the application. However, they soon experienced
logical data model. At this stage, the data profes- difficulties. Because of the lack of complete
sionals must determine the relationships between details in the initial requirements, they designed
entities. Finally, based on the logical data model, and implemented entities and attributes in the
the physical data model will be implemented by anticipation of future needs. Nevertheless, as the
the data definition language (DDL) and stored on requirements kept changing, the early anticipation
the hard disk. Also at this time, each attributes designs became even more speculative, and the
data constraints will be defined. authors were not sure whether it was worth it to
BDUF works perfectly with the conventional implement the designs. Therefore, in order to get
software engineering approach. The software rid of the distraction from speculative designs, they
developers work with data professionals together eliminated the speculative attributes and entities
acquiring and analyzing the requirements in the before coding an iteration, and implemented the
requirements and analysis phase. In the design database to just fit the current requirements.
phase, the domain model and data model are Morien (2005) explains the focal entities pro-
designed by each community respectively. Then totyping approach. Instead of fully implement-
in the implementation phase, software developers ing a database based on the initial requirements,
use programming languages such as Java or C++ he uses the Entity Modeling technique, which
to pass data to the database, and data profession- focuses on identifying the entities and their rela-
als use the data manipulation language (DML) to tionships; then, he transfers this information to
store the data and update the database. the physical database model. After developing a
However, apparently BDUF is not suitable for corresponding part of the application, delivery of
agile approaches. When the software developers this partial system and database occurs to allow
start the first iteration, there is no database for the client to validate. The development cycle is
them because data professionals are still waiting repeated so that database development becomes
to finalize the whole set of requirements. iterative and incremental.

related literature Initial Experience with agile


practices
Ambler (2003) points out that it is possible to
adapt agile methodologies to make database de-
velopment more flexible. He lists all the possible Based on the related literature above, the authors
practices that could be suitable for agile database attempted to apply both the agile philosophy and
development, such as applying agile modeling its practices to database development. Although in
(Ambler, 2004), using test-driven development, the beginning, they discovered database develop-
and taking advantage of database encapsulation ment can be more flexible when agile practices are
techniques and development tools. utilized, later on they noted difficulties in fully
Harriman, Leo, and Hodegetts (2004) report applying these practices. Note that agile methods
on how they switched from BDUF to a just in recommend performing the simplest design for an
time design approach for database development. iteration. One reason is that in a highly dynamic
In the beginning of their project, these authors environment, the requirements could change at
used the BDUF approach to implement the data- anytime. Therefore, any anticipated design for


Applying Agility to Database Design

the future situation could become useless. As an As with any system development, some up-front
example, in the beginning of a project, we can analysis must be undertaken. How much analysis,
model a laptop as a laptop entity with attributes and how complete that analysis must be, is the
such as serial number, manufacturer, size, color major point of difference between the Heavyweight
and all its components. However, if in the final Models of development, and the alternative Light-
requirements, it turns out that the laptop entity weight / Evolutionary development models.
only needs to store its serial number, then the
original model of the laptop was only speculative, Based on these findings, the authors decided
and it must model back as an attribute within to include up front analysis in agile database
other entities. This change will impact all of development to balance the two techniques. To
the relationships that were associated with the the authors knowledge, there is no literature or
laptop entity, and propagate up to the correlated guidance on how to balance or adjust up-front
domain models and the related code. Therefore, design with agile practices in a database devel-
it is important to apply the rule of thumb YAGNI opment environment. Although Morein claims
(you are not going to need it) (Beck, 2005). In that some of up-front analysis is necessary in
other words, only include the necessary features. agile development, he does not have any further
However, with too simple a design, it is hard to discussion. According to the authors hypothesis,
make a projects development move forward. if the data professionals can have a piece of a
For example, if we originally define the laptop high stable database ready for an iteration using
as the attribute, serial number, but later on the agile development, when the software develop-
requirements indicate that the laptop should be ers start coding the application, the developers
modeled as an entity, then the database model can focus on writing the application code, and
needs to change and the impact for the develop- not be distracted by the database revision. If the
ment will occur again. With agile development, data professionals can continue to deliver a high
simple design may result in code that smells bad stable database piece to the software developers,
(Beck, 2005), so developers need to be ready to the entire development process can become itera-
re-factor the code. Similarly, in agile database tive and incremental. So now the question is how
development the database can also smell bad. No to design this database piece? The authors have
matter whether we use just in time or focal learned that dividing the initial database model
entities prototyping, as long as requirements into loosely coupled partitions greatly helps to
changes affect the data model structure, we are achieve this objective.
not able to avoid database re-factoring. To test their hypothesis about combining agile
So applying agility in database development, and database practices, the authors used their new
but at the same time reducing database refactoring approach in two projectsan online inventory
as much as possible becomes the major challenge. system (OIS) and the marketing simulation study
As mentioned above, the essential idea of agile manager (MSSM), both of which are described
methods is iterative and incremental development. in the next section. OIS was built using PHP and
Also in order to reduce database refactoring, data MySQL, but not using object-oriented and model-
professionals must do enough up front analysis in view-controller (MVC) design pattern technolo-
database development as Morein (2005, p. 105) gies. MSSM was built with JSP, Java, MySQL
points out, and the MVC framework, Struts, and the object-
relational mapping framework, Hibernate.


Applying Agility to Database Design

casE sTudIEs There are two different report levels for both
XYZ and its customers. The high level reports
online Inventory system display the overview for the filters, such as how
many filters are received, cleaned or returned
Initial Requirements based on the time period or shipment. The low
level reports contain detailed descriptions for
The online inventory system is developed for a each filter, such as, the filter attribute (barcode,
company (called XYZ in this chapter) to record size, color, manufacturer), filter status (received,
the number of filters the company receives, cleans, cleaned, destroyed, warehousing, shipped), and
and ships to their customers. The system can au- when and how the filter was cleaned, who cleaned
tomatically generate online reports for managers it and so on.
of XYZ and their customers, who own the filters,
to track filter status based on the time period or Database Development
the shipments.
Every employee and customer must register In the online inventory system, based on up front
an account with the appropriate security level analysis for the initial requirements, the authors
in the system. Each account can only access or divided the initial database model into four
modify the current or lower security levels data. partitions: User Account; Filter Receive; Filter
For instance, a received level employee account Cleaning; and Filter Shipping. The User Account
can only access the subsystem that is responsible partition only includes the entities that store the
for receiving the filter, but not the section to clean information related to the Web user, such as the
the filter, while the filter cleaner account can username, password, contact information, and
review how many filters were received for clean- associated customer with his/her company in-
ing. Similarly, for the customers, for example, a formation. The Receive partition has the entities
manager of customer As branch in Memphis only that store all filters attributes, such as the size,
can access the filter data in the Memphis branch, color, manufacturer, and the receive status. The
but a president of customer A can access all the Cleaning partition stores the filter cleaning data
filter data throughout the country. such as remove dusty weight, post test record,
When the dirty filters first arrive at company cleaned status and so on. The last partition stores
XYZ, the filter receivers scan the filter barcode the shipping information such as the date and time
(filterID) into the system. If the filter is not in the for shipping and the track number. As shown in
system, the application must remind the user to Figure 5, these four partitions are loosely coupled.
register the filter first. Only a registered filter can There is only one foreign key (customerID) among
go on to the clean process and XYZ sends back the partitions. The foreign key customerID is a
only cleaned filters to its customers. A filter can reference to the customer that owns the filter.
be marked as bad if it fails to pass the post test If we know a filterID in the Receive partition, we
after cleaning. Bad filters must be destroyed, can use its associated customerID to retrieve the
and this information must be recorded in the customer information in the User Account parti-
system. The system monitors each filters status tion. Similarly the filterID can be used to join the
by its barcode, which is scanned in each step; entities among the Receive, Cleaning and Shipping
the process provides insurance that there is no partitions to retrieve the filter information and its
invalid operation. corresponding status.


Applying Agility to Database Design

Figure 5. Online inventory system database partitions

Once the partitions are defined, the next step is marketing simulation study manager
to conduct up front analysis for the partition that
will be used for the current development itera- Initial Requirements
tion. In the dynamic environment, it is difficult
for the clients to specify all the requirements in The marketing simulation study manager (MSSM)
the beginning, but it is possible to capture most is a Web-based application with a database. The
of the requirements for the design in a single application allows researchers (investigators) to
partition of the database. If there are difficulties predefine, or generate their own marketing re-
for clients to specify the requirements, as with search Web sites (research studies) or to modify
agile practices, you can always develop a quick existing studies through Web manipulation fea-
prototype to facilitate requirements elicitation. tures. Each of these research Web sites can simu-
Rapid prototyping is especially helpful when late a set of marketing experiments. Inside each
there are not enough requirements to start the experiment, there will be a number of questions
development. Once the analysis is completed, we for the respondent to answer about one product.
can implement both the logic data model and the Furthermore, based on whether the experiment
physical data model for the partition. will be visited by a control group or one of an
Notice partitioning the database is not based experimental group of respondents, the site may
on the task load of an agile iteration. In agile or may not have media files (stimuli), which could
development, an iteration is defined by its time be videos, audios or pictures for that product. The
period (e.g., two weeks in eXtreme Programming), researchers will compare and find out the differ-
and each iteration can have various tasks. The ence between these answers based on whether
basic idea behind partitioning the database is to the respondents experience the stimuli, and then
locate and to group together the entities that are conclude how these stimuli could affect the other
highly coupled, eliminating entities exhibiting no products in the market.
or low coupling. So it is normal if the partition Each customer (respondent) of a research study
over fits the current development iteration by Website must register an account, if he or she wants
containing entities that are not for the current to participate in an experiment. Respondents do
application development. For example, to imple- not know if they are members of a control group
ment an account management system for Web or an experimental group. Group assignments
application, it may take more than one iteration, are made manually by the investigator or auto-
but all the entities of the account management matically by the software application. Each group
partition should be designed and implemented can visit only one experiment per study. As the
before the first iteration starts.


Applying Agility to Database Design

respondents go through their experiments, the from the investigator or respondent, he or she can
answers from each respondent are saved in the determine which study belongs to which investiga-
database. Finally, the MSSM resulting data will be tor and which respondents are registered to that
transferred from the database to the researchers study. Also through the study id, the study data
analytical tools (e.g., SAS). can be provided to the investigator. Similarly, one
only needs the question ids of a study to reference
Database Development the questions from the result partition; then it can
be determined which answer is corresponding to
The database development approach has two steps. which question in which study.
The first step is to analyze the initial requirements In an iteration that implements the features to
and to define the database structure, dividing it into upload the stimuli and input the Web page text
a number of loosely coupled partitions. Second, information, questionnaires and multiple choice
based on the software development requests, the answers for the study, the software developers only
data professionals choose a partition, and using need the stimuli, text information and question-
the up-front approach, analyze, define, and imple- naires entities for that iteration. But again if these
ment entities within that partition. entities are highly coupled with other entities (e.g.,
In the MSSM project, based on the initial the study entity), then all related entities must be
requirements, the authors split the database into in the same database partition as well. After the
three components. The first component stores the definition of each partition of the database is com-
Web users information, such as the administra- plete, the developer can start using agile practices
tor, investigators, and respondents. The second to gather enough requirements for the partition
part stores the necessary data for investigators and implement the physical data model.
to create their research or study Web sites: for Compared to the work of Harriman, Leo,
instance, the number of experiments that will and Hodegetts (2004) and Morein (2005), the
be in a study; what are the questions for the re- main difference here is that before the start of an
spondent in each experiment; what are the stimuli iteration, there is a fully implemented database
that will be displayed in each experiment, and so partition for the software developers. Although, in
on. Finally, the third partition of the database is a dynamic environment, the database piece could
a collection of tables that store the respondents be refactored due to a requirements revision, our
answers or the study results of each Website. As approach is better than the just in time design
shown in Figure 6, these three partitions exhibit or the focal entities prototyping approach.
low coupling. In other words, no matter how Database revisions are more likely when teams
much the requirements relating to the Web user are composed of software developers who take on
are revised, the changes will not affect the data both the roles of developer and data professional,
model design for the study partition. As long as because of the technologies, culture, visions and
one can acquire the identification id of the study priority differences between the software devel-

Figure 6. MSSM database partitions


Applying Agility to Database Design

opers and data professionals. In fact, when the The object-relational Impedance
software developer and data professional is the mismatch
same individual, the database maintenance may
become unwieldy because the underlying para- In MSSM, we are using both object-oriented and
digms required for each role are different. When relational technologies, because they both are
developers implement the database, usually the leading technologies in programming and data-
implementation is based on their perspective as base environments, and both are widely used by
opposed to that of the data professional. In order most organizations. But it is clear that the match
to resolve this issue the software developers and between these two technologies is not perfect.
data professionals should be responsible for the The problem is called the object-relational im-
application and database development respectively pedance mismatch (Ambler, 2003). So far there
based on a design agreement (Ambler, 2003). is no perfect solution for this problem, since to
Furthermore, applying some techniques such as adapt either, the object-oriented or the relational
database encapsulation will help to resolve the database technologies to complement the other,
technology differences between the software the corresponding site will violate the rules of one
developer and the data professional. For more of the technologies. One author even describes
information on the difference in roles between this problem as the Vietnam War in computer
the software developer and the data professional, science (Newward, 2006). The history behind
please refer to Ambler (2003).

Figure 7. Object-relational impedance mismatch

0
Applying Agility to Database Design

this mismatch involves the different technical other words, the database should hide both the
and cultural backgrounds between the software details of the implementation and the physical
and data communities. schema from the software developers. However,
According to the documentation of Hibernate the database does provide the services for the
(2006), the attribute of a class is called a property, software developers to create, read, update, and
whereas the attribute of a database entity is called delete (CRUD) their business objects persistently
an attribute. A predominant impedance mismatch (Ambler, 2003).
between these two technological features appears The advantage of database encapsulation is
in Figure 7. Note that the information in the figure obvious. It dramatically reduces the coupling
is from the MSSM case study. On the left, is a between the object schema and the data schema.
UML diagram containing Investigator and Study Usually the database encapsulation layer lies
classes. Similarly, the UML diagram for the In- between the business object and the data model
vestigator and Study entities is on the right. The layers, and all the business objects need to talk
diagrams look analogous, as both Investigator and to just the database encapsulation layer instead
Study classes and associated entities have similar of communicating with the database.
properties and attributes. The only major differ- Ambler lists three database encapsulation
ence is that there is one more associative table, approaches: (1) Implement the data access object
Investigator Study, between the Investigator (DAO) layer; (2) Use the transparent persistence
and Study entities in the entity model. The reason technique; (3) Use enterprise service. In MSSM,
for this additional table in the MSSM database we selected option two, because it has a big ad-
is that an Investigator needs to be able to create vantage over the other two options. In particular,
one or more studies in MSSM. Note that a study the SQL can automatically be generated by the
may involve a group of investigators. Therefore persistence framework on the fly. Therefore, the
the relationship between the Investigator and the usage of the transparent persistence technique can
Study entities is a many-to-many relationship. reduce the code significantly by a factor of four
Since relational databases do not support this type to five when compared to the conventional Java
of relationship, typically an associative table will database connectivity (JDBC) call-level interfaces
be introduced between the entities with multi- (Barry & Stanienda, 1998).
plicity greater than one. Since object technology
naturally supports the many-to-many relationship, Hibernate
there is no need for an association class between
the respective classes (Ambler, 2003). Hibernate is the transparent persistence frame-
work used in MSSM. In traditional JDBC call-level
database Encapsulation strategies interfaces, the developers are required to write a
large amount of code to store and retrieve busi-
Ambler suggests that an agile database administra- ness objects to and from the database. This coding
tor (DBA) should have the ability to work between job is usually complex, tedious and costly (Baure
both the object and data worlds and between the & King, 2004). However, Hibernate can resolve
agile and traditional worlds. And furthermore, this coding issue well, as it can provide a batch
he recommends using the database encapsula- of highly flexible methods to persistence objects
tion strategies to overcome the object-relational in the relational database. For more information
mismatch. (Ambler, 2003) about how to use Hibernate, please refer to the
In agile database development, ideally the Hibernate documentation (2006) or Peak and
database system should act as a black box. In Heudecker (2005).


Applying Agility to Database Design

Figure 8. Architecture of hibernate framework

Figure 8 (adapted from (Ambler, 2003)) shows resolve the object-relational impedance mismatch,
the layout among the business objects, Hibernate, Hibernate provides a sophisticated idea. Recall
and the database. Because the Hibernate layer lies that the mismatch is the additional associative
between the application and the database, it helps table caused by the many-to-many relationship
separate the objects schema and the data schema. between the Investigator and Study entities. In Hi-
The advantage of Hibernate is it provides a facil- bernate, data professionals just need to specify
ity to map the business objects to the relational this relationship in both the Investigator and Study
database and automates the loading and saving of mapping files. When the objects are mapped
objects based on the configuration of the mapping to the database, Hibernate will take care of the
files (Peak & Heudecker, 2005). mismatch. Software programmers can write their
For instance, in Figure 7 there are both Inves- object-oriented code as usual. For example when
tigator and Study classes and entities. Hibernate assigning an Investigator to a Study, programmers
uses a mapping file for each of these classes, just need to use a Java collection, (e.g., List, Set or
respectively mapping all the properties from a Map) to add the Investigator object to the collection
class to its entity or entities in the database. property in the Study class:
To store the Investigator and Study objects in
the database, software developers simply need study.getInvestigator( ).add(Investigator);

to write the code below:


Whenever this line of code is running, Hiber-
Investigator investigator = new Investigator ( ); nate will automatically generate the SQL state-
Study study = new study( ); ment to insert a record into the associative table
investigator.setPropertiesValue(propertiesValue);
study.setPropertiesValue(propertiesValue); with a pair of correlated identifies: investigatorId
Session.save(investigator); and studyId.
Session.save(study);
Session.getTransaction.commit( );
decoupling, decoupling, decoupling
Similarly, to retrieve an Investigator or one Study
object from the database, the following code is Although the persistence framework facilitates
appropriate good design, the encapsulation strategies are
equally as important in Web applications. As
Session.load(Investigator.class, investigatorId); Fowler (2001, p. 96) points out,
Session.load(Study.class, studyId);
Any code that does anything with a user interface
Hibernate will generate the SQL statements should only involve user interface codeit should
dynamically and finish saving or loading the not manipulate the information other than to
objects to and from the database. Furthermore to format it for display.


Applying Agility to Database Design

A layered Approach and application code. One drawback of the mix


is that page designers are very easily distracted
The (Web) application component in Figure 8 may and annoyed by application code. It is similar
be further refined into four different Web logic for the application developers; they do not want
layersinput logic, application logic, business to see the HTML tags in their Java code (Davis,
logic, and presentation (Knight & Dai, 2002). The 2001). Therefore separating the Web layers helps
code for the input logic should handle the HTTP each community focus on their respective jobs.
requests from Web users (such as validate the input A second problem with mixing HTML and Java
data integrity and format) and store the user input is that, many code debugging and configuration
data for the application controller. The application technologies are not supported in the server page;
logic code determines the correct action to respond so decoupling the Web interface from the Java
to the Web users requests, (e.g., talk to business code facilitates the debugging activities for the
objects to access the database, or direct forward software programmer. Finally, decoupling means
to another Web page and display it to the user.) that when Web maintenance is performed, Web
Business logic is responsible for accessing the page designers and software programmers do
database, storing the data passed from the Web not need go through the other communitys code.
page, and retrieving the data for presentation. Furthermore if a layer needs to be changed, it
Presentation refers to the Web interface or Web will not affect other layers, so Web maintenance
pages implemented in HTML, PHP or JSP that is much easier.
will display in the Web users browser.
It may seem that dividing a project into these Model-View-Controller and Struts
four layers will make the architecture ponderous,
thereby difficult to develop and maintain. But the The ideas of Knight and Dai actually are based
layers do not have this effect. In the real world, the on the model-view-controller (MVC) design
Web interfaces are usually designed and imple- pattern (Davis, 2001). In the Web development
mented by Web page designers. Just as software environment, the Model represents the business
programmers do not need to know SQL, page objects in the business layer. The View is the Web
designers do not need to know the programming interface layer and the controller layer includes
language (e.g., Java). High coupling of the Web both the input and the application logic. Therefore
interface with other layers will mix the HTML separating a Web application into three logics areas

Figure 9. MSSM architecture


Applying Agility to Database Design

is equal to applying the MVC design pattern to in the third group first, data professionals can
Web development. start the database design early and, in the mean
However, implementing the MVC design pat- time, the software developers can still gather
tern from scratch is time consuming; a better way their requirements for the application design. The
is to use an existing MVC framework. Since the parallel activities can reduce the time for agile
authors of the MSSM project are using JSP and database development.
Java as implementation languages, the preferred
framework is Struts. Struts is an open-source database refactoring
framework and fully implements the MVC design
pattern. Although several other frameworks are In a highly dynamic development environment,
excellent, none of these frameworks offer the refactoring can not be avoided. This section de-
broad-range of features and functionality for scribes the authors experiences from refactoring
which Struts is known (Siggelkow, 2005, p. viii). the database caused by the requirements changes
The authors objective is to achieve an architecture in MSSM. The associated implementation for a
with the minimal amount of coupling. See Figure 9 requirements revision requires at least 7 steps,
for an overall view and clarification of the MSSM as shown below:
architecture. For more information about Struts,
and how to use it, please refer to Siggelkow (2005) 1. Revise the entities tables by inserting (delet-
or the Struts User Guide (2005). ing) the attributes.
2. Change the Hibernate mapping file for the
affected tables.
ExpErIENcE rEporT 3. Add (delete) the corresponding properties
to the associate business objects.
Since agile methodologies advocate simple de- 4. Revise the Java code in the Struts action
sign and short release times, there was initially class (the application logic code) that needs
some concern that the amount of time spent on to access those business objects.
database analysis would slow down develop- 5. Revise related Struts Form Beans (the input
ment. However, using another metaphor, just as logic).
sharpening the chefs knife will not slow down 6. Revise the remainder of the related code due
how fast he cuts through foods, some up-front to the above changes (e.g., testing code)
analysis makes the database much more stable 7. Add the input field for the attributes in the
and robust. When the application implementation corresponding Web pages.
is ongoing, there is no speculation about entities
or attributes in the database. Therefore, the up The authors have discovered that the cost of
front analysis significantly reduces the chance changes in agile database development is still
of database refactoring, allowing the software much higher than the cost of revisions to applica-
developers to focus on application development tion code. More research needs to be undertaken
and code revision. to see if it is possible to further reduce the com-
A valuable lesson the authors learned during plexity and cost of database refactoring.
the development of MSSM is in Internet-based Based on the authors experiences, having a
projects, requirements can be classified into three partition database in place prior to each iteration
basic groups:(1) Web interface; (2) Web applica- is absolutely necessary in agile database devel-
tion; and (3) database design and implementation. opment. Although the partitions do not facilitate
So by focusing on the gathering of requirements database refactoring, they can dramatically reduce


Applying Agility to Database Design

the chance of refactoring. In other words, in soft- According to Hibernate Reference Docu-
ware development projects, database refactoring mentation version 3.1.1 (2006), when using the
should be limited to requirements revision, not object-relational mapping, Hibernate will generate
speculative design. Another big advantage of our two SQL statements. The extra SQL is used to
approach is since the database is incrementally retrieve a StudyType instance for the type property
and iteratively developed, when the database of the Study object, because in the business model,
refactoring happens, it affects only the current the type property is an instance of the StudyType
database partition. Compared to the BDUF, our class. So before Hibernate can insert the Study
approach is able to avoid the refactoring of the into the database, it has to fill the type property
entire database. for that Study object.
The one-to-many relationship is the most com-
database performance mon relationship in the relational database. A child
table can also have more than one foreign key ref-
The object-relational mapping technique provided erence to a different parent table. Furthermore, an
by Hibernate greatly benefits the application de- Internet-based system needs to handle many users
velopment. Hibernate users do not need to write accessing the database simultaneously. Therefore
as many SQL statements to create, read, update generating extra SQL statements to perform the
and delete database operations. Although there database operation could slow down the database
are many advantages of the object-relational map- performance. For more information about other
ping approach, there is a metaphor that we apply object-relational mapping data retrieval concerns,
to the database world, namely, there is no free please refer to Neward (2006).
lunch. The reason for this claim is Hibernate
always needs to generate extra SQL statements
when inserting a new data object into the database coNclusIoN
if that object was mapped as a child table.
In a relational database, a foreign key of a child Applying agile practices and iterative and incre-
table references a tuple (record or instance) of its mental development to the database arena makes
parent table. In the object-relational mapping, a the database development better suited to agile
tuple usually represents an instance, which is an software engineering processes. Moreover, the
object of the class. For example, in MSSM, each whole application development process can be
Study object associates to one StudyType, and the dynamic in nature, thereby more readily satisfying
typeID references an instance of Study type in the the clients needs. However, due to the high cost
StudyType table. A Studytype can include one or more of database refactoring, data professionals should
than one Study. So the Study table is the child table balance agility practices and up front analysis
and the StudyType is the parent table. The Study and during development. In particular, by introducing
StudyType tables exhibit a one-to-many relation- some up front analysis, where a database partition
ship. In the object-relational mapping, the typeID is in place prior to all agile development itera-
attribute of Study maps to the studyType class. But tions, data professionals can effectively provide
the drawback of this mapping is obvious. Without the necessary balance. Also using encapsulation
using the object-relational mapping, the system techniques can decouple the database from the ap-
creates a new Study that needs to persist in the plication as well as the layers inside the application.
database. The corresponding SQL follows: Decoupling allows each development community
to focus on its own project responsibilities, and
INSERT INTO Study VAULES (typeID, StudyAttribute- significantly improves the development process.
value, StudyAttributevalue )


Applying Agility to Database Design

Furthermore, decoupling reduces the difficulty large, complex projects. Just as the metaphor
of maintenance. says there is no silver bullet; agile methods are
more suitable in the dynamic development envi-
future Trends ronment, but plan-driven approaches have more
advantages for large, complex projects when the
Test-driven development (TDD) or test-first de- requirements are mostly stable. Therefore, further
velopment is a characteristic of some of the agile combinations of plan-driven and agile methods
methods (e.g., XP) As the name suggests, test-first may be required to handle database modeling,
development means software developers design performance, and robustness in large database
and implement the test cases before they write the project environments.
application code. The approach is a good way to
facilitate the design process, and it can guarantee
100 percent test coverage of the application code acKNoWlEdGmENT
(Ambler, 2003; Beck, 2005). According to our
experiences, test-driven database development
The authors would like to thank Mr. David Mills
(TDDD) is not as easy as test-driven applica-
and Dr. Dan Sherrell. Mills is a graduate student
tion development. Most test-driven approaches
in the Department of Computer Science at the
heavily rely on third party tools. For software
University of Memphis and served as Weis agile
applications, the xUnit family is the most popular
partner in the MSSM project. His focus in the
test-driven framework. However, in the database
project was on the Web site design and imple-
world, finding tool support for test-driven database
mentation. Dr. Dan Sherrell, who is the client
development is the big challenge. The open source
for MSSM, is a professor in the Department of
tool, DBunit, is still an emerging technology
Marketing and Supply Chain Management at the
(Ambler, 2003). Two commercial tools found in
University of Memphis.
(Ambler, 2007) are available only for database
internal testing. The tools are Qute, a Quest unit
testing engine for Oracle, and the testing tool in
rEfErENcEs
Visual Studio Team System for an SQL server.
In summary, it still remains to be seen how much
Ambler, S. W. (2003). Agile database techniques.
test-driven development will be used in the future
Indianopolis, IN: Wiley.
for database development.
Although the object-relational mapping Ambler, S. W. (2004). The object primer: Agile
(ORM) technique may be considered as one of the modeling-driven development with UML 2.0,
methods to solve the object relational impedance Cambridge University Press.
mismatch problem, it does have a disadvantage
Ambler, S.W. (2007). Test-driven development
when compared to the data access object (DAO)
of relational database. IEEE Software, 24(3),
technique. ORM generates the queries on the fly,
37-43.
which makes the query tuning much harder to
do than with the DAO. In other words, the data Barry, D., & Stanienda, T. (1998). Solving the
retrieval mechanism of ORM limits its database Java object storage problem. IEEE Computer,
performance. Future research should address 31(11), 22-40.
ORMs performance issues.
Another focus for future study is the scal- Baure, C., and King, G. (2004). Hibernate in Ac-
ability of our database partition approach to tion. Greenwich, CT: Manning Publications.


Applying Agility to Database Design

Beck, K. (2005). Extreme programming explained. Mills, D. L., Sherrell, L. B., Boydstun, J., & Wei, G.
Upper Saddle River, NJ: Pearson Education. (2006). Experiences using agile software develop-
ment for a shopping simulation. In Proccedings
Boehm, B., & Turner, R. (2004). Balancing agility
of IEEE Southeast Con 2006 (pp. 285-290).
and discipline. Boston: Pearson Education.
Morein, R. (2005). Agile development of the
Cavangess, C. (2004). Programming Jakarta
databasea focal entity prototyping approach.
struts. Sebastopol, CA: OReilly.
In Proceedings of the Agile Development Confer-
Cockburn, A. (2005). Crystal clear, A human- ence, (pp. 103-110).
powered methodology for small teams. Boston:
Neill, C., & Laplane, P. (2003). Requirements
Addison-Wesley.
engineering: The state of the practice, IEEE
Davis, M. (2001, February) Struts, an open-source Software, 20(6), 40-45.
MVC implementation. Retrieved on January 3,
Newward, T. (2006). The Vietnam of computer
2007, from http://www-128.ibm.com/developer-
science. Retrieved on May 28, 2007, from http://
works/java/library/j-struts/
blogs.tedneward.com/2006/06/26/The+Vietnam+
Fowler, M. (2001). Separating user interface code, Of+Computer+Science.aspx
IEEE Software, 18(2), 96-97.
Palmer, S. R., & Felsing, J. M. (2002). A practi-
Harriman, A., Leo, M., & Hodegetts, P. (2004) cal guide to feature-driven development. Upper
Emergent database design: Liberating database Saddle River, NJ: Prentice-Hall.
development with agile practices. In Proceed-
Peak, P., & Heudecker, N. (2005). Hibernate
ings of the Agile Development Conference, (pp.
quickly. Greenwich, CT: Manning Publications.
100-105).
Sanja, A. (2005). Overview of agile management
Hibernate (2006). Hibernate reference documen-
project perfect. White Paper. Retrieved on Janu-
tation version 3.1.1. Retrieved on January 2, 2007,
ary 2, 2007 from http://www.projectperfect.com.
from http://www.hibernate.org/5.html
au/info_agile_programming.php
Jeffries, R. (2001, November). What is eXtreme
Schach, S. R. (2003). Object-oriented & classi-
programming? XP Magazine. [Electronic version]
cal software engineering. New York: McGraw-
Retrieved on January, 2006, from http://www.
Hill.
xprogramming.com/xpmag/whatisxp.htm
Schwaber, K. (2003). Agile project management
Knight, A., & Dai, N (2002). Objects and the
with scrum. Microsoft Press.
Web. IEEE Software, 19(2), 51-59.
Schwaber, K., & Beedle, M. (2002). Agile software
Layman, L., Williams, L., & Cunningham, L.
development with scrum. Upper Saddle River,
(2004). Exploring eXtreme programming in con-
NJ: Prentice Hall.
text: An industrial case study. In Proceedings of
the Agile Development Conference (pp. 32-41). Siggelkow, B. (2005). Jakarta struts cookbook.
Sebastopol, CA: OReilly.
Lindvall, M., Basili, V., Boehm, B., Costa, P.,
Dangle, K., Shull, F., Tesoriero, R., Williams, Steiner, D. H., & Palmer, D. W. (2004). Extreme
L., & Zelkowitz, M. (2002). Empirical findings software engineering. Upper Saddle River, NJ:
in agile methods. In Proceedings of XP/Agile Pearson Education.
Universe 2002, (pp. 197-207).


Applying Agility to Database Design

Struts (2005). The Struts user guide. Retrieved Taft, D. K. (2005, November 11). Microsoft
on January 2, 2007, from http://struts.apache. lauds Scrum method for software projects.
org/struts-doc-1.2.9/userGuide/index.html eWeek. [electronic version] Retrieved on Janu-
ary 3, 2007, from http://www.eweek.com/ar-
ticle2/0,1895,1885883,00.asp




Chapter X
Automatic Creation of GUIs for
Web-Based ERP Systems
Jorge Marx Gmez
Universitt Oldenburg, Germany

Daniel Lbke
Leibniz Universitt Hannover, Germany

aBsTracT

Service-oriented architecture (SOA) is an emerging architectural style for developing and structuring
business applications, especially enterprise resource planning (ERP) systems. SOA applications are
composed of small, independent, and network-accessible software components, named services. The
service composition is normally based on the enterprises business processes. However, current composi-
tion standards like BPEL have no ability to interact with users. Therefore, we propose a mechanism for
including user interaction descriptions into the composition and extending the composition platform for
generating user interfaces. In our case study, a federated ERP (FERP) system, this mechanism has been
implemented in a prototype based on yet another workflow language (YAWL) dynamically generating
Web pages for accessing the ERP system. Because every aspect including the user interfaces can be
manipulated through the service composition, such systems are highly flexible yet maintainable.

INTroducTIoN systems tends to move to a new emerging architec-


tural styleservice-oriented architectures (SOA).
Enterprise resource planning (ERP) systems Within an SOA, functionality is realized by small,
have become the most critical system in the IT fine-grained, independent, and network-accessible
infrastructure for most enterprises. However, most components called services. These services can
ERP software packages still follow a monolithic be composed along the business processes of an
design. In recent years the software design of such enterprise. Since the compositions should be on a

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Automatic Creation of GUIs for Web-Based ERP Systems

very high abstraction level, the resulting system compositions are explained first. Afterwards, our
can be changed easily. concept for annotating user interfaces is presented.
An SOA is defined in this chapter as an en- In the following section the generation algorithm is
terprise-wide distributed software architecture presented. Then a case study, namely the federated
for business applications that consists of services ERP system, is presented, which heavily utilizes
as its elementary software components. Those the generation facilities described before. Finally,
services are composed according to given busi- a conclusion and an outlook are given.
ness processes, and linked to the processes at
run-time. SOAs main design goals are flexibility
and maintainability in regard to changes affecting BusINEss procEssEs aNd
these business processes. sErvIcE composITIoNs
SOA is currently most often realized by uti-
lizing Web service standards. Web services are Business processes define how activities in an
based on XML. For calling Web services the enterprise should be performed. Additionally,
SOAP protocol (Gudgin, Hadley, et al., 2003) they define who is responsible for performing
has been defined. Composition of Web services these activities and which resources are affected.
is defined in the business process execution lan- Business processes are designed from the manage-
guage (BPEL) (Andrews, Curbera, et al., 2003). ment point of view. Based upon their definition,
While BPEL aims to support the alignment of activities within enterprises can be improved, and
Web services with business processes, it lacks one supporting IT systems can be designed. There are
critical component of business processesinter- many notations available for modeling business
action with and involvement of responsible users. processes, among them event-driven process
Recently, BPEL4People (Kloppmann, Koenig, et chains (EPCs) (Mendling & Nttgens, 2005) and
al., 2005)an extension for BPEL has been pro- the Business Process Modeling Notation (BPMN)
posed. However, BPEL4People treats end-users (White, 2006). Taking an order as an example for
merely as just other services. The developers and an administrative business process is illustrated
system integrators still have to develop matching in EPC notation in Figure 1.
user interfaces in traditional programming lan- Service Compositions have a similar struc-
guages. Development of user interfaces requires ture compared to business processes (Henkel,
much effort and runs contrary to the suggested Zdravkovic, et al., 2004). However, they offer
flexibility of SOA. a technical view of the IT landscape of an en-
This problem becomes even more dominant for terprise. They define the control-flow between
smaller enterprises, which need to be very flexible different services, related error-handling, and
in the market for maintaining their competitive data management. While the control-flow should
edge but do not have many resources that they optimally match the one of the underlying busi-
can devote to their IT infrastructure. ness processes, technical constraints often require
In this chapter we present a solution on how slight differences. For example, it is possible that
to make user interfaces for ERP systems more certain activities cannot be performed in parallel
flexible by incorporating parts of user interface due to constraints of the software. For maintaining
models into the service composition. Thereby, the a SOA it is therefore a critical task to synchronize
user interface can be easily modeled and updated changes of the business process with the service
without having programming skills. composition.
Within the course of this chapter, the differ- However, this is not the only difference be-
ences between business processes and service tween business processes and service composi-

0
Automatic Creation of GUIs for Web-Based ERP Systems

Figure 1 Sample order process

tions. Currently, the most often used service As a reaction to the missing user interaction,
composition language is BPEL, which focuses on BPEL4People (Agrawal, Amend, et al., 2007)
system-to-system interaction. Consequently, only has been proposed, which integrates users into
fully automated business processes without human the BPEL composition.
interaction can be modeled satisfyingly in BPEL. However, it treats human users merely as
As a consequence, BPEL has often been criticized different services, which can send XML to and
as being not suitable for building complex SOA receive it from BPEL compositions. During de-
systems. The general structure of the control-flow velopment, user interfaces need to be developed,
for BPEL is shown in Figure 2the clients have which offer matching user interfaces which can
to call the BPEL processes that return some data. handle the corresponding XML data. While the
Then, the clients can show user interfaces and BPEL4People composition can better reflect the
invoke the BPEL process again. control-flow of the original business process


Automatic Creation of GUIs for Web-Based ERP Systems

Figure 2. Control-flow partition for user interac- Figure 3. Control-flow partition for user interac-
tive processes using BPEL tive processes using BPEL4People

C lie nt A pplication

calls C ontrol
F lo w C lie nt A pplication
B P E L P rocess
B P E L4P eo ple
P rocess calls

returns

C lie nt A pplication C lie nt A pplication

calls calls

B P E L P rocess

C ontrol
F lo w

(Lbke, 2007) (see Figure 3 for the control-flow integrated into service compositions but require
of the BPEL4People solution), the development new models.
and maintenance effort still remains very high. The main goal of our approach is to make an
In the following section, a concept for modeling SOAand consequently the applications built
the user interface on the same abstraction level upon itmore flexible by managing the user
as the composition is presented which addresses interfaces completely with the service composi-
these problems. tion. Not only the control-flow of the composition
resembles more closely the one of the business
process, but furthermore, the user interfaces do not
usEr INTErfacE dEscrIpTIoNs need to be developed using traditional languages.
IN sErvIcE composITIoNs Therefore, service compositions can be easier
modified. As a result, the deploying organization
Some approaches for modeling user interfaces can change its business processes more often and
exist. For example, TERESA (Mori, Patern, et with less effort and associated costs.
al., 2004) and an approach for supporting busi- To achieve this goal, the user interface must
ness processes with user interfaces by Sliski et al. be modeled within the service composition and
(Sliski, Billmers, et al., 2001) have been proposed. consequently on the same abstraction level. For
These are very heavyweight user interface mod- some time, research has been done in the area of
els that allow modeling of rich user interfaces. model-based user interfaces (MB-UI) (Lbke,
However, creating such models is a time-con- 2007), which has yielded many results. Many
suming task and hindered the adoption of these approaches are based upon so-called Task Mod-
approaches in practice. The same has happened els (Silva, 2000). These task models describe
with all heavy-weight user interface modeling the activities a user should be able to perform.
approaches. Furthermore, such approaches are not However, many models from this area have been
too complex to be useful in practice.


Automatic Creation of GUIs for Web-Based ERP Systems

Table 1. Annotations for business processes and service compositions


Name Description Notation
Selection The user selects data from a collection of possible choices.

Edit The user edits some information object from the data model attached to the
business function.

Control The user explicitly invokes some action. This is used to model navigational
decisions.

Visualize Data is presented to the user.

Figure 4. Annotated part of the sample process

Since task models resemble business processes this, following annotations are introduced (Lbke,
on a very low level (Trtteberg, 1999), they can be Lecke, et al., 2006), which together resemble a
integrated well into service compositions, which small task modelSelection, Edit, Control, and
shall resemble the business process control-flow. Visualize. This task model can be practically used
Our approach uses activities which already exist due its small size. The annotations are illustrated
in all business process modeling languages and in Table 1.
service compositions. The activities are decom- Additionally, each user-performed activity is
posed using sub-processes. The sub-process is assigned a typed variable. The variable type is
treated as a task model and annotated. To achieve used to generate a matching viewer and editor,


Automatic Creation of GUIs for Web-Based ERP Systems

and to store the results delivered by the user. mum if a primitive data type is detected, for which
Variable Types can be simple types and aggregate a viewers and editors are available in the system
types, like lists. at a minimum. Primitive data types are string,
Using this method, it is possible to annotate integer, Boolean, date and so on. The generation
business processes and service compositions alike. of a customer editor is shown in Figure 5.
For instance, a part of the example process with The whole generation of a sample process to
user interface annotations is shown in Figure 4. a matching user interface is shown in Figure 6;
Using these annotated processes or composi- for each activity in the task model a matching
tions our algorithm can generate user interfaces viewer or editor is created as discussed before.
at run-time and pre-generate them at design-time. The generated components are aggregated on a
The algorithm is presented in the following sec- single form as shown in the sub-window on the
tion. right hand side of Figure 6. The client surround-
ing this sub-window provides the management of
tasks. Users can initiate new business processes
GENEraTIoN of usEr and manage their tasks by using the standard
INTErfacEs functionality of the client application.
After the user has entered all data and has sub-
algorithm mitted them, the client sends the data back to the
service composition which can proceed and call a
The generation algorithm for generating the service or initiate another user interaction.
matching user interfaces works by recursively The presented algorithm is independent from
going through all data types required for the the implementation. Target user interfaces can be
concerned variables. Each data type is traversed for example traditional clients and Web interfaces.
separately. If for the main data type a match- Additionally, the interface is described on such a
ing editor or viewer (depending on the task) is high abstraction level, that interfaces can be gen-
available, it is used for the user interface. If no erated for different devices with different screen
such editor or viewer is available in the system, a sizes. For example, a PDA can have a registry
screen area is reserved that is populated with the of components, which is completely different
sub-types. For each sub-type an editor or viewer from a desktop computer. Therefore, this simple
is looked up. If none is available, the structure is annotation of business processes can be used to
traversed further. The recursion ends at a mini- accommodate different devicesonly matching
generators need to be implemented once.

Figure 5. Generation of a screen mask (b) from a data type (a)


Automatic Creation of GUIs for Web-Based ERP Systems

Figure 6. Generation of a whole user interface from a business process


O rd e r PM
R e ce ive d to o lo w

C h e ck V is u a lize
? p ro fit m a rg in (P M ) d iffe re n c e

X D iffe re n ce
visu a lize d
PM
P M o .k.
to o lo w M a ke
d e cisio n

Manager M a n a g e r d e cid e s
X

X E d it
se le cte d

A p p ro ve d R e je cte d
E d it P M

X
A p p ro ve d R e je cte d
F o rw a rd o rd e r
Ws to p ro d u c tio n

O rd e r
fo rw a re d

Furthermore, the editor and viewer registry the fly. Therefore, the editor and viewer registry
allows flexibility for advanced user interface de- must be available for each client.
sign when needed. Advanced components can be Run-time generation allows easy maintenance
stored in the registry for their corresponding data of the service compositions, since the composition
types. Although they need to be implemented in can change without the need to change the client
traditional languages, they can be reused by all if no additional editors and viewers are needed.
business processes, still saving some effort. Furthermore, the service composition designer
does not need to have technical knowledge in
run-Time Generation programming user interfaces. However, the
clients generator is the limiting factor. Since the
The presented algorithm can be used for differ- task model itself is very simple, advanced forms
ent purposes in the development process. This cannot be modeled.
section will explain the usage scenario for using The run-time generation is very suited for
run-time generation. developing initial software versions and prototype
In run-time generation, the composition places applications which can be changed on the fly
a user interaction request until the user logs into the during interviews and discussion. Additionally,
system. The request contains the task model, the it is well-suited within projects, which have the
data type description, and the data itself. When the ability to deliver a sufficient number of editors
user proceeds with the user interaction, the client and viewers to their customers. Therefore, the
downloads the task model and its accompanying customers can modify the services without the
data and generates the matching user interface on need to develop software themselves.


Automatic Creation of GUIs for Web-Based ERP Systems

design-Time Generation due to their limited financial resources, SMEs are


not able to afford classical ERP systems offering
If the user interfaces need major modifying, the required functionality.
run-time generation may be too limited. Either, The costs of the adoption of classical ERP
the generators and the task models need to be systems are not limited to the acquisition of the
improved, thereby making them more complex, software. A very important factor of those systems
or the user interfaces need to be reworked. If the is the high hardware demands. In many cases it
task model would become to complex to handle, is necessary to allocate high-end systems. Fur-
it can be better to generate user interface code thermore, lots of external service providers are
from the annotated business process or service required, which install, introduce and customize
composition. This approach works equally for both the software [5].
model types, in contrast to run-time generation Because SMEs are achieving their competi-
which works only on service compositions. The tiveness due to the focus on differentiation strate-
generated classes can be modified by developers. gies associated with a high level of flexibility and
The main logic can be generated, which addresses innovative ability, their business processes are
messaging and data serialization and deserializa- modified more often, which requires high-priced
tion. However, the customized user interfaces customization of their ERP software. One op-
need to be maintained separately and cannot portunity for decreasing the costs is the applica-
be controlled by the service composition alone. tion service providing (ASP), whereat the whole
Changes in the service composition may require ERP application is offered by an external service
additional rework on the client side. Furthermore, provider, and the actual enterprise accesses their
each client update needs to be rolled out. Since own system via the Internet. In this case the costs
the source code has changed, a new binary must for the utilization can be paid as a bill, depending
be installed at each user device. on the used volume of the software or in a way
of a monthly payment.
However, concerning former experiences, this
casE sTudy: fEdEraTEd strategy is not well accepted in practice, because
Erp-sysTEms enterprises are not willing to save their valuable
data on third-party providers systems (Walsh,
motivation 2003). Thus a solution is necessary, which sup-
ports local data management, is inexpensive in
Classical ERP systems offered by major software adoption and maintenance, and offers an easy
companies provide a big area of functionality. adjustment for changing business processes. This
However they are very expensive. There are many is the intention for the development of federated
low-cost ERP solutions on the market, which aim ERP systems, which offer their functionality in
at small and medium enterprises (SME), but their a shared architecture (Brehm & Gmez, 2006).
functional range is often not adequate for the tar- Inside the enterprise the FERP-client-software is
geted audience. This problem is described as the used, which offers basic functionality and data
ERP Dilemma for SMEs. A study conducted in management. All further functionality is avail-
our area (631 SMEs and 27 enterprises with more able as Web services on different peers inside
than 250 employees have been interviewed) has the FERP-Network. Thus, the enterprise only
found that SME face similar requirements (see pays for the functionality, which it finally uses
Figure 7) compared to major enterprises. However, as Web service. Because of the minor complex-
ity of the client software the cost for installation


Automatic Creation of GUIs for Web-Based ERP Systems

and maintenance is decreased. Furthermore, it prototypical development of the workflow- and


is much easier for providers of ERP components GUI components. The FERP client is deployed
to enter the market, because they dont have to at the particular enterprise, which uses the feder-
offer an entire ERP system anymore, but can ated ERP system. It acts as the client, because it
rather concentrate on developing separate and presents one peer of the whole FERP network.
not-yet available functionality. The architecture Considering the enterprise, this component pres-
of a federated ERP system as illustrated in Figure ents a kind of ERP server [8], which provides the
8 is based on researches considering the FERP entire functionality for the end user, who does not
approach and represents the fundament for the notice the communication with the Web services.

Figure 7. Percent of operational software in particular divisions (in %)

Figure 8. FERP system architecture


Automatic Creation of GUIs for Web-Based ERP Systems

The function of the GUI component is to realize nents. The engine is responsible for realizing the
the communication between the workflow-engine business processes workflow and the handling
and the end-user who runs the system. If interac- requests for functionality as well as reacting on
tion with the user is required during workflow incoming events. For generating the required
processes, the GUI generates the needed views. user interfaces during run-time, it is necessary to
The user accesses the system using a common supplement existing models of existing workflows
Web browser via HTTP. The GUI is realized us- and composition languages Web services. There
ing a JSP- and Servlet-Technology running on a are two possible approaches for this purpose.
Java application server. The workflow engines On the one hand, it would be possible to add ad-
main function is to take care of the execution of ditional information to the Web services, which
the stored workflows, which represent the busi- specify the required GUI elements. Principally,
ness processes within the enterprise. The engine the existing constructs and standards would be
controls the sequence of activities considering the adequate for that. On the other hand, the second
terms and conditions, which are defined by the approach for integrating GUI information into
workflow designer. the process flow is about to expand the business
process definitions. In this case, the process de-
prototype Implementation signer (workflow designer) is the one, who adds
the required information to the process definitions.
The prototype was developed mainly to gain An overview about the planned structure of the
experiences with the following components: the prototype is shown in Figure 9.
workflow engine; the Web service interface; the The prototype architecture is based on the
process parser; and the generation of graphical model view controller (MVC) pattern. Thus, there
user interfaces. Modules including basic func- is loose interconnection between those three parts,
tionality and the connection to the enterprises so that changes in one of these parts will hope-
database are not realized yet. It is assumed that fully not require modification of the others. For
these components are realizable via Web services realizing the MVC concept, the Struts Framework
later. The core of the application is the workflow is used. Figure 10 shows the MVC structure and
engine, which connects all the involved compo- its specification regarding the FERP prototype.

Figure 9. Raw architecture of the FERP-prototype


Automatic Creation of GUIs for Web-Based ERP Systems

Figure 10. Architecture of the FERP prototype

The view component is realized by Java Server coNclusIoN aNd ouTlooK


Pages for generating HTML code, which can be
interpreted by every Web browser. The design SOA promises to make IT infrastructure more
of the optical characteristics is implemented via flexible. However, existing standards are only
cascading styles sheets (CSS), whereby the GUI made to address the flexible and easy arrange-
pages will be more flexible for customizing. The ment of services to offer the logic required within
management of the workflow data is part of the a business process. The matching user interfaces
workflow component. are neglected. Within this chapter we proposed
The core is represented by the used YAWL annotations to complement existing business
engine and its possibility to include Web services. process and service composition notations. Using
If a GUI task is activated during a workflow, the these annotations user interfaces can be generated
YAWL service, called FERP Service, will be without needing further human intervention.
connected, which refers the required information SMEs do not have much IT knowledge in-
from the workflow engine. This data are latched house. Therefore, changing their IT systems
via the GUI-DB interface in a database, until a user is costly. This is especially cumbersome when
is going to login to complete the task. Therefore, changes are needed for accommodating business
the data is read out from the database and trans- process changes which can be vital. In the pre-
ferred into Struts business objects. The engine sented Federated ERP system, the user interfaces
interface provides interfaces wherewith workflow are generated using the presented method. This
information can be retrieved out of the workflow allows even non-programmers to make changes
engine. Furthermore, this interface returns input to the business process and change the application
by a user back to the YAWL engine. itself. All of this can be done without resorting to


Automatic Creation of GUIs for Web-Based ERP Systems

traditional programming languages. The Feder- international conference on Service oriented


ated ERP system is based on the YAWL workflow computing.
language and realizes the user interface as a Web
Kloppmann, M., D. Koenig, et al., (2005). WS-
front-end. The user interface generator works
BPEL extension for peopleBPEL4People (A
completely on the server-side. As such, no client
Joint White Paper by IBM and SAP), IBM/
software updates are needed when new business
SAP.
processes are rolled out. The FERP system has
been implemented as a prototype and first example Lbke, D. (2007). User interface design styles in
business processes have been implemented. This SOA applications. Paper presented at the 8th An-
prototype will be used to further evaluate the us- nual Global Information Technology Management
ability and suitability of the user interface genera- Associaton World Conference, Napoli, Italy.
tion. Such evaluation has already been done for
Lbke, D., T. Lecke, et al., (2006). Model-driven
smaller systems (like a student theses management
development of business applications using event-
system) and led to usability improvements of the
driven process chains. GITMA 2006, Orlando
generator component.
Florida.
Mendling, J., & Nttgens, M. (2005). EPC markup
rEfErENcEs language (EPML) - An XML-based interchange
format for event-driven process chains (EPC).
Agrawal, A., M. Amend, et al. (2007). WS-BPEL Information Systems and e-Business Management
extension for people (BPEL4People), Version (ISeB) 4(3), 245-263.
1.0.
Mori, G., F. Patern, et al., (2004). Design and
Andrews, T., F. Curbera, et al. (2003). Business development of multidevice user interfaces
process execution language for Web services through multiple logical descriptions. IEEE Trans.
Version 1.1. Software Eng, 30(8), 507-520.
Brehm, N., & J. M. Gmez (2006). Distribution Sliski, T. J., M. P. Billmers, et al., (2001). An ar-
of ERP system components and security con- chitecture for flexible, evolvable process-driven
siderations. Paper presented in the 17th IRMA user-guidance environments. Paper presented at
International Conference - Managing Modern the8th European software engineering conference
Organizations with Information Technology, held jointly with 9th ACM SIGSOFT international
Washington, USA. symposium on Foundations of software engineer-
ing, Vienna, Austria.
da Silva, P. P. (2001). User interface declarative
models and development environments: A survey. Trtteberg, H. (1999). Modelling work: Workflow
(LNCS 1946, 207-226). and task modelling. CADUI.
Gudgin, M., M. Hadley, et al., (2003). SOAP Walsh, K. R. (2003). Analyzing the application
version 1.2 part 1: Messaging framework. World ASP concept: Technologies, economies, and
Wide Web Consortium. strategies. Communications of the ACM, 46(8),
103-107.
Henkel, M., J. Zdravkovic, et al. (2004). Ser-
vice-based processes: Design for business and White, S. A. (2006). Business process modeling
technology. ICSOC 04: Proceedings of the 2nd notation specification, object management group
standard.

0


Chapter XI
Prototyping in Web
Development
Clif Kussmaul
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA

Roger Jack
Elegance Technologies, Inc., USA

aBsTracT

This chapter addresses issues, alternatives, and best practices for prototyping in Web development. The
chapters primary objective is to provide a clear and concise overview of key concepts and best prac-
tices for practitioners and students, as well as other audiences. The chapter focuses on graphical user
interface (UI) prototyping for Web development, but many of the principles apply to non-UI prototyping
and other sorts of software development. First, we introduce and motivate the chapter, and review the
major objectives, benefits and risks, and classifications of prototypes. Second, we describe the major
approaches to prototyping. Finally, we conclude with future trends and a summary of best practices.

Introduction oritize the objectives and scope of the prototype,


so we can focus on critical aspects of the proto-
In software development, prototyping is the type, and avoid aspects that are not immediately
process of creating a preliminary version for relevant. This is discussed in the section titled
evaluation, before investing more resources. The Objectives and Scope of Prototyping, Second,
prototyping process can be divided into four key we create the prototype, which typically is much
steps (see Figure 1); Floyd (1984) uses similar easier than constructing the final system. A set
steps, but different terminology. First, we pri- of approaches is described in the section titled

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Prototyping in Web Development

Figure 1. Key steps in prototyping

Creating Prototypes. Third, we review the simulate, document, and review prototypes for
prototype to understand what works well, what Web applications and other software systems.
could be improved, and what new issues have
been identified. Several evaluation methods are
described in the section titled Reviewing and BacKGrouNd
Reacting. Fourth, we react to the prototype and
determine what to do next. In some cases there In this chapter, development team is the group
may be nothing more to learn from the prototype, of analysts, designers, software developers, and
and it can be discarded, or archived for future other people responsible for building a Web-based
reference. More often, the evaluation will lead to application, or system, which may be divided
more iterations through these four key steps. into numerous components. Stakeholders
This chapter provides a concise overview of are other people or organizations with a sig-
key concepts and best practices for practitioners nificant interest in the project, including upper
and students, as well as other audiences. The management, other business functions such as
chapter focuses on graphical user interface (UI) sales, and (of course) the intended end users of
prototyping for Web development, but many the system.
of the principles apply to non-UI prototyping. Web development, like other software de-
Similarly, prototyping issues and approaches ap- velopment, involves a wide variety of activities.
ply to many sorts of software development, but These activities can be grouped into four broad
the chapter emphasizes Web applications, based categories that span the systems life cycle. First,
on a variety of Web development projects the the team must analyze the problem to understand
authors have been involved with in the last ten users, their needs, important tasks, and other
years. We provide a multidisciplinary perspective, relevant requirements. Second, the team must
since effective prototyping involves a variety of design the system or component to fulfill these
disciplines, including business, psychology, and requirements. Third, the team must build the
software engineering. The chapter also draws on system or components; this includes activities
our experiences developing a tool to help design, such as coding, integration, and testing. Finally,


Prototyping in Web Development

the team must maintain the working system as potential users, as compared to more traditional
long as it is in use, by correcting defects and software systems.
adding enhancements. In waterfall develop- Some of these differences have particular im-
ment (e.g., Royce, 1970), activities are generally plications for prototyping. First, Web applications
performed in stages that parallel the categories often serve a diverse and evolving set of users, and
described above; the requirements are analyzed, users can easily switch to alternatives (Jeenicke,
then the entire system is designed and built, and Bleek, & Klishewski, 2003). As a result, Web ap-
so forth. However, a pure waterfall approach is plications need to place special emphasis on user
not feasible in many situations, since work in one requirements and expectations. Prototyping can
stage may reveal omissions or errors in an earlier help development teams understand how users
stage, and because requirements may change will approach a Web application and what they
during development. Thus, some organizations will try to do with it (Preece, Rogers, & Sharp,
prefer iterative or spiral development models, 2002). Second, Web applications often require
which consist of multiple cycles, each of which multidisciplinary development teams; prototypes
contains activities from all four categories. Ag- provide a simple, visual way for such teams to
ile development processes such as Scrum may communicate. For example, Holter (2006) states
contain many cycles, of a few weeks each (e.g., that the root of most Web development problems
Cockburn, 2002; Highsmith, 2002). is not technical but rather it is the failure to com-
Web development differs from other types of municate technical information non-technically
software development in some important ways. (p 25). Third, Web applications evolve continually
For example, Ginige and Murugesan (2001), Gi- in response to user needs and changing technolo-
nige (2002), and Murugesan and Ginige (2006) gies, and because it is relatively easy to deploy
identify several challenges in Web systems, new versions to a server. Prototyping makes it
including the continual growth of requirements, easier to explore possibilities and quickly identify
the continual change in information content, a the most promising.
diverse set of stakeholders, and the need for mul-
tidisciplinary development teams. They describe
a hierarchy of Web-based software, ranging from oBJEcTIvEs aNd scopE of
static Web pages through database-driven Web proToTypING
sites to complex Web systems, and propose a set
of processes to help address these challenges. Why Is prototyping Important?
Kappel, et al. (2003) describe a similar but larger
set of challenges, which are categorized by their Prototyping is essentially a way to reduce risk,
focus on product and content, usage context, sys- by exploring specific aspects of the system before
tem development, or system evolution. Chen and making final decisions. Prototyping can be used
Heath (2005) also identify challenges, including in almost any aspect of development; for example,
usability design, content maintenance, scalabil- a Web development team might use prototypes
ity, security, fast deployment, and competing to evaluate the effectiveness of an open source
architectures, platforms, and tools. Similarly, library, or to compare the performance of different
Mendes, Mosley, and Counsell (2006) identify database configurations.
12 areas of difference, and emphasize the wider This chapter focuses on UI prototyping.
range of people involved, the wide range and Roughly 50% of application code is devoted
rapid change of technologies, and the diversity of to UIs (Myers & Rosson, 1992). Furthermore,


Prototyping in Web Development

roughly 50% of software projects experience until late in the development process, although it
significant cost overruns, and inaccurate estimates is usually one of the first things noticed by users.
are often caused by UI issues (Lederer & Prasad, Effective prototyping can help to address all of
1992; Standish Group, 1994). Poor UIs can make these challenges.
products difficult or impossible to use (Norman,
2002). For example, a survey found that 63% of When and How can prototyping Be
new mobile phones returned as defective were used?
not broken; rather, users did not understand how
to use the phones (Williams, 2006). Conversely, Prototyping can be used throughout the develop-
Nielsen (1993) cites multiple examples of sig- ment process. Floyd (1984) identifies three broad
nificant cost savings from improved UIs, and classes of prototyping, although the boundaries
customers will often pay a significant premium are necessarily vague. First, exploratory proto-
for high-tech products that are also high-style, typing helps to clarify the systems broad scope
for example, attractive and easy to use (Cagen & and direction, by identifying missing require-
Vogel, 2002). However, developing effective UIs ments and considering multiple approaches.
presents challenges throughout the development Thus, prototyping is useful in the early stages of
process. System requirements can be difficult to ideation, product planning, and market research.
define accurately. As with any software system, Prototyping is also useful during requirements
there are usually multiple stakeholders with com- analysis and system design, since it can help to
peting priorities. In contrast with other types of identify additional requirements, and evaluate the
software development, Web applications often effectiveness of various implementation models.
target users who are widely dispersed, use the ap- Second, experimental prototyping evaluates the
plication briefly or sporadically, can readily switch suitability of a proposed solution before commit-
to alternatives, and have evolving expectations. It ting to full scale implementation. Third, evolu-
can be difficult to design and implement a Web tionary prototyping explores the consequences of
application in the face of continual improvements incremental changes to an existing system. The
in network bandwidth, storage space, process- relative position of each class in the system life
ing speed, and other technologies. Developers cycle is illustrated in Figure 2.
and users often think quite differently about the
application architecture; Hohmann (2003) refers Benefits and Risks
to these as tarchitecture (technical views for
developers) and marketecture (marketing views Prototyping provides many benefits. Prototyping
for customers). Too often, the UI is not a priority encourages creative trial and error. Prototyping

Figure 2. Prototyping across the system life cycle


Prototyping in Web Development

makes it possible to explore more options for other alternatives, or focus on details that are not
the UI, starting early and continuing throughout yet relevant. For example, when reviewing a site
the development process. Prototyping improves navigation prototype, they may focus instead on
communication with project stakeholders, par- color choices and fonts. At the same time, a more
ticularly non-technical stakeholders who find polished prototype may lead some stakeholders to
experimenting with a prototype to be easier and assume that the entire system is nearly complete.
more inviting than reading technical documents. Thus, development teams should clearly articulate
Thus, prototyping helps the development team the issues addressed in a particular prototype. At
develop more accurate and complete requirements the other extreme, it is possible to fall into analysis
and designs for the UI. Better requirements lead paralysis, where the team becomes overwhelmed
to fewer and less severe defects in the system. by the range of possible issues and directions, and
Fewer defects lead to reduced development and is unable to make necessary decisions.
maintenance costs, and more satisfied users. There
is a rule of thumb that the cost to fix a defect Taxonomies
increases exponentially with the time between
occurrence and detection of a defect (Boehm, Prototypes can be classified using several taxono-
1976). In general, prototyping helps organizations mies, including scope, fidelity, longevity, and the
make better decisions faster, which usually saves prototyping technique.
time, money, and other resources. Scope or size describes how much of the
Prototyping also presents some risks. Prototyp- system is represented in the prototype. Figure
ing tools make it easy for developers to become 3 illustrates related terms using a graphical site
immersed in construction activities when they map, with pages in grey connected by links. A
should really be focused on analysis or design, shallow prototype shows a few key elements
which should be user-focused (Cooper, 1994). of the system, while a deep prototype provides
Stakeholders can become too attached to a par- much greater detail. Similarly, a broad prototype
ticular prototype, and be reluctant to consider addresses many aspects of the system, while a

Figure 3. Prototyping terminology


Prototyping in Web Development

Figure 4. Visual and interaction fidelity

narrow prototype focuses on particular elements then discarded, while evolutionary prototypes are
of interest. Basic navigation for a new system intended to gradually develop into the final system.
will usually start out with a broad and shallow Throwaway prototypes can explore concepts and
(or horizontal) prototype, and then add depth as possible directions quickly, since developers can
needed. Conversely, changes or new features for simplify or even omit non-essential features and
an existing system are often explored by deep processes. However, any useful functionality in
and narrow (or vertical) prototypes. the prototype may need to be recreated in the final
Fidelity describes how closely a prototypes system. This apparent duplication of effort can be
appearance and behavior match the final system. difficult to justify to non-technical stakeholders
Low fidelity prototypes may be very rough, and who see a system that appears to be nearly com-
are often created quickly with pen and paper or plete. In many cases, however, the final system
basic drawing software. High fidelity prototypes will benefit from revisiting these issues. To quote
match the final look and feel more closely, are Brooks (1999), plan to throw one away; you
created using specialized prototyping tools or will, anyhow (p. 116). Conversely, evolutionary
normal developer tools, and require more time prototypes require more initial effort, or more
to create. Rudd, Stern, and Isensee (1996) argue rework. This can reduce the total development
that designers should use both high and low effort, but can also commit the development team
fidelity techniques, since both have advantages to decisions that were made prematurely, but are
and disadvantages. It can be useful to distinguish difficult to change. Often, the best approach is to
two sorts of fidelity. Visual fidelity focuses on the use specialized prototyping tools and techniques
visual appearance of the prototype, while inter- for the initial, throwaway prototypes, and then to
action fidelity focuses on the extent to which the switch to evolutionary prototyping once the team
prototype behaves like the final system. Figure is confident about key decisions and directions.
4 illustrates the relationship between visual and Other taxonomies have been proposed. For ex-
interaction fidelity. Thus, graphic designers might ample, Baumer, Bischofberger, Lichter, and Zul-
create images with high visual fidelity, but low lighoven (1996) identify four types of prototypes
interaction fidelity, while software developers (presentation, functional, breadboard, and pilot
might create proof of concept software with high systems) and four tool categories (Hypercard-like,
interaction fidelity but low visual fidelity. interface builders, fourth generation systems, and
Longevity describes how long the prototype is application frameworks).
used. Throwaway prototypes are used briefly and


Prototyping in Web Development

crEaTING proToTypEs tion to paper prototyping. Arnowitz, Arent, and


Berger (2007) describe paper prototyping and
Prototyping techniques can be divided into three other paper-based techniques, including card
broad categoriespaper prototyping, mock pro- sorting prototyping, wireframe prototyping, and
totyping, and code prototyping. storyboard prototyping.
For example, Figure 5 shows a paper prototype
paper prototyping of a Web page where users can renew library
books. The symbols at the top represent standard
Paper prototyping (Rettig, 1994; Snyder, 2003) browser controls. The page contains a two field
uses paper, and pens or pencils instead of software. form where the user can type their ID and pass-
Typically, each screen, major section, or varia- word and then click on a button to show a table
tion is represented by a sheet of paper, on which of their books. The user can select specific books,
key UI elements are sketched. Dialogs, tabs, and and then click on a button to renew.
menus are represented by smaller pieces of paper Paper prototyping has advantages and disad-
(e.g. index cards or Post-It notes) which can be vantages. It requires no special tools and little
added and removed as needed. Paper prototyping training, although experience is certainly helpful.
focuses on the key interactions and UI elements, Paper prototypes can be created and modified
and makes no attempt to include or describe de- quickly; in fact, it is easy and common to modify
tails. When a stakeholder reviews the prototype, them while they are being tested. They are neces-
a member of the development team responds to sarily throwaway, although this is rarely a concern
each action by presenting the appropriate piece of because they can be created so quickly. Paper
paper. If necessary, the prototype can be modified prototyping is a good way to explore interaction
dynamically by adding features to existing pages design and the general layout of screens, but is not
or creating new pages. Thus, paper prototypes are intended to capture details such as data validation
usually quick, inexpensive, flexible, and can be and business logic. These requirements and design
created by non-experts. Snyder (2003) provides decisions may be captured in separate documents,
a detailed and highly recommended introduc- or may not even be written down. Thus, a mem-

Figure 5. Paper prototype


Prototyping in Web Development

ber of the development team who understands OpenOffice Writer) are already familiar to most
the intended functionality must be available to computer users, making it easy to get started. For
help a stakeholder review a paper prototype, and example, Nam and Gill (2000) and Verhoeven
as a result the prototype may behave differently (2003) describe prototyping techniques using
at different times. Furthermore, any prototyping Microsoft PowerPoint, and Arnowitz, Arent, and
technique also risks omitting essential details Berger (2007) describe techniques using a variety
through oversimplification, causing problems of applications, including Adobe Acrobat, and
that must be corrected later. Microsoft Word, PowerPoint, Excel, and Visio.
HTML editors (e.g., Mozilla Composer, or NVu)
mock prototyping can be useful for Web applications as well as
other sorts of user interfaces. Dedicated tools
Appropriate tools can be used to develop mock (e.g., Axure RP, Irise Studio, or Lucid Spec) are
prototypes with better fidelity than paper pro- designed specifically for prototyping, and range
totypes, but more efficiently than coding. Such in price from a few hundred dollars to tens of
tools enable users to quickly lay out the UI, usu- thousands of dollars. Novice users may find some
ally by dragging and dropping elements from tools difficult or intimidating, but experienced us-
a menu. Users can also modify the size, shape, ers can be very productive. Dedicated tools may
and color of each UI element, and reuse them. offer powerful functionality, such as templates
Although some tools can simulate the sequence for common screens and components, usability
of screens, the flow of data between screens, or testing, or code generation.
other functionality, in most cases users will need For example, Figure 6 shows a mock prototype
to document business logic, either using the tool of the book renewal page, with the same general
or in separate documentation. General purpose organization as the paper prototype. The tool
tools, such as drawing software (e.g., Adobe Il- (Lucid Spec) provides features to facilitate pro-
lustrator and Photoshop, Dia, or Microsoft Visio), totyping. To the left of the prototype is a panel
presentation software (e.g., Apple Keynote, Mi- to organize screens in the current document, and
crosoft PowerPoint, or OpenOffice Impress), or a set of controls that can be used in the current
word processing software (e.g. Microsoft Word or screen. To the right of the prototype is a panel for

Figure 6. Mock prototype


Prototyping in Web Development

annotating the screen or specific controls, and a which can waste resources. Thus, Holter (2006)
panel to view and adjust their properties. recommends the use of greyscreen prototypes
Mock prototyping has advantages and dis- that focus on functionality rather than what the
advantages. The prototypes are usually either Web application will look like.
throwaway, or must be maintained as design docu-
ments, although some tools may generate HTML code prototyping
or other representations that can be used later in
the development process. General purpose tools Code prototypes are created using the same de-
are familiar to many people, reducing the cost and velopment tools, techniques, and even processes
the learning curve, although they may or may not that would be used for the final system. For Web
provide needed functionality, depending on the development, these might include Web authoring
goal of the prototype. Conversely, special purpose tools such as Adobe Dreamweaver and Microsoft
tools are specifically designed for prototyping, but Office FrontPage, as well as integrated develop-
development teams must purchase them and learn ment environments such as Eclipse, NetBeans, or
to use them effectively. Both general and special Microsoft Visual Studio. Compared to the final
purpose tools often present a tradeoff between system, however, a code prototype has lower
ease of use and complexity; tools that are easy for fidelity, and the scope is restricted to specific
novices to use may provide limited functionality, issues of interest. Thus, a code prototype might
while more powerful tools may be too complex include little or no error checking for user input,
for some users. Both types of tools can also be use dummy data instead of a real database, and
used by non-developers, making it easier for other use simple but inefficient algorithms. It is pos-
stakeholders to create, edit, or review prototypes. sible to develop code prototypes using different
Prototyping tools make it easy to adjust details technologies than the final system. For example,
that may not be relevant for a particular prototype, a large, complex Web site might be prototyped

Figure 7. Code prototype


Prototyping in Web Development

using PHP or Python although the final imple- and the fidelity of the resulting prototype. These
mentation uses Java. relationships are illustrated in Figure 8.
Figure 7 shows a code prototype of the book There is evidence that both high and low
renewal page, in a regular browser. fidelity prototyping are equally good at finding
Code prototyping has advantages and dis- usability issues (Walker, Takayama, & Landay,
advantages. It uses tools and techniques that 2002), although they emphasize different sorts of
are already familiar to the development team, problems (Virzi, Sokolov, & Karis, 1996; Nielsen,
which reduces the required skill set. While other 1990). Similarly, Bailey and Konstan (2003) com-
prototyping approaches may restrict what can be pared three approaches (paper, an experimental
created, code prototyping can use any features or low-fidelity tool, and a commercial high-fidelity
capabilities that could be used in the final system, tool) and found that different designers and clients
and can become evolutionary prototypes. Thus, preferred different tools for different tasks; no one
there is a risk of adding unnecessary detail to a approach was best in all situations.
code prototype. For example, developers may
be tempted to add error checking or graphic using multiple approaches
design elements (such as colors, fonts, or im-
ages) to a prototype intended to explore basic Given the advantages and disadvantages of the
screen layout. Similarly, code prototyping is different approaches, it is often most effective to
more resource intensive than other approaches. use multiple techniques in different parts of the
As a result, development team may be reluctant development process. Newman, Lin, Hong, and
to give up or throw away code prototypes, and Landay (2003) observed and interviewed Web
so incidental or erroneous choices may become designers, and found that they switch between
architectural decisions that will be even more lower and higher fidelity representations, using
difficult to change later. a range of tools suited for each task. When a
system or feature is first being explored, paper
comparing approaches prototyping is often most useful, since it is fast
and simple, making it easy to explore a variety of
The three approaches to prototyping are distin- possibilities. At this stage, it is easy for developers
guished by the tools and techniques employed, but to spend too much time using other techniques.
also differ in the resource investment required, As the requirements or design alternatives are

Figure 8. Comparing effort and fidelity of prototyping methods

00
Prototyping in Web Development

Figure 9. Model parameters

Mock
Paper

Code
Prototyping Approach
Defects Findable 33% 33% 33%
Cumulative Defects Findable 33% 67% 100%
Relative Prototype Cost Per Pass 10 50 250
Relative Defect Removal Cost 10 50 250
Defect Identification Rate Per Pass 50% 50% 50%
Defect Cost Multiplier Per Pass 1.50 1.50 1.50

Figure 10. Model results for different combinations of prototyping

better understood, mock prototyping provides fects, since some defects can only be found using
more detail for the more promising approaches. higher fidelity approaches, but each approach can
Code prototyping can be reserved for issues that find defects that could not be found in the previous
can not be explored using other approaches, or for approaches. Third, there is a fixed cost to create
evolutionary prototyping that will iterate toward prototypes and remove defects, which increases by
the final system. a factor of five between approaches. Fourth, each
The benefits and risks of using paper, mock pass finds an equal percentage of the remaining
and code prototyping can be illustrated using a defects (50%). Fifth, the cost of fixing a defect
spreadsheet model of the relative cost of finding increases by a factor of 1.5 for each pass that is
and fixing defects, and the percentage of total remaining undetected. The model parameters are
defects found. The model makes some simplifying summarized in Figure 9.
assumptions. First, the prototyping process con- Figure 10 illustrates the results of the model
sists of multiple passes, each using one approach for four scenarios, which invest similar prototyp-
(paper, mock, or code). Second, each approach ing costs with differing results. Scenario A uses
finds a certain percentage (33%) of the total de- three passes of code prototyping. Scenario B uses

0
Prototyping in Web Development

five mock passes, then two code passes. Mock First is the user, who should be selected based
prototyping finds a subset of defects much more on the objectives. For example, the user might be
quickly; this results in fewer remaining defects a typical intended user of the Web application,
as well as lower total cost, since finding defects with little or no special knowledge. The user might
sooner is less expensive. Scenario C uses five be a stakeholder with insight into customer needs
paper passes, then four mock passes, then two and preferences, such as someone in sales, sup-
code passes, for roughly the same total prototyp- port, documentation, or quality assurance. The
ing effort. Paper prototyping finds some defects user might be a developer with more specialized
very quickly, providing a further head start for knowledge. In each case, the user will bring a dif-
the mock and code passes. Finally, scenario D ferent set of experiences and expectations, which
shows that each approach reaches a point of can affect the outcome of the review.
diminishing returns, when it has found most of The second role is the facilitator. This is
the remaining defects. Thus, too much prototyp- usually a member of the development team, or
ing may fail to continue reducing the number of perhaps a usability specialist. The facilitator has
defects, and may even increase the overall cost. two main objectives. First, he/she watches and
(These results are qualitative, not quantitative, listens to the user, to try to understand what the
but could be calibrated for specific organizations user is thinking and trying to do. The facilitator
and projects.) may also ask questions, although inappropriate
questions may bias the users responses. Second,
the facilitator tries to keep the review focused on
rEvIEWING aNd rEacTING the defined objectives.
The third role is the computer. For a code
Developers can learn a great deal from the process or mock prototype, the computer is a physical
of creating a prototype, even if no one else ever device, although for a mock prototype the facili-
sees it. However, prototypes are usually reviewed tator or an assistant may need to supplement the
with other stakeholders. Like a prototype, a review prototypes functionality with explanations. For
should have clearly defined objectives. Reviews paper prototypes, the computer is a person who
can identify requirements that were missing, or presents the appropriate sheets of paper based
imperfectly understood. Reviews can also help on the users actions and comments. This person
to identify features that work well, features that may even modify or create new screens during
need to be improved, or significant problems the review session, to address problems or explore
with a design. Reviews typically involve several new possibilities.
distinct roles, illustrated in Figure 11.

Figure 11. Roles in reviewing prototypes

0
Prototyping in Web Development

The fourth role is the observer, who also concepts and skills should be familiar throughout
watches and listens to the user and takes notes the organization. For example, basic experience
where applicable. The observer may notice things with paper prototyping will benefit anyone who
the facilitator does not, since the facilitator is interacts with potential customers or is involved
focused on the user and ensuring that the review in product development. At the same time, it is
addresses its objectives. important to clearly define the objectives for
It can be helpful to make a video recording each prototyping effort, to minimize risks such
of the entire review, including the user, facilita- as analysis paralysis or premature commitment
tor, and reviewer, although some users may find to an inappropriate design.
this distracting or intimidating. There is a broad Prototyping also has implications for students
literature (e.g., Kuniavsky, 2003; Rubin, 1994) on and educators. The basic concepts can be learned
usability analysis and observational techniques, quickly and applied to a wide variety of situations.
such as surveys, focus groups, and usability In particular, prototyping makes it possible to
tests. explore a wider variety of options in a shorter
After reviewing a prototype with one or more timeframe, which makes it very useful for provid-
stakeholders, the development team should evalu- ing realistic experiences in a compressed academic
ate the results, and decide how to proceed. For timeframe. It also demonstrates the value of it-
example, if the prototype is for a proposed new erative development processes, and of consider-
feature and the user finds it intuitive and useful, ing multiple approaches before committing to a
the developers may be ready to implement it. specific direction. Several authors have reported
Alternatively, the review may identify potential on ways to help students learn about prototyping
problems or new possibilities that warrant further (e.g., Karat & Dayton, 1995; Frank, Naugler, &
prototyping. Traina, 2005; Kussmaul & Jack, 2006).
Dedicated tools are evolving rapidly to support
the growing interest in prototyping. Increasingly,
fuTurE TrENds these tools will target specific stakeholders (e.g.,
salespeople, developers, or end users), technolo-
The advantages of prototyping are well estab- gies (e.g., Web, desktop, or embedded applica-
lished, and prototyping will be used increasingly tions), and even application domains.
by a variety of organizations. Prototyping can be Web authoring tools and other development
used throughout the Web development life cycle, tools will increasingly support prototyping as
and can be used as part of almost any development well.
methodology, though it is particularly well suited
to iterative or agile processes. In fact, Schrage
(2000) argues that prototyping and other simula- coNclusIoN
tion-based activities are an essential component
of innovative product development at world-class Prototyping is easy to do, but it is also easy to
companies. do poorly. The following best practices can help
The use of prototyping in Web development maximize the benefits of prototyping. First, clearly
projects has implications for executives and define the objectives for a prototype, and com-
managers. For a modest investment, prototyping municate those objectives to stakeholders who
yields clear benefits to a variety of project stake- will develop and review the prototype. Second,
holders. Although prototyping can benefit from focus on the most common or important tasks
specialized experience and complex tools, some and goals; an old rule of thumb suggests that

0
Prototyping in Web Development

users spend 80% of their time on 20% of the ap- Baumer, D., Bischofberger, W., Lichter, H., &
plication, so focus on that 20%. Third, match the Zullighoven, H. (1996). User interface prototyp-
prototyping technique to the issues you want to ing-concepts, tools, and experience. In Proceed-
address, and the stage of development. Understand ings of the 18th International Conference on
how much fidelity is needed, and resist the urge Software Engineering (ICSE96) (pp 532-541).
to add unneeded detail, which wastes resources IEEE Computer Society.
and can distract people evaluating the prototype.
Boehm, B. (1976). Software engineering. IEEE
Fourth, learn as much as possible from prototype
Transactions on Computers, 25, 1226-1241.
reviews; for example, see if users can figure out
how to use the prototype without detailed instruc- Brooks, F. P. (1995). The mythical man-month:
tions. Finally, use prototyping iteratively; start Essays on software engineering. Boston: Ad-
with simple, throwaway prototypes, and refine dison Wesley.
gradually as you understand the problem and
Cagen, J. & Vogel, C. M. (2002). Creating break-
the solution.
through products: Innovation from product plan-
The value of prototyping can be summarized
ning to program approval. Upper Saddle River,
in two key ideas. First, prototyping enables Web
NJ: Prentice Hall.
development teams to perform multiple small ex-
periments and learn from the results. Tom Peters Chen, J. Q., & Heath, R. D. (2005). Web application
puts this succinctly as test fast, fail fast, adjust development methodologies. in W. Suh (Ed), Web
fast. Second, prototyping improves communica- engineering: Principles and techniques. Hershey,
tion among project stakeholders, who may have a PA: Idea Group Publishing.
wide variety of perspectives and backgrounds. To
Cockburn, A. (2003). Agile software development.
quote DeMarco and Lister (1999, p. 4), the major
Boston: Addison Wesley Professional.
problems of our work are not so much technologi-
cal as sociological. Prototypes and prototyping Cooper, A. (1994). The perils of prototyping.
tools are not silver bullets. The real value is in the Visual Basic Programmers Journal, August
prototyping process, not the resulting product, September 1994, 1.
which is reflected in our preference for using
DeMarco, T. & Lister, T. (1999). Peopleware:
prototype as a verb rather than a noun.
Productive projects and teams (2nd ed). New
York: Dorset House.
rEfErENcEs Floyd, C. (1984). A systematic look at prototyping.
In Budde, R., Kuhlenkamp, K., Mathiassen, L. &
Arnowitz, J., Arent, M., & Berger, N. (2007). Zullighoven, H., Approaches to prototyping, (pp
Effective prototyping for software makers. San 1-18). Berlin: Springer Verlag.
Francisco: Morgan Kaufmann Publishers.
Frank, C. E., Naugler, D., & Traina, M. (2005).
Bailey, B. P., & Konstan, J. A. (2003). Are infor- Teaching user interface prototyping. Journal of
mal tools better? Comparing DEMAIS, pencil Computing Sciences in Colleges, 20(6), 66-73.
and paper, and Authorware for early multimedia Consortium for Computing Sciences in Col-
design. In Proceedings of the SIGCHI Confer- leges.
ence on Human Factors in Computing Systems
Ginige, A. & Murugesan, S. (2001). Web en-
(pp 313-320). New York: ACM Press.
gineering: An introduction. IEEE Multimedia,
8(1), 14-18.

0
Prototyping in Web Development

Ginige, A. (2002). Web engineering: Managing Mendes, E., Mosley, N., & Counsell, S. (2006).
the complexity of Web systems development. In The need for Web engineering: An introduction.
Proceedings of the 14th International Conference In E. Mendes & N. Mosley (Eds.), Web engineer-
on Software Engineering and Knowledge Engi- ing. Berlin: Springer Verlag.
neering, (pp 721-729). New York: ACM Press.
Murugesan, S. & Ginige, A. (2005). Web engi-
Highsmith, J. (2002). Agile software development neering: Introduction and perspectives. In Suh, W.
ecosystems. Boston: Addison Wesley Profes- (Ed.), Web engineering: Principles and techniques
sional. (pp 1-30). Hershey, PA: Idea Group Publishing.
Hohmann, L. (2003). Beyond software architec- Myers, B. A. & Rosson, M. B. (1992). Survey on
ture: Creating and sustaining winning solutions. user interface programming. In Proceedings of
Boston: Addison-Wesley Professional. the ACM CHI92 Conference (pp 195-202). New
York: ACM Press.
Holter, E. (2006), Client vs developer wars. Chapel
Hill, NC: Newfangled Web Factory. Nam, T. J. & Gill, S. (2000). An effective proto-
typing method for delivering interaction design
Jeenicke, M., Bleek, W.-G., & Klisechewski, R.
in industrial design education. In Proceedings of
(2003). Revealing Web user requirements through
the IDATER Conference, 2000.
e-prototyping. In Proceedings of the 15th Interna-
tional Conference on Software Engineering and Newman, M. W., Lin, J., Hong, J. I., & Landay, J.
Knowledge Engineering (SEKE 03). Skokie, IL: A. (2003). DENIM: An informal Web site design
Knowledge Systems Institute. tool inspired by observations of practice. Human-
Computer Interaction, 18(3), 259-324.
Kappel, G., Prll, B., Reich, S., & Retschitzegger,
W. (2003). An introduction to Web engineering. Nielsen, J. (1990). Paper versus computer imple-
In G. Kappel, B. Prll, S. Reich, & W. Retsch- mentations as mockup scenarios for heuristic
itzegger (Eds), Web engineering: The discipline evaluation. In Proceedings of the IFIP Third
of systematic development of Web applications. International Conference on Human Computer
Hoboken, NJ: John Wiley & Sons. Interaction (pp 315-320). Amsterdam: North-
Holland.
Karat, J., & Dayton, T. (1995). Practical education
for improving software usability. Conference on Nielsen, J. (1993). Usability engineering. San
Human Factors in Computing Systems (pp 162- Francisco: Morgan Kaufmann Publishers.
169). New York: ACM Press.
Norman, D. (2002). The design of everyday things.
Kuniavsky, M. (2003). Observing the user ex- New York: Basic Books.
perience. San Francisco: Morgan Kaufmann
Preece, J., Rogers, Y., & Sharp, H. (2002). Interac-
Publishers.
tion Design: Beyond Human-Computer Interac-
Kussmaul, C., & Jack, R. (2006). User interface tion. Hoboken, NJ: John Wiley & Sons.
prototyping: Tips & techniques. Journal of Com-
Rettig, M. (1994). Prototyping for tiny fingers.
puting Sciences in Colleges, 21(6), 188-190. Con-
Communications of the ACM, 37(4), 21-27.
sortium for Computing Sciences in Colleges.
Royce, W. (1970). Managing the development of
Lederer, A. L. & Prasad, J. (1992). Nine manage-
large software systems. In Proceedings of IEEE
ment guidelines for better estimating. Communi-
WESCON (pp 1-9). New York: The Institute of
cations of the ACM, 35(2), 51-59.
Electrical and Electronics Engineers.

0
Prototyping in Web Development

Rubin, J. (1994). Handbook of usability testing. Verhoeven, J. (2003). Prototyping with Power-
Hoboken, NJ: John Wiley & Sons. Point. Retrieved on January 1, 2007, from http://
www.jansfreeware.com/articles/misc-prototyp-
Rudd, J. and Isensee, S. (1994). Twenty-two tips
ing.html
for a happier, healthier, prototype. Interactions,
1(1), 35-40. Virzi, R. A., Sokolov, J. L., & Karis, D. (1996).
Usability problem identification using both low-
Rudd, J., Stern, K., & Isensee, S. (1996). Low vs.
and high-fidelity prototypes. In Proceedings of
high-fidelity prototyping debate. Interactions,
the SIGCHI Conference on Human Factors in
3(1), 76-85.
Computing Systems (pp 236-243). New York:
Schrage, M. (2000). Serious play: How the worlds ACM Press.
best companies simulate to innovate. Boston:
Walker, M., Takayama, L., & Landay, J. (2002).
Harvard Business School Press.
High-fidelity or low-fidelity, paper or computer
Snyder, C. (2003). Paper prototyping: The fast and medium? Choosing attributes when testing Web
easy way to design and refine user interfaces. San prototypes. In Proceedings of the Human Factors
Francisco: Morgan Kaufmann Publishers. and Ergonomics Society 46th Annual Meeting,
pp. 661-665. Santa Monica, CA: Human Factors
Standish Group (1994). The CHAOS report. Re-
and Ergonomics Society.
trieved January 1, 2007 from http://www.standish-
group.com/sample_research/chaos_1994_1.php Williams, C. (2006). Smart phones, stupid punt-
ers? The Register, July 13, 2006.

0
0

Chapter XII
Testing for Web Applications
David L. Mills
University of Memphis, USA

aBsTracT

This chapter explores the concepts and challenges behind testing Web applications, and explores the
latest testing techniques and best practices. As our reliance on the Internet grows, the quality and reli-
ability of online resources become critical. Unfortunately, significant research shows that the current
approaches to modern Web development are woefully inadequate. It is important that there are processes
in place and best practices established to ensure that the development of Web applications can take
place with an assurance of quality. In addition to offering an initiation to some of the modern testing
methods and tools, the authors hope to motivate readers to consider testing as a multi-purpose tool to
be used throughout all stages of development.

INTroducTIoN on online resources, their quality and reliability


become critically important (Hendrickson, 2002).
Since its inception the Internet has been expand- Unfortunately, research suggests that practices
ing in size, pervasiveness, and functionality with to ensure these qualities are generally weak or
astonishing speed. It has become a fundamental missing from Web development projects.
tool in business, government, and education, This chapter aims to introduce the fundamen-
not to mention our personal lives. In order to tal concepts of testing Web applications, and to
support growing demands, the Web has evolved provide insight about current best practices and
from static pages of information to complex ap- resources. Not only will this chapter inform
plications with functionality equivalent to that of readers about the challenges of Web testing and
modern software. As we grow more dependent the tools/techniques available, but it should also

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Testing for Web Applications

provide motivation for software developers to Functional testing involves test cases that were
integrate a sound testing solution into their soft- created based on functional specifications, as op-
ware development life cycle model(s). posed to non-functional testing, which is aimed
at features such as speed and ease of use. Some
concepts in conventional Testing common non-functional tests include performance
testing, stress testing, and usability testing. Perfor-
Software testing is a method of quality assurance mance testing is evaluating the system compliance
involving the analysis of software to evaluate with performance specifications. Stress testing
features and ensure that the requirements are evaluates the behavior system when it is pushed
met. The tasks involved in testing are aimed at with a heavy load to the limits of performance.
verification and validation (IEEE, 1990). The Usability testing assesses the ability of users to
goal of verification is to make sure the product learn to operate a system. This type of testing
conforms to specifications. It is the process be- is often performed by specialists that observe
hind the question are we building the product humans interacting with the system.
right? Some sample verification tasks include Acceptance (aka Customer) testing is a form
inspections, reviews, and testing. Alternatively, of black-box testing that defines the criteria that
validation is aimed at making sure that product a system must meet to be acceptable for delivery,
build meets the needs of the user. It is the process that is, a way of validating the requirements. This
behind the question are we building the right is a powerful and beneficial tool. It enables both
product? Evaluations and customer testing are the customer and developer to ascertain what work
typical validation tasks. is complete and what work remains at any point,
Testing techniques can be categorized as and it is way for the developer to validate that the
either black-box or white-box. Black-box testing customer is satisfied (Jeffries, et. al., 2001). Since
takes place from an external view of the system, the acceptance tests serve as a testable version of
meaning that it is carried out without access to the critical requirements, when all the acceptance
the code or knowledge about the internals of tests for a system pass, the system can be con-
the program. The focus of such testing is on the sidered complete. Acceptance tests rarely involve
functionality of the program. White-box testing, code at the specification level, but they should be
which is also called structural or glass-box test- clear and understandable to both the customer and
ing, is performed with an internal view of the the developer. Collaboration is acceptable, even
system. Tests are generated using the code as a encouraged, but it is critical that the customer is
guide (Myers, 2004). always directly involved in writing the test cases.
There are various types of tests, each having To facilitate their communication, acceptance tests
a different focus and taking place at a different are usually provided in the form of spreadsheets,
level. Unit testing targets individual components tables or scripts that can be executed directly or
of a program. This usually refers to individual as automated tests.
methods and/or classes (IEEE, 1990; Myers, Regression testing is the re-execution of
2004). Unit tests evaluate modules independently previous tests created for a system or component.
of one another. Integration testing is performed They are typically run after significant changes
on combined components of the system, and are made, in order to ensure that intended func-
focuses on their interaction. System testing is a tionality was not lost. Many types of tests can be
form of black-box testing in which the system as a included in the regression test suite, including unit,
whole is tested. These tests can target functional integration, system, and acceptance tests; though
or non-functional specifications. only a select set of tests is usually included as it

0
Testing for Web Applications

can be impractical to continually re-run all tests Such failures are typically the result of weak
(IEEE, 1990). development and management processes. This
Testing often requires the development of seems to be confirmed by studies suggesting that
resources that will not be included in the final approaches to Web development applications have
product in order to enable testing to take place. generally been informal at bestlacking any
Such resources are called scaffolding. These well-defined defined process or quality control
simulate the functions of missing components; (Ginige, 2002; Mendes, 2005).
some common examples include stubs and mock
objects. Web Engineering

Web development is a relatively young field. The


dEvElopmENT of WEB issues facing it are analogous to those faced by the
applIcaTIoNs conventional software development community
during the software crisis in the 1970s, when
The World Wide Web (WWW) was originally large-scale projects were all too often delivered
created to enable people to share information. late, over budget, and/or with defects. This was
Early Web sites were just static pages of textual the driving factor for the development of mod-
information with hyperlinks to one another. Over els, processes, and methodologiesthe birth of
time the WWW has evolved new functionality software engineering (Ginige, 2002).
and complexity, becoming an environment for In a similar fashion, Web engineering has
applications ranging from the simple static in- emerged as a new discipline. Ginige (2002)
formation pages to powerful, commercial sites defines it as the application of scientific and
with features equivalent to conventional programs mathematical principles to practical ends such
(Mendes, 2005). In this chapter, we reserve the as the design, manufacture, and operation of
term Web application for the latter, more power- efficient and economical structures, machines,
ful type of online resourcewith characteristics processes, and systems. There is an obvious
of both Web sites and conventional software for need for discipline and structure, but does this
delivery on the WWW. represent a new field or is it a subset of conven-
Yet, despite the vast advances in the technology tion software engineering?
the history of Web development is littered with While most agree that there is significant
significant issues and expensive failures. A sur- overlap, supporters claim that the Web environ-
vey published in 2000 by the Cutter Consortium ment poses unique concepts and problems that
(Deshpande, 2002; Mendes, 2005), identified require a new and distinct approach (Ginige,
the following problems: 2002). Though an extensive comparison of the two
disciplines is outside the scope of this chapter, a
63% of projects exceeded the budget look at the potential differences offers valuable
79% of projects were behind schedule information which can help guide an approach to
53% of delivered systems did not have re- testing. A summary of the comparisons adapted
quired functionality from Ginige (2002), Mendes (2005), and Stout
84% of delivered systems did not meet busi- (2001) follows.
ness needs Characteristics and technologies. The archi-
52% of deliverables were of poor quality tectures of traditional applications are typically
simpler than those of Web applications, which are
usually distributed cross-platform systems.

0
Testing for Web Applications

Also, Web applications are comprised of agile software development


more distinct components and technologies (such
HTML/XML, multimedia, databases, servlets, The Web is perhaps the best illustration of the
and server-side pages) than traditional applica- challenge of applying traditional engineering
tions. principles and practices complicated by the need
Releases and maintenance. Maintenance to remain flexible with increasingly dynamic
cycles for Web applications are measured in requirements. New approaches have come about
days or hours, rather than weeks for traditional that make traditional processes such as testing
software. Also, releases do not occur as batched more fluid and easier to integrate, and many of
eventssmall updates are made frequently, un- these techniques have been made more popular
derscoring the iterative and evolutionary nature or more effective through the emergence of agile
of Web development. software development over the last decade.
Team composition and skills. The people The needs of Web applications are uniquely
involved in the development process for Web compatible with the emphasis of agile approaches
applications are often more diverse in terms of on quality and speed (Hendrickson, 2002). Agile
skills and disciplines. While both Web and con- approaches offer an alternative to traditional
ventional development incorporate requirements methodologies, which are typically heavy pro-
engineering, software engineering, and testing; cesses that are driven by documentation (Mills,
Web projects often require additional expertise et al., 2006). Unlike plan-driven techniques,
from marketing, art/hypermedia, graphic design, agile practices embrace change and promote a
and network management to name a few. strong relationship between the developer and
Dynamic nature. The Web itself is by nature the customer (Boehm & Turner, 2005); To be
a dynamic entity defined by shifting technologies, agile is to be alert, nimble, and responsive,
changing content, and infrastructure that is in a all of which are important characteristics of the
state of constant flux. Modern Web applications agile paradigm.
have evolved from pages with static information There are a number of agile methodologies
to complex, dynamically-generated pages. available, varying in the practices they employ
Interactivity. Developers have very limited as well as the degree of discipline, but all of them
control over the users actions. For example, us- subscribe to a set of common goals. In 2001, these
ers can close the browser or hit the back button goals were formalized in a document called the
at any time, and no notification may be sent to Agile Manifesto. Part of this declaration appears
the application. below.
User environments. Rather than being limited
to a group or company, the community of users Individuals and interactions over processes and
may include people anywhere in the world and few tools.
assumptions can be made about users hardware Working software over comprehensive documen-
or software environment. tation.
Protected content. With the potential for Customer collaboration over contract negotia-
global exposure, there are special concerns about tion.
the content provided in Web applications. Items Responding to change over following a plan.
that are protected by copyrighted must often
be protected against downloading and personal That is, while there is value in the items on the
information about users or must be protected as right, we value the items on the left more (Boehm,
there may be ethical or legal issues surrounding 2005, pp. 195).
such items.

0
Testing for Web Applications

The Manifesto juxtaposes agile and tradi- considerations and Techniques


tional objectives, but it is important to note that
agile approaches do not abandon ideals such as The goals for testing conventional applications are
documentation or discipline. Rather, they consider the same as those for Web applications, but ad-
the value of interactions, working software, and ditional elements such as availability, reliability,
responsiveness to change.Extreme programming performance, scalability, and security are impor-
(XP), one of the more well-recognized agile meth- tant considerations in the measure of quality for
odologies, identifies four values that capture the a Web application. This section includes testing
spirit of the agile community: communication, areas and techniques for consideration adapted
simplicity, feedback, and courage (Boehm, 2005). from Di Lucca (2002), Myers (2004), Sneed (2004),
In XP, these are achieved through practices such Stout (2001), Wu (2004), and Xu (2005).
as short iterations, simple design, pair program- Static techniques focus on elements that do
ming, test-driven development, and continuous not change, and therefore do not require execu-
integration. tion. Such tests are usually run on a page that has
already loaded into a browser (Stout 2001). The
public exposure of Web applications makes it vital
TEsTING WEB applIcaTIoNs to ensure that presented elements are evaluated for
quality. For many businesses, the Web site is the
Although Web applications are relatively young, face of the company; poor impressions can have
their growing importance in critical e-commerce substantially impact your customers and cause
applications means that Web development activi- them to question your product. Considerations
ties must be followed in a manner that ensures should include:
their quality. One of the most important means of
accomplishing this is testing. However, as Web Correctness of spelling and grammar
applications continue to grow larger and more Accuracy of data
complex, it is vital that standards and practices Functionality of hyperlinks and images
are developed to meet the demands for devel- Aesthetics and consistency of visual/pre-
oping quality Web applications in an efficient sentation elements
manner.

Figure 1. Sample flow of execution for a simple login


Testing for Web Applications

Alternatively, dynamic techniques focus on correctness (that the logic is accurate) and compat-
testing the functional and non-functional aspects ibility (that it will run in varied environments).
of the application. These techniques involve the Transaction testing. Actions on the Web take
execution of code and interactivity with the server place in transactions, beginning with a request
(Ricca, 2001; Stout, 2001). The figure below on the side of the client and ultimately coming
shows a simple example of the way a Web server back as a response from the server. The example
transaction occurs; the sample below is a model in Figure 1 demonstrates the transaction(s) for a
of a user login. login. It is important to test the flow of end-to-end
In Figure 1, the flow of execution proceeds transactions to evaluate the transfer of control,
as follows: data consistency, and data formatting.
Non-functional testing. As mentioned at
1. Login page requested the beginning of this section, there are many
2. Login page returned components that contribute to the quality of Web
3. Login form submitted applications. Tests should be written to ensure that
4. JSP (server page) called to handle submis- each of these characteristics meets pre-determined
sion specifications. An additional non-functional
5. Server page queries the database for valida- consideration is configuration/environment. Test
tion plans should include tests for common user envi-
6. Database returns validation results to the ronments, or those that are most important to you.
server page Important characteristics include connection type
7. After processing, the server page generates and speed, platform/operating system, browser
the HTML software/versions, additional applications/plug-
8. Based on the validation, the appropriate ins, and security settings.
page is returned
Best practices
Server-side page tests. Within most technolo-
gies used for modern Web applications such as Process management and planning. It is well-
servlets, JSP (Java server pages), and ASP (active accepted and understood that it is critical to have a
server pages)a great deal of execution occurs at process in place for all but the most trivial projects.
the server. The server-side software can include While there is a great deal of debate over whether
not only traditional elements such as classes/ conventional techniques are appropriate for Web
objects, but Web-specific components such as applications, practices from both traditional
servlets and scripted server-pages. Conventional and agile approaches should be considered. No
practices such as unit testing, integration testing, approach is universally applicable, even across
and regression testing should be performed on Web development projects. Projects benefit most
server-side components. by combining appropriate practices (Boehm &
Client-side/browser-page tests. For many Turner, 2005). Regardless of the process and
applications, some execution will also take place practices used, testing must be an integral part
on the client end. Typical examples of such items at all times, beginning with the requirements.
include applets, scripts (controlling interaction, At each step and decision, testability should be
field validation, presentation, etc.), and visual ef- a stated goal.
fects. These items can be dynamically generated, Automated testing tools. It is important that
which introduces further complexity. However, tests are run early and often, and this is made
it is important to tests such code to ensure both easier and more efficient by the use of automated


Testing for Web Applications

testing tools. Such tools can help with the tasks of This test will of course fail (i.e., return a red bar),
generating, executing, and managing tests (Stout, since the functionality is not yet in place. During
2001). Automated testing is recommended as part the green step, the developer writes just enough
of many agile methodologies and in test-driven code to get the test to pass (i.e., return green).
development. A balance is important however, Finally, during the refactor step, the developer
as writing and executing tests can get costly, es- cleans up the new and existing code to simplify
pecially for large and/or complex systems. and reduce duplication.
Testing environments. To enable effective TDD has been gaining increasing support,
testing, it is critical to have a separate environ- and adopters are reporting numerous benefits
ment available. Furthermore, it is critical that the from its use. Building software using TDD tends
test environment is identical to and independent towards simplicity. More specifically, since only
from the production environment (Stout, 2001). enough code is developed to pass the tests, the
This allows development to proceed without any design is kept inherently simple. There should
potential effects on the availability or stability of never be any unnecessary objects in the design,
the production application. An even better ap- since everything that exists after refactoring
proach, as suggested by Stout (2001) and Myers should be in use (Beck, 2005). By using TDD,
(2004), is to have three identical and independent developers apply the agile concepts Keep It
environmentsone for on-going development, Simple Stupid (KISS) and You Arent Going
another for testing, and finally the production To Need It (YAGNI).
environment. TDD forces developers to write automatically
Test-driven development (TDD). According testable code. Since the tests are written first, the
to Ron Jeffries, the goal of test-driven develop- objects are built with a user in mind. This changes
ment is clean code that works (Beck, 2003). This the focus by shifting attention to the interface and
sounds like a reasonable goal for any project, but not the implementation. Also, code tends to be
what exactly is involved in adopting this tech- more cohesive and less coupled. Since the objects
nique? TDD is more than just vigorously incorpo- serve both the application and the tests, the objects
rating tests in a project; rather it is quite literally will likely be developed with a clean and simple
the practice of putting testing in the drivers seat interface (Beck, 2005). Developing the objects
of development. In fact, the name itself implies with multiple clients in mind also tends to make
that this is a technique for development as a whole, the code more reusable (Hieatt, 2002).
not for testing (Ambler, 2004). In addition to driving design decisions, TDD
Like an agile methodology, TDD is an evolu- simplifies the process of moving forward. Each
tionary approach. The process begins by writing step consists of writing a small test, writing code
a test, which will initially fail, and then writing to pass it, and then refactoring. Developers should
code to support the intended functionality (Am- never be faced with planning and implementing
bler, 2004). TDD is driven by two basic rules: (1) a large chunk of functionality. All aspects of
write code only when a test fails; and, (2) get rid functionality are broken down into small test-
of duplication as you come across it. These rules able pieces, making it much easier to identify
are the foundation for the TDD building cycle what to do next, giving them the confidence to
described by the TDD mantra of red, green, implement another cycle. Of course, sometimes
refactor (Beck, 2003). it may be difficult to identify what to choose as
During the red step, the developer writes a test the next piece; it will take experience to become
to cover a small piece of functionality (for a new efficient. However, it is very important to follow
program or to be added to an existing program). the TDD cycle, and not to code until you have a


Testing for Web Applications

test in place first. There is a rule in TDD If you extremely popular with adopters of test-driven
cant write a test for what you are about to code, development and agile methodologies such as
then you shouldnt even be thinking about cod- eXtreme Programming. This success is due,
ing (Georgy & Williams, 2003, p.1). at least in part, to its simplicity and flexibility.
In each short TDD development cycle, a small Also, a great deal of documentation and online
amount of value/functionality is added and each resources exists for JUnit, making it easy for those
test in a growing suite is passing. Also, the gap just getting involved.
between making a decision and getting valuable Fortunately, using xUnit tools encourages the
feedback is greatly minimized. This process of separation of business logic into its own layer,
consistently adding functionality, coupled with which could be tested outside of a Web applica-
the frequent reinforcement of passing tests fosters tion. Consider the example of a calculator on the
courage, confidence, and trust within developers Web; the functionality (adding, subtracting, etc.)
and teams (Georgy & Williams, 2003). can be separated into a calculator class, enabling
the use of an xUnit tool.
Tools At some point, however, it will be necessary
to get access to Web features that are inaccessible
General Purpose Frameworks by JUnit alone. A number of tools are available to
overcome the special challenges of testing on the
The xUnit family is a collection of testing frame- Web. A few of these tools are described below.
works based on an original design by Kent Beck. Mock objects. Mock objects are a form of
They aid in automated testing by allowing a scaffolding, which simplify testing when the code
developer to easily write tests using assertions under evaluation depends on another module or
to define expected conditions or outcomes. resource that does not exist. Open source pack-
Implementations have been written for many of ages such as EasyMock or DynaMock provide
the most popular languages available today. The such functionality, and easily integrate with other
table below contains a partial listing of popular testing resources.
xUnit implementations. HTTP/servlet testing. When Web-specific
JUnit is a general purpose automated testing elements of a program need to be tested, JUnit
framework for Java. It is also is the most familiar alone cannot provide all the necessary tools.
and widely-used member of the xUnit family of HTTPUnit is an open-source testing framework
testing packages, gaining acceptance and popu- capable of emulating a browser, submitting forms,
larity in industry and academia. It has also been working with JavaScript, using cookies, and ana-

Table 1. Partial listing of popular xUnit implementations


Implementation Language
JUnit Java
csUnit .NET
NUnit .NET
PHPUnit PHP
jsUnit JavaScript
Test::Unit Ruby
PyUnit Python


Testing for Web Applications

lyzing Web pages. ServletUnit is an extension that Beck, K. (2003). Test-driven development: By
adds the ability to test applications using servlet example. The Addison-Wesley signature series.
technology. Boston: Addison-Wesley.
In-container testing. For some testing, it will
Beck, K., & Andres, C. (2004). Extreme pro-
be necessary to have access to servlet container
gramming explained: Embrace change. Boston:
resources that are unavailable with mock object
Addison-Wesley.
approaches. Cactus is an extension to JUnit
that enables server-side testing in a real servlet Boehm, B. W., & Turner, R. (2003). Balancing
environment. agility and discipline: A guide for the perplexed.
Acceptance and functional testing. A number Addison-Wesley Professional.
of tools are available to enable functional testing
Deshpande, Y., S. Murugesan, et al. (2002). WEB
of Web applications. Two of the most popular
ENGINEERING. Journal of Web Engineering,
are JWebUnit and Selenium. These tools provide
1(1), 003-017.
capabilities for evaluating Websites, including
support for GUI elements and executable content, Di Lucca, G. A., A. R. Fasolino, et al. (2002).
such as JavaScript. Testing Web applications. Software Maintenance,
2002. In Proceedings. International Conference
on.
coNclusIoN
Ginige, A. (2002). Web engineering: Managing
the complexity of Web systems development. In
The development of Web applications is complex
Proceedings of the 14th international conference
and presents new challenges that are not addressed
on Software engineering and knowledge engineer-
by conventional software development. As they
ing, (pp. 721-729).
continue to gain importance and complexity,
it will become increasingly vital that there are Ginige, A., & Murugesan, S. (2001). Web en-
measures in place to ensure their quality and gineering: An introduction. Multimedia IEEE,
reliability. This chapter presented some of the 8(1), 14-18.
current challenges in Web development, as well as
Hendrickson, E., & Fowler, M. (2002). The soft-
testing considerations, tools, and best practices. A
ware engineering of internet software. Software
successful test strategy takes all aspects of qual-
IEEE, 19(2), 23-24.
ity into consideration. While future technology
will most likely offer solutions for many of the Hieatt, E., & Mee, R. (2002). Going faster: Test-
issues being experienced today, they will almost ing the Web application. Software, IEEE, 19(2),
certainly present new ones as well. 60-65.
IEEE (1990). IEEE Standard 610.12-1990, IEEE
Standard Glossary of Software Engineering
rEfErENcEs
Terminology.
Ambler, S. W. (2004) The Object Primer: Agile Janzen, D., & Saiedian, H. (2005). Test-driven
Model-Driven Development with UML 2.0. Cam- development concepts, taxonomy, and future
bridge University Press. direction. Computer, 38(9), 43-50.
Beck, K. (2001). Aim, fire. IEEE Software, 18(5), Jeffries, R., Anderson, A., & Hendrickson, C.
87-89. (2001). Extreme programming installed. The XP
series. Boston: Addison-Wesley.


Testing for Web Applications

Mendes, E., Mosley, N. (2005). Web Engineering. Sneed, H. M., A. GmbH, et al. (2004). Testing
Berlin, Germany: Springer. a Web application. Web Site Evolution, 2004.
WSE 2004. In Proceedings of the Sixth IEEE
Mills, D., L. Sherrell, et al. (2006). Experiences
International Workshop, (pp. 3-10).
using agile software development for a marketing
simulation. SoutheastCon, 2006. In Proceedings Stout, G. A. (2001). Testing a Website: Best prac-
of the IEEE: 285-290. tices. Retrieved on from whitepaper on www.
reveregroup. com
Myers, G. J., Badgett, T., Thomas, T. M., & Sandler,
C. (2004). The art of software testing. Hoboken, Wu, Y., J. Offutt, et al. (2004). Modeling and
N.J.: John Wiley & Sons. testing of dynamic aspects of Web applications.
Submitted for publication: 04-01.
Ricca, F., & P. Tonella (2001). Analysis and test-
ing of Web applications. In Proceedings of the Xu, L., B. Xu, et al. (2005). Testing Web applica-
International Conference on Software Engineer- tions focusing on their specialties. ACM SIGSOFT
ing, (pp. 25-34). Software Engineering Notes, 30(1).




Chapter XIII
Outsourcing Issues in Web
Development
Clif Kussmaul
Clif Kussmaul, Elegance Technologies, Inc., USA & Muhlenberg College, USA

Roger Jack
Elegance Technologies, Inc., USA

aBsTracT

This chapter addresses issues, alternatives, and best practices that apply when outsourcing Web de-
velopment. The chapters primary objective is to provide a concise overview of key concepts and best
practices for practitioners and students, as well as other audiences. First, we introduce and motivate the
chapter, provide background, and present three key ideas that are expanded and developed in the two
subsequent sections. The first describes four steps to help executives and upper management address
strategic issues and decisions in outsourcing. The second describes four more steps to help managers,
team leaders, and development teams address more tactical issues. We conclude with future trends and
implications, and a summary of the best practices.

INTroducTIoN IT function or application (CIO Insight, 2003).


Offshoring is the use of staff in other countries,
Outsourcing is the use of external companies to and is often associated with India, China, and the
perform services, rather than using internal staff. former Soviet Union. Forrester Research estimates
According to a 2003 survey of chief information that 277,000 computer jobs and a similar number
officers (CIOs), 70% of companies outsource some of management and operations jobs in the United

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Outsourcing Issues in Web Development

States will move offshore by 2010 (Engardio, powerful and flexible software engine to perform
2003). An ACM Task Force (Aspray, Mayadas, data processing operations. SPC planned to use
& Vardi, 2006) estimates that each year 2-3% of the software engine in a series of Web-based ap-
IT jobs in the United States are offshored, but plications, customized to specific domains, so that
that many more IT jobs are lost and created each customers could take advantage of the engines
year. Furthermore, the task force notes that it is capabilities without the expertise and effort needed
very difficult to predict such changes accurately, to configure it. Thus, the Web-based applications
particularly since many of the studies are produced have complex databases and interactions with
or supported by organizations with a vested inter- the software engine. SPC decided to consider
est in the outcomes (e.g., American Electronics outsourcing the development of these Web-based
Association, 2004; Behravesh and Klein, 2004; applications, for reasons discussed below.
Farrell, 2003; Vogel & Connelly, 2005). The following section provides essential
This chapters primary objective is to provide background. We then describe four steps to help
a concise overview of key concepts and best executives and upper management address strate-
practices for practitioners and students, as well as gic issues and decisions in outsourcing. Next, we
other audiences. The chapter emphasizes Web ap- describe four more steps to help managers, team
plications and includes examples from outsourced leaders, and development teams address more
Web development projects the authors have led, tactical issues. We conclude with future trends
overseen, and reviewed. However, many of these and implications, and a summary of the best prac-
approaches and issues apply to many sorts of tices. We provide a multidisciplinary perspective,
outsourced development work. since outsourcing involves a variety of disciplines,
To outsource Web development more effec- including business, software development, psy-
tively, organizations should focus on three key chology, and sociology. Outsourcing, especially
ideas, which we expand and develop below. First, offshore outsourcing, can be controversial; we
structure projects in short iterations, so that present a balanced view of the benefits and risks,
there are multiple opportunities to find and cor- based on experience.
rect problems; in words attributed to Tom Peters,
test fast, fail fast, adjust fast. Second, recognize
that the major problems of our work are not so BacKGrouNd
much technological as sociological (DeMarco
& Lister, 1999, p. 4, original emphasis); in other In this chapter, client is the organization that
words, the major benefits and risks are tied to is deciding if and how to use outsourcing in a
people and relationships rather than to tools. Web development project, provider is the orga-
Third, match the structure of the development nization performing the outsourced work, joint
team to the desired structure of the system. team includes everyone at the client and provider
This relationship, first described by Conway responsible for building the project, and stake-
(1968), is particularly important in outsourcing holder is anyone with a significant interest in
relationships, where it can be more difficult to the project, including upper management, other
restructure the project. business functions such as sales, and, of course,
Throughout the chapter, we use examples target end users.
distilled from a variety of outsourced Web devel- Distributed development is when the team is
opment projects the authors have led, overseen, at multiple locations, and global development is
or reviewed. SPC (Software Product Company) when the team is in multiple countries. Outsourc-
had invested significant resources to develop a ing and offshoring have inspired other related


Outsourcing Issues in Web Development

terms. In sourcing occurs when internal staff development, or system evolution. Chen and
perform previously outsourced services. Near Heath (2005) also identify a challenges, includ-
shoring is the use of developers in nearby coun- ing usability design, content maintenance, scal-
tries, often to reduce travel costs and time zone ability, security, fast deployment, and competing
differences. For example, US companies might architectures, platforms, and tools. Similarly,
use staff in Canada, Mexico, or the Caribbean. Mendes, Mosley, and Counsell (2006) identify
Rural sourcing is the use of staff in lower cost twelve areas of difference, and emphasize the
areas of the same country. wider range of people involved, the wide range and
rapid change of technologies, and the diversity of
Web development potential users, as compared to more traditional
software systems.
Web development differs from other types of soft- Some of these differences have particular
ware development in some important ways. For implications for outsourcing. For example, re-
example, Ginige and Murugesan (2001), Ginige quirement changes must be communicated across
(2002), and Murugesan and Ginige (2006) identify organizational boundaries, and may require
several challenges in Web systems, including the project costs or schedules to be renegotiated.
continual growth of requirements, the continual The range of necessary skills (e.g., analysis, in-
change in information content, a diverse set of formation architecture, graphic design, software
stakeholders, and the need for multidisciplinary design, coding, content development, testing,
development teams. They also describe a hierar- and usability) can be assembled quickly through
chy of Web-based software, ranging from static outsourcing, but using multiple providers can
Web pages through database-driven Web sites to compound communication problems. Outsourc-
complex Web systems, and propose a set of pro- ing can provide just in time access to new tools
cesses to help address these challenges. Kappel, and technologies; however, over a period of years
et al. (2003) describe a similar but larger set of this can result in a diverse set of applications for
challenges, which are categorized by their focus client is unable to maintain.
on product and content, usage context, system

Figure 1. Four strategic steps


Outsourcing Issues in Web Development

sTraTEGIc IssuEs commonly cited reasons were lack of resources,


lack of expertise, cost effectiveness, and speed of
Four key steps will help executives and upper development, as summarized in Figure 2.
management realize the benefits of outsourcing Many IT projects run into problems; for
and minimize the risks. These steps are illustrated example, a Standish Group survey of applica-
in Figure 1. tion development projects estimates that 28%
First, identify the objectives for outsourc- succeeded, 49% were challenged, and 23%
ing and whether these objectives are realistic. failed (Johnson, et al., 2001). Similarly, 49.8%
Second, select the specific skills and services to of companies report problems with outsourcing
be outsourced. Third, determine the appropriate (CIO Insight, 2003) including poor quality, missed
type of relationship. Fourth, select a provider or deadlines, unexpectedly high costs, poor domain
providers. Other authors describe similar progres- knowledge, and insufficient value, as summarized
sions (e.g., Lacity & Willcocks, 2000). Note that in Figure 3.
these steps are not entirely sequential; later steps Clearly, the benefits of outsourcing often
can feed back to affect earlier steps, just as in the parallel the common problems. This should not
traditional waterfall model for software develop- be surprising, since these are key factors in soft-
ment. For example, final provider selection may ware development. They are discussed in more
affect the nature of the relationship, or the specific detail below, along with the implications for Web
skills and services that are outsourced. Each step development.
is described in more detail below, including rel- First, outsourcing can enable organizations to
evant background, application in the case study, increase and decrease project resources, espe-
and a checklist of key questions. cially the number of people. This is particularly
useful in Web development and product develop-
objectives ment, where the need for designers, programmers,
testers, and other roles can vary dramatically
The first strategic step is to identify the objec- over time.
tives for outsourcing, and assess whether these Second, outsourcing can take advantage of
objectives are realistic. Outsourcing is done for a specialized skills or facilities. These resources
variety of reasons. A survey asking CIOs to list may be expensive or unavailable locally, or may be
their top three reasons for outsourcing IT applica- needed only briefly or intermittently. For example,
tions (CIO Insight, 2003) found that the four most companies might choose to outsource their entire

Figure 2. Common reasons for outsourcing

0
Outsourcing Issues in Web Development

Figure 3. Common problems with outsourcing

Web presence, if they do not have or otherwise clock development can be very effective. In long
need in-house expertise in Web development. projects, it also discourages staff from working
Outsourcing for skills or facilities can result in excessive hours, which can lead to burnout and
higher quality, although outsourcing can also lead other morale problems.
to quality problems, particularly if the provider Clients should consider whether their objec-
misrepresents capabilities or the client does not tives are reasonable, since outsourcing is not a
monitor the project carefully enough. silver bullet. It is easy to assume that paying $15
Third, outsourcing can reduce costs. Lower per hour will dramatically lower total development
cost is the most commonly cited (59.8%) advantage costs, but most organizations realize more modest
of offshoring, although 73.5% of CIOs surveyed savings. Similarly, a larger joint team may be able
feel that outsourcing is overrated as a cost-cutting to deliver a system more quickly, but only within
strategy (CIO Insight, 2003). Although hourly limits; adding manpower to a late software project
rates in countries like India and China can be less makes it later (Brooks, 1995, p. 25).
than 10% of those in US (Dignan, 2003), most Clients should also consider how the objectives
IT organizations save 15%-25% during the first could be assessed; often, planning such assess-
year and up to 40% by the third year (Davison, ment will help determine whether the objectives
2003). are reasonable. For example, to assess the cost
Fourth, outsourcing can speed development savings from an outsourced project, a client will
and reduce time to market, by providing specific need to estimate internal project costs. Develop-
skills just when they are needed. For example, ing such estimates will help to uncover potential
making major changes to an organizational Web risks, and may even provide a model for track-
site might require a long time for a small Web ing the outsourced project. Financial objectives
development team, which might otherwise be are relatively easy to assess, but assessing other
underutilized. A provider could complete such objectives may be more difficult, and depend on
changes more quickly using a larger team, and the specific processes used in the project.
then assign them to work for other clients. Under For SPC, one objective for outsourcing was
the right circumstances, onshore staff can focus on to reduce time to market and respond quickly to
activities such as testing and customer interaction, changes in the market. Furthermore, the number
pass a set of requirements to an offshore team at and intensity of Web application projects was
the end of the day, and have the resulting changes likely to vary over time, and diverting SPCs de-
implemented the next morning. This round-the- velopment team to work on the Web applications


Outsourcing Issues in Web Development

would adversely affect the software engine. Thus, outsourcing work that is only indirectly related to
a second objective was to be able to adjust the size the organizations main business. Thus, technol-
and skill sets of the team during the course of the ogy organizations are less likely to outsource IT
project. In addition, outsourcing would reduce functions than are organizations in other sectors.
direct salary costs, and infrastructure costs, such For example, a company that uses a Web site to
as office space and equipment. Outsourcing had sell physical products is more likely to outsource
few indirect costs, since SPC already had offices Web development than a company whose core
in multiple locations and encouraged telecom- offering is a Web-based service.
muting. SPC considered these objectives to be It is easier to outsource widely available and
reasonable based on experience with previous interchangeable skills and services, and new
software projects; some of the objectives were also providers often start with such offerings. If a
assessed using techniques described below. particular client-provider relationship ends, both
In summary, organizations should deter- parties are more likely to find new partners. For
mine: example, it will be easier to outsource systems
based on the LAMP (Linux, Apache, MySQL,
a. What are our main objectives for outsourc- and PHP) stack (Kunze, 1998) than on less
ing? popular technologies or technologies that are used
b. Are our objectives reasonable and attain- together less frequently. However, clients often
able? select and switch providers for such work based
c. How will we assess our objectives to know on price. Thus, most providers continually work
if they are achieved? to develop more specialized or higher level of-
ferings, which clients will value for factors other
skills and services than price. For example, a provider that provides
testing services may add development services,
After identifying objectives, the second strategic and then add analysis and design services. These
step is to determine the specific skills and services general trends, and some of the associated risks,
that should be outsourced in order to reach those are described by Christensen (1997).
objectives. A wide variety of skills and services It is easier to outsource work that can be
can be outsourced, but clients should consider the clearly defined, easily evaluated, and is unlikely
potential benefits (described above) of each, as well to change. Vague, poorly understood, or rapidly
as the relative drawbacks, which are influenced changing requirements are more difficult, since
by several factors, described below. they generally involve more complex commu-
It is harder to outsource work that involves nication and more flexible agreements between
core competencies or key intellectual property. the client and provider. Similarly, it is easier to
First, the information or skills must be shared or outsource work that can be clearly separated
transferred to the provider, and this process must from work that will remain in-house, and more
be repeated with each new provider. Second, difficult to outsource work that overlaps or must
there is the risk that the provider will share such be integrated with in-house work.
information or skills with competitors, or use it to Many of the efficiencies of outsourcing re-
develop competing products. This is a particular quire a minimum size. Often, it is best to start
concern for smaller clients dealing with offshore by outsourcing a small pilot project, in order to
providers, since legal proceedings can be difficult minimize risk, and then expand the scope of the
and expensive. Conversely, there is less risk in project once the basic approach is validated.


Outsourcing Issues in Web Development

For SPC, the software engine was a core propriate type of provider relationship, which will
competence, and should be developed in-house. likely depend on the objectives, and the services
Furthermore, the engines complexity would make and skills required. For example, if the system
it difficult to outsource work to providers who did has precise and easily defined requirements, it
not understand the overall architecture and its may be relatively simple to transmit them to an
implications. SPC sought to outsource analysis, offshore team for implementation, and wait for a
design, and development of the Web applications, final delivery. On the other hand, a much closer
however, because they used widely available skills relationship may be appropriate for projects that
and tools, addressed rapidly changing market are mission critical, have incomplete or changing
conditions and shifting requirements imposed by requirements, or that have multiple connections
industry leaders, customers, and competitors. to other parts of the organization.
In summary, organizations should deter- Kishore, et al. (2003) describe a framework
mine: that analyzes outsourcing relationships along
two dimensions. Dependence is the degree to
a. What work could we outsource? which ownership and control is transferred to the
b. What are the benefits and risks of outsourc- provider. Strategic impact is the degree to which
ing this work? the outsourcing relationship affects competitive
c. What will we do if problems occur? positioning and long-term strategy. Together, these
d. How will we specify and assess the work dimensions categorize outsourcing relationships
that needs to be done? into four quadrants, illustrated in Figure 4.
Support relationships are used selectively to
relationships simplify internal operations, such as payroll pro-
cessing, basic IT functions, or custodial services.
After determining required skills and services, the They are easily monitored based on outcomes,
third strategic step is to determine the most ap- and typically have low setup and switching costs,
so it is easy to change providers. Alignment

Figure 4. Outsourcing relationships


Outsourcing Issues in Web Development

relationships are also used selectively, but usu- may have difficulty estimating or managing the
ally for more strategic purposes, such as expert total cost of the project. An intermediate ap-
consulting, or specific projects. Requirements proach is to develop a joint estimate of the entire
are typically more vague and dynamic, making project, but to structure the project as a series of
it more difficult to measure outcomes. Reliance time-limited iterations, each with an agreed price
relationships are usually used to reduce costs, on range. In each iteration, the provider attempts to
a broader scale and for longer time periods than deliver as much functionality as possible within
support relationships. There are typically well- the range. After each iteration, the client and
defined processes and outcomes, and thus easy provider revise the joint estimate, and agree on
to monitor, though it is more difficult to switch priorities for the next iteration. This example
providers. Alliance relationships are strategic illustrates a more general principle that will be
partnerships that usually develop from other types discussed further belowa client and provider
of relationships. They are the most uncertain and should structure their relationship so that their
dynamic relationships, and require significant incentives are aligned whenever possible. Multiple
trust and communication, and often shared goals negotiations tend to encourage cooperation (e.g.,
or incentives. Axelrod, 1984).
Kishore, et al. conclude that outsourcing Finally, outsourcing relationships should con-
should be considered more as a management of sider the organizational cultures of the client and
relationship with services providers rather than as the provider. Tightly coupled relationships are
a simple subcontract for IS commodities and that more difficult when the cultures are different, or
the most important factor affecting success of when one organization has reasons to distrust the
outsourcing appears to be a mutual understanding other. For example, it is difficult for providers to
between clients and their service providers (p. work closely with client staff who fear that they
92). This is certainly the case with outsourcing will lose their jobs or status to outsourcing.
product development, which can have strategic Such relationships are easier to develop when
consequences. the organizations have similar cultures, locations,
Outsourcing relationships also have financial languages, and time zones, and when there is
characteristics, which can take on a variety of already experience with distributed teams.
forms. At one extreme are projects where the The relationship between SPC and its out-
client and provider agree on a fixed price for the sourcing provider evolved over time. Initially,
entire project. Although fixed price projects may it was a support relationship, where an hourly
appear to limit risk, they actually present several consultant worked with SPC to study and evaluate
challenges. First, the project scope may be unclear specific application domains. It then evolved to
or incomplete. As a result, the provider must build an alignment relationship, where the consultant
in a margin to cover the unexpected. Second, fixed helped define requirements and a high-level ar-
price projects set up a conflict between the client chitecture for a specific Web application. Once a
and provider. Once a fixed price is set, the client proof-of-concept was completed, an onsite liaison
has an incentive to add functionality to the proj- and a small offshore development team began
ect, while the provider has an incentive to reduce to design, implement, and test. The relationship
functionality and minimize the total effort. At the then shifted toward reliance as the offshore team
other extreme are projects where the provider bills expanded, the joint team developed confidence,
the client for time and materials, usually on an the market opportunities became clearer, and the
hourly basis. In such projects, a provider can do scope of the overall project increased. Finally, the
whatever the client requires; however, the client relationship evolved toward an alliance, where


Outsourcing Issues in Web Development

SPC and its provider worked together to identify in pharmaceutical industry). It is usually easier
future directions. As the first Web application to evaluate teams and individuals. Clients should
matured, the offshore team was reduced and SPC insist on talking to references in other organiza-
took over ongoing system maintenance. Thus, tions. Clients should also insist on interviewing
the relationship shifted back toward alignment. their primary contacts with a vendor, to assess
Several factors contributed to this successful both technical ability and how well each contact
evolution. First, SPC and its provider were already will interact with the client organization. Clients
accustomed to distributed teams. Second, SPCs should ask about the providers turnover rate, and
developers were confident that they would not what accommodations will be made when some-
be replaced by the provider, but that the provider one leaves the project. Although people change
was enabling SPC to address new opportunities. jobs for a variety of reasons, such changes can
Finally, the project was divided into time-limited have adverse effects. In a strong job market, it can
iterations, as described above, which encouraged be difficult to keep the best people, and providers
cooperation. also have an incentive to move their best people
In summary, organizations should deter- to newer, larger projects when they can.
mine: Location is also a key factor. Clients should
decide whether all, some, or none of the providers
a. How strategic is the relationship to our core staff should work onsite. It can be easier to inter-
business? act and develop trust with onsite staff, but they
b. How dependent will we be on the pro- also require space and possibly other support. If
vider? the provider has offices in the same geographic
c. How can we make this a win-win relation- area, it is easier to have staff work onsite for
ship? extended periods; otherwise, staff may need to
d. How conducive to outsourcing is our orga- travel frequently or have temporary housing.
nizational culture? Offsite, near shore, or offshore staff often have
lower hourly rates, but are more difficult to interact
providers with, particularly if problems arise. One common
approach is to have a few provider staff onsite,
After determining the appropriate relationship, either initially or throughout the project, to serve
the fourth step is to select a provider. The best as liaisons for staff in other locations.
provider usually depends on the skills, services, Size is another key factor. A small provider
and relationships needed, as well as a variety of may not be able to provide everything a client
other factors. needs while a large provider may have too many
The providers capabilities are clearly im- other priorities. Many clients prefer to deal with
portant. However, it can be difficult to assess a provider that is roughly the same size, as a way
the capabilities of a large group, particularly of balancing these concerns.
at a remote location. General reputation in an Cost is clearly an important factor, but as
industry can be helpful, although there can be noted above outsourcing is often overrated as
great variety within an organization; DeMarco a strategy to reduce costs. Too much emphasis
and Lister (1999) argue that productivity varies on a low hourly rate may result in poor quality
by a factor of ten both between and within orga- and/or support.
nizations. Certifications can demonstrate some It is relatively easy to assess factors such as
capabilities, or satisfy external regulations (e.g., location, size, cost, and some capabilities. Thus,
they can be useful to filter an initial list of potential


Outsourcing Issues in Web Development

providers. Cultural and individual factors are more TacTIcal IssuEs


difficult to evaluate, even for the most promising
potential providers. Some of these factors are Once a client decides to outsource Web develop-
described in more detail in the next section. ment activities to a provider, managers, team
SPC selected its provider for several reasons. leaders, and developers face other challenges.
The most important factors were the technical Battin, et al. (2001) describe five risk categories
and interpersonal abilities of the providers onsite for global software development projects, includ-
staff. In addition, the provider was located within ing communication, coordination, geography,
driving distance of SPCs development center and team identity and cohesiveness, and culture. Four
primary sales office. Finally, the provider could more steps will help managers, team leaders, and
manage an offshore team for SPC, which would development teams work effectively together and
speed development and reduce costs. respond to common problems. These steps are
In summary, organizations should deter- illustrated in Figure 5.
mine: First, determine responsibilities. Second,
determine methodologies and processes. Third,
a. What capabilities do we need, and how do manage and monitor the project. Fourth, develop
we evaluate them? trust and collaboration. Note that these steps are
b. Where do we want the providers staff to not entirely sequential; later steps can feed back
work? (onsite, offsite, offshore, etc) to affect earlier steps, just as in the traditional
c. What size of provider do we prefer? waterfall model for software development. For
d. How important is cost? example, as collaboration improves during the
e. Who will be our primary contacts? What course of the project, the processes may become
skills and traits should they have? less structured and more flexible. This in turn
f. What other characteristics are important, may enable the client and provider to shift or
and how do we evaluate them? share responsibilities. Furthermore, these steps
should be a mutual responsibility of the client
and provider in an outsourcing project. The client

Figure 5. Four tactical steps


Outsourcing Issues in Web Development

may have a better sense of what is needed, but aries or differences between the client and vendor.
the provider may have more experience making It is often beneficial to have one person or a small
such relationships work effectively. Each step is group, act as a liaison (and bottleneck) between
described in more detail below, including relevant the groups, to provide conceptual integrity and
background, application in the case study, and a prevent miscommunication. Strong liaisons are
checklist of best practices. often identified as key success factors for out-
sourced or offshored projects (e.g., Battin, et al.,
responsibilities 2001; Cusick & Prasad, 2006).
For SPC, the providers staff used their experi-
First, determine responsibilities in the project. ence with outsourcing and offshoring development
Just as a development team must clearly define to help SPC define responsibilities and interfaces
the interfaces between system components, to meet key objectives. The project consisted of a
clients and providers should work together to client team and a provider team, each with a team
define responsibilities, interfaces, and supporting leader. In addition, one person was designated as
processes between organizations, key individu- the technical lead for the project, and coordinated
als, and teams. activities between the two teams.
As in any technical design, joint teams should Since the engine was designed to access da-
seek to minimize coupling (relationships between tabases, the joint team decided to use a database
components), which reduces the amount of com- as the primary interface between the engine and
munication between groups. Joint teams should the Web applications, in order to reduce coupling
also seek to maximize cohesion (the degree to and minimize the impact on the application of
which a single component has a single purpose), changes in the software engine. By increasing the
which makes it easier for each group to focus on cohesion of the Web application, the provider team
particular objectives. As noted above, the structure could focus on it without detailed knowledge of
of the joint team should parallel the structure of the software engine. At the same time, the client
the Web system they are developing. team could focus on configuring the engine and
Carmel and Agarwal (2001) describe the developing supporting utilities, without detailed
importance of reducing intensive collaboration knowledge of the Web application.
across organizational boundaries. Battin, et al. In summary, clients and providers should
(2001) emphasize the importance of assigning work together to:
teams to subsystems for the entire lifecycle, so
that each subsystem is supported and enhanced a. Minimize coupling between groups and
by the same people who designed and constructed maximize cohesion within groups;
it. Mockus and Weiss (2001) define an analysis b. Concentrate on interfaces and boundaries,
process to identify appropriate components and not internal operations;
boundaries for distributed development. c. Focus on win-win scenarios with common
Joint teams should focus on the boundaries goals and ongoing negotiations.
between groups, and let each group allocate re-
sponsibilities within that group. These boundaries methodologies & processes
are likely to shift as the outsourcing relationship
evolves. Bhat, Gupta, and Murthy (2006) identify After determining responsibilities, the second step
characteristics of outsourced projects that affect is to determine the methodologies and processes
requirements analysis; all of them involve bound- for the project. This can be challenging, since it


Outsourcing Issues in Web Development

Figure 6. Software development methodologies

may require coordination between different devel- for highly repeatable projects. CMM is used by
opment cultures. Concentrate on the processes at many offshore development centers, particularly
the interfaces between organizations, rather than in India; offshore companies represent roughly
trying to define all of the processes for everyone 74% of CMM-4 organizations and roughly 84%
involved in the project. It is quite feasible, and at of CMM-5 organizations (Software Engineering
times even preferable, for the in-house developers Institute, 2003). Disciplined approaches have also
to be using one methodology, and the out-sourced been developed for individuals (e.g., Humphrey,
or offshore teams to be using different methodolo- 1994; Humphrey, 1996) and for teams (e.g.,
gies, since they may have different cultures and Humphrey, 1999).
requirements. Agile approaches treat software development
Currently, software development methodolo- as a specialized craft, performed by master craft-
gies can be divided into two broad categories, speople with supporting staff. Agile approaches
referred to as disciplined methods and agile share a particular set of values defined in the
methods (Boehm & Turner, 2003). Note that Agile Manifesto (Beck, Beedle, van Bennekum,
both of these names are misleading; some dis- Cockburn, et al., 2001):
ciplined methods adapt quickly to change, and
some agile methods are formal and prescriptive. Individuals and interactions over processes
Methodologies also address different levels of the and tools;
organization; some focus on day-to-day developer Working software over comprehensive
activities, while others focus on project and team documentation;
management or higher level organizational struc- Customer collaboration over contract nego-
tures, as shown in Figure 6. tiation;
Disciplined approaches treat software de- Responding to change over following a
velopment as a manufacturing process, which plan.
can be defined, measured, and optimized using
well-known techniques. These approaches are Typically, agile methodologies have multiple
often associated with quality initiatives such as iterations, each of a few weeks, which integrate
ISO 9000 (e.g., Patterson, 1994) or the Capabil- analysis, design, implementation, and testing
ity Maturity Model (CMM) (e.g., Paulk, et al., activities (e.g., Cockburn, 2002; Highsmith,
1994). CMM-style disciplined processes can 2002). These and other agile principles help a
be particularly effective for large projects, or project to react to dynamic conditions, such as


Outsourcing Issues in Web Development

poorly understood requirements and aggressive cesses to direct the overall project, but to allow
schedules. Although agile methodologies often or encourage different parts of the joint team to
assume that all team members are in one location, work in different ways.
they have also been adapted to include distributed As noted above, if the provider and client tasks
or outsourcing teams (Fowler, 2006; Jensen & are clearly separated, and the requirements are
Zilmer, 2003; Kussmaul, Jack, & Sponsler, 2004; stable, it may be feasible to develop a detailed
Paasivaara & Lassenius, 2004; Ramesh, Cao, Mo- specification and receive a single delivery at the
han, & Xu, 2006; Simons, 2002). In fact, Forrester end of the project. However, such assumptions
Research concludes that there are unique benefits are often not true in Web development. Instead,
to combining agile methodologies and offshore some of the requirements are vague or likely to
outsourcing (Moore & Barnett, 2004). change, and there is often overlap between client
There is growing recognition that both agile and provider responsibilities. In such projects, it
and disciplined approaches have advantages, and is essential to have multiple iterations with fre-
that carefully designed combinations can be very quent deliveries, so that everyone can see what is
effective (e.g., Anderson, 2004; Boehm & Turner, actually working, find and fix problems, provide
2003; Paulk, 2001). Furthermore, industries, timely feedback, build confidence and trust. This
markets, projects, and development teams can applies throughout the system life cycle, to items
vary dramatically. Thus, organizations should such as requirements, designs, GUI mockups,
understand the benefits and risks of multiple software, tests, and documentation. Within each
methodologies, and identify and adapt them to iteration changes should be kept to a minimum,
suit the situation, instead of trying to make the since there is more risk of miscommunication
situation fit a methodology. with outsourced or distributed teams. However,
Methodologies have been developed specifi- the project direction can change dramatically
cally for Web development, and for global Web between iterations. This is particularly useful in
development (e.g., Cusick & Prasad, 2006). Un- Web development projects, for several reasons.
fortunately, Web systems are often developed First, after each iteration, the updated system can
with informal or completely ad hoc methodolo- be deployed relatively easily, since users access
gies. For example, Taylor, McWilliam, Forsyth, it via a browser rather than installing software.
and Wade (2002) surveyed 25 organizations, and Second, Web applications are more likely to
found relatively little use of design techniques, change in response to evolving user expectations,
layout standards, documentation, or testing pro- competitors, and changing technology; thus it is
cedures. very valuable to be able to periodically redirect
Informal or ad hoc processes may be sufficient the project.
for small, collocated teams, although they would SPCs development group was relatively small,
likely benefit from articulating and reflecting on co-located, and used relatively informal processes.
their processes. Processes are more important for In contrast, the providers offshore team was in a
larger teams, especially distributed or joint teams much larger development center and had years of
that include client and provider staff. However, experience with disciplined CMMI-5 processes.
as the teams size and diversity increase, it be- The providers onsite staff had experience with
comes more difficult to define processes for the both agile and disciplined development processes.
entire team, since different parts of the team will The Web applications involved an evolving soft-
have different objectives, training, and cultures ware engine, an unfamiliar application domain,
(organizational, disciplinary, or regional). Thus, shifting external requirements, and a rapidly
it may be more effective to have high-level pro- changing market environment; an agile approach


Outsourcing Issues in Web Development

seemed most appropriate in such circumstances, Most importantly, client and provider man-
although a certain amount of discipline and agers should focus on creating and maintaining
formality was needed to coordinate the multiple win-win relationships in the joint team. If
locations and organizations. The high-level de- everyone in the joint team feels that they are
velopment process was inspired by SCRUM and working together toward a common goal, there
feature driven development (Highsmith, 2002; will be fewer problems, and those problems will
Palmer & Felsing, 2002; Schwaber & Beedle, be easier to resolve. Conversely, if the client and
2001). For each iteration, provider staff in the US provider teams feel that they are competing or in
worked with SPC product management to identify conflict, it will be nearly impossible to keep the
a list of high-level requirements. The provider staff project on track.
then worked with the offshore team to develop Defining requirements requires particular
more detailed requirements, which were then attention for several reasons. Requirements
reviewed with the SPC product manager. The definition is often one of the first joint activities
providers offshore team used CMMI processes, in an outsourcing project, before both parties
while the in-house processes gradually became have developed effective communications and
more formal as the team grew and the system a comfortable working relationship. Outsourc-
matured. The groups tended to work separately ing projects generally require more detailed and
early in each iteration, and interact more frequently precise requirements than do in-house projects.
later in the iteration as they integrated and tested Finally, incorrect or incomplete requirements can
individual components. lead to significant problems later in the project.
In summary, clients and providers should Roughly 20% of project defects originate in re-
work together to: quirements (Jones, 2000, p. 104), and the cost of
fixing an error increases exponentially with the
a. Identify and adapt processes to fit the project, time between when it was introduced and when
not the reverse; it was detected and corrected (Boehm, 1981, p.
b. Encourage diversity; different parts of the 40). Organizations with considerable in-house
project can be done in different ways; experience developing detailed requirements may
c. Manage the project pace, especially the rate have no difficulty delivering them to a provider.
of change; In many cases, however, it is much more effective
d. Schedule frequent deliveries throughout the to use the providers staff onsite to help develop a
project. set of requirements for the outsourcing develop-
ment team, particularly if the team is offshore.
project management Defining requirements more carefully, and having
both in-house and outsourcing team review them,
Regardless of the methodology and processes can help both organizations identify and resolve
used, organizations need continual visibility into problems sooner and more efficiently. Grnbacher
the status and progress of any outsourced activi- (2003) describes some of the challenges in adapt-
ties. Project management and monitoring can be ing traditional requirements engineering for Web
more challenging with outsourcing, since man- applications, including the multidisciplinary
aging by walking around is more difficult when teams, lack of developer experience, unavail-
people are at multiple locations and in different ability of stakeholders, fixed schedules, volatility
organizations. Conversely, extra effort to plan and of requirements, unpredictable operating condi-
coordinate with an experienced provider can lead tions, the impact of legacy systems, and several
to better visibility for everyone concerned. aspects of quality. Grnbacher recommends that
Web developers work to understand the system

0
Outsourcing Issues in Web Development

context, involve stakeholders, use iterative re- to avoid disruption. Three categories of tools
quirements definition, and focus on architecture. are particularly valuable for outsourced Web
Escalona and Koch (2004) review the roles and development. First, tools designed to help archive
uses of requirements analysis in ten Web applica- project information, including source code control
tion development methodologies, focusing on the systems, and ticket tracking systems for tasks,
types of requirements addressed, the techniques defects, and requested enhancements. Second,
utilized, and the degree of detail. They note that automation tools to assist in developing, building,
most of the methodologies focus more on elicit- testing, or deploying the system. Third, tools to
ing and specifying requirements, and less on facilitate communication (described in more detail
validating them. They also note that most of the below). In each category, there are a variety of
methodologies focus more on the steps in of a commercial and open source options.
process, and less on the set of techniques or the The Web application project also contributed to
results of the process. the quality of SPCs software engine. The in-house
Written documentation can be a particular QA team focused primarily on the GUI used to
challenge; teams or their managers must decide configure the engine. Developing the Web applica-
which documents to create, and for how long to tions enabled in-house and outsourced developers
maintain them. Brooks defines the documen- to identify defects and potential enhancements.
tary hypothesis: a small number of documents Because the offshore team was less familiar with
become the critical pivots around which every the software engine, they identified additional
projects management revolves (Brooks, 1995, issues. Similarly, the in-house development and
p. 107). However, this set of documents may vary QA groups identified issues and potential enhance-
from project to project, and even during the course ments in the outsourced Web application. Every
of a project. Frequently, some of these documents new product has defects, but the development
are tables or diagrams. For example, it might be teams were able to identify and resolve many of
a list of key use cases, an architecture diagram, a them before they were found by customers.
detailed data model, or a Gantt chart. Often, the In summary, clients and providers should
documents show the current status and expected work together to:
completion date of system components.
Other traditional project management activi- a. Focus on win-win interactions with common
ties are still important in outsourced projects. Too goals, and frequent interactions;
often, clients assume that outsourced activities do b. Define requirements carefully throughout
not require supervision, which leads to problems. the project, since change is inevitable;
It is still important to manage near-term priorities c. Identify and maintain the key project docu-
and stakeholder expectations, to set and maintain ments;
a sustainable pace for the joint team, and to moni- d. Monitor near-term priorities, sustainable
tor costs and other resources. pace, and resources;
Although people and interactions have the e. Use tools to provide leverage.
biggest impact on projects, appropriate tools can
certainly contribute to project success. Focusing Trust and collaboration
on a few key tools enables everyone to become
proficient. Choosing flexible tools allows them to Trust and collaboration are essential to any Web
evolve with the project and its processes, rather engineering effort, since there are typically nu-
than committing the joint team to a particular merous stakeholders: managers and executives,
approach. New tools should be added cautiously, analysts, system architects, developers, graphic


Outsourcing Issues in Web Development

designers, technical writers, and end users, to for several reasons. First, initial expectations
name a few. Too little can lead to misunderstand- and habits are likely to persist, and be difficult
ings, errors and omissions, but too much can to change. Second, the joint team is often smaller
use valuable time and energy. These issues are at the beginning of the project, making it easier
particularly important in outsourcing relation- to work through problems and develop appropri-
ships, where staff can be spread across multiple ate patterns. Third, key initial decisions about
locations, time zones, and cultures (e.g., Lacity & priorities, system architecture, responsibilities,
Willcocks, 2000). There is an extensive literature and processes may be difficult or impossible to
on virtual teams (e.g., Duarte & Snyder, 2006; change later in the project. Thus, it is particularly
Katzenbach & Smith, 1993; Martins, Gilson, important to have frequent deliverables and in-
& Maynard, 2004; Pinsonneault & Caya, 2005; teractions near the start of a project.
Powell, Piccoli, & Ives, 2004; Sundstrom and If the joint team includes members from differ-
Associates, 1998). ent organizations, national cultures, or language
It can be difficult to determine and maintain backgrounds, seemingly minor differences can
the appropriate levels of trust and collaboration. lead to problems. Language is a particular chal-
Alignment and alliance relationships gener- lenge, and a key factor in Indias success as an
ally require more trust than support or reliance outsourcing destination for the US. Thus, com-
relationships. Within a project, alignment of munication can be improved by developing a
stakeholder goals can cause individual relation- common project vocabulary of terms, documents,
ships to shift (Lacity & Willcocks, 2000). Trust diagrams, and metaphors. Carmel and Agarwal
generally increases as joint teams gain experi- (2001) describe the importance of reducing cul-
ence, but some initial trust is necessary for them tural distance by using liaisons and focusing on
to start working effectively. Lander, Purvis, language skills.
McCray, and Leigh (2004) studied trust build- The mechanics of communication are also
ing mechanisms in an outsourced IT project. important; joint teams need to match activities
They surveyed fourteen participants, including to appropriate communication methods, since
management, client team members, provider each has distinct benefits and risks. Synchronous
team members, and users. They found that the communication, such as face-to-face meetings,
most important trust building mechanisms were online chats, and teleconferences, is ideal for
communication, followed by identification with quick status meetings, brainstorming sessions, and
the joint team and predictability. However, several reviews. Instant messaging can be more effective
mechanisms were perceived quite differently by than phone conversations, particularly if people
different stakeholders. For example, client team have trouble understanding accents. Face to face
members ranked communication lower than the meetings or video conferences are most valuable
other groups, while users ranked predictability near the beginning of the project; as the joint team
lower than the other groups. Herbsleb and Mockus gains experience and trust, they become less
(2003) found that distributed teams had very little necessary. Asynchronous communication, such
informal, unstructured communication, and as a as email, mailing lists, and shared documents,
result the developers knew much less about the can provide a persistent record of discussions and
state of the project, what other developers were decisions, and doesnt require participants to be
doing, and who had expertise in particular areas. available at the same time.
They also suggest strategies to encourage such Finally, joint teams need to be sensitive to
communication and knowledge. cultural differences between small groups,
Developing trust and effective communica- larger organizations, and geographic regions.
tion practices early in the project is a priority, Some cultures respect seniority and expect top-


Outsourcing Issues in Web Development

down direction, while others value initiative and This is particularly true of Web development,
entrepreneurship, even if it challenges existing since for many organizations Web presence is an
structures. Asking questions is seen as a sign of important asset but not a core competence. Thus,
interest in some cultures but as a challenge to it makes sense to outsource Web development to
authority in other cultures. specialist organizations.
Since key SPC staff were in multiple locations The increased use of outsourcing has impli-
across the US, email, instant messaging, telecon- cations for students and teachers. Students are
ferences, and Web conferences were already part likely to need more than technical knowledge
of the SPC culture, which helped ease the transition and abilities to function effectively. They need
into an outsourcing relationship. Every 1-2 months to be able to form effective relationships with a
there was a high-level status meeting with the variety of other people, and apply their combined
leadership of SPC. During the project, there was expertise and abilities to understand incompletely
continual email and instant messaging between defined problems and develop solutions. Levy and
SPC and the providers US staff, and face-to-face Murnane (2005) refer to these skills as complex
meetings, teleconferences, or Web conferences communication and problem-solving. In particu-
several times a week. The providers onsite staff lar, students need experience working in virtual
were trained and experienced with using offshore teams and other structures typical of outsourced
resources and at working with customers. The relationships. Thus, educators should find ways to
providers development teams usually had short help students obtain such experiences. Klappholz
online chats once or twice a day (when both US and Bernstein (2001) describe Live-Through Case
and offshore staff were awake) to discuss current Histories, which force students to live through
status and problems. specific situations to learn specific lessons about
In summary, clients and providers should software engineering. Student experiences might
work together to: involve interactions with other departments on
campus as well as with other institutions. There
a. Ease into relationshipsstart small, and are multiple studies of projects involving student
develop useful bottlenecks; teams spanning diverse institutions (e.g., Jarv-
b. Develop a common vocabulary of terms, enpaa, Knoll, & Leidner, 1998; Kaiser, Tuller, &
and diagrams, and metaphors; McKowen, 2000).
c. Use appropriate communication channels, Researchers should continue to identify and
both synchronous and asynchronous; document best practices for outsourcing and other
d. Be sensitive to cultural differences. distributed teams, particularly in situations where
relationships are likely to evolve. As best prac-
tices are understood, they can be organized into
fuTurE TrENds methodologies and tools, which can be adapted
to different situations.
In the future, globalization and other competitive
factors will continue to push organizations to
operate more effectively and efficiently. For many coNclusIoN
organizations, this will include appropriate use
of outsourcing and offshoring. As organizations This chapter has reviewed the state of Web ap-
and individuals continue to gain experience with plication outsourcing, and provided a concise
distributed development models, they will find overview of important concepts, key questions,
ways to maximize benefits and minimize risks. and best practices, which are summarized in


Outsourcing Issues in Web Development

Figure 7. Summary of key questions and best practices

Objectives What are our main objectives for outsourcing?


Are our objectives reasonable and attainable?
How will we assess our objectives to know if they are achieved?
Skills & What work could we outsource?
Services
What are the benefits and risks of outsourcing this work?
What will we do if problems occur?
How will we specify and assess the work that needs to be done?
Relationships How strategic is the relationship to our core business?
How dependent will we be on the provider?
How can we make this a win-win relationship?
How conducive to outsourcing is our organizational culture?
Providers What capabilities do we need, and how do we evaluate them?
Where do we want the providers staff to work?
(onsite, offsite, offshore, etc.)
What size of provider do we prefer?
How important is cost?
Who will be our primary liaisons?
What skills and traits should they have?
What other characteristics are important,
and how do we evaluate them?
Responsibilities Minimize coupling between groups and maximize cohesion within groups.
Concentrate on interfaces and boundaries, not internal operations.
Focus on win-win scenarios with common goals and ongoing negotiations.
Methodologies Identify and adapt processes to fit the project, not the reverse.
& Processes
Encourage diversity; different parts of the project
can be done in different ways.
Manage the project pace, especially the rate of change.
Schedule frequent deliveries throughout the project.
Project Focus on win-win interactions with common goals,
Management and frequent interactions.
Define requirements carefully throughout the project,
since change is inevitable.
Identify and maintain the key project documents.
Monitor near-term priorities, sustainable pace, and resources.
Use tools to provide leverage.
Trust & Ease into relationshipsstart small, and develop useful bottlenecks.
Collaboration
Develop a common vocabulary of terms, and diagrams, and metaphors.
Use appropriate communication channels,
both synchronous and asynchronous.
Be sensitive to cultural differences.


Outsourcing Issues in Web Development

Figure 7. However, many of these issues and ap- Battin, R. D., Crocker, R., Kreidler, J., & Sub-
proaches also apply to other sorts of outsourced ramanian, K. (2001). Leveraging resources in
development work. global software development. IEEE Computer,
When outsourcing Web development, orga- 18(2), 70-77.
nizations should focus on three key ideas. First,
Beck, K., Beedle, M, van Bennekum, A, Cock-
structure projects in short iterations, so that there
burn, A. et al. (2001). Manifesto for agile software
are multiple opportunities to find and correct prob-
development. Retrieved on January 1, 2007, from
lems. This is particularly true early in outsourcing
http://www.agilemanifesto.org
relationships, when stakeholders are less sure of
their roles and relationships. Second, recognize Behravesh, N. & Klein, L. (2004). The com-
that the major benefits and risks are tied to people prehensive impact of offshore IT software and
and relationships rather than to tools. If individuals services outsourcing on the US economy and the
are committed to the project and team, they will IT industry. Report prepared by Global Insight
find ways to utilize available tools to solve their for the Information Technology Association of
problems. Outsourcing projects often depend on America, Arlington, VA.
a few key liaisons to facilitate communication
Bhat, J., Gupta, M., & Murthy, S. (2006). Over-
and prevent misunderstandings. Third, match the
coming requirements engineering challenges:
structure of the development team to the desired
Lessons from offshore outsourcing. IEEE Soft-
structure of the system.
ware, 23(5), 38-44.
Boehm, B. (1981). Software engineering eco-
rEfErENcEs nomics. Upper Saddle River, NJ: Prentice Hall
PTR.
American Electronics Association. (2004). Off-
Boehm, B., & Turner, R. (2003). Balancing agility
shore outsourcing in an increasingly competitive
and discipline: A guide for the perplexed. Boston:
and rapidly changing world: A high-tech perspec-
Addison Wesley Professional.
tive. Retrieved on January 1, 2007, from http://
www.aeanet.org/publications/IDMK_AeA_Off- Brooks, F. (1995). The mythical man-month.
shore_Outsourcing.asp Boston: Addison Wesley Professional.
Anderson, D. (2004). Agile management for Carmel, E., & Agarwal, R. (2001). Tactical ap-
software engineering: Applying the theory of proaches for alleviating distance in global software
constraints for business results. Upper Saddle development. IEEE Software, 18(2), 22-29.
River, NJ: Prentice Hall PTR.
Chen, J. Q., & Heath, R. D. (2005). Web application
Aspray, W., Mayadas, F., & Vardi, M. Y. (Eds.) development methodologies. In W. Suh (Ed.), Web
(2006). Globalization and offshoring of software: engineering: Principles and techniques. Hershey,
A report of the ACM Job Migration Task Force. PA: Idea Group Publishing.
New York: Association for Computing Machinery.
Christensen, C. M. (1997). The innovators di-
Retrieved on January 1, 2007, from http://www.
lemma: When new technologies cause great firms
acm.org/globalizationreport
to fail. Boston: Harvard Business School Press.
Axelrod, R. (1984). The evolution of cooperation.
CIO Insight (2003). Outsourcing: How well are
New York: Basic Books.
you managing your partners?. CIO Insight, 1(33),
75-85.


Outsourcing Issues in Web Development

Cockburn, A. (2003). Agile software development. neering, (pp 721-729). New York: ACM Press.
Boston: Addison Wesley Professional.
Grnbacher, P. (2003). Requirements engineering
Conway, M. E. (1968). How do committees invent? for Web applications. In G. Kappel, B. Prll, S.
Datamation, 14(4), 28-31. Reich, & W. Retschitzegger (Eds.), Web engineer-
ing: The discipline of systematic development
Cusick, J., & Prasad, A. (2006). A practical man-
of Web applications. Hoboken, NJ: John Wiley
agement and engineering approach to offshore
& Sons.
collaboration. IEEE Software, 23(5), 20-29.
Herbsleb, J.D., & Mockus, A. (2003). An empiri-
Davison, D. (2003). Top 10 risks of offshore out-
cal study of speed and communication in globally
sourcing. META Group Research.
distributed software development. IEEE Transac-
DeMarco, T., & Lister, T. (1999). Peopleware: tions on Software Engineering, 29(6), 1-14.
Productive projects and teams. New York: Dorset
Highsmith, J. (2002). Agile software development
House.
ecosystems. Boston: Addison Wesley Profes-
Dignan, L. (2003). Leaping, then looking. Base- sional.
line, 1(22), 17-29.
Humphrey, W. S. (1994). A discipline for software
Duarte, D. L., & Snyder, N. T. (2006). Mastering engineering. Boston: Addison Wesley Profes-
virtual teams. Hoboken, NJ: Jossey-Bass. sional.
Engardio, P., Bernstein, A., Kripalani, M., Humphrey, W. S. (1996). Introduction to the per-
Balfour, F., Grow, B., & Greene, J. (2003). The sonal software process. Boston: Addison Wesley
new global job shift. Business Week, February, Professional.
36-42,44,46.
Humphrey, W. S. (1999). Introduction to the
Escalona, M. J., & Koch, N. Requirements team software process. Boston: Addison Wesley
engineering for Web applicationsA compara- Professional.
tive study. Journal of Web Engineering, 2(3),
Jarvenpaa, S. L., Knoll, K., & Leidner, D. E.
193-212.
(1998). Is anybody out there? Antecedents of trust
Farrell, D. (2003). Offshoring: Is it a win-win in global virtual teams. Journal of Management
game? McKinsey Global Institute, Aug 2003. Information Systems, 14(4), 29-48.
Fowler, M. (2006). Using an agile software de- Jensen, B., & Zilmer, A. (2003). Cross-continent
velopment process with offshore development. development using Scrum and XP. Extreme pro-
Retrieved on January 1, 2007, from http://www. gramming and agile processes in software engi-
martinfowler.com/articles/agileOffshore.html neering. Paper presented at the 4th International
Conference. Berlin: Springer.
Ginige, A., & Murugesan, S. (2001). Web en-
gineering: An introduction. IEEE Multimedia, Johnson, J., Boucher, K. D., Conners, K., & Ro-
8(1), 14-18. binson, J. (2001). Collaborating on project success.
Software Magazine, February/March.
Ginige, A. (2002). Web engineering: Managing
the complexity of Web systems development. In Jones, T. C. (2000). Software assessments,
Proceedings of the 14th International Conference benchmarks, and best practices. Boston: Addison
on Software Engineering and Knowledge Engi- Wesley Professional.


Outsourcing Issues in Web Development

Kaiser, P. R., Tuller, W. L., & McKowen, D. (2000). A case study. Information and Management,
Student team projects by internet. Business Com- 41(4), 509-528.
munication Quarterly, 63(4), 75-82.
Levy, F., & Murnane, R. J. (2005). The new
Kappel, G., Prll, B., Reich, S., & Retschitzegger, division of labor: How computers are creating
W. (2003). An introduction to Web engineering. the next job market. Princeton, NJ: Princeton
In G. Kappel, B. Prll, S. Reich, & W. Retsch- University Press.
itzegger (Eds.), Web engineering: The discipline
Martins, L. L., Gilson, L. L., & Maynard, M. T.
of systematic development of Web applications.
(2004). Virtual teams: What do we know and
Hoboken, NJ: John Wiley & Sons.
where do we go from here? Journal of Manage-
Katzenbach, J. R., & Smith, D. K. (1993). The ment, 30(6), 805-835.
wisdom of teams: Creating the high performance
Mendes, E., Mosley, N., & Counsell, S. (2006).
organization. Boston: Harvard Business School
The need for Web engineering: An introduction.
Press.
In E. Mendes & N. Mosley (Eds.), Web engineer-
Kishore, R., Rao, H. R., Nam, K., Rajagopalan, ing. Berlin: Springer Verlag.
S., & Chaudhury, A. (2003). A relationship per-
Mockus, A., & Weiss, D.M. (2001). Globaliza-
spective on IT outsourcing. Communications of
tion by chunking: A quantitative approach. IEEE
the ACM, 46(12), 87-92.
Software, 18(2), 30-37.
Klappholz, D. & Bernstein, L. (2001) Getting
Moore, S., & Barnett, L. (2004). Offshore
software engineering into our guts. Crosstalk: The
outsourcing and agile development. Forrester
Journal of Defense Software Engineering, 14(7).
Research, Inc.
Retrieved on January 1, 2007, from http://www.
stsc.hill.af.mil/crosstalk/2001/07/bernstein.html Murugesan, S., & Ginige, A. (2005). Web engi-
neering: Introduction and perspectives. In W. Suh
Kunze, M. (1998) Let there be light: LAMP :
(Ed.), Web engineering: Principles and techniques
Freeware Web publishing system with database
(pp. 1-30). Hershey, PA: Idea Group Publishing.
support. ct, Dec 1998, 230.
Paasivaara, M., & Lassenius, C. (2004). Using
Kussmaul, C., Jack, R., & Sponsler, B. (2004).
interactive and incremental processes in global
Outsourcing and offshoring with agility: A case
software development. In Proceedings of the In-
study. Extreme programming and agile meth-
ternational Conference on Software Engineering
odsXP / Agile Universe, (pp 147-154). Berlin:
(ICSE) Third International Workshop on Global
Springer.
Software Development, (pp. 24-28).
Lacity, M.C., & Willcocks, L.P. (2000). Relation-
Palmer, S. R., Felsing, J. M. (2002). A practical
ships in IT outsourcing: A stakeholder perspective.
guide to feature-driven development. Upper
In R. W. Zmud (Ed.), Framing the domains of
Saddle River, NJ: Prentice Hall PTR.
IT management: Projecting the future through
the past. Cincinnati, OH: Pinnaflex Educational Patterson, J. (1994). ISO 9000: Worldwide quality
Resources, Inc. standard. Stamford, CT: Crisp Learning.
Lander, M. C., Purvis, R. L., McCray, G. E., & Paulk, M. C., Weber, C. V., Curtis, B., Chrissis, M.
Leigh, W. (2004). Trust-building mechanisms B., et al. (1994). The capability maturity model:
utilized in outsourced IS development projects: Guidelines for improving the doftware process.
Boston: Addison Wesley Professional.


Outsourcing Issues in Web Development

Paulk, M. C. (2001). Extreme programming Simons, M. (2002). Internationally agile. InformIT,


from a CMM perspective. IEEE Software, 18(6), March 15, 2002.
19-26.
Software Engineering Institute (2003). Process
Pinsonneault, A., & Caya, O. (2005). Virtual maturity profile: Software CMM -CBA IPI and
teams: What we know, what we dont know. Inter- SPA appraisal results.
national Journal of e-Collaboration, 1(3), 1-16.
Sundstrom, E. & Associates (1998). Support-
Powell, A., Piccoli, G., & Ives, B. (2004). Virtual ing work team effectiveness: Best management
teams: A review of current literature and direc- practices for fostering high performance. San
tions for future research. ACM SIGMIS Database, Francisco: Jossey-Bass.
35(1), 6-36.
Taylor, M. J., McWilliam, J., Forsyth, H., & Wade,
Ramesh, B., Cao, L., Mohan, K., & Xu, P. (2006). S. (2002). Methodologies and Website develop-
Can distributed software development be agile? ment: A survey of practice. Information and
Communications of the ACM, 49 (10), 41-46. Software Technology, 44, 381-391.
Schwaber, K., & Beedle, M. (2001). Agile software Vogel, D. A., & Connelly, J. E. (2005). Best prac-
development with SCRUM. Upper Saddle River, tices for dealing with offshore software develop-
NJ: Prentice Hall PTR. ment. Handbook of Business Strategy. Bradford,
UK: Emerald Group Publishing Limited.




Chapter XIV
Engineering Wireless Mobile
Applications
Qusay H. Mahmoud
University of Guelph, Canada

Zakaria Maamar
Zayed University, UAE

aBsTracT

Conventional desktop software applications are usually designed, built, and tested on a platform similar
to the one on which they will be deployed and run. Wireless mobile application development, on the other
hand, is more challenging because applications are developed on one platform (like UNIX or Windows)
and deployed on a totally different platform like a cellular phone. While wireless applications can be
much smaller than conventional desktop applications, developers should think in small terms of the
devices on which the applications will run and the environment in which they will operate instead of
the amount of code to be written. This chapter presents a systematic approach to engineering wireless
applications and offers practical guidelines for testing them. What is unique about this approach is that
it takes into account the special features of the new medium (mobile devices and wireless networks), the
operational environment, and the multiplicity of user backgrounds; all of which pose new challenges to
wireless application development.

INTroducTIoN hosts. Some of the fixed hosts, called mobile sup-


port stations (MSSs), are enhanced with wireless
The general mobile computing model in a wire- interfaces. An MSS can communicate with the
less environment consists of two distinct sets of MCs within its radio coverage area called wire-
entities (Figure 1): Mobile Clients (MCs) and fixed less cell. An MC can communicate with a fixed

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Engineering Wireless Mobile Applications

Figure 1. Mobile computing model

IS 1

F ix e d n e tw o rk

IS 2

IS 3

M o b ile
su p p o rt
M o b ile W ireless In fo rm atio n
statio n
c lie n t ce ll
IS serv er

host/server via an MSS over a wireless chan- with twelve buttons: the ten numerals, an
nel. The wireless channel is logically separated asterisk (*), and a pound sign (#).
into two sub-channels: an uplink channel and a Screen: The display might be as small as 96
downlink channel. The uplink channel is used pixels wide by 54 pixels high and 1 bit deep
by MCs to submit queries to the server via an (black and white). The amount of informa-
MSS, whereas the downlink channel is used by tion that can be squeezed into such a tight
MSSs to disseminate information or to forward screen is severely limited.
the responses from the server to a target client.
Each cell has an identifier (CID) for identification In addition, the wireless environment imposes
purposes. A CID is periodically broadcasted to all further constraints: (1) wireless networks are
the MCs residing in a corresponding cell. unreliable and expensive, and bandwidth is low;
A wireless mobile application is defined as a (2) they tend to experience more network errors
software application, a wireless service or a mobile than wired networks; and (3) the very mobility of
service that can be either pushed to users handheld wireless devices increases the risk that a connec-
wireless devices or downloaded and installed, tion will be lost or degraded. In order to design
over the air, on these devices.1 Such applications and build reliable wireless applications, designers
must work within the daunting constraints of the need to keep these constraints in mind and ask
devices themselves: themselves, what impact do wireless devices with
limited resources have on application design?
Memory: Wireless devices such as cellular The motivation for this chapter is provided
phones and two-way pagers have limited in part by the above characteristics that form
amounts of memory, obliging developers to some of the foundations for pervasive comput-
consider memory management most care- ing environments. Such characteristics pose
fully when designing application objects. several challenges in designing wireless mobile
Processing power: Wireless devices also applications for mobile computing. This chapter
have limited processing power (16-bit pro- provides a detailed treatment of the impact of these
cessors are typical). characteristics on engineering wireless mobile
Input: Input capabilities are limited. Most applications and presents a systematic approach
cell phones provide only a one-hand keypad for designing them. In addition, it offers practical

0
Engineering Wireless Mobile Applications

design techniques for wireless application design in WAP but not in MIDP and vice versa. These
and development. features are summarized as follows:

MIDP provides a low-level graphics APIs


WIrElEss applIcaTIoNs that enable the programmer to have control
over every pixel of the devices display. This
Wireless applications can be classified into two is important for entertainment applications
streams (Beaulieu, 2002; Burkhardt, Henn, Hep- (such as games) in a wireless environ-
per, Rintdorff, & Schack, 2002): ment.
MIDP is the way to go for games. The nature
1. Browser-based: Applications developed of MIDlets (they exist on the device until
using a markup language. This is similar to they are explicitly removed) allows users
the current desktop browser model where to run them even when the server becomes
the device is equipped with a browser. The unavailable (support for disconnected opera-
wireless application protocol or WAP (http:// tions).
www.openmobile alliance.org) follows this WML provides tags and possible presen-
approach (Open Mobile Alliance, 2005). tation attributes, but it doesnt define an
2. Native applications: Compiled applications interaction model. For example, WML
where the device has a runtime environment defines a SELECT tag for providing a list.
to execute applications. Highly interactive Some WAP-enabled devices interpret the
wireless applications are only possible with SELECT tag as a popup menu list while oth-
the latter model. Interactive applications, ers interpret it as a menu that can be used for
such as mobile computer games, are a good navigation. Therefore, there is no standard
example. Such applications can be developed interaction model defined for this element.
using the fast growing Java 2 Micro Edition If a developer uses it, the application may
(J2ME) platform (http://www.java. sun.com/ run well on some devices and poorly on
j2me), and they are known as MIDlets. others. MIDlets, on the other hand, provide
a clearly defined standard for interaction
Another stream is the hybrid application model using commands.
that aims at incorporating the best aspects of
both streams above. The browser is used to allow a micro Browser is Needed
the user to enter URLs to download native ap-
plications from remote servers, and the runtime MIDlets combine excellent online and off-line
environment is used to let these applications run capabilities that are useful for the wireless envi-
on the device. ronment, which suffers from low bandwidth and
network disconnection. Integrating WAP and
Wap might be dead, but What did MIDP opens up possibilities for new wireless
We learn? applications and over the air distribution models.
Therefore, WAP and MIDP shouldnt be viewed as
WAP and J2ME MIDP solve similar problems competing but rather as complementing technolo-
but each can learn a couple of things from the gies. In order to facilitate downloading wireless
other. There are special features that are available applications over the air, there is a need for some
kind of an environment on the handset that allows
the user to enter a URL for a MIDlet Suite, for


Engineering Wireless Mobile Applications

Figure 2. Combining WAP and J2ME

example. This environment could very well be a on the other hand, consist of some components
WAP browser as shown in Figure 2. running on a wireless device and others running
Similar to Java Applets that are integrated into on a network, and thus depend on access to ex-
HTML, MIDlets can be integrated into a WML or ternal resources. An example would be an e-mail
an XHTML page. Such a page can then be called application with a client residing on a wireless
from a WAP browser, and the embedded MIDlet phone interacting with a simple mail transfer
gets downloaded and installed on the device. In protocol (SMTP) server to send/receive e-mail
order to enable this, a WAP browser is needed messages. A major difference between local and
on the device. Another alternative approach for networked applications is in the way they are
over-the-air provisioning is the use of a short tested. Local applications are easier to test than
message service (SMS) which has been done network applications. For example, a calculator
by Siemens where the installation of MIDlets is application can run on a wireless device even
accomplished by sending a corresponding SMS. when it is not connected to any network, but an
If the SMS contains a URL to a Java application e-mail client will not work without a connection
descriptor (JAD) file specifying a MIDlet Suite, to e-mail servers.
then the recipient can install the application simply
by confirming the SMS. challenges

The constraints discussed earlier pose several


dEsIGN cHallENGEs aNd crucial challenges, which must be faced in order
possIBlE soluTIoNs for wireless applications to function correctly in
the target environment.
In this chapter, we are more concerned with na-
tive interactive applications that can be developed Transmission errors: Messages sent over
using the J2ME platform or a similar technol- wireless links are exposed to interference
ogy. J2ME-based wireless applications can be (and varying delays) that can alter the content
classified into local (stand-alone) and network received by the user, the target device, or
applications. Local applications perform all their the server. Applications must be prepared to
operations on a handheld wireless device and handle these problems. Transmission errors
need no access to external data sources through may occur at any point in a wireless transac-
a wireless network. Examples include calculators tion and at any point during the sending or
and single-player games. Network applications, receiving of a message. They can occur after


Engineering Wireless Mobile Applications

a request has been initiated, in the middle possible solutions


of the transaction, or after a reply has been
sent. While wireless network protocols may Here are some practical hints useful to consider
be able to detect and correct some errors, when developing mobile applications.
error-handling strategies that address all
kinds of transmission errors that are likely Understand the environment. Do some
to occur are still needed. research upfront. As with developing any
Message latency: Message latency, or the other software application, we must under-
time it takes to deliver a message, is primarily stand the needs of the potential users and
affected by the nature of each system that the requirements imposed by all networks
handles the message, and by the processing and systems the service will rely on.
time needed and delays that may occur at Choose an appropriate architecture. The
each node from origin to destination. Mes- architecture of the mobile application is very
sage latency should be taken into account important. No optimization techniques will
and users of wireless applications should make up for an ill-considered architecture.
be kept informed of processing delays. It The two most important design goals should
is especially important to remember that a be to minimize the amount of data transmit-
message may be delivered to a user long after ted over the wireless link, and to anticipate
the time it is sent. A long delay might be due errors and handle them intelligently.
to coverage problems or transmission errors, Partition the application. Think carefully
or the users device might be switched off when deciding which operations should be
or have a dead battery. Some systems keep performed on the server and which on the
trying, at different times, to transmit the handheld device. Downloadable wireless
message until it is delivered. Other systems applications allow locating much of an ap-
store the message then deliver it when the plications functionality of the device; it can
device is reconnected to the network. There- retrieve data from the server efficiently, then
fore, it is important to design applications perform calculations and display informa-
that avoid sending stale information, or at tion locally. This approach can dramatically
least to make sure that users are aware that reduce costly interaction over the wireless
it is not up-to-date. Imagine the possible link, but it is feasible only if the device can
consequences of sending a stock quote that is handle the processing that the application
three days old without warning the user! needs to perform.
Security: Any information transmitted over Use compact data representation. Data
wireless links is subject to interception. can be represented in many forms, some
Some of that information could be sensitive, more compact than others. Consider the
like credit card numbers and other personal available representations and select the one
information. The solution needed really de- that requires fewer bits to be transmitted.
pends on the level of sensitivity. To provide For example, numbers will usually be much
a complete end-to-end security solution, you more compact if transmitted in binary rather
must implement it on both ends, the client than string forms.
and the server, and assure yourself that Manage message latency. In some ap-
intermediary systems are secure as well. plications, it may be possible to do other
work while a message is being processed.
If the delay is appreciableand especially


Engineering Wireless Mobile Applications

if the information is likely to go stale it Also, testing an application without knowing its
is important to keep the user informed of requirements is not an easy task. In addition, is-
progress. Design the user interface of your sues related to the operating environment such as
applications to handle message latency ap- network bandwidth should be considered during
propriately. the design so that the performance of the applica-
Simplify the interface. Keep the applica- tion will be satisfactory.
tions interface simple enough that the user
seldom needs to refer to a user manual to
perform a task. To do so: reduce the amount WIrElEss sofTWarE
of information displayed on the device; make ENGINEErING
input sequences concise so the user can ac-
complish tasks with the minimum number While wireless application development might
of button clicks; and offer the user selection appear to have less need for the coordination that
lists. a process provides, aspects of development, test-
ing, evaluation, deployment, and maintenance of
a wireless application have to be integrated in the
ad-Hoc dEvElopmENT procEss design process throughout the full development
life cycle. We have put forward a systematic ap-
An ad-hoc development process for wireless ap- proach to developing wireless applications, which
plications comprises three steps: is compatible with the rational unified process
or RUP (Jacobsen, Booch, & Rumbaugh, 2000)
1. Write the application. Several integrated in the sense that it is iterative and responsibil-
development environments (IDEs) are avail- ity-driven. We have developed this systematic
able for developing Java-based wireless ap- approach based on our experience designing and
plications, for example, Suns J2ME Wireless building wireless applications. We recognized that
Toolkit, and Metrowerks CodeWarrior. the development of a wireless application is not a
2. Test the application in an emulation environ- one-shot task, and testing wireless applications
ment. Once the application compiles nicely, is more challenging than testing conventional
it can be tested in an emulator. desktop software applications; therefore, an ad-
3. Download the application to a physical hoc development process cannot be used.
device and test it. Once the applications
performance is satisfactory on one or more development activities
emulators, it can be downloaded to a real
device and tested there. If it is a network Our software engineering approach to wireless
application, it is tested on a live wireless application development consists of a set of
network to ensure that its performance is manageable activities that, if followed properly,
acceptable. leads to reliable and maintainable wireless ap-
plications. The activities of our approach are
It is clear that many important software engi- shown in Figure 3.
neering activities are missing from this ad-hoc de- Planning. This iterative process begins with
velopment process. For example, there is no formal a planning phase, which is an activity that iden-
requirements analysis phase, and so following an tifies the objectives of the wireless application
ad-hoc development process may lead to building and specifies the scope of the first increment.
a product different from the one customers want. In addition, the costs of the overall project are


Engineering Wireless Mobile Applications

Figure 3. Wireless application development activities

estimated, the risks are evaluated, and a tentative to be displayed on the screen is identified.
schedule is set. Content may include text fields, menus, lists,
Mobile user analysis. First, we must under- and graphics. Interaction analysis specifies
stand the audience of the application and the envi- how the user interacts with the application.
ronment in which it will operate. As an example, In order to find out how the user will interact
if the application is a wireless network-aware with the application, UML (Booch et al.,
application such as a multi-player game, the study 2000) use cases are developed.
will include the users of the application and how Usage analysis: The use case model devel-
they plan to use it. The output at the end of this oped during screen and interaction analysis
phase is a wireless application plan document that is mainly related to how users interact with
serves as the mobile end-user requirement. the application through the screen. The
Scenario analysis. This phase is similar to whole functionality of the application should
conventional software requirements analysis, and be described with use cases.
therefore concepts and principles of requirements Environment analysis: The environment
analysis can be applied here (Pressman, 2005). in which the application will operate should
In this phase, the mobile end user, an interaction be described in detail. This includes the
designer, and a developer sit together to come different wireless networks and back-end
up with a complete scenario analysis model that systems used. In addition, target mobile
takes into account the following types of scenario devices such as cellular phones and PDAs
analysis: on which the application will run should be
described in detail.
Screen and interaction analysis: The basic
unit of interaction between the user and The output of this phase is an information
the mobile device is the screen, which is analysis model document produced by the inter-
an object that encapsulates device-specific action designer and developer that outlines the
graphic user input. Therefore, the content functional requirements of the application and the


Engineering Wireless Mobile Applications

constraints of the environment. This document tion is likely to go stale it is important to


is reviewed by developers and other stakeholders keep the user informed of progress.
and modified as required.
Architectural design. This phase is concerned The outcome of the architectural design phase
with the overall architecture (or structure) of the is a design document that details the system
wireless application. Architecture is very im- architecture.
portant for any application, and no optimization
techniques will make up for an ill-considered Navigation and user interface design. Once
architecture. Design patterns can be used in this the application architecture has been established
phase to reuse experience in order to come up with and its components identified, the interaction
an extensible, high-performance architecture. designer prepares screen mockups and naviga-
Some of the most important design goals should tion paths that show how the user moves from
be to minimize the amount of data transmitted one screen to another to access services. Figure 4
over the wireless link, and to anticipate errors shows a simple example where the user will have to
and handle them intelligently. Other design and login before she is able to check her messages.
architecture issues include: The user interface is the face of the application
to users. A poorly designed user-interface will
Application partitioning. Designers need scare the user away, and a well-designed user
to think carefully when deciding which interface will give a good first impression and
operations should be performed on the improves the users perception of the services
server and which on the wireless device. offered by the application. The user interface
J2ME allows designers to locate much of must be well-structured and easy to use. Here
an applications functionality on the de- are some guidelines that can help in designing
vice; it can retrieve data from the server simple yet effective user interfaces for mobile
efficiently, then perform calculations and devices with tiny screens.
display information locally. This approach
can dramatically reduce costly interaction Keep the applications interface simple
over the wireless link, but it is feasible only enough that the user seldom needs to refer
if the device can handle the processing your to a user manual to perform a task.
application needs to perform. Reduce the amount of information displayed
Message latency. In some applications, it on the device.
may be possible to do other work while a Make input sequences concise so the user
message is being processed. If the delay is can accomplish tasks with the minimum
appreciableand especially if the informa- number of button clicks.

Figure 4. Screen mockups


Engineering Wireless Mobile Applications

Offer the user selection lists. Wireless applications, like all other types of
Do not depend on any specific screen size. software, must be tested to ensure functionality
and usability under all working conditions. Test-
The output of this phase is a user manual that ing is even more important in the wireless world
describes the screen mockups and the navigational because working conditions vary a lot more than
paths. they do for most software. For example, wireless
Implementation. In this phase development applications are developed on high-end desktop
tools are used to implement the wireless applica- machines but deployed on handheld wireless
tion. There are several tools available for building devices with very different characteristics.
wireless applications such as Suns J2ME Wireless One way to make testing simple is to design
Toolkit. We would recommend using a tool that applications with testing in mind. Organizing the
allows installing the application in various emula- system in a certain way can make it much easier to
tion environments. Conventional implementation test. Another implication is that the system must
strategies and techniques such as coding standards have enough functionality and enough output
and code reviews can be used in this phase. information to distinguish among the systems
Testing. Software testing is a systemic process different functional features. In our approach, and
to find differences between the expected behavior similar to many others, the systems functional
of the system specified in the software require- requirements (features that the system must pro-
ments document and its observed behavior. In vide) are described using the Unified Modeling
other words, it is an activity for finding errors in Language (Booch et al., 2000) to create a use-case
the software system and fixing them so users can model, then detailing the use cases in a consistent
be confident that they can depend on the software. written form. Documenting the various uses of
Errors in software are generally introduced by the system in this way simplifies the task of test-
people involved in software development (includ- ing the system by allowing the tester to generate
ing analysts, architects, designers, programmers, test scenarios from the use cases. The scenarios
and the testers themselves). Examples of errors represent all expected paths users will traverse
include mismatch between requirements and when they use the features that the system must
implementation. provide.
Many developers view the subject of software Deployment. Deploying and running applica-
testing as not fashionable, and, as a result, too tions in an emulation environment is a very good
few of them really understand the job software way to test the logic and flow of your applica-
testers do. Testing is an iterative process and tion generally, but you will not be certain it will
should start from the beginning of the project. satisfy users until you test it on a real physical
Software developers need to get used to the idea device connected to a wireless network. Your
of designing software with testing in mind. Some applications performance may be stunning in
of the new software development methodologies the emulator, which has all the processing power
such as eXtreme Programming (XP) (Beck, 1999) and memory of your desktop machine at its com-
stress incremental development and testing. XP mand, but will it perform well on the handheld
is ideally suited for some types of applications, device, with its limited memory and processing
depending on their size, scope, and nature. User power, low bandwidth, and other constraints? In
interface design, for example, benefits highly this phase, the application is deployed on a live
from rapid prototyping and testing usability with network and evaluated.
actual users. Customer evaluation. Once the application
has been deployed, it is ready to be downloaded


Engineering Wireless Mobile Applications

by users for evaluation and usage. In this phase, to the next step and test it on a real device, and
users start using the deployed application and in a live network.
report any problems they may experience to the Usability testing. In usability testing, the
service provider. focus is on the external interface and the relation-
Maintenance. Software maintenance encom- ships among the screens of the application. As
passes four activities: error correction, adaptation, an example, consider an e-mail application that
enhancement, and reengineering (Pressman, supports entry and validation of a user name and
2005). The application will evolve over time as er- password, enables the user to read, compose, and
rors are fixed and customers request new features. send messages, and allows maintenance of related
In this phase, users report errors to and request new settings, using the screens shown in Figure 3,
features from the service provider, and developers among others.
fix errors and enhance the application. In this example, start the test at the Login
window. Enter a user name and a password and
press the soft button labeled Login. Enter a valid
TEsTING IssuEs aNd TEsTING user name and password. The application should
acTIvITIEs display the main menu. Does it? The main menu
should display a SignOut button. Does it? Press
The wide variety of mobile devices such as the SignOut button. Does the application return
wireless phones and PDAs results in each device to the Login screen? Write yourself a note to raise
running a different implementation of the J2ME the question, Why does the user log in but
environment. Varying display sizes add to the sign out? Now enter an invalid user name or
complexity of the testing process. In addition, password. The program should display a mean-
some vendors provide proprietary API extensions. ingful message box with an OK button. Does it?
As an example, some J2ME vendors may support Press the OK button. Does the application return
only the HTTP protocol, which the MIDP 1.0 to the Login screen?
specification requires, while others support TCP You need to test the GUI navigation of the entire
sockets and UDP datagrams, which are optional. system, making notes about usability along the
Here are some guidelines for testing wireless way. If, for example, the user must traverse several
applications. screens to perform a function thats likely to be
Implementation validation. Ensuring that very popular, you may wish to consider moving
the application does what it is supposed to be that particular function up the screen layers. Some
is an iterative process that you must go through of the questions you should ask during usability
during the implementation phase of the project. testing include: is the navigation depth (the number
Part of the validation process can be done in an of screens the user must go through) appropriate
emulation environment such as the J2ME Wire- for each particular function, does the application
less Toolkit (Sun Microsystems, 2005), which minimize text entry (painful on a wireless phone)
provides several phone skills and standard input or should it provide more selection menus, can
mechanisms. The toolkits emulation environ- screens of all supported devices display the content
ment does not support all devices and platform without truncating it, and if you expect to deploy
extensions, but it allows for the application to look the application on foreign devices, does it support
appealing and to offer a user-friendly interface international character sets?
on a wide range of devices. Once the application Network performance testing. The goal of
has been tested on an emulator, you can move on this type of testing is to verify that the application
performs well in the hardest of conditions (for


Engineering Wireless Mobile Applications

example, when the battery is low or the phone is Keep the user informed: If your application
passing through a tunnel). Testing performance does not start up within a few seconds, it
in an emulated wireless network is very impor- should alert the user. For large applications,
tant. The drawback with testing in a live wireless it is a good idea to have a progress bar.
network is that so many factors affect the perfor- Readable text: Ensure that all kinds of
mance of the network itself that you cannot repeat content are readable on both grayscale and
the exact test scenarios. In an emulated network color devices. Also make sure the text does
environment, it is easy to record the result of a not contain any misspelled words.
test and repeat it later, after you have modified Repainting screens: Verify that screens are
the application, to verify that the performance of properly painted and that the application does
the application has improved. not cause unnecessary screen repaints.
Server-Side Testing. It is very likely that wire- Soft buttons: Verify that the functionality
less applications communicate with server-side of soft buttons is consistent throughout the
applications. If your application communicates application. Verify that the whole layout of
with servers you control, you have a free hand to screens and buttons is consistent.
test both ends of the application. If it communicates Screen navigation: Verify that the most
with servers beyond your control (such as quotes. commonly used screens are easily acces-
yahoo.com), you just need to find the prerequisites sible.
of use and make the best of them. You can test Portability: Verify that the application will
server-side applications that communicate over have the same friendly user interface on all
HTTP connections using testing frameworks such devices it is likely to be deployed on.
as HttpUnit (http://httpunit.sourceforge.net), and
measure a Web sites performance using httperf Network checklist. Some of the items that
(http://citeseer.nj.nec.com/mosberger98httperf. should be inspected when testing wireless ap-
html), a tool designed for measuring the perfor- plications are:
mance of Web servers.
Sending/Receiving data: For network-
Testing checklists aware applications, verify that the applica-
tion sends and receives data properly.
Here we provide checklists that are useful when Name resolution: Ensure that the applica-
testing your application, in both emulation and tion resolves IP addresses correctly, and
live environments. These checklists include tests sends and receives data properly.
that are usually performed by certification pro- Sensitive data: When transmitting sensitive
grams offered by Nokia and Motorola (Motorola data over the network, verify that the data
Application Certification Program). is being masked or encrypted.
Navigation checklist. Here are some items Error handling: Make sure that error mes-
to check for when testing the navigational paths sages concerning network error conditions
of wireless applications: (such as no network coverage) are displayed
properly, and that when an error message
Successful startup and exit: Verify that box is dismissed, the application regains
your application starts up properly and its control.
entry point is consistent. Also make sure Interruptions: Verify that, when the device
that the application exits properly. receives system alerts, SMS messages, and
Application name: Make sure your applica- so on while the application is running, mes-
tion displays a name in the title bar. sages are properly displayed. Also make sure


Engineering Wireless Mobile Applications

that when the message box is dismissed the Network applications consist of some
application continues to function properly. components running on a wireless device
and others running on a network, and thus
depend on access to external resources. An
provIsIoNING WIrElEss example would be an e-mail application,
applIcaTIoNs with a client residing on a wireless phone
that interacts with an SMTP server to send
Developers usually build, test, and evaluate an messages.
application on a platform similar to the one on
which it will be deployed and ran. Development of Although these two types of applications are
wireless applications is more challenging because different, they are deployed in the same way. The
they typically are developed on one platform big difference shows up later: Local applications
(such as Solaris or MS Windows) but deployed are easier to test than network applications. For
on a totally different one (such as a cell phone or example, a calculator application can run on a
PDA). One consequence is that, while emulators wireless phone even when it is not connected
enable developers to do some of their testing on the to any network, but an e-mail client wont work
development platform, ultimately they must test without a connection to the SMTP server that
and evaluate the application in the very different actually transmits the messages.
environment of a live wireless network.
Wireless applications fall into two broad over the air provisioning
categories:
For some time, wireless portals in Europe such
Local applications perform all their opera- as Midletcentral have allowed customers to
tions on a handheld wireless device and need download applications directly to their phones,
no access to external data sources through a over the air. Over-the-air provisioning of wire-
wireless network. Examples include calcula- less applications (OTA) is finally available in
tors and single-player games.

Figure 5. Over-the-air provisioning

0
Engineering Wireless Mobile Applications

North America. Nextel customers, for example, The framework is aimed to emulate the physical
can download network-aware wireless applica- mobility of portable computing devices through
tions without an update data cable. OTA is the the logical mobility of applications designed to
deployment of wireless Java applications (MIDlet run on them; an agent-based emulator is used to
suites) from the Internet to wireless devices over perform application-level emulation of its target
a wireless network. Users need not connect their device.
devices to the desktop with a data cable or visit More recently, Chen (2004) proposed a meth-
a service center to install or upgrade software. odology to help enterprises develop business
To take advantage of OTA, you must equip your strategies and architectures for mobile applica-
handheld device with a mechanism to discover tions. It is an attempt to formulate a life cycle
MIDlet suites available for download, using the approach to assisting enterprises in planning and
devices browser (such as a WAP browser) or a developing enterprise-wide mobile strategies and
resident application written specifically to iden- applications. This methodology is more concerned
tify downloadable MIDlet suites. The process of with business strategies rather than technical
downloading MIDlets over the air is illustrated details, and thus it is targeted at managers rather
in Figure 5. than developers. And finally, Nikkanen (2004)
presented the development work of a browser-
agnostic mobile e-mail application. It reports
rElaTEd WorK on experiences porting a legacy WAP product
to a new XHTML-based browser application
The explosive growth of the wireless mobile appli- and offers guidelines for developing mobile ap-
cation market raises new engineering challenges plications.
(Morisio & Oivo, 2003); what is the impact of the Our work is different in the sense that we
wireless Internet on engineering wireless mobile provide a detailed treatment of the impact of
applications for the new wireless infrastructure the characteristics of mobile devices and the
and wireless handheld devices? Due to the lim- wireless environment on engineering wireless
ited experience with wireless technologies and mobile applications; we discuss the challenges
developing wireless applications, little work has and offer practical solutions for developing mobile
been in the area of wireless software engineering. applications. We present a systematic approach
We found a special issue in the IEEE Transac- for designing wireless mobile application. Our
tions on Software Engineering on Software approach is iterative just like in Ocampo et al.
Engineering for the Wireless Internet (Morisio (2003), but differs in the sense that our process
& Oivo, 2003). However, out of the six papers has more focus on requirements elicitation and
accepted in the special issue only two papers more importantly scenario analysis. We do not
deal with the development process. Ocampo, provide a testing framework, but our testing
Boggio, Munch, and Palladino (2003) provided strategy and checklist is more practical than using
an initial reference process for developing wire- just an emulated environment. Finally, unlike the
less Internet applications, which does not differ work reported in Chen (2004), our methodology
significantly from traditional iterative process is targeted at developers and researchers rather
models but includes domain-specific guidance on than managers. And, unlike the work in Nikkanen
the level of engineering processes. Satoh (2003) (2004), our guidelines and systematic approach is
developed a framework for building and testing not limited to WAP-based applications, but can be
networked applications for mobile computing. applied to engineering any wireless application.


Engineering Wireless Mobile Applications

coNclusIoN aNd fuTurE WorK acKNoWlEdGmENT

As the wireless Internet becomes a reality and The authors would like to thank the anonymous
software developers become comfortable with reviewers for the many helpful suggestions for
the methods and processes required to build improving this chapter. The first author was sup-
software, we recognize that the methods devel- ported in part by the Natural Sciences and Engi-
oped for conventional systems are not optimal neering Research Council of Canada (NSERC)
for wireless applications. In particular, wireless Discovery Grant No. 045635.
application development doesnt always fit into
the development model originated to cope with
conventional large software systems. Most wire- rEfErENcEs
less application systems will be smaller than
any medium-size project; however, a software Beaulieu, M. (2002). Wireless Internet applica-
development method can be just as critical to a tions and architecture. Boston: Addison-Wes-
small software project success as it is to that of ley.
a large one. In this chapter, we have presented
Beck, K. (1999). Extreme programming explained:
and discussed a systematic approach to wireless
Embrace change. Addison-Wesley.
application development, and presented practi-
cal guidelines for testing wireless applications. Booch, G., Rumbaugh, J., & Jacobsen, I. (2000).
The proposed approach takes into account the The Unified Modeling Language user guide.
special features of the wireless environment. We Boston: Addison-Wesley.
have successfully used the approach presented
to develop various wireless applications ranging Burkhardt, J, Henn, H., Hepper, S., Rintdorff,
from a stock portfolio management application to K., & Schack, T. (2002). Pervasive computing
a mobile agent platform for mobile devices (Mah- technology and architecture of mobile Internet
moud, 2002). Our future work includes evaluating applications. London: Addison-Wesley.
the effectiveness of the proposed methodology, Chen, M. (2004). A methodology for building
documenting wireless software design patterns, mobile computing applications. International
and building tools to automate the task of testing Journal of Electronic Business, 2(3), 229-243.
wireless applications.
There are several interesting research prob- Jacobsen, I., Booch, G., & Rumbaugh, J. (2000).
lems in the emerging area of wireless mobile The unified software development process. Bos-
applications and services. Some of these research ton: Addison-Wesley.
issues include: novel mobile services in the area Httperf. Retrieved January 13, 2005, from http://
of m-commerce and health care; security and www.hpl.hp.com/research/linux/httperf
privacy issues; mobile agents for mobile services;
discovery and interaction of mobile services; HttpUnit. Retrieved January 13, 2005, from
enabling roaming of applications and profiles http://httpunit.sourceforge.net
between different wireless standards; and loca- Mahmoud, Q. (2002). MobiAgent: An agent-
tion-aware and context-aware mobile services. We based approach to the wireless Internet. Journal
are currently addressing some of these research of Internet Computing, special issue on Wireless
problems, and research results will be presented Internet, 3(2), 157-162.
in future articles.


Engineering Wireless Mobile Applications

Morisio, M., & Oivo, M. (2003). Software engi- Pressman, R. S. (2005). Software engineering:
neering for the wireless Internet [Guest Editors A practitioners approach (6th ed.). New York:
Introduction]. IEEE Transactions on Software McGraw Hill.
Engineering, 29(12), 1057-1058.
Satoh, I. (2003). A testing framework for mobile
Motorola Application Certification Program. computing software. IEEE Transactions on Soft-
(n.d.). Retrieved February 10, 2005, from http:// ware Engineering, 29(12), 1112-1121.
qpqa.com/motorola/iden
Sun Microsystems J2ME. (2005). Retrieved from
Nikkanen, M. (2004). User-centered development http://java.sun.com/j2me
of a browser-agnostic mobile e-mail application.
Sun Microsystems J2ME Wireless Toolkit. (2005).
In Proceedings of the Third Nordic Conference on
Retrieved from http://java.sun.com/products/
Human-Computer Interaction, Tampere, Finland
j2mewtoolkit
(pp. 53-56). New York: ACM Press.
Ocampo, A., Boggio, D., Munch, J., & Palladino,
G. (2003). Towards a reference process for develop-
ENdNoTE
ing wireless Internet services. IEEE Transactions
on Software Engineering, 29(12), 1122-1134. 1
We use the terms wireless application and
Open Mobile Alliance. (2005). Retrieved from mobile application interchangeably through-
March 15, 2005, http://www.openmobilealliance. out this article.
org

This work was previously published in International Journal of Information Technology and Web Engineering, Vol. 1, Issue
1, edited by G. Alkhatib and D. Rine, pp. 59-75, copyright 2006 by IGI Publishing, formerly known as Idea Group Publishing
(an imprint of IGI Global).




Chapter XV
Project Management and Web
Software Engineering
Daniel M. Brandon
Christian Brothers University, USA

aBsTracT

The process involved with the development of Web applications is significantly different from the process
of developing applications on older traditional platforms. This is a difference not only in technologies
but in the overall business process and associated methodology, in other words the project management.
Web applications generally manage content and not just data, and many Web applications are document
centric versus data centric. In addition, there are many more people involved in the definition, design,
development, testing, usage, and approval for Web applications. The pace of business life is much
quicker today than in the past, thus Web applications need to be deployed much quicker than earlier IT
applications and they need to be engineered for more flexibility and adaptability in terms of changing
requirements, changing content, changing presentation, and perhaps mass user customization. In addi-
tion, security concerns are more prevalent in Web applications since the end users are outside as well as
inside the corporate virtual perimeter. Web applications can serve a global audience and thus there are
more diverse stakeholders for these applications. Issues such as language, culture, time zones, weights
and measures, currency, and international standards need to be considered. This chapter examines the
project management issues involved with Web applications.

INTroducTIoN globally diverse stakeholders operating in a se-


curity challenged world whose expectations are
In this chapter we will discuss the key issues for better/cheaper/faster software. We start out
involved with project management for developing by discussing the project management discipline,
Web applications. These issues revolve around the and then the relationship between this discipline
fact that Web applications have many and possibly and the software engineering discipline. Then we

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Project Management and Web Software Engineering

consider how both of these disciplines combined Project management: Covering the key
can successfully address the opportunities, is- elements that differentiate projects from
sues, and problems of modern Web application general management;
development including the internationalization Organizations and people: Detailing the
and security aspects. main qualitative skills of a Project Man-
ager;
Techniques and procedures: Details the
THE proJEcT maNaGEmENT quantitative methods;
dIscIplINE General management: Covers industry
specific concepts.
A number of professional organizations have
developed around the world to foster the project The APM Body of Knowledge also provides
management discipline (Morris, 2001). These a focal point for many of the programs run by the
organizations have recognized that there is a APM including their Certification Program which
distinct skill set necessary for successful project assesses a persons competence in managing a
managers, and the organizations are devoted to as- project; the Course Accreditation Program which
sisting their members develop, improve, and keep reviews training courses run by both commercial
current with these skills [Boyatzis, 1982; Caupin, private training companies and higher education
1998]. The Project Management Institute (PMI) institutes, and the Project Management Capability
is the largest of these organizations in the world, Test which assesses a persons knowledge in the
but other major international organizations are APM Body of Knowledge. The British Standards
the Association for Project Management (APM), Institute publishes the Guide to Project Manage-
British Standard Institute (BSI), Engineering ment (BS6079). This Standard has been adopted
Advancement Association (ENAA) of Japan, by both the British government and industry and
Australian Institute of Project Management, and establishes commonly accepted terminology.
the International Project Management Associa- The stated objectives of BS 6079 are to provide
tion (IPMA). guidance to:
Each of these organizations has developed a
set of project management standards as has the General managers: To enable them to
ISO (International Organization for Standards) provide proper support for project managers
with its ISO 10006 Guide to Quality in Project and their teams;
Management. For comparative purposes the size Project managers: To improve their ability
in words of these various project management to manage their projects;
standards are (Crawford, 2004): Project support staff: To help them un-
derstand project management issues and
PMBOK 56,000 solutions thereto;
APM BoK 13,000 Educators and trainers: To help them
IPMA ICB 10,000 understand the project management envi-
ENAA P2M 36,000 ronment and the context in which project
management methods are deployed.
The APM has developed a Body of Knowledge
(BoK) of Project Management Competencies. The International Project Management Asso-
The APM Body of Knowledge identifies 40 key ciation is a federation of national project manage-
competencies grouped as: ment associations of several European countries


Project Management and Web Software Engineering

and it publishes the IPMA competency baseline approach which is dedicated to the management
(ICB) in English, French, and German; the first of a single project. The four areas of certification
publication being in 1998. While the content is in the Japanese program are Objectives, Strategy,
similar to the APM BoK, the organization is dif- Value Management, and Finance.
ferent and is termed the Sunflower. The IPMA The largest project management organiza-
encourages each national organization to form tion is the Project Management Institute (PMI)
its own competency baselines called National with over 250,000 members in over 125 coun-
Competency Baselines (NCB). There are now tries. The PMI Web site (www.pmi.org) records
about 30 countries with such NCBs throughout over 10 million visitors per year. Founded in
Europe and also Egypt, India, and China. 1969, PMI establishes project management
The Engineering Advancement Associa- standards, provides seminars and other vehicles
tion (ENAA) of Japan has also issued a project for professional growth, promotes educational
management body of knowledge called P2M (A programs, funds and encourages research, and
Guidebook of Project and Program Management provides professional certification that many of
for Enterprise Innovation). Their PM standard is the worlds organizations desire for their project
different from that of the PMI or APM, and is personnel. PMI produces a number of publica-
based on how project management can be used tions including the Project Management Journal,
to increase business value for an organization and Project Management Quarterly, PM Network, and
promote innovation. This P2M was a multi-year PMI Today. In this chapter we will closely follow
joint effort between the Japanese Project Manage- the PMI standards, however other and broader
ment Forum (JPMF) and the Japanese Ministry standards and concepts found in the other major
of Economy, Trade and Industry (METI); it was project management organizations will also be
supported by both Japanese industry and govern- included.
ment with a very significant contribution from PMI established its first body of knowledge in
academic research. The Japanese P2M is based 1976 which finally became A Guide to the Project
on a tower structure which according to the Management Body of Knowledge (PMBOK)
Japanese Standard Committee is focused on the around 1987. It was revised several times with
alignment of project management to the business major releases in 1996, 2000, and 2005; there are
units instead of the European and North American about 1.5 million copies of all PMBOK versions

Figure 1. PMBOK components (Brandon, 2006)

pmBoK

General application
management specific


Project Management and Web Software Engineering

Figure 2. Process representation (Brandon, 2006)


Inputs outputs
process

Tools methods

Figure 3. Process group interaction

Initiation planning

Execution control closing

in circulation. The PMBOK embodies generally managed, what to do when; PMIs 5 Process
accepted best of practice procedures, methods, Groups are:
and general tools which are derived by a structured
consensus of its vast membership. The PMBOK Initiation
is approved as an American National Standard Planning
(ANS) by the American National Standards In- Execution
stitute (ANSI). There is some overlap of project Control
management best practices with practices of Closing
general management and also practices specific
to various fields as illustrated in Figure 1. They are further sub-divided into 9 Knowl-
The content of the PMBOK is organized into edge Areas. The Knowledge Areas are:
processes, and 37 Key Processes are defined.
Each process is defined as procedures which Integration management [3 processes]
receive various inputs and produce various out- Scope management [5 processes]
puts using various methods and perhaps with the Time management [5 processes]
assistance of some general tools. Methods may Cost management [4 processes]
be management techniques, mathematical tech- Quality management [3 processes]
niques, statistical techniques, etc. The tools are Human resource management [3 process-
typically some type of software. This is shown es]
pictorially in Figure 2. Communication management [4 process-
These processes are grouped into 5 Process es]
Groups which relate to how project work is Risk management [4 processes]
Procurement management [6 processes]


Project Management and Web Software Engineering

Figure 4. PMBOK process groups versus. knowledge areas (Brandon, 2006)


PMI Process Groups and Knowledge Areas
Initiation Planning Executing Controlling Closing
Project Plan Project Plan Overall Change
Integration Development Execution Control
Scope Scope Change Scope
Scope Initiation Scope Planning Verification Control Verification
Scope Definition
Time Activity Definition Schedule Control
Activity Sequencing
Activity Duration
Estimation
Schedule
Development
Cost Resource Planning Cost Control
Cost Estimating
Cost Budgeting
Quality Quality Planning Quality Assurance Quality Control
Organizational
Human Resources Planning Staff Acquisition Team Development
Communications Information Performance Administrative
Communications Planning Distribution Reporting Closure
Risk Risk Response
Risk Identification Risk Identification Control
Risk Quantification
Risk Response
Development
Contract
Procurement Procurement Planning Solicitation Administration Contract Closeout
Solicitation Planning Source Selection
Contract
Administration

Figure 3 shows the general sequencing of groups, and knowledge areas is shown in Figure
the process groups in the timeline for a project. 4.
However, in practice there may be considerable In practice, large projects are typically broken
overlap; that is all initiation processes will not down into phases, and the organization of a project
complete before all the planning processes begin. into phases is discipline specific and typically
The output from one process in a process group follows some type of development methodology.
is typically the input to another process either in Each project phase has a beginning and an end,
the same process group or the next one in this and the five process groups are a part of each.
sequence. Deliverables from one phase are typically inputs
The overall organization of the PMBOK and to the next phase; and there may be phase overlap
the relationship between the processes, process


Project Management and Web Software Engineering

Figure 5. Project phasing (Brandon, 2006)


Effort

Intermediate
Initial phases final
phase phase

Time -->

Figure 6. Process groups in each phase


phase N

phase Initiation planning


N-1

Execution control closing

phase N + 1

Initiation planning
phase
N+2

Execution control closing

in some methodologies. Figure 5 shows how effort As designed internal documenta-


is generally distributed across project phases. tion
For IT projects a typical phasing might be: Test Plans
Deployment and integration specifica-
Feasibility, Proposal, Business Plan tions
Requirements Specification Implementation
Design Coding
Overall design Unit Testing
External (user interaction) specifica- Module and Feature Testing
tions User documentation
Detail design As built internal documentation


Project Management and Web Software Engineering

Installation Identify risks, quantify them, develop


Conversion risk responses
Training Other plans: change control plan, com-
Network and site preparation munications plan, management plan
Hardware install and integration Overall project plan
Software install and integration Project Plan approval
Integration and acceptance testing Kickoff meeting
Parallel operation Key execution Activities
Operation and Maintenance (O & M) Execute the project plan
Complete work packets (activities)
As stated earlier, for phased projects, the five Information distribution
process groups occur in each project phase. This Quality assurance
is illustrated in Figure 6. For some industries Team development
and in some methodologies there may be some Scope verification
overlap in project phases. In IT there may also Progress meetings
be some project phase overlap, and this depends Key Control Activities
upon the type of methodology adopted and upon Overall change control
the type on contracting arrangement; both of Performance reporting
these aspects are discussed in more detail later Scope control
in this chapter. Quality control
PMIs summarization of key activities by Risk response control
process group are: Schedule control
Cost control
Key Initiation Activities Manage by exception to the project
Project feasibility (high level ROI ap- plan
proximation) Key Closing Activities
High level planning Procurement audits & contract(s) close
Project charter document (memo, let- out
ter) Product verification
Key Planning Activities (order important) Formal acceptance
Develop scope statement Lessons learned documentation
Assemble project team Update all project records
Develop work breakdown structure Archive records
(WBS) Release team
Finalize project team
Do network type diagram (showing PMI has established a certification program
activity dependencies) (since 1984) for the project management discipline,
Estimate cost and time, find the criti- and there are several levels of certification. The
cal path highest certification level is called a PMP (Proj-
Determine overall schedule and bud- ect Management Professional). The requirements
get for an individual to be awarded that certification
Procurement plan level include:
Quality plan

0
Project Management and Web Software Engineering

4500 Hours of documented project manage- The PMP certification (or equivalent certifica-
ment experience over 3- 6 years; tion from another international organization)
BS/BA Degree and at least 35 contact hours is now being required (or highly recommended)
in PM training; by many large corporations for one to become a
Passing a very comprehensive 4 hour exam project manager in their organization. Addition-
on the PMBOK; ally many companies expect vendors to provide
Adherence to the PMI professional code of certified project managers for contracted work
ethics. (Brandon, 2006).

There are over 200,000 certified PMPs in the


world. Those who have been granted PMP sofTWarE ENGINEErING aNd
certification must demonstrate an ongoing proJEcT maNaGEmENT
professional commitment to the field of project
management by satisfying PMIs Continuing The term software engineering was coined by
Certification Requirements Program to retain Bauer who was a principal organizer of the 1968
their PMP status. In 1999, PMI became the first NATO conference on that subject (Bauer, 1972).
organization in the world to have its Certifica- His definition of software engineering was the
tion Program attain International Organization establishment and use of sound engineering prin-
for Standardization (ISO) 9001 recognition. The ciples in order to economically obtain software
IPMA also has certification processes with four that is reliable and works on real machines. The
levels of certification: practitioner, professional, IEEE definition is the application of a systematic,
manager, and director. ENAAs P2M has three disciplined, quantifiable approach to the develop-
levels of certification: architect, manager, special- ment, operation, and maintenance of software
ist (Crawford, 2004). (IEEE Std 610-1990). The modern Webopaedia
definition is:

Figure 7. Software engineering versus project management (Brandon, 2006)

software
Engineering

requirements
methodology
architecture
deployment
reuse

scope
change management
quality
risk

schedule
cost
procurement
communications & Hr

project
management


Project Management and Web Software Engineering

Software engineering is the computer sci- so in IT; there are a number of standards, frame-
ence discipline concerned with developing large works, architectures, tools, and methodologies
computer applications. Software engineering to choose from and they all are rapidly changing
covers not only the technical aspects of building and evolving.
software systems, but also management issues,
such as directing programming teams, schedul-
ing, and budgeting. TradITIoNal sofTWarE
dEvElopmENT mETHodoloGy
The disciplines of project management and
software engineering overlap considerably as According to Websters dictionary, methodology
illustrated in Figure 7. The Institute of Electri- is a system of methods. This authors definition
cal and Electronics Engineers (IEEE) software for methodology is organized know how. The
standard 1490-2003 provides for the adoption of most common and established methodology used
PMI Standard (PMBOK). in building and/or integrating IT systems has
In the IT industry there is no one methodol- been casually called the waterfall method and
ogy, architecture, or set of standards. In other formally referred to as the software develop-
industries, there are typically established codes, ment lifecycle methodology (SDLC). This no-
frameworks, patterns, methods, and tools that are tion and term was first applied to IT systems by
almost always used when one builds something in Royce (Royce, 1970). The steps in this classical
one of those industries. In home building there are methodology are:
county building codes, frameworks for house pat-
terns (ranch, colonial, Tudor, contemporary, etc.), Definition
subdivision guidelines and limitations, standard Specification (Requirements)
methods, and tools of the trades involved. Not Design

Figure 8. SDLC waterfall (Brandon, 2006)

definition

specification

design

construction

Testing

Installation

maintenance


Project Management and Web Software Engineering

Construction (Programming and unit test- nation of arbitrary constraints, negotiation and
ing) compromise on scope (features) versus time and
Testing (system and integration) cost, statement of assumptions, rough time and
Installation cost estimates, a rough project plan, and a signed
Operation and Maintenance go-ahead (i.e., the project charter).
The specification step involves a complete
This is illustrated in Figure 8. In theory these statement of scope (requirements), use case
steps are not supposed to overlap or to iterate. scenarios, preparation of preliminary user
Today there are many software development manual (external design specifications), detailed
methodologies, and some of these newer meth- project plan (including work breakdown structure
odologies are variations of or alternatives to the [WBS]), specification of needed resources, refined
basic waterfall approach. estimate of time and cost, refined cost-benefit
For IT projects there is a correlation between analysis, and signed approval of requirements
the PMI process groups (and their outputs) and and user manual by stakeholders. However, in
the chosen software engineering methodology practice the users manual is rarely written at this
(and its outputs); Figure 9 is an example of a stage. The reason the users manual (or at least a
correlation between PMI process groups and the draft) should be done at this step is so that some
classical software development life cycle (SDLC) other dependent activities can began such as: test
of a single phase project. planning and test scripts, making training plans
One hears many comments about the classical and materials, and other dependent tasks like
waterfall software development lifecycle: internal or external marketing.
The design step involves resolution of critical
The software development lifecycle is the cor- technical issues, selection of architecture and
nerstone of development! platform(s), adoption of standards, assignment
The lifecycle is out of date! of staff, completion of external design (user in-
Get good people and the lifecycle will manage terface design), design of critical data structures
itself! & database, internal design of algorithms and
There must be better and faster ways to build processes, Requirements Traceability Matrix,
IT systems! preliminary test scripts, final time and cost esti-
mates, and a final cost-benefit analysis. Often this
The SDLC goals are to: step is divided into two steps; analysis (or overall
design) and design (or detailed design).
Do it right the first time! The construction step involves the implemen-
Meet customers stated requirements! tation of the design (i.e., via coding), unit testing,
Have a timely completion! systems integration, draft internal documentation,
Complete within cost constraints! and the completion of test scripts.
Build system with the necessary quality! The testing step involves full scale integration
and system testing, completion of user documenta-
The definition step involves making a clear tion, completion of training material, adoption of
statement of goals, identifying why and how the formal change control procedures, completion of
proposed system will be better/cheaper/faster the internal documentation, completion of instal-
than the system it is replacing, and usually an lation manual and roll-out or phase-in plan.
overall/rough cost-benefit analysis. This phase is The installation step involves product roll-out,
typified by frequent customer interaction, elimi- end user training, producing lessons learned


Project Management and Web Software Engineering

Figure 9. PMBOK and SDLC (Brandon, 2006)

PMBOK SDLC
Process Group Outputs Stage Outputs

Initiation Business Plan


Project Charter
Plan Overall Plan
Management Plan
Scope Statement Definition Project Plan:
Communications Plan
Change Management Plan
Requirements Requirements Document
WBS Document
Network Diagram
Schedule
Resource Plan
Cost Plan
Procurement Plan
Quality Plan
Risk Plan

Execute/Control Performance Reports Analysis Overall Design Documents:

Stage Gate Reviews Use Cases

Preliminary Users Manual


Test Plan
Design Detail Design Documents:
Menu/Navigation Design

Screen Designs and Storyboards


Report Designs
Database Design
Algorithms Design
Prototypes
Construction Development Objects:
Commented Code
Test Scripts
Help Screens
Testing Test Results Documents
User Manual
Training Material
Installation Install Documents
Closing Project Close Out
Contract Close Out
Lessons Learned


Project Management and Web Software Engineering

documentation, and defining procedures for han- dEploymENT acElEraTIoN for


dling: operations, user support and configuration WEB applIcaTIoNs
management.
The maintenance step involves following The classical waterfall methodology can be slow
and revising procedures for: problem resolution in getting a software product to market due to
& problem escalation; operations; backup and the extensive and formal stakeholder review at
security; configuration control; and quality/per- the end of each step and the lack of overlap. This
formance monitoring. is particularly troublesome for Web applications
At the end of each step there is usually a due to the increased number and diversity of
formal meeting where a document is produced stakeholders. Also the waterfall method becomes
for the culmination of effort in that step. This unstable if the initial requirements are significantly
document is reviewed by project management, the in error or if they change much, as if usually the
performing organization line management, and case with Web applications. Another problem
the benefiting organization (customer). If any of today involves the quickly changing business
these stakeholders are not satisfied with the results landscape due to new technologies and global
of that step, the project can be terminated or the competition. From the time a business problem
step repeated; the project will not proceed unless is analyzed and a solution built, the shape of
the stakeholders have given approval to move the original problem has changed significantly;
forward at each step. So in theory this should thus the developed solution no longer matches the
result in a product being produced that satisfies original problem. This is illustrated in Figure 10.
the initial requirements and the stakeholders. Todays IT projects, and particularly larger and
So what can, and often does go wrong for IT Web based projects, are getting harder to complete
applications: successfully as evidenced by project success rates
(Standish Group, 2004). Projects over $10 million
User requirements were misunderstood, have success rates of only 2%, projects between
incomplete, not fully documented, not fully $3 and $10 million have success rates from 11% to
implemented 23%, and projects under $3 million have success
Requirements have changed rates from 33% to 46%.
Documentation is unusable For these reasons, a number of variations and
System is difficult to use alternatives have been suggested and tried with
Training is ineffective varying degrees of success. Many of these ap-
Capacity or performance problems are pres- proaches take larger IT projects and break them
ent down into smaller more manageable pieces. How-
Audit and integrity problems are present ever there is no single best silver bullet approach
Bugs and other quality issues are present (Jones, 1994). Some of the SDLC alternatives, to
Standards were not followed list a few, include: Yourdon Structured Design,
Estimation of workload was poor Ward/Mellor, Stradis, Spectrum, SDM/70, LBMS,
Project was managed poorly Information Engineering, IBM AD/Cycle, Gane
Budget was exceeded & Sarson Structured Analysis, DeMarco Struc-
Not completed on time tured Analysis, Anderson Method/1, Bachman,
Agile and XP, Rational Unified Process (RUP),
As well as the above list of potential problems, and Clean Room.
many feel the classical waterfall approach is too The overlap or free-flow method allows any
slow for modern Web-based applications. task to proceed as long as its dependent tasks are


Project Management and Web Software Engineering

Figure 10, Changing shape of IT problems (Brandon, 2006)


problem domain

Business Business Business Business


problem problem problem problem

start of End of
project project

requirements design development solution

solution domain

Figure 11. Overlap method (Brandon, 2006)


Effort

Implementation

design Testing
analysis

Time -->

completed. Here the basic waterfall steps may have Evolutionary development begins with
considerable overlap. This is illustrated in Figure only the user requirements that are very well
11. For example, even though the design of the understood and builds a first version. Often that
total system is not completed (nor documented and first version is just a prototype. Analysis, design,
approved), the implementation of those compo- implementation, and testing are done in a free flow
nents whose design is completed may begin. This overlapping manner without any formal review of
overlap is built into the dependency relationships documents. This first version is then taken back to
in the project work breakdown structure (WBS). the customer for review and definition of further
One is betting that the total design (such as may requirements. Next the second version is built,
be manifested in UML design drawings) will be and then taken back to the customer. This process
approved. The concept is similar to optimistic continues until the customer is satisfied with a
record-locking in an interactive database applica- version and no further extensions are required.
tion. This is also a good technique on contracts This is illustrated in Figure 12. Documentation,
where incentives are available for early comple- training, acceptance testing and other project
tion. Obviously risks are greater with larger completion activities are done at that point at
projects and for projects where requirements can which all (or most) of the customers requirements
change significantly. have finally been included. This methodology is
much faster than a waterfall approach and also


Project Management and Web Software Engineering

Figure 12. Evolutionary development (Brandon, 2006)


version 1

design
req's
s ubset code & version 2
Test

design
req's
s ubset code & version N
Test
...
design
req's
s ubset code &
Test

somewhat quicker than the free-flow method. the methodology of constructing it), not bolted
However management visibility may be limited on afterwards.
since there is little intermediate documentation After the initial requirements phase, develop-
produced. Also in a contracted environment ment proceeds as in the evolutionary method. This
(external or internal), a fixed price contract is illustrated in Figure 13. Each increment typically
could not be used since the overall scope is not represents a product portion that can be placed
initially determined and priced. For a contracting into service. Incremental development is not as
environment, either a cost plus or time and quick as evolutionary development, but attempts to
material contract would have to be used. Also, avoid the design problems caused by not knowing
internal design is often poor for evolutionary all the major requirements initially. However it
development since the entire scope is not visible suffers from the same contract type issues as the
from the beginning, and continually changing a evolutionary method. Another potential problem
system leads to a design which is less adaptable is that the increments are based on the priorities
and harder to maintain. If the system is designed of the requirements, and sometimes priorities may
and built in a fully Object Oriented manner this significantly change during the time of developing
problem can be minimized. the increments. Both the rational unified process
Incremental development begins with a de- and extreme programming as well as several other
termination of all the requirements but only in a new methodologies use this technique and these
rough outline form. Next those requirements are are discussed later.
prioritized normally based upon those features Bounding box development is similar to in-
that are most important from a business perspec- cremental development except that each increment
tive. Since time is spent up front looking at all is not based on a certain scope (requirements sub-
requirements a more appropriate overall platform, set) but instead it is based on a measure of effort.
architecture, and design can be selected. This is If the effort put into an increment is constrained
particularly important for security requirements, by calendar time then the term timebox is com-
since security cannot be an afterthought. Good monly used. This is illustrated in Figure 14. For
security has to be built into the total product (and contracted development (external or internal), the


Project Management and Web Software Engineering

Figure 13. Incremental development (Brandon, 2006)


requirements &
overall design version 1

req's subset

d esign code & version 2


Test

req's subset

d esign code & version N


Test

...
req's subset

d esign code &


Test

Figure 14. Bounding box development (Brandon, 2006)


requirements &
overall design version 1

Effort contraint

d esign code & version 2


Test

Effort contraint

d esign code & version N


Test

...
Effort constraint

d esign code &


Test

increments are usually based on a dollar (budget) tracting environment, and the resources involved
amount. Thus this method does not have the con- both human and financial (Brandon, 2006).
tracting disadvantage that evolutionary or iterative
methods have, but customers must be willing to Combinations of these methodologies can also
contract for portions of the total system. However, be used such as in the rational unified process
since the amount of scope that will actually be which combines incremental and free-flow tech-
completed in each increment is not known, each niques. Figure 15 shows the primary advantage
increment may not represent a product portion and disadvantage of each of the methodologies.
that can be placed into service. The rational unified process (RUP) is based
upon both the incremental methodology and the
There is no one best methodology. An organization free-flow methodology discussed earlier. Instead
must select the methodology that is most appropri- of attempting to address all of a projects require-
ate for the type and size of IT project at hand, the ments, RUP produces software iteratively that
nature of the customer and stakeholders, the con- addresses a compromised but known feature


Project Management and Web Software Engineering

Figure 15. Methodology comparison (Brandon, 2006)


Method Advantage Disadvantage Best For
Waterfall Sound Development, High Quality Slowest Method Fixed Price Contract
Free-Flow Faster Development Risky for Unstable Incentive Contracts
Requirements
Evolutionary Quick Development for Small Design Problems Smaller Systems
Applications
Incremental Quick Production of Partial Contract Issues Rapid Phased Deployment
Products
Bounding Box Quicker Development within Partial Products Uncertain Budget Bound Organization
Budget

set and evolves the project over time (Jacobson, Inception: Understanding the need, under-
1999; Kruchten, 1998). The difference between standing the proposed system to address
evolutionary methods and RUP, though, is that one the need, making the business case for the
identifies the requirements for the entire system, proposed solution;
but only details the top 20% or so of architectur- Elaboration: Selecting the architecture and
ally significant cases during a single increment. developing the project plan;
This enables the determination of an appropriate Construction: Design, coding, integrating,
architecture and design which will accommodate and testing;
the remaining 80% of the requirements without Transition: Iinstalling the product on the
compromising the integrity and quality of the total target platform(s) and getting the user take
system. This is particularly important for security ownership of the system?
requirements, and a plug-in to the standard
RUP is available called CLASP (Comprehensive The key to RUP is iteration, both within each
Lightweight Application Security Process) which of the above phases and also with the incremental
provides a structured way to address security is- production of version. Each iteration within a
sues in the software development process. phase ends in a deliverable, and each increment
RUP specifies different roles for project results in a working product version. RUP de-
participants. Before an architect ever gets in- fines static workflows, core workflows (business
volved, an analyst is building use cases and models, requirements, analysis/design, testing,
evaluating and prioritizing them with the and deployment) and support workflows (change
customer. Before the coders begin implementa- management, project management, environment,
tion, architects work with analysts to identify the and tools). However each of these static workflows
architecture which best satisfies requirements is not associated with any one phase, and some
and constraints. UML tools are used to build degree of each type of workflow goes on within
a consistent model from requirements to detail each phase.
design. RUP uses the free-flow methodology also The transition from phase to phase is not
in that there is considerable overlap in activities separated by a stage gate and management
of different roles. control is not done by placing dates upon the
RUP is a phased approach that defines four phase boundaries. Management control is only
distinct phases: done upon iterations. The project plan contains
a list of proposed iterations (which is likely to


Project Management and Web Software Engineering

change), and each iteration has an estimate (which bad as programmers assuming that all mangers
is also likely to change). The proposed iterations know what they are doing.
are not assigned due dates, but decision points Although the various agile methods differ,
are set up in time (usually based upon weeks). At they have some things in common. Most use an
each decision point, a decision is made in regard incremental free-flow approach as does RUP. The
to adding/removing resources, adding/removing common intent is to be agile, so one should
iterations form the next release (version) of the embrace change and produce software that is
product, or killing/holding the project. These adaptable; thus most of these methods call for the
decisions are based upon progress, cost, and/or use of object oriented languages. Another common
earned value metrics. Thus a key part of the feature is a lot of contact time with users. Still
project plan is how risks will be managed; it is a another key focus is a focus on people not process
plan of contingencies, as opposed to just a plan thus emphasizing team morale building. Most AP
of activities. methods have some core principles including:
RUP is not suitable for all IT projects. It is
complex and difficult to quantify in a contracting Use a simple design (the old military KISS
arrangement. However for internal projects that principle);
are large and risky, and where quick deployment Design as you go, and keep refactoring
of partial products is necessary, it may be an the code;
appropriate choice. Take small incremental steps (when chang-
Agile programming (AP) is a name given ing or adding code, take the smallest step
to a growing number of lightweight methodolo- you can, then test again; one or two weeks
gies with names like Crystal (Cockburn, 2001), is typical);
Scrum (Schwaber, 2001), Adaptive (Highsmith, Stick to one task at a time (do not add code to
2000), Feature-Driven Development (Palmer, accomplish two things at the same time);
2002), Dynamic Systems Development Method Heavy use of IDE and RAD tools;
[DSDM] (Stapleton, 1997), and Extreme Program- Use only the techniques that really work for
ming (Beck, 1999). During the 1990s there was you.
such a need to quickly build new IT systems to
take advantage of new technologies like Web ap- Now, to many developers these may seem basic
plications and e-commerce as well as the need to and obvious, but we know many programmers
address the Y2K problem, that IT organizations who never follow any of these principles. Some
began exploring these lightweight techniques. programmers, instead of modifying a module or
Lightweight methodologies do away with much class for a small change or addition, will spend a
of the SDLC process overhead that slows down great deal of time writing the entire module from
developers, such as detailed formal requirements scratch. The advantages of these AP principles
definitions and extensive documentation. Some include:
feel that these new development approaches are
based on the premise that if you hire competent Faster reaction to changes in requirements
programmers who always know what they are The overall design remains simple
doing, then any problems they encounter are or- Coding can begin earlier
ganizational and communications ones; and those By refactoring the code, the most important
are what the agile approach focuses on. However parts get the most attention (one doesnt
for managers to make this assumption may be as invest time into changing what doesnt need
to be changed)

0
Project Management and Web Software Engineering

Code in progress is always stable Designers write automated unit test scripts
Refactoring is one of the core concepts and before coding
this is a new word for cleaning up the code. Refactoring is used extensively
More formally, refactoring is improving the Programmers work in pairs
design and maintainability of code in small Programmers have collective ownership of
incremental steps confined to areas of cur- all code
rent interest. One problem with refactoring Teams integrate and check code back into
is that when a programmer comes under repositories frequently (no longer than one
pressure to finish faster, the refactoring work day)
may not be done. Developers work only 40 hour weeks
User representative(s) remain on-site
AP is relatively new, so the jury is still out on the Programmers follow strict coding stan-
success and applicability of these methods. It dards
is felt that AP is suitable for small projects and
small teams; whether it has practical applica- Although XP in different forms has been used
tion for larger environments is still in question for a few years, many IT organizations have been
(Brandon, 2006). reluctant to try it. A major issue is that some XP
principles contradict long standing IT policies.
Extreme programming (XP) is a software For example, XP specifies pair programming, in
development approach initially for small teams which two programmers sit side by side working
on risk-prone projects with unstable require- at a single workstation. Pair programming seems
ments (Beck, 1999). Kent Beck, a programmer inefficient, but studies have shown that it is no
and project leader, developed XP while work- less efficient that traditional programming and
ing on a long-term project to rewrite Chryslers usually results in fewer code defects (Williams,
payroll application. XP is a form of AP based on 2000). Fewer defects eventually mean quicker
a lightweight methodology. XP however, differs delivery. However, not all programmers want or
from most other agile approaches by being much are suited for pair programming. Very good pro-
more prescriptive. Like AP, XP is an incremental grammers should not always be encumbered with
method with free-flow. XP advocates say the meth- a sidekick. Many programmers like the solace and
odology (creating user scenarios and performing that is one of the reasons they stay programmers.
upfront feature testing) allows them to develop Often programmers consider themselves masters
and deliver code more quickly with fewer bugs. of the trade, and if you have two master chefs in
XP is built around rapid iterations, an emphasis the kitchen there is going to be conflicts. Another
on code writing, and working closely with end problem with XP (like all AP) is its application in
users. The 12 basic practices of XP are: contract environments. Still another problematic
issue for XP is that all code is generally open for
Customers define requirements via use case programming pairs to check out and alter. This can
scenarios (stories) open up the team to integrity and security issues.
Teams release small increments into produc- As discussed earlier in this book, internal security
tion early is becoming a prime concern for IT organizations
Teams use standard names and descrip- for both internally developed code and particularly
tions outsourced programming. Further XP does not
Simple object oriented coding is used address downstream SDLC issues such as train-
ing, user documentation, and training.


Project Management and Web Software Engineering

XP also requires the benefiting organization to Component based software engineering


take a very active role in the development process (CBSE) is a development philosophy that utilizes
even to the extent that users are asked to write tests existing software modules to build application sys-
which will prove requested functions work prop- tems. Any of the aforementioned methodologies
erly before they are coded. In XP, customers may may be utilized, but the requirements specification
write needed scenarios or features on index cards stage here may be longer due to preparation of
for example (one scenario per card). Using and re- procurement documentation. CBSE is a formal-
using a number of index cards is far cheaper and ized system of reuse at a high level; formalized
faster than writing, editing, and reviewing a large in the sense of a business approach rather than at
formal requirements document. The developers the software architecture level. CBSE is based on
estimate how long it will take to build that feature. having a cadre of reusable modules or programs
Based on the estimates, the customer prioritizes and some framework for integrating these modules
the features. Next the customer writes the test, and together. CBSE can be applied at several levels
the developers write code which will successfully of granularity. At the highest level is the COTS
pass the test. Testing is normally automated, and (commercial off-the-shelf software) approach
test harnesses organize test scripts that related where commercial programs are purchased and
to particular functional areas. However, since integrated together through a data exchange
testing is limited to acceptance type testing, mechanism.
full multi-level testing is seldom performed. This A recently evolving approach to CBSE using
may lead to problems with unanticipated inputs, the internet is called Web services. Here dif-
scalability problems, and security problems. This ferent services are provided by different vendors
is discussed further in a later chapter of this book in real time on their servers generally at a per
on quality management. usage price. This new computing architecture
Since XP requires constant communication is formally called SOA or Service Oriented Ar-
between the benefiting and performing organi- chitectures (Hall, 2003). Web services are based
zations (as well as among the developers), and upon modern open standards; unfortunately
since communication time and traffic increases some of these standards (SOAP, WSDL, UDDI,
in proportion to the square of the number of etc.) do not have adequate security built into
communicating parties, XP is not suited to large them yet. Web services architecture uses SOAP
teams (Beck advises limiting project teams to no (simple object access protocol) as a lightweight
more than 12 developers working in pairs). As remote method invocation process. Older more
with JAD and AP methods in general, a customer complex protocols for distributed object services
may not be able to commit his resources to that are Microsofts DCOM (distributed component
much involvement. object model), Javas RMI (Remote Method In-
vocation), and OMGs CORBA (common object
Thus XP has a number of specific advantages and request broker architecture); RMI and CORBA
a number of specific disadvantages. The issue is a are more secure than SOAP. Central repositories
hot debate topic in the IT world. It is extreme; (registries) catalog which services are available
on the one side it is thought of as a great break- and where using the UDDI (universal description
through and on the other side it is akin to letting discovery and integration) protocol. Providers
the inmates run the institution. So XP is not for list the usage specifications of their services via
all IT organizations. It is like extreme sports; it the WSDL (Web services description language)
is great recreation for my 14 year old nephew, but protocol. Web service applications can be created
not for his 38 year old dad (Brandon, 2006). in a number of languages with most being written


Project Management and Web Software Engineering

in Java, PHP, or Visual Basic-Net. Some think that Traditionally the key stakeholders have been
the serviceoriented architecture may become individuals or other groups closely associated
the core paradigm for software applications and with either the benefiting or performing organiza-
integration in the future (Eisenberg, 2004). tions. However, long-run changes in the social,
political, and economic environment of projects
The advantages of the CBSE approach are speed of have meant that this is no longer necessarily the
assembly and possibly short term cost. The disad- case for a number of reasons. (Winch, 2004) So,
vantages are that no strategic advantage is derived today there may also be a number of key external
from the resulting product (nothing is proprietary, stakeholders in terms of various social, political,
anyone can do it), compromise of requirements to or economic interests.
meet capabilities of available components, vendor Internal stakeholders related to the benefiting
dependencies, possible performance issues, and organization might include:
security problems (Brandon, 2006).
Project sponsor(s)
Business Owners or stockholders
WEB applIcaTIoN Customer line management
sTaKEHoldErs Customers users of the IT system
Customers IT group
The identification and management of a projects Customers accounting group
stakeholders is vital to the complete success of a Customers business units affected
project. Often well planned and properly executed Customers other employees
still fail due to a lack of or inappropriate relation- Customers customers
ships between the project manager and various Customers contractors and vendors
stakeholders. The first step in good stakeholder Customers financiers
management is the complete identification of all
of the stakeholders. Cleland defines stakeholders Internal stakeholders related to the performing
as (Cleland, 1998): organization might include:

Stakeholders are people or groups that have, Project Manager


or believe they have, legitimate claims against Business Owners or stockholders
the substantive aspects of the project. A stake is Project Team
an interest or share or claim in a project; it can Performing organizations line management
range from informal interest in the undertaking, Performing organizations IT group
at one extreme, to a legal claim of ownership at Performing organizations accounting group
the other extreme. Performing organizations other employees
Performing organizations customers
Stakeholders are associated with both the Performing organizations contractors and ven-
performing organization and the benefiting orga- dors
nization; these are called internal stakeholders. Performing organizations financiers
The performing and benefiting organizations
may or may not be part of the same company, External stakeholders may be concerned in-
and there may be a formal or informal contract dividuals, companies, or associations and these
situation. In addition there are usually external can be termed private interests; or they may
stakeholders that are not part of these two groups. be local, state, federal, or international govern-


Project Management and Web Software Engineering

Figure 16.

software IT data Base Test Tech Network


programmers
analysts designers admins Engineers Writers Engineers

IT line
managers
software development lifecycle

document
project Web
management
manager application
system

Business
line
managers content approval & control

language
product market communication Graphic
& culture Trainers Webmaster
managers analysts specialists designers
specialists

ment bodies and these can be termed public will have to be managed differently than those
(Winch, 2004). that are less powerful. Each stakeholder or group
External private stakeholders might include of stakeholders may have a different type of stake
concerned individuals, trade associations, en- in the project including: monetary, job security,
vironmental and conservationists associations, position, influence, reputation, or convenience
neighborhood association, and the like. External (time). The interests of all stakeholders in one
public stakeholders might include local govern- group may not be the same, if the result of the
ments, state governments, federal regulatory successful completion of the project may alter
agencies, federal governments, or international the balance of power in that organization. For
agencies. example, within the benefiting organization dif-
Since Web applications generally manage ferent stakeholders may be for, against, or neu-
content and not just data, and many of them are tral about the project and this may depend upon
document centric versus data centric. In addition, the way the final project manifests itself or the
there are many more stakeholders involved in the way it is implement in the benefiting organiza-
definition, design, development, testing, approval, tion. In Web projects, which involve a number
and usage for Web applications as opposed to of corporate business units, there is very much
traditional applications. This is illustrated in corporate change including work flow, policies
Figure 16. and procedures, management structure, and so
Once the stakeholders have been identified, forth; for this reason, different stakeholders within
then each must be analyzed carefully in order to the same group (i.e., the benefiting organization)
determine the manner in which that stakeholder may have varying interest in the success of such
should be managed. Stakeholders that are more a large project.
concerned about a project will have to be managed Figure 17 shows a power versus concern
differently than those that are less concerned; graph which can be used to visually assign
similarly stakeholders that are more powerful stakeholders into one of these four categories.


Project Management and Web Software Engineering

Figure 17. Stakeholder classification (Brandon, 2006)

compliance Individual
Hand Holding

^
power

Informed Buy off

concern ->

Powerful and highly concerned stakeholders will aligned with the project initially; they do not need
have to have to be actively managed throughout constant attention as does the powerful and very
the project; these are the people who will need concerned group. Stakeholders that are not power-
their hands held. For each of these individuals ful and not too concerned simply need to be kept
or groups the project manager must ascertain: informed on a regular basis as a group.
In terms of power and influence over project
What is the biggest thing this stakeholder affairs, there are four types of power in most or-
has to gain if the project succeeds (fails)? ganizations and communities of stakeholders:
What is the biggest thing this stakeholder
has to lose if the project fails (succeeds)? 1. Power due to position (or rank)
2. Power due to control over resources (like
Next the project manager (or line manage- budget)
ment) must try to best align this person with the 3. Power due to unique expertise
project and get early buy-in; and then check 4. Power due to politics and/or charisma
on this alignment during all phases of the proj-
ect. Stakeholders that are powerful but not too Some authors define other types of power like
concerned usually have some standards or other physical power, which may have relevance on a
manifestation of principle that they wish to be sport team, but typically not in a project manage-
followed. An example here is regulatory agen- ment environment. Other types of power defined
cies. This group of stakeholders is best managed by some are position sub-types of power as:
by becoming very knowledgeable and clear on
the principles and standards involved and then Reward: Power based on being able to
complying with same. Stakeholders that are not give an employee something he/she wants;
powerful but quite concerned need to be aligned does not necessarily mean money, may be
with the project; this is the so-called buy-off a position/role on the team, or may be a
group. This done first by finding out why they positive evaluation supplied by the PM
are so concerned, and then seeing if they can be to a functional line manager


Project Management and Web Software Engineering

Referent: Power bestowed from a higher also map to the project quality plan. Finally,
point in the organization access to the stakeholder plan must be properly
Penalty: Power based on being able to controlled, in regard to which stakeholders can
penalize someone (may be more than mon- view such a plan.
etary)

A stakeholder may fall into more than one of GloBal dEploymENT for WEB
these categories. Figure 18 shows one method applIcaTIoNs
to perform this stakeholder analysis including
an analysis of power versus concern and type According to Computerworld: Globalization is
of power. In this spreadsheet each stakeholder the marketing and selling of a product outside a
is listed and characterized by checking off col- companys home country. To successfully do
umns. that on the Internet, a company needs to local-
izemake its Web site linguistically, culturally,
After all the stakeholders have been identified and in all other ways accessible to customers
and analyzed, a stakeholder action plan should outside its home territory (Brandon, 2002). Ever
be developed. This plan will explain how each since the end of the Cold War, the world has been
stakeholder is to be managed and who (within rushing toward ever-higher levels of national con-
the project team, line management, or project vergence, with capital markets, business regula-
management office, is responsible for carrying out tion, trade policies, and the like becoming similar
each item in the action plan for that stakeholder (Moschella, 1999). The value of cross-border
(Brandon, 2006). mergers grew sixfold from 1991 to 1998 from
U.S. $85 billion to $558 billion. The world has
This stakeholder management plan can be a not witnessed such a dramatic change in business
separate plan or be part of the project commu- since the Industrial Revolution. (Korper, 2000)
nications plan. As part of the stakeholder man- More than 95% of world population lives outside
agement plan, potential claims by a stakeholder of the U.S., and for most countries the majority
or other potential unfavorable actions should of their potential market for goods and services
also be identified and included in the project risk is outside of their borders. Currently about eight
management plan. As well as correlating with percent of the worlds online population resides
the communications plan and risk management outside of North America:
plan, the stakeholder management plan should

Figure 18. Stakeholder analysis (Brandon, 2006)


Project Management and Web Software Engineering

Asia 36.5% ferent German. The combination of language and


Europe 28.2% dialect is called a locale.
North America 21.8% When one installs an operating system on
Latin America 7.8% their computer, they may specify a locale. Then
Africa 2.3% to view content that has been localized for another
Middle East 1.7% language, one has to have their Internet browser
Australia/Oceania 1.7% properly equipped with the correct scripts (char-
acters and glyphs/symbols). In some locals there
Today the majority of Fortunes 100s Web may be one spoken language, but several writing
sites are available only in English (Betts, 2000). systems for it such as in Japanese. The current
In our rush to get on the WWW, we sometimes versions of Netscape and Microsoft Internet Ex-
forget that WW is for World Wide (Giebel, plorer support most languages directly or via a
1999). Wal-Mart (a $165 billion U.S. company) download of needed scripts. One still may have
has a global work force of more than 1 million to adjust option settings in these products accord-
and runs more than 1000 of its 3406 retail outlets ingly in order to associate the proper character set
outside of the U.S.; yet its Web site (Wal-mart. with the proper language (Brandon, 2002).
com) is only for Americans (Sawhney, 2000). One can convert Web pages by hiring a transla-
Todays average Website gets 30% of its traffic tor or using a computer based translation product
from foreign visitors, and today only 1% of small or service. Hiring a translator will provide the best
and midsize American businesses export overseas localization, but is more costly than the automatic
(Grossman, 2000). methods. Translators can easily be found in the
Currently the breakdown of Internet user lan- Aquarius directory (http://aquarius.net) or Glens
guages is roughly 50% English, 8% Japanese, 6% Guide (www.gleensguide.com). It is best to use
German, 6% Spanish, 6% Chinese, 4% French, a translator that lives in the local region; if a
and 20% other. That means if one does not localize translator has not lived in a region for a decade
their Web site, they will be ignoring more than he has missed 10 years of the local culture. There
half of the world. For the immediate future most are also many companies that provide translation
of the Internet community will still understand services such as Aradco, VSI, eTranslate, Idiom,
English, but overall English is the native language iLanguage, WorldPoint, and others. The cost of
to only 8% of the world. Most users in foreign these services is about 25 cents per word per lan-
countries prefer content in their own language; for guage (Brandon, 2002). One can extrapolate how
example, 75% of users in China and Korea have high this translation cost can be for a company
such a preference (Ferranti, 1999). It was found with 100 pages in its Web site, having to support
that visitors spend twice as long, and are three 20 different locales worldwide, with many on
times more likely to buy from a site presented in going changes to content each month.
their native language (Schwartz, 2000). Multiple Automatic translation software is another
languages are used in many areas. Belgium has option, but it is still in its infancy (Reed, 1999).
both French and Dutch. In Switzerland, German, Some popular software products for translation
French, and Italian are used. Also we have to take are: www.e-ling.com, www.lhs.com, and www.
into account differing dialects that are used across systransoft.com. The automatically translated
various countries speaking a specific language. text typically does not convey the full meaning
One cannot use Classic German in Germany, of the original text. For example some English
Austria, or Belgium, since they all speak a dif- elevator signs translated to, then from, another
language may read:


Project Management and Web Software Engineering

Bucharest: The lift is being fixed for the Creating an effective foreign Website involves
next day. During that time we regret that much more than just a good language translation.
you will be unbearable. Not only do languages differ in other countries
Leipzig: Do not enter the lift backwards, but semantics (the meaning of words and phrases)
and only when lit up. and cultural persuasions in a number of key areas
Paris: Please leave your values at the front are different. Sensitivity to culture and national
desk. distinction will separate success from failure
(Sawhney, 2000). To be effective, a Website has
There are several Web sites which provide not only to be understandable and efficient, but
free translation services such as http://babelfish. has to be culturally pleasing and inoffensive. To
altavista.com, http://translator.go.com, and www. accomplish that, it may be necessary that not only
freetranslation.com. language be localized, but that content, layout,
Another alternative, although certainly not navigation, color, graphics, text/symbol size, and
optimal, is to provide a link on your English Web style may be different. Many companies have
page to these free services so that visitors can put forth global Web sites simply by translation
translate your content themselves. the English into the targeted language, but then
Shown in Figure 19 is the home page for Fe- had to pull back and re-plan and redesign the
dEx (www.fedex.com). One can select from over localized site due to cultural offenses. The Nike
200 countries for specific language and content. site shown in Figure 23 for example has some of
Figure 20 shows the U.S. FedEx page, and Figure these issues which are common to the localized
21 shows the FedEx site for Mexico. version of Web sites for many companies; in that
Another example is Nikes home page shown figure one can see that:
in Figure 22, and their Japan version shown in
Figure 23. Not all the English has been translated into
Japanese (text inside figures for example);

Figure 19.


Project Management and Web Software Engineering

Figure 20.

Figure 21.

The actors are not Japanese; other parts of the world (www.gwjapan.com); for
The clothes worn by the actors have Ameri- example, avoid groups of four on Japanese sites.
can team names. Sometimes even product names may be offensive
or inappropriate. General Motors tried to market
A countrys humor, symbols, idioms, and mar- the Chevy Nova in Mexico (in Spanish No Va
keting concepts may not send the same messages means does not go) ! Some areas of global
to other countries in the world. Oriental manners disagreement to avoid are equality of the sexes
can be much different and more subtle than in or races, body parts and sexuality, abortion, child


Project Management and Web Software Engineering

Figure 22.

Figure 23.

labor and majority age, animal rights, nudity, guns, by foreign material. A European branch of a ma-
work hours and ethic, capital punishment, scien- jor U.S. software company ran an advertisement
tific theories, and religious particulars (Brandon, with a woman straddling a chair with her legs
2002). Cultural persuasions work both ways. For which said Sometimes size is not important if
example, many American Web sites offend other you have the right tool. The advertisement did
countries, but Americans are sometimes offended well in Europe but offended Americans.

0
Project Management and Web Software Engineering

Colors have symbolic and special meaning even been several lawsuits in the U.S. concerning
in most locals. In the U.S., the colors red, white pornographic sites and the like due to different
and blue signify patriotism and red and green interpretations of laws in different states (differ-
signify Christmas. In India, pink is considered ent geographic/political parts of U.S.).Another
too feminine. Purple is a problem in many places; legal issue concerns the privacy of personal data
it symbolizes death in catholic Europe and pros- collected online. Many parts of the world have
titution in the Middle East. Euro Disney had to stricter laws than does the U.S., and U.S. compa-
rework its European sites after the first version nies have had judgments rendered against them in
used too much purple. Overall blue is the most foreign courts. Recently an agreement has been
culturally accepted color (Brandon, 2002). Much reached between the U.S. and the European Union
of the world is still using eight colors not 256 that would, among other things, mandate that all
colors, thus it is best, for the immediate future, companies doing business in Europe notify us-
to use primary colors. An individuals perception ers when personal data is being collected. Under
of color depends not only on the ability to see it, that agreement, companies have four options in
but also on the ability to interpret it within the compliance to the new policy: register with the
context of our emotional and cultural realities. data-protection authority for the European Union,
Ninety percent of (Web sites are colored poorly, subscribe to a self-regulatory organization like
they are simply overdone, and there is no sense Trust-e, prove they are subject to laws similar to
of harmony Holzschlag, 2000). the European Union, or agree to refer disputes
It is also very important to respect other cul- to European regulators (Whiting, 2000).There
tures symbols (heroes, icons, etc.) both positive are other areas that could cause legal problems,
and negative (swastika). One guide site is Merriam too. One is foreign advertising restrictions; for
Websters Guide to International business (www. example, in Germany, one cannot directly com-
bspage.com/address.html). The classic books on pare your product with that of a competitor. In
these cultural subjects are excellent guides for some other countries this comparison may not
Web pages also: Kiss, Bow, or Shake Hands: How be illegal but may be in bad taste. Other areas
to do Business in 60 Countries (Morrison, 1995), consider safety, consumer protection laws, health,
Dos and Taboos Around the World (Axtell, 1993), and other standards For example in the U.K.,
and Dun & Bradstreets Guide to Doing Business currently one cannot sell the drug Viagra, even
Around the World (Morrison, 1997). This year a though its sale is legal in the rest of the world; in
French courts ruling that Yahoo must make auc- Germany companies are not allowed to provide
tions of Nazi memorabilia unavailable in France an unlimited return guarantee.
indicates how uncertain and risky international e- Nearly half of the U.S. Web sites refuse inter-
business can be. The troubling aspect of this case national orders because they are unable to process
is that different countries can say that content not them (Grossman, 2000). One could always ask
even targeted at their population breaks the law for advance payment in native currency (cash,
(Perrotta, 2000). With the Internet it is not possible cashiers check, International Money Order), but
to know for sure where a user is logged in from you had better have a very unique product for
due to IP tunneling possibilities. Freedom that approach to be successful. Foreign exchange
laws (such as the U.S. First Amendment) are not rates vary daily so indicating that your prices
universal, and saying/printing some things can be are in your countrys funds (exclusive of local
illegal in some parts of the world. In the U.S. you taxes and custom duties) and using credit cards
can say what you like about public figures, but (so the credit card company does the conversion)
not so in most of the rest of the world. There have is one way to deal with that issue. One can also


Project Management and Web Software Engineering

link to a converter site (www.xe.net/ucc, www. switch date formats per session or connection so
oanda.com) or place a calculator on your page the way a date is input (insert into table) or output
(www.xe.net/currency or www.bloomberg.com/ (select from table) is automatically converted
markets/currency/currcalc.cgi). Also in many to the internal table representation of the date.
countries traditional pricing may be much lower Some popular Web databases (i.e., MySQL) do
or higher, so product pricing is important. For not provide this capability, so you will have to do
example, computer products are typically 50% the conversion in your own code (via client side
more expensive in Europe than in the U.S. JavaScript or Java Applets, or server side CGI
However, credit cards are rare in Japan as is programs or Java Servlets). Some popular Web
the use of checks. There postal workers collect programming languages have features to facilitate
cods, and some companies send goods to brick these conversions (i.e., Javas GregorianCalendar
and mortar places for consumers to pick up. In class or Perls Date::Manip). Related to dates but
Germany only 5% of Web users (second to U.S. not to the display problem, is the fact that each
in overall net usage) use credit cards. Eighty-eight local has its own set of holidays; this will affect
percent of European merchants use invoice billing daily volumes and delivery schedules. Some lo-
(with a long net payment due time). So while credit cales may use a special calendar: Arabic Lunar
cards are a convenient and popular mechanism Calendar, Jewish calendar, Iranian calendar, or
in the U.S., it is not so in the rest of the world. To the Japanese Imperial Calendar. In the U.S. a
complicate matters even further, there are many 12-hour clock is common, except in U.S. military
(and always changing) international sales taxes, establishments. The rest of the world uses mostly
VAT (Value Added Taxes) in Europe, with dif- a 24-hour clock, so it is best to display time in
ferent exempt items in each country. Selling in the 24 hour format. Of course time zones will be
Europe may involve VAT registration in countries; different, so include your time zone along with
one needs to get rulings and advise in writing the phone numbers for personal customer support.
from each country. Typically a company pays It is best to spell out the time zone in the native
VAT based on the country its based in, but that language. You could instead give your support
can depend on the country and item being sold. time in GMT (Greenwich 2000 Standard) and use
One approach to avoid all these problems is to or link to www.timeanddate.com for a customiz-
use an escrow service such as Paymentech (www. able world clock and calendar.
paymentech.com) which now handles about 3 bil- In addition to dates and times, other units of
lion transactions/year; others are: www.tradesafe. measure will be different also. Only the U.S. and
com, www.internetclearing.com, www.iescrow. Canada (partially) still use the English System,
com, www.worldpay.com. the rest of the world is on the metric system now,
Dates are very important in e-commerce be- even Britain. This may or may not affect the goods
ing used for events such as delivery dates, credit you are selling, but overall the lack of adoption of
card expiration dates, product expire dates, and the metric system will now begin to put the U.S.
so forth. There is an international standard on and Canada at a disadvantage in world e-com-
dates (ISO 8601 Date Format), and even though merce. Even for an English only Web site, to do
you may not use it internally in your programs business internationally it will prove advantageous
(for database operations and calculations), your displaying product information in both English
Web display should be in the localized format. For and metric measurements, or allow the user to
example, the common U.S. format of 10/6/2000 dynamically change units (Hickman, 1998).
is not uniformly understood; instead use Oct-6- Addressing a customer may be more in-
2000. Major databases (i.e., Oracle) allow you to volved; some foreign addresses may have longer


Project Management and Web Software Engineering

and more address fields. For Europeans, trying formats, bandwidth capabilities, tagging HTML
to buy from American e-commerce companies properly, correct character sets to use, managing
is a lot like shopping in the Third World. While multilingual pages on the server, directing users
delivery address forms let you specify any country, to the language specific content, and so forth.
the forms demand an American state, a five-digit (Yunker, 2000). Bandwidth and response time
zip code, a 3-3-4 formatted phone number, and are vastly different around the world. In China,
they assume your street address only takes up one the 28.8 Kbp is standard, so one must minimize
line(Grossman, 2000). There is a universal stan- graphics and/or have a text only version for China
dard, of sorts, here called the UPU (Universal and similar bandwidth limited areas. In Europe
Address Formats). Generally, it is of good advice and Japan wireless or Mobile-commerce is more
including a country code (and base validation of popular than in the U.S. currently, and this effects
remaining fields upon this country code), at least bandwidth and display sizing (Brandon, 2002).
three address lines (40 characters each), city field Whether your HTML pages are manually cre-
(30 characters), a state/province/region field (20 ated, statically created by an HTML editor (i.e.,
characters), a postal code/zip field (10 characters), FrontPage, DreamWeaver, etc.) or dynamically
and a contact phone number (20 characters). Figure created on the server, the HTML code will have
24 shows an example global order form. to identify both the character set and encoding.
Language is often the least challenging Character sets are the common ASCII, an ISO
aspect of customizing, or localizing, a Web site standard [i.e., ISO 2022-JP for Japanese], or a
for a foreign audience. The hard part is all the special set. The encoding to use is identified
technical challenges; including date/currency via the HTML META tag, such as: <META

Figure 24.


Project Management and Web Software Engineering

http-equiv=content-type content=text/html; graphics applications to work correctly. Also icons


charset=Shift_JIS><HTML Lang=ja> for that have embedded text will be a problem, so it
Japanese. You may also need to add ISO coun- is best to separate the text from the icons. In a
try codes to specify further dialect particulars review of Howard Johnsons new Web site, Squier
(Brandon, 2002). The new standard is Unicode stated: Hojo has made a big deal about this site
(ISO 10646, www.unicode.org) which uses 16 being bilingual (English and Spanish), but I found
bits (double byte) to store up to 65,536 characters/ little substance to back up the hype. The graphics,
symbols versus ASCII 8 bit codes (256 symbols). most of which contain text, are not translated into
With Unicode you do not have both a charac- Spanish. This is sort of important, since were
ter set and an encoding, it is one and the same talking about words like Reservations and Free
(charset=utf-8). It probably is less of a problem Vacation Giveaway (Squier, 2000). One can
with the Web browsers handling of international use both language specific text and visual inter-
characters than with the database when order national symbols to convey meaning and focus
information and customer information is stored. users. Common symbols in the world include light
Latest versions of database products also support bulbs, telephones, books, envelopes, computers,
Unicode, and those are the versions needed for flashlights, nature, tools, umbrellas, the globe,
full global support. binoculars, eyeglasses, scissors, audio speakers,
Navigation varies with some scripts from the VCR/tape controls, microphones, arrows, mag-
more common left to right then top to bottom; nifying glasses, cars/trains/boats/planes, a smile,
Arabic & Hebrew are (usually) right to left, and and a frown (Fernandes, 1995).
Kana is vertical. The latest version of HTML For all of the above issues, it is evident that
contains tags to handle navigational direction. different Web content must be used in different
As well as navigational issues, other issues are locales. How to deploy and maintain these differ-
hyphenation, stressing (underline, italics, bold in ences is a large and complex software architectural
Roman, but different in other languages), bullet problem. The first consideration is directing users
items, fonts, symbols above and below others, text to the locale specific pages, and there are several
justification, text sort orders, and GUI controls methods that are typically used. One method is to
(text boxes and their labels, check boxes, radio put buttons, drop downs, or links on your native
buttons, drop downs, etc.) Field size is often a home page that the user can click to go to a locale
problem and the layout of graphical user inter- specific page (see the earlier FedEx example). It is
faces may need to be redesigned; for example, best to have the text on those buttons display the
German words are longer than other languages language name in the foreign language, although
(Brandon, 2002). there are many sites that do not do it that way. For
When translating your content, you need to example on the button for Spanish say Espaoles
separate out the scripts (JavaScript, ASP, JSP, not Spanish. The URLs of the locale version of
etc.) or just let the translators work from the your home page should be the same as your home
displayed page, not the underlying HTML. Not page except end with the name of the country or
all HTML editors support both displaying and locale, or end with the ISO standard country code
saving double-byte characters/symbols, so be abbreviation. That way it is easy for users to link
sure to choose one that does such as Frontpage directly to their native version also. For example
2000. Also with the symbolic Asian languages, with a home page URL of www.mycompany.com,
you may need to add language support kits to have the Spanish version called www.mycompany.
the operating system (unless you have the latest com/es or www.mycompany.com/espanole. Cook-
version of Windows 2000, for example) for most ies can also be used to maintain a users language


Project Management and Web Software Engineering

choice so that when they return to the main URL In the subclasses, only the properties that were
they are switched to the locale specific version different in the dialect from the language would
automatically (assuming most users of a specific have to be maintained. There are products that
PC will not be switching languages.) The FedEx facilitate this task of producing resource bundles
site (Figure 6) works in this manner. or the like. Products such as Suns Internationaliza-
With the capabilities of modern operating tion and Localization Toolkit (JILT), Multilizer
systems and using the Java language, there is an Java Edition, or Catalyst Enterprise (Apicella,
automatic way of placing a user on the correct 2000) will capture all the textual references in a
native page (Davis, 1999). When users install computer program (such as Java, C++, or PHP)
an operation system on their computer (such as and let you build a dictionary of translations in
Microsoft Windows 95/98/2000), they will specify different languages. JILT uses resource bundles,
a locale [via Control Panel/Regional Settings]); and the other products take different approaches.
for most computers, the manufacturer sets this This is a great aid in modern dynamic HTML,
up upon assembly based upon the ship to ad- Java Applet, or Java Servlet based Web sites.
dress. Then there is the enormous problem of version
Your home page can simply be a container for and configuration control with Web pages, just as
a Java Applet which interrogates the operating there is in any software based system. Maintaining
system to find the regional setting. Then the Ap- many language and or country/locale versions of
plet can load the correct locale/language version. a companys Web site will be a major task in the
The capability within the Java language for this is future. Over time, the English text changes as
called Resource Bundles (Patten, 1999). products, their features, and policies are changed.
Instead of maintaining the URLs in the bun- There must be a method to keep everything in
dles, the actual phrases, codes, image filenames, synchronization. There are some content man-
video file names, and so forth, can be stored in the agement products such as Idioms WorldServer or
bundles. Then using Java server programming, BroadVisions Web-Publishing System that have
dynamic HTML can be produced (under program some of those needed localization capabilities.
control) on the fly to generate the native pages. For example, each text item, logo, graphic, and
The biggest and most costly problem is hav- other items are tagged with a rule to indicate how
ing to re-create Websites from scratch because it is to be handled in different languages and/or
the original was programmed with English text regions (Robb, 2000).
embedded in the code (Disabatino, 2000). For Some Web sites to aid in all these techni-
dynamic HTML, this is typically done with a Java cal areas include Unicode (www.unicode.org),
Servlet running on the server. Although techni- International Technical Issues (www.w3.org/In-
cally more challenging, there are several advan- ternational), Basis Technology (www.basistech.
tages. First the HTML is generated dynamically com), and the Microsoft Internationalization
and can be a function of time, date, or anything else Whitepaper (http://msdn.microsoft.com/work-
as well as locale. Second when some information shop/management/intl/locprocess.asp).
has to be changed, you do not have to open up and It can be very costly to build and maintain a
modify every language page; only the object that foreign presence. A full business plan must be
is being changed (phrase, image, etc.). Another set up market analysis (product demand, pricing,
key advantage is that the bundles can be classes, and competition), total entry costs, then ROI must
and as such an inheritance hierarchy can be set be considered (Tapper, 2000). Without doubt it
up. Dialects would be subclasses of the language is more expensive and time consuming to design
and would inherit the properties of the language. and build an effective global Web presence than


Project Management and Web Software Engineering

just a domestic site. Forbes has a list of 10 key use other international services: www.worldbusi-
general questions for companies considering go- ness.net/marketplace, www.digilead.com, ciber.
ing global (Klee, 2001): bus.msu.edu/busres/tradlead.ht, Global Informa-
tion Network (www.ginfo.net), Global Business
Do you have a good reason? Is exporting Centre (www.glreach.com/gbc), GoingGlobal
central to your companys strategy ? (www.going-global.com), WorldPoint (www.
Do you have the right stuff to pull it off worldpoint.com), Internationalization of the
(talent, technology, leadership, ) ? Internet: (www.isoc.org:8080), InvestinEurope
Can you identify a market(s) ? (www.investineurope.com).
Are you flexible ? As statistically shown earlier, U.S. Web users
Can you find a good distributor (partner) will play a smaller role each year in the World
? Wide Web, China & Asian markets will grow
Can you cope with all the complexity ? dramatically. The Euro will become standard,
Can you brave the non-legal barriers (ways and Europe may require U.S. based companies
of doing business) ? to charge VAT.
Are you willing to extend credit and deal Communication infrastructures are building
with currency turmoil ? up in second and even third world countries (both
Are you ready to run a much different kind government and private). Major communication
of company ? build ups are currently occurring in the Pacific
Do the rewards outweigh the costs ? rim, Latin America, and South America (Ferranti,
1999). Companies such as FedEx will offer more
A company must have commitment from the sophisticated international shipping and logistic
top to make the endeavor of designing for inter- services to more parts of the world. More sophis-
national markets a success (Fernandes, 1995). ticated software for translation, localization, and
Know your audience and see who your visitors version control is being developed each month.
are. Many companies are surprised when they In addition more companies will discover how
analyze their log files and see who visits their to use the technology available within Java (JSP,
site. There is software to facilitate this type of Servlets, Applets, Beans). The Internet will be-
analysis and there is a new breed of application come pervasive and become an integral part of
servers such as HitBox Enterprise from Web- our everyday lives via WevTV, Net Applicances,
SideStory (www.websidestory.com) addressing Wireless devices, handheld devices, smart cards,
visitor analysis. These application servers do not and so forth.
use log files (since they gather the information In the not too distant future, the Web will be
on-line from your static or dynamic Web pages) everywhere; and by everywhere we mean not
and thus do not require programming resources only in all our electronic devices, but everywhere
on your side. in the world. It has been said that the Net brutally
Finally, to be most effective in the long run, punishes latecomers. [Sawhney, 2000], so it is
an organization must get totally immersed in essential to start planning the internationaliza-
foreign and Web related matters. One can join tion and localization of e-commerce now. Also
global organizations like The Global Trading remember the Web is a two way street; foreign
Web Organization (www.commerceone,com), corporations will be coming after your custom-
subscribe to international trade newsletters (www. ers soon!
newsletteraccess.com/subject/intetrade.htm), and


Project Management and Web Software Engineering

sEcurITy IN WEB applIcaTIoN Advances in data mining techniques mean


dEvElopmENT that huge amounts of data can be analyzed
in many ways;
With more powerful tools comes the potential for Advances in data networking mean that the
greater benefits including productivity increases, cost and time of moving and accessing data
better cost/performance, and improved quality. has become very low, and that computers
However that power also brings a higher cost both inside and outside of an organization
and damage potential when the tool is misused are increasingly connected.
either accidentally or intentionally. Information
technology is such a powerful tool, and that As a result of these advances which facilitate
power in terms of computational speed is still IT misuse, computer security incidents are grow-
doubling about every 18 months. Many other IT ing rapidly. The number of domestic US computer
advances are also facilitating the possible misuse security incidents published by the CERT Coordi-
of IT including: nation Center at Carnegie Mellon University has
increased dramatically in recent years as shown
Price for computational resources has in Figure 25. The number of these incidents has
dropped so low that even the smallest of increased so much that CERT is no longer keep-
organizations and countries can obtain ing detail information thereon.
massive power; These are just the security incidents that have
Advances in data storage technology mean been reported. Since IT is so prevalent in all the
that huge amounts of data can be stored products and services that organizations offer
cheaply;

Figure 25. Reported security incidents (Brandon, 2006)


160000

140000 137529

120000
reported Incidents

100000

80000

60000

40000

21756
20000

2340 3734
6 406
0
1988 1991 1994 1998 2000 2003


Project Management and Web Software Engineering

today and so prevalent in everything we do as coNclusIoN


individuals, the impact of these security problems
is also quickly increasing. This problem could In this chapter we have discussed the key issues
become enormous in the years ahead, and security involved with project management for develop-
breaches such as Trojan horses and back doors ing Web applications. These included the fact
may already be in place within key software used that there are typically many more stakehold-
by corporations and governments. ers involved with a Web application and these
Security concerns are more prevalent in Web stakeholders may be globally dispersed; Web
applications since the end users of the software are applications generally manage content and not
typically outside as well as inside the corporate just data; Web applications need to be deployed
virtual perimeter (LANs and VPNs). Traditional much quicker that traditional IT applications and
applications have a number of security holes such they need to be engineered for more flexibility and
as buffer overflows, however Web applications adaptability in terms of changing requirements,
have those holes and even more areas for security changing content, changing presentation, mass
problems particularly with cookies and server user customization; and the potential for security
side processing of client get or put data (in- problems are more prevalent in Web applications
cluding inadequate validation and parsing), SQL since the end users are outside as well as inside
injections, magic quotes, variables inside of the corporate virtual perimeter.
includes and requires, etc.).
The security issue in IT project management
is two fold: fuTurE rEsEarcH

Being able to shield the project work, project There is both an opportunity and a need for more
team, and other resources from security detailed and diverse research into many of these
threats; Web application project management issues, es-
Being able to build adequate security pro- pecially those involving security. Being able to
tection into the product that is the subject run projects and build Web-based systems that
of the project. are impervious to both internal and external
security threats will become vital to the suc-
Security aspects should not be ignored in HR cess of organizations and survival of free world
planning, and procedures such as background governments.
checks for all personnel (employees, contractors,
consultants, etc.) involved with a project are be-
coming more appropriate. It is no longer sufficient rEfErENcEs
simply to secure the perimeter physically and
logically, but active security procedures need to Apicello, Mario (2000). Multilizer for Java pow-
be implemented for those objects already inside ers your apps to travel the Globe. Infoworld,
of the perimeter. Figure 26 shows the types of January.
issues that should be addressed in a simple project
security plan. Axtell, Rodger (1993). Dos and Taboos Around
the World, John Wiley & Sons.
Bauer, F. (1972). Software Engineering. Informa-
tion Processing , 71.


Project Management and Web Software Engineering

Figure 26. Project security plan (Brandon, 2006)

IT Project Security Plan

Personnel (employees, vendors, contractors, users )


Work History Verification
Background/Criminal Check
Credit History Check
Security Training
Security Clearance
Access Control
Log On (User Name & PW)
Access Privileges
Encryption
Access Logs
Review of Access Logs
Backup
Incremental
Full
Recovery Testing
Physical
Buildings
Work Areas
Central IT Facilities (servers, hubs, routers, firewalls )
Software
Code Security Walkthrough
Trojan/Backdoor Scans
Intrusion Prevention Software
Code Randomization
Intrusion Prevention and Testing (Access, Session, Cookie, Buffer, XSS, Post/Get, SQL Injection, )
Change Security Review

Beck, K. (1999). Extreme programming explained: Boyatzis, R. (1982). The competent manager: A
Embrace change. Harlow: Addison-Wesley. model for effective performance. Wiley.

Bowen, B. (1997). Software Reuse with Java Brandon, Daniel (2002). Issues in the globaliza-
Technology: Finding the Holy Grail. Retrieved tion of electronic commerce. In V. K. Murthy
on from www.javasoft.com/features/1997/may/ and N. Shi (Eds.) Architectural issues of Web-
reuse.html enabled electronic business. Hershey, PA: Idea
Group Publishing.


Project Management and Web Software Engineering

Brandon, Daniel (2006). Project management Highsmith, J. (2000). Adaptive software develop-
for modern information systems. Hershey PA: ment. Dorset House.
Idea Group Publishing .
Holzschlag, M. (2000). Color my world. WebT-
Cleland, D. (1998). Stakeholder management. In echniques, September.
J. Pinto. (Ed.) Project management handbook.
Jacobson, I. et al. (1999). The unified software
Wiley.
development process. Addison-Wesley Profes-
Cockburn, A. (2001). Agile software development. sional.
Addison-Wesley.
Klee, K. (2001). Going global: Out ten tests can
Crawford, L. (2004). Global body of project help You Get Started. Forbes Small Business,
management knowledge and standards. In Morris March.
and Pinto (Eds.) The Wiley guide to managing
Korper, Steffano, & Ellis (2000). The E-commerce
projects. John Wiley & Sons.
book: Building the E-empire. Academic Press.
Davis, M., & Smith , H., (1999). The Java In-
Kruchten, P. (1998). The rational unified process.
ternational API: Beyond JDK 1.1. Java Report,
Addison-Wesley.
February.
Morris, P. (2001). Updating the project manage-
Disabatino, J. (2000). Web site globalization.
ment bodies of knowledge. Project Management
ComputerWorld, July.
Journal, September.
Eisenberg, R. (2004). Service-oriented architec-
Morrison, T. (1997). Dun & Bradstreets Guide to
ture: The future is now. Intelligent Enterprise,
doing business around the world. Prentice Hall.
April 17.
Morrison, T. (2000). Kiss, bow, or shake hands:
Fernandes, T. (1995). Global interface design.
How to do business in 60 countries. Adams
Academic Press.
Media.
Ferranti, M. (1999). From global to local. Info-
Moschella, D. (2000). Ten key IT challenges for
world, October.
the next 20 years. Computerworld, December.
Ferranti, M. (2000). Globalization tidal wave.
Neuman, C. (2000). Considering the color-blind.
Infoworld, November.
Webtechniques, August.
Giebel, T. (1999). Globalize your Web site. PC
Palmer, S., &Felsing, J. (2002). A practical guide
Magazine, November.
to feature-driven development. Prentice Hall.
Grossman, W. (2000). Go Global. Smart Busi-
Patten, B. & Grandlienard, G. (1999). Using re-
ness, October
source bundles to international text. Java Report,
Grossman, W. (2000). The outsiders. Smart Busi- February.
ness, July.
Perrotta, T/ (2000). Yahoo ruling exposes risks
Hall, M. (2003). The Web services tsunami. of being global. InternetWorld, July.
Computerworld, May 19.
Peterson, C. (2000). Accessible Web sites matter.
Hickman, N. (1998). Internationalizing your Web Enterprise Development, June.
site. WebTechniques, March.

0
Project Management and Web Software Engineering

PMI (2000), The project management body of Standish Group (2004). Chaos chronicles. Re-
knowledge (PMBOK), Project Management trieved on www.standisgroup.com
Institute.
Stapleton, J. (1997). DSDM dynamic systems
Reed, S. (2000). Want to limit the audience for development method. Addison-Wesley.
you Web site? Keep it English only. Infoworld,
Tapper, S. (2000). Is globalization right for you.
August.
WebTechniques, September
Robb, D. (2000). Act globally, serve locally. In-
Uniscape Corporation (2000). Global content
formation Week, July.
manager.
Royce, W. (1970). Managing the development
Whiting, R. (2000). U.S. companies to comply
of large software systems. In Proceedings of
with European privacy rules. Information Week,
the IEEE WESTCON, Los Angeles CA, IEEE
February.
Computer Society.
Williams, L., & Kessler, R. (2000). Strengthening
Sawhney, Mohanbir, & Sumant Mandai (2000).
the case for pair programming. IEEE Software,
Go global. Business, May.
17(4), 19-25
Schwaber, K., & Beedle, M. (2001), Agile software
Winch, G. (2004). Managing project stakeholders.
development with schrum. Prentice Hall.
In Morris and Pinto (Eds.). The Wiley guide to
Schwartz, H. (2000). Going global. WebTech- managing projects. John Wiley & Sons.
niques, September.
Yunker, J. (2000). Speaking in charsets. WebT-
Squier, J., & Nielsen, J. (2000). Deconstruct- echniques, September.
ingHojo.com. Internet World, June.




Chapter XVI
Resources on Web-Centric
Computing
Margaret Menzin
Simmons College, USA

aBsTracT

This chapter consists of a comprehensive bibliography of web engineering resources. Since this list will
constantly be changing, the author provides a web site for a current and more comprehensive listing:
(URL=http://web.simmons.edu/~menzin/WebCentricResources.html) This print version of this resource
shows the URLs in printed form, generally in the format as (URL=). Be sure to check the General
Tools section, in addition to the sections for specific topics.

GENEral rEsourcEs They are the source of definitive documen-


(for maNy WEB TopIcs) tation on many subjects, and have a few
primers. Generally it is better to learn a
organizations little about a topic before you dig into the
documentation.
World Wide Web Consortium (w3c) OASIS (URL='http://www.oasis-open.
(URL='http://www.w3c.org'). The w3c org/committees/tc_cat.php?cat=ws') de-
develops most of the standards for the web. velops most of the other standards, along
with ECMA (URL='http://www.ecma-in-

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Resources on Web-Centric Computing

Certain sites recur frequently: they provide information on multiple topics, and often at multiple levels.
This table summarizes those sites and is always a good place to start.. Please note that there are also
many sites which are useful for only one or two categories (e.g. CSS or Web Services) and which are
listed under those topics. Further, even for the general sites, the topical sections often have links to
more specific useful resources.
Site Comments XHTML CSS Java- CGI Perl PHP XML Web Web2.0
Script Services
w3c Documentation Doc N-I Doc Doc Doc Doc
for most technolo- Doc
gies; hard to use
unless you know
something
About Hard to find with N N N N
search
w3schools Superb tutorials; N-I N-I N-I N-I N-I Ajax
handy references Ref Ref Ref
well organized
Tizag Similar to above N N N-I N-I N-I N
tho often less Ref Ref
detailed; SQL tuto- Scr
rial too
U Minn. Duluth Superbly organized Link by Link Link Link Link
links;Accessibility search
info too.
Earthweb Family of sites
*HTMLGoodies N; Ref N N N N
*JavaScripts Scr
*Developer I-A; I-A; I-A; I-A; I-A I-A I-A; Scr
Scr Scr Scr Scr
*Gamelan I-A I-A
*WebReference Java A: I-A; I-A; I-A; I-A;
interfaces Link Link Link Link Link
Advanced articles
WebDeveloper Links to N-I-E Link Link Link Link Link Link
articles
HotScripts Many advanced Scr Scr Scr Scr Scr
- topics too
Web Developers Clear, but some N-I N-I N-I N N; N; N-I-E;
Virtual Library older Link Link Link
DevShed I-E; Scr A; Scr A;Scr A A A
IBM Wonderful articles I-A I-A I-A I-A I-A I-A I-A I-A I-A
developerWorks if you have a spe-
cific topic
Menzin Links at Longer web page Link Link Link Link Link Link Link Link Link
Simmons College version of these
references

Legend:
N, I and A: has Novice, Intermediate and Advanced articles and tutorials
Doc: has documentation on topic
Ref: has reference charts on syntax
Link: links to other articles and tutorials and books
Scr: has sample scripts and downloadable code


Resources on Web-Centric Computing

ternational.org/'), ACM (URL='http://acm. Ear thWeb ( U R L='ht t p://w w w.ht ml-


org'), and ISO (URL='http://standards.iso. goodies.com/introduction/about/article.
org/ittf/PubliclyAvailableStandards/'). php/3504566') is a useful family of sites
Articles and Tutorials on Many Subjects, covering all areas of web-centric computing;
starting with more elementary ones primers, tutorials, and newsletters ranging
(URL=http://www.w3schools.com/brows- from elementary (e.g. HTML Goodies) to
ers/browsers_stats.asp). But beware that intermediate; all well-written, but some are
Netscape and Mozilla may be confounded; dated.
See also (URL=http://www.w3schools. Includes WebReference: (URL="http://
com/browsers/browsers_mozilla.asp) www.webreference.com/scripts/") for
Mozilla TIOBE Community Bulletin Board HTML, RSS, Perl etc. and also Developer.
(URL=http://www.tiobe.com/tpci.htm) com (URL='http://www.developer.com/
lists frequency of queries about various lang/') with very current technical articles
languages including web-centric ones. on all the web-centric technologies.
w3schools (URL="http://www.w3schools. HotScripts (URL="http://www.hotscripts.
com/default.asp") has on-line tutorials for com/") for articles on scripts for many
many subjects - including CSS, XML, etc. languages and technologies - Perl, PHP,
Usually a very clear survey of the issues, Python, JavaScript, XML. Well organized,
features, and syntax. Read before you get for example, click on PHP, then books and
into the grubby details for an excellent you are led to short paragraphs describing
overview. over 60 PHP books.
Tizag (URL='http://www.tizag.com/') for Web Develope r's Vi r t u al Libr a r y
elementary tutorials. Usually w3schools (URL="http://www.wdvl.com/") has tuto-
goes farther, but Tizag covers a few topics rials on authoring, including intermediate
that w3schools miss. level ones; JavaScript, CSS, XML, etc.
U. of Minnesota - Duluth organizes every- DDJ (URL="http://www.ddj.com/curren-
thing (URL='http://www.d.umn.edu/itss/ tIssuePage.html"). Dr. Dobbs Journal has
support/Training/Online/webdesign'). This links on many programming languages and
well-organized site has tutorials on CSS, platforms ; also news.
JavaScript, XML, PHP, Usability and Acces- ASPN (URL="http://aspn.activestate.com/
sibility. Tools for every topic, outstanding ASPN/"). is a resource for programmers in
collection of resources; but no description Perl, PHP, Python, etc. in which Active State
of level of articles. offers open source languages and tools. The
DevPapers (URL='http://www.devpapers. Newsfeeds tab links to RSS feeds from many
com'), and About.com (URL='http://web- tech news sources.
design.about.com/') have many clear prim- Major site. The Experts (URL="http://
ers and introductory articles on XHTML, www.webreference.com/experts/") links to
CSS, Perl, etc. Unfortunately hard to find Dmitry's Design lab (a favorite), articles on
information from previous newsletters. XML, DHTML
WebDeveloper.com (URL="http://www. A List Apart (URL="http://www.alistapart.
webdeveloper.com/") for articles (some cur- com/topics/code") ALA. Mainly articles
rent, some dated; mostly intermediate) and on CSS code, but also some on JavaScript,
forums to ask about Java, HTML, XHTML, XML, layout and web site design; oriented
JavaScript, Perl, CGI etc. to graphic designers.


Resources on Web-Centric Computing

more advanced resources Zvon (URL='http://zvon.org/Output/bar_


list.html'), sidebars for developers working
Mozilla's Developer Center (URL="http:// with Mozilla and Opera browsers; tutorials
developer.mozilla.org/en/docs/DevEdge") on CSS, XML and extensions
links to articles and reference mate-
rial on every topic, from the main page fTp utilities and puTTy
(URL="http://developer.mozilla.org/en/
docs/Main_Page") in web programming CoreFTPLite (URL="http://www.coreftp.
and then some. com/") is my favorite free FTP client; sup-
Alphaworks from IBM (URL='http://www. ports both FTP and SFTP/SSH' easy to use
alphaworks.ibm.com/') has articles on many and robust. Best of all, if you find a typo
cutting edge technologies; clear but not after you've uploaded a file you may use
novice. CoreFTP to edit it on the server.
DeveloperWorks (URL='http://www-128. About choosing an FTP utility (URL="http://
ibm.com/developerworks') but also excel- www.htmlgoodies.com/letters/292.html"),
lent articles on emerging standards and Setting up your FTP utility (URL="http://
technologies. www.htmlgoodies.com/letters/292.html")
Amaya Home Page (URL="http://www. or
w3.org/Amaya/") editor which includes Filezilla (URL="http://sourceforge.net/proj-
extensions to MathML; Amaya is a w3c. ects/filezilla/")
org tool for editing on the web. Free FTP and SFTP (Secure FTP) utility
Apache (URL="http://www.apache.org/") is (from Source Forge)
a very large, major open source organiza- CyberDuck (UR L="htt p://icu.unizh.
tion with many projects. Apache is a web ch/%7Edkocher/cyberduck/"), Free FTP and
server; there are links to Xerces, Apache's SFTP utility- this one for Macs
XML editing tool, other XML projects, and Fugu (URL="http://rsug.itd.umich.edu/
many other projects and products. software/fugu/"), SFTP for Macs with a
Source Forge (URL="http://sourceforge. graphical front-end
net/docs/about"). Another large source for ZDNet (URL='http://downloads.zdnet.
open source projects; you need to know what com/search.aspx?kw=FTP'), FTP clients,
you are looking for. many with reviews. You may set the filter
Sun Microsystems (URL="http://develop- to 'free'
ers.sun.com/sitemap.jsp?requrl=/") Sun's PuTTY is a free implementation of Telnet
developer site - information on Java, Web for Windows and Unix systems. It may be
Services, etc. downloaded at http://www.chiark.greenend.
DevEdge (URL="http://devedge-temp. org.uk/~sgtatham/putty/ (Homepage for
mozilla.org/toolbox/sidebars/").Sidebars PuTTY) or http://www.softpedia.com/get/
for HTML, CSS, JavaScript etc. you may Network-Tools/Telnet-SSH-Clients/PuTTY.
install in Firefox and Netscape 7+ for heavy shtml. Easy installation instructions are at
duty developers. DevEdge was a wonderful http://www.wnec.edu/~snarmont/putty/ and
site, now archived here. The sidebar tabs the user manual is at http://www.tartarus.
are professional tools for developers. For org/~simon/puttydoc/index.html.
example, there are sidebars for JavaScript,
CSS, DOM and XSLT.


Resources on Web-Centric Computing

uNIx/lINux IEEE (URL="http://www.ieee.org/web/


aboutus/newsroom.html"). This site has
A few reminders in case you need to brush more news about the IEEE than about tech-
upwhile you are on a UNIX/LINUX nology. Local societies and local computer
machine: man commandName gives the societies also frequently have newsletters.
manual's sections on that command. ZDNet (URL="http://reviews-zdnet.com.
(URL="http://webreference.com/program- com/"). Reviews of software, hardware and
ming/unix/") the basic but goes to more tech toys; a good place to find free utilities
topics; great resource (e.g. for FTP) as well as to comparison shop
(URL="http://wks.uts.ohio-state.edu/sys- for new computers, digital cameras, etc.
adm_course/html/sysadm-1.html") for CNET Tech News (URL="http://news.
systems admin a very detailed course. com.com/2001-1_3-0.html"), TechWeb
There are many LINUX (URL="http:// (URL="http://www.techweb.com/")
groups.google.com/groups?hl=en&lr= Tech News World (URL="http://www.
&group=linux") (and UNIX) groups on technewsworld.com/")
Google. SlashDot (URL="http://slashdot.org/")
The following tutorials are all very, very Wired.com (URL="http://www.wired.com/
basic: technology.html")
( U R L =" ht t p:// b a bb a ge.cl a r k u .e d u / The following sites offer newsletters geared
%7Eachou/UnixPrimer/") University to web-centric computing:
(URL="http://www.bridgewater.edu/cescc/ Eweek (URL='http://www.eweek.com/ar-
acadcomp/UnixPrimer.htm") Unix Primer ticle2/0,1895,1736489,00.asp')
from Bridgewater College Informit (URL='http://www.informit.
(URL="http://webreference.com/pro- com')
gramming/unix/") the basic but goes to InfoWorld (URL='http://www.infoworld.
more topics great resource Linux Links com')
(URL="http://www.linuxlinks.com/Begin- ComputerWorld (URL='http://www.com-
ners/") puterworld.com')
Includes a place for newbies, but most of the Builder.com (URL="http://builder.com.
searches link to books at Amazon. BigNo- com/5173-6389-0.html")
seBird Tutorial on vi (URL="http://www.
bignosebird.com/docs/vi.shtml") HTml and xHTml
(URL="http://www.webmonkey.com/web-
monkey/reference/unix_guide/") from Web XHTML/HTML
Monkey has two dozen of the most frequently
used commands. HTML and XHTML: The Definitive Guide
6th Edition by Chuck Musciano & Bill Ken-
Tech News sources nedy, published by O'Reilly 2006. Clear,
with plenty of examples; read a short tutorial
ACM (URL="http://technews.acm.org/cur- first, then use this for more detail and as a
rent.cfm") for current news; you should also reference.
get their newsletter with weekly updates. If HTML & XHTML: The Complete Reference
you are a student, you should join; student 4th Edition by Thomas A. Powell, published
memberships are a bargain. by Osborne 2003. Excellent both to learn


Resources on Web-Centric Computing

from and as a reference; includes CSS1 and You can also find the (URL='http://www.
CSS2 and how to link with Java applets. w3.org/TR/html4/interact/forms.html')
HTML, XHTML, and CSS Bible (Bible) forms specifications here (URL="http://
3rd Edition by Bryan Pfaffenberger, Bill www.w3.org/TR /1999/R EC-html401-
Karow, Chuck White, and Steven M. Schafer 19991224/index/elements.html") elements
published by Wiley, 2004. The 'Bible' refer- from w3c.org
ence books are usually the most complete (URL="http://www.w3.org/TR/1999/REC-
and usually invaluable tables of special html401-19991224/index/attributes.html")
characters (accented letters, apostrophes, attributes from w3c.org Includes information
etc.) on what is deprecated.
About.com (URL="http://webdesign.about. IDocs References on HTML (URL='http://
com/library/bl_htmlcodes.htm") helpguide.inmotionhosting.com/html_
w3schools (URL='http://www.w3schools. faq/')
com/tags/ref_entities.asp') Modularization of XHTML; further articles
w3c.org (UR L="ht t p://w w w.w3.org / are in the More Advanced Articles section.
TR/1999/REC-html401-19991224/sgml/en- (URL=http://www.w3.org/TR/xhtml11/)
tities.html") which includes mathematical includes information on changes from
characters, tables of XHTML (and HTML4) XHTML1.0
tags, elements and attributes. (URL="http://www.w3.org/TR/xhtml-ba-
Complete documentation on X HT- sic/") documentation from w3c; XHTML
ML (URL='http://www.w3.org/MarkUp/ Basic is a minimal subset for 'small user
#recommendations') agents' (cell phones, smart watches, TV's).
w3schools table of all XHTML and HTML H T M L Work i ng G roup Roa d m ap
tags, attributes, colors, etc.; (URL='http:// (URL="http://www.w3.org/MarkUp/xhtml-
www.w3schools.com/xhtml/default.asp') roadmap/"), what modules and versions will
(URL='http://www.devguru.com/Technolo- be coming your way and when
gies/xhtml/quickref/xhtml_index.html') ref-
erence on all XHTML tags from DevGuru. Other XHTML Documentation
com. Very easy to use and helpful, but doesn't
warn you about usage dropped in going from (URL="http://www.w3.org/TR/xhtml1/
transitional to strict Doctype. #guidelines") HyperText Markup Language
(URL="http://webdesign.about.com/cs/ht- (Second Edition).
mltags/a/bl_index.htm") Library - HTML Making sure your XHTML is displayed
Tag Library from About.com. Links to properly in (old) HTML browsers; from
summary of tags for HTML/XHTML by w3.org. This article also includes informa-
function (at bottom) and alphabetically (to tion about various DOCTYPEs. Setting the
right of sponsored links box) and links to character set encoding (URL='http://www.
summary of modules (major chunks by w3.org/International/O-charset.html') More
function) for XHTML information on character set encodings is in
The following articles refer to (the older) the Tutorials section.
HTML, but still have some useful informa- The DOM model (URL="http://www.wsab-
tion: HTML 4.01 Specification (URL='http:// stract.com/domref/index.shtml"). The DOM
www.w3.org/TR/html4/') has become very important (e.g. for CSS and


Resources on Web-Centric Computing

AJAX). Tutorials and Articles on the DOM default.asp'). The w3schools tutorials are
are listed separately in the JavaScript section. always a good place to begin.
This reference is from the JavaScript Kit. (URL="http://webdesign.about.com/li-
brary/nosearch/bl_xclass1-1.htm") tutorials
Tutorials and articles for HTml and from About .com. You can also change the
xHTml 1-1 in the URL to 2-1, 3-1, etc. to step thru
the tutorials You can also have it emailed to
The links below are tutorials on HTML and you as a course: (URL="http://webdesign.
articles on why you should move to XHTML. about.com/c/ec/9.htm").
Although you should be writing XHTML, rather XHTML 101 - Free XHTML Course These
than HTML, a complete novice might find it are a good but basic introduction to XHTML
easier to start with HTML. These tutorials are (URL="http://www.wdvl.com/Authoring/
particularly clear. Languages/XML/XHTML/") XHTML,
with eXamples.
Introduction to HTML (URL="http://www. Tutorials from w3c.org. (URL='http://www.
w3.org/TR/html401/intro/intro.html") w3.org/MarkUp/#tutorials') includes links
Dave Ragett's Tutorials on HTML to some advanced tutorials. Articles on
( U R L='ht t p://w w w.w3.org / Ma rkUp/ Fontsplease also refer to the sections on
Guide/'). Even though you should start Site Design and Browsers
with XHTML, this is such a clear, concise (URL="http://builder.com.com/5100-6371_
tutorial it's a classic. There are also links 14-5210803.html?tag=sc") using ems and
to his (URL='http://www.w3.org/MarkUp/ percents for font sizing, pitfalls of relative
Guide/Advanced.html') advanced tutorial, sizing for fonts
his tutorial on CSS,and his style guide (URL="http://builder.com.com/5100-6371_
(URL='http://www.w3.org/MarkUp/Guide/ 14-5215705.html?tag=sc") answer for font
Style.html'). sizing? Keywords work better than absolute
HTMLTidy (URL='http://www.w3.org/ or relative sizes for fonts
People/Raggett/tidy/') (URL="http://webdesign.about.com/od/
HTML Tutorial from EchoEcho.com fonts/a/aa080204.htm") Decide Which Font
(URL='http://www.echoecho.com/html. Family to Use Serif, Sans-Serif, Mono-
htm'). Another clear HTML tutorial; has space, Script, Fantasy Fonts (URL="http://
some more advanced features - e.g. meta www.w3.org/TR/REC-CSS2/fonts.html").
tags refresh, etc. The navigation is so clear w3c's definitions of the font characteristics
that you can quickly zoom to any details you may specify, and how to do it.
you need. Unordered lists (URL=http://www.de-
Why switch to XHTML? (URL='http://www. velopershome.com/wap/wcss/wcss_tuto-
webreference.com/authoring/xhtml/') rial.asp?page=listProperties). Beginning
Transition from HTML to XHTML with XHTML1.0 strict this must be done
From About.com, (URL="http://build- through styling. This also works on mobile
er.com.com /510 0 - 6371_14 -5237333. devices.
html?tag=e606") switch to XHTML from Ordered lists (URL='http://www.devel-
Builder.com. opershome.com/wap/wcss/wcss_tutorial.
XHTML Tutorial from w3schools.com asp?page=listProperties2'). Beginning with
(URL='http://www.w3schools.com/xhtml/ XHTML1.0 strict this must be done through


Resources on Web-Centric Computing

styling. This also works on mobile devices. forms, post and Getsee also
The starting point of the numbering/lettering section on cGI
may also be specified (URL='http://www.
w3schools.com/tags/tag_ol.asp') A usability checklist for forms (URL='http://
Guidelines for formatting lists (URL='http:// www.alistapart.com/articles/sensible-
webdesig n.about.com /od /w r iting /ss/ forms'), eExcellent article
aa110705.htm') (URL="http://www.wdvl.com/Authoring/
(URL="http://webdesign.about.com/li- Scripting/WebWare/Server/") Server-side
brary/weekly/aa061801a.htm") Attributes Scripting, an excellent introduction to what
and XML Introduction. CGI is and why it's needed.WDVL: Web
The span and div Tags (URL='http://web- Programming: GET, POST, etc.
design.about.com/od/htmltags/a/aa011000a. (URL='http://www.wdvl.com/Author-
htm'), Clear summary of the similarities ing/Scripting/Tutorial/toc.html'), The 'Day
and differences and how to use div appro- One'pages provide a particularly clear
priately. description of GET, POST, (when to use
What's in a Title (URL="http://webdesign. which), HTTP headers and forms.
about.com/library/weekly/aa060801a.htm"), (URL="http://www.wdvl.com/Authoring/
what the title tag does for you and how to JavaScript/Begin/begin1-4.html") on forms.
find it. The focus() and blur() methods
(URL="http://developer.mozilla.org/en/ Checkboxes vs. Radio Buttons (URL='http://
docs/Properly_Using_CSS_and_JavaS- www.useit.com/alertbox/20040927.html')
cript_in_XHTML_Documents#Using_ From Jakob Nielsen, the great guru on
CSS_rules_in_external_file") using CSS usability, the Disabled attribute in forms
and Scripts with XHTML - please also see (URL='http://webdesign.about.com/od/
section below on CSS. forms/a/aa071805.htm?nl=1'). This allows
From Mozilla; with examples (URL="http:// you to fill in a field and prevent the user
developer.mozilla.org/en/docs/Properly_ from changing it
Using_CSS_and_JavaScript_in_XHTML_ HTML Forms from w3c.org (URL='http://
Documents:Examples") www.w3.org/TR/html4/interact/forms.
(URL="http://webdesign.about.com/li- html'). Includes some advanced methods -
brary/weekly/aa041000a.htm") For valuator, e.g. fieldset for grouping related elements and
please also see section below on HTMLTi- control elements; additions to (URL='http://
dy www.w3.org/TR/xhtml-modularization/
(URL="http://webdesign.about.com/cs/ abstract_modules.html#s_forms') forms
doctype/a/aaquirksmode.htm?nl=1"), Us- in XHTML are also available in the forms
ing the DOCTYPE Tag and why you need module.
the DOCTYPE. Information on DOM and ( U R L='ht t p://w w w.w3.org / Ma rkUp/
DHTML is at DOM - advanced articles on Forms/2003/xforms-for-html-authors.
JavaScript. Attributes for the Image tag and html'), the w3c.org explains how to convert
checklist for your web page Forms to Xforms
(URL='http://webdesign.about.com/od/au- (URL='http://www.htmlgoodies.com/in-
thoring/a/aa111698.htm') Good checklist on troduction/newsletter_archive/goodiestogo/
everything from correct spelling to making article.php/3573771'). Scripts to send form
sure your image files are small enough to data by email, if you don't want to use the
download rapidly (12Kb) preferred CGI script.


Resources on Web-Centric Computing

more advanced articles under the aegis of Source Forge, the huge open
source organization. It will also turn HTML into
(URL="http://webdesign.about.com/li- XHTML, but it is obviously better to start with
brary/weekly/aa071502a.htm") with Excel XHTML.
How to set up your web page so that it
may be downloaded into Excel HTML tidy service (URL="http://cgi.
(UR L="http://www-128.ibm.com /de- w3.org/cgi-bin/tidy"). HTML Tidy on-line
veloperworks/xml/library/x-futhtml2. (interactive). Fast and easy to use. You don't
html?ca=dgr-lnxw03XHTML2") eventu- need to learn all the details of HTML Tidy to
ally: XHTML2.0, what to expect use this page. Also both file upload or URL
(URL="http://webdesign.about.com/li- versions (URL='http://validator.w3.org/').
brary/weekly/aa041601a.htm") of XHTML. General information about HTMLTidy and
Good introduction to modularization of its capabilities (URL='http://www.w3.org/
XHTML for XHTML, Also discusses the People/Raggett/tidy/'). Although this page
Transitional, Strict, and Frameset subsets describes itself as 'somewhat dated', it has
of XHTML a lot of excellent information as well as a
(URL='http://www.w3.org/TR/xhtml- Link to Source Forge and current versions
modularization/Overview.html#toc') of all of HTML Tidy.
the modules in XHTML 1.1. HTML Tidy Project Page (URL="http://tidy.
Should you abandon table-based layouts sourceforge.net/"). The actual HTML Tidy
in favor of CSS? (URL='http://www. programs, which you may download if you
elijournals.com/premier/showArticle. wish to 'Tidy' your pages off-line. Also
asp?aid=21661&utm_source=etip&utm_ (URL="http://tidy.sourceforge.net/docs/faq.
medium=email&utm_content=Should'). html"), questions and answers
Yes- almost always! And this articles ex- (URL="http://tidy.sourceforge.net/docs/
plains why. quickref.html") Options Quick Reference.
The document character set (Unicode) Options you may set for HTML Tidy at
(URL='http://www.w3.org/International/O- SourceForge. This is a huge site, with a
charset.en.php'). library of Tidy that you can call in various
What are charsets all about? (URL='http:// languages, and tools for version manage-
www.w3.org/International/questions/qa- ment. Explains how to download your own
doc-charset') copy of HTML Tidy and set the options
(URL='http://www.w3.org/International/ (URL="http://www.w3.org/TR/xhtml1/
tutorials/tutorial-char-enc/') How do I use #guidelines") HyperText Markup Language
them - a tutorial. (Second Edition) How to write HTML
which is XHTML compatible so there is
links and resources for HTml and less to 'Tidy' up. There are other valuators
xHTml(validators, HTml Tidy, and (URL="http://www.htmlvalidator.com/php/
the connections between HTml and onlinecheck.php?google=online+html+che
xHTml) cker") HTML Validator Online Check
On-line HTML Validator, here is a free
HTML Tidy is the standard for XHTML valida- simple validator (URL='http://www.html-
tion. Originally developed at the w3c, it is now validator.com/lite/')

00
Resources on Web-Centric Computing

Mozilla's DevEdge (URL='http://devedge- (URL='http://downloads.zdnet.com/search.


temp.mozilla.org/toolbox/tools-valida- aspx?kw=XHTML+editor') ZDNet's Down-
tion/') load site is another source of editors. Some
HTML Kit (URL="http://www.chami.com/ reviews. Editors range from free to expen-
html-kit/"), customizable HTML editor with sive. Many have free trial or less fancy free
HTML Tidy and beyond for validation; free version. Check ZDNet's general download
for personal use. site (URL='http://downloads.zdnet.com/')
Validator advice and common 'gotchas' SourceForge, the huge open source software
(URL='http://www.alistapart.com/articles/ foundation (URL='http://sourceforge.net/
betterliving/'), from AListApart softwaremap/trove_list.php?form_cat=63').
Advice on validation and links to validators also maintains a list of editor projects (in-
(URL='http://webtips.dan.info/validators. cluding editors for other languages.) Of
html'), many useful links; explanation of course, everything is free, but the site is
linters vs validators. overwhelming.
HyperText Builder 2006 (URL='http://www.
xHTml Editors paksoft-productions.com/hb/hb1.asp'). Ear-
lier versions of this freeware editor were
Lin ks to 14 f ree X HTML editors highly reviewed. Includes tools for develop-
(URL='http://webdesign.about.com/od/ht- ing server-side PHP scripts
mleditors/tp/aatp_frehtedwin.htm'). Brief
description of each editor. link checkers
Large parts of this page were composed on
Evrsoft's excellent (URL='http://webdesign. Link Valet (URL='http://www.htmlhelp.
about.com/gi/dynamic/offsite.htm?zi=1/ com/tools/valet/'). Free and easy to use.
XJ&sdn=webdesign&zu=http%3A%2F% Color coded report makes it easy to find
2Fwww.evrsoft.com%2F1stpage2.shtml') broken links, although some fancy 'error
NoteTab Lite (URL='http://webdesign.about. pages' don't get picked up as broken.
com/gi/dynamic/offsite.htm?zi=1/XJ&sdn= w3c link checker (URL='http://validator.
webdesign&zu=http%3A%2F%2Fwww. w3.org/checklink').
notetab.com%2Fntl.php') ZDNet (URL=http://downloads.zdnet.
Amaya is the w3c's browser/editor com/search.aspx?kw=link+checker). List
(URL='http://www.w3.org/Amaya/') is updated and includes prices, release date,
(URL="http://webdesign.about.com/od/ and some reviews.
editors/index.htm") for Web Development
editors, image map tools, etc. Browsers Including Issues on
Reviews of some. WYSISYG Editors standards compliance
(URL='http://webdesign.about.com/od/ht-
mleditors/tp/aatpwyswindows.htm'). The Because browsers vary in their support of stan-
list includes the usual commercial products dards, it is important to test on all browsers in
- Dreamweaver, Adobe, etc. and links to common use and know where you may get into
them trouble.
More links on editors (URL='http://webde-
sign.about.com/od/editors/index.htm') Why standards are important (URL='http://
karlcore.com/articles/article.php?id=9') and

0
Resources on Web-Centric Computing

(URL="http://www.internetnews.com/dev- Major browsers (URL='http://css.nu/point-


news/article.php/3422651"). ers/tools.html'), and their bugs (URL='http://
Why you need to design for all browsers css.nu/pointers/bugs.html')
(URL="http://www.w3schools.com/brows- PNG a nd cross-browser problems
ers/browsers_stats.asp") usage (URL='http://www.alistapart.com/articles/
But beware that Netscape and Mozilla may be pngopacity/'). PNG is a graphics format
confounded; See also (URL="http://www. which is not supported in all browsers. This
w3schools.com/browsers/browsers_mozil- article tells you how to work around that.
la.asp") Mozilla. A List Ap a r t a r t icle s on browse r s
Most recent version of Firefox (URL='http:// (URL='http://www.alistapart.com/topics/
www.mozilla.com/firefox/'), with access to code/browsers/'). Many of these articles are
other Mozilla products (URL='http://www. on CSS and site design issues.
mozilla.org/download.html') Design for Firefox first and then IE
Archive of old browsers (URL='http:// (URL='http://webdesign.about.com/od/in-
browsers.evolt.org/'). This is really a one- ternetexplorer/a/aa082906.htm'), to make
stop place and is the easiest way to find old pages look good in both browsers. Don't tell
versions of Firefox. (URL='http://browsers. them what browser to use (URL='http://web-
evolt.org/?mozilla/firefox'). Also has Bobby design.about.com/od/browsers/a/aa041006.
(for low vision viewers) htm?nl=1') and use the standards!
Safari (URL='http://browsers.evolt.org/
?safari/') other xHTml links and resources
Of course, all versions of IE (URL='http://
browsers.evolt.org/?ie/') The more general resources come before the
SillyDog (URL='http://sillydog.org/nar- specific ones. Please also check the section on
chive/') accessibility rules and tools.
Archive of old (and current) Netscape Navi-
gator browsers for PC's, Macs, Linux, etc. In general www.w3c.org (URL="http://
Current Opera browser (URL='http://www. www.w3c.org/") has all the detailed docu-
opera.com/'). Mobile version of browser mentation, and the sites below have easier
also available here. Netscape archive of its introductions. Still, it's hard to underestimate
browsers. Doctype switch and the differ- the importance of the w3c site for docu-
ence between Quirks and Standard mode mentation, status reports, and even some
(URL=http://gutfeldt.ch/matthias/articles/ tutorials.
doctypeswitch.html). Also has useful table About.com (URL="http://webdesign.about.
(URL=http://gutfeldt.ch/matthias/articles/ com/")
doctypeswitch/table.html) www.w3schools.com (URL="http://www.
Quirks mode for Mozilla browsers w3schools.com/") novice to intermediate
(URL='http://developer.mozilla.org/en/ tutorials
docs/Mozilla%27s_Quirks_Mode'). Clear (URL="http://www.wdvl.com/Authoring/
description of why Quirks mode is needed Scripting/") has excellent introductory to
and how it works intermediate tutorials.
How your page looks in Lynx (URL='http:// WebReference (URL="http://www.we-
www.delorie.com/web/lynxview.html') breference.com/tools/"). Their Experts
(URL="http://www.webreference.com/

0
Resources on Web-Centric Computing

experts/") links, including Dmitry's labs are browser safe, or non-dithering, colors
(URL="http://www.webreference.com/ (URL='http://www.lynda.com/hex! .asp').
dlab/") with great design advice. This is the most famous site for browser
The Mozilla Development Center has a safe colors, which you should always use
variety of HTML tools at http://developer. browser safe colors to avoid dithering. You
mozilla.org/en/docs/Category:HTML:Tools may view the colors arranged by hue or by
(URL="http://developer.mozilla.org/en/ value (similar intensity/impact.)
docs/Category:HTML:Tools") Other pages with browser-safe colors may
Sidebars for developing in Firefox. Web be found at Primeline (URL='http://www.
Developer Extension (URL=http://chris- primeshop.com/html/216colrs.htm') and
pederick.com/work/webdeveloper/) has (URL='http://www.cookwood.com/html4_
a toolbar for Firefox, Flock, etc. Zvon 4e/examples/appendices/colorcharthex.
(URL=http://zvon.org/Output/bar_list. html')
html) Guide on XHTML and CSS. WDVL has a
Also tutorials, including on XML and CSS site on graphics (URL='http://www.wdvl.
(URL="http://www.w3.org/MarkUp/2004/ com/Authoring/Graphics/').Links to free
xhtml-faq") Questions graphics, tools, resources etc. near the bot-
Open Source Web Development - DevShed tom of the page. Also some more advanced
(URL="http://www.devshed.com/"), ar- (URL='http://www.wdvl.com/Graphics/')
ticles on XHTML,CSS, XML, Perl, etc. Tend graphics
to be more advanced and often looking for About.com (URL='http://webdesign.about.
less main-stream effects. com/od/colorcharts/l/bl_colors.htm')
DHTML Scripts and DHTML Tutori Cloford.com (URL='http://cloford.com/re-
als (URL="http://devedge-temp.mozilla. sources/index.htm') country codes.
org/toolbox/tools/2001/tune-up/") Tune- Dmitry's Color Lab (URL='http://www.
Up Wizard, tests pages in Netscape and webreference.com/dlab/9704/index.html'),
Firefox. excellent advice and information about color
and design; several pages
Issues in site and page design Optimizing Web Graphics (URL='http://
color and Graphics www.webreference.com/dev/graphics/in-
dex.html'). A bit dated, but many wonderful
Information on Color and Graphics tools and links, and no one minds a fast
(URL='http://www.bergen.org/AAST/Com- download.
puterAnimation/CompAn_Graphix.html'). Understanding Color and Accessibility
Good explanation of everything you might (URL='http://evolt.org/node/60472') from
want to know about graphics - including bit evolt.org .
depth, dithering, anti-aliasing etc. Color Wheel and color theory (URL='http://
The RGB Monitors (URL='http://www.wdvl. webdesign.about.com/cs/color/a/aacolorthe-
com/Authoring/Graphics/Colour/'), WDVL ory.htm'). Many useful links to tools and
explains how colors are specified in XHTML other resources.
and why. Tools for re-sizing images (URL='http://
The 6x6x6 Color Cube (URL='http://www. dow n loa d s.zd net.com /sea rch.
wdvl.com/Graphics/Colour/666.html'). aspx?kw=image+resizer')
What colors you can specify using that cube Sources of free images and icons

0
Resources on Web-Centric Computing

HTML Writers' Guild (URL='http://www. published by O'Reilly 2005.From author's


hwg.org/resources/?cid=25') buttons, rules, experience designing interfaces for the
etc. Math Works; very sophisticated; will be
Realm Graphics (URL='http://www.ender- most appreciated by tose with a visual deign
design.com/rg/icons.html') sense.
Clip-art.com The Non-Designer's Design Book by Robin
(URL='http://www.free-graphics.com/'), Willams published by Pechpit Press 1994.
Graphic Element samples I like this outstanding book even better
(URL='http://www.lirmm.fr/bib-icons/ than her Non-Designer's Web Book; basic
Stanford/') basic but useful icons principles on layout, mixing fonts etc.
Yahoo 's list of icon collctions- Short and wonderful Web Style Guide:
Always a good place to start Basic Design Principles for Creating Web
Laura McCanna's Free Art Page (URL='http:// Sites; Second Edition by Patrick J. Lynch
www.mccannas.com/free/freeart.htm') and Sarah Horton; Yale University Press
similar feel 2002. Classic guide for graphic designers;
Icon Bazaar (URL='http://www.iconbazaar. also available on- line (see below).
com/')
Index of bullets (URL='http://www.nbcs. The Basics of page layout
rutgers.edu/Images/bullets/').
Free Stuff Center (URL='http://www. Basic ( which is a good place to start)
freestuffcenter.com/sub/cliparttop.html') links at the bottom to other information
collections (URL='http://webdesign.about.com/od/lay-
Webshots Photos (URL='http://www. out/a/aa062104.htm').
webshots.com/homepage.html') very well Usability checklist for forms (URL='http://
categorized; has several of everything you www.alistapart.com/articles/sensible-
can think of; may also use it them as screen forms'), good advice!
savers. Useable forms for an international audience
GraphixKingdom (URL='http://www. (URL='http://evolt.org/node/15118'). From
graphxkingdom.com/shtml/comp1.shtml') evolt.org
art by category. Checkboxes vs. Radio Button (URL='http://
Icon Browser (URL='http://www.ibiblio. www.useit.com/alertbox/20040927.html')
org/gio/iconbrowser/') categorized, so time- Article by Jakob Nielsen, the great guru of
consuming to use. usability. His web site (URL='http://www.
Barry's Clip Art (URL='http://www.bar- useit.com/alertbox/') including
rysclipart.com/') The Top 10 mistakes of web design
( U R L=' ht t p://w w w.u seit.com /ale r t-
page designIncluding usability box/9605.html') the all-important Usability
Books 101. Also annual lists of best and worst web
sites.
Don't Make Me Think: A Common Sense Articles on writing for the web (URL='http://
Approach to Web Usability 2nd Edition www.alistapart.com/topics/content/writ-
by Steve Krug 2005.Good place to start if ing/') from AListApart
you've never thought about navigation etc. On-line writing style (URL='http://www.
Designing Interfaces by Jenifer Tidwell webstyleguide.com/style/online-style.html')
from Lynch and Horton's classic book

0
Resources on Web-Centric Computing

(URL='http://developer.mozilla.org/en/ Web Style Guide (URL='http://www.


docs/Tips_for_Authoring_Fast-loading_ webstyleguide.com/index.html?/pages/
HTML_Pages'). Tips for fast-loading pages; font_face.html').On-line version of Horton
useful for large pages/sites; from Mozilla and Lynch's classic book. Good advice on
Slash everything from typography to navigation
Getting URLs right (URL='http://www.matt- and on to site design. A complete course!
kruse.com/info/slash/'), and (URL='http:// Also further references (URL='http://www.
www.useit.com/alertbox/reading_pattern. webstyleguide.com/style/refs.html')
html') Navigation advice (URL='http://evolt.org/
From Jakob Nielsen (URL='http://webde- navigation'), from evolt.org.
sign.about.com/od/authoring/a/aa111698. Where Am I? (URL='http://www.alistapart.
htm') checklist for creating web pages com/articles/whereami'), good advice on
(URL='http://webdesign.about.com/od/us- navigation.
ability/a/aa051506.htm') The all important What makes for a good site? (URL='http://
back button Links near the bottom lead evolt.org/node/60371')
to more articles about navigation (URL='http://webdesign.about.com/od/
Writing Effective Links (URL='http://evolt. webdesignbasics/tp/aa122101a.htm?nl=1')
org/node/60343') How to drive your readers away
(URL='http://www.useit.com/alertbox/ (URL='http://www.alistapart.com/top-
screen_resolution.html') layout ics/design') design from AListApart (site
Usability.gov (URL='http://www.usability. oriented to graphic artists).
gov/'). Many articles, templates and lots (URL="http://webdesign.about.com/cs/con-
of good advice about usability. Includes tentmgmt/a/aa051704.htm") - What you
information about the process (URL='http:// Need to Know
www.usability.gov/process.html') as well Choosing a CMS (Content Management
as on planning, writing, programming and System): needed for large or active sites by
usability testing. A treasure trove of informa- Drupal (URL='http://drupal.org/about').
tion. Please also see tools for accessibility David Mercer's book (URL='http://www.
below. amazon.com/gp/product/1904811809/
ref=pd_cp_b_title/002-1921142-8541656')
site design Books and articles Typo3 (URL='http://typo3.com/')

Information Architecture for the World Wide Tools for accessibility


Web 3rd Edition by Peter Morville, Louis (e.g. for color-Blind and low-vision
Rosenfeld, 2006.For designing very large users)
sites; very current - tagging etc.
Art and the Zen of Web Sites (URL='http:// Web Accessibility Initiative (URL="http://
www.tlc-systems.com/webtips.shtml'). Hu- www.w3c.org/WAI/"). W3c's links to every-
morous but very on-target advice. thing you could need to know about acces-
Dmitry's Design Lab (URL='http://www. sibility problems on-line and how to address
webreference.com/dlab/'). Great advice on them. The w3c.org also has a (URL='http://
site design, navigation, etc. Great place to www.w3.org/WAI/wcag-curric/overint.
start htm') Content Accessibility Curriculum.

0
Resources on Web-Centric Computing

Color Deficient Vision (URL="http://www. search Engines and Getting found


visibone.com/colorblind/"). See how your
site looks to someone who is color-blind with (URL="http://www.searchengines.com/").
links (at bottom) to transforming tools. Largest site on search engines; newsletters
(URL="http://www.btplc.com/age_disabil- etc.
ity/technology/RandD/colours/index.htm) How to get found and news (URL="http://
BTexact Technologies - Safe Web Colors www.inter netnews.com /dev-news/ar-
and browser safe colors for color-blind and ticle.php/3353971") What's the Difference?
links to other references and tools. This is a Google vs. Yahoo vs. Ask
good sized site and it is worth poking around Goodies to Go! (URL="http://www.html-
here goodies.com/letters/286.html")
(URL='http://www.vischeck.com/exam- (URL="http://searchenginewatch.com/
ples/') How pictures look to someone who showPage.html?page=2168031") How En-
is color blind gines Work. Several pages, including good
(URL="http://webdesign.about.com/od/ac- information you'll want to know on how
cessibility/a/aa062804.htm") site will be they rank pages
accessible for the color-blind (URL="http://searchenginewatch.com/
(URL="http://users.rcn.com/hwbingham/ links/article.php/2156221") Engines and
accessbl/dcsgmlug/tsld005.htm") aural style Directories. Major search engines and how
sheets. For pages which are read aloud. to get listed
(URL="http://www.w3.org/Style/CSS/ (URL="http://webdesign.about.com/cs/me-
Speech/NOTE-ACSS") aural style sheets. tatags/a/aa101501a.htm") Meta Tags. Uses
From w3.org, Web Standards (URL="http:// for meta-tags, including general and internal
www.webstandards.org/"). Webstandards. search engines
org is devoted to affordable accessibility (URL="http://builder.com.com/5100-
for all. Through their site you may obtain 6371_14-5231995.html?tag=sc") links and
the British guide to accessible sites link text on search engine placement.
(URL="http://www.w3.org/TR/1999/WAI-
WEBCONTENT-19990505/#gl-table- css or cascading style sheets
markup") accessible tables from the w3c. Books and documentation for css
org
How to create tables (for tabular information, Please note that many sites are a combination of
not for layout) which work for Braille readers, tutorials, articles, documentation, examples and
cell phones, etc. (URL="http://webdesign. information about tools. All these are found in the
about.com/od/accessibility/a/aa062804. Links and Resources for CSS section, so be sure
htm"). to check out that section too. Also, some browsers
Designing Web Pages that are Color-Blind (IE7) do not fully supportCSS2; please check CSS
Friendly. Rules so your site will be accessible in Different Browsers section for details. Books,
for the color-blind Web Exact (URL="http:// in addition to CSS coverage in XHTML books
webxact.watchfire.com/"). This is a free and DOM coverage in JavaScript books.
service which validates for conformance
to accessibility rules. Cascading Style Sheets: The Definitive
Lynx Viewer (URL="http://www.delorie. Guide 3rd Edition by EricA. Meyer published
com/web/lynxview.html"). Lynx is a text- by O'Reilly 2006. Excellent both to learn
only browser. from and as a reference.

0
Resources on Web-Centric Computing

The Zen of CSS Design: Visual Enlighten- and (URL="http://www.w3.org/Style/CSS/


ment for the Web The Zen of CSS Design: Speech/NOTE-ACSS"), covers CSS1 and
Visual Enlightenment for the Web 2005. CSS2.
Book version of the famous web site; lots CSS2 Refe r e nc e f rom w3scho ol s
of information (URL='http://www.w3schools.com/css/
Cascading Style Sheets 2.0 Programmer's css_reference.asp'), their tutorials are very
Reference by Eric A. Meyer published by useful, and so are their references.
Osborne, 2001. Strictly a reference. CSS: The Definitive Guide - 1st edition
W3C on CSS2 (URL="http://www.w3.org/ (URL='http://www.mykiss.de/index.htm').
TR/REC-CSS2/cover.html#minitoc"). See This is indeed the definitive guide. The
especially section 5 on selectors, 6 on as- on-line version, which has less explana-
signing property values and the cascade tory material than the print version, is also
and @import rule, section 4.3.6 on colors, available through Safari Books at the ACM
section 7 on media types, and Appendices F (URL='http://acm.org'). Discusses CSS1
and G for charts on descriptors and property thoroughly and looks ahead to CSS2.
values (including default values). HTML Goodies' Reference (URL='http://
Style Activity Statement (URL="http:// www.htmlgoodies.com/beyond/css/css-
www.w3.org/Style/Activity.html") ref/'). May cover only CSS1, but easy to use
Status of various w3c projects on style and fine until all common browsers imple-
sheets - including CSS and XSL; see also ment CSS2 or you use CSS2's features.
Style Homepage (URL='http://www.w3.org/
Style/') Tutorials & articles for css
CSS Validator (URL='http://jigsaw.w3.org/
css-validator/') Learning CSS (URL="http://www.w3c.
(URL="http://www.w3.org/TR/xhtml1/ org/Style/CSS/learning"). There are books,
#guidelines") HyperText Markup Lan- tutorials, etc. on CSS from w3c.org
guage (Second Edition).Guidelines so your (URL="http://www.w3c.org/Style/Ex-
XHTML will work in existing HTML amples/011/firstcss.en.html"). A first look
browsers. at CSS from w3c.org; good place to start.
CSS Reference Table (URL="http://builder. CSS Tutorial (URL="http://www.w3schools.
com.com/5100-31-5071268.html").Very com/css/default.asp"), from w3schools.com;
useful table of attributes and values; from another excellent introduction.
Builder.com Dave Raggett's Introduction to CSS
(URL="http://www.htmlhelp.com/refer- (URL="http://www.w3c.org/MarkUp/
ence/css/properties.html") Properties table, Guide/Style")
Only CSS1, but a good clear place for a (URL="http://www.richinstyle.com/guides/
beginner to start, as is the guide. css2.html") tutorial
(URL="http://www.htmlhelp.com/refer- (URL="http://www.htmlhelp.com/refer-
ence/css/structure.html") CSS rules, a short ence/css/style-html.html") sheets to your
tutorial with links to more tutorials at the html page
bottom. CSS1 only, but very clear. (URL="http://www.callihan.com/cssbook/
(URL="http://users.rcn.com/hwbingham/ csslinks.html"). Fine set of tutorials and
accessbl/dcsgmlug/tsld005.htm")Aural links
style sheets (pages which are read aloud)

0
Resources on Web-Centric Computing

From AlsaCreations (URL='http://tutorials. ginning_Cascading_Style_Sheets_CSS.


alsacreations.com/'). Good place to go after htm') CSS articles. They also offer more
one of the brief introductions above; sections detailed (URL="http://webdesign.about.
on tables s layout and on menus. com/library/nosearch/bl_cssclass1-1.htm")
Tutorial from EchoEcho.com (URL="http:// Lessons (Change the 1-1 in the URL to 2-1,
www.echoecho.com/css.htm"). Basic, clear. etc. to go to next lesson. ) and many articles
Many links on site: tools, forums, reference (You'll need to search for CSS, as the site
links. keeps growing and has no hierarchical or-
(URL="http://www.html.net/tutorials/css/ ganization. Does have articles on specificity,
introduction.asp") from html.net. Useful CSS3, CSS browser support etc.)
index on the left side; through intermediate Tutorial from Zvon.com (URL='http://zvon.
level. org/index.php?nav_id=tutorials&mime=h
MaxDesign's tutorials (URL="http://css. tml'), Also has links to tutorials on XML
maxdesign.com.au/index.htm"). On lists, etc
floats, etc. Start with the (URL="http://css. ( U R L="ht t p://w w w.cameronolthuis.
maxdesign.com.au/selectutorial/") Select- com/2006/04/top-10-css-tutorials/") CSS
Tutorial. These tutorials are intermediate tutorials, with brief descriptions. None is
level. elementary.
Quick Tutorial (URL="http://www.ht- (URL="http://www.w3.org/International/
mlhelp.com/reference/css/quick-tutorial. tutorials/css3-text/") internationalization
html") on CSS. From WDG and htmlhelp. and CSS3 from w3c.org
com. May not include CSS2, but a fast (URL="http://www.htmlgoodies.com/be-
start. yond/css.html") Tutorials. Well written
Articles on how to link, classes vs id etc tutorials, very clear, but maybe dated (e.g.
(URL='http://www.htmlhelp.com/refer- CSS1 instead of CSS2)
ence/css/style-html.html') (URL="http://www.wdvl.com/Authoring/
(URL="http://www.westciv.com/style_mas- Style/Sheets/Tutorial.html") Introduction to
ter/academy/css_tutorial/") tutorials. From Style Sheets. Tutorial on CSS - good top-
beginning to advanced down approach, but only CSS1; good links
(URL="http://www.communitymx.com/ at bottom of page, including "up one level"
content/article.cfm?cid=B6A50") this one for many articles.
is from CommunityMX . All sections are (URL="http://brainjar.com/css/position-
(URL="http://www.communitymx.com/ ing/"). There are other tutorials here too - e.g.
content/article.cfm?cid=3B56F&print=true on DOM and on using CSS (URL="http://
") in part 6; site also has tutorials on Flash, brainjar.com/css/using/")
Dreamweaver, etc. Lists (URL="http://www.alistapart.com/ar-
(URL="http://webdesign.about.com/li- ticles/taminglists/")
brary/style/bl_csstutorial.htm") Style Sheets CSS & Design Dev Tips (URL="http://build-
(CSS) Tutorial About.com 's CSS tutorials, er.com.com/1200-6388-5220010.html").
including table of contents to various lessons. CSS and XSL: When to use which
Also links to libraries, (URL='http://web- (URL="http://www.w3.org/Style/CSS-vs-
design.about.com/od/css/a/aastylelibrary. XSL"). The w3c says 'Use CSS when you
htm') templates, and (URL='http://web- can, use XSL when you must.
design.about.com/od/beginningcss/Be- (URL='http://www.elijournals.com/pre-

0
Resources on Web-Centric Computing

mier/showArticle.asp?aid=21661&utm_ Learning CSS (URL="http://www.w3c.


source=etip&utm_medium=email&utm_ org/Style/CSS/learning")
content=Should') Should you abandon tables Books and articles on learning CSS W3C
for layout? Almost always and here's why Core Styles (URL="http://www.w3.org/
(URL="http://friendlybit.com/css/inline- StyleSheets/Core/"), 8 style sheets on w3c's
css-should-not-be-allowed-in-strict-doc- server which you can link to from your
types/") Why you shouldn't use in-line CSS pages.
with a strict DOCTYPE. Friendlybit.com CSS Based Design (URL='http://adactio.
also has many articles on CSS, HTML and com/articles/1109/'), By Jeremy Keith,
JavaScript, Including a (URL="http://friend- author of the wonderful DOM Scripting
lybit.com/css/beginners-guide-to-css-and- book
standards/") Beginner's Guide to CSS, and Many references on CSS: (URL="http://
some simple templates (URL="http://friend- www.htmlhelp.com/reference/css/")
lybit.com/css/simple-css-templates/"); From Web design Group at htmlhelp.com;
(URL="http://friendlybit.com/css/beyond- also a link to (URL="http://www.htmlhelp.
the-web-with-css-princexml-and-s5/") com/reference/css/references.html") refer-
CSS, PDFs, LaTeX and PrinceXML (Ad- ences and a CSS Checker.
vanced). U. of Minnesota - Duluth organizes every-
In-line styling in CSS2 (URL='http://mey- thing (URL='http://www.d.umn.edu/itss/
erweb.com/eric/css/inline-format.html') By support/Training/Online/webdesign/css.
Eric Meyer (Advanced) html'). This well-organized site has tutorials
(URL="http://devedge-temp.mozilla.org/ on CSS, information on (literally) everything
viewsource/2003/devedge-redesign-css/in- from headers to footers and everything in
dex_en.xml") Case study of how Mozilla between. They also have links to their sites
used CSS to redesign its DevEdge site on JavaScript, XML etc.
(URL="http://brainjar.com/dhtml/menu- (URL="http://dmoz.org/Computers/Data_
bar/") JavaScript to design a menu bar. Formats/Style_Sheets/CSS/") - Computers:
The CSS Anarchist (URL='http://www. Data Formats: Style Sheets: CSS. Many links
oreillynet.com/pub/a/network/2000/07/21/ for HTML, XHTML and CSS.
magazine/css_anarchist.html'). Older article CSS Pointers (URL='http://css.nu/'), another
on how to use CSS to wreck poorly coded large compendium of articles, FAQs, tools,
sites and turn off blinking ads. etc. For the Pros.
(URL="http://www.wdvl.com/Authoring/
links and resources for css Style/Sheets/") Designing CSS Web Pages
(Including sample layout sources Tutorials and recommended ' Designing
and Browser-Specific Hacks) CSS Web Pages', 2-part article on knowing
who your audience is and how to design
W3C home page on CSS (URL="http://www. for it. Also (URL="http://www.wdvl.com/
w3.org/Style/CSS/") Authoring/Style/Sheets/Resources.html")
Links to articles, tutorials (URL="http:// Resources at other sites
www.w3.org/Style/CSS/learning") docu- All CSS articles (URL='http://www.wdvl.
mentation, roadmaps of what's coming, com/Authoring/Style/Sheets/').
news, etc. Sidebars on CSS etc. for developers
(URL='http://devedge-temp.mozilla.org/

0
Resources on Web-Centric Computing

toolbox/sidebars/'). These tools disappeared lybit.com/css/simple-css-templates/)


from Netscape's DevEdge site, and Mozilla Advanced CSS Resources (URL='http://
has brought them back into its archives www.blooberry.com/indexdot/css/index4.
(URL='http://devedge-temp.mozilla.org/ htm'). Lots of good information, including
central/css/index_en.html') properties, a clear explanation of the cascade,
CSS Validator (URL="http://jigsaw.w3.org/ and tables on browser support. You may
css-validator/") need to click through lots of pages to get to
SelectOracle (URL='http://gallery.theopal- what you want.
group.com/selectoracle/'), tells you what a CSS Vista (URL="http://www.sitevista.
complex selector does. com/cssvista/")
Site for Eric Meyer (URL="http://meyerweb. Tool to edit your CSS in IE and Firefox at
com/"). He wrote the books on CSS (or at the same time. Demo tool is free. CSS Tools
least two of the best). If you're going to be (URL="http://www.soxiam.com/Notes/
a power user it's worth checking his blog. CSSTools")
You can also subscribe to the CSS-discuss Links to a variety of CSS tools and galler-
(URL="http://www.css-discuss.org/") ies. Since 6/06 this has been put on a wiki
mailing list and check out his cutting edge (URL="http://www.soxiam.com/Code/
site. (URL=http://meyerweb.com/eric/css/ HomePage") CSS (URL="http://www.
edge/) soxiam.com/Tags/Css")
CSS Zen Garden (URL="http://www.cs- (URL="http://tecfa.unige.ch/formcont/
szengarden.com/"). This is the most amazing ecole-ete-tunis2001/links/css.html") CSS
site of examples of what you can do with Documentation and articles. Many topics
CSS. One page is transformed by over 900 and useful resources. Covers CSS1 and
style sheets. (Check the (URL=http://www. CSS2.
mezzoblue.com/zengarden/alldesigns/) ( U R L =" ht t p:// home p a ge.m a c.
archives.). These are all done by profes- c o m /c h r i s p a g e / i b l o g / C 4 2 5113 81 /
sional graphic artists, but we can all admire E20060806095030/index.html") A trick/tool
them. They also have an excellent list of for debugging CSS.
resources. Examples of well-designed sites and CSS
(URL="http://placenamehere.com/neural- Resources (URL='http://www.meryl.net/
ustmirror/200202/") many stylesheets for css/cat_css_resources.php'); many classic
one page, but I prefer the ZenGarden. resources are here - e.g. CSS Zen Garden,
(URL="http://www.dezwozhere.com/links. w3c, etc. and many template galleries.
html") resources is at Holy CSS Zeldman! In New York Public Library Style Guide
addition to many CSS links, there are also (URL='http://www.nypl.org/styleguide/')
links on JavaScript and AJAX. It seems to me CSS Pointers Authoring Tools (URL='http://
that you can find everything here: tutorials, css.nu/pointers/tools.html'); also has infor-
books, sites, galleries at other sites (e.g. CSS mation about browsers and XSL tools.
Zen Garden), hints, etc. www.friendlybit. Codestyle.org (URL='http://www.codestyle.
com has many articles on CSS, HTML and org/index.shtml'). A site for developers; be
JavaScript, including a (URL=http://friend- sure to check their XHTML page too, as
lybit.com/css/beginners-guide-to-css-and- its FAQs include CSS questions. Sample
standards/) Beginners Guide to CSS, and layouts:
some simple templates (URL=http://friend-

0
Resources on Web-Centric Computing

(UR L="htt p://w w w.code-sucks.com / css in different Browsers


css%20layouts/") columns using CSS. Over
50 layouts. Choose the number of columns Please also see Browsers section under XHTML
you want, then the particular layout, and Resources for information on usage and places
then download the code. to download.
Templates for lists from Max Designs
(URL="http://css.maxdesign.com.au/"). All browsers (URL="http://centricle.com/
Builds the layouts step-by-step, tutorial ref/css/filters/") support which CSS features;
style. very useful
Layouts from Eric Costello (URL="http:// (URL="http://webdesign.about.com/li-
www.glish.com/css/") A half dozen classic brary/weekly/aa123101a.htm") support in
layouts with code, and links to articles. CSS and how to Display Stylesheets Dy-
Layout Gala (URL='http://blog.html.it/ namically. What browsers support what
layoutgala/'). 40 different layouts you can features and links on work-arounds for older
download individually or all zipped together. browsers
Also links to articles on using negative (URL="http://css-discuss.incutio.com/
margins and other techniques. ?page=CssHack") Hacks for various brows-
Free templates (URL="http://www.six- ers and CSS. This enormous list of hacks
shootermedia.com/free-templates/"). A also has (near the top of the page) links to
dozen elegant designs you can download sites which summarize hacks. It also lists
CSS Layouts (URL='http://css-discuss. various specific (recent) hacks with their
incutio.com/?page=CssLayouts'). On-going effects and the browsers they target.
blog about types of layouts, problems and The Box Model Hack (URL="http://css-
hacks. Not elementary. discuss.incutio.com/?page=BoxModel")
A few basic layouts with explanations One of the oldest and most famous hacks.
(URL='http://www.cssplay.co.uk/layouts/ Links to Brain Jar's (URL='http://www.
index.html'), from the always elegant CSS brainjar.com/css/positioning/default.asp')
Play. clear explanation, and others. IE7 and
Searchablerepositoryoflayouts(URL='http:// CSS2 (URL="http://www.publish.com/ar-
tools.i-use.it/'). Fill in form on number of col- ticle2/0,1895,1842891,00.asp"). Of course,
umns you want, if you want a header or not Microsoft didn't go with the standard im-
etc. and template is returned. Very useful mediately.
pMachines templates (URL='http://pm- CSS in Different Browsers (URL='http://
template.kartar.net/templates.html'), half a www.webreference.com/authoring/style/
dozen basic templates. Display un-styled in sheets/browser_support/index.html'). Long
older browsers article (current as of 2006) discussing the
CSS Showcase (URL='http://www.alvit. issue.
de/css-showcase/'), gallery of very profes- No tabular summary, but links to those for
sional looking menus, tabs and layouts; also current browsers at Webdevout (URL='http://
articles www.webdevout.net/') and for 2003 and
CSS Drive (URL='http://www.cssdrive. older browsers at Blooberry (URL='http://
com/'), reviewed and unreviewed designs. www.blooberry.com/indexdot/css/support-
You need to work a bit to get to the code. key/syntax.htm')


Resources on Web-Centric Computing

Devout.net (URL='http://www.webdevout. JavaScript: The Definitive Guide 5th Edition


net/'). Browser support for CSS and CSS by David Flanagan, published by O'Reilly
hacks. 2006.Another excellent book; new edition
Fonts commonly found in various brows- includes Ajax.
er ( U R L='ht t p://w w w.upsdell.com / DOM Scripting: Web Design with JavaScript
BrowserNews/res_fonts.htm'). Useful and the Document Object Model by Jeremy
chart - so your choices are more likely to Keith published by APress 2005. A breath-
not default to the browser's choices. takingly wonderful description of the DOM
Survey of font usage by browser (URL='http:// and how to make it work for you; also builds
www.codestyle.org/css/font-family/index. the basis for Ajax.
shtml') (URL="http://developer.mozilla.org/en/
(URL='http://www.codestyle.org/css/ docs/JavaScript_Language_Resources") re-
font-family/sampler-CombinedResults. sources for JavaScript. Not for beginners.
shtml'). Equivalent fonts for PCs and Macs (URL="http://developer.mozilla.org/en/
(URL='http://www.ampsoft.net/webdesign- docs/Core_JavaScript_1.5_Guide") Core
l/WindowsMacFonts.html'). Nice chart JavaScript 1.5 Guide. Description of the
makes it easy to choose language (if you already know it.), and
CSS2 Generated Content (URL="http://web- (URL="http://developer.mozilla.org/en/
design.about.com/cs/css/a/aa042604.htm") : docs/Core_JavaScript_1.5_Reference")
before and :after; does not work in IE6 or Core JavaScript 1.5 Reference. Contains
IE7. information about what is implemented in
various versions. Also contains information
Javascript about LiveConnect, the way to link Java and
JavaScript code.
Books and Documentation for JavaScript. (URL="http://developer.mozilla.org/en/
docs/New_in_JavaScript_1.6") from JavaS-
Teach Yourself JavaScript in 24 Hours, 4th cript 1.5 to 1.6.
edition by Michael Moncur published by (URL="http://developer.mozilla.org/en/
SAMS, 2006. While the first 3 editions were docs/JavaScript_Language_Resources")
clear (but for novices), this edition is clear page for all Mozilla's documentation, forums
but goes further. Highly recommended if and articles on JavaScript.
you've never used JavaScript. The w3c documentation for the DOM
JavaScript: The Complete Reference, 2nd (URL='http://www.w3.org/DOM/')
Edition by Thomas Powell and Fritz Sch- The DOM model (URL="http://www.ws-
neider published by Osborne 2004. Not quite abstract.com/domref/index.shtml")
as complete as the Bible(directly below), but (URL="http://www.javascriptkit.com/jsref/
easier to read. I use both. index.shtml") JavaScript From JavaScript
The JavaScript Bible 6th Edition by Danny Kit
Goodman and Michael Morrison published (URL="http://www.w3.org/TR/DOM-
by Wiley 2007. An invaluable reference; very Level-2-Core/Overview.html#contents")
clear on even abstruse items; earlier edition DOM Documentation for ECMA Script
was very clear on the DOM, including cover- (basis for JavaScript), for older versions
age on non standards compliant browsers. of JavaScript.


Resources on Web-Centric Computing

(URL="http://devedge-temp.mozilla.org/ (URL="http://www.webdevelopersjournal.
central/javascript/index_en.html") (Guides com/JavaScriptWeenie.html") scripts from
and References for 1.3, 1.4 and 1.5). Docu- JavaScript Weenie; Intermediate level and
mentation for JavaScript 1.3 - 1.5 with in- useful.
formation on changes from earlier versions, Tutorials and references from U. Minn- Du-
links to both the Guide and the Reference luth (URL='http://www.d.umn.edu/itss/sup-
Manual, dDate object, documentation on port/Training/Online/webdesign/javascript.
the date object, including constructors and html'). Enormous list of tutorials and articles
methods. from the general to the specific; includes
some links to book excerpts; regrettably,
Tutorials and articles for Javascript no description of the links.
Tutorials from WebMonkey (URL='http://
(URL="http://www.htmlgoodies.com/prim- www.webmonkey.com/webmonkey/pro-
ers/jsp/") tutorials on JavaScript. First the gramming/javascript/tutorials/tutorial2.
'Primers' and then the 'Basics' (which go html'). Clear but somewhat dated (Browser
thru AJAX) detection is now usually not needed.).
(URL="http://developer.mozilla.org/en/ JavaScript Primers (URL='http://www.
docs/A_re-introduction_to_JavaScript") htmlgoodies.com/primers/jsp/') 30 steps
"Reintroduction to JavaScript", friendlier to go from complete tyro to intermediate
than Mozilla's documentation level.
(URL="http://developer.mozilla.org/en/ Tutorials from WebKnowHow (URL='http://
docs/Category:JavaScript") JavaScript, from www.webknowhow.net/dir/JavaScript/Tuto-
Mozilla's forums. rials/index.html'). About 20 tutorials, mostly
Javascript tutorial from w3schools.com for the beginner.
(URL='http://www.w3schools.com/js/de- Programmer How-To's (URL="http://html.
fault.asp'), always a good place to start tucows.com/programmer/programmertu-
(URL="http://www.webreference.com/pro- tmain.html"). Short introductory tutorials
gramming/javascript/index.html") Articles from TUCOWs. Good for those who can
from WebReference. Many tutorials from 'Ja- program in another language and need to
vaScript for non-programmers' to AJAX. switch to JavaScript.
(URL="http://www.webreference.com/pro-
gramming/javascript/jf/column12/") 12-15 Articles on Specific Topics
inclusive). Excellent resource; includes links (Not advanced)
to Mozilla pages just above and other col-
lections. Be sure to check out the collections Focus on forms (URL="http://www.html-
and the archives. Some tutorials are older. goodies.com/letters/287.html"), the focus()
(URL="http://www.wdvl.com/Author- and blur() methods.
ing/JavaScript/Tutorial/") JavaScript for (URL="http://www.mredkj.com/tutori-
Programmers from WDVL als/reference_ js_intro.html") Variables,
(URL="http://www.ems.psu.edu/~young/ clearly described from mredkj.com, other
meteo473/lecture_javascript.htm") Descrip- interesting examples (URL="http://www.
tion of JavaScript for students who have mredkj.com/tutorials/htmljs.html") - e.g.
programmed in C++ or Java. Older, but very to change tables, validate forms, etc.
useful and to the point. (URL="http://devedge-temp.mozilla.org/


Resources on Web-Centric Computing

library/manuals/2000/javascript/1.5/guide/ What is the DOM? (URL='http://devel-


ident.html#1009571") characters, escaping oper.mozilla.org/en/docs/Gecko_DOM_
them and Unicode. From Mozilla's Core Reference:Introduction#What_is_the_
JavaScript 1.5 Guide DOM.3F'). Clear explanation from Mozil-
(URL="http://htmlgoodies.earthweb.com/ la
beyond/jspass.html") Passing variables (URL="http://www.devarticles.com/c/a/
between pages in JavaScript. JavaScript/JavaScript-Remote-Scripting-
(URL="http://html.tucows.com/program- Fetching-Server-Data-with-the-DOM")
mer/jstut/js_i_globalLocal.html") Local. Fetching Remote Data (in XML) from a
Global and local variables - from Tucows; Server with DOM advanced.
elementary but reliable DOM Scripting (URL='http://adactio.com/
Navigation and JavaScript (URL='http:// articles/search?query=DOM+Scripting').
evolt.org/javascript_navigation_cleaner_ Articles by Jeremy Keith, author of the DOM
not_meaner') Fancy footwork for lists of Scripting book and extremely readable au-
links. thority on the DOM
(URL="http://javascript.internet.com/") (URL="http://www.devarticles.com/c/a/
Tutorials, Example Code, Reference, Re- JavaScript/Preloading-Images-with-the-
sources, and Help. This site has tutorials, DOM-The-Introductory-Process/") Preload-
public scripts, book reviews, etc. ing Images with DOM advanced.
(URL="http://www.javascript.com/") Re- The DOM (URL="http://www.prairienet.
source: JavaScript Tutorials and Free Java org/~sjmccaug/dom.htm"). Older (1999)
Scripts. Tutorials and fancy scripts. Pretty article explaining the JavaScript prototype
good. to Java programmers.
(URL="http://html.tucows.com/program- (URL='http://icant.co.uk/articles/from-
mer/jstut/js_i_images.html") JavaScript dhtml-to-dom/FromDHTMLtoDOMscript-
Intermediate Tutorial: Image Swapping. ing_March2006.pdf') From DHTML to
Tutorial on image swapping with links to DOM Scripting. Excellent, thorough article
related (and less related) topics. from DHTML to DOM.
JavaScriptWeenie (URL="http://www.web- (URL='http://www.htmlgoodies.com/be-
developersjournal.com/JavaScriptWeenie. yond/javascript/article.php/3627691').Why
html") An older site with many articles, you should switch, part 1; (URL='http://
tutorials, most of which are relevant for www.htmlgoodies.com/beyond/javascript/
older browsers. article.php/3630271') part 2.
Time in JavaScript (URL='http://www.ht- Digital Web Magazine (URL='http://www.
mlgoodies.com/introduction/newsletter_ar- digital-web.com/topics/dom/'). Also book
chive/goodiestogo/article.php/3600841'). reviews, product reviews, interviews etc.
Goodies to Go newsletter show you how to (URL="http://www.dynamicdrive.com/dy-
set timeouts, etc. namicindex4/preloadimage.htm") DHTML
Scripts- Preload Image (with progress bar)
Articles on Specific Topics Script. Pre-loading images for swapping;
(advanced, dom, dHTml, the Event part of huge site with JS and DHTML scripts,
model, cookies, etc.) many very in your face, and forums. Other
topics.
The w3c documentation for the DOM The JavaScript Event Model (URL="http://
(URL='http://www.w3.org/DOM/') www.webmonkey.com/05/02/index4a.


Resources on Web-Centric Computing

html") advanced. From WebMonkey. Tells (URL="http://www.webmonkey.com/06/19/


you all you could ever want to know (and index3a.html") Good introduction from
maybe more) about event handler models. WebMonkey.
Although the article is from Jan 2005, Mozilla's tools (URL="http://www.mozilla.
there is a lot of time devoted to Netscape org/docs/web-developer/js/debugging/").
Navigator 4 and IE 4 - hopefully for only Including the Console and Venkman and
a little while longer. Useful for old pages. the DOM inspector; add-on and news on
New pages should stick to the w3c Event these tools (URL="http://www.mozilla.
Model. Exception Handling in JavaScript. org/js/jsd/")
Advanced. Includes information about (URL="http://www.webreference.com/pro-
browser incompatibilities gramming/javascript/venkman/") Venkman
(URL="http://builder.com.com/1200-31- from WebReference, and (URL="http://
5084860.html") Builder.com - many ad- www.svendtofte.com/code/learning_venk-
vanced. man/") list of resources on it. Looks very
Proprly using CSS and JavaScript valuable.
with XHTML with examples (URL=http:// (URL="http://www.csie.ntu.edu.tw/~piaip/
ciac.llnl.gov/ciac/bulletins/i-034.shtml) docs/CreateMozApp/mozilla-app-b-sect-
and how to set them, from the Department 5.html") tutorial on Venkman
of Energy. (URL="http://www.hotscripts.com/De-
(URL="http://computer.howstuffworks. tailed/61484.html") Hot Scripts
com/cookie1.htm") from HowStuffWorks; (URL="http://freshmeat.net/projects/db-
Be sure to see next page too. gcons/") debugger - Microsofts Script
DevGuru tutorials (URL='http://www. Debugger
devguru.com/features/tutorials/tutorials. (URL="http://www.digitalmediaminute.
asp') Very advanced - e.g. interfacing Ja- com/article/1622/javascript-trace-window")
vaScript with ASP. Trace Window (uses GreaseMonkey in
Case Study of how Mozilla redesigned its Firefox).
site (URL='http://devedge-temp.mozilla. JSLint (URL="http://www.jslint.com/")
org/viewsource/2003/devedge-redesign-js/ Looks for problems in JavaScript pages;
index_en.html'), Shows both pure CSS and check out the documentation first; from
hybrid CSS/JavaScript approaches. Older 2002 so may not support DOM.
and sophisticated but still worthwhile
other Javascript (Especially Tools
links and resources for Javascript and sources of scripts)

The easiest debugger to use is the JavaScript Frameworks are in the Ajax section of the Web
Console (available in Firefox, Netscape Naviga- 2.0 resources
tor and Opera). Most of these references concern
more advanced tools. (URL="http://www.siteexperts.com/") Site
Experts. Another community of web devel-
(URL="http://dojo.jot.com/DebuggingJa- opers
vascript") debugging tools for all browsers, (URL="http://www.experts-exchange.
using the JavaScript Console. com/Web/Web_Languages/JavaScript/")
Exchange - another community


Resources on Web-Centric Computing

(URL="http://www.webmonkey.com/ DynamicDrive (URL="http://www.dynam-


webmonkey/reference/javascript_code_li- icdrive.com/"). Tools and scripts and links;
brary/") Library of JavaScript functions focus on DHTML; threads and posts on their
from WebMonkey forums (URL='http://www.dynamicdrive.
Dev articles on JavaScript (URL="http:// com/forums/') good place to look for answers
www.devarticles.com/c/b/JavaScript/"). when nothing else helps.
Enormous compendium of articles, many JavaScriptKit (URL="http://www.javas-
advanced criptkit.com/"). Tools, tutorials, scripts;
Scripts may be found here (URL="http:// quite up-to-date, including material on
www.scripts.com/javascript-scripts/") by AJAX etc.
category. JavaScript.internet.com (URL='http://ja-
JavaScript.com (URL="http://www.javas- vascript.internet.com/'). Large repository of
cript.com/"). Free scripts - some a bit cutesy; scripts, tutorials, etc. Check out the FAQs
free newsletter. first. Links to Web Reference, XML.files,
Mozilla's tools (URL="http://www.mozilla. and WDVL (Web Developer's Virtual Li-
org/js/"). Mozilla has a large amount of brary).
information and tools, including the debug- Scripts.com's (URL='http://www.scripts.
gers, etc. Their DOM Central (URL='http:// com/javascript-scripts/'). Enormous reposi-
devedge-temp.mozilla.org/central/dom/in- tory of JavaScript scripts organized by type,
dex_en.html') tools (URL='http://devedge- also searchable. Scripts are rated by users.
temp.mozilla.org/toolbox/tools/') Also Most are free.
Sidebars for CSS, JavaScript and XSLT DHTML Shock (URL="http://www.dht-
(URL='http://devedge-temp.mozilla.org/ mlshock.com/"). Scripts with a focus on
toolbox/sidebars/') Mozilla's DOM Inspector DHTML.
(URL='http://www.mozilla.org/projects/in- Cross-browser (URL="http://www.cross-
spector/') browser.com/"). Scripts and articles on
SourceForge Projects on Text Editors cross-browser JS and DHTML using the
(URL='http://sourceforge.net/softwaremap/ DOM.
trove_list.php?form_cat=63'). SourceForge Builder.com ar ticles on JavaScr ipt
material is all open source. FCKEditor is (URL='http://builder.com.com/1200-31-
here, for example. 5084860.html'). Not organized, but is search-
BrainJar (URL="http://www.brainjar. able. Many quite advanced.
com/"). This is the site that brought you Web Reference on JavaScript (URL='http://
their (URL='http://brainjar.com/dhtml/ www.webreference.com/programming/ja-
domviewer/') DOM viewer; tutorials and vascript/'). Searchable archive of articles
tools, small but worthwhile. and tutorials from elementary to advanced
DevGuru Reference (URL='http://www. intermediate.
devguru.com/technologies/JavaScript/ AListApartarticlesonscripting(URL='http://
home.asp'). Bore down through the menus www.alistapart.com/topics/code/script-
to get a clear explanation of various elements ing/'). Focus is on implementing a smooth
of JavaScript. professional appearance
comp.lang.javascript (URL='http://groups. WebStandards.org (URL="http://www.
google.com/group/comp.lang.javascript'). webstandards.org/"). A self-described grass-
Google group still going strong.


Resources on Web-Centric Computing

roots organization trying to advocate for cGI and server-side scripting


Web standards which ensure accessibility.
WebDeveloper (URL="http://www.web-
General (Including Information on HTTP and
developer.com/"). Hosts many forums,
TCP/IP and resources for multiple languages)
including one on JavaScript. Also has a
searchable archive of articles on JavaScript
HTTP (URL='http://ftp.ics.uci.edu/pub/
(URL=http://webdeveloper.earthweb.com/
ietf/http/rfc1945.html') Older (1996) but
webjs/) which returns too many irrelevant
very useful explanation; well organized and
articles.
probably has all you need to know and then
JavaScriptCity (URL='http://www.javas-
some.
criptcity.com/other/webres.htm'). Tutorials,
TCP/IP Resources (URL='http://www.
references etc. Appears to be geared toward
private.org.il/tcpip_rl.html'). Great list of
the novice.
FAQs, tutorials, and books. Kept up to
(URL="http://www.sitepoint.com/forums/
date.
showthread.php?s=462aa45700774e13a66
Overview of TCP/IP and the Internet
6b693037bd9b6&t=90580") Sitepoint, has
(URL='http://www.garykessler.net/library/
a forum with many useful links, as do the
tcpip.html'). Current description. Starts with
publishers.
the history (OK to skip) but gives all the
WROX. (URL="http://p2p.wrox.com/fo-
details you need if you are not a network
rum.asp?FORUM_ID=21") 2programmer)
administrator.
APress (URL="http://www.beginningja-
Primer on TCP/IP (URL='http://www.
vascript.com/")
garykessler.net/library/rfc2151.html'). Older
CodingForum, Tek-Tips; (URL="http://
(1997), but a good place to start.
w w w. t e k- t i p s . c o m / t h r e a d m i n d e r.
Another older (1998) Primer on Internet
cfm?pid=216")
technology (URL='http://www.anu.edu.
Evolt (URL="http://lists.evolt.org/").
au/people/Roger.Clarke/II/IPrimer.html')
Yahoo maintains links to similar sites.
Daryl's TCP/IP Primer (URL='http://www.
(URL=http://developer.yahoo.com/ja-
ipprimer.com/section.cfm'). Goes deeper
vascript/) My experience is that similar
than a primer; kept up to date.
Yahoo lists have a goodly part of the top
Older (1998) course on managing servers
resources.
(URL='http://infomotions.com/musings/
The FAQts on JavaScript. (URL="http://
waves/handout/waves.txt'). Classic refer-
www.faqts.com/knowledge_base/index.
ences; good description of client-server
phtml/fid/53/") . Huge site with answers to
model, http, mime types etc.
many JS questions, by subject. Site does not
IANA (URL='http://www.iana.org/'). Who
work in Netscape, but does in Firefox and
owns what domain name, which port is what,
IE; ironic?
and what the language abbreviations are
DevShed (URL='http://www.devshed.com/
W hich Scripting and Programming
c/b/JavaScript/'). Large collection of articles,
Languages are People Searching about?
scripts for web developers. Selections for
(URL='http://www.tiobe.com/tpci.htm').
Python, PHP etc. are more recent than the
Monthly survey on queries about Perl, PHP,
few on JavaScript.
JavaScript, Java etc.
Developer.com (URL='http://www.devel-
oper.com/lang/'). Excellent very current


Resources on Web-Centric Computing

intermediate level articles, but you need davaram 2nd edition publishd by O'Reilly
to search. Better yet, subscribe to some of 2000. Very useful book.
their free newsletters and be notified of new Learning Perl 3rd edition by Randal L.
articles. Schwartz and Tom Phoenix, published by
ASPN (URL="http://aspn.activestate.com/ O'Reilly 2007. Excellent way to learn enough
ASPN/"). Resource for programmers in Perl, Perl to write CGI scripts easily.
PHP, Python, etc. Major site. The Web Wizard's Guide to Perl and CGI,
HotScripts (URL="http://www.hotscripts. The Web Wizard's Guide to PHP, both by
com/"). Articles and scripts for many lan- David A. Lash, 2002. These books won't
guages - Perl, PHP, Python, JavaScript, make you a great guru, but they will get
XML you going very quickly; well-written.
OnLamp.com (URL='http://www.onlamp. Client and server (URL="http://www.html-
com/'). O'Reilly maintained site with articles goodies.com/letters/288.html"). Introduc-
and book excerpts on all the open source tion to terms.
technologies - Linux Apache, Perl/PHP/Py- (URL="http://www.wdvl.com/Authoring/
thon, MySQL. Links to Safari books (also Scripting/Tutorial/toc.html") Contents on
available free through the ACM is you are Web Programming. Tutorial on server-side
a member). programming and sending info from HTML
CGI Resources (URL="http://www.cgi- forms. Excellent introduction . Definitely
resources.com"). Links to very many CGI the place to start if you don't know the dif-
scripts, mostly in Perl, and tutorials (rated ference between GET and POST or need a
by users). short introduction to Perl.
DevShed Perl Tutorials, Scripts, etc. These tutorials, from Selena Sol, are also
(UR L='http://www.devshed.com /c/ b/ available at Extropia (URL='http://www.
Perl/'). Links to user submitted and rated extropia.com/tutorials/perl_cgi/pre_requi-
scripts and articles in many languages; most site_intro.html') which also has links to Perl
free. tutorials for web developers.
WebReference (URL='http://www.webref- (URL="http://www.wdvl.com/Author-
erence.com/programming/php/'). Inter- ing/Scripting/Tutorial/request_headers.
mediate to advanced articles. Includes the html") Request Headers. What's in an http
Mother of Perl site. Also PHP (with links header.
at the bottom) and now starting on python What is CGI? (URL="http://www.devpa-
(URL='http://www.webreference.com/pro- pers.com/article/137"). Very elementary
gramming/python/') introduction.
Matt's HTTP Cookie Library (URL='http:// CGI Scripts - Writing and Using CGI
www.scriptarchive.com/cookielib.html') (URL="http://webdesign.about.com/od/
and his CGI resource (URL='http://cgi. cgi/"). Another very elementary introduction
resourceindex.com/') to CGI; several short articles to read.
Web Development Primer (URL="http://
cGI (Including regular Expressions www.devpapers.com/article/47/"). Elemen-
- see also perl section) tary introduction to the technologies you
find server-side (ASP, Perl, PHP etc.).
CGI Programming with Perl by Gunther Gentle Introduction to CGI (URL='http://
Birznieks, Scott Guelich, and Shishir Gun- infomotions.com/musings/waves/gentlein-


Resources on Web-Centric Computing

troductiontocgi.html'). Also has many links There are many articles in the Perl and Web
to books and on-line resources. Updated in Design section, but you need to know what
2004 you want - e.g. guestbook - so you can search
The Web Development Environment for it here.
(URL='http://www.extropia.com/tutorials/ CGI Tutorials (URL="http://www.html-
devenv/toc.html'). An excellent introduc- goodies.com/beyond/cgi.html"). Very well
tion; less cursory than the earlier ones; written tutorials, but maybe dated (1/2005).
you will enjoy it more if you have already For example, you are more likely to FTP
heard of some of the technologies men- your server scripts to the server than to use
tioned (Java, HTTP, etc.) A shorter version telnet.
(URL='http://www.extropia.com/develop- (URL="http://www.acmqueue.com/mod-
ment/web_ware_white_ paper.html') is ules.php?name=News&file=print&sid=36
available for newbies. w3c.org 1") Problem of Statelessness.
Introduction to CGI (URL='http://www. Validating user sessions in PHP (URL='http://
w3.org/CGI/Overview.html') www.phpbuilder.com/columns/validating_
Other information from w3c about standards php_user_sessions.php3?page=1'). Good
(URL='http://www.w3.org/CGI/') introduction to the problem of statelessness;
Why learn CGI? (URL="http://web.oreilly. php implementation of solutions.
com/news/cgi_0700.html"). From the people Form validation (URL="http://www.html-
(O'Reilly) who publish a book on the sub- goodies.com/letters/290.html"). Validating
ject - includes kind words about their own a form before sending it to a CGI script
(excellent) book; this article is mainly mo- - mainly to be sure all fields are filled in.
tivational.
The following links are to collections of
The next few articles will actually show you some- articles
thing you can modify and use; for more detailed
information you need to go to the section on your WebKnowHow's Tutorials, articles, scripts
language of choice (Perl, PHP or Python) and books on CGI (URL='http://www.
webknowhow.net/dir/Other_Topics/HTTP/
CGI Developer's Guide (URL='http://www. index.html'). Many (unsorted) links, many
webbasedprogramming.com/CGI-Develop- to old sites.
ers-Guide/'). Older, but will get you going. Webliography on CGI, Perl, etc. (URL='http://
CGI Tutorial (URL='http://www.comp. infomotions.com/musings/waves/webliog-
leeds.ac.uk/Perl/Cgi/start.html'). Good in- raphy.html'). Great list of links, even though
troduction to CGI, environment variables, many are to older articles. CGI articles from
etc. HTML Goodies. Includes codes for a guest
Easy introduction to CGI (URL='http://perl. book and for counters. Tutorials on regular
about.com/gi/dynamic/offsite.htm?zi=1/ expressions. Although some lean towards
XJ&sdn=perl&zu=http://www.jmarshall. one language or another, regular expression
com/easy/cgi/'). Another good short intro- syntax is pretty much the same in all the
duction scripting languages.
CGI articles (URL='http://perl.about.com/ (URL="http://www.capescience.com/edu-
od/cgiweb/') and more general CGI articles cation/tutorials/cc5/cc5_regex_intro.pdf")
(URL='http://perl.about.com/od/cgiweb/'). on regular expressions


Resources on Web-Centric Computing

LibraryofRegularExpressions(URL="http:// details subtle differences among languages


www.regxlib.com/default.aspx") and Unix variants.
Reg ular expressions in JavaScript, (URL="http://www.perldoc.com/perl5.6.1/
(URL='http://ist.marshall.edu/ist263/js21. pod/perlretut.html") Expressions in Perl
html#l2101') which has a regular expression Very complete ; from PerlDoc
finder (URL='http://ist.marshall.edu/ist263/ (URL="http://www.perldoc.com/perl5.6.1/
examples/js_reg.html') pod/perlre.html") Regular Expressions in
(URL='http://gnosis.cx/publish/program- Perl.
ming/regular_expressions.html') Regular Regular Expressions (URL="http://www.
expressions tutorial from a Python book; visibone.com/regular-expressions/")
rather telegraphic Server-Side Includes. Tutorial on Server-side
How to use regular expressions (URL='http:// includes (URL=http://www.mattkruse.
www.silverstones.com/thebat/Regex. com/info/ssi/). Older (1995 article, last
html') updated in 2002) but author says basic
The Perl 30-minute Regular Expressions principles still apply (URL=http://cgi.
Tutorial (URL='http://www.english.uga. resourceindex.com/Documentation/Serv-
edu/humcomp/perl/regex2a.html') > er_Side_Includes/) to many resources of
Regex tutorial (URL='http://www-static. Server-side includes.
cc.gatech.edu/classes/RWL/Projects/cita- More links (URL="http://bignosebird.com/
tion/Docs/Design/regex.intro.1.doc.html') ssi.shtml") on server-side includes
and its continutation (URL='http://www-
static.cc.gatech.edu/classes/RWL/Projects/ perl (see also cGI)
citation/Docs/Design/regex.intro.2.doc.
html'). Downloading PERL - ActivePerl (free ) and
Advanced (Perl) Regex t utor ials - mod_perl. You want to write your scripts
Part I, (URL='http://www.perl.com/ in Active Perl; mod_perl is the Perl inter-
pub/a/2003/06/06/regexps.html') Part preter which comes free with your Apache
2, (UR L='htt p://w w w.perl.com /pub/ web server. (URL=http://www.activestate.
a/2003/07/01/regexps.html') and documen- com/Products/?_x=1) products open source
tation (URL='http://www.perl.com/doc/ programming languages tools. Download
manual/html/pod/perltoc.html#perlre_ site for ActivePerl
Perl_regular_expression'). ActivePerl User Guide (URL="http://aspn.
PHP and regex tutorial (URL='http://we- activestate.com/ASPN/docs/ActivePerl/5.8/
blogtoolscollection.com/regex/regex.php') index.html"). In table of contents, look for
How to do Regex in Python (URL='http:// "Getting Started" to see how run example.
www.amk.ca/python/howto/regex/') pl. Also open it in Notepad.
Regular-expressions (URL='http://www. (URL="http://aspn.activestate.com/ASPN/
regular-expressions.info/') Language neu- docs/ASPNTOC-ACTIVEPERL-001/")
tral, but not elementary. Links to books. Help - Online Docs : Getting Started
Regular expressions and .Net (URL='http:// (URL="http://aspn.activestate.com/ASPN/
www.codeproject.com/dotnet/RegexTuto- docs/ASPNTOC-ACTIVEPERL-003/")
rial.asp') Help - Online Docs : ActivePerl FAQ
(UR L='htt p://w w w.greenend.org.u k / ActiveState also has PHP, Python and XSLT
rjk/2002/06/regexp.html') syntax summary products (URL='http://aspn.activestate.
com/ASPN/')

0
Resources on Web-Centric Computing

mod_perl: (URL='http://perl.apache.org/') Perl Monks (URL='http://www.perlmonks.


Sourceforge.net (URL='http://sourceforge. org/index.pl?node=Tutorials'), These range
net/softwaremap/trove_list.php') from the elementary to the advanced. The
useful site is very large, and, newbies will
pErl documentation, Tutorials and find it be easier to start with one of the places
resources above (e.g. from pagereource.com).
(URL="http://stein.cshl.org/WWW/soft-
For tutorials on regular expressions please see ware/CGI/cgi_docs.html") wanted to know
the CGI section. about perl's module cgi.pm. From Lincoln
Stein, who wrote the cgi module.
(URL="http://learn.perl.org/") The site for Tutorial on Using Modules (URL='http://
people learning Perl. Good listing of current stein.cshl.org/genome_informatics/us-
books at all levels. ing_perl_modules/')
Picking up Perl (URL='http://helpguide. CGI Resources (URL='http://cgi.resour-
inmotionhosting.com/perl_faq/'), Easy to ceindex.com/Documentation/Program-
use reference. More complete than elemen- ming_Languages/Programming_in_Perl/').
tary tutorials. 'The weekend crash course' is Links to many tutorials, references, sources
available through Books 24x7 e.g. at many of scripts.
university libraries or if you are a member Perl Tutorial (URL='http://www.perl.com/
of ACM. pub/a/2000/10/begperl1.html'). For those
CGI and Perl Tutroial (URL='http://www. who are sophisticated programmers and
expertwebinstalls.com/cgi_tutorial/'). An- want to start in Perl
other easy place to start, especially if you Perldoc has intermediate level tutorials
want all the facts quickly. (URL='http://perldoc.perl.org/index-tutori-
Beginning Perl Tutorial (URL='http://www. als.html').
pageresource.com/cgirec/index2.htm').
Great place to start. From pageresource. Tutorials related to Perl and Databases.
Perl 5 Tutorial (URL='http://www.extropia.
com/tutorials/perl5/') Tutorial on databases and their perl interface
Perl tutorial (URL='http://www.comp.leeds. (URL='http://www.extropia.com/tutorials/
ac.uk/Perl/start.html'),older, but still a good sql/toc.html').
introduction. A gentle introduction. Database program-
Tizag Tutorial on Perl (URL='http://www. ming with Perl (URL='http://www.perl.
tizag.com/perlT/'). Another fine place to com/pub/a/2003/10/23/databases.html')
begin learning Perl; has information on in- Perl and MySQL (URL="http://www.dev-
terfacing with databases (URL='http://www. papers.com/article/42")
tizag.com/perlT/perlmysqlquery.php') Interfacing MySQL with Perl (URL='http://
Webmonkey tutorials on Perl, CGI, etc. www.oreilly.com/catalog/msql/chapter/
(URL='http://www.webmonkey.com/web- ch10.html'). O'Reilly book chapter. Down the
monkey/programming/perl_cgi/index. Perl/DBI module to interface with MySQL
html'). (URL='http://dev.mysql.com/downloads/
(URL="http://htmlgoodies.earthweb.com/ dbi.html')
primers/perl/"). Perl primers from HTML FreeBSD (URL='http://www.freebsddiary.
Goodies. org/mysql-perl.php').


Resources on Web-Centric Computing

Tutorial on Perl MySQL f unctions (URL="http://perl.about.com/library/week-


(URL='http://www.thescripts.com/serversi- ly/aa030500a.htm") building and installing
descripting/perl/tutorials/perlandmysql-to- Perl modules. They also link to more of
gether/page3.html'). This is from thescripts. their own tutorials (URL='http://perl.about.
com, where you may also post questions to com/od/?once=true&') and (URL='http://
the developer community for various script- perl.about.com/od/softwarescripts/tp/topc-
ing languages and databases. gisites.htm') other Perl resources.
Tutorial on Using Perl etc. to write software (URL="http://perl.about.com/gi/dynamic/
for genome research (URL='http://stein.cshl. offsite.htm?site=http://cgi-lib.berkeley.
org/genome_informatics/'). Includes such edu/") homepage. Library of CGI scripts
topics as subroutines. in Perl; Also directly accesible at Berkely
(URL='http://stein.cshl.org/genome_in- (URL="http://cgi-lib.berkeley.edu/"). In-
formatics/subroutines/') interfacing with cludes documentation, source files, ex-
databases. amples, etc.
(URL='http://stein.cshl.org/genome_infor- Documentation for Perl CGI Module
matics/mysql-dbi/'). (URL="http://perldoc.perl.org/CGI.html").
Documentation is readable and it is easy to
Documentation and Resources. find what you are looking for.
Downloading and installing additional Perl
Perl Documentation at Perl.org (URL='http:// modules (URL='http://www.cpan.org/mod-
www.perl.org/docs.html') perldoc.perl.org ules/INSTALL.html')
(URL='http://perldoc.perl.org/'). Current Google groups on Perl (URL="http://groups.
release is Perl5; google.com/groups?q=Perl+Help"). This
Documentation for Perl4 is at CMU site includes several very useful groups
(URL='http://www.cs.cmu.edu/cgi-bin/ (see green links ): one for Perl beginners,
perl-man') (URL="http://groups.google.com/group/
Perldoc has (URL="http://perldoc.perl. perl.beginners/topics") on Perl modules,
org/CGI.html") including for older versions (URL='http://groups.google.com/group/
(URL="http://search.cpan.org/src/LDS/ comp.lang.perl.modules/topics?lnk=lr')
CGI.pm-3.23/cgi_docs.html"). Also a cheat and another for (URL='http://groups.
sheet (URL='http://perldoc.perl.org/perl- google.com/group/comp.lang.perl.misc/
cheat.html'). topics?lnk=sg') miscellaneous Perl ques-
CPAN (URL="http://www.cpan.org/"). tions. Can not be recommended enough.
Where to find MODULES to add many Search for key words in the Perl beginners
useful functions to your Perl - e.g. the group, for example, and then follow the whole
standard module, oraperl (for Oracle data- thread (link in the upper right). Excellent
bases) etc. Also how Install CPAN Modules resource.
(URL="http://www.cpan.org/modules/IN- Perl community: (URL='http://www.perl.
STALL.html") org/community.html') mailing lists and
(URL="http://www.perl.com/") The Source sites.
for Perl - perl development, perl conferences. CGI and Perl FAQs (URL='http://www.
Articles etc. for serious PERL programmers perl.com/doc/FAQs/cgi/perl-cgi-faq.html').
from the O'Reilly book folk In addition to the FAQs, has a great list of
books and other resources.


Resources on Web-Centric Computing

Scripts for Perl (URL="http://www.webref- tips/04/03/11/1620226.shtml?tid=85&tid=7


erence.com/perl/"). This is the Mother of Perl 0&tid=43") edit all scripts with one line of
site ; intermediate to advanced articles. Perl
(U R L="ht t p://w w w.activestate.com /
Products/ Dow nload / Dow nload. pHp
plex?id=ActivePerl"). Build a custom instal-
lation of Perl and check system requirements Please also check the Multiple Languages listings
- see warning on RedHat Linux v8 in the General CGI section also.
(URL="http://perl.about.com/gi/dynamic/
offsite.htm?site=http%3A%2F%2Fwww. The main PHP site (URL="http://www.
ics.uci.edu%2Fpub%2Fwebsoft%2Flibww php.net/"). Home site for PHP, including
w-perl%2F") Perl libraries for www interac- documentation, download of php processor,
tions - e.g. HTTP etc. and tutorial.
(URL="http://builder.com.com/5100-6371_ PHP Tutorial (URL="http://us4.php.net/
14-5363190-1-1.html") documents with Perl's manual/en/tutorial.firstpage.php") from its
XML::Simple. PERL module which has an makers.
XML parser (written in PERL) PHP: Introduction and Manual (URL="http://
www.php.net/manual/en/").
perl Examples, scripts, Hints Zend makes PHP inter preters, etc
(URL="http://www.zend.com/"). Their
(URL="http://perl.about.com/library/week- DevZone (URL=http://devzone.zend.com/
ly/aa070901c.htm") data in Perl scripts public/view) also links to articles, tutorials
(URL="http://perl.about.com/library/week- and the manual. (URL=http://devzone.zend.
ly/aa070901a.htm") Perl Scripts com/manual/view/page/)
(URL="http://perl.about.com/library/week- (URL="http://www.developer.com/lang/
ly/aa070901d.htm") reads and parses CGI php/article.php/3345121") Patterns within
data PHP.
(URL="http://www.scriptarchive.com/") What can PHP do? (URL="http://php.net/
CGI Scripts. Links for free scripts. manual/en/intro-whatcando.php"). Com-
Scripts.com (URL='http://www.scripts. mentary from the PHP folks.
com/') PHP tutorial from w3schools (URL='http://
(UR L="htt p://www.getcr uising.com / www.w3schools.com/php/default.asp').
crypt/") Scripts From The Crypt / www. Always an excellent start; includes lessons
getcruising.com. More free scripts. on interfacing with XML, MySQL and
Perl Meets Bio-informatics (URL="http:// AJAX.
bio.oreilly.com/"). From O'Reilly - perhaps Working with PHP datatypes (URL="http://
because they've published a book on this www.devpapers.com/article/184"). Several
topic. short tutorials. Gets you going quickly.
Template Toolkit (URL='http://www.tem- PHP -Entry Point - Lesson One (URL="http://
plate-toolkit.org/info.html#Overview') www.devpapers.com/article/162/") includes
Perl and XML (URL="http://www.webrefer- some information on pro's and con's; links
ence.com/perl/tutorial/1/") to to various PHP sites
How to embed XML in an HTML PHP4 tutorial (URL='http://www.thesite-
Page ( U R L="ht t p://t ips.li nu x.com / wizard.com/php/index.shtml')


Resources on Web-Centric Computing

(URL="http://php.net/manual/en/tutorial. PHP Projects at SourceForege (URL='http://


forms.php") in PHP www.firepages.com.au/')
(URL="http://builder.com.com/5100-6374_ DevX Resources and Script in PHP
14-5216364.html?tag=e606") document (URL='http://www.devx.biz/showcats.
statistics with PHP. php?sbcat_id=2&PHPSESSID=1b55ae8f6
Using PHP to extract stats about XML 91d0adee2a77c94e86bf715'). Well catego-
documents. (URL="http://www.google. rized, but many have very few scripts.
com /sea rch?q=site%3Asea rch.c pa n. DevPlug is a PHP Developer's Forum
org+Help+php+perl") help group on PHP (URL='http://www.devplug.com/index.
installation etc. php')
Apache guide to installing and configuring PHP Resource Index (URL='http://php.
PHP with Apache (URL='http://mpcon. resourceindex.com/'). Scripts, snippets of
org/apacheguide/index.php') code, and tutorials; large site, hierarchically
Firepages (URL='http://www.firepages. organized
com.au/'). Large site with downloads for
PHP development, forums, etc. python
(URL='http://www.d.umn.edu/itss/support/
Training/Online/webdesign/php.html') U. of Whetting Your Appetite (URL="http://
Minnesota Duluth. Large excellent set of www.python.org/doc/current/tut/node3.
PHP resources including tutorials, articles html")
on regex, using PHP with databases, and Python tutorial
PHP and Ajax. ( U R L="ht t p://w w w.computer world.
(URL='http://www.phpbuilder.com/col- c o m / n e w sl e t t e r /0,49 0 2 ,10139 0 ,0 0.
umns/validating _ php _user_sessions. html?nlid=APP"). Also follow the links on
php3?page=1'). Session validation. the right hand side
Tips on Debugging in PHP (URL='http:// ( U R L="ht t p://w w w.computer world.
centricle.com/archive/2005/08/php-debug- c o m /s of t w a r e t o p i c s /s of t w a r e /s t o -
ging-tips') ry/0,10801,104484,00.html?source=NLT_
Unit Testing in PHP (URL='http://phpunit. APP2&nid=104484") on why Python, from
de/'). This is also available at older sites. the horse's mouth.
(URL='http://pear.php.net/package/PHPU- Tutorial on Python from Developer.com
nit2') The most current site includes a tutorial (URL='http://www.developer.com/open/ar-
on writing (regression) tests. ticle.php/625901')
Simpler testing utilities are available for JU- (URL="http://www.amk.ca/python/howto/
nit both from (URL='http://www.junit.org/') regex/regex.html") regular expressions in
JUnit and from SourceForge (URL='http:// Python Be sure to also check the general
sourceforge.net/projects/jwebunit/') references on regular expressions in the CGI
PHP port testing for mock objects. section.
(URL='http://www.mockobjects.com')
LastCraft (URL='http://www.lastcraft. And More Server Side Processing
com/simple_test.php')
Implementing Design Patterns in PHP ASP Tutorial (URL="http://www.w3schools.
(URL='http://php.net/manual/en/introduc- com/asp/default.asp") from w3schools - usu-
tion.php') ally excellent introduction.


Resources on Web-Centric Computing

(URL="http://builder.com.com/5100-6389- XML Schemas (UR L="htt p://w w w.


5035160.html?tag=e606") flexible shopping w3.org/2001/XMLSchema"). What are the
cart with XML and ASP. components of an XML Schema and here
their definition in a DTD
xml, WEB sErvIcEs, aNd ( U R L = " h t t p: // w w w.w 3 . o r g / 2 0 01 /
rElaTEd TEcHNoloGIEs XMLSchema.dtd"). Chart of Built-In
DataTypes (URL='http://www.w3.org/
xml TR/2004/REC-xmlschema-2-20041028/
datatypes.html#built-in-datatypes')
Inside XML by Steve Holzner published by XML Recommendations (URL="http://
New Riders 2000. Excellent for both learning w w w.w 3 . o r g / T R / 2 0 0 0 / R E C -x m l -
and as a reference; includes XSL and useful 20001006").
material on interfaces with Java and JDOM XML Specs (URL="http://www.w3c.org/
and SAX. XML/Core/#Publications")
XML and Web Services Unleashed by XML Namespaces (URL="http://www.
Ron Schmelzer, Travis Vandersypen, Ja- w3.o r g / T R /19 9 9/ R E C -x m l - n a m e s -
son Bloomberg, and Madhu Siddalingaiah 19990114/").
published by SAMS 2002. Another book The Cover Pages (URL="http://xml.cov-
useful for learning and as a reference; many erpages.org/"). Important collection of
examples; note that this book includes web on-line reference material on SGML/XML
services. languages and various standards, now
Charles F. Goldfarb's XML Handbook, 5 hosted by OASIS. You may want to start at
Edition by Charles F. Goldfarb and Paul (URL='http://xml.coverpages.org/AboutX-
Prescod published by Prentice Hall 2003. MLCoverPages.html') About XML Cover
Includes some material on web services; Pages. Site is for the knowledgeable (except
for a long time this was the standard; well- possibly the news stories on front page).
written, it is still very useful DTD's attributes (URL='http://www.
Learning XML, Second Edition by Erik T w3schools.com/dtd/dtd_attributes.asp')
Ray published by O'Reilly 2003. More of
a book to learn from than the ones above; Tutorials and articles (Note:
very clear Tutorials on soap and Wsdl
XML 1.1 Bible by Elliotte Rusty Harold
are under the Web services
published by IDG 2004. Includes coverage of
CSS, but very limited coverage of important heading, but information on
topic of schemas, so I would use the other sax, dom, Jdom etc. is here)
books first.
W3C HTML Home Page (URL="http:// XML Tutorial from w3schools (URL="http://
www.w3c.org/MarkUp/") www.w3schools.com/xml/default.asp").
XML homepage from the w3c (URL="http:// Great introductory tutorial. See also their
www.w3c.org/XML/"). Includes description description of XML syntax (URL="http://
of the many working groups and links to www.w3schools.com/xml/xml_syntax.
them, to various languages specifications asp")
and versions, and to many other resourc- TopXML: XML Tools, XML Articles and
es. XML Learning Tutorials (URL="http://


Resources on Web-Centric Computing

www.topxml.com/"). Many tutorials - XML, XML Schema Primer from w3.org


SOAP,XSLT, etc and also links to XML (URL='http://www.w3.org/TR/xmlschema-
parsers. Great site. 0/'). Very good, especially if you know a
Another very basic tutorial (URL="http:// little bit. Three pieces:
w w w.spider pro.com / bu / buxmlm001. Primer (UR L="htt p://w w w.w3c.org/
html"). So you don't get scared away. TR/2004/REC-xmlschema-0-20041028/")
(URL="http://www.wdvl.com/Authoring/ Structures (URL="http://www.w3c.org/
Languages/XML/Tutorials/Intro/toc.html") TR/2004/REC-xmlschema-0-20041028/")
basic tutorial from WDVL. More in-depth DataTypes (URL="http://www.w3c.org/
than some of the other elementary tutorials, TR/2004/REC-xmlschema-2-20041028/")
but doesn't get to schemas XFront has links to many great tutorials
(URL="http://www.programmingtutorials. (URL="http://www.xfront.com/"). includ-
com/xml.aspx") tutorials from IBM, Micro- ing ones on XML Schema (URL="http://
soft, etc. at various levels and on sub-topics www.xfront.com/xml-schema.html"),
(e.g. security). A great resource (URL=http://www.xfront.com/canonical/
(URL="http://tecfa.unige.ch/guides/xml/ sld001.htm). Canonical XML, (URL=http://
pointers.html#section5") links to tools, tu- www.xfront.com/BestPracticesHomepage.
torials, and many resources for XML. Also html) Practices etc. and also XSDs for
has info on links to databases and server-side all countries, all currencies, etc. Great
uses of XML source!
( U R L="ht t p://w w w.z von.org /i ndex. This is from Roger Costello (one of the
php?nav_id=tutorials&mime=html") on authors of the w3c.org Primer) and is a
everything from HTML to XML great resource. (URL="http://www.wdvl.
(URL="http://www.xml.com/") XML From com/Authoring/Languages/XML/Confer-
the Inside Out development, resources, ences/XML2000/schemaBest.html") on
specifications. O'Reilly site with many ar- Best Practices for XML Schema.
ticles (URL="http://www.xfront.com/BestPrac-
What is XML? (URL="http://www.html- ticesHomepage.html") the same best prac-
goodies.com/tutors/xml.html") tices tutorial at another link.
XML Terms (URL="http://webdesign. Zvon tutorials (URL='http://nwalsh.com/
about.com/library/weekly/aa070102a.htm"). docs/tutorials/'). Tutorials on XML, Sche-
What the basic terms mean mas, Namespaces, XPath and XSLT, RDF,
(URL="http://webdesign.about.com/od/ XInclude, XUL etc.
xml/a/aa071601a.htm") About.com Very DevGuru tutorials (URL='http://www.dev-
basic guru.com/features/tutorials/tutorials.asp').
XML and DOM (URL="http://www. Tutorials tend to be oriented towards using
w3schools.com/dom/default.asp"). Usual Microsoft technology rather than standards
excellent introduction from w3schools. based.
com. (URL="http://pd.acm.org/course_slc.cfm?
XML Namespaces (URL="http://webde- pre=XMLPWS&trk=1153&crs=WP-1503-
sign.about.com/library/weekly/aa070802a. 90") from the ACM There are several.
htm"). Introductory tutorial from the About. The next group of tutorials is from IBM:
com site.


Resources on Web-Centric Computing

(URL="http://www-106.ibm.com/devel- Open Source Web Development - Dev Shed


operworks/edu/x-dw-xusax-i.html") under- (URL="http://www.devshed.com/"). Ar-
standing SAX ticles on XHTML,CSS, XML, Perl, etc.
(URL="http://www-106.ibm.com/devel- Developer.com articles on XML and related
operworks/edu/x-dw-xusax-i.html") DOM technologies (URL='http://www.developer.
(URL="http://www-106.ibm.com/devel- com/xml/'). Current and clear articles.
operworks/edu/x-dw-xusax-i.html") XML Links from Moller and Schwartzbach book
in Java (see also a search for JDOM) Tutorial (URL='http://www.brics.dk/ixwt/links.
looks at SAX, DOM, JDOM and JAXP html'). Useful links for everything to do
(URL="http://www-128.ibm.com/devel- with XML and Web Technologies, tho' it
operworks/views/xml/libraryview.jsp") looks like most are not for newbies
from IBM Many are quite advanced (URL="http://www.jars.com/classes/jre-
(URL="http://www.topxml.com/tutorials/ sout.cgi?resource=12045") Resource List-
main.asp?id=jdom") more XML tutorials. ing. Java class to automate the encoding of
(URL='http://nl.internet.com/ct.html?rtr properties from Java into XML.
=on&s=1,1xua,1,8cvb,gojs,hgol,6qvo') In- (URL="http://builder.com.com/5100-
trospection for XML data to map it to Java 6373_14-5258218.html?tag=e606") what
Beans; advanced. you always wanted to know about SAX (and
Reading and Writing XML in .Net XmlReader).
(URL='http://www.15seconds.com/is- When to use SAX and when to use DOM
sue/050601.htm') (URL="http://builder.com.com/5100-
(URL="http://www.developer.com/xml/ar- 6389_14-5165682.html?tag=sc") Design:
ticle.php/3388311") Schemas Use DOM to create data-driven HTML
documents.
other xml resources Using DOM to get conditional XML
(URL="http://www.developer.com/db/ar-
The w3c has links to all its working groups, ticle.php/3413151") the XML Alternative.
for example, the Schema Working Group Configuring / designing your database with
(URL='http://www.w3.org/XML/Sche- XML. XML-Dev (URL="http://xml.org/
ma') xml/xmldev.shtml").An open unmoderated
You can also find new Technical Reports discussion list on development of various
(URL='http://www.w3.org/TR/') XML languages; Now managed by OASIS.
xml.apache.org (URL="http://xml.apache. For the knowledgeable.
org/"). Link to Xerces parser, implementa- Perl and XML (URL="http://www.webrefer-
tions of XSL, etc. A very important site. ence.com/perl/tutorial/1/")
(URL="http://tecfa.unige.ch/guides/xml/ How to embed XML in an HTML Page
pointers.html") Enormous and very useful XML Tools (URL="http://www.w3.org/
set of links on validators and parsers, XML, XML/Schema"). Long and wonderful list
XSL etc, and, tutorials and news about XML from w3.org.
languages. Free XML Tools (URL="http://www.
XML Developer Center Home (URL="http:// garshol.priv.no/download/xmltools/plat_
msdn.microsoft.com/xml/"). Microsoft's ix.html"). By platform, or vendor or name
XML developer center, including articles, etc.
novice to advanced, and links.


Resources on Web-Centric Computing

Alphaworks is IBM's site (URL="http:// (URL="http://www.developer.com/xml/ar-


www.alphaworks.ibm.com/xml"). This is ticle.php/3081641") well-formed XML.
the link for xml; many links to subtopics (URL="http://www-128.ibm.com/devel-
and tutorial on newer technologies (e.g. operworks/xml/library/x-c14n/?ca=drs")
AJAX) Canonical Form. Canonical form standard-
(URL="http://www.w3.org/Consortium/Of- izes possible equivalent renditions of XML
fices/Presentations/Schemas/all.html") of to one (canonical) form; this is important for
schema topics: Slides on why schemas are checking digital signatures, etc. In addition
better than DTDs to the subject in the title, there is a link to
(URL="http://www.it-analysis.com/article. Ogbuji's Thinking XML columns at IBM?s
php?articleid=11384") The user interface. developerWorks (URL=http://www-128.
With, we hope better solutions to acces- ibm.com/developerworks/views/xml/li-
sibility issues brary.jsp?sort_order=desc&expand=&sort_
(URL="http://www.hyfinity.co.uk/Hyfin- by=Date&show_abstract=true&view_
ity%20-%20Bloor%20XML%20Machine. by=Search&searc_by=thinking%20xml:)
pdf"). Interesting view of the ubiquity and (URL='http://www.xfront.com/canonical/
power of XML. CanonicalXML.html'). Very clear tutorial
(URL="http://www-106.ibm.com/devel- from Roger Costello at xfront.com
operworks/xml/library/x-injava/") The Xforms Working Draft (URL='http://www.
Document Object Model. This IBM site w3.org/TR/xforms11/'). More powerful han-
has many links to tutorials, information and dling of data and events than with HTML
documentation on using Java to manipulate forms. See also their (URL='http://www.
XML files, etc. Very valuable. w3.org/MarkUp/Forms/2003/xforms-for-
X ML meets JavaScr ipt in Firefox html-authors.html') XForms for HTML
(U R L='ht t p://developer.mozilla.org / Authors
webwatch/?p=204'). Series of articles on X For m s t ut or ia l f rom w3scho ols
using JavaScript to manipulate XML; many (URL='http://www.w3schools.com/xforms/
Firefox1.5 issues default.asp')
(URL="http://www-106.ibm.com/devel- Will XForms Matter? (URL='http://www.
operworks/edu/x-dw-xusax-i.html") XML transformmag.com/showArticle.jhtml?arti
in Java (see also a search for JDOM). cleID=17100027').
Tutorial looks at SAX, DOM, JDOM and Fight over XForms clouds future of Net
JAXP (URL="http://www.internetnews. (URL='http://news.zdnet.com/2100-9588_
com/dev-news/article.php/3443541") to 22-5581106.html?tag=nl.e539'). See also
get very large. Which can cause problems links on XUL at Mozilla.org and on Flash
?Which some companies have worked on. MX in the miscellaneous section below.
B u s i n e s s C o m m u n i c a t i o n s R e - XML and IDs: what is new (7.06)
view (URL='http://www.bcr.com/bcr- (URL='http://news.com.com/2100-1032_3-
mag/2004/12/p35.php') 5785604.html)
ZDNet (URL='http://news.zdnet.com/2102- w3c addresses addressing in XML
9588_22-5534249.html?tag=printthis'). ( U R L=' ht t p://w w w.eweek.com /a r t i-
(URL="http://www.w3schools.com/dom/ cle2/0,1759,2004454,00.asp')
dom_validate.asp") from XML courtesy of
w3schools.


Resources on Web-Centric Computing

xml discusses xHTml (URL="http://www.topxml.com/parsers/de-


fault.asp") Parsers
(URL="http://www.w3.org/TR/2002/REC- XML parsers including Microsoft's
xhtml1-20020801/") HyperText Markup (URL="http://topxml.com/parsers/default.
Language (Second Edition).Discussion of asp#Microsoft%20Parsers")
XHTML1.0 as a re-formulation of HTML Other Parsers (URL="http://topxml.com/
(URL="http://www.w3.org/MarkUp/2004/ parsers/other_parsers.asp") links and brief
xhtml-faq") Questions and FAQs about why descriptions for many XML parsers.
bother going to XHTML. StylusStudio (URL='http://www.stylusstu-
XHTML 1.1 - Module-based XHTML dio.com/xml_download.html'). Like Altova
(URL="http://www.w3.org/TR/xhtml11/"). (XMLSpy) they also have XL and XQuery
XHTML1.1 which is now a strict reformula- engines, etc.
tion of HTML in XML (UR L="htt p://downloads-zdnet.com.
X HTML Modular ization Over view com/3000-2414-10295171.html?tag=sptlt")
(URL="http://www.w3.org/MarkUp/modu- - ZDNet Downloads. Module (in Java) to
larization") edit XML and XHTML
DTDs for XHTML (URL="http://www. (URL="http://www.jars.com/classes/jre-
w3.org/TR/xhtml1/dtds.html#dtds"). See sout.cgi?resource=12040") Resource Listing
how HTML (XHTML) is formulated in XML/XSLT editor (java based)
an XML DTD. There are several DTDs (URL="http://builder.com.com/5100-6371_
(depending on the version of XHTML you 14-5363190-1-1.html") documents with Perl's
want) XML::Simple. PERL module which has an
XHTML tag index (URL='http://www. XML parser (written in PERL).
devguru.com/Technologies/xhtml/quickref/ Scholarly Validator (URL="http://www.stg.
xhtml_index.html'). See also the section on brown.edu/service/xmlvalid/"). Free on-line
XHTML validator from Brown University for small
files
xmlspy (and other parsers) Simple parser at w3schools (URL='http://
www.w3schools.com/xml/xml_ parser.
(URL="http://www.altova.com/download. asp')
html") XMLSpy Tools. XMLSpy is a Parser Validator in Perl (URL='http://source-
wonderful tool, and you may try their tools forge.net/project/showfiles.php?group_
for 30 days free. Altova also makes tools id=89764')
for XSL (Stylevision) and for RDF editing Parser in PHP (URL='http://us2.php.net/
(Semantic Works). There are free academic manual/en/ref.xml.php'). This parser does
licenses available, and there is excellent not validate; php.net also has tools to create
documentation and a brief tutorial. your own parser.
xml.apache.org (URL="http://xerces. Many XML Tools (URL='http://downloads.
apache.org/"). Link to Xerces XML parser, zdnet.com/Windows/Developer+Tools+-
(API in C++, Java or Perl) at Apache. Con- +Windows/XML+-+Tools+-+Windows/').
stantly evolving. Links to other XML-related ZDNet has a listing of many XML tools for
tools on Apache Homepage (URL='http:// Windows, often with free trials.
xml.apache.org/') css.nu (URL='http://sourceforge.net/proj-
ect/showfiles.php?group_id=89764')


Resources on Web-Centric Computing

XSmiles is an XML borwser for exotic com/articles/client_side_xslt') Good intro-


devices (URL='http://www.x-smiles.org/ duction
xsmiles_objectives.html'). (URL="http://www.w3schools.com/xsl/xsl_
StAX, (URL='http://javaboutique.internet. transformation.asp") XML into XHTML.
com/tutorials/stax/') XSL Homepage of w3c (URL="http://www.
w3c.org/Style/XSL/"). Including links to
xsl / xslT (including xpath) XPath, XQuery, XSLT, XSL-FO etc. There
is a large list of links to specs on all these
XSL/XSLT and XPath - Articles, documentation languages, mailing lists, and software. A
and tutorials. great starting place for these technologies.
You can also find links to examples of XSL
Why both CSS and XSL - which should I style sheets (e.g. at TopXML)
use? (URL="http://www.w3c.org/Style/"). Style Activity Statement (URL="http://
From w3c - who brought you both standards www.w3.org/Style/Activity.html") style
(URL="http://www.w3c.org/Style/CSS- sheets - including CSS and XSL.
vs-XSL") can) and when to us XSL (when (URL="http://www.computerworld.com/
you must). XSL (URL="http://www.w3c. developmenttopics/development/webdev/
org/Style/XSL/") story/0,10801,92787,00.html?nas=APP-
What are the components of XSL (XSLT, 92787") Computerworld. What XSL is
XPath, etc.)? Very useful page, many good and why you should use it. Good start. See
links. also (URL="http://www.computerworld.
(URL='http://www.w3.org/TR/xsl/slice1. com/developmenttopics/development/web-
html#section-N629-Introduction-and-Over- dev/story/0,10801,92797,00.html?nas=APP-
view') Introduction and Overview of XSL 92797").
is also helpful. (URL="http://www.developer.com/xml/
XSL Specs (URL='http://www.w3.org/TR/ article.php/3348311") XSLT and JSF in
xsl/') Cocoon. Using XSLT with Java Beans etc.
XSL Transformations (XSLT) (URL="http:// Advanced. Multi-part tutorial: Discover the
www.w3.org/TR/1999/PR-xslt-19991008"). Wonders of XSLT
w3.org documentation on XSLT Web Style Part 1 -XSLT (URL="http://www.developer.
Sheets (URL="http://www.w3.org/Style/") com/xml/article.php/3314291")
w3c on style sheets - CSS and XSL Part 2: XPath (URL="http://www.developer.
(URL="http://www.w3.org/Style/XSL/") com/xml/article.php/3325751")
(XSL). Links to specs, tutorials, and articles Part 3 of 3: Advanced Techniques:
on XSL, XSLT etc. (URL="http://www.developer.com/xml/
XSLT client-side (URL="http://www. article.php/3339891") Tests and advanced
digital-web.com/articles/client_side_xslt"). techniques
Simple introduction, but you'll need the Part 4: XSLT Quirks (URL='http://www.
www.w3schools.com (URL="http://www. developer.com/xml/article.php/3357231')
w3schools.com/") or other tutorial to go Part 5: Workflows (URL='http://www.de-
further like Tizag tutorial on XSLT (and veloper.com/xml/article.php/3368891')
earlier one on XPath). Like the w3schools (URL="http://www.developer.com/xml/ar-
tutorials, this is a gentle introduction. ticle.php/3354151") Data Model
Client-side XSLT: Not just for server geeks XPath (URL="http://www.w3schools.com/
any more (URL='http://www.digital-web. xpath/default.asp") and XSL (URL=http://

0
Resources on Web-Centric Computing

www.w3schools.com/xsl/xsl_languages. Faces (URL="http://webdesign.about.com/


asp) tutorials. From w3schools.org. I think library/weekly/aa110501a.htm") XPath
this is one of the clearest of the introductory (URL="http://www.developer.com/xml/ar-
tutorials. ticle.php/3383961") Queries Tutorial.
Tizag also has clear introductory tutorials About.com tutorial on XSLT (URL='http://
on XPath (URL='http://www.tizag.com/ webdesign.about.com/b/a/166143.htm')
xmlTutorial/xpathtutorial.php') and XSLT (URL="http://www.developer.com/xml/ar-
(URL='http://www.tizag.com/xmlTuto- ticle.php/3420551") XML and XSL
rial/xslttutorial.php') (URL="http://webdesign.about.com/b/
Learning XSLT has implications for CSS a/116546.htm?nl=1") Stylesheet Language
(URL='http://copia.ogbuji.net/blog/2005- Formatting Objects NOTE: XSL-FO is the
06-21/XSLT___CSS'). Tutorial; main inter- old name for XSLT.
est is using CSS to style XML in browsers XSL-FO for formatting objects. Using FO
Tutorial on XSLT 2.0 (URL='http://nwalsh. with Java (URL='http://javaboutique.inter-
com/docs/tutorials/extreme2006/') net.com/tutorials/FOP/')
Norman Walsh has also posted (URL='http:// (URL="http://webdesign.about.com/cs/
nwalsh.com/docs/tutorials/') xslinformation/a/aaintrotoxsl.htm") to XSL
(URL="http://www.zvon.org/xxl/XPath- - XSL, XSLT, XPath, and XSL Formatting
Tutorial/General/examples.html") tutorial Objects.
with links to examples on the left side. From Introduction to XSL (URL='http://newme-
Zvon dia.purchase.edu/%7EJeanine/interfaces/
XPath Tutorial (URL="http://www.vbxml. xmlstuff.html').
com/xsl/tutorials/intro/default.asp") Java and XSLT (URL='http://www.devel-
Several XSLT Tutorials (URL='http://css. oper.com/java/other/article.php/3313341')
nu/pointers/other.html'). On their home page
(URL='http://css.nu/pointers/'). Tools and Implementations of xslT
Mozilla maintains a lot of information on
XPath and XSL (URL='http://developer. Contemporary browsers all implement XSL for
mozilla.org/en/docs/XPath') rending documents in a browser. These links are
(URL="http://www.developer.com/xml/ for more general implementations of XSL.
article.php/3344421") 2.0? The primary
purpose of XPath is to address parts of an XT (URL="http://www.blnz.com/xt/index.
XML document. XPath uses a compact, html"). Free implementation of XSLT written
non-XML syntax to facilitate use of XPath in java
within URIs and XML attribute values. (URL="http://www.jars.com/classes/jre-
XPath gets its name from its use of a path sout.cgi?resource=12040") Resource Listing
notation as in URLs for navigating through XML/XSLT editor (java based)
the hierarchical structure of an XML docu- (URL="http://www.w3schools.com/xsl/xsl_
ment. transformation.asp") into XHTML Stylus
(URL="http://www.developer.com/java/ Studio sells a full line of tools for XML,
other/article.php/3361261") Writing Java XSLT, etc. (URL='http://www.stylusstudio.
Code to Emulate an XSLT Transformation, com/xslt.html')
Emulating XSLT transformations in Java Many XML Tools (URL='http://downloads.
XSLT and Java Server zdnet.com/Windows/Developer+Tools+-


Resources on Web-Centric Computing

+Windows/XML+-+Tools+-+Windows/') (URL='http://buyersguide.eweek.com/
ZDNet has a listing of many XML tools for bguide/whitepaper/WpDetails.asp?wpId=M
Windows, often with free trials. XMLSpy Tk0NQ&category=&fromlogin=yes&EWS
includes an XSLT engine. =NO') Security issues and XML. Requires
Microsoft tool to create XSLTs (URL='http:// free login at ZDNet
doc.advisor.com/Articles.nsf/nl/15021')
rdf (resource description
Specific extended MLsMathML etc. frameworkis a resource for
and also rdf and rss describing catalogs)

Note: This section contains XML and security RDF Primer (URL="http://www.w3.org/
first, then RDF and RSS, XML and Databases, TR/rdf-primer/")
then MathML and Amaya, XML in the financial RDF Spec (URL="http://www.w3.org/
services industry and then miscellaneous. The RDF/")
Semantic Web, Web 2.0, AJAX, mashups etc. RDF is of interest (URL="http://search.
are in their own section. dmoz.org/cgi-bin/search?search=RDF") to
librarians, etc.
(URL="http://www.looselycoupled.com/ RDF Validator (URL='http://www.w3.org/
opinion/2004/oneill-trust-infr1213.html") RDF/Validator/')
XML and security, which comes first. Mozilla site on RDF (URL='http://developer.
(URL="http://fonpc18.hum.uva.nl/Taal- mozilla.org/en/docs/RDF')
Generatie/WWW/xml.coverpages.org/ws- And some examples (URL='http://www.
security.html") is the specification for web mozilla.org/rdf/doc/examples.html')
services security. This is from OASIS. What is RDF? (URL='http://www.xml.
(URL="http://sunxacml.sourceforge.net/ com/pub/a/2001/01/24/rdf.html/')
guide.html") eXtensible Access Mark-up From O'Reilly site XML.com. Zvon tutorials
Control Language. This is Sun's implemen- (URL='http://nwalsh.com/docs/tutorials/')
tation and programmer's guide. Tutorials on XML, Schemas, Namespaces,
On-going news (URL='http://sunxacml. XPath and XSLT, RDF, XInclude, XUL
sourceforge.net/') etc. Relational databases on the semantic
( U R L="ht t p://w w w.w3.org /2001/03/ web and RDF (URL='http://dig.csail.mit.
WSWS-popa/paper23/") secure web ser- edu/2006/dbview/dbview.py')
vices. From w3.org, of course. SAML stands See also Tim Berners-Lee paper which
for Security Assertion Mark-up Language. started this subject (URL='http://www.
(URL="http://www.w3.org/2004/08/ws-cc/ w3.org/DesignIssues/RDB-RDF.html')
aaccws-20040827") XACML . This area is
still changing ? Suggest you search the w3.org rss ( really simple syndicationis
site for these two extensions: URL="http:// how an xml feed is used to update
www.w3.org/Encryption/2001/") and work- News and Blogs continuously)
ing group at w3.org
(URL="http://www.internetnews.com/ What is RSS? (URL="http://www.xml.com/
dev-news/article.php/3344041"), added to pub/a/2002/12/18/dive-into-xml.html").
Apache Project From O'Reilly - good casual introduction;
includes a sample to get you started.


Resources on Web-Centric Computing

(URL="http://www.webreference.com/au- All the following information on RSS is


thoring/languages/xml/rss/intro/2.html") from one of my students: (URL="http://es-
What is RSS? From webreference.com - lots saysfromexodus.scripting.com/xml/script-
of information. ingnews2.xml")
(URL="http://www.webreference.com/au- XML News by Dave Winer; Winer designed
thoring/languages/xml/rss/intro/3.html") this format at Userland and (URL="http://
Introduction to RSS. davenet.scripting.com/1997/12/15/scripting-
(URL="http://www.webreference.com/au- NewsInXML") and included it in his blog.
thoring/languages/xml/rss/intro/2.html") The history of RSS (URL="http://blogs.law.
Syndication and Aggregation. harvard.edu/tech/rssVersionHistory")
(URL="http://www.webreference.com/au- RSS 2.0 Spec (URL="http://blogs.law.har-
thoring/languages/xml/rss/") on RSS. vard.edu/tech/rssVersionHistory")
(UR L="htt p://w w w.lear ningcircuits. (URL="http://www.purplepages.ie/RSS/
org/2004/may2004/0405_Trends.htm") netscape/rss0.90.html") Using RSS 0.9,
XML to feed info on sites to subscribers. clear explanation, though RSS 2.0 is current
RSS monitors (new) content on sites and spec
feeds it to subscribers. May also be used RSS Aggregators / readers. Full list at
for on-going education. (URL="http://blogspace.com/rss/read-
(URL="http://www.newarchitectmag.com/ ers").
archives/2000/02/eisenzopf/") headlines Mac OS X: NetNewsWire (URL=http://ran-
with RSS. chero.com/netnewswire/).
Many RSS scripts (URL="http://www. Windows: SharpReader (URL="http://www.
webreference.com/scripts/") sharpreader.net/")
Scripts for Perl and RSS (URL="http://www. Linux: Straw (URL="http://www.nongnu.
webreference.com/perl/"). Mother of Perl org/straw/").
site. Web: Bloglines (URL="http://www.blog-
Exploring RSS and XML in Flash lines.com/")
(URL="http://www.webreference.com/xml/ RSS Validators: (URL="http://feedvalidator.
column82/") org/")
(URL="http://www.garshol.priv.no/down- (URL="http://rss.scripting.com/"). Selected
load/xmltools/tools-rss.rdf") site listing free Sites with RSS Feeds
xml tools. British Broadcasting Corporation (http://
(URL="http://www.internetnews.com/dev- news.bbc.co.uk/shared/bsp/hi/services/ht-
news/article.php/3431901") Exposure or mlsyndication/html/default.stm)
pod-casting. An audio RSS feed DevX (http://www.devx.com/DevX/Ar-
(URL="http://www.w3.org/2001/10/glance/ ticle/16190)
doc/howto") news feeds from w3.org, but LiveJournal Syndicated Feeds (URL="http://
with a quick 'cheat sheet' on how to do it. www.livejournal.com/syn/list.bml")
IBM maintains a site called alphaworks United States Department of Defense ( http://
(URL="http://www.alphaworks.ibm.com/ www.dod.gov/news/rss/ (URL="http://
rss"). www.dod.gov/news/rss/")
This site provides current information WebReference.com (http://www.webref-
about RSS and other new technologies. erence.com/services/news/), For a more
(URL='http://developer.mozilla.org/en/ exhaustive list, go to the RSS Compendium
docs/RSS') (http://allrss.com/rssfeeds.html)


Resources on Web-Centric Computing

(URL="http://www-106.ibm.com/devel- What is XQuery? (URL='http://www.xml.


operworks/webservices/demos/weather/in- com/pub/a/2002/10/16/xquery.html')
dex.html") IBMs RSS feed on weather. Introduction at O'Reilly site xml.com.
Quick Start on RSS (URL='http://software. XQuery tutorial (URL='http://www.brics.
techrepublic.com.com/abstract.aspx?docid= dk/~amoeller/XML/querying/').
89736')Requires free registration, but worth An Introduction to XQuery (URL='http://
it. www-128.ibm.com/developerworks/xml/
RSS Tutorial (URL='http://www.mnot. library/x-xquery.html'). A look at the w3c
net/rss/tutorial/'). Gentle introduction with schema with many links to other resources.
links to more advanced information. Using XML with Databases Tutorial
RSS Workshop (URL='http://rssgov.com/ SQLX.org is devoted to SQL and XML
rssworkshop.html'). Links to places to learn working together (URL='http://www.sqlx.
how t create your own feed in the language org/'). Because SQL is an ISO standard its
of your choice; lots of examples. specs are copyrighted; a copy may be bought
WebKnowHow articles on RSS (URL='http:// through SQLX/XML
www.webknowhow.net/dir/Other_Topics/ Programming with SQL and XML
XML/index.html'). Introductory. (URL='http://www.research.ibm.com/jour-
O'Reilly has articles on RSS (URL='http:// nal/sj/414/reinwald.pdf'). Excellent and
www.oreillynet.com/rss/'). Also check out comprehensive article.
their tutorials (URL='http://www.oreillynet. XViews for implementing Views on XML
com/topics/rss/rss'). databases (URL='http://dl.alphaworks.ibm.
(URL="http://itmanagement.earthweb. com/technologies/xviews/ViewsForXML-
com /columns/executive_tech /ar ticle. Whitepaper.pdf') . This is an IBM research
php/3617901") for CSS poor in most RSS paper, not a w3c standard. The web standard
readers (7/06) has moved to RDF (see above) and the Data
Building a Generic RSS Class in PHP Access Language (next item).
(URL='http://www.devarticles.com/c/a/ T he Dat a Access Work i ng G roup
MySQL/Building-a-Generic-RSS-Class- (URL='http://www.w3.org/2003/12/swa/
With-PHP/'). Requires some knowledge of dawg-charter'). It is also working on issues of
MySQL and PHP. querying on the semantic web (URL='http://
Working with RSS and Oracle JDeveloper www.w3.org/2001/sw/DataAccess/')
(URL='http://www.developer.com/java/ Relational Databases on the Semantic Web
web/article.php/3524171').If you prefer Or- (URL='http://www.w3.org/DesignIssues/
acle and Java (URL='http://www-128.ibm. RDB-RDF.html')
com/developerworks/library/x-wxxm36. Does RDF implement E-R? by Tim Bern-
html?ca=dgr-lnxw03RSSExtensions') ers-Lee. Integrating web services with
SQL Server (URL='http://www.developer.
xml and databases, including com/db/article.php/3547866')
xquery; please also see rdf A lso u si ng t he SQLX M L classes
(URL='http://www.developer.com/db/ar-
XQuery for database querying (URL='http:// ticle.php/3341881')
www.w3.org/TR/xquery/'). This is now the XML and DB2 (URL='http://itmanagement.
standard. earthweb.com/datbus/article.php/3455461')
XQuery Tutorial (URL='http://www.
w3schools.com/xquery/default.asp')


Resources on Web-Centric Computing

( U R L=' ht t p://w w w.eweek.com /a r t i- (URL="http://www.eweek.com/print_


cle2/0,1759,1747224,00.asp') IBM's SOA article/0,1761,a=129009,00.asp") Sharpen
plans Banks' Biz Reports. XBRL (eXtended
( U R L=' ht t p://w w w.eweek.com /a r t i- Business Reporting Language) must be used
cle2/0,1759,1747224,00.asp'). XMLSpy by banks and other public companies (per
includes an XQuery engine Sarbanes-Oxley Law) to consolidate units
Oracle's site (URL='http://www.oracle.com/ when they report their financial results; will
technology/tech/xml/index.html'). Example: also migrate to internal reports.
(URL='http://www.oracle.com/technology/ (URL="http://www.eweek.com/print_
pub/articles/vasiliev_xquery.html') Oracle article/0,1761,a=111879,00.asp") Ease Fi-
version of XQuery and Using XQurey with nancial Reporting. How XMRL will help
XSL (URL='http://www.oracle.com/tech- (URL="http://www.eweek.com/print_
nology/oramag/oracle/05-sep/o55xquery. article/0,1761,a=119178,00.asp") Road to
html') Compliance. What's involved in compliance
for Sarbanes-Oxley (SOX) from an IT point
mathml and amaya of view. SOX compliance is a big topic.
(URL="http://zdnet.com.com/2100-1107-
MathML (URL="http://www.w3.org/ 5267008.html") into objects - News ZD-
Math/"). Home page at w3.org. Includes Net. BPEL (Business Process Execution
a complete description of MathML Language) for the non-techie
(URL='http://www.w3.org/TR/MathML2/ (URL="http://www.infoworld.com/article/
chapter4.html') 04/07/02/27TCwsibpel_1.html") Is BPEL the
Amaya Home Page (URL="http://www. real deal?: July 02, 2004: By Phillip J. Wind-
w3.org/Amaya/"). Web authoring tool which ley : APPLICATION_DEVELOPMENT :
includes support for MathML APPLICATIONS : WEB_SERVICES
MathML in Mozilla (URL='http://www. (URL="http://www.developer.com/xml/ar-
mozilla.org/projects/mathml/'). A rich ticle.php/2247851") ebXML
resource, including transling from TEX, The interaction of eBXML (URL="http://
SOAP interfaces, etc. www.webservicesarchitect.com/content/ar-
ticles/irani02.asp") and (URL="http://www.
financial service Industry webservicesarchitect.com/content/articles/
irani03.asp") Services
(UR L="http://www-128.ibm.com /de- (URL="http://xml.coverpages.org/ni2004-
veloper works/xml/librar y/x-think22. 11-08-a.html") Uses XML to define a vo-
html?ca=drs"). A good introduction to cabulary for common business forms, such
eBXML, XBRL, FIXML, MDDL, FpML, as purchase orders etc.
and assorted standards groups for this in- (URL="http://news.zdnet.com/2100-3513_
dustry 22-5444901.html") to work with eBXML
(URL="http://www.developer.com/java/
other/article.php/2204681") Introducing miscellaneous: voiceml, xul, Wml
the Vision. What is eBXML? Follow links (wireless), etc.
at bottom for series of articles - for whole
series of articles (URL='http://www.w3schools.com/xml/
xml_technologies.asp'). Short description
of the main XML Technologies.


Resources on Web-Centric Computing

MetaMap of All the XML Technologies XInclude (URL="http://www.w3.org/


(URL='http://www.mapageweb.umontreal. TR /2004/REC-xinclude-20041220/").
ca/turner/meta/english/index.html'). A won- An evolving specification for including
derful map of how these are all related and &merging XML documents (URL="http://
what the acronyms mean. news.zdnet.com/2100-3513_22-5498458.
The Mark-up Languages (URL='http:// html?tag=nl.e539") surprisingly it works
www.computerworld.com/news/2005/ only with schemas (no DTDs). Here is a brief
story/0,11280,103711,00.html?source=NLT_ introduction (URL='http://www.devxnews.
APP&nid=103711'). Description of what com/article.php/3449981')
is around (as of August 2005) including Zvon tutorials (URL='http://nwalsh.com/
less widely used ones (URL='http://www. docs/tutorials/')
computerworld.com/action/article.do?com Tutorials on XML, Schemas, Namespaces,
mand=viewArticleBasic&articleId=10371 XPath and XSLT, RDF, XInclude, XUL
2&intsrc=article_pots_side') etc. Primer on OpenXML (Microsoft) and
(URL="http://builder.com.com/5100- Open Document Format (everone else)
6371_14-5034846.html?tag=e606") add- (URL='http://www.baselinemag.com/ar-
ing functionality to your Flash movies ( ticle2/0,1540,1933690,00.asp')
FlashXML) ( U R L="ht t p://w w w.eweek.com /ar ti-
(URL="http://www.alphaworks.ibm.com/ cle2/0,1895,1934910,00.asp") documents
tech/xviews") designing GUIs format - vs. Microsoft (3/06).
XUL (URL='http://developer.mozilla.org/ OpenXML gaining (URL="http://www.
en/docs/Introduction_to_XUL') eweek.com/article2/0,1895,1950375,00.
Tutorial on creating application with asp") (4/06... especially after acceptance by
Mozilla (URL='http://www.csie.ntu.edu. ECMA (URL='http://www.eweek.com/ar-
tw/%7Epiaip/docs/CreateMozApp/index. ticle2/0,1895,1900768,00.asp')
html'). Includes chapter on XUL ODF (O pen Docu ment For mat) is
(URL="http://www.wdvl.com/Authoring/ ( U R L=' ht t p://w w w.eweek.com /a r t i-
Tutorials/xml.html") VoiceXML etc. from cle2/0,1895,1900768,00.asp')
WDVL.com (URL="http://www.devsource.com/ar-
Introduction to WML (URL='http://web- ticle2/0,1895,1988024,00.asp") between
design.about.com/b/a/166148.htm?nl=1'). Microsofs OpenXML and Open Document
WML is Wireless Mark-up Language. Format (ODF) (7/06). Microsoft?s plug-in
Wireless Web Initiative (URL='http://www. for conversions from Office To OpenXML
w3.org/Mobile/'). (7/06)
Mastering Wireless Programming: First (UR L="htt p://linux.webbuyersguide.
Steps (URL='http://www.developer.com/ com/news/4182-wbglinux_news.html")
net/csharp/article.php/3429261') behind ODF; You should also check out
(URL="http://www.microsoft.com/office/ Massachusettss push for ODF.
xml/default.mspx") Schemas (URL='http://downloads.zdnet.com/Win-
( U R L="ht t p://w w w.cs.brandeis.edu / dows/ Developer +Tools+-+Windows/
%7Ejamesp/arda/time/") language for XML+-+Tools+-+Windows/'). ZDNet has
temporal events. a listing of many XML tools for Windows,
often with free trials.


Resources on Web-Centric Computing

WEB sErvIcEs (plEasE NoTE ented Architecture (SOA)? What are Web
THaT maNy lINKs rElaTEd To Services? Very good introduction to SOA,
WEB sErvIcEs - E.G. sEcurITy, for those who already know the lingo. 8
moBIlE WEB, ETc. arE IN pages!
sEcTIoN dIrEcTly aBovE, SOA (without web services) in plain lan-
cHorEoGrapHy aNd BpEl arE guage (URL='http://itmanagement.earth-
IN THIs sEcTIoN) web.com/article.php/3629561')
The difference between SOA and Web Ser-
vices' (URL='http://ct.enews.baselinemag.
Web services - General information com/rd/cts?d=189-336-2-16-170148-36925-
0-0-0-1')
Overview of Web Services (URL='http:// (URL="http://www.infoworld.com/article/
www.webservicescenter.com/frame_Over- 04/02/20/08OPstrategic_1.html") Web
view_WS.htm'). A brief overview; not much services alphabet soup: Application Devel-
detail; links to implementing web services opment. Web services alphabet soup - and
with Java on Linux. modularity.
What are web services? (URL="http://loose- The Web Services Family Tree (URL='http://
lycoupled.com/glossary/web%20services"). www.modernlifeisrubbish.co.uk/article/
The 'home' links to many articles about web web-tech-family-tree').
services. From XHTML to AJAX, Understanding Ser-
Client and server (URL="http://www.html- vice-Oriented Architecture (URL='http://
goodies.com/letters/288.html") www.developer.com/java/web/article.
Web Service Demos (URL='http://www. php/2207371'). Great introduction (actually
mindreef.net/tide/scopeit/start.do') a book chapter). 'Composition' has the same
Fun to try. w3c.org definition of a web meaning as composition of functions in math
service (URL='http://www.w3.org/TR/ws- - i.e. one followed by another
arch/#whatis'). This is in their document on ( U R L=' ht t p://w w w.comput e r world .
web service architecture. c o m / n e w s l e t t e r / 0 , 4 9 0 2 , 9 47 2 0 , 0 0 .
(URL="http://mapageweb.umontreal.ca/ html?nlid=AM'). Another book excerpt,
turner/meta/english/index.html") How the slightly less detailed than the previous
different technologies are related. May be one.
more useful after you know a little about the Web Services Architecture (URL='http://
area, and then invaluable. There is also an w w w-128.i b m .c o m /d e velo p e r-
information link (URL='http://mapageweb. wo r k s / we b s e r v i c e s / l i b r a r y/ w- ov r /
umontreal.ca/turner/meta/english/index. ?dwzone=webservices'). Although this
html') claims to describe only IBM's architecture,
Relationship of Web Service's Major Com- it is a good description of all the web service
ponents (URL='http://www.ws-standards. architectures.
com/'). Simpler than the MetaMap; good Web Services Architecture (URL='http://
place to start, then go to MetaMap. This site www.webservicesarchitect.com/content/
also has an excellent glossary (URL='http:// articles/webservicesarchitectures.pdf ').
www.ws-standards.com/glossary.asp') Description of basic and more complex
(URL="http://www.developer.com/java/ web services stacks; covers major vendors:
web/article.php/2207371") Service Ori- Sun, IBM, Microsoft, Oracle, HP, BEA and
Borland.


Resources on Web-Centric Computing

Web Services Essentials (URL='http://devel- Secu r t y issues (U R L='ht t p:// blogs.


opers.sun.com/techtopics/webservices/es- z d n e t .c om /s e r v ic e - o r ie nt e d /i nd ex .
sentials.html'). From Sun, this emphasizes php?p=62&tag=nl.e539').
a role for Java. Of course, designed to be Performance issues (URL='http://blogs.
platform neutral, web service may be imple- z d n e t .c om /s e r v ic e - o r ie nt e d /i nd ex .
mented in other languages, too. php?p=59')
Introduction to Web Services (URL='http:// The Rise and Fall of CORBA (URL="http://
www.altova.com/documents/aot/webser- www.acmqueue.com/modules.php?name=
viceswebbasedworkbook/ModelPage_ Content&pa=showpage&pid=396"). What
MOD01_01.html'). Very clear, but basic. we can learn from CORBA, one of the
From Altova, creators of XMLSpy. Starts ancestors of web services.
general and then moves to their tool. Service The Top 5 Myths about SOA (URL='http://
Oriented Architecture: How and Why. Ar- www.intelligententerprise.com/channels/
guments of for IT managers and why SOA appmanagement/showArticle.jhtml?article
is the way to go. Good survey. ID=186700581').
New Rules Govern the SOA Lifecycle Capitalizing on SOA (URL='http://www.
(URL='http://www.looselycoupled.com/ developer.com/design/article.php/3588361').
opinion/2005/rodri-rules-gov0701.html'). Good discussion of SOA patterns, philoso-
As Ye SOA So Shall Ye Reap (URL='http:// phy, pros and cons
www.computerworld.com/action/article. TestingQuality in an SOA (URL='http://it-
do?command=viewArticleBasic&articleId management.earthweb.com/columns/print.
=269329&source=NLT_APP&nlid=48') , php/3416971')
Humorous story. The Value of SOA (URL='http://www.de-
(URL='http://www.acmqueue.com/mod- veloper.com/java/ent/print.php/3424671')
ules.php?name=Content&pa=showpage Close the loop: Using SOA to automate
&pid=246') Fuzzy boundaries: Objects, human interaction (URL='http://www.de-
Components and Web Services. Which to veloper.com/java/ent/print.php/3606031').
use when; further discussion (URL='http:// With specific detailed example.
www.acmqueue.com/modules.php?name= White Papers from Ziff Davis (URL='http://
Content&pa=showpage&pid=327'). www.webbuyersguide.com/bguide/White-
Web Services Hurdles (URL='http:// paper/Wplibrary.asp_Q_sitename_E_web-
w w w.c om put e r world .c om /ne wsle t- buyersguide'). Including on ROI, strategies
ter/0,4902,95201,00.html?nlid=AM'). In- for success, costs and benefits, how to adopt
cluding security and reliability. Also cultural etc.
changes (URL='http://www.computerworld. Fou r Steps to SOA ( U R L='ht t p://
com/developmenttopics/development/ w w w.c om put e r wo rld .c om /n e wsle t-
story/0,10801,110771,00.html?source=NLT_ ter/0,4902,109387,00.html?nlid=AM')
APP&nid=110771') and peoples' customs. (URL='http://www.baselinemag.com/ar-
Quality control issues (URL='http://www. ticle2/0,1540,1938218,00.asp) Lessons from
computerworld.com/managementtop- Early SOA Adopters.
ics/management/story/0,10801,110436,00. SOA FAQs (URL='http://www.mcpresson-
html?source=NLT_APP&nid=110436') line.com/mc/.6b3cde85'). Free registration at
No warranties, or QoS issues (URL='http:// MC Press On-line required.
www.looselycoupled.com/stories/2004/ Building SOA Your Way (URL='http://
warrant-dev1004.html'). www.infoworld.com/archives/emailPrint.


Resources on Web-Centric Computing

jsp?R=printThis&A=/article/05/09/12/ Web Services Addressing Standards: Core


37FEsoaevolve_1.html'). Making it work (URL='http://www.w3.org/TR/2006/REC-
for you; case studies. ws-addr-core-20060509/').
Finding Your Way to SOA (URL='http:// SOAP Binding (URL='http://www.w3.org/
www.sun.com/software/media/flash/tour_ TR/2006/REC-ws-addr-soap-20060509/').
soa/index.html'). Sun introduction in either Explanation of what the addressing stan-
a business or technical version. dard do (URL='http://www.eweek.com/ar-
(URL='http://www.baselinemag.com/ ticle2/0,1895,1960351,00.asp')
print_article2/0,1217,a=182675,00.asp') Standards to Improve Perfor mance
SOA: Integrating Applications. Case studies (URL='http://www.devxnews.com/article.
of who did what and how much they saved php/3463881') and (URL='http://www.
eweek.com/article2/0,1759,1763645,00.
Web services: Books and asp')
documentation Web Services Polices (URL='http://
www.w3.org/2004/08/ws-cc/gdfpwsp-
Please note that standards in this area are issued by 20040904'). w3c compares their version
both W3C (for XML and many of its extensions, with that from IBM and Microsoft. Includes
SOAP, WSDL) and OASIS (URL=http://www. discussion of how to specify Quality of
oasis-open.org/committees/tc_cat.php?cat=ws), Service (QoS)
also WS-I (URL=http://www.ws-i.org/). Table of all policy groups and standards on
web services at w3c.org (URL='http://www.
The Executive's Guide to Web Services by w3.org/2002/ws/')
Eric A. Marks and Mark J. Werrell published WS-I (URL='http://www.ws-i.org/'). WS-I,
by Wiley, 2003. A lot of managerial discus- a consortium of major software provides
sion of the advantages of SOA, but a very such as IBM, SAP, and Microsoft.
clear description of the protocol stacks and (URL='http://www.infoworld.com/ar-
what each part of web services does. ticle/06/04/21/77668_HNwsimessage_
Understanding Web Services by Eric New- 1.html?source=NLC-WS2006-04-26')
comer, Addison Wesley, 2002. Excellent asynchronous messaging standard.
introductions; second book is an update of OASIS (URL='http://www.oasis-open.org/
the first. specs/index.php'). They have issued stan-
Web Services Essentials by Ethan Cerami dards on UDDI, reliability, security, transac-
published by O'Reilly 2002. , Excellent tions, and eBXML. They develop the UDDI
look at enough of the technology so you Specs (URL='http://lists.oasis-open.org/
understand what is really happening; also archives/tc-announce/200501/msg00000.
detailed information about installing and html'). They also have three security related
interfacing with the server if you will be standards: for exchanging security related
responsible for that too. information (URL='http://www.oasis-
XML Protocols Matrix (URL='http://www. open.org/committees/tc_home.php?wg_
w3.org/2000/03/29-XML-protocol-matrix'). abbrev=security') for secure web services
Who is in charge of what protocol. (URL='http://www.oasis-open.org/com-
Web Services Architecture (URL='http:// mittees/tc_home.php?wg_abbrev=wss')
www.w3.org/TR/ws-arch/'). for secure exchange of multiple messages


Resources on Web-Centric Computing

(URL='http://www.oasis-open.org/commit- soap/default.asp') and WSDL (URL='http://


tees/tc_home.php?wg_abbrev=ws-sx') www.w3schools.com/wsdl/default.asp')
Web Service Management (WSDM) (URL='http://www.webreference.com/js/
(URL='http://www.internetnews.com/dev- column96/') columns 96 to 106 (each of
news/article.php/3488811') which includes which is multi-page) includes coverage of
both Management of Web Services (MOWS) calling web services from IE and of writing
and Management Using Web Services DTDs for XML.
(MUWS). (URL="http://mapageweb.umontreal.ca/
WSDM homepage (URL='http://www.oa- turner/meta/english/index.html") of how
sis-open.org/committees/tc_home.php?wg_ the different technologies are related. May
abbrev=wsdm') links (near the bottom) to be more useful after you know a little about
primers on both MOWS and MUWS. the area, and then invaluable. There is also
Web Ser v ice Modeli ng O ntlolog y an information (URL='http://mapageweb.
(URL='http://www.w3.org/Submission/ umontreal.ca/turner/meta/english/index.
WSMO/') Semantic html')
Annotations for WSDL Working Group xmethod.com tutorials (URL='http://www.
(URL='http://www.w3.org/2002/ws/saws- xmethods.net/ve2/ViewTutorials.po')
dl/') are developing standards for semantic Web Services (URL='http://msdn.microsoft.
web services. com/webservices/webservices/')
Links to SOAP, Web Services and related Large collection of articles on Web Services
specifications (URL='http://www.soaprpc. at MSDN. Everything from Web Services
com/specifications.html'), unfortunately last Basics (URL='http://msdn.microsoft.com/
updated in 9/05. webservices/webservices/understand-
ing/webservicebasics/default.aspx') to
Web services: articles and Tutorials very advanced. For example, start with the
(URL='http://msdn.microsoft.com/webser-
Web Services Primer (URL='http://www. vices/webservices/understanding/webser-
xml.com/lpt/a/760'). Excellent place to start; vicebasics/default.aspx?pull=/library/en-us/
from O'Reilly and XML.com; many links dnwebsrv/html/webservbasics.asp') XML
at bottom of article. Web Services Basics or the non- technical
Web Services Architecture (URL='http:// (URL='http://www.microsoft.com/net/ba-
w w w-128.i b m .c o m /d e velo p e r- sics/webservicesoverview.asp') See What
wo r k s / we b s e r v ic e s / l i b r a r y/ w- ov r / Web Services Can Do for You and move on
?dwzone=webservices'). Although this to articles on security, problems with SOAP
claims to describe only IBM's architecture, encoding, etc.
it is a good description of all the web service ACM Portal (URL='http://portal.acm.
architectures. This is a very general article; org/toc.cfm?id=1139922&coll=portal&dl=
if you want more information at this level, ACM&type=issue&idx=J79&part=period
please look in the section on Web Services ical&WantType=periodical&title=Commu
- general information. nications%20of%20the%20ACM&CFID=
Web Services tutorial (URL='http://www. 485357545&CFTOKEN=485357545') Spe-
w3schools.com/webservices/default.asp') cial Issue of CACM on 'Services Science',
After this tutorial, go to their tutorials on which includes Web Services: vol. 49, July
SOAP (URL='http://www.w3schools.com/ 2006. Issue has many articles, including

0
Resources on Web-Centric Computing

(URL="http://delivery.acm.org/10.1145/114 CMP=ZHP') Understand Web Services


0000/1139944/p30-spohrer.pdf?key1=11399 Reliable Messaging.
44&key2=7572863511&coll=portal&dl=AC Google Directory on Web Services and
M&CFID=485357545&CFTOKEN=48535 SOAP (URL='http://www.google.com/Top/
7545") Introduction, (URL="http://delivery. Computers/Programming/Internet/Service-
acm.org/10.1145/1140000/1139945/p35- Oriented_Architecture/Web_Services/
chesbrough.pdf?key1=1139945&key2=0203 SOAP/FAQs,_Help,_and_Tutorials/')
863511&coll=portal&dl=ACM&CFID=485 (URL="http://www.webservicesarchitect.
357545&CFTOKEN=485357545") Research com/content/articles/samtani04.asp") Web
Manifesto, (URL="http://delivery.acm. services, SOA and Application Frameworks.
org/10.1145/1140000/1139946/p42-sheehan. Making them work together to address issues
pdf?key1=1139946&key2=7113863511&co such as scalability, security, and transaction
ll=portal&dl=ACM&CFID=485357545& and state management. Links to a reading
CFTOKEN=485357545") Understanding list on the left. Site, focuses on web services
Service Sector Innovation, (URL="http:// architecture. Securing Web Services the
delivery.acm.org/10.1145/1140000/1139947/ Low-Tech Way (URL='http://www.devel-
p48-zysman.pdf?key1=1139947&key2=6 oper.com/services/article.php/3649576')
523863511&coll=portal&dl=ACM&CFI
D=485357545&CFTOKEN=485357545") soap
Algorithmic Decomposition of Services,
and (URL="http://www.acmqueue.com/ Be sure to look in the sections on general infor-
modules.php?name=Content&pa=showpa mation and tutorials (directly above) first; this
ge&pid=396") section includes examples and language-depen-
What we can learn from CORBA, one of dent/platform-dependent information.
the ancestors of web services. Design of
Web Services (URL='http://xfront.com'). SOA P P r i me r ( U R L=' ht t p://w w w.
Thought provoking tutorial from Roger w3.org /TR /2003/ R EC-soap12-par t0 -
Costello. Costello posts many excellent 20030624/#L1149').
tutorials here, too. SOA P t utor ial ( U R L='ht t p://w w w.
Web Services: a B2B demonstration w3schools.com/SOAP/default.asp')
(URL='http://builder.com.com/5100-6389_ Understanding Web Services: Part I SOAP
14-5141373.html?tag=sc') (URL='http://www-128.ibm.com/devel-
Complete sophisticated example. XML- operworks/edu/ws-dw-ws-understand-web-
RPC tutorials (URL='http://www.xmlrpc. services1.html').You need an IBM password
com/directory/1568/tutorialspress'). See also for this, so it is good for academic use and
their homepage (URL='http://www.xmlrpc. those who use IBM products.
com/') is ancestor of SOAP and many SOAP A rch ive s of SOA P ( U R L=' ht t p://
messages imitate this process. d iscu ss.develop.com /a rch ive s /
Combine Polymorphism with Web Services wa.exe?A0=soap&D=0') at Discuss.De-
(URL='http://www.developer.com/design/ velop.com. Discussion list for problems
article.php/3459001') implementing SOAP applications. Search-
(URL='http://www-128.ibm.com/devel- able.
operworks/webservices/edu/ws-dw-ws- SOAP tutorial (URL='http://www.altova.
wsrm-i.html?S_TACT=105AGX19&S_ com/documents/aot/webserviceswebbased-


Resources on Web-Centric Computing

workbook/modelpage_mod04_01.html). soap.html') The O-Reilly version links also


From Altova, developer of XMLSpy. First to more complicated examples (URL='http://
few slides are general and then moves to www.perl.com/pub/a/2001/04/24/soap.
how to use XMLSpy to implement a web html')
service. SOAPLite (URL='http://www.soaplite.
(URL='http://msdn.microsoft.com/web- com/'). Much of this duplicates the site
services/webservices/understanding/web- above, but this one is easier to navigate and
servicebasics/default.aspx?pull=/library/ includes news.
en-us//dnsoap/html/understandsoap.asp') Client-side SOAP (URL='http://www.
Understanding SOAP. From MSDN. Excel- soapuser.com/client3.html'). Also links to
lent article for those with some familiarity table of SOAP packages (URL='http://www.
from more basic entries. soapuser.com/client1.html') for UNIX and
Brief SOAP Primer (URL='http://discuss. Windows and information on (URL='http://
develop.com/archives/wa.exe?A2=ind000 www.soapuser.com/server1.html') server-
7&L=soap&F=&S=&P=9777') side SOAP. Good tutorials.
(URL='http://www.wdvl.com/Authoring/ A rch ive s of SOA P ( U R L=' ht t p://
Scripting/Tutorial/request_headers.html'). d iscu ss.develop.com /a rch ive s /
Useful reminder as SOAP messages are wa.exe?A0=soap&D=0') at Discuss.De-
transported with HTTP velop.com. Discussion list for problems
Web Service Demos (URL='http://www. implementing SOAP applications. Search-
mindreef.net/tide/scopeit/start.do'). You able.
can see the SOAP messages by clicking PHP and SOAP. Zend offers a SOAP imple-
the Invoke tab and then the Edit/Preview mentation with PHP Extension. Devzone
button. at Zend (URL=http://devzone.zend.com/
AMQP:Advanced Message Queuing Pro- public/view/tag/tutorials). New articles
tocol (URL='http://www.computerworld. and tutorials are in the news (URL=http://
com/action/article.do?command=viewAr devzone.zend.com/public/view/tag/SOAP).
ticleBasic&articleId=9001328&source=N Also more advanced articles, such as on PHP
LT_APP&nlid=48'). From Cisco, RedHat, SOAP extension (URL=http://devzone.
et al; to interoperate with SOAP and other zend.com/node/view/id/689)
messaging protocols. Tutorial on Web Services and PHP
SOAP tutorials (URL='http://www.soaprpc. ( U R L = ' h t t p : // w w w. t o p w e b n e w s .
com/tutorials/'). About 20 different tutori- com/2006/08/16/web-services-and-php/')
als with brief comments. Older with some NuSOAP, older and now less common, im-
broken links. plements SOAP in PHP without PHP exten-
Try A Busy Developer's Guide to SOAP 1.1 sions (URL='http://sourceforge.net/project/
(URL='http://www.soapware.org/bdg') showfiles.php?group_id=57663') Download
PerlandSOAP.SOAPexamples(URL='http:// NuSOAP at SourceForge.org (URL='http:
www.soaprpc.com/examples/') //64.233.161.104/custom?q=cache:KN6cZ-
(URL='http://guide.soaplite.com/#quick tqnXhUJ:www.zend.com/zend/tut/tutorial-
start guide with soap and soap::lite ') Includes campbell.php%3Farticle%3Dtutorial-camp
an excellent Quick Start Guide, which may bell%26kind%3Dt%26id%3D5444%26ope
also be found at O-Reilly's Perl.com site. n%3D1+tutorials+NuSOAP&hl=en&gl=us
(URL='http://www.perl.com/pub/a/2001/01/


Resources on Web-Centric Computing

&ct=clnk&cd=3') Beginner tutorials from Introducing Axis2 (URL='http://www.de-


NuSOAP originally from Zend. veloper.com/services/article.php/3525481').
Links to more information on NuSOAP Axis2 is the web service framework from
( U R L = ' h t t p: //d i e t r i c h .g a n x4.c o m / Apache. A search at this site will lead you
nusoap/') to many articles about Axis2, including
eZ (URL='http://ez.no/'). Building a non-Java web service on Axis2.
PEAR (URL='http://pear.php.net/'). (URL='http://www.developer.com/services/
Java and SOAP. Java and XML: SOAP article.php/3570031')
(URL='http://www.onjava.com/pub/a/ Apache (URL='http://ws.apache.org/').
onjava/excerpt/java_xml_2_ch2/index. Apache site for SOAP (URL='http://
html?page=1'). Excellent discussion of ws.apache.org/soap/').
SOAP and RPC; first half of multi-page Microsoft platform ( as your server plat-
book excerpt is general and second half is form) (URL='http://www.4guysfromrolla.
Java-specific. com/webtech/070300-2.shtml') from 4Guys-
(URL='http://java.sun.com/webservices/ FromRolla.
docs/1.5/api/javax/xml/soap/package-sum- (URL='http://www.webreference.com/js/
mary.html') Java classes to create the SOAP tips/011030.html').A Young Person's Guide
API. Package from Sun. The Sun ONE to SOAP
Studio 4 tutorial.(URL='http://docs.sun. (URL='http://msdn.microsoft.com/msd-
com/source/816-7860/index.html') nmag/issues/0300/soap/'). What SOAP is
Writing a Handler Class to Process and how it is better than CORBAS and
(SOAP)Messages (URL='http://www.de- DCOM
veloper.com/services/article.php/3503766') Microsoft's .NET SDK (URL='http://
Web Services Using JavaScript and .NET www.microsoft.com/downloads/details.
(URL='http://www.codeguru.com/vb/vb_ aspx?FamilyId=9B3A2CA6-3647-4070-
internet/webservices/article.php/c7781/'). 9F41-A333C6B9181D&displaylang=en').
(URL='http://www-128.ibm.com/devel- This replaces Microsoft's SOAP Toolkit
operworks/edu/i-dw-r-jsfwebclient.html?S_ 3.0, officially retired in3/05 and on extended
TACT=105AGX19&S_CMP=ZHP'') De- support until 3/08; Also see How to Migrate
velop Web Services Using JSF Web service to the .Net Framework (URL='http://msdn.
tools in Rational Application Developer microsoft.com/webservices/webservices/
Water (URL='http://www.waterlanguage. building/soaptk/default.aspx?pull=/library/
org/'). Some people are using it for teach- en-us/dnsoap/html/stkmigration.asp')
ing as it is designed to have a short learning
curve. Wsdl
Apache web server. Writing a SOAP client
for Apache (URL='http://www.xmethods. Introducing WSDL (URL='http://www.al-
com/gettingstarted/apache.html#writing tova.com/documents/aot/webservicesweb-
apacheclients'). The xmethod site also in- basedworkbook/ModelPage_MOD02_
cludes a guide to installing Apache SOAP 01.html'). Tutorial from Altova; first few
(URL='http://www.xmethods.com/getting- slides are general and then moves to using
started/apache.html') examples of SOAP XMLSpy to create WSDL documents.
services with their WSDL descriptions. WSDL Tutorial (UR L='htt p://w w w.
w3schools.com/wsdl/default.asp'). This is


Resources on Web-Centric Computing

the most detailed of the 3 basic introductions default.aspx'). Article is from 12/02, but
listed here. many of these (e.g. XMLSpy from Altova
Writing WSDL (URL='http://www.webref- and the one from Cape Clear (URL=http://
erence.com/js/column96/10.html') www.capescience.com/soa/)
Understanding WSDL (URL='http://msdn.
microsoft.com/webservices/webservices/ uddI
understanding/webservicebasics/default.
aspx?pull=/library/en-us/dnwebsrv/html/ UDDI4J (URL='http://www-128.ibm.
understandwsdl.asp'). Excellent detailed com/developerworks/library/ws-uddi4j.
explanation from MSDN. Easier if you read html?dwzone=xml').
one of the previous entries first. From Aaron IBM, Microfot SAP had problems imple-
Skonnard, one of the authors of the book menting UDDI (URL='http://weblog.
Essential XML. (URL='http://www. infoworld.com/article/05/12/16/HNuddi-
x met hod s.com /ve2/ ViewList i ng. shut_1.html')
po;jsessionid=S2WT_OQ7zQgg3lZrKES UDDI-based models of eCommerce
AR15w(QHyMHiRM)?key=uuid:7EAC2 (URL='http://www.webservicesarchitect.
99F-4D1C-D852-9A9B-B98F25F26092') com/content/articles/siddiqui02.asp')
XMethods lists many web services available (URL='http://www.webservicesarchitect.
publicly for demos and examination. It is com/content/articles/irani02.asp') An In-
helpful to work through several. Highlighted troduction to eBusiness
links allow you to examine the WSDL entry (URL='http://www.webservicesarchitect.
and try it.(See also the full list (URL='http:// com/content/articles/irani03.asp') eBXML
www.xmethods.net/ve2/Directory.po') and web services
(URL='http://www.xmethods.net/ve2/in- eBXML:the vision (URL='http://www.devel-
dex.po;jsessionid=XgTwyl97YJjmSCRuG oper.com/java/other/article.php/2204681')
hxH0rSW(QHyMHiRM)') Weather - Tem-
perature is an easy place to start. .(Cape choreography, BpEl and rEsT
Clear offers a more complex global version
of this.) w3c Group on Choreography (URL='http://
(URL='http://www.xmethods.com/ve2/ www.w3.org/2002/ws/chor/'). Choreogra-
ViewListing.po;jsessionid=S2WT_OQ7 phy refers to sequences of web services
zQgg3lZrKESAR15w(QHyMHiRM)?k interactions.
ey=uuid:7EAC299F-4D1C-D852-9A9B- There is a Overview of the Choreography
B98F25F26092') US Yellow Pages, with its Model (URL='http://www.w3.org/TR/ws-
WSDL entry, (URL='http://ws.strikeiron. chor-model/')
com/ypcom/yp1?WSDL') is more compli- Requirements (URL='http://www.w3.org/
cated as it provides several web services in TR/ws-chor-reqs/')
one WSDL. Choreography Description Language
Web Service Demos (URL='http://www. (URL='http://www.w3.org/TR/2005/CR-
mindreef.net/tide/scopeit/start.do'). You can ws-cdl-10-20051109/')
see the WSDL by clicking on the Analyze Primer (URL='http://www.w3.org/TR/2006/
tab. WD-ws-cdl-10-primer-20060619/')
WSDL Editors (URL='http://msdn.micro- Understanding ebXML, UDDI, XML/
soft.com/msdnmag/issues/02/12/xmlfiles/ EDI (URL='http://www.xml.org/xml/fea-


Resources on Web-Centric Computing

ture_articles/2000_1107_miller.shtml') WebServices.org (URL='http://www.web-


eBXML and BPEL and modeling business services.org/'). Group of about a dozen
processes providers of enterprise-level software for
SOAP vs eBXML (URL='http://lists. web services, of which the most notable
w3.org/Archives/Public/xml-dist-app/ are CA and Systinet. Lots of news about
2000Dec/0090.html'). who signed what deal, but most of the use-
(URL="http://www.internetnews.com/dev- ful information is restricted to members of
news/article.php/3346001") Web Services those companies.
Language. To coordinate a series of services Apache Software Foundation (URL='http://
- WS-CDL and also see about BPEL. Lan- apache.org/'). Source for Apache server,
guage may be used to describe peer-to-peer Tomcat java servlet server, Xerces XML
interactions parser and many other packages.
(URL="http://www.w3.org/TR/2004/WD- Apache web services projects (URL='http://
ws-cdl-10-20040427/") Choreography ws.apache.org/') for SOAP and many oth-
Description Language (WS_CDL). ers
Working draft of language spec from w3.org. Sourceforge.net (URL='http://apache.org/').
Orchestration of Rule-Based Web Services Major source for over 100,000 open source
(URL='http://www.w3.org/2005/rules/wg/ projects in enormous range of categories.
wiki/UCR/BPEL_Orchestration_of_Rule- Search for web services and specific lan-
Based_Web_Services'). guage or environment.
Web Ser vices Integ ration Pat ter ns Eclipse (URL='http://www.eclipse.org/re-
(URL='http://webservices.xml.com/pub/a/ sources/'). Has an entire section on web
ws/2004/06/16/patterns.html') tools; known primarily for Java IDE, now
More patterns (URL='http://webservices. also offering a PHP IDE and web services
xml.com/pub/a/ws/2004/06/30/patterns. tools (URL='http://dev2dev.bea.com/pub/
html') a/2005/09/eclipse_web_tools_ platform.
Reconciling Web Services with REST html')
( U R L = ' h t t p : // w w w.w 3 . o r g / 2 0 0 5 / IBM (URL='http://www-128.ibm.com/de-
Talks/1115-hh-k-ecows/#(1)') veloperworks/opensource')
REST and the Rest of the World (URL='http:// w3c open source tools (URL='http://www.
www.xml.com/lpt/a/923') w3.org/Status'). Open Source Web Services
REST Tutorial (URL='http://www.xfront. Tools in Java.
com/REST.html') DevShed (URL='http://www.devshed.
com/'). Sources for good articles. Please also
Web services: other resources check the tools for many topics for a list of
newsletters.
OASIS and its subsidiary XML.org Management of performance of web ap-
(URL='http://xml.org') plications (URL='http://www.webappman-
The Cover Pages (URL='http://xml.coverp- agement.techweb.com/thankyou.jhtml?_re-
ages.org/news2006Q1.html') questid=304797').
ACM Portal (URL='http://portal.acm.org/ IBM's alphaworks (URL='http://www.
portal.cfm') alphaworks.ibm.com/rss'). Many excellent
WS-I (URL='http://www.ws-i.org/'). Stan- articles, some very sophisticated, and also
dards, articles and news, RSS feeds on XML, webservices, etc.


Resources on Web-Centric Computing

IBM's Developer Works (URL='http:// SOA architecture (URL='http://www.


www-130.ibm.com/developerworks/web- google.com/alpha/Top/Computers/Pro-
services/'). The Web Services and SOA site gramming/Internet/Service-Oriented_Ar-
has many excellent tutorials, articles and chitecture/Web_Services/').
technical forecasts, all of high quality. A X Met ho d s.net ( U R L=' ht t p://w w w.
few of the longer tutorials require an IBM xmethods.net/ve2/ViewTutorials.pos-
password. methods'). Many tutorials (for various
XML.com from 'Reilly (URL='http://www. platforms) and articles
xml.com/'). Organized site with entries XFront (URL='http://xfront.com'). Tutorials
ranging from blogs to book excerpts. High and articles from Roger Costello
quality. O'Reilly also owns Safari on-line (URL='http://devedge-temp.mozilla.org/
books (also available through the ACM if viewsource/2003/wsdl/01/index_en.html')
you are a member). Mozilla and Web Services. Many articles,
Web Services Architect (URL='http://www. including on (URL='http://devedge-temp.
webservicesarchitect.com/resources.asp'). mozilla.org/viewsource/2003/wsdl/01/in-
Magazine with some news, high quality dex_en.html') how to access web services
downloadable articles, links to books and in Mozilla agents. Also check their project
other resources (URL='http://www.mozilla.org/projects/')
Microsoft Web Services (URL='http://msdn. related to XML technologies
microsoft.com/webservices/') General ar- SOA Systems (URL='http://www.soasys-
ticles and links to their magazine, as well tems.com/ws-standards/') focus on web
as tutorials on their own products. High service standards and on SOA. Links to
quality, but not as many current articles as SOA Magazine (URL='http://www.soamag.
the IBM sites. com/'). Also useful glossary (URL='http://
Sun Developer Network (URL='http://de- www.soasystems.com/ws-standards/glos-
velopers.sun.com/techtopics/webservices/ sary.asp')
index.html'). Mostly focused on Java and SOAPRPC (URL='http://www.soaprpc.
on Sun developer kits, though some more com/'). News, many links to articles and
general articles. other resources.
Google Director y on Web Services Developer.com (URL='http://www.devel-
(URL='http://www.google.com/alpha/Top/ oper.com/services/'). Many useful articles,
Computers/Programming/Internet/Service- intermediate to advanced; this links to their
Oriented_Architecture/Web_Services/'). web services section.
More focused than a straight search; more Gamelan (URL='http://www.developer.
specifically: FAQs, tutorials, etc. com/java/') articles for java developers.
SOAP, (URL='http://www.google.com/Top/ Primarily news.
Computers/Programming/Internet/Service- SearchWebServices (URL='http://search-
Oriented_Architecture/Web_Services/ we b s e r v ic e s.t e cht a r ge t .c om / home /
SOAP/FAQs,_Help,_and_Tutorials/') 0,289692,sid26,00.html').
Web services (URL='http://www.google. eweek (URL='http://eweek.com'). Regular
com/Top/Computers/Programming/Inter- sources of news for techies; announcements
net/Service-Oriented_Architecture/Web_ of new standards and products, summaries
Services/FAQs,_Help,_and_Tutorials/') of conference speeches, etc.


Resources on Web-Centric Computing

Loosely Coupled (URL='http://www.loose- Collaxa (URL="http://www.collaxa.com/


lycoupled.com/'). Similar to above, but more developer.welcome.html")
technical and with an SOA focus. (YRL=http://www.grandcentral.com/view/
JackBe (URL='http://www.jackbe.com/ dev.page.home/home/) Grand Central.
NewsEvents/in_the_news.php'). News and These sites have lots of information: e.g.
short articles on SOA and Ajax. tutorials on regular expressions.
Ap pl ic at ion D evelo p me nt Tr e nd s (URL='http://developer.capeclear.com/files/
(URL='http://www.adtmag.com/index. Regular_Expressions.pdf') and Java Web
aspx'). Primarily news; some whitepapers. Services at CapeClear (you need to search
Ziff Davis Buyer's Guides and White Papers for tutorials; there are many more than are
(URL='http://www.webbuyersguide.com/ suggested by the tab on their home page),
bguide/Whitepaper/Wplibrary.asp_Q_site- but some require logins.
name_E_webbuyersguide'). Downloadable
after free registration; oriented towards IT Examples of Web services
management. Similar to above, but more
technical and with an SOA focus. Amazon, eBay and Google (URL="http://
Fusion Zone: SOA (URL='http://www.fu- internetweek.com/e-business/showArticle.
sion-zone.com/soa.html'). Languages and jhtml?articleID=20900637") Amazon
Tools. Reaches 50,000-Developer Mark With Its
IBM WebSphere (URL='http://www-130. Web Services Program: May 24, 2004
ibm.com/developerworks/websphere/') How Amazon has attracted develop-
Su n Web Ser vices Developer K it ers to write for the stores which sell on
(URL='http://developers.sun.com/techtop- Amazon, or how Amazon Web Services
ics/webservices/downloads/index.html'). counts itself as having 50,000 develop-
XMLSuite, XMLSpy, etc.Tools for XML, ers (URL="http://www.amazon.com/
web services, etc. Beautiful interfaces. Aca- gp/browse.html/ref=smm_sn_aws/002-
demic license available or 30 day trial. 7644346-5341611?node=3435361") : Help /
Stylus Studio (URL='http://www.stylusstu- AWS home page
dio.com/web_services.html#'). Tools for Home page for Amazon Web Services
XML, web services, etc. 7-day trial - all you need to know is XML and
SOAPLite toolkit (URL='http://www.soap- SOAP. (UR L='htt p://www.amazon.
lite.com/'). com/AWS-home-page-Money/b/ref=gw_
SOAP client for PHP (URL='http://pear.php. br_websvcs/104-7340309-9227160?%5F
net/package/SOAP') encoding=UTF8&node=3435361'). Help
Water (URL='http://www.waterlanguage. / AWS home page / FAQ. Amazon Web
org/'). Services FAQs - including what services
Mindreef SOAPScope Toolkit (URL='http:// are available etc. AWS includes a web ser-
www.mindreef.net/tide/scopeit/start.do') vices platform, (URL='http://www.awszone.
Web services toolkit; free trial (URL="http:// com/?'), a 'scratch pad' (Turk), a search
www.looselycoupled.com/stories/2003/ engine and many e-commerce web services
skills-dev0210.html#content") for web (URL="http://kosmoi.com/Computer/Inter-
services. The bottom has links to ven- net/Web/XML/Amazon/").
dor training, such as that at CapeClear (URL="http://www.websitepublisher.net/
(URL="http://www.capescience.com/") article/aws-php/2.") Amazon Web Services:


Resources on Web-Centric Computing

A Brief Introduction Using PHP - Website What is Ajax? (URL='http://www.ajaxinfo.


Publisher. com/default~viewart~5.htm'). Very basic
( U R L = " h t t p: // w w w. x m l . c o m / p u b / introduction.
a/2004/08/04/tr-xml.html") Services and What is Ajax? (URL='http://webdesign.
XSLT. Article from O'Reilly describing both about.com/od/ajax/a/aa101705.htm')
the web services and the REST interface to AJAX introduced (URL='http://adap-
Amazon tivepath.com /publications/essays/ar-
chives/000385.php'). The article which
Web 2.0 and related Technologies named it - with a great introduction to what
- The semantic Web it is
About.com's i nt roduct ion to Aja x
Semantic Web initiative at w3c (URL='http:// (URL='http://webdesign.about.com/b/
www.w3.org/2001/sw/ ') a/210999.htm?nl=1')
Microformats (URL='http://www.xfront. Keeping Up with the Ajax Trend
com/microformats/Purpose-of-Microfor- (URL='http://www.developer.com/java/
mats.html'). Costellos slides on the subject; ent/article.php/3562876'). Slightly older but
as always a clear discussion. very clear introduction. Links to various
Microformats.org (URL='http://microfor- Ajax debugging tools. Ajax - the issues in
mats.org/about/') using. Good introduction
State of the Art on (Semantic) Modeling Ajax - Cut thru the hype (URL='http://
in XML (URL='http://www-128.ibm.com/ www-128.ibm.com/developerworks/web/
developerworks/xml/library/x-think30. library/wa-ajaxtop1/index.html'). Excellent
html') discussion of pros and cons of using Ajax;
A Simple Linkage from Web Services to from IBM DeveloperWorks.
the Semantic Web (URL='http://www. Demystifying the Buzz about Ajax
w3.org/2006/Talks/0306-ep-spdl/#(1)') (URL='http://www.webforefront.com/ar-
chives/2005/05/ajax_demystifyi.html'). As-
aJax (asynchronous Javascript sumes you are familiar with browser objects
and xml) and intricacies
Ajax and REST (URL='http://www-128.
AjaxPatterns.org (URL='http://ajaxpatterns. ibm.com/developerworks/web/library/wa-
org/Books') ajaxarch2.html'). A further discussion of
Ajaxian.com (URL='http://ajaxian.com/by/ what it takes to develop Ajax sites.
topic/books/') reviews (URL='http://ajaxian. Ajax and alternatives (URL='http://www.
com/by/topic/book-reviews/') ajaxinfo.com/default~viewart~8.htm'). Pros
The XMLHttpRequest Object (URL='http:// and Cons of Ajax vs. applets, XUL, etc. Use-
www.w3.org/TR/XMLHttpRequest/') ful discussion, but you won't be surprised
Fields in the HTTPRequest Object to learn these folks love Ajax.
(URL='http://www.w3.org/Protocols/ Measuring the Benefits of Ajax (URL='http://
HTTP/HTRQ_Headers.html') www.developer.com/java/other/article.
The Beginning of Ajax Standardization php/10936_3554271_1').
(URL='http://www.devsource.com/print_ From an Ajax developer, who also wonders
article2/0,1217,a=176625,00.asp') (URL='http://www.developer.com/java/
web/article.php/3574116')


Resources on Web-Centric Computing

Wil l Aja x Re pla ce t he De sk t op? HowtoUseAjax(URL='http://www.peachpit.


(UR L='htt p://www.publish.com /ar ti- com/articles/article.asp?p=425820&rl=1'),
cle2/0,1895,1900778,00.asp') from Peachpit, which caters to graphic
Top 10 Reasons Ajax is Here to Stay designers.
(URL='http://www.developer.com/java/ Ajax Tutorial (URL='http://www.tizag.com/
other/article.php/356'7706') ajaxTutorial/'), from Tizag: level similar to
Aj a x I s No O ve r n ig h t S u c c e s s w3schools tutorials.
( U R L=' ht t p://w w w.eweek.com /a r t i- Getting Started with Ajax (URL='http://
cle2/0,1895,1911715,00.asp') www.alistapart.com/articles/gettingstarted-
Including Security and Performance withajax'). From A List Apart. One example
Risks (URL='http://www.eweek.com/ar- uses innerHTML (not supported by assistive
ticle2/0,1895,1916673,00.asp') browsers), but a richer example than most
EWeek (URL='http://www.eweek.com/ar- tutorials.
ticle2/0,1895,1998795,00.asp?kc=EWWSU XUL.fr/en/ (URL='http://www.xul.fr/en/').
EMNL080906EOAD') How to Develop Web Applications with Ajax
Ajax has some problems (URL='http://www. (URL=http://www.webreference.com/
eweek.com/article2/0,1895,1949606,00. programming/javascript/jf/column12/).
asp') Series starts in column12, continues on to
Wikipedia article (URL='http://en.wikipedia. column13, 14 and 15. Good explanation.
org/wiki/Ajax_%28programming%29') Understanding Ajax (URL='http://www.
Ajax has accessibilit y issues computerworld.com/action/article.do?com
( U R L=' ht t p://w w w.eweek.com /a r t i- mand=viewArticleBasic&articleId=90025
cle2/0,1895,1987300,00.asp'), but devel- 07&source=NLT_APP&nlid=48'). Longer
opers are working to overcome them tutorials: first is basic and second uses frames
( U R L=' ht t p://w w w.eweek.com /a r t i- and non-cross browser examples, but also
cle2/0,1895,1987300,00.asp') gets to more advanced tricks
Putting Ajax to Work (URL='http:// Alternate Ajax Technologies (URL='http://
www.infoworld.com/ar ticle/05/10/17/ www.webreference.com/programming/
42FEajaxcase_1.html'), examples and a ajax_tech/')
summary of some of the toolkits. Ajax and the Java Platform (URL='http://
A detailed Explanation of the XMLHttpRe- java.sun.com/developer/technicalArticles/
questObject (URL='http://www.devx.com/ J2EE/AJAX/index.html?cid=59754'). Good
webdev/Article/33024/1954?pf=true'). This article to get started, which uses almost
very clear article tells you all you need to no Java (use the server response of your
know. (You can even omit the last part about choice). Note that Sun's Java Studio Creator
interfacing with Java.). 2 provides Ajax-like functionality for those
The XML HttpRequest Object (URL='http:// who don't want to use Ajax directly.
developer.apple.com/internet/webcontent/ Ajax and Sun's Java DB (URL='http://
xmlhttpreq.html'). Clear with nice summary www.johnwiseman.ca/blogging/?p=61')
tables; read the previous article first. Usng Ajax from Perl (URL='http://www.
Ajax Tutorial (URL='http://www.xul. perl.com/pub/a/2006/03/02/ajax_and_perl.
fr/en-xml-ajax.html'). Very basic. Uses in- html')
nerHTML and not yet aware of IE 7, which Ajax Active Tables (URL='http://www.
supports XMLHttpRequest objects. soxiam.com/Code/AJAXActiveTableLi-
brary')


Resources on Web-Centric Computing

Symfony is a PHP toolkit (URL='http:// Mastering Ajax - 8 part series. This excel-
www.symfony-project.com/') lent series starts at (URL = http://www-128.
AHAH is a subset of Ajax (URL='http://mi- ibm.com/developerworks/web/library/wa-
croformats.org/wiki/rest/ahah') ajaxintro1.html). Part 2 is at (URL=http://
HowtoUseAjax(URL='http://www.informit. www-128.ibm.com/developerworks/web/li-
com/articles/article.asp?p=425820&rl=1'). It brary/wa-ajaxintro2/) and changing the 2
leads to Creating Smart Forms with Ajax at the end of the URL will get you to the
which includes form validation and down- other articles, except for Parts 7 and 8 start
loadable code. at (URL=http://www-128.ibm.com/devel-
Nitty Gritty Ajax (URL='http://www.web- operworks/web/library/wa-ajaxintro7.html).
monkey.com/06/15/index3a.html'). Shows (Parts 4-6 also explain how to manipulate
how one drop-down menu can control the the DOM).
choices in the next drop-down menu. Ajax Transport (URL='http://www-128.
U. Minnesota Duluth References on JavaS- ibm.com/developerworks/edu/x-dw-x-aja-
cript (URL='http://www.d.umn.edu/itss/ xtrans-i.html?S_TACT=105AGX59&S_
support/Training/Online/webdesign/javas- CMP=GR&ca=dgr-lnxw03AjaxTransport')
cript.html#top'). This site is a great reference. may be done by methods other than XML-
For example, there are links to a number of Http, as explained in this tutorial.
articles here about making Ajax accessible Mozilla's Ajax Center (URL='http://devel-
as well as to tutorials. oper.mozilla.org/en/docs/AJAX').
Tutorials from Ajax Matters (URL='http:// AjaxInfo.com (URL='http://www.ajaxinfo.
www.ajaxmatters.com/blog/ajax-tutori- com/'). Ajaxian is one of the oldest and larg-
als/').Many tutorials, with descriptions, from est Ajax resources. Forums on many topics,
the basic to advanced. Ajax Links found use- book lists and reviews, articles, reviews of
ful by developer/blogger John Wiseman frameworks for PHP, Perl, etc. Not to be
missed
more advanced articles and other Ajax Patterns (URL='http://ajaxpatterns.
resources, Including Examples and org/'). Wiki on all things related to Ajax -
frameworks patterns, frameworks, libraries, books etc.
Rich resource for programmers. Check out
IBM Resource Center on Ajax (URL='http:// the popular pages. (URL=http://ajaxpat-
www-128.ibm.com/developerworks/ajax'). terns.org/Special:Popularpages)
Many articles and more advanced tutorials. Open Ajax (UR L='http://www.info-
A very rich site, worth checking regularly. world.com/article/06/02/01/74989_HN-
For example, see Part 1 (URL='http://www- vendorspromoteajax_1.html?source=NLC-
128.ibm.com/developer works/web/li- AD2006-02-02').
brary/wa-ajaxarch/index.html') and Part Ajax Matters (URL='http://www.ajaxmat-
2 (URL='http://www-128.ibm.com/de- ters.com').
veloperworks/java/library/wa-ajaxarch2. AjaxDNA (URL='http://www.ajaxdna.
html'). See also (URL='http://www-128.ibm. com/').
com/developerworks/search/searchResults. Ajax World Magazine (URL='http://ajax.
jsp?searchType=1&searchSite=dW&searc sys-con.com/')
hScope=dW&query=Mastering+Ajax&S (URL='http://www.developerzone.biz/in-
earch.x=0&Search.y=0&Search=Search') dex.php?option=com_content&task=view

0
Resources on Web-Centric Computing

&id=82&Itemid=9'), Extending Ajax with Google Group on Ajax (URL='http://groups.


Flash (URL='http://www.informit.com/ar- google.com/group/ajaxpro?lnk=gschg&hl=
ticles/article.asp?p=418664&rl=1') en')
Jackbe articles (URL='http://www.jackbe. Pre-loading Images with Ajax and the
com/Resources/resources.php') DOM (URL='http://www.devarticles.com/
JSON may be used to speed up AJAX c/a/JavaScript/Preloading-Images-with-the-
(URL='http://www.developer.com/lang/ DOM-The-Introductory-Process/'). How to
jscript/article.php/3596836'). JSON is JavaS- pre-load thumbnails and then fetch all the
cript Object Notation (URL='http://www. full-size images with the first click on a
json.org/'). See also JSON for the Masses thumbnail.
(URL='http://www.dustindiaz.com/json- WebReference (URL='http://www.webref-
for-the-masses/'). JSON vs XML/XML- erence.com/programming/javascript/')
HttpRequest (URL='http://web2journal. Creating a double drop-down list with Ajax
com/read/203935.htm') (URL='http://www.developer.com/services/
Using Ajax to generate random codes article.php/3575081')
(URL='http://www.devarticles.com/c/a/ Including (URL='http://www.developer.
JavaScript/JavaScript-Remote-Scripting- com/services/article.php/3577826')
An-AJAXbased-Random-Code-Generator- Expanding a navigational menu with Ajax
in-Action/'). Uses this example to explore (URL='http://www.getelementbyid.com/
Ajax. The same author also show how scripts/index.aspx?CodeID=40')
to use Ajax to develop a chat application How to improve your search engine ratings
(URL='http://www.devarticles.com/c/a/ with Ajax (URL='http://www.informit.
XML/Building-an-AJAXBased-Chat-The- com/articles/article.asp?p=517207&rl=1').
Barebones-Structure/'). (or at least not have them get worse when
Using XML HTTP Request to include using Ajax).
Javascript files and functions (URL='http:// Ajax and mutual exclusion (URL='http://
www.webreference.com/programming/ja- www.developer.com/lang/jscript/article.
vascript/mk/') php/3592016'). How to avoid concurrency
Ajax Desig n St rategies f rom Su n problems.
(URL='http://whitepapers.zdnet.com/ Examples of Applications Which Use Ajax,
thankyou.aspx?authId=zasVTTxor1p0/ Top 10 Ajax applications (URL=http://www.
GoW+gO8x7lFYCZVhWt1&&promo= aventureforth.com/2005/09/06/top-10-ajax-
590&tag=nl.e590&docid=264562&vie applications/). Zimbra, (URL=http://www.
w=264562&load=1'). Callback and Ajax zimbra.com/)
(URL='http://www.devsource.com/print_ Google Search with Ajax (URL='http://code.
article2/0,1217,a=170236,00.asp'). Open google.com/apis/ajaxsearch/'). API for put-
Ajax Alliance (URL='http://www.openajax. ting a Google search on your web page using
org/') Ajax.
EWeek (URL='http://www.eweek.com/cat- Using the XML Http Request object
egory2/0,1874,1949411,00.asp') (URL='http://jibbering.com/2002/4/httpre-
Using Ajax and JSON with Oracle quest.html')
(URL='http://www.oracle.com/technology/ Content Cafe (URL='http://contentcafe.
pub/articles/cioroianu-ajax-data.html'). btol.com/ClientApplication/ContentCafe.


Resources on Web-Centric Computing

aspx?UserID=quantum&Password=books start, then this (URL="http://www.digital-


&ItemKey=1590595823') mediaminute.com/article/1629/using-pro-
Simple Quiz with Ajax (URL='http://www. totypejs-v131"). Prototype Documentation
codeproject.com/useritems/SimpleAjax- (URL="http://wiki.script.aculo.us/scrip-
QuizUsingAtlas.asp'). taculous/show/Prototype") is also available
Expanding DOM tree inspector (URL='http:// at script.aculo.us (URL="http://script.aculo.
www.kawa.net/works/ajax/tips/dump/dom- us/").
tree.html') Joseph Scott blogs on Prototype (URL='http://
Frameworks. Sites with links to many frame- joseph.randomnetworks.com/tag/ajax')
works. AjaxInfo.com (URL=http://www. Script.aculo.us (URL='http://script.aculo.
ajaxinfo.com/default~area~components. us/'). A large open source library, almost as
htm) popular as Prototype, on which it is based;
Ajaxian has articles on frameworks for integrates with Perl, PHP, Java, Ruby and
Ajax (URL='http://ajaxian.com/by/topic/ everything else you can think of; scripts for
framework/') animation, drag and drop, etc;
Ajax used with PHP (URL='http://ajaxian. DOM utilities. Easy to install. (URL='http://
com/by/topic/php/') Ruby etc. Includes re- wiki.script.aculo.us/scriptaculous/show/Us-
views by users. Great resource, but it may age') A Treasure trove.
help to start with AjaxInfo before delving DoJo (URL='http://dojotoolkit.org/'). Has
into this rich site. a new documentation kit (URL='http://do-
Xul.com (URL='http://www.xul.fr/ajax- jotoolkit.org/api/')
frameworks.html'). Ajaxian (URL='http://ajaxian.com/by/topic/
Seven Ajax Frameworks to watch out for dojo/') JSPAN (URL='http://www.ajaxinfo.
(URL='http://www.indicthreads.com/arti- com/default~area~COMPONENTS~comp
cles/447/seven_ajax_frameworks_toolkits. id~20.htm'). Integrates with JavaScript and
html'). PHP
Ajax Patterns (URL='http://ajaxpatterns. AjaxTags (URL='http://ajaxtags.source-
org/Frameworks') forge.net/').
Open Source Technology (URL='http:// Clean Ajax (URL='http://sourceforge.net/
ashko.blogspot.com/2006/11/best-top-ten- project/showfiles.php?group_id=145307')
open-sourceajaxdhtml.html'). Mozilla's AJAX Tolkit (URL='http://de-
XUL.fr/en/ (URL='http://www.xul.fr/ veloper.mozilla.org/en/docs/AJAX:Get-
en/'). ting_Started')
12 Days of Ajax (URL='http://www.devel- FlapJax (URL='http://www.flapjax-lang.
oper.com/xml/article.php/3645666'). Useful org/tutorial/')
set of links on the last page. Yahoo User Interface Library (URL='http://
Prototype with (URL='http://www.symfo- developer.yahoo.com/yui/')
ny-project.com/') the symphony framework Yahoo's connection manager (URL='http://
for PHP Symphony tutorial (URL='http:// w w w. d e v e l o p e r. c o m / l a n g /a r t i c l e .
www.symfony-project.com/tutorial/sym- php/3600611')
fony_ajax.html') Google web toolkit for Ajax (URL='http://
This (URL="http://blogs.ebusiness-apps. code.google.com/webtoolkit/')
com/jordan/pages/Prototype%20Library How to make your own Google Maps,
%20Info.htm") overview is a good place to host your own Gmail (URL='http://www.


Resources on Web-Centric Computing

informationweek.com/news/showArticle. (URL="http://moofx.mad4milk.net/#intro")
jhtml?articleID=189400799'). Special effects in JavaScript, integrates with
JackBe (URL='http://www.jackbe.com/ prototype and mootools frameworks
Company/about.php') Tibco (URL='http://www.computerworld.
MochiKit (URL='http://mochikit.com/') com/action/article.do?command=viewArti
with the DOM and AJAX. There is a Google cleBasic&articleId=9003795')
Group on Mochikit (URL='http://groups.
google.com/groups/search?hl=en&q=Moc
hikit&qt_s=Search')




Compilation of References

Abiteboul, S., Buneman, P., & Suciu, D. (2000). Data American Electronics Association. (2004). Offshore
on the Web - From relations to semistructured data and outsourcing in an increasingly competitive and rapidly
XML. San Francisco: Morgan Kaufmann. changing world: A high-tech perspective. Retrieved on
January 1, 2007, from http://www.aeanet.org/publica-
Ahlgren, R., & Markkula, J. (2005, June 13-15). Design
tions/IDMK_AeA_Offshore_Outsourcing.asp
patterns and organisational memory in mobile applica-
tion development. Paper presented at the Sixth Interna- Anderson, D. (2004). Agile management for software en-
tional Conference on Product Focused Software Process gineering: Applying the theory of constraints for business
Improvement (PROFES 05), Oulu, Finland. results. Upper Saddle River, NJ: Prentice Hall PTR.

Ahluwalia, K. S., & Jain, A. (2006, October 21-23). High Andrews, T., F. Curbera, et al. (2003). Business process
availability design patterns. Paper presented at the 13th execution language for Web services Version 1.1.
Conference on Pattern Languages of Programs (PLoP
Aoyama, M. (1998).Web-based agile software develop-
06), Portland, USA.
ment, IEEE Software, 57-65.
Almeida, V.A.F., & Menasce, D.A. (2002). Capacity plan-
Apache Software Foundation. (2006). Apache XML-
ning for Web services: An essential tool for managing
Beans. Retrieved on July, 2007, from http://xmlbeans.
Web services. IT Professional, (July-August), 33-38.
apache.org/index.html
Alonso, G., Casati, F., Kuno, H. & Machiraju, V. (2004).
Apicello, Mario (2000). Multilizer for Java powers your
Web servicesConcepts, architectures and applications.
apps to travel the Globe. Infoworld, January.
Springer Verlag.
Arnowitz, J., Arent, M., & Berger, N. (2007). Effective
Alur, D. Crupi, J., & Malks, D. (2003). Core J2EE pat-
Prototyping for Software Makers. San Francisco: Morgan
terns: Best practices and design strategies, 2nd Edi-
Kaufmann Publishers.
tion. Upper Saddle River, NJ: Sun Microsystems Press
/ Prentice Hall. Aspray, W., Mayadas, F., & Vardi, M. Y. (Eds.) (2006).
Globalization and offshoring of software: A report of the
Ambler, S. W. (2003). Agile database techniques. Indi-
ACM Job Migration Task Force. New York: Association
anopolis, IN: Wiley.
for Computing Machinery. Retrieved on January 1, 2007,
Ambler, S. W. (2004) The Object primer: Agile model- from http://www.acm.org/globalizationreport
driven development with UML 2.0. Cambridge Uni-
Axelrod, R. (1984). The Evolution of cooperation. New
versity Press.
York: Basic Books.
Ambler, S.W. (2007). Test-driven development of rela-
Axtell, Rodger (1993). Dos and Taboos Around the
tional database. IEEE Software, 24(3), 37-43.
World, John Wiley & Sons.

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Compilation of References

Bailey, B. P., & Konstan, J. A. (2003). Are informal tools Beck, K., Beedle, M, van Bennekum, A, Cockburn,
better? Comparing DEMAIS, pencil and paper, and Au- A. et al. (2001). Manifesto for agile software develop-
thorware for early multimedia design. In Proceedings of ment. Retrieved on January 1, 2007, from http://www.
the SIGCHI Conference on Human Factors in Computing agilemanifesto.org
Systems (pp 313-320). New York: ACM Press.
Beck, K., Crocker, R., Meszaros, G., Vlissides, J., Coplien,
Ballard, B. (2007). Designing the mobile user experience. J. O., Dominick, L., & Paulisch, F. (1996, March 25-29)).
John Wiley and Sons. Industrial experience with design patterns. Paper pre-
sented at the 18th International Conference on Software
Barry, D., & Stanienda, T. (1998). Solving the Java object
Engineering (ICSE 1996), Berlin, Germany.
storage problem. IEEE Computer, 31(11), 22-40.
Becker S., & Berkemeyer, A. (2002). Rapid application
Battin, R. D., Crocker, R., Kreidler, J., & Subramanian,
design and testing for usability. IEEE Multimedia, (Oct-
K. (2001). Leveraging resources in global software de-
Dec), 38-46.
velopment. IEEE Computer, 18(2), 70-77.
Becker, S. A., & Bostelman, M. L. (1999). Aligning
Bauer, F. (1972). Software Engineering. Information
strategic and project measurement systems. IEEE Soft-
Processing , 71.
ware, 16(3), 46-51.
Baumer, D., Bischofberger, W., Lichter, H., & Zulligho-
Becker, S., & Mottay, F. (2001). A global perspective
ven, H. (1996). User interface prototyping-concepts, tools,
of Web usability for online business applications. IEEE
and experience. In Proceedings of the 18th International
Software, 18(1), 54-61.
Conference on Software Engineering (ICSE96) (pp
532-541). IEEE Computer Society. Behravesh, N. & Klein, L. (2004). The comprehensive
impact of offshore IT software and services outsourcing
Baure, C., and King, G. (2004). Hibernate in Action.
on the US economy and the IT industry. Report prepared
Greenwich, CT: Manning Publications.
by Global Insight for the Information Technology As-
Beaulieu, M. (2002). Wireless Internet applications and sociation of America, Arlington, VA.
architecture. Boston: Addison-Wesley.
Berners Lee, T. (2004). New top level domains .mobi and
Beck, K. (1999). Extreme programming explained: .xxx considered harmful. Retrieved on January, 2007,
Embrace change. Harlow: Addison-Wesley. from http://www.w3.org/DesignIssues/TLD

Beck, K. (2001). Aim, fire. IEEE Software, 18(5), 87- Bhat, J., Gupta, M., & Murthy, S. (2006). Overcoming
89. requirements engineering challenges: Lessons from
offshore outsourcing. IEEE Software, 23(5), 38-44.
Beck, K. (2003). Test-driven development: By example.
The Addison-Wesley signature series. Boston: Addison- Boehm, A., & Lowe, D. (2006). Murachs ASP.NET 2.0
Wesley. Web programming with VB 2005. Fresno, CA: Mike
Murach & Associates.
Beck, K. (2005). Extreme programming explained. Upper
Saddle River, NJ: Pearson Education. Boehm, B. (1976). Software engineering. IEEE Transac-
tions on Computers, 25, 1226-1241.
Beck, K., & Andres, C. (2004). Extreme programming
explained: Embrace change. Boston: Addison-Wesley. Boehm, B. (1981). Software engineering economics.
Upper Saddle River, NJ: Prentice Hall PTR.
Beck, K., & Fowler, M. (2001). Planning Extreme Pro-
gramming, Addison-Wesley..


Compilation of References

Boehm, B. W., & Turner, R. (2003). Balancing agility and Architectural issues of Web-enabled electronic business.
discipline: A guide for the perplexed. Addison-Wesley Hershey, PA: Idea Group Publishing.
Professional.
Brandon, Daniel (2006). Project management for
Boehm, B. W., Abts, C., Brown, A. W., Chulani, S., Clark, modern information systems. Hershey PA: Idea Group
B. K., Horowitz, E., Madachy, R., Reifer, D., & Steece, Publishing .
B. (2001). Software cost estimation with COCOMO II.
Brehm, N., & J. M. Gmez (2006). Distribution of ERP
Prentice Hall.
system components and security considerations. Paper
Boehm, B., & Hansen, W. J. (2001). The spiral model presented in the 17th IRMA International Conference
as a tool for evolutionary acquisition. Retrieved on - Managing Modern Organizations with Information
September 27, 2007, http://www.stsc.hill.af.mil/cross- Technology, Washington, USA.
talk/2001/05/boehm.html
Britton, C., & Bye, P. (2004).IT architecture and middle-
Boehm, B., & Turner, R. (2003). Balancing agility and ware. Addison-Wesley.
discipline: A guide for the perplexed. Boston: Addison
Brooks, F. P. (1995). The mythical man-month: Essays
Wesley Professional.
on software engineering. Boston: Addison Wesley
Boehm, B., & Turner, R. (2004). Balancing agility and Professional.
discipline. Boston: Pearson Education.
Brown, W. J., Malveau, R. C., McCormick, H. W., &
Booch, G., Rumbaugh, J., & Jacobsen, I. (2000). The Mowbray, T. J. (1998). AntiPatterns: Refactoring soft-
Unified Modeling Language user guide. Boston: Ad- ware, architectures, and projects in crisis. John Wiley
dison-Wesley. and Sons.

Bosak, J. (1997). XML, Java, and the future of the Web. Bry, F. & Schaffert, S. (2002). Towards a declarative
Retrieved on July, 2007, from http://www.ibiblio.org/ query and transformation language for XML and semi-
pub/sun-info/standards/xml/why/xmlapps.htm structured data: Simulation unification. In Proceedings
Intl. Conference on Logic Programming. LNCS 2401,
Bowen, B. (1997). Software Reuse with Java Technology:
Springer-Verlag.
Finding the Holy Grail. Retrieved on from
www.javasoft.com/features/1997/may/reuse.html Burkhardt, J, Henn, H., Hepper, S., Rintdorff, K., &
Schack, T. (2002). Pervasive computing technology and
Boyatzis, R. (1982). The competent manager: A model
architecture of mobile Internet applications. London:
for effective performance. Wiley.
Addison-Wesley.
BPEL Coalition (2006). Business process execution
Burton-Jones, A., Storey, V. C., Sugumaran, V., &
language for Web services version 1.1. Retrieved on
Ahluwalia, P. (2005). A semiotic metrics suite for as-
April 14, 2008 from http://www.ibm.com/developer-
sessing the quality of ontologies. Data and Knowledge
works/library/ws-bpel/
Engineering, 55(1), 84-102.
Brajnik, G. (2001, June 4-6). Towards valid quality
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.,
models for Web sites. Paper presented at the Seventh
& Stal, M. (1996). Pattern-oriented software architec-
Conference on Human Factors and the Web (HFWeb
ture: A system of patterns. Chichester: Wiley.
01), Madison, USA.
Cagen, J. & Vogel, C. M. (2002). Creating breakthrough
Brandon, Daniel (2002). Issues in the globalization of
products: Innovation from product planning to program
electronic commerce. In V. K. Murthy and N. Shi (Eds.)
approval. Upper Saddle River, NJ: Prentice Hall.


Compilation of References

Carmel, E., & Agarwal, R. (2001). Tactical approaches Cockburn, A. (2003). Agile Software Development.
for alleviating distance in global software development. Boston, MA: Addison Wesley Professional.
IEEE Software, 18(2), 22-29.
Cockburn, A. (2005). Crystal clear, A human-powered
Carzaniga, A., Fuggetta, A., Hall, R., Heimbigner, D., methodology for small teams. Boston: Addison-Wes-
van der Hoek, A., & Wolf, A. (1998). A characteriza- ley.
tion framework for software deployment technologies
Coda, F., Ghezzi, C., Vigna, G., & Garzotto, F. (1998,
(Tech. Rep. CU-CS-857-98).Boulder, CO: University of
April 16-18). Towards a software engineering approach
Colorado, Department of Computer Science.
to Web site development. Paper presented at the Ninth
Cavangess, C. (2004). Programming Jakarta struts. International Workshop on Software Specification and
Sebastopol, CA: OReilly. Design (IWSSD-9), Ise-shima, Japan.

Cheesman, J. & Daniels, J. (2002). UML components: A Collins, R.W. (2002). Software localization for Internet
simple process for specifying component-based software. software: Issues and methods. IEEE Software, (March/
Reading, MA: Addison-Wesley. April), 74-80.

Chen, J. Q., & Heath, R. D. (2005). Web application Conallen, J. (2003). Building Web applications with
development methodologies. in W. Suh (Ed), Web engi- UML, 2/E. Addison-Wesley.
neering: Principles and techniques. Hershey, PA: Idea
Conway, M. E. (1968). How do committees invent?
Group Publishing.
Datamation, 14(4), 28-31.
Chen, J. Q., & Heath, R. D. (2005). Web application
Cooper, A. (1994). The perils of prototyping. Visual Basic
development methodologies. In W. Suh (Ed.), Web
Programmers Journal, August September 1994, 1.
engineering: Principles and techniques. Hershey, PA:
Idea Group Publishing. Crawford, L. (2004). Global body of project manage-
ment knowledge and standards. In Morris and Pinto
Chen, M. (2004). A methodology for building mobile
(Eds.) The Wiley guide to managing projects. John
computing applications. International Journal of Elec-
Wiley & Sons.
tronic Business, 2(3), 229-243.
Crnkovic, I. & Larsson, M. (2000). A case study: Demands
Christensen, C. M. (1997). The innovators dilemma:
on component-based development. In Proceedings of the
When new technologies cause great firms to fail. Boston:
2nd International Conference on Software Engineering,
Harvard Business School Press.
(pp. 23-31). ACM Press.
Chung, L., Nixon, B. A., Yu, E., & Mylopoulos, J. (2000)
Crnkovic, I. (2003). Component-based software engi-
Non-functional requirements in software engineering.
neering New challenges in software development.
Boston:.Kluwer Academic Publishers.
Paper presented at the 25th International Conference on
CIO Insight (2003). Outsourcing: How well are you Information Technology Interfaces. Cavtat, Croatia.
managing your partners?. CIO Insight, 1(33), 75-85.
Cusick, J., & Prasad, A. (2006). A practical management
Clark, B. (2004). Enterprise application integration and engineering approach to offshore collaboration. IEEE
using .NET. Addison-Wesley. Software, 23(5), 20-29.

Cleland, D. (1998). Stakeholder management. In J. Pinto. da Silva, P. P. (2001). User interface declarative models
(Ed.) Project management handbook. Wiley. and development environments: A survey. (LNCS 1946,
207-226).
Cloyd, M.H. (2001). Designing user-centered Web ap-
plications in Web time. IEEE Software, 18(1), 62-69.


Compilation of References

Dart, S. (2001). Configuration management: A miss- Duarte, D. L., & Snyder, N. T. (2006). Mastering virtual
ing link in Web engineering. Norwood, MA: Arttech teams. Hoboken, NJ: Jossey-Bass.
House.
Dustin, E., Rashka, J., & McDiarmid, D. (2001). Qual-
Davis, M. (2001, February) Struts, an open-source MVC ity Web systems: Performance, security, and usability.
implementation. Retrieved on January 3, 2007, from Addison-Wesley.
http://www-128.ibm.com/developerworks/java/library/j-
Eclipse (2007). Eclipse process framework. Retrieved
struts/
May 18, 2007, from http://www.eclipse.org/epf
Davis, M., & Smith , H., (1999). The Java International
Eisenberg, R. (2004). Service-oriented architecture: The
API: Beyond JDK 1.1. Java Report, February.
future is now. Intelligent Enterprise, April 17.
Davison, D. (2003). Top 10 Risks of offshore outsourcing.
Engardio, P., Bernstein, A., Kripalani, M., Balfour, F.,
META Group Research.
Grow, B., & Greene, J. (2003). The new global job shift.
DeMarco, T., & Lister, T. (1999). Peopleware: Productive Business Week, February, 36-42,44,46.
projects and teams. New York: Dorset House.
Escalona, M. J., & Koch, N. Requirements engineering
Deshpande Y., Olsina, L., & Murugesan, S. (2002). Web for Web applicationsA comparative study. Journal of
engineering. Report on the Third ICSE Workshop on Web Web Engineering, 2(3), 193-212.
Engineering, ICSE2002, Orlando, FL, USA.
Evans, E. (2003). Domain-driven design: Tackling com-
Deshpande, Y., & Hansen, S. (2001) Web engineering: plexity in the heart of software. Addison-Wesley.
Creating a discipline among disciplines. IEEE Multime-
Farrell, D. (2003). Offshoring: Is it a win-win game?
dia, April-June, 82-87.
McKinsey Global Institute, Aug 2003.
Deshpande, Y., Ginige, A., Murugesan, S., & Hansen, S.,
Federal Office of Management and Budget (2007). Fed-
(2002). Consolidating Web engineering as a discipline.
eral enterprise architecture framework. Retrieved May
SEA Software, (April), 32-34.
18, 2007, from http://www.whitehouse.gov/omb/egov/a-
Deshpande, Y., Murugesan, S., et al. (2002). WEB 2-EAModelsNEW2.html
ENGINEERING. Journal of Web Engineering, 1(1),
Fenton, N. E., & Pfleeger, S. L. (1997). Software metrics:
003-017.
A rigorous & practical approach. International Thomson
Di Lucca, G. A., A. R. Fasolino, et al. (2002). Testing Computer Press.
Web applications. Software Maintenance, 2002. In
Fernandes, T. (1995). Global interface design.Academic
Proceedings. International Conference on.
Press.
Dignan, L. (2003). Leaping, then looking. Baseline,
Ferranti, M. (1999). From global to local. Infoworld,
1(22), 17-29.
October.
Disabatino, J. (2000). Web site globalization. Comput-
Ferranti, M. (2000). Globalization tidal wave. Infoworld,
erWorld, July.
November.
DoD C4ISR Architecture Working Group (1997).
Firesmith, D., & Henderson-Sellers, B. (2002). The OPEN
C4ISR architecture framework. Version 2. Retrieved
process framework: An Introduction. Addison-Wesley.
May 18, 2007, from http://www.fas.org/irp/program/
core/fw.pdf Floyd, C. (1984). A systematic look at prototyping. In
Budde, R., Kuhlenkamp, K., Mathiassen, L. & Zullig-


Compilation of References

hoven, H., Approaches to prototyping, (pp 1-18). Berlin: Giebel, T. (1999). Globalize your Web site. PC Magazine,
Springer Verlag. November.

Fowler, M. (2001). Separating user interface code, IEEE Gilb, T. (1988). Principles of software engineering
Software, 18(2), 96-97. management. Addison-Wesley.

Fowler, M. (2003). Patterns of enterprise application Gillenson, M., Sherrell, D. L., & Chen, L. (2000). A
architecture. Boston: Addison-Wesley. Taxonomy of Web site traversal patterns and structures.
Communications of the AIS, 3(4), 2000.
Fowler, M. (2006). Using an agile software development
process with offshore development. Retrieved on January Ginige, A. & Murugesan, S. (2001). Web engineering:
1, 2007, from http://www.martinfowler.com/articles/ag- An introduction. IEEE Multimedia, 8(1), 14-18.
ileOffshore.html
Ginige, A. & Murugesan, S. (2001). The essence of Web
Frank, C. E., Naugler, D., & Traina, M. (2005). Teach- engineering: Managing the diversity and complexity of
ing user interface prototyping. Journal of Computing Web application development. IEEE Multimedia, 8(2),
Sciences in Colleges, 20(6), 66-73. Consortium for 22-25.
Computing Sciences in Colleges.
Ginige, A. (2002). Web engineering: Managing the
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). complexity of Web systems development. In Proceed-
Design patterns: Elements of reusable object-oriented ings of the 14th International Conference on Software
software. Addison-Wesley. Engineering and Knowledge Engineering, (pp 721-729).
New York: ACM Press.
Garcia-Molina, H., Papakonstantinou, Y., Quass, D.,
Rajaraman, A., Sagiv, Y., Ullman, Y. D., Vassalos, V. Ginige, A., & Murugesan, S. (2001). Web engineering: A
& Widom, J. (1997). The TSIMMIS approach to media- methodology for developing scalable, maintainable Web
tion: Data models and languages. Journal of Intelligent applications. Cutter IT Journal, 14(7), 24-35.
Information Systems, 8(2), 117-132.
Glass, R. (2001). Whos right in the Web development
Garrett, J. (2005). Ajax: A new approach to Web ap- debate? Cutter IT Journal, 14(7), 6-10.
plications. Retrieved on July, 2007, from http://www.
Grady, R. & Caswell, D.L. (1987). Software metrics:
adaptivepath.com/publications/essays/archives/000385.
Establishing a company-wide program. Upper Saddle
php
River, NJ: Prentice-Hall.
Garzotto, F., Paolini, P., Bolchini, D., & Valenti, S. (1999,
Graham, I. (2003). A pattern language for Web usability.
November 15-18). Modeling-by-patterns of Web applica-
Addison-Wesley.
tions. Paper presented at the International Workshop on
the World Wide Web and Conceptual Modeling (WW- Grossman, W. (2000). Go Global. Smart Business,
WCM 99), Paris, France. October

Geary, D. (2001). Advanced JavaServer pages. Upper Grossman, W. (2000). The outsiders. Smart Business,
Saddle River, NJ: Sun Microsystems Press / Prentice July.
Hall.
Gruber, T. R. (1993). Toward principles for the design of
German, D. M., & Cowan, D. D. (2000, January 4-7). ontologies used for knowledge sharing. In N. Guarino
Towards a unified catalog of hypermedia design patterns. & R. Poli (Eds.) Formal ontology in conceptual analy-
Paper presented at the 33rd Hawaii International Confer- sis and knowledge representation. Kluwer Academic
ence on System Sciences (HICSS 00), Maui, USA. Publishers.


Compilation of References

Grnbacher, P. (2003). Requirements engineering for Henderson-Sellers, B., Lowe, D., & Haire, B. (2002).
Web applications. In G. Kappel, B. Prll, S. Reich, & W. OPEN process support for Web development. Annals of
Retschitzegger (Eds.), Web engineering: The discipline of Software Engineering, 13(1-4), 163-201.
systematic development of Web applications. Hoboken,
Hendler, J. (2001). Agents and the Semantic Web. IEEE
NJ: John Wiley & Sons.
Intelligent Systems, 16(2), 30-37.
Gudgin, M., M. Hadley, et al., (2003). SOAP version
Hendler, J., Lassila, O., & Berners-Lee, T. (2001). The
1.2 part 1: Messaging framework. World Wide Web
Semantic Web. Scientific American, 284(5), 34-43.
Consortium.
Hendrickson, E., & Fowler, M. (2002). The software
Hafiz, M. (2006, October 21-23). A Collection of privacy
engineering of internet software. Software IEEE, 19(2),
design patterns. Paper presented at the 13th Confer-
23-24.
ence on Pattern Languages of Programs (PLoP 06),
Portland, USA. Henkel, M., J. Zdravkovic, et al. (2004). Service-based
processes: Design for business and technology. ICSOC
Hall, M. (2003). The Web services tsunami. Comput-
04: Proceedings of the 2nd international conference on
erworld, May 19.
Service oriented computing.
Haller, A., Cimpian, E., Mocan, A., Oren, E. & Bussler,
Herbsleb, J.D., & Mockus, A. (2003). An empirical study
C. (2005). WSMX - A semantic service-oriented archi-
of speed and communication in globally distributed
tecture. In Proceedings of the Inernational Conference
software development. IEEE Transactions on Software
on Web Services ICWS05.
Engineering, 29(6), 1-14.
Hansen, S. (2002). Web information systems: The chang-
Hibernate (2006). Hibernate reference documentation
ing landscape of management models and Web applica-
version 3.1.1. Retrieved on January 2, 2007, from http://
tions. Proceedings of the 14th international conference
www.hibernate.org/5.html
on software engineering and knowledge engineering
(pp. 747-753). ACM. Hickman, N. (1998). Internationalizing your Web site.
WebTechniques, March.
Hansen, S., Deshpande, Y. & Murugesan S. (2001). A
skills hierarchy for Web-based systems development. Hieatt, E., & Mee, R. (2002). Going faster: Testing the
In S. Murugesan & Y. Deshpande (Eds.), Web Engineer- Web application. Software, IEEE, 19(2), 60-65.
ing Managing Diversity and Complexity of Web Ap-
Highsmith, J. (2000). Adaptive software development.
plication Development (LNCS Vol 2016, pp. 223-235).
Dorset House.
Berlin: Springer.
Highsmith, J. (2002). Agile software development eco-
Harriman, A., Leo, M., & Hodegetts, P. (2004) Emergent
systems. Addison-Wesley.
database design: Liberating database development with
agile practices. In Proceedings of the Agile Development Highsmith, J. (2002). Agile software development eco-
Conference, (pp. 100-105). systems. Boston: Addison Wesley Professional.

Hasan, L. R., & Abuelrub, E. (2006, June 19-21). Criteria Hoffman, A., & Neubauer, B. (2004). Deployment and
for evaluating quality of Websites. Paper presented at the configuration of distributed systems. Paper presented
Sixth IBIMA Conference on Managing Information in at the 4th International SDL and MSCWorkshop. Ot-
Digital Economy, Bonn, Germany. tawa, Canada.

Hawthorne Software Engineering Company, Software Hohmann, L. (2003). Beyond software architecture:
Development. Retrieved on September 27, 2007, http:// Creating and sustaining winning solutions. Boston,:
www.hawthornesoftware.com/Software.htm Addison-Wesley Professional.

0
Compilation of References

Holter, E. (2006), Client vs developer wars. Chapel Hill, Jarvenpaa, S. L., Knoll, K., & Leidner, D. E. (1998). Is
NC: Newfangled Web Factory. anybody out there? Antecedents of trust in global virtual
teams. Journal of Management Information Systems,
Holzschlag, M. (2000). Color my world. WebTechniques,
14(4), 29-48.
September.
Java Community Process (2002). JSR 88: Java EETM
http://www.ambysoft.com/unifiedprocess/agileUP.
application deployment. Retrieved on January 21, 2007,
html
from http://jcp.org/en/jsr/detail?id=88
Httperf. Retrieved January 13, 2005, from http://www.
Java Community Process (2003). JSR 175: A meta-
hpl.hp.com/research/linux/httperf
data facility for the JavaTM programming language.
HttpUnit. Retrieved January 13, 2005, from http://htt- Retrieved on January 21, 2007, from http://jcp.org/en/
punit.sourceforge.net jsr/detail?id=175

Humphrey, W. S. (1994). A discipline for software engi- Jeenicke, M., Bleek, W.-G., & Klisechewski, R. (2003).
neering. Boston: Addison Wesley Professional. Revealing Web user requirements through e-prototyp-
ing. In Proceedings of the 15th International Conference
Humphrey, W. S. (1996). Introduction to the personal soft-
on Software Engineering and Knowledge Engineering
ware process. Boston: Addison Wesley Professional.
(SEKE 03). Skokie, IL: Knowledge Systems Institute.
Humphrey, W. S. (1999). Introduction to the team software
Jeffries, R. (2001, November). What is eXtreme program-
process. Boston: Addison Wesley Professional.
ming? XP Magazine. [Electronic version] Retrieved
IEAD (Institute for Enterprise Architecture Devel- on January, 2006, from http://www.xprogramming.
opments) (2004). Extended enterprise architecture com/xpmag/whatisxp.htm
framework. Retrieved May 18, 2007, from http://www.
Jeffries, R., Anderson, A., & Hendrickson, C. (2001).
enterprise-architecture.info
Extreme programming installed. The XP series. Boston:
IEEE (1990). IEEE Standard 610.12-1990, IEEE Standard Addison-Wesley.
Glossary of Software Engineering Terminology.
Jensen, B., & Zilmer, A. (2003). Cross-continent devel-
Ivory, M.Y, & Hearst, M.A. (2002). Improving Web opment using Scrum and XP. Extreme programming
site design. IEEE Internet Computing, (March - April), and agile processes in software engineering. Paper
56-63. presented at the 4th International Conference. Berlin,
Germany: Springer.
Jacobs, I., & Walsh, N. (2004). Architecture of the World
Wide Web, volume one. W3C Recommendation. World Jhingran, A.D., Mattos, D. & Pirahesh, N.H. (2002).
Wide Web Consortium (W3C). Information integration: A research agenda. IBM System
Journal 41(4), special issue on information integration.
Jacobsen, I., Booch, G., & Rumbaugh, J. (2000). The
[Electronic version] Retrieved on April 14, 2008 from
unified software development process. Boston: Ad-
www.research.ibm.com/journal/sj/414/jhingran.pdf
dison-Wesley.
Johnson, J., Boucher, K. D., Conners, K., & Robinson,
Jacobson, I., Booch, G. & Rumbaugh, J. (1999). The
J. (2001). Collaborating on project success. Software
unified software development process. Reading MA:
Magazine, February/March 2001.
Addison-Wesley.
Jones, T. C. (2000). Software assessments, benchmarks,
Janzen, D., & Saiedian, H. (2005). Test-driven develop-
and best practices. Boston: Addison Wesley Profes-
ment concepts, taxonomy, and future direction. Com-
sional.
puter, 38(9), 43-50.


Compilation of References

Kaiser, P. R., Tuller, W. L., & McKowen, D. (2000). Stu- Kishore, R., Rao, H. R., Nam, K., Rajagopalan, S., &
dent team projects by internet. Business Communication Chaudhury, A. (2003). A relationship perspective on
Quarterly, 63(4), 75-82. IT outsourcing. Communications of the ACM, 46(12),
87-92.
Kaminski, H., & Perry, M. (2007, May 27-30). Open
source software licensing patterns. Paper presented at Klappholz, D. & Bernstein, L. (2001) Getting software
the Sixth Latin American Conference on Pattern Lan- engineering into our guts. Crosstalk: The Journal of
guages of Programming (SugarLoafPLoP 07), Porto Defense Software Engineering, 14(7). Retrieved on
de Galinhas, Brazil. January 1, 2007, from http://www.stsc.hill.af.mil/cross-
talk/2001/07/bernstein.html
Kamthan, P. (2007). Towards a systematic approach
for the credibility of human-centric Web applications. Klee, K. (2001). Going global: Out ten tests can help You
Journal of Web Engineering, 6(2), 99-120. Get Started. Forbes Small Business, March.

Kamthan, P. (2008). Patterns for improving the pragmatic Kloppmann, M., D. Koenig, et al., (2005). WS-BPEL
quality of Web information systems. In C. Calero, M. extension for peopleBPEL4People (A Joint White
. Moraga, & M. Piattini (Eds.), Handbook of research Paper by IBM and SAP), IBM/SAP.
on Web information systems quality. Hershey, PA: Idea
Knight, A., & Dai, N (2002). Objects and the Web. IEEE
Group Publishing.
Software, 19(2), 51-59.
Kamthan, P., & Pai, H.-I. (2006, May 21-24). Semantic
Koch, N., & Kraus, A. (2002). The expressive power of
Web-enabled Web engineering: The case of patterns.
UML-based Web engineering. Paper presented at the Sec-
Paper presented at the Seventeenth Annual Informa-
ond International Workshop on Web-Oriented Software
tion Resources Management Association International
Technology (IWWOST2), Malaga, Spain.
Conference (IRMA ;06), Washington, D.C.
Koch, P. (2006). ppk on JavaScript. Berkeley, CA: New
Kappel, G., Prll, B., Reich, S., & Retschitzegger, W.
Riders.
(2003). An introduction to Web engineering. In G. Kap-
pel, B. Prll, S. Reich, & W. Retschitzegger (Eds), Web Korper, Steffano, & Ellis (2000). The E-commerce book:
engineering: The discipline of systematic development of Building the E-empire. Academic Press.
Web applications. Hoboken, NJ: John Wiley & Sons.
Kruchten, P. (1998). The rational unified process. Ad-
Kappel, G., Prll, B., Reich, S., & Retschitzegger, W. dison-Wesley.
(2006). Web engineering. John Wiley and Sons.
Kruchten, P. (2003). The rational unified process: An
Karat, J., & Dayton, T. (1995). Practical education for introduction. 3rd Edition. Massachusetts: Addison
improving software usability. Conference on Human Wesley.
Factors in Computing Systems (pp 162-169). New York:
Krutchen, P. (1995). The 4+1 View Model of software
ACM Press.
architecture. IEEE Computer, 12(6), 42-50.
Katzenbach, J. R., & Smith, D. K. (1993). The wisdom
Kumar, K., & Welke, R. J. (1992). Methodology engi-
of teams: Creating the high performance organization.
neering: A proposal for situation-specific methodology
Boston: Harvard Business School Press.
construction. In W. W. Cotterman & J. A. Senn (Eds.),
Kendall, E. A. (1998). Utilizing patterns and pattern Challenges and strategies for research in systems devel-
languages in education. Annals of Software Engineer- opment, (pp, 257-269). John Wiley and Sons.
ing, 6(1-4), 281-294.
Kuniavsky, M. (2003). Observing the user experience.
San Francisco: Morgan Kaufmann Publishers.


Compilation of References

Kunze, M. (1998) Let there be light: LAMP : Freeware Lenzerini, M. (2002). Data integration: A theoretical
Web publishing system with database support. ct, Dec perspective. In Proceedings of the Principles of Database
1998, 230. Systems Conference PODS02, (pp. 233-246). ACM.

Kussmaul, C., & Jack, R. (2006). User interface prototyp- Levy, F., & Murnane, R. J. (2005). The new division of
ing: Tips & techniques. Journal of Computing Sciences labor: How computers are creating the next job market.
in Colleges, 21(6), 188-190. Consortium for Computing Princeton, NJ: Princeton University Press.
Sciences in Colleges.
Lie, H. W., & Bos, B. (1999). Cascading style sheets:
Kussmaul, C., Jack, R., & Sponsler, B. (2004). Outsourc- Designing for the Web, 2nd edition. Harlow, England:
ing and offshoring with agility: A case study. Extreme Addison Wesley Longman.
programming and agile methodsXP / agile universe,
Lindland, O. I., Sindre, G., & Slvberg, A. (1994).
(pp 147-154). Berlin: Springer.
Understanding quality in conceptual modeling. IEEE
Lacity, M.C., & Willcocks, L.P. (2000). Relationships Software, 11(2), 42-49.
in IT outsourcing: A stakeholder perspective. In R. W.
Lindvall, M., Basili, V., Boehm, B., Costa, P., Dangle, K.,
Zmud (Ed.), Framing the domains of IT management:
Shull, F., Tesoriero, R., Williams, L., & Zelkowitz, M.
projecting the future through the past. Cincinnati, OH:
(2002). Empirical findings in agile methods. In Proceed-
Pinnaflex Educational Resources, Inc.
ings of XP/Agile Universe 2002, (pp. 197-207).
Lam, W. (2001). Testing e-commerce systems: A practical
Liu, Y. & Smith, S. (2006). A formal framework for
guide. IT Professional, 3(2), 19-27.
component deployment. Paper presented at the 21st
Lander, M. C., Purvis, R. L., McCray, G. E., & Leigh, W. ACM Conference on Object-Oriented Programming,
(2004). Trust-building mechanisms utilized in outsourced Systems, Languages, and Applications (OOPSLA06).
IS development projects: A case study. Information and Portland, OR.
Management, 41(4), 509-528.
Lowe, D. (2003). Web system requirements: An overview.
Lassila, O., & Hendler, J. (2007). Embracing Web 3.0. Requirements Engineering, 8, 102-113.
IEEE Internet Computing, 11(3), 90-93.
Lbke, D. (2007). User interface design styles in SOA
Lau, K. & Ukis, V. (2006). Defining and checking applications. Paper presented at the 8th Annual Global
deployment contract for software components. Paper Information Technology Management Associaton World
presented at the 9th International SIGSOFT Symposium Conference, Napoli, Italy.
on Component-based Software Engineering (CBSE06).
Lbke, D., T. Lecke, et al., (2006). Model-driven de-
Stockholm, Sweden.
velopment of business applications using event-driven
Layman, L., Williams, L., & Cunningham, L. (2004). process chains. GITMA 2006, Orlando Florida.
Exploring eXtreme programming in context: An indus-
Lyardet, F., & Rossi, G. (1998, August 11-14). Patterns
trial case study. In Proceedings of the Agile Development
for designing navigable information spaces. Paper pre-
Conference (pp. 32-41).
sented at the Fifth Conference on Pattern Languages of
Le Hgaret, P., Whitmer, R., & Wood, L. (2006). Do- Programs (PLoP 98), Monticello, USA.
cument object model (DOM). Retrieved on July, 2007,
Lyardet, F., Rossi, G., & Schwabe, D. (1999, July 8-10)).
from http://www.w3.org/DOM/Overview
Patterns for adding search capabilities to Web informa-
Lederer, A. L. & Prasad, J. (1992). Nine management tion systems. Paper presented in the Fourth European
guidelines for better estimating. Communications of the Conference on Pattern Languages of Programming and
ACM, 35(2), 51-59. Computing (EuroPLoP 1999), Irsee, Germany.


Compilation of References

Mahemoff, M. (2006). Ajax design patterns. OReilly Merialdo, P. et al. (2003). Design and development of
Media. data-intensive Web sites: The Araneus Atzeni. ACM
Transactions on Internet Technology, 3(1), 49-92.
Mahmoud, Q. (2002). MobiAgent: An agent-based
approach to the wireless Internet. Journal of Internet Meszaros, G., & Doble, J. (1998). A pattern language
Computing, special issue on Wireless Internet, 3(2), for pattern writing. In R. C. Martin, D. Riehle, & F.
157-162. Buschmann (Eds.). Pattern languages of program design
3. Addison-Wesley, (pp 529-574).
Manolescu, D., & Kunzle, A. (2001, September 11-15).
Several patterns for eBusiness applications. Paper pre- Mich, L., Franch, M., & Gaio, L. (2003). Evaluating and
sented at the Eighth Conference on Pattern Languages designing Web Site quality. IEEE Multimedia. 10(1),
of Programs (PLoP 01), Monticello, USA. 34-43.

Martins, L. L., Gilson, L. L., & Maynard, M. T. (2004). Mills, D. L., Sherrell, L. B., Boydstun, J., & Wei, G.
Virtual teams: What do we know and where do we go (2006). Experiences using agile software development
from here? Journal of Management, 30(6), 805-835. for a shopping simulation. In Proccedings of IEEE
Southeast Con 2006 (pp. 285-290).
May, D., & Taylor, P. (2003). Knowledge Management
with Patterns. Communications of the ACM, 46(7), Mockus, A., & Weiss, D.M. (2001). Globalization by
94-99. chunking: A quantitative approach. IEEE Software,
18(2), 30-37.
McPhail, J. C., & Deugo, D. (2001, June 4-7). Deciding
on a pattern. Paper presented at the 14th International Montero, F., Lpez-Jaquero, V., & Molina, J. P. (2003,
Conference on Industrial and Engineering Applications September 1-2). Improving e-Shops environments by
of Artificial Intelligence and Expert Systems (IEA/AIE using usability patterns. Paper presented at the Second
2001). Budapest, Hungary. Workshop on Software and Usability Cross-Pollination,
Zrich, Switzerland.
Mellor, S., & Balcer, M. (2002). Executable UML: A foun-
dation for model driven architecture. Addison-Wesley. Montero, F., Lozano, M., & Gonzlez, P. (2002, August
5-7). Designing Web sites by using design patterns. Paper
Menasce, D.A, & Almeida, V.A.F. (2002). Capacity plan-
presented at the Second Latin American Conference on
ning for Web services: Metrics, models, and methods.
Pattern Languages of Programming (SugarLoafPLoP
Upper Saddle River, NJ: Prentice Hall.
02), Rio de Janeiro, Brazil.
Mendes, E., & Mosley, N. (2006). Web engineering.
Moore, S., & Barnett, L. (2004). Offshore outsourcing
Springer-Verlag.
and agile development. Forrester Research, Inc.
Mendes, E., Mosley, N. (2005). Web Engineering. Berlin,
Morein, R. (2005). Agile development of the databasea
Germany: Springer.
focal entity prototyping approach. In Proceedings of the
Mendes, E., Mosley, N., & Counsell, S. (2006). The need Agile Development Conference, (pp. 103-110).
for Web engineering: An introduction. In E. Mendes
Mori, G., F. Patern, et al., (2004). Design and develop-
& N. Mosley (Eds), Web engineering. Berlin: Springer
ment of multidevice user interfaces through multiple
Verlag.
logical descriptions. IEEE Trans. Software Eng, 30(8),
Mendling, J., & Nttgens, M. (2005). EPC markup lan- 507-520.
guage (EPML) - An XML-based interchange format for
Morisio, M., & Oivo, M. (2003). Software engineering
event-driven process chains (EPC).Information Systems
for the wireless Internet [Guest Editors Introduction].
and e-Business Management (ISeB) 4(3), 245-263.
IEEE Transactions on Software Engineering, 29(12),
1057-1058.


Compilation of References

Morris, P. (2001). Updating the project management Neill, C., & Laplane, P. (2003). Requirements engineer-
bodies of knowledge. Project Management Journal, ing: The state of the practice, IEEE Software, 20(6),
September. 40-45.

Morrison, T. (1997). Dun & Bradstreets Guide to doing Nelson, T. H. (1984). Literary machines. Mindful
business around the world. Prentice Hall. Press.

Morrison, T. (2000). Kiss, bow, or shake hands: How to Neuman, C. (2000). Considering the color-blind. Webt-
do business in 60 countries. Adams Media. echniques, August.

Moschella, D. (2000). Ten key IT challenges for the next Newman, M. W., Lin, J., Hong, J. I., & Landay, J. A.
20 years. Computerworld, December. (2003). DENIM: An informal Web site design tool in-
spired by observations of practice. Human-Computer
Motorola Application Certification Program. (n.d.).
Interaction, 18(3), 259-324.
Retrieved February 10, 2005, from http://qpqa.com/
motorola/iden Newward, T. (2006). The Vietnam of computer science.
Retrieved on May 28, 2007, from http://blogs.tedneward.
Murugesan, S. & Ginige, A. (2005). Web engineering:
com/2006/06/26/The+Vietnam+Of+Computer+Science.
Introduction and perspectives. In Suh, W. (Ed.), Web
aspx
engineering: Principles and techniques (pp 1-30). Her-
shey, PA: Idea Group Publishing. Nguyen, H. Q., Johnson, R., & Hackett, M. (2003). Test-
ing applications on the Web: Test planning for mobile
Murugesan, S. (1998). Web engineering. Presentation at
and Internet-based systems (2nd Edition). John Wiley
the First Workshop on Web Engineering, World Wide
and Sons.
Web Conference (WWW7), Brisbane, Australia.
Nielsen, J. (1990). Paper versus computer implementa-
Murugesan, S. et al. (1999). Web engineering: A New
tions as mockup scenarios for heuristic evaluation. In
Discipline for Development of Web-based systems. In
Proceedings of the IFIP Third International Conference
Proceedings of the First ICSE Workshop on Web Engi-
on Human Computer Interaction (pp 315-320). Amster-
neering, Los Angeles (pp. 1-9).
dam: North-Holland.
Murugesan, S., & Deshpande, Y. (Eds) (2001). Web en-
Nielsen, J. (1993). Usability engineering. San Francisco:
gineering: Managing diversity and complexity of Web
Morgan Kaufmann Publishers.
application development. Lecture Notes in Computer
Science Hot Topics, 2016. Berlin: Springer Verlag. Nikkanen, M. (2004). User-centered development of a
browser-agnostic mobile e-mail application. In Proceed-
Myers, B. A. & Rosson, M. B. (1992). Survey on user in-
ings of the Third Nordic Conference on Human-Computer
terface programming. In Proceedings of the ACM CHI92
Interaction, Tampere, Finland (pp. 53-56). New York:
Conference (pp 195-202). New York: ACM Press.
ACM Press.
Myers, G. J., Badgett, T., Thomas, T. M., & Sandler, C.
Norman, D. (2002). The design of everyday things. New
(2004). The art of software testing. Hoboken, N.J.: John
York: Basic Books.
Wiley & Sons.
OReilly, T. (2005). What is Web 2.0: Design patterns
Nam, T. J. & Gill, S. (2000). An effective prototyping
and business models for the next generation of software.
method for delivering interaction design in industrial
Retrieved on July, 2007, from http://www.oreillynet.
design education. In Proceedings of the IDATER Con-
com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-
ference, 2000.
20.html


Compilation of References

Oberle, D., Eberhart, A., Staab, S., & Volz, R. (2004). Palmer, S. R., & Felsing, J. M. (2002). A practical guide
Developing and managing software components in an to feature-driven development. Upper Saddle River, NJ:
ontology-based application server. In Proceedings of Prentice-Hall.
the 5th International Middleware Conference, Toronto,
Passani, L., & Trasatti, A. (2002). WURFL. Retrieved on
Canada: Springer-Verlag.
July, 2007, from http://wurfl.sourceforge.net/
Object Management Group (2002). CORBA component
Patten, B. & Grandlienard, G. (1999). Using resource
model, version 3.0.
bundles to international text. Java Report, February.
Object Management Group (2006). Deployment and
Patterson, J. (1994). ISO 9000: Worldwide quality stan-
configuration of component-based distributed applica-
dard. Stamford, CT: Crisp Learning.
tions specification, version 4.0.
Patton, S. (2002). Web metrics that matter. Computer
Ocampo, A., Boggio, D., Munch, J., & Palladino, G.
World. [Electronic version]. Retrieved on September 27,
(2003). Towards a reference process for developing wire-
2007, from http://www.computerworld.com/databasetop-
less Internet services. IEEE Transactions on Software
ics/data/story/0,10801,76002,00.html
Engineering, 29(12), 1122-1134.
Paulk, M. C. (2001). Extreme programming from a CMM
Offutt, J. (2002). Quality attributes of Web software
Perspective. IEEE Software, 18(6), 19-26.
applications. IEEE Software, 19(2), 25-32.
Paulk, M. C., Weber, C. V., Curtis, B., Chrissis, M. B.,
Olsina, L., & Rossi, G. (2002) Measuring Web application
et al. (1994). The capability maturity model: Guidelines
quality with WebQEM. IEEE Multimedia, 9(4), 20-29.
for improving the doftware process. Boston: Addison
OMG (Object Management Group) (2007). Model driven Wesley Professional.
architecture. Retrieved May 18, 2007, from http://www.
Peak, P., & Heudecker, N. (2005). Hibernate quickly.
omg.org/mda
Greenwich, CT: Manning Publications.
Open Mobile Alliance. (2005). Retrieved from March
Peltier, M., Bezivin, J & Guillaume, G. (2001). MTRANS:
15, 2005, http://www.openmobilealliance.org
A general framework, based on XSLT, for model trans-
Oppenheimer, D., & Patterson, D.A. (2002). Architecture formations. In Proceedings of the Workshop on Trans-
and dependability of large-scale Internet services. IEEE formations in UML WTUML01.
Internet Computing, September-October, 41-49.
Peltier, M., Ziserman, F. & Bezivin. (2002). On levels
Orriens, B., Yang, J. & Papazoglou, M. (2003). A frame- of model transformation. In Proceedings of the XML
work for business rule driven Web service composition. Europe Conference (pp. 1-17). Paris, France: Graphic
In M. A. Jeusfeld & O. Pastor, (Eds). Proceedings Communications Association.
of the ER2003 Workshops, LNCS 2814, (pp. 52-64).
Perrotta, T/ (2000). Yahoo ruling exposes risks of being
Springer-Verlag.
global. InternetWorld, July.
Paasivaara, M., & Lassenius, C. (2004). Using interactive
Perry, M., & Kaminski, H. (2005, July 6-19). A pattern
and incremental processes in global software develop-
language of software licensing. Paper presented at the
ment. In Proceedings of the International Conference on
Tenth European Conference on Pattern Languages of
Software Engineering (ICSE) Third International Work-
Programs (EuroPloP 05), Irsee, Germany.
shop on Global Software Development, (pp. 24-28).
Pertet, S. M., & Narasimhan, P. (2005). Causes of failure
in Web applications. PDL Technical Report PDL-CMU-
05-109. Carnegie Mellon University, Pittsburgh, USA.


Compilation of References

Perzel, K., & Kane, D. (1999, August 15-18). Usability Reifer, D.J. (2000). Web development: Estimating quick-
patterns for applications on the World Wide Web. Paper to-market software. IEEE Software, 17(6), 57-64.
presented at the Sixth Conference on Pattern Languages
Rettig, M. (1994). Prototyping for tiny fingers. Com-
of Programs (PLoP 99), Monticello, USA.
munications of the ACM, 37(4), 21-27.
Peterson, C. (2000). Accessible Web sites matter. En-
Reynaud, C., Sirot, J. P. & Vodislav, D. (2001). Semantic
terprise Development, June.
integration of XML heterogeneous data sources. In Pro-
Pinsonneault, A., & Caya, O. (2005). Virtual teams: What ceedings of the IDEAS Conference (pp. 199-208).
we know, what we dont know. International Journal of
Ricca, F., & P. Tonella (2001). Analysis and testing of
e-Collaboration, 1(3), 1-16.
Web applications. In Proceedings of the International
PMI (2000), The project management body of knowledge Conference on Software Engineering, (pp. 25-34).
(PMBOK), Project Management Institute.
Riggins, F. J., & Mitra, S. (2003). A framework for devel-
Powell, A., Piccoli, G., & Ives, B. (2004). Virtual teams: oping net-enabled business metrics through functional-
A review of current literature and directions for future ity interaction. Retrieved on September 27, 2007, from
research. ACM SIGMIS Database, 35(1), 6-36. http://ids.csom.umn.edu/faculty/friggins/e-metrics.pdf

Powell, T. A., Jones, D. L., & Cutts, D. C. (1998). Web Rising, L & Janoff, N. S. (2000). The scrum software
site engineering. Prentice-Hall. development process for small teams. IEEE Software,
July/August, 2-8.
Preece, J., Rogers, Y., & Sharp, H. (2002). Interaction
Design: Beyond Human-Computer Interaction. Hoboken, Robb, D. (2000). Act globally, serve locally. Information
NJ: John Wiley & Sons. Week, July.

Pressman, R. S. (2005). Software engineering: A practi- Romanosky, S., Acquisti, A., Hong, J., Cranor, L. F., &
tioners approach (6th ed.). New York: McGraw Hill. Friedman, B. (2006, October 21-23). Privacy patterns
for online interactions. Paper presented at the 13th
Pressman, R.S. (2001). What a tangled Web we weave.
Conference on Pattern Languages of Programs (PLoP
IEEE Software, 18(1), 18-21.
06), Portland, USA.
Pressman, R.S. (2004). Applying Web engineering, Part
Rosenberg, F. & Dustdar, S. (2005). Business rules
3. software engineering: A practitioners perspective
integration in BPEL - A service-oriented approach. In
(6th ed.). New York: McGraw-Hill.
Proceedings of the 7th International IEEE Conference
Purdue University (1989). The Purdue enterprise on E-Commerce Technology.
reference architecture. Retrieved May 18, 2007, from
Ross, M. (2002). Quality in Web design for visually
http://pera.net
impaired users. Software Quality Journal, 10(4), 285-
Putman, J.R. (2001). Architecting with RM-ODP. New 298.
Jersey: Prentice Hall PTR.
Rossi, G., & Koch, N. (2002, July 3-7). Patterns for adap-
Ramesh, B., Cao, L., Mohan, K., & Xu, P. (2006). Can tive Web applications. Paper presented at the Seventh
distributed software development be agile? Communica- European Conference on Pattern Languages of Programs
tions of the ACM, 49 (10), 41-46. (EuroPLoP 02). Irsee, Germany.

Reed, S. (2000). Want to limit the audience for you Web Rossi, G., Lyardet, F. D., & Schwabe, D. (1999). Develop-
site? Keep it English only. Infoworld, August. ing hypermedia applications with methods and patterns.
ACM Computing Surveys. 31(4es).


Compilation of References

Rossi, G., Lyardet, F., & Schwabe, D. (2000, July 5-9). Sawhney, Mohanbir, & Sumant Mandai (2000). Go
Patterns for E-commerce applications. Paper presented global. Business, May.
at the Fifth European Conference on Pattern Languages
Schach, S. R. (2003). Object-oriented & classical software
of Programs (EuroPLoP 2000), Irsee, Germany.
engineering. New York: McGraw-Hill.
Rossi, G., Pastor, O., Schwabe, D., & Olsina, L. (2008).
Schmidt, D. C., Stal, M., Rohnert, H., & Buschmann, F.
Web engineering: Modelling and implementing Web
(2000). Pattern-oriented software architecture, Volume
applications. Springer-Verlag.
2: Patterns for concurrent and networked objects. John
Rossi, G., Schwabe, D., & Lyardet, F. (1999, May 11-14). Wiley and Sons.
Improving Web information systems with navigational
Schrage, M. (2000). Serious play: How the worlds best
patterns. Paper presented at the Eighth International
companies simulate to innovate. Boston: Harvard Busi-
World Wide Web Conference (WWW8), Toronto,
ness School Press.
Canada.
Schumacher, M., Fernandez-Buglioni, E., Hybertson,
Roth, J. (2002). Patterns of mobile interaction. Personal
D., Buschmann, F., & Sommerlad, P. (2006). Security
and Ubiquitous Computing. 6(4), 282-289.
patterns: Integrating security and systems engineering.
Royce, W. (1970). Managing the development of large John Wiley and Sons.
software systems. In Proceedings of IEEE WESCON
Schwaber, K. (2003). Agile project management with
(pp 1-9). New York: The Institute of Electrical and
scrum. Microsoft Press.
Electronics Engineers.
Schwaber, K., & Beedle, M. (2001). Agile software
Royce, W. (1970). Managing the development of large
development with SCRUM. Upper Saddle River, NJ:
software systems. In Proceedings of the IEEE WEST-
Prentice Hall PTR.
CON, Los Angeles CA, IEEE Computer Society.
Schwartz, H. (2000). Going global. WebTechniques,
Rubin, J. (1994). Handbook of usability testing. Hoboken,
September.
NJ: John Wiley & Sons.
Segersthl, K., & Jokela, T. (2006, April 22-27). Usability
Rudd, J. and Isensee, S. (1994). Twenty-two tips for a
of interaction patterns. Paper presented at the CHI 2006
happier, healthier, prototype. interactions, 1(1), 35-40.
Conference on Human Factors in Computing Systems,
Rudd, J., Stern, K., & Isensee, S. (1996). Low vs. high- Montral, Canada.
fidelity prototyping debate. interactions, 3(1), 76-85.
Selmi, S. S., Kraem, N., & Ghzala, H. H. B. (2005, July
Ruhe, M., Jeffrey, R., & Wieczorek, I. (2003, May). Cost 27-29). Toward a comprehension view of Web engineering.
Estimation for Web Applications. In Proceedings of the Paper presented at the Fifth International Conference on
25th International Conference on Software Engineering, Web Engineering (ICWE 05), Sydney, Australia.
IEEE Computer Society, (pp. 285-294).
Seltsikas, P. & Currie, W.L. (2002). Evaluating the appli-
Sanja, A. (2005). Overview of agile management project cation service provider (ASP) business model: The chal-
perfect. White Paper. Retrieved on January 2, 2007 from lenge of integration. In Proceedings of the 35th Annual
http://www.projectperfect.com.au/info_agile_program- Hawaii International Conference, (pp. 2801-2809).
ming.php
Seshadri, G. (1999). Understanding JavaServer pages
Satoh, I. (2003). A testing framework for mobile comput- model 2 architecture: Exploring the MVC design pattern.
ing software. IEEE Transactions on Software Engineer- JavaWorld, December.
ing, 29(12), 1112-1121.


Compilation of References

Shadbolt, N., Hall, W., & Berners-Lee, T. (2006). The Software Engineering Institute (2003). Process maturity
Semantic Web revisited. IEEE Intelligent Systems, 21(3), profile: Software CMM -CBA IPI and SPA Appraisal
96-101. Results.

Shan, T.C., & Hua, W.W. (2006). Solution architecture Software Engineering Institute (SEI) at CMU (2007).
of N-Tier applications. In Proceedings of 3rd IEEE Scenario-based architecture analysis method. Retrieved
International Conference on Services Computing (pp. on May 18, 2007, from http://www.sei.cmu.edu/architec-
349-356). California: IEEE Computer Society. ture/scenario_paper

Sheth A. P. & Larson J. A. (1990). Federated database Spriestersbach, A., & Springer, T. (2004). Quality at-
systems for managing distributed, heterogeneous, and tributes in Mobile Web Application Development. In F.
autonomous databases. ACM Computing Surveys, 22(3), Bomarius & H. Iida (Eds.). Product Focused Software
183. Process Improvement. (pp. 120-130).Springer-Verlag.

Siegel, D.A. (2003). The business case for user-centered Squier, J., & Nielsen, J. (2000). DeconstructingHojo.
design: Increasing your power of persuasion. Interac- com. Internet World, June.
tions, 10(3).
Stamper, R. (1992, October 5-8). Signs, Organizations,
Siggelkow, B. (2005). Jakarta struts cookbook. Sebas- Norms and Information Systems. Paper presented at the
topol, CA: OReilly. Third Australian Conference on Information Systems,
Wollongong, Australia.
Sillence, E., Briggs, P., Harris, P, & Fishwick, L. (2006). A
framework for understanding trust factors in Web-based Standing, C. (2002). Methodologies for developing Web
health advice. International Journal of Human-Computer applications. Information and Software Technology,
Studies, 64, 697-713. 44(3), 151-159.

Simon, H. (1996). The Sciences of the Artificial (3rd Edi- Standish Group (1994). The CHAOS report. Retrieved
tion). The MIT Press. January 1, 2007 from http://www.standishgroup.com/
sample_research/chaos_1994_1.php
Simons, M. (2002). Internationally agile. InformIT,
March 15, 2002. Standish Group (2004). Chaos chronicles. Retrieved on
www.standisgroup.com
Sliski, T. J., M. P. Billmers, et al., (2001). An architecture
for flexible, evolvable process-driven user-guidance Standish Group (2007). The Standish Group Chaos
environments. Paper presented at the8th European soft- Report 2006. Retrieved May 18, 2007, from http://www.
ware engineering conference held jointly with 9th ACM standishgroup.com
SIGSOFT international symposium on Foundations of
Stapleton, J. (1997). DSDM dynamic systems develop-
software engineering, Vienna, Austria.
ment method. Addison-Wesley.
Sneed, H. M., A. GmbH, et al. (2004). Testing a Web
Steiner, D. H., & Palmer, D. W. (2004). Extreme soft-
application. Web Site Evolution, 2004. WSE 2004. In
ware engineering. Upper Saddle River, NJ: Pearson
Proceedings of the Sixth IEEE International Workshop,
Education.
(pp. 3-10).
Stern, A & Davis, J. (2003). A taxonomy of information
Snyder, C. (2003). Paper prototyping: The fast and easy
technology services: Web services as IT services. In
way to design and refine user interfaces. San Francisco:
Proceedings of the First International Conference on
Morgan Kaufmann Publishers.
Service Oriented Computing.


Compilation of References

Stern, A. & Davis, J. (2004). Extending the Web services Retrieved on January 3, 2007, from http://www.eweek.
model to IT services. In Proceedings of the IEEE Inter- com/article2/0,1895,1885883,00.asp
national Conference on Web Services, (pp. 824-825).
Tapper, S. (2000). Is globalization right for you. WebT-
Stout, G. A. (2001). Testing a Website: Best practices. echniques, September
Retrieved from whitepaper on www. reveregroup. com
Tate, B. A., & Hibbs, C. (2006). Ruby on Rails: Up and
Struts (2005). The Struts user guide. Retrieved on January Running. OReilly Media.
2, 2007, from http://struts.apache.org/struts-doc-1.2.9/
Taylor, M. J., McWilliam, J., Forsyth, H., & Wade, S.
userGuide/index.html
(2002). Methodologies and Website development: A
Subramanian, N., & Chung, L. (2003, September). Pro- survey of practice. Information and Software Technol-
cess-oriented metrics for software architecture evolv- ogy, 44, 381-391.
ability. In Proceedings of the International Workshop
The Open Group (2007). The Open Group architecture
on Principles of Software Evolution, IEEE Computer
framework. Retrieved May 18, 2007, from http://www.
Society, (pp. 65-70). Helsinki, Finland.
opengroup.org/togaf
Subramanian, N., Chung, L., & Song, Y-t. (2006, June). An
Tidwell, J. (2005). Designing interfaces: Patterns for
NFR-Based framework to establish traceability between
effective interaction design. OReilly Media.
application architectures and system architectures. In
Proceedings of the 7th ACIS International Conference on Trtteberg, H. (1999). Modelling work: Workflow and
Software Engineering, Artificial Intelligence, Network- task modelling. CADUI.
ing, and Parallel/Distributed Computing (SNPD 2006),
Treasury Department CIO Council (2000). Treasury
IEEE Computer Society, Las Vegas.
enterprise architecture framework. Version 1. Re-
Subramanian, N., Puerzer, R., & Chung, L. (2005, Sep- trieved May 18, 2007, from http://www.eaframeworks.
tember). A comparative evaluation of maintainability: com/TEAF/teaf.doc
A study of engineering departments Website maintain-
Uden, L. (2002). Design process for Web applications.
ability. In Proceedings of the International Conference
IEEE Multimedia, (Oct-Dec), 47-55.
on Software Maintenance, (pp. 669-672). IEEE Computer
Society. Budapest, Hungary. Uniscape Corporation (2000). Global content manager.

Sun Microsystems J2ME Wireless Toolkit. (2005). Van Duyne, D. K., Landay, J., & Hong, J. I. (2003). The
Retrieved from http://java.sun.com/products/j2mew- design of sites: Patterns, principles, and processes for
toolkit crafting a customer-centered Web experience. Addison-
Wesley.
Sun Microsystems J2ME. (2005). Retrieved from http://
java.sun.com/j2me Van Eaton, J. (2005). Outlook Web access - A catalyst for
Web evolution. Retrieved on July, 2007, from http://ms-
Sundstrom, E. & Associates (1998). Supporting work
exchangeteam.com/archive/2005/06/21/406646.aspx
team effectiveness: Best management practices for
fostering high performance. San Francisco, CA: Jossey- Van Ommering, R. (2001). Techniques for independent
Bass. deployment to build product populations. Paper presented
at the 2001 Working IEEE / IFIP Conference on Software
Szyperski, C. (2002). Component software: Beyond ob-
Architecture. Amsterdam, The Netherlands.
ject-oriented programming, 2nd Ed. Addison-Wesley.

Taft, D. K. (2005, November 11). Microsoft lauds Scrum


method for software projects. eWeek. [electronic version]

0
Compilation of References

Verhoeven, J. (2003). Prototyping with PowerPoint. Re- Weyuker, E. (1998). Testing component-based software:
trieved on January 1, 2007, from http://www.jansfreeware. A cautionary tale. IEEE Software. September/October
com/articles/misc-prototyping.html 1998.

Vijayaraghavan, G. V. (2003). A taxonomy of E-commerce White, B. (1996, May 6-11). Web document engineering.
risks and failures. Masters Thesis. Florida Institute of Talk given at 5th International World Wide Web Confer-
Technology. Melbourne, USA. ence, Paris, France. [Electronic version]. Retrieved on
September 27, 2007, http://www.slac.stanford.edu/pubs/
Virzi, R. A., Sokolov, J. L., & Karis, D. (1996). Usability
slacpubs/7000/slac-pub-7150.html
problem identification using both low- and high-fidelity
prototypes. In Proceedings of the SIGCHI Conference White, S. A. (2006). Business process modeling notation
on Human Factors in Computing Systems (pp 236-243). specification, object management group standard.
New York: ACM Press.
Whiting, R. (2000). U.S. companies to comply with Eu-
Vogel, D. A., & Connelly, J. E. (2005). Best practices for ropean privacy rules. Information Week, February.
dealing with offshore software development. Handbook
Whitson, G. (2006) WebHelix: Another Web engineering
of Business Strategy. Bradford, UK: Emerald Group
process. The Journal of Computing Sciences in Colleges,
Publishing Limited.
21(5), 21-27.
Walker, M., Takayama, L., & Landay, J. (2002). High-
Whitten, J. L., & Bentley, L. D. (2006). Systems analysis
fidelity or low-fidelity, paper or computer medium?
and design methods. McGraw Hill..
Choosing attributes when testing Web prototypes. In
Proceedings of the Human Factors and Ergonomics Widom, J. (1995). Research problems in data warehous-
Society 46th Annual Meeting, pp. 661-665. Santa Monica, ing. In Proceedings of the 4th International Conference
CA: Human Factors and Ergonomics Society. on Information and Knowledge Management.

Wallace, D., Raggett, I., & Aufgang, J. (2002). Extreme Wiederhold, G. (1992). Mediators in the architecture
programming for Web projects. Addison-Wesley. of future information systems. IEEE Computer, 25.
March, 38-49.
Walsh, K. R. (2003). Analyzing the application ASP
concept: Technologies, economies, and strategies. Com- Willcocks, L. P. & Lacity, M. C. (1998). The sourcing and
munications of the ACM, 46(8), 103-107. outsourcing of IS: Shock of the new? In L. P. Willcocks
& M. C. Lacity (Eds.) Strategic sourcing of information
Weiss, M. (2003, September 8-12). Patterns for Web
technology: Perspectives and practices. Wiley.
applications. Paper presented at the Tenth Conference
on Pattern Languages of Programs (PLoP 03), Urbana, Williams, C. (2006). Smart phones, stupid punters? The
USA. Register, July 13, 2006.

Wentzlaff, I., & Specker, M. (2006, July 10). Pattern Williams, J. (2000). Correctly assessing the ilities
based development of user friendly Web applications. requires more than marketing hype. IT Professional,
Paper presented at workshop on Model-Driven Web 2(6), 65-67.
Engineering (MDWE 06), Palo Alto, CA, USA..
Williams, J. (2001). Avoiding CNN moment. IT Profes-
Wesson, J., & Cowley, L. (2003, September 1-2). De- sional, 3(2), 68-70.
signing with patterns: Possibilities and pitfalls. Paper
Williams, L., & Kessler, R. (2000). Strengthening the case
presented at the Second Workshop on Software and
for pair programming. IEEE Software, 17(4), 19-25
Usability Cross-Pollination, Zrich, Switzerland.


Compilation of References

Winch, G. (2004). Managing project stakeholders. In Zachman, J.A. (1987). A framework for information
Morris and Pinto (Eds.). The Wiley guide to managing systems architecture. IBM Systems Journal, 26(3),
projects. John Wiley & Sons. 276-295.

Wu, Y., J. Offutt, et al. (2004). Modeling and testing Zhang, Z. & Yang, H. (2004). Incubating services in
of dynamic aspects of Web applications. Submitted for legacy systems for architectural migration. In Pro-
publication: 04-01. ceedings of the 11th Asia-Pacific Software Engineering
Conference (APSEC04) (pp. 196-203).
Xu, L., B. Xu, et al. (2005). Testing Web applications
focusing on their specialties. ACM SIGSOFT Software Zhu, F., Turner, M., Kotsiopoulos, I., Bennett, K., Rus-
Engineering Notes, 30(1). sell, M., Budgen, D., Brereton, P., Keane, J., Layzell, P.,
Rigby, M. & Xu, J. (2004). Dynamic Data Integration
Yoder, J., & Barcalow, J. (1997, September 3-5). Archi-
Using Web Services. In Proceedings 2nd International
tectural patterns for enabling application security. Paper
Conference on Web Services (ICWS04).
presented at the Fourth Conference on Pattern Languages
of Programs (PLoP 1997), Monticello, USA. Ziemer, S., & Stlhane, T. (2004, July 27). The use of
trade-offs in the development of Web applications. Paper
Yunker, J. (2000). Speaking in charsets. WebTechniques,
presented at the International Workshop on Web Quality
September.
(WQ 2004). Munich, Germany.




About the Contributors

Daniel M. Brandon. In a speech in Cape Town, South Africa in June of 1966 Robert F. Kennedy said
May you live in interesting times. He said the phrase was of Chinese origin, although even Chinese
are not sure of this, but it certainly applies to us who have become deeply involved with information
technology (IT). Dan Brandon took his first computer course in college in 1966 and has been fascinated
by IT ever since.
As he started his career, IT was also really just starting. The disciplines of Computer Science,
Software Engineering, and IT Project Management all were formulated and solidified during his
working years. He has designed and developed software for every generation of software (assembly
thru object oriented), and almost every generation of IT architecture and hardware (mainframe, mini,
PC, client-server, web). He has also programmed in most major computer languages including ALGOL,
FORTRAN, Pascal, Ada, COBOL, Basic, C, C++, Java, and modern web-based languages as PHP to
develop applications in a wide variety of areas encompassing the business, engineering, and scientific
fields.
As his career moved him from programmer to designer to manager, he was always involved with
the application of new computer technology and concepts to the solution of application problems. The
effective management of all the resources and stakeholders involved with building, integrating, and
deploying IT applications has always represented a major interest and challenge to him. Along the way
he managed to fit in some schooling, obtaining a BS (Case Western Reserve University), MS, and PhD
in Engineering (University of Connecticut); his PhD specialization was in computer methods.
Before returning to the university environment, Dr. Brandon accumulated over thirty years of com-
mercial experience in both the IT technical and management arenas. He was a Senior Engineer at Mobil
Research, Manager of Application Development for Control Data Corporation, MIS Manager for several
companies, and Director of Information Services at the NASA Stennis Space Center.
He is currently a professor of Information Technology Management (ITM) at Christian Brothers Uni-
versity (CBU) in Memphis, TN. CBU is a part of the De La Salle Christian Brothers global educational
organization with 1000 plus schools in over 80 countries. Dr. Brandons research interests include both
the management and technical side of IT. At CBU he teaches undergraduate and graduate courses in IT,
including: Information Systems Management, Project Management, Software Engineering, Database
Design, Decision Support Systems, Internet Systems, and Programming.
Prior to this book, his most recent book (2006) is Project Management for Modern Information
Systems by IRM Press (978-1591406945). He has been published in a number of other books, journals,
and conference proceedings including The Project Management Journal, The Wiley Guide to Managing
Projects, Essentials of Project Control, Encyclopedia of Information Technology, Journal of Computing

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
About the Contributors

Sciences in Colleges, Successful Software Reengineering, Technologies & Methodologies for Evaluat-
ing Information Technology in Business, Issues and Trends of Information Technology Management
in Contemporary Organizations, Architectural Issues of Web-Enabled Electronic Business, Managing
Information Technology Resources in Organizations in the Next Millennium, and Managing Informa-
tion Technology in a Global Economy.
He is a member of the Society of Information Management (SIM), the Information Resource Manage-
ment Association (IRMA), the IEEE Computer Society, and the Project Management Institute (PMI).
He also holds the PMP (Project Management Professional) Certification which is the highest certifica-
tion granted from PMI. He continues to do consulting with a number of companies both locally and
internationally. Currently he is involved in the design and development of comprehensive open source
software systems for business applications.

***

Kevin A. Gary is an assistant professor in the Division of Computing Studies at Arizona State
Universitys Polytechnic Campus. His research interests include automated workflow, software process,
distributed software systems, and technology-supported learning. Dr. Gary joined ASU after spending
four years in industry developing enterprise software solutions for e-learning. His observations mentor-
ing junior software engineers led him to implement the Software Enterprise at ASU. He is a participant
in the open source Image-guided Surgery Toolkit (IGSTK) and an industry consultant specializing in
enterprise software systems. Dr. Gary earned his PhD from ASU in 1999.

Jorge Marx Gmez studied computer engineering and industrial engineering at the University of
Applied Science of Berlin (Technische Fachhochschule). He was a lecturer and researcher at the Otto-
von-Guericke-Universitt Magdeburg where he also obtained a PhD degree in business information
systems with the work Computer-based Approaches to Forecast Returns of Scrapped Products to Re-
cycling. In 2004 he received his habilitation for the work Automated Environmental Reporting through
Material Flow Networks at the Otto-von-Guericke-Universitt Magdeburg. From 2002 till 2003 he was
a visiting professor for business informatics at the Technical University of Clausthal. In 2005 he became
a full professor of business information systems at the Carl von Ossietzky University Oldenburg. His
research interests include business information systems, e-Commerce, material flow management sys-
tems, Federated ERP-Systems, Data Warehousing, recycling program planning, disassembly planning
and control, simulation and neuro-fuzzy-systems.

Winnie Hua is a principal consultant in CTS Inc. She has more than 15-year project and consulting
experience in a broad range of leading-edge technologies. She holds a graduate degree in Computer Sci-
ence. As a solution architect/lead, she has led lifecycle design and development of large-scale eCommerce
systems on diverse platforms using a variety of cutting-edge technologies and unified/agile methodolo-
gies. She has initiated/participated in advanced research on various emerging web technologies. She is
a member of numerous professional associations, a frequent speaker in conferences/seminars, and also
a co-founder of Charlotte Architecture and Technology Symposium (CATS).

Roger Jack is president of Elegance Technologies, Inc. Jack has experience in project management,


About the Contributors

and creating reliable and robust interfaces and architectures. He was vice president of U.S. software op-
erations for NeST Technologies, where he managed many offshore projects. He has an MBA from Duke
Universitys Fuqua School of Business, and an MS in computer science from Villanova University.

Pankaj Kamthan has been teaching in academia and industry for several years. He has also been a
technical editor, participated in standards development, served on program committees of international
conferences, and is on the editorial board of the International Journal of Technology Enhanced Learning
and the International Journal of Teaching and Case Studies. His professional interests and experience
include knowledge representation, requirements engineering, and software quality.

Harry Koehnemann is an professor of practice for the Division of Computing Studies at Arizona
State University Polytechnic campus and a senior technical consultant for Rocket Gang. His interests
include distributed software systems, software process, and modeling software-intensive systems. Harry
has worked several years as a software architect and senior software developer on software systems
ranging from large enterprise applications to embedded control systems. Harry is also a trainer and
consultant in software tools and technologies, software modeling, and process. Harry received his PhD
in computer science from Arizona State University in 1994.

Clif Kussmaul is chief technology officer for Elegance Technologies, which develops software products
and provides product development services, and assistant professor of computer science at Muhlenberg
College. Formerly, he was senior member of technical staff at NeST Technologies. He has a PhD from
the University of California, Davis, an MS and MA from Dartmouth College, and a BS and BA from
Swarthmore College. His interests include agile development, virtual teams, and entrepreneurship.

Daniel Lbke earned his diploma degree in business informatics at the TU Clausthal in 2004. He
worked in software development and coaching. Currently, he is research assistant at the Software En-
gineering group at the Leibniz University Hannover. Areas of interests include modern approaches for
distributed applications like Mobile Agents and Web service technologies and the software engineering
paradigms behind them.

David Mills is an application developer and lecturer in mathematics and computer science at Stetson
University. He is pursuing the MS degree in computer science at the University of Memphis, where he
served for two years as an NSF Fellow on the Tri-P-LETS project. He holds both a BS degree in com-
puter science and a BA in digital arts from Stetson University. His research interests are in software
engineering, data mining, biotechnology, and computer science education.

Claus Pahl is a senior lecturer at Dublin City Universitys School of Computing, where he is the
leader of the Web and Software Engineering group. Claus has graduated from the Technical University
of Braunschweig and has obtained a PhD from the University of Dortmund. He has published more than
140 papers in various journals, books, conference, and workshop proceedings. He is on the editorial
board of the International Journal on E-Learning and is a regular reviewer for journals and conferences
in the area of Web and Software technologies and their applications. He is the principal investigator of
several basic and applied research projects in Web software engineering. Claus research interests cover
a broad spectrum from service- and component technologies in software engineering to infrastructure


About the Contributors

and development technologies for Web applications such as e-learning.

David Parsons is a senior lecturer and coordinator for the information technology major within the
Institute of Information and Mathematical Sciences at Massey University, Auckland, New Zealand.
He also acts as a knowledge engineer for Software Education Associates, providing Java training and
consultancy in New Zealand and Australia. His current research interests are in Web-based software
architectures, mobile learning and agile software development. Beginning his academic career in the
UK, he has worked as an educator/trainer, researcher and practitioner across Europe, North America
and Australasia. Prior to his arrival in New Zealand in 2003, he was director of emerging technologies
for international consultancy Valtech, based in the city of London, and before that that he was a prin-
cipal technologist for BEA Systems internal education. He has published widely on various aspects
of software design and development and is the author of successful text books on C++, Java and Web
application development.

Tony Shan is a renowned expert working in the computing field for 20+ years with extensive experi-
ence on architecture engineering, technology strategies, portfolio rationalization, and system designs in
a number of multi-million-dollar IT projects in a broad range of industries. He has initiated advanced
research on emerging computing technologies, resulting in an invention patent and several patent-pending
initiatives as well as many unified methodologies and platform models for adaptive enterprise system
development. He has played a principal strategist role in leading establishing IT strategies and architecture
blueprints, coupled with pragmatic technology roadmaps and enterprise architecture standards/policies,
for IT governance and portfolio/asset management in Fortune 100 international organizations. He serves
as a mentor/advisor on leading-edge technologies, architecture, and engineering in various technical
committees, and teaches a wide variety of courses as an adjunct professor and professional trainer. In
addition to dozens of top-notch technical publications, he has authored several books on asynchronous
Web services and heterogeneous business integration, and is working on multiple books on Internet
technologies. He is a member of numerous professional associations and honorary society, a frequent
speaker and chair/program committee member in key conferences/workshops, an editor/editorial advi-
sory board member of IT research journals & books, as well as a founder of Greater Charlotte Rational
User Group and Charlotte Architecture & Technology Symposium.

Nary Subramanian is currently an assistant professor of computer science in the computer science
department at the University of Texas at Tyler, Tyler, Texas. Earlier he served as the assistant professor
of computer engineering in the department of engineering at Hofstra University, New York. Dr. Subra-
manian received his PhD in computer science from the University of Texas at Dallas, an MSEE from
Louisiana State University, Baton Rouge, and another MSEE from Delhi University, Delhi, India. Dr.
Subramanian has about 15 years of experience in the industry in engineering, sales, and management.
He has been a co-chair of the International Workshop on System/Software Architectures for 5 years,
serves on the editorial board of the International Journal of Software Architectures, has been a guest-
editor for conference proceedings and special journal issues, and has served on the Program Committees
of several international conferences and workshops. His research interests include Web engineering,
software architecture, software engineering, software metrics, software security, non-functional require-
ments, expert systems, computational biology, home appliance control systems, information systems,
and legal systems. He has published more than 30 papers in journals, conferences, and workshops. Dr.


About the Contributors

Subramanian has also served as the judge for several high-school science fairs. He has received awards
from both the industry and the academia.

George M. Whitson III is currently a professor of computer science in the computer science depart-
ment of The University of Texas at Tyler, Tyler, Texas. Whitson has been teaching mathematics and
computer science for over 45 years at a wide variety of colleges and universities. Dr. Whitson received
his bachelors degree in applied mathematics at the University of Mississippi in 1961, his masters
degree in mathematics from the University of Massachusetts in 1963 and his PhD in mathematics,
with an emphasis in Group Theory, at the University of Illinois in 1974. Initially doing research group
theory Dr. Whitson migrated to computer science during the 70s working in numerical analysis, ap-
plications of the computer to abstract algebra, cryptography and denotational semantics. He has taught
most undergraduate and masters level courses in the Computer and Information Sciences. Dr. Whitson
has been at the University of Texas at Tyler for the past 24 years serving in a number of roles including
Coordinator of Computer Science, Lab Manager and professor. Dr. Whitsons current interests include
Web applications program development, the history of computing and computer security.

Yaoling Zhu is a postgraduate research student at the School of Computing at Dublin City University.
Yaoling is a graduate in Computer Science from the Zhengzhou Institute of Engineering, China. Yaoling
has extensive experience in the software sector, working for several years as a senior software engineer
for multinational companies such as Oracle, where he has been working on e-business outsourcing and
Web service technologies in Oracles European Development and Technology Centre. Yaolings research
focuses on data integration problems in Web-based software systems.




Index

Symbols C
-tier architecture patterns 123 cascading style sheets (CSS) 140, 150, 157, 189
cell identifier (CID) 240
A code prototyping 199
commercial off-the-shelf (COTS) 64
active server pages (ASP) 138, 212
common gateway interface (CGI) 138
agile software development 210
component-based software engineering 123
agile UP (AUP) 28
component-based software engineering (CBSE) 124
Alliance 71
component architecture 64
application service providers (ASP) 85, 186
component dependencies issues 126
architecture description languages (ADLs) 134
component quality of service 131
architecture development method (ADM) 55
computer information systems (CIS) 26
aspect architecture 64
computer science (CS) 26
Association for Project Management (APM) 255
conceptual architecture 60
asynchronous JavaScript and XML (Ajax) 141
confederation 72
augmented WebHelix process (AWH) 25, 27
configuration management (CM) 124
augmented WebHelix process (AWP) 31
connector construction, implementation of 92
augmented WebHelix process, application of 39
cost estimation, bBenchmarking, and risk assessment
automated teller machines (ATMs) 54
(COBRA) 30
B create, read, update, and delete (CRUD) 171

big design up front (BDUF) 160, 164 D


business process execution language (BPEL) 180
data access object (DAO) 147, 171, 176
data definition language (DDL) 165

Copyright 2008, IGI Global, distributing in print or electronic forms without written permission of IGI Global is prohibited.
Index

data integration 85 integrated development environments (IDEs) 244


data integration and transformation technique 88 integration 72
data integration context 86 integration technology framework 84
data transfer object (DTO) 147, 154 International Project Management Association
deployment architecture 62 (IPMA) 255
design-time deneration 186 ISO reference model for open distributed processing
document object model (DOM) 140 (RM-ODP) 55
dynamic component assembly 130
dynamic techniques 212 J

E Java API for XML processing (JAXP) 156


Java API for XML Web Services (JAX-WS) 154
e-commerce 71 Java application descriptor (JAD) 242
e-government 70, 72 Java database connectivity (JDBC) 126, 171
electronic data interchange (EDI) 150 Java server pages (JSP) 138, 145, 212
engineering wireless applications 239 Java XML binding (JAXB) 156
enterprise resource planning (ERP) 179 JSP standard tag library (JSTL) 156
enterprise unified process (EUP) 54
event-driven process chains (EPCs) 180 L
extended enterprise architecture framework (E2AF) Legacy Systems 77
54 lesser GPL (LGPL) 134
extensible hypertext mark-up languagemobile lifecycle model improvements 132
profile (XHTML-MP) 143 Linux-Apach-MySQL-PHP (LAMP) 66
extensible hypertext markup language (XHTML) logical architecture 61
140
extensible hypertext markup languagemobile pro- M
file (XHTML-MP) 139
extensible markup language (XML) 139, 147 management architecture 63
extensible stylesheet language transformations marketing simulation study manager (MSSM) 166,
(XSLT) 139, 141 168
extreme programming (XP) 162 mediator architecture 93
meta architecture 59, 60
F meta object facility (MOF) 96
methodology, definition of 262
federated ERP (FERP) 179, 180 micro browser 241
Front-End Gates 77 Middleware Enhancement 74
functional testing 208 mobile support stations (MSSs) 239
G mock prototyping 198
model-based user interfaces (MB-UI) 182
generation algorithm 184 model-centric architecting process (MAP) 66, 58, 59
Global Enterprises 80 model-driven architecture (MDA) 55
GNU public license (GPL) 134 model-view-controller (MVC) 166
model driven design (MDD) 28
H model view controller (MVC) 188
hypertext markup language (HTML) 138 modern agile software engineering 162
hypertext transfer protocol (HTTP) 147 MySQL 127

I N

information architecture 63 non-standard interfaces, binding to 130


information systems (IS) 86 non-UI prototyping 191
information technology (IT) 54


Index

O software confederations 72
software development life cycle (SDLC) 262, 263
object-relational impedance mismatch 170 software requirements specification (SRS) 161
object-relational mapping (ORM) 176 Static techniques 211
object relational (O/R) 147
offshoring 217 T
online inventory system (OIS) 166
OpenUP in Eclipse Process Framework (EPF) project test-driven development (TDD) 176, 213
54 The Open Group Architectural Framework (TOGAF)
outsourcing 217 54
ownership 73 traditional software life cycle models 160

P U
paper prototyping 197 unified modeling language (UML) 54
peer-to-peer philosophy 68 unit testing 208
Petri Nets 78 usability testing 208
physical architecture 61 user interface (UI) 191, 192
platform-specific model (PSM) 55 user performable 74
platform independent model (PIM) 55, 135
project evaluation framework (PEF)
W
25, 27, 30, 31, 35 waterfall model 160
project management 254 waterfall model, two major limitations 162
project management, and Web applications 254 Web-based applications 123
Project Management Institute (PMI) 255, 256 Web-enabled information systems 84
prototyping, importance of 193 Web-enabled software 84
prototyping, three broad classes of 194 Web application extensions (WAE) 28
Purdue Enterprise Reference Architecture (PERA) Web applications, testing 207, 211
55 Web development 219
Web development, prototyping in 191
R WebHelix 25
rational unified process (RUP) 28, 54, 132 WebHelix process (WH) 27, 29, 31
regression testing 208 Web services 69
release management (RM) 124 Web services description language (WSDL) 154
requirement analysis, specification, validation, and wireless abstraction library (WALL) 151, 157
planning (RSVP) 53, 58 wireless access protocol (WAP) 139
return-on-investment (ROI) 27, 28 wireless application protocol (WAP) 241
run-time generation 185 wireless applications, two streams of 241
wireless markup language (WML) 139
S Wireless mobile application development 239
wireless universal resource file (WURFL) 157
scenario-based architecture analysis method (SAAM) work breakdown structure (WBS) 263, 266
55 World Wide Web (WWW), development of 209
server page template model 145 World Wide Web Consortium (W3C) 145
service-oriented architecture (SOA) 68, 85, 123,
179 X
Service-oriented software systems (SOSS) 68
service orientation 68 xUnit family 214
short message service (SMS) 242
simple mail transfer protocol (SMTP) 242
Y
simple object access protocol (SOAP) 154 yet another workflow language (YAWL) 179
small and medium enterprises (SME) 186

0

Você também pode gostar