products a dedicated implementation for the given
computing center architecture can be suitable. For
such an implementation component frameworks e.g.
Java Beans (Matena and Stearns, 2001) can cover
heterogeneity on hardware and operating system
level.
SOAP is often used for the communication
between heterogeneous components (Apps, 2004).
The automatic generation of communication
interfaces is supported by different component
frameworks, e.g. Java and .net. Hereby monitors,
implemented in C#, can bee accessed by a Java-
Class and vice versa.
3 USE BRIDGE PATTERN TO
ENCAPSULATE SPECIFIC
MONITORS
Often monitors for specific system components are
based on non object-oriented techniques, e.g. parsing
and filtering log files or accessing internal runtime
information by operating system calls. For such
concrete implementations the bridge supports an
abstract interface as illustrated in the figure 6. Here
we depict two concrete monitor implementations for
accessing status logs (FileMonitor) and for accessing
the process table of the operating system
(ProcMonitor). Via the bridge and the abstract
monitor class specific monitors, e.g. for the Oracle
DB software can use the available implementations.
Figure 6: Bridge Pattern for Viewers and complex Monitor
However other patterns should be discussed to
solve this problem. The adapter pattern as well as
the wrapper pattern well-known from CORBA can
support suitable solutions. The application of the
Model-View-Controler pattern (Gamma et. al, 1994)
offers two interesting aspects. First, every monitor
can be designed according to MVC. Here the model
encapsulates the specific request to the observed
system, e.g. reading and matching a log file. The
views support a set of representations in different
granularity. In that way a basic monitor is directly
usable for the administration staff. Second, the
monitor functions primary as a model according to
the MVC pattern. View and controller function is
part of higher levels of the architecture. This
simplifies the implementation (keep it small and
simple) and enhanced the performance. The first
idea we will illustrate in the next section.
4 USE OBSERVER PATTERN TO
CONSTRUCT COMPLEX
MONITORSAs depicted before a Monitor
is a specific software module to control a component
in the system, e.g. the hardware of a server computer
or the database management software. This monitor
is an observed subject. As examples we construct
two types of observers:
• First for every specific monitor one (or
many) viewer represents the state of a
monitor by a graphical user interface. This
is an application of the Model-View-
Controller concept (Gamma et. al, 1994).
• Second a complex monitor aggregates
simple or other complex monitors to
support a more general view to the system.
Figure 7 shows the derivation of a Monitor from
the abstract Subject class. Concrete observers, here
ComplexMonitor and MonitorViewer, are derived
from the abstract Observer.
Figure 7: Use of Observer Pattern to construct complex
Monitors
An instance of such implementation is sketched
in figure 8. Here the operating system of one server
computer, the database system Oracle, and two SAP
application servers are monitored by OSMonitor,
OracleMonitor, and two SAPMonitors. For a
SAPMonitor an observing viewer shows the general
state of the monitored systems using a traffic light as
a metapher (Green means OK, Yellow means
warning, Red means critical). For the OSMonitor a
Monitor
getState()
MonitorImp
impl.operImp()
OracleMonitor
ProcMonitor FileMonitor
bridge
getState()
getState()
readProcTable() readLogFile()
getState()SAPMonitor
Monitor
getState()
MonitorImp
impl.operImp()
OracleMonitor
ProcMonitor FileMonitor
bridge
getState()
getState()
readProcTable() readLogFile()
getState()SAPMonitor
Monitor
getState()
Subject
attach()
detach()
sendNotific()
Observer
update()
notify
ComplexMonitor
upadate()
getState()
MonitorViewer
upadate()
Monitor
getState()
Subject
attach()
detach()
sendNotific()
Observer
update()
notify
ComplexMonitor
upadate()
getState()
MonitorViewer
upadate()
DESIGN AND IMPLEMENTATION ASPECTS OF MANAGEMENT SYSTEMS FOR APPLICATION SERVICE
PROVIDING
373