Widhani Bartelt2002 Ec SW Arch Patterns
Widhani Bartelt2002 Ec SW Arch Patterns
Systems
Abstract
1 Introduction
Creating software systems in the domain of Electronic Commerce with a wide variety of
e-business models [Bartelt et al. 2001] is still a challenging task. Although a couple of
standard software packages as well as specialized, individual solutions exist, software
design know-how in this area is not well documented. Based on current research in
software architecture the usage of new patterns described in a suitable notation is pro-
posed. Patterns are derived and identified on an architectural level specific to the do-
main of electronic commerce systems. In order to achieve this, two case studies featur-
ing selected architectural views on both online shop and electronic procurement sys-
tems are presented.
2 Software Architecture
An important role for software architecture is to act as a mediator between the require-
ment analysis and definition phases and the rather fine-grained system design phase
which paves the road to implementation.
As such, a software architecture should not only describe the system in purely techni-
cal terms but also capture the language spoken within the domain the system is going
to be implemented in. In fact, it should be useful and understood (and understandable)
not only by technicians, but virtually any stake-holder involved.
As for many terms, there are a couple of definitions for software architecture. They are
not diametrically opposed, but rather emphasize different aspects of software architec-
ture. One of the more frequently used definitions is the following [Bass et al. 1997]:
types of systems. An ADL like Wright [Allen 1997] for example, enables the modeler to
perform deadlock analysis for component interaction.
An alternative approach is using the unified modeling language (UML) as a notation for
describing software architectures. The advantages are that it is widely known, com-
monly used and there are a couple of production level tool suites that are mature.
3 Patterns …
Patterns provide solutions for recurring problems, that have proved useful in practice.
They add the following benefits to software engineering:
• saving of time and cost because problems are not tackled from scratch
• deeper understanding and better ability of communication amongst stake-holders
because patterns often identify and define key terms of the problem
• increased quality and robustness of the actual solution, because it has been tested
and refined through repeated use in practice
Patterns like they were introduced by the now famous Gang of Four [Gamma et al.
1994] are largely design patterns. They usually solve a specific design problem within
the context of object oriented languages.
[Buschmann et al. 1996] use patterns to describe software architectures while [Fowler
1997] uses patterns to solve recurring problems in specific application domains.
They also introduce a hierarchy of patterns:
Architectural patterns describe a significant part of or view on a system. They som e-
times define a certain style that is used throughout. One example is the model-view-
controller pattern used in interactive applications.
Design patterns solve problems that are closely related to a specific programming
paradigm. A significant part of literature related to patterns today focuses on design
patterns, and especially those that are being used in the context of object oriented pro-
gramming languages, in particular Java. These are patterns like façade, business
delegate, bridge pattern and many others.
Idioms are most low level, often fragments of code and applicable only to a certain pro-
gramming language. An example of an idiom is a reference counter for dynamically
created objects in C or C++, in order to support efficient memory management.
We propose another class of patterns, which we call domain patterns.
Unlike architectural patterns, which are rather technical and generic with respect to the
area the actual software system is being used in, domain patterns describe organiza-
tional structures or business processes that have proved useful within a particular ap-
plication domain. One example is the order process used in electronic commerce sys-
tems.
In the remainder of this paper the focus will be on domain patterns, which are particu-
larly useful in software architecture. They aid in establishing a common language, help
identify and document domain specific entities and processes and preserve knowledge
gained in subsequent software projects within a specific application domain.
In a buyer-centric system, the purchasing party manages the catalog of the procure-
ment system, which might be a part of the corporate intranet. Aggregating the contents
of several possibly different catalogs from multiple suppliers is challenging, to say the
least. The biggest advantage is the simplification for the purchaser, as he or she does
not need to visit multiple websites with different user interfaces. Also, the purchasing
party has full control on what catalogs or items are displayed for a particular user.
Another business model is the marketplace. Unlike online shops, where one vendor
serves multiple customers and electronic procurement, where one vendor servers one
customer at a time, in the marketplace multiple vendors interact with multiple clients.
Solution:
We call them fixed attributes, and these are properties like manufacturer, identification
code and textual description. Product type attributes are those attributes that certain
kind of products have in common. An example for a product type attribute is the num-
ber of pages for a product type book. Note that we refer to product type, not categories.
Categories might or might not group products of the same type under one category.
Categories are presentation-oriented and are not necessarily related to product types.
The product type in our catalog pattern maps to the classification scheme used in the
mentioned standards mentioned above.
Finally, a base product may have variations of one product, that differ in color or size,
for example.
Variations:
Although not stated in the diagram, you would usually assign a price to a product varia-
tion, not the base product, because certain variations may be more expensive than
others. You may have a default price associated to a base product, though, in order to
avoid the need to specify it for each variation in case it is same.
Finally, there may be the need to assign attributes that are freely definable. We call
them custom attributes. This caters for information certain manufacturers specify, while
others that deliver products of the same type may not be able or willing to provide, or
that stem from different depth on information transported by different catalog exchange
formats, which particularly applies to electronic procurement applications gathering
data from a couple of source catalogs.
While this catalog pattern enables you to cope with most classification schemes in use
today, there are a number of subtle questions that need to be answered during the
planning and implementation of such a system. How do you assign products to multiple
categories? Does each of the affected categories have a reference to one and the
same product or is a new instance of this product being created alongside ? Note that
this is not an implementation level decision. It rather depends on whether one has the
requirement to assign different attributes depending on where the product is presented.
Currently available standard software packages handle this in different ways. Intershop
Enfinity [Intershop 2002] assigns products by reference. Hybris Jakarta [Hybris 2002]
allows you to have a copy of one product inherit all properties of the master product,
and explicitly lets you overwrite attributes as required.
The catalog pattern may be used equally well for online shop and electronic procure-
ment applications. The main difference does not lie in a suitable static structure, but
rather in the process of populating the catalog.
It can also be used with catalog exchange formats like BMEcat [Bmecat 2002]. BMEcat
has concepts and tags related to the catalog hierarchy, a so-called feature system that
maps to product type attributes and classification schemes and product variants as well
as user defined extensions that equal custom attributes in our catalog pattern.
Currently, there exist a number of standards for both classific ation and identification of
products. A classification scheme groups related items into same categories, whereas
an identification scheme assign unique codes to products in order to unambiguously
identify them. Discussions of various identification and classification schemes can be
found in [Beckmann et al. 2001] and [Granada 2001].
In supplier-centric electronic procurement applications, multiple catalogs are merged
into one catalog in the procurement system. The use of one and the same classification
scheme is essential for easy integration. If the source catalogs use different classifica-
tion schemes, the process of merging these becomes intricate. Possible solutions in-
clude an approach to map one grouping scheme to another, which is beyond the scope
of this paper.
Another difficulty lies in the diversity of catalog exchange formats. There are a couple
of possible strategies to map one catalog exchange format to another. Almost all of
them employ Extensible Stylesheet Language Transformations (XSLT), see [Buxmann
et al. 2001; Omelayenko et al.2001a; Omelayenko et al.2001b] for examples.
Solution:
A straightforward order process for online shops is presented below in figure 3.
The customer adds products to the basket and finally enters the order process. In an
online shop, the purchaser may or may not have registered or logged in. Online shops
usually defer the process of collecting personal information until absolutely needed in
order not to scare off potential buyers from browsing through the offerings.
The payment and delivery processes might be tightly integrated with the shop platform
through payment and ERP systems or might be handled manually.
Variations:
An electronic procurement application, particularly one that is buyer-centric, usually is
part of a corporate intranet. In this case, proper authentication is handled right from the
start in order to guarantee that the person is authorized to use the application.
Another significant difference is that electronic procurement applications need an addi-
tional workflow subprocess which is part of the order process itself, as seen in figure 4.
During this process, orders can be queued for manual approval and budget constraints
can be checked.
The order comprising of multiple products needs to be split into sets that correspond to
one supplier each. Finally, the system must be able to handle invoice and billing func-
tions.
6 Conclusion
The Unified Modeling Language has been used as notation throughout this paper. Us-
ing UML for architectural diagrams has drawbacks, though. First, there aren’t really
rules regarding what type of diagram to use for which kind of view, which stems from
the fact that UML has not been designed as an architectural notation in the first place.
The decision to choose the appropriate diagram type can be difficult for the person
creating these diagrams and confusing for people reading them, because they might,
for example, not be acquainted to class diagrams being used to describe domain enti-
ties which may or may not have anything to do with classes. Also, different people
might use a different type of diagram for one and the same view.
References
Allen, Robert (1997): A Formal Approach to Software Architecture, in: Ph.D. Thesis,
CMU-CS-97-144, School of Computer Science, Carnegie Mellon University
Bass, Ken; Bass, Len; Clements, Paul; Kazman, Rick (1997): Software Architecture in
Practice, Addison-Wesley 1997
Bartelt, Andreas; Meyer, Jochen (1999): A Practical Guideline to the Implementation of
Online Shops, in: Bob Werner (Hrsg.): SRDS'99, IEEE Computer Society Press, pp.
348-353
Bartelt, Andreas; Lamersdorf, Winfried (2001): A Multi-Criteria Taxonomy of Business
Models in Electronic Commerce, in: L. Fiege, G. Mühl, and U. Wilhelm (Hrsg.):
Middleware 2001, WS on Electronic Commerce, Springer-Verlag, Berlin Heidelberg,
pp. 193-205
Bmecat (2002): Website of the eBusiness Standardization Committee,
http://www.bmecat.org (requested on August 15th, 2002). Some information can
only be retrieved after registration.
Bruins, Arnout; Steen, Maarten W.A.(2000): Electronic Procurement
Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael
(1996): A System of Patterns, John Wiley & Sons, 1996
Buxmann, Peter; Martin, Luis; Wüstner, Erik (2001): XML-based Supply Chain
Management – As SIMPLEX as it is –, Freiberg University of Technology, Chair of
Information Management
Eclass (2002) : Website: eCl@ss, http://www.eclass.de (requested on August 15th,
2002)
Fowler, Martin (1997): Analysis Patterns : Reusable Object Models, Addison Wesley,
1997
Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1994): Design
Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994
Georgantis, N.P; Koutsomitropoulos, D.A.; Zafiris, P.; Papatheodorou, T. (2002): A
Review and Evaluation of Platforms and Tools for Building E-Catalogs
Granada Research (2001): Using the UN/SPSC – Why Coding and Classifying
Products is Critical to Success in Electronic Commerce
Hybris (2002): Website: http://www.hybris.com (requested on August 15th, 2002).
Some parts of the website are password-protected.
Intershop (2002): Website: www.intershop.com (requested on August 15th, 2002).
Some parts of the website are password-protected.
Meszaros, Gerard; Doble, Jim (1996): A Pattern Language for Pattern Writing, PloP ‘96
Proceedings
Omelayenko, Boris; Fensel, Dieter (2001a): A Two-Layered Integration Approach for
Product Information in B2B E-commerce, Division of Mathematics and Computer
Science, Vrije Universiteit, De Boelelaan 1081a, 1081hv, Amsterdam, The
Netherlands
Omelayenko, Boris; Fensel, Dieter (2001b): An Analysis of Integration Problems of
XML-Based Catalogs for B2B Electronic Commerce, Division of Mathematics and
Computer Science, Vrije Universiteit, De Boelelaan 1081a, 1081hv, Amsterdam,
The Netherlands
Otto, Boris; Beckmann, Helmut (2001): Klassifizierung und Austausch von
Produktdaten auf elektronischen Marktplätzen
UNSPSC 2002: United Nations Standard Products and Services Code, Website:
http://www.un-spsc.net (requested on August 15th, 2002)