Title :
Towards safe distributed application development
Author :
Eugster, Patrick Thomas ; Damm, Christian Heide ; Guerraoui, Rachid
Author_Institution :
Sun Microsystems, Voketswil, Switzerland
Abstract :
Distributed application development is overly tedious, as the dynamic composition of distributed components is hard to combine with static safety with respect to types (type safety) and data (encapsulation). Achieving such safety usually goes through specific compilation to generate the glue between components, or making use of a single programming language for all individual components with a hardwired abstraction for the distributed interaction. In this paper, we investigate general-purpose programming language features for supporting third-party implementations of programming abstractions for distributed interaction among components. We report from our experiences in developing a stock market application based on type-based publish/subscribe (TPS) implemented (1) as a library in standard Java as well as with (2) a homegrown extension of the Java language augmented with specific primitives for TPS, motivated by the lacks of former implementation. We then revisit the library approach, investigating the impact of genericity, reflective features, and the type system, on the implementation of a satisfactory TPS library. We then discuss the impact of these features also on other distributed programming abstractions, and hence on the engineering of distributed applications in general, pointing out lacks of mainstream programming environments such as Java as well as .NET.
Keywords :
Java; data encapsulation; distributed programming; programming languages; .NET; Java language; TPS library; data encapsulation; distributed component interaction; distributed components; distributed interaction; distributed programming abstractions; dynamic composition; general-purpose programming language features; safe distributed application development; software library; static safety; stock market application; type safety; type-based publish/subscribe; Computer languages; Connectors; Java; Laboratories; Libraries; Logic programming; Middleware; Safety; Stock markets; Sun;
Conference_Titel :
Software Engineering, 2004. ICSE 2004. Proceedings. 26th International Conference on
Print_ISBN :
0-7695-2163-0
DOI :
10.1109/ICSE.2004.1317457