Resource-based Web Implementation
Originally, the World-Wide Web was designed as information medium for distributed research teams. A deliberately simple implementation model was chosen to make it as simple as possible for authors to contribute documents to the web, and to maintain these in the sense of updating content. This implementation model is centered around the notion of resources, usually file-based. For the originally intended use of the web, resources presented a useful abstraction, as they related to relatively self-contained chunks of information such as research publications and home pages. Such chunks of information typically could be set up and maintained independently of other resources, so that resources were the appropriate abstraction for composition and modification.
The use of the web, though, has moved far beyond the originally anticipated scope. In its use as information medium, the web has moved into high standard publishing with complex requirements related to corporate identity and to integrity of large webs. Resources are no longer easily maintained by themselves as they have to adhere to web site conventions regarding layout, interlinking, navigation and so on. Further, the web is not only used as information medium but has become a general integration platform for distributed appications. In development, management and maintenance of such applications, resources as abstraction are not very useful. Resources are too coarse-grained and too specific as entities for design, reuse, management and modification of web applications. Problems with the resource-based web implementation model are discussed in the subsequent section with respect to design, reuse and evolution.
Mapping Design Concepts to a Web Implementation
As the web implementation model based on resources is semantically so poor, the mapping of higher-level design concepts to a web implementation is hardly reversible. Higher-level design concepts such as graph structures in hypertext, dialogue in session-based applications, user interface objects in interactive applications (and so on ...) get lost in a web implementation because of the simplicity of the underlying model. For example, hypertext graphs, navigation structures and other hypertext concepts are implemented in Web links embedded in resources; once implemented, the relationship between these links, that is their "hypertext meaning", is lost. While design methods and tools are available for mapping higher-level concepts to web implementations are available (for hypertext e.g. OOHDM [3], RMM [4] and RMCase [5]), management and maintenance of higher-level concepts is hard. A specific instance of this problem is link integrity which has been much discussed but which is really just one instance of a very general problem in web application maintenance.
The maintenance of design concepts is all the more problematic, as there is a split of roles in development of larger web applications, with maintenance carried out by site engineers and not by original designers/authors of content. In general, a multitude of people are involved in a web application life cycle in all sorts of different roles. This results in the problem of site engineers having to mentally reconstruct higher-level concepts from an implementation at hand in order to maintain them and protect in the case of modification. Naturally, this easily leads to introduction of errors and loss of application integrity.
Reuse of Designs and Code
Resources are specific entities to be served by web servers. Very little work has been done toward abstract resources abstracting from some implementation detail in order to be reusable. An example for abstractions are style sheets in HTML that allow to factor out some reusable layout components from HTML pages, or server-side includes for reuse of HTML fragments in many resources. These abstractions, though, are very limited and by far not generally applicable.
Design concepts often relate not too exactly one resource but for example to fragments within a resource, to structures composed of such fragments, or to interlinked resources. As these concepts are not easily accessible from within a resource-based web implementation, they are hard to reuse. Further, design concepts may be abstract and would have to be abstracted out from a specific implementation. For reuse, design concepts have to replicated in an implementation, which in turn brings us back to the problem of maintaining integrity in the course of web evolution. Maintainance of integrity would at least require a replication of modifications, and would very likely lead to a violation of integrity.
The lack of support for inheritance in web resources represents yet another key problem. In design, generalization and specialization are fundamental concepts for organization of web sites and web applications, for instance describing general page designs which can be refined to more specific designs for certain categories of pages. As more general design decisions can not be captured in abstractions, their maintenance can not be localized but requires modification of all effected specific design artifacts.
更多軟考資料請訪問:考試吧軟件水平考試欄目
希望與更多網(wǎng)友交流,請進入考試吧軟件水平考試論壇
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |