You are on page 1of 8

Distributed Application Engineering:

An Integrated Model, Language and Tool Approach

Alexander Schill

University of Karlsruhe, Institute of Telematics,


Zirkel2, D-7500 Karlsruhe, W. Germany, Tel. (+49)(721)608-4022

Abstract systems, remote procedure call, and object-oriented develop-


ment methods.
In the distributed systems area, great advances have been Finally, the paper also disusses advanced issues and require-
achieved during the last decade. However, the development of ments resulting from specific problems of distribution. Exam-
distributed applications is still not adequately supported by cur- ples are dependability support, heterogeneity, multiparadigm
rent software engineering methods. approaches, and software engineering data management. As a
Therefore, a new approach based on the object-oriented para- foundation, the next section first presents distributed system
digm is presented. Its major characteristics are an extended and application characteristics, resulting requirements, and ex-
object-oriented model of computation, communication and isting approaches from the areas of distributed configuration
structure, linguistic support for distributed programming, and management, distributed object-oriented techniques, remote
tool support for application development. The approach is procedure call, and object-orienteddevelopment methods.
based on existing facilities from the areas of distributed appli-
cation configuration management, distributed object-oriented
systems, remote procedure call, and object-oriented develop- 2. Foundations and Related Work
ment methods. Finally, the paper also disusses advanced issues
and requirements resulting from specific problems of distribu-
tion. Examples are dependability support, heterogeneity, mul- 2.1. Distributed System Characteristics
tiparadigm approaches, and software engineering data manage- A distributed system basically comprises a set of physical
ment. nodes which are interconnected via a communication network.
Typical networks used in the application domains named above
1. Introduction are Ethemet and Token Ring with a communication speed of
several Mbit/s. Moreover, several networks can be intercon-
In the distributed systems area, great advances have been nected via intermediate gateways or even via high-capacity
achieved during the last decade. Especially in the area of com- backbone networks like FDDI.
munication networks and transport-oriented communication Current trends in the distributed systems area are leading to
protocols, a rapid technological deployment has taken place. very large networks with thousands of nodes. Distributed sys-
From the application point of view, a growing demand for dis- tems are often heterogeneous, i.e. they consist of nodes of dif-
tributed programming can be observed. Important example ar- ferent vendors with different data representations and instruc-
eas are computer-integrated manufacturing and office automa- tion sets. The basic communication facilities offered by a
tion. However, the development of distributed applications is distributed system tend to become more and more high-level in
still not adequately supported by current software engineering order to hide problems of distribution from the application de-
methods. veloper.
Therefore, a new approach based on the object-oriented para-
digm is presented. Its major characteristics are an extended
object-oriented model of computation, communication and 2.2. Distributed Application Characteristics
structure, linguistic support for distributed programming, and A distributed application consists of several communicating
tool support for application development. As opposed to other components located at different nodes of the underlying distrib-
approaches, models, languages and tools are completely inte- uted system. Distributed applications are often more complex
grated, i.e. different language aspects are combined into a sin- than conventional ones due to their size and due to their large
gle language, different models are combined by object-oriented number of communicating components. The administration of a
technology, and different tools are providing a common inter- distributed application is complicated by the large degree of de-
face and are using a common data representation. The approach centralizationfound in current application domains.
is based on existing facilities from the areas of distributed ap- At runtime, intensive communication between application com-
plication configuration management, distributed object-oriented

CH2867-0/90/0000/0391$01.OO 0 1990 IEEE 391


Figure 1: Structure of the example application

ponents can occur. This makes analysis and debugging of an facilities in distributed applications. The objects are allocated
application more difficult. In addition, a large degree of inde- explicitly to the underlying network using specific language
terminism is present; this is caused by concurrent or even paral- primitives of a configuration language. Basically, each config-
lel activities at different nodes of the underlying system. In ured object shown in the figure is allocated to a different node.
real-world applications running for a long time, dynamic However, other configured objects not shown are allocated to-
changes of an application structure are often desirable. Exam- gether with these objects at the same node.
ples are the adaptation to changing environment structures in The production plans, the production parts, and the transporta-
computer-integrated manufacturing systems or support for de- tion carriages are implemented by so-called global objects
pendability based on the dynamic integration of redundant which are volatile and mobile. Global objects are only managed
stand-by components. by the runtime system and not by a global configuration man-
agement tool. Their dynamic allocation is controlled by so-
called colocations which describe sets of objects to be allocated
2.3. Examde Amlication to the same node during specific time intervals. The basic moti-
vation for that is to reduce remote expensive communication
To illustrate the issues discussed above, the structure of a dis-
costs.
tributed example application is shown in fig. 1. The example
With each object, a set of operations is associated. For exam-
application emulates a computer-integrated manufacturing en-
ple, the hle server provides operations to open, to access, and
vironment which has been designed in an object-oriented way
to close files representing production plans. The body of the
[6].It consists of a production control component, a file server,
operations are implemented using an object-oriented h p l e -
a production monitor, a global stock, and several machines with
mentation language emulating major distribution aspects. Dy-
associated local stocks (cf. fig. 1).
namic application changes include the integration of new ma-
The production control component receives production requests
chines with associated local stocks, and the use of altemative
via a user interface, gathers associated production plans from a
file servers for production plans.
remote file server, and then delegates the described production
schedules to suitable machines. During production, production
parts are fetched remotely from the global stock using transpor- 2.4. &en Issues and Reauirements
tation carriages, and are finally moved back there again. More-
over, a production monitor analyzes all activities within the With distributed application development, a number of open is-
production plant. sues and requirements arise which are not found in conven-
The described application has been implemented in a prototypi- tional applications:
cal way. The implementation comprises more than 30 object Communication support: The intensive communication be-
classes not shown in the figure. The rectangular elements tween the components of a distributed application should be
shown above are implemented by so-called configured objects supported by efficient and easy-to-use communication
with intermediate configured object references and are man- mechanisms.
aged by a separate distributed configuration tool. The coarse-
grained structure of the application is built from these elements. Structure support: Adequate structuring mechanisms
Within the machine object, a hierarchy of stock objects is should be available in order to manage the complexity of a
shown in order to illustrate the need for structural abstraction distributed application. Important requirements are hierar-

392
ing, remote procedure call, and distributed object-oriented in-
chical abstraction facilities, typing of components, and typ-
vocation [3].
ing and explicit specification and management of compo-
nent interconnections. From the language point of view, distributed programming lan-
guages and distributed configuration languages can be identi-
Allocation support: An explicit specification of the alloca-
fied. These languages correspond with the models of computa-
tion of coarse-grained application components to system
tion and structure, respectively. A typical distributed
nodes should be possible.
programming language offers a procedural (possibly object-
Change support: Dynamic changes of the structure and of based) style of programming augmented with communication
the allocation of application components should be enabled. and synchronization primitives. A distributed configuration lan-
This is especially important for very large distributed appli- guage is ideally of declarative style and describes the structure
cations and systems of the near future. of the application and system elements. In addition, most con-
Flexible degree of distribution transparency: To facilitate figuration approaches offer a dynamic change notation to re-
application development, a high degree of distribution quest dynamic configuration changes at runtime.
transparency concerning allocation and communication is From the tool point of view, a distinction between development
desirable. However, to increase the efficiency of an applica- tools (e.g. simulation and animation tools, language-sensitive
tion or to take specific informal, application-dependent re- editors, and compilers) and runtime tools (e.g. distributed
quirements into consideration, distribution transparency monitors, distributed configuration management tools, and
should be reducible, e.g. by the provision of explicit alloca- tools for object placement control) can be made. Moreover, a
tion facilities as mentioned above. distinction can be made between management tools (managing
the application execution by using semantic information about
Computer-aided development and tool support: Distributed the application), analysis tools (observing the application and
application development should be computer-assisted even generating anlysis data about it), synthsis tools (supporting the
in its early phases. During detailed design, all information interactive creation and modification of an application), and
which is related to distribution aspects should be repre- auxiliary tools (providing tool integration interface shells).
sented explicitly rather than be hidden in implementation The approach described below considers all of these three as-
code. This way, the use of distributed application develop- pects (models, languages and tools) and integrates them in an
ment tools, e.g. of animation or distributed debugging tools object-oriented way. The next sections briefly discuss existing
[20] is enabled. approaches from different relevant areas.
To satisfy these requirements to a sufficient degree, we present
an integrated approach which is based on a number of existing
techniques discussed below. 2.6. Distributed Application Configuration Management
Existing distributed application configuration management
mechanisms support the management of the coarse-grained
2.5.Models, Languages and Tools for Distributed Amlications structure and placement of an application, i.e. distributed
Distributed application development can best be supported by programming-in-the-large aspects. In particular, modular struc-
an integrated model, language and tool approach. As opposed turing with hierarchical abstraction and module interconnection
to non-distributed programming, specific kinds of languages management is enabled. Existing systems like CONIC [15]of-
and tools are required. From the model point of view, we can fer declarative languages to describe an initial configuration
distinguish between coexisting structural and computational and to request dynamic configuration changes. Other systems
models. The structural model describes the coarse-grained also based on a process-oriented (vs. object-oriented) model of
structure of an application and of an underlying system. In the distribution are PCL [18], HPC [ 5 ] , and PRONET [16]. Besides
example presented above, it is reflected by the configured ob- the language support, associated tools for initial configuration
jects. The structural application part consists of the application generation and for dynamic configuration changes are offered
components and of their logical interconnections. These inter- by these systems.
connections serve as a base for intercomponent referencing and
communication.The structural system part comprises the nodes
of the underlying network; in general, a logically fully- 2.7. Distributed Object-Oriented Systems and RPC
connected network is assumed. The computational model con- Distributed object-oriented systems support distributed
sists of a basic model of computation and communication. The programming-in-the-small. They provide a uniform model of
basic model of computation represents distribution-independent communication and computation and achieve a high degree of
parts of an application and is based on conventional procedural distribution transparency [3,2]; this way, distributed application
language elements in our approach. The basic model of com- development and maintenance is facilitated. Object invocations
munication comprises the communication primitives offered by are location independent and objects can move between nodes
the underlying distributed system. Examples are message pass- dynamically, e.g. to reduce remote communication. Examples

393
of existing systems are Distributed Smalltalk [Z,91, Amber manipulation tools residing at the functional layer. A target
(based on C++) [7], Emerald [3,14], and COMANDOS [13]. runtime system also present at this layer is executing an appli-
They offer a similar model of distribution based on objects of cation at the different stages of design. In addition, a number of
arbitrarily fine grain but differ in several aspects (e.g. intemal tool sets are plugged into the design language representation.
object addressing, mobility of invoked objects, and object per- Each of them is offering a consistent set of tools to handle a
sistency) [25]. specific problem related to distribution.
Existing remote procedure call (RPC) facilities [4,26] provide
easy-to-use mechanisms for remote communication. Moreover,
new approaches extend this paradigm by asynchronous, non- ce
blocking calls, by efficient mass data transfer, and by heteroge-
neity support [1,17]. These facilities can be integrated with dis-
tributed object-oriented systems.

2.8. Object-Oriented Develoument Methods


Object-oriented development [6] is based on the identification
I ion

of real-world objects mapped to the objects of a computer sys-


tem. In further steps, classes, operations and object attributes
are introduced and combined. This rather simple approach en-
I II I Tools

ables a well-structured application design; therefore, we adopt


its basic ideas. In addition, extensions of the basic design ap-
proach are relevant to our work. Most important, hierarchical
design support is essential for complex distributed applications.
The HOOD [12] method enables this kind of abstraction, for
b
example. Lifecycle phases

Figure 2: Architecture of the distributed application support


3. Extension and Integration of Current Technolom environment
The language as well as the tools shall provide lifecycle-
To provide fully-integrated support for distributed application spanning functionality. This is achieved by facilities for incom-
development, an architecture of a complete software engineer- plete specification combined with runthe mechanisms to exe-
ing environment has been defined [21]. In particular, a design cute incomplete application designs. The language and the tools
language and a set of design and runtime tools are part of it. are described in closer detail below.

3.1. Environment Architecture 3.2. Design Language Support


The architecture of the environment is shown in fig. 2. The ba- The design language consists of a declarative part describing
sic design principles of this environment are: structural configuration aspects and a procedural part describ-
ing computation. It is based on a toplevel object class hierarchy
Object-orientation conceming the models of computation,
offering generic classes relevant for distributed applications
communication and structure
(fig. 3). The three major categories are configured objects, gen-
Widespectrumlifecycle support during design erated objects and relation objects. Configured objects are
Explicit representation of semantics conceming separately managed by configuration support mechanisms
distribution-related issues like communication, integration while generated objects are managed by the runtime system
of computation and configuration mechanisms only. The language elements associated with these kinds of ob-
jects represent a configuration notation and a distributed pro-
Integration of distributed object-oriented computation and gramming notation, respectively. The configured object class is
extended remote procedure call facilities further specialized into subsystems (means of modular structur-
The environment consists of three major layers, the human in- ing), independent objects (active objects with independent flow
teraction layer, the functional layer and the data layer. A of control), servers (objects offering chargeable and abortable
widespectrum design language is the base to develop a distrib- services with delegation mechanisms), permanent data objects
uted application. A design with this language is generated using (representing non-volatile data like name tables), and event
tools of the human interaction layer (e.g. graphical editors). It is generators (objects generating event objects to trigger tool acti-
then transformed into the data layer representation by language vations and to simulate stimulation by extemal sources). The

394
generated object class is divided into data objects (basic vola- logical interobject communication connections, and for dy-
tile data), threads (lightweight processes with invocations namic structural changes (e.g. by creating new nested subsys-
which are potentially distributed among different nodes), and tems and integrating them into the existing structure).
event objects (representing typed events produced by event The relation part of the language is used to integrate
generators). distribution-specific tools. In particular, these relations repre-
The relation objects represent semantic relations explicitly. Our sent explicit semantic information used by dedicated work-
current approach includes three kinds of relation classes, colo- benches. For example, the communication relations are ex-
cations (describing objects to be moved to a common location ploited by communication control tools managing interactions
during specific time intervals to reduce expensive remote com- among object groups. The colocation relations are used by mo-
munication [23]), communication relations (describing com- bility control tools which move communication objects to a
plex n-party interactions between objects similar to [lo]) and common location dynamically.
cooperation relations (describing dependable distributed algo- The design language approach achieves two major goals: the
rithm executions). explicit representation of semantics and the integration of com- .
putation and configuration. The basic mechanisms conform to
existing approaches mentioned in section 2.
3.3. Basic Runtime S u ~ ~ o r t
An interpreter of the design language and a target runtime sys-
tem of the environment provide basic runtime support. The in-
terpreter has the task to execute an even incomplete design. As
efficiency is not essential in early design phases, an interpreter
approach is suitable due to its flexibility. It will be combined
with an animation tool to provide graphical feedback to the de-
veloper. A specific feature of the interpreter is the ability for
explicit interaction with the developer in case of incomplete
specifications.This way, the developer can decide dynamically
which actions should be performed when reaching an incom-
plete method body (e.g. ignore it, perform modest animation, or
request explicit specification of objects to be invoked).
To increase the efficiency of a relatively complete design, a
compiler will translate it into an object-oriented target lan-
guage. A prerequisite for that is the availability of complete
method bodies. The additional semantic information provided
by the relation classes is then translated into dedicated data
structures which are addressed by objects of the target language
Figure 3: Toplevel object class hierarchy of the and which are still exploited by runtime tools.
design language
3.4. Tool Su~uort
The computational part of the language is reflected by the gen- Different tools of the environment can be integrated into tool
erated objects and by an object-oriented model of computation sets [25]. A tool set is oriented towards a common goal, uses a
similar to [3]. In particular, the language offers methods, loca- common internal data representation and should provide a
tion independent method invocation facilities, and conventional common look and feel at its human computer interface [20]. Ex-
control structures. A specific feature is the ability of incomplete amples of tool sets in our environment are:
specifcation. That is, a method can already be partially exe- Distributed confguration management: This tool set is sup-
cuted if its body is even not complete. For example, an anima- porting coarse-grained structure and allocation control of a
tion of the invocation of the involved objects can be performed
distributed application. It consists of a language compiler,
without having detailed information about the exact invocation an initial configuration manager generating an initial con-
sequences. figuration based on a placement heuristics, and a configura-
The structural part of the language is reflected by the config- tion change manager performing dynamic configuration
ured objects with associated configuration management sup- changes.
port. These objects provide facilities for hierarchical abstrac-
tion (by nested subsystems), for explicit object allocation (by Mobility control: The goal of this tool set is to colocate
specific placement instructions), for explicit specification of communicating objects during intervals of intensive com-

395
munication. It is based on the colocation relations men- result, a static animation as well as the animation of dy-
tioned above. It consists of a compiler component to d e f i e namic structural changes can be performed.
colocations, a distributed runtime protocol implementing a
policy to move objects together including a heuristic valu- Subsystem functionality: During this step, basic objects
ation, and a monitor component to generate and modify co- (servers, independent objects, event generators, and perma-
locations [23,24]. nent data objects) are introduced into the bottom-level sub-
systems. This way, the subsystem functionality is detailed
Communication abstraction: This tool set is providing from an abstract interface specification to a concrete inter-
means for explicit specification, for animation and for nal structure with dedicated objects. In addition, required
analysis of n-party interactions. It comprises a compiler types of generated objects (but no instances) should be de-
component, a graphical animator and an interactive debug- f i e d now.
ging facility.
Specification of object methods: Now the methods of the
Cooperation management: This tool set is supporting the basic and generated objects can be specified. Even if their
specification and management of dependable distributed al- implementation is not given during this step, means for ab-
gorithms. It also comprises a compiler component, and a stract specification of their functionality can be exploited.
runtime manager performing algorithm execution and For example, the set of related invoked objects can be de-
checkpointing and a monitor analyzing algorithm execu- scribed declaratively.
tion, e.g. to generate information about communication fre-
quencies. Specification of semantic relations: To exploit the special
tool functionality described above, semantic relations
Animation tools: These tools are of auxiliary nature and do among the design objects have to be specified. This step,
not treat a specific problem of distribution like the tools however, is relatively independent from the other steps. Its
mentioned above. The animation of a design can be divided only prerequisite is the existence of a declarative specifica-
into a structural, static part (based on configured objects), tion of the objects to be related (but not their implementa-
and into a computational, dynamic part (based on method tion).
executions on configured and generated objects). The im-
plementation of the animation will be based on X windows. Method implementation: Finally, the implementation of the
defined methods has to be performed. Even during this
The tool sets are plugged into the design language via specific step, a stepwise design is possible. In particular, detailed in-
relation classes representing major semantic information used vocation specifications can be replaced by more vague in-
by its tools. As discussed above, the different tools can be clas- vocation intensity descriptions or by non-deterministic se-
sified into management tools using semantic information to lection of invoked objects.
control application execution, analysis tools generating seman-
tic information, e.g. using monitor approaches, synthesis tools These steps can be applied in an iterating way and can also be
performing syntactical and semantical transformations, and exchanged by each other. In addition, more formal design
auxiliary tools providing tool integration facilities. methods based on the environment will be investigated in order
to provide rule-based design transformation support with ex-
plicit developer interaction.
3.5. Stevwise Development Support
As opposed to other approaches, stepwise development is per- 4.Advanced Issues and Requirements
formed in a seamless way using the design environment. This
is achieved by the widespectrum approach, i.e. the offered de-
sign objects cover a wide range of semantic design information Besides the problems covered by the distributed application de-
ranging from very coarse-grained structural descriptions to a sign approach, a number of advanced issues and requirements
detailed executable specification. An example of a stepwise can be identified and could be covered in the future by specific
top-down design method using the apporach can be described workbenches.
as follows:
e Toplevel subsystem design: In this step, the toplevel sub- 4.1. Devendabilitv Support and Distribution
systems of an application together with their interfaces are
For several years, dependability has been recognized as an im-
designed. This is of purely declarative nature; the result can
portant issue in the face of distribution. First, additional kinds
only be animated in a static way.
of faults are present in such an environment; nodes can fail in-
Detailed subsystem design: In this step, the hierarchical ab- dependently and intemode communication can fail, too. Sec-
straction facilities of subsystems are applied. That is, the ondly, independent redundant components can be introduced
detailed nested structure of all subsystems is specified. As a into a distributed environment relatively easily. Existing ap-
proaches towards dependability can again be divided into

396
structural and computational ones. type shall coexist in a heterogeneous system. In summary, het-
Structural support for dependability can be provided by struc- erogeneity is associated with several additional requirements
tural reconfigurations based on dynamic configuration manage- conceming the configuration language and conceming the run-
ment [15]. In particular, altemative modules providing the time environment.
same service as a module running on a faulty node can be in-
troduced. This can be performed by switching all logical mod-
ule interconnections from an old module to the new one replac- 4.3.Multiparadigm Apuroaches
ing it. Moreover, structural redundancy can be introduced by
The approach presented above is based on a uniform object-
establishing l:n interconnections from client modules to associ-
oriented model of computation and communication. However,
ated server modules. In addition, announced failures can be
in special cases, this uniformity seems not adequate. For exam-
handled by migrating modules to different physical nodes if the
ple, bulk data transmission is hardly supported by distributed
underlying operating system is supporting module mobility [3].
object-oriented approaches. As opposed to that, RPC exten-
Computational dependability support is provided by atomic
sions supporting efficient bulk data transfer have already been
distributed operations (which can be rolled back without effects
developed [ll]. A combination of such an approach with the
in the case of failure) [22], by replicated remote procedure calls
object-oriented techniques seems desirable. A direct mapping
and distributed recovery blocks (guaranteeing success if at least
of bulk data transfer at application level onto underlying trans-
one operation execution succeeds) [27], and by data replication
port protocols would be possible by this multiparadigm com-
facilities (guaranteeing data accessibility in the case of node
munication approach.
failures) [8]. In addition, support can also be given at system
An additional example of a multiparadigm facility is the multi-
level by secure transport communication protocols, by fault-
language approach. While purely object-based languages like
tolerant routing, and by reliable broadcast operations.
Distributed Smalltalk or Emerald provide uniformity, other im-
As opposed to the computational mechanisms, structural fault plementation languages (e.g. C++) are even more optimized
tolerance support can help to avoid future application errors but for efficiency but do not focus on distribution. A combination
can hardly be used to handle and correct current failures. of such languages in large applications seems desirable. For ex-
Therefore, a combination of computational and structural ample, the intemal implementation of a stock manager of the
mechanisms is required. In addition, none of the existing sys- presented application could be done in C++ while all code rele-
tems is supporting an automatic structural handling of failures. vant to distribution aspects (e.g. remote access to production
That is, the described mechanisms can only serve as a base for plans) should be implemented in a distribution-oriented lan-
a higher-level approach. Related important requirements are guage. This requires sound interface specificationsbetween the
the system-based analysis of a failure, the derivation of appro- coexisting languages, an issue which is still open.
priate configuration change operations, and the following exe-
cution of these changes.

A very different requirement associated with our approach is


4.2. Heterogeneitv Issues
the management of software engineering data. W e our cur-
The presence of heterogeneity in most current distributed envi- rent prototype is based on a conventional file approach, more
ronments leads to additional requirements concerning distrib- advanced mechanisms using databases are required. Important
uted application support. First, application entities cannot be al- issues are versioning of design data, concurrent access to these
located to each arbitrary node due to different resource data with long-durating transactions, and even distribution of
availabilities. For example, a file server component requiring design data among cooperating workstations.
direct disk access cannot work on a diskless system. Therefore, While the fist two requirements are covered by current data-
the configuration language has to support the specification of base technology to a large degree, the third issue is important
static placement restrictions for configured objects. for our work. A simple data distribution can be performed by
Secondly, heterogeneous nodes usually have different intemal remote database access facilities. However, a full approach to-
data representations. Therefore, intemal object data have to be wards cooperative distributed work is stating additional re-
converted transparently by the system when an object moves quirements conceming the direct exchange of design data and
between different heterogeneous nodes. Thirdly, the set of ap- conceming the synchronization of different design activities.
plication object types offered by different nodes can vary sig- An advanced group coordination approach has to be developed
nificantly. This leads to mobility restrictions, i.e. an object can and has to be integrated into a design environment as described
only move to nodes where its type and the associated binary above. Additional difficulties are associated with the considera-
implementation code is available. In addition, systems like Em- tion of node faults during software engineering activities. Only
erald [3] allow the dynamic installation of object types after few approaches focussing onto this direction have been pre-
object migrations at runtime. However, this is also hardly feasi- sented until now. This will be an interesting research area of
ble when different implementations of the same application the future.

391
Remote Pipes and Procedures for Efficient
DistributedCommunication
ACM Trans. on Computer Systems, Vol. 6,No. 3, Aug. 1988
5. Conclusion
HOOD ReferenceManual
The paper has given an overview of an integrated model, lan- CRl lntemationaleMatra. 1987
guage and tool approach to support distributed application de- C. Horn
velopment. Based on the distributed object paradigm, powerful An Object Oriented Modelfor DistributedProcessing
Workshop on Research into Networks and Distributed mlications,
support can be provided to the application developer this way. Wim 1988, North Holland, 1988
The presented environment facilitates tool integration and shall E. Jul, H. Levy, N. Hutchinson, A. Bladc
provide a common human computer interface for a l l different Fine-Grained Mobility in the Emerald System
ACM Transadions on Computer Systems, Vd. 6, No. 1, Feb. 1988
services offered by it. A prototype implementation of some tool
J. Kramer, J. Magee
sets has already been completed; the language support is cur- Dynamic Configuration for DistrbutedSystems
rently under development as part of the joint project DOCASE lEEE Trans. on Software Engineering. SE-11(4). April 1985
of the University of Karlsruhe and Digital Muipment Corpora- R.J. LeBlanc, A.B. Maccaix
tion [20]. Additional important requirements concerning dis- The Design of a Programming Language Based on
Connectivity Networks
tributed application support have been summarized. An inte- Proc. IEEE 3rd Inif. Conf. on DiWbutsd Computing Systems,
grated treatment of these issues within a design environment Ft.. Lauderdale, Florida, Oct. 1982
seems desirable. B. Liskov, L. Shrira
Promises: LinguisticSupport for Elfiaent Asynchronous
Future work will focus on the implementation of the environ- Procadure Calls in DistributedSystems
ment. In addition, further conceptual work will be concemed ACM Sigplan ‘88 Conference on Programming Language Design
with extensions of the communication abstraction approach, and Implementation,June 1988

e.g. with stepwise development, animation and reuse of com- V.R. Lesser, D. Serrain, J. Bonnar
PCL A Process-OrientedJob Control Language
plex communication patterns. Detailed analyses of mobility Proc. 1st lnt. Conf. on Distnluted Computer Systems, 1979
control policies are also part of our future work. The issues J. Magee, J. Kramer, M. Sloman
summarized in the last section will be part of more distant fu- Constructing DistributedSystems in Conic
lEEE Trans. on Software Engineering, Yd. 15, No. 6, June 1989
ture work.
M. MOhlh5user. A. Schill, L. Heuser
References Project DOCASE: Software Engineering for Distributed Applications:
An Object-OrientedApproach
Int. Workshop Software Engineeringand its Applications:
B.N. Bershad, D.T. Ching, E.D. Lazowska, J. Sanislo, M. Schwa& Toulouse, 1988
A Remote Procedure Call Facilityfor Interconnecting M. MUhlhSuser,A. Schill. J. Kienh6fer, H. Frank, L. Heuser
Heterogeneous Computer Systems A Software Engineering Environment for DistributedApplications
IEEE Trans. on Software Engineering, Aug. 1987 Euromicro, Kdln 1989
J.K. Bennett D.P. Reed
The Design and Implementation of DistributedSmalltalk Implementing Atomic Actions on Decentrdied Data
OOPSLA ‘87 Promedings, ACM 1987 ACM Transactions on Computer Systems, Vd. 1, No. 1, Feb. 1983
A. Bladc, N. Hutchinson, E. Jul. H. Levy, L. Carter A. Schill
Distributionand Abstract Types in Emerald MobilityContrd in DistributedObject-Oriented Applications
lEEE Trans. on Software Engineering, Jan. 1987 /E€€ Int. Phoenk Conf. on Computers and Communications,
A.D. Birrell. B.J. Nelson Scottsdale, Arizona, March 1989
Implementing Remote Procedure Calls A. Schill
ACM Transactions on Computer Systems, Feb. 1984 Support for Mobility Control and Configuration Management
T.J. Le Blanc, S.A. Friedberg in DistributedObject-OrientedApplications
HPC: A Model of Structure and Change in DistributedSystems 2nd Int. Workshop on Objects and Distribution, DECUS Symposium.
IEEE Trans. on Computers, Vol. c-34, No. 12, Dec. 1985 Kar/sruhe. April 1989
G. Booch A. Schill
Object-OrientedDevelopment Objects and Distribution:Advantages, Problems and Solutions
IEEE Trans. on Software Enginering, Vol. SE-12, No. 2, Feb. 1986 Int. TOOLS Conf., Paris, Nov. 1989
J.S. Chase, F.G. Amador. E.D. Larowska, H.M. Levy, R.J. Littlefield AS. Tanenbaum, R. van Renesse
The Amber System: Parallel Programmingon a A Critique of the Remote Procedure Call Paradigm
Network of Multiprocessors Workshop on Research into Networks and Distributed apPlications,
lnternalReport, University of Washington, Seattle, 1989 Wien, April 1988. North Holland1988
Cornafion K.S. Yap, P. Jalote. S. Tripathi
DistributedComputing Systems Fault Tolerant Remote P r d u r e Call
Elsevier SciencePublishers, Amsterdam 1985 10th Int. Conferencs on SoRware Engineering, Singspore 1988
P.L. McCullough
Transparent Fomanling: First Steps
OOPSLA ‘87 Proceedings, ACM 1987
N. Francez. B. Hailpern
Script: A Communication Abstraction Mechanism
OperatingSystems Review, No. 2. Apr. 1985.pp. 53-67
D.K. Gfford, N. Glasser

398

You might also like