• No results found

Telecooperation Office (TecO), University of Karlsruhe, Vincenz-PrieBnitz Str. 1,76131 Karlsruhe, Gernlany,

N/A
N/A
Protected

Academic year: 2021

Share "Telecooperation Office (TecO), University of Karlsruhe, Vincenz-PrieBnitz Str. 1,76131 Karlsruhe, Gernlany,"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

Guntram Graef and Martin Gaedke

Telecooperation Office (TecO), University of Karlsruhe, Vincenz-PrieBnitz Str. 1,76131 Karlsruhe, Gernlany,

email: {graef, gaedke }@teco.edu

Abstract: The Web has become an efficient environment for application delivery. The originally intended idea, as a distributed system for knowledge-interchange, has given way to organizations offering their products and services using the Web as a global point of sale. Although the arising possibilities look promising, the development process remains ad-hoc in real-life Web development. The understanding of Web application development mostly neglects architectural approaches, resulting in Web sites that fail in achieving typi- cal goals like evolvable and maintainable structures of the information space. Beyond that, as the architecture of a Web application matures, more and more knowledge about the do- main becomes embodied into code and therefore burdens maintenance and reuse of parts of the application. In this paper, we will propose an architecture and a framework using the notion of services as model entities for Web application development. The object-oriented WebComposition Markup Language, which is an application of the XML, will be pre- sented as basis for a generic evolvable framework for services. Finally, the results of its us- age will be described in detail by giving an example of a large-scale transnational Intranet, where the framework is in use.

Keywords: Web Engineering, XML, WebComposition, Framework, Service.

1 Introduction

The original purpose of the World Wide Web [B-L90] was merely presenting information.

Many oftoday's Web applications have moved a long way from the basic hypermedia systerns of the first days. They have grown into com- plex distributed applications. Nevertheless, the development process in reallife remains rather ad-hoc. This has largely been recognized to be due to the gap between the underlying design models and the implementation model of the Web. Web developers surfered from this when they tried to apply disciplined hypertext devel- opment methodologies such as OOHDM [SRB96] and RMM [ISB95] or general models like UML [Lar98] because many design con- cepts where lost during the implementation.

This problem has been addressed with systerns like JESSICA [BaS98], W30bjects [ICL96]

and WebComposition [GWG97].

The WebComposition approach allows a de- veloper to work within a semantically richer component model and automatically map the results to the Web implementation model. The mapping can be to any target language and is independent of the Web-server platform used.

The WebComposition model enables and en- courages reuse of code on the component level. In contrast to reusing Web resources.

compositional reuse is not limited to a certain level of granularit y imposed by the Web im- plementation model. Furthermore, it is possi- ble to reuse abstractions that have been detined based on concepts such as generalization and specialization.

A major problem that remains is how to effi-

ciently reuse larger structures when building

Web applications from components. Pressure

to do so is especially strong in the Web envi-

ronment due to much shorter development and

(2)

2

might appear in numerous applications. In this sense, the application might even be built by users according to their own preferences or it might be dynamically generated to address a specific target group [FrK97].

In this context, a service presents a sub-system that enables a user to perfonn a single task such as placing an order or retrieving a news suromary. In a business environment, a service may represent a business procedure.

Services can be classified according to their functionality .There might be services for re- trieving infonnation, services for ordering products or services for expressing opinion such as online surveys just to name a few ex- amples.

maintenance cycles than in most common software application domains. Questions like the following must be considered: What ab- stractions exist above the component level that are suitable for reuse? In what kind of devel- opment artifacts can these abstractions be captured? What does a mechanism look like that enables their reuse? In which way can the reuse process be optimized for productivity?

How can it be implemented? What are the real benefits that can be achieved?

In the next section, we will describe how services can be used as higher-level abstrac- tions and coherent building blocks for Web applications. We will also discuss frameworks for building Web applications. In the third section, we will introduce our own approach.

We suggest a Service-oriented Framework that is based on the WebComposition approach.

Further, we introduce the concept of a Service Factory to enable a disciplined evolution of the application. We will describe our concrete implementation in section four and give an evaluation based on theoretical aspects, fol- lowed by an example of a commercial appli- cation in section five. In the last section, we will conclude with a short summary and out- look for further research.

2 Architectural abstractions for the Web

The evolution of service classes tends to be subject to other forces of change than both the application and lower level building blocks.

The shape of the application is directly driven by the current needs of its users that are closely related to sociological forces such as fashion.

Lower level elements, such as components.

that serve as building blocks for services are more directly affected by technological change. A class of services on the other hand might be mainly affected by the evolution of general business behavior .

This orthogonality as weIl as the inner coher- ence of services and classes of services makes them powerful abstractions for building Web- applications. They appear to be suitable enti- ties for reuse.

2.2 Frameworks

Very flexible abstractions for reuse on the level of an application domain are frameworks.

As stated in [BMA97] a framework is an inte- grated set of software components that can be reused to create applications. The construction of applications is possible either by extension of framework components [Jon92] or by cus- tomization through parameterization of func- tional specifications that are used to automati- cally build applications from framework com- ponents [Pre94]. These two approaches to framework reuse are called "white-box" and

"black-box" reuse [RoJ96].

At first, we introduce an abstraction for func- tionality provided by a set of components for one or more applications. Then we will discuss frameworks as an abstraction on the domain level of applications.

2.1 Services

One aspect that distinguishes Web-

applications from most common desktop ap-

plications is that there is no "application in the

box" distribution model. What the user re-

ceives and pays for is a set of services that

might more or less loosely be integrated or

federated into an application such as described

in [GaT99] or [Zhao97]. Well-known exam-

ples are portal sites such as Netscape's Net-

center [NNC99]. On the Web, this grouping

can change quicklyand the same services

(3)

3

There exist frameworks for the Web such as for shopping- or e-commerce. Common Web frameworks typicaIly use a black-box core consisting of platform dependent components residing on the Web-server and a white-box part made up of Web-resources. This reflects the notion of [JoF88] that both modes of framework reuse are simultaneously present in most frameworks. The problem is that the white-box part here surfers from the limita- tions of the Web-implementation model as described in [GGS99]. Furthermore, a very common limitation in today's frameworks for the Web is that code from the white-box part can't be migrated into the black-box part of the framework because of disparities in the im- plementation models. WeIl known examples for this kind of frameworks are [Int99] or [LDM99].

stored in a Component Store from where they can automatically be mapped to Web resources using our WCML compiler. It is possible to generate code in any target language. Due to the generic approach, the mechanism is com- pietely independent of the Web server plat- form.

A more advanced application development framework for the Web should offer an inte- grated implementation model for the black-box core as well as for new components developed with the framework. This is needed to facili- tate the migration of new components into the black-box during the evolution of the frame- work. An integrated implementation model is also an important prerequisite for enabling improved reuse and maintenance of domain components.

3 Service Development Framework In this section, we will introduce a Framework for developing Web services that we built based on the WebComposition approach.

Figure 1 -Architecture of Service Framework All components are described in the same way, including those in the black-box part of the framework and components developed by the framework user. This means there is an inte- grated implementation model enabling easy migration of components from the white-box part of the framework into the black-box core, facilitating framework evolution.

Services can be built by instantiating frame- work components. A service consists of com- ponents for content, layout, navigation, user interaction and processing. During ron-time, the code produc ed by these components is called from the surrounding framework as needed. This general framework behavior is usually described as the Hollywood Principle

"Don't call us, we'll call you." [Lar98].

3.1 Basic Architecture

The WebComposition approach presents a generic intermediate model to bridge the gap between fine-grained design and the coarse- grained implementation of Web applications by automatically mapping components to Web resources. WebComposition allows the defini- tion of aggregation and inheritance relation- ships between components based on a proto- type-instance object model such as in SELF [UnS87].

Components are defined using the WebCom-

position Markup Language (WCML). Theyare

(4)

4

There is at least one Factory Method for each service class capturing its generic architecture.

Several sets of Factory Methods can be sup- plied alternatively as described by the Abstract Factory design pattern.

Figure 2 -Generic architecture of order services

Figure 3 -Service Factory Architecture

4 Implementation

The implementation of the service develop- ment framework as weIl as that of the under- lying WebComposition system rely on the eXtensible Markup Language (XML) [W3C99] and related tools.

XML is a subset of 8GML [18086] and pres- ents a standard mechanism for defining markup languages. It provides basic syntax conventions that are familiar to a large number of users, especially in the Web environment. It enables formal syntax definitions that are used for automatic document checking. There are numerous tools available such as parsers and editors that reduce the development effort usu- ally associated with the introduction of a new language. The WCML is an XML application and enables the definition of components. This facilitated the development of the WCML compiler and other tools since they can use standard XML parser components for docu- ment parsing.

When implementing the WCML compiler and tools, such as a Component Repository we introduced in [GRG99] and a visual editor for service definitions, we explored two alterna- tives. We successfu11y used the XJParse XML parser [Dat99] for developing tools in Java as 3.2 Factory-oriented Evolution

A central part of our framework is the concept of a Service Factory, which is based on crea- tional design patteros as described in [GHJ94].

It is intended to facilitate the development of common types of services. The Service Fac- tory enables the reuse of generic architectures of classes of services.

As an example, figure 2 shows a simplified description of the generic architecture of order services. An order service component is based on the service component, which it extends.

Order services contain their own variant of content and processing components.

To create a specific service a service definition must be supplied consisting of various infor- mation items. It must define how many com- ponents of each required type such as proc- essing components the service should contain.

It also describes attribute values for all the components belonging to the service. Thus, it defines all aspects of the service that distin- guishes it from other services of the same service class.

The Service Factory parses the service defini- tion and uses its knowledge about the generic architecture of the corresponding service class to automatically create the service-

The Service Factory itself consists of a Factory

Control Function that dispatches the service

definitions to the appropriate Factory Methods

(Figure 3). The Factory Methods implement

the Factory Method creational design pattero.

(5)

well as a COM [MSC99] based environment.

Both implementation strategies worked weIl to produce tools that interoperate seamlessly.

5 Evaluation

In this section, we will first discuss general aspects of the Service Development Frame- work before we will briefly describe its use in a large-scale e-commerce application at Hew- lett-Packard.

5.1 General reflection

Our approach offers severallevels of reuse. In addition to individual components, larger structures, namely service class architectures and knowledge captured in the framework's component architecture, can be reused.

We separate code needed for describing indi- vi dual services, code common to classes of services and framework code, which is com- mon to all services. This helps to reduce the complexity of the code that has to be main- tained by avoiding some unnecessary redun- dancy. Furthermore, specialized programming and teamwork are encouraged due to the task- oriented closure of services. On the one hand, this can make the development of specialized tools, such as a visual editor for a special but very common type of service, feasible. Spe- cialized tools in contrast to general tools only need to cover a limited problem domain and thus are less complex. On the other hand, spe- cialized programming can lead to a flatter leaming curve and lower cognitive load for programmers. This can reduce technical skill requirements enabling a stronger focus on do- main expertise. It also can lead to higher pro- ductivity, better quaIity and faster deployment.

Another feature of the framework is automatic code generation by the Service Factory and the WCML compiler. In practice, this greatly in- creases productivity. For example, a service definition describing a service for ordering office chairs can be made up of about 50 tags.

The code produced by the framework can eas- ily reach more than 3000 lines of Web code mostly consisting of complex scripting state- ments. We want to stress that in contrast to many code generator tools for the Web this

s code never needs to be moditied directly and can always be regenerated autornatically Reuse, automation and reduced cornplexity contribute to enhanced rnaintainability and extensibility of services, applications and the framework itself. Maintenance also benetits from the central location of code common to classes of services or all services detined within the framework. Changes of corporate identity, process logic or technical infrastruc- ture only need to be implernented once and needn't be repeated in several locations or re- sources.

Migration of existing Web applications and services to the framework is supported by the fact that existing code can be wrapped in WCML cornponents and needn't be repro- grammed. It is also not necessary to migrate applications all at once. It can be done in an incrernental approach because framework gen- erated Web resources seaffilessly integrate on the Web server with resources of other origin.

In our approach, we also gain a high degree of ilexibility for migrating to new implernenta- tion technologies or for concurrent support of different implernentation ffiodels. This can be achieved by encapsulating implernentation specitic code in special WCML cornponents that can be dynarnically replaced when gener- ating code for different implernentation plat- forros. The service development framework itself and WCML are entirely independent of the deployment platforro.

5.2 Eurovictor II

The Service Development Framework has al- ready been used to fully implernent a cornplete service-oriented e-commerce application.

Eurovictor II has been developed at the Tele- cooperation Office at the University of Karlsruhe in a joint project with Hewlett- Packard (HP). The systern has recently become productive at HP in Europe with more than

10000 regular users.

The main goal of Eurovictor II was to enhance

usability, evolution, maintenance, creation and

management of Web-based services and fed-

eration of different intranet services within the

(6)
(7)

[Cle96] P. Clements (1996). A Survey of Architecture Description Languages.

In Proceedings of 8th International Workshop on Software Specification and Design (IWSSD), Paderborn, Germany

[Dat99] Datachannel Inc. ( 1999). XlParser . http:/ /xdev .datachannel.comldownlo ads/xjparser/

[FrK97] L. Frelechoux, T. Kamba ( 1997). An architecture to support personalized

Web applications. In: Computer Networks and IS DN Systems 29, Special Issue on the 6th Intl. World- Wide Web Conference, Santa Clara, CA, USA.

[GaT99] M. Gaedke, K. Turowski (1999).

Generic Web-Based Federation of Business Application Systerns for E- Commerce Applications, 2nd Intl.

Workshop on Engineering Federated Information Systems (EFIS' 99), Kuehlungsborn, Germany

[GGS99] M. Gaedke, H.-W. Gellersen, A.

Schmidt, U. Stegeffiiiller, W. Kurr (1999). Object-oriented Web Engineering for Large-scale Web Service Management. In: R. H.

Sprague (Ed. ) Proceedings of the 32nd Annual Hawaii International Conference On System Sciences, Maui, Hawaii, (CD-ROM).

[GHJ94] E. Gamma; R. Helffi; R. Johnson; J.

Vlissides (1994). Design Patterns:

Elernents of Reusable Object- Oriented Software. Reading.

[GRG99] M. Gaedke, J. Rehse, G. Graef (1999). A Repository to facilitate Reuse in Cornponent-Based Web Engineering. International Work- shop on Web Engineering at the 8th International World-Wide Web Conference (WWW8), Toronto, Canada. http://budhi.uow.edu.au/

web-engineering99/accepted_papers/

gaedke.htffil , June 1999

[GWG97]H.-W. Gellersen, R. Wicke, M.

Gaedke (1997). WebCompostion: an object-oriented support system for the Web engineering lifecycle. In:

Cornputer Networks and IS DN Systerns 29, Special Issue on the 6th Intl. World-Wide Web Conference, Santa Clara, CA, USA, pp. 1429-

1437.

[ICL96] D.B. Ingharn, M.C. Little, S.J.

Caughey, S.K. Shrivastava (1996).

W3Objects: Bringing Object- Oriented Technology To The Web, The Web Journal, 1(1), Proceedings of the 4th International World Wide Web Conference, Boston, USA, pp.

89-105

[Int99] Intershop Communications Inc.

(1999). IntershopTM 3.0 http:llwww .intershop.corn

[ISB95] T. Isakowitz, E.A. Sto hr, P.

Balasubrarnaninan (1995). RMM: A Methodology for Structured Nypermedia Design, Cornrnuni- cations of the ACM, Voi. 38, No.8, August 1995, pp. 34-44.

[ISO86] International Organization for Standardization (1986). Information Processing- Text and Office Systems -Standard Generalized Markup Language (SGML). Ref. No. ISO 8879:1986.

[JoF88] R. Johnson, B. Foote (1988).

Designing reusable classes. Journal on Object Oriented Programming 1 , 5, June 1988, pp. 22-35

[Jon92] R. Johnson (1992). Documenting frameworks using patterns. In:

Proceedings of OOPSLA 92, Vancouver, Canada, pp. 63-76 [Lar98] C. Larman (1998). Applying UML

and Pattems. Prentice Hall, pp. 455- 486

[LDM99] IBM Inc. (1999). Lotus Domino.Merchant.

http:llwww .Iotus.corn

(8)

8

sign with OOHDM. In Proceedings of the ACM International Confer- ence on Hypertext, Hypertext '96, Washington.

[UnS87] D. Ungar, R. B. Smith (1987). Selj:.

The power of Simplicity, In:

OOPSLA'87 Proceedings, pp. 227- 242.

[W3C99] World-Wide Web Consortilim ( 1999). XML: eXtensible Markup Language. http://www.w3.org/XML [Zhao97] Y. Zhao (1997). A Single Login Web

Service Integrator -WebEntrance.

In: Compliter Networks and IS DN Systems 29, Special Isslie on the 6th Intl. World-Wide Web Conference, Santa Clara, CA, USA.

[MSC99] Microsoft Corporation (1999).

Component Object Model (COM).

http:/ /www .microsoft.corn/com [NNC99]Netscape Communications Inc.

(1999). NetcenterTM;

http :/ /www .netcenter .com

[Pre94] W. Pree (1994). Design Patternsfor Object-Oriented Software Develop- ment. Addison-Wes1ey

[RoJ96] D. Roberts, R. Johnson (1996).

Evolving Frameworks -A Pattern Language For Developing Object- Oriented Frameworks. Third Con- ference on Pattern Languages of Programs (PLoP '96), Monticello, Il1inois, USA

[SRB96] D. Schwabe, G. Rossi, S. Barbosa (1996). Systematic Hypermedia De-

AbouttheAuthors

Guntram Graef obtained a Master degree in computer science from the University of Karlsruhe in 1998. In 1999 he joined TecO as a research assistant and works in collaborative Web engineering projects. Former to that he was an independent consultant designing distributed applications for major companies in Europe and Asia. His current research interest is in methodologies and tools for large-scale Web development, e-commerce system architectures, user profiling and applications of XML.

Martin Gaedke is research assistant at the Telecooperation Office (TecO) of the University of

Karlsruhe and technicallead in collaborative Web engineering projects. His research interests is in

application of software engineering practice to applications in the WWW , and specifically in com-

ponent-based software engineering, reuse, frameworks, reflection, software architectures, patteros

and software evolution for Web applications. He obtained a Master degree in computer science from

the University of Karlsruhe in 1997.

References

Related documents

tool, Issues related to one tool (eMatrix) to support coordination One important consequence of using eMatrix as the Information System in the Framework is that it is possible

• Planning is done to meet client requirements and not to improve the supply chain These problems could be overcome by introducing a framework for supply chain planning

www.liu.se Developing a Framework for Supply Chain Planning in Construction. Linköping Studies in Science and Technology

Detta synsätt på den egna kulturen som något skrivet i sten, som stagnerat utan möjlighet till utveckling eller progression, tillsammans med ett samhällsklimat där mayakulturen har

Perceptions of users and providers on barriers to utilizing skilled birth care in mid- and far-western Nepal: a qualitative study (*Shared first authorship) Global Health Action

Using 1000 samples from the Gamma(4,7) distribution, we will for each sample (a) t parameters, (b) gener- ate 1000 bootstrap samples, (c) ret the model to each bootstrap sample

Thus, LSPs will need to match existing resources and knowledge regarding their general environmental work towards their customers’ green requirements in order to

The studies also showed that the employees perceived the support from both co-workers and managers as moderately high to high and that both support from co-workers on the team