There is little debate that Web-based systems and applications(we will refer to these collectively as WebApps) are different than the many ...
There is little debate that Web-based systems and applications(we will refer to these collectively as WebApps) are different than the many other categories of computer software . Powell summarizes the primary differences when he states that Web-based systems “involve a mixture between print publishing and software development, between marketing and computing, between internal communications and external relations, and between art and technology” . The following attributes are encountered in the vast majority of WebApps:
Network intensive. By its nature, a WebApp is network intensive. It resides on a network and must serve the needs of a diverse community of clients. A WebApp may reside on the Internet (thereby enabling open worldwide communication). Alternatively, an application may be placed on an intranet (implementing communication across an organization) or an Extranet (internetwork communication).
Content driven. In many cases, the primary function of a WebApp is to use hypermedia to present text, graphics, audio, and video content to the enduser.
Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically spaced releases, Web applications evolve continuously. It is not unusual for some WebApps (specifically, their content) to be updated on an hourly schedule.
Some argue that the continuous evolution of WebApps makes the work performed on them analogous to gardening. Lowe discusses this when he writes:
Engineering is about adopting a consistent and scientific approach, tempered by a specific practical context, to development and commissioning of systems or applications. Web site development is often much more about creating an infrastructure (laying out the garden) and then "tending" the information which grows and blooms within this garden. Over time the garden (i.e., Web site) will continue to evolve, change, and grow. A good initial architecture should allow this growth to occur in a controlled and consistent manner . . . we could have "tree surgeons" that prune "trees" (i.e., sections of the site) within the "garden" (the site itself) while ensuring cross-referential integrity. We could have "garden nurseries" where young plants (i.e., design patterns for Web sites) are "grown." I probably should stop this analogy before I get too carried away!
Continual care and feeding allows a Web site to grow (in robustness and importance). But, unlike a garden, Web applications must serve (and adapt to) the needs of more than the gardener. The following WebApp characteristics drive the process:
Immediacy. Web-based applications have an immediacy that is not found in any other type of software. That is, the time to market for a complete Web site can be a matter of a few days or weeks. Developers must use methods for planning, analysis, design, implementation, and testing that have been adapted to the compressed time schedules required for WebApp development.
Security. Because WebApps are available via network access, it is difficult, if not impossible, to limit the population of end-users who may access the application. In order to protect sensitive content and provide secure modes of data transmission, strong security measures must be implemented throughout the infrastructure that supports a WebApp and within the application itself.
Aesthetics. An undeniable part of the appeal of a WebApp is its look and feel. When an application has been designed to market or sell products or ideas, aesthetics may have as much to do with success as technical design.
These general characteristics apply to all WebApps but with different degrees of influence. The following application categories are most commonly encountered in WebE work:
• Informational. Read-only content is provided with simple navigation and links.
• Download. A user downloads information from the appropriate server.
• Customizable. The user customizes content to specific needs.
• Interaction. Communication among a community of users occurs via chatroom, bulletin boards, or instant messaging.
• User input. Forms-based input is the primary mechanism for communicating need.
• Transaction oriented. The user makes a request (e.g., places an order) that is fulfilled by the WebApp.
• Service oriented. The application provides a service to the user (e.g., assists the user in determining a mortgage payment).
• Portal. The application channels the user to other Web content or services outside the domain of the portal application.
• Database access. The user queries a large database and extracts information.
• Data warehousing. The user queries a collection of large databases and extracts information.
• Data warehousing. The user queries a collection of large databases and extracts information.
Quality Attributes
Every person who has surfed the Web or used a corporate intranet has an opinion about what makes a “good” WebApp. Individual viewpoints vary widely. Some users enjoy flashy graphics, others want simple text. Some demand copious information, others desire an abbreviated presentation. In fact, the user’s perception of “goodness” (and the resultant acceptance or rejection of the WebApp as a consequence) might
be more important that any technical discussion of WebApp quality.
But how is WebApp quality perceived? What attributes must be exhibited to achieve goodness in the eyes of end-users and at the same time exhibit the technical characteristics of quality that will enable a Web engineer to correct, adapt, enhance, and support the application over the long term?
The most relevant of these characteristics— usability, functionality, reliability, efficiency, and maintainability—provide a useful basis for assessing the quality of Web-based systems.
Olsina and his colleagues has prepared a “quality requirement tree” that identifies a set of attributes that lead to high-quality WebApps. Figure summarizes their work.
The Technologies
The design and implementation of Web-based systems and applications incorporates three important enabling technologies: component-based development, security, and Internet standards. A Web engineer must be familiar with all three in order to build high-quality WebApps.
Component-Based Development
The component technologies have evolved in large part because of the explosive growth of Web-based systems and applications. Recalling our discussion from the preceding chapters, three major infrastructure standards are available for Web engineers: CORBA, COM/DCOM, and JavaBeans. These standards (accompanied by prebuilt components, tools, and techniques) provide an infrastructure that enables developers to deploy third party and custom developed components and allow them to communicate with one another and with systemlevel services.
Security
If a WebApp resides on a network, it is open to unauthorized access. In some cases, unauthorized access may be attempted by internal personnel. In others, outsiders (hackers) may attempt access for sport, for profit, or with more malevolent intent. A variety of security measures are provided by the network infrastructure, encryption techniques, firewalls, and other measures.
Internet Standards
For the last decade the dominant standard for the creation of WebApp content and structure has been HTML, a markup language that enables the developer to provide a series of tags that describe the appearance of a wide array of data objects (text, graphics, audio/video, forms, etc.). However, as the size and complexity of applications grow, a new standard—XML— has been adopted for the next generation of WebApps. XML (extensible markup language) is a strictly defined subset of the metalanguage SGML, allowing developers to define custom tags within Web page descriptions. Using an XML meta-language description, the meaning of the custom tags is defined in the information transmitted to the client site.