Type-based publish/subscribe: Concepts and experiences

被引:29
作者
Eugster, Patrick [1 ]
机构
[1] Purdue Univ, Dept Comp Sci, W Lafayette, IN 47907 USA
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2007年 / 29卷 / 01期
关键词
languages; design; abstraction; generics; !text type='Java']Java[!/text; publish/subscribe; reflection; type; distribution;
D O I
10.1145/1180475.1180481
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A continuously increasing number of interconnected computer devices makes the requirement for programming abstractions for remote one-to-many interaction yet more stringent. The publish/ subscribe paradigm has been advocated as a candidate abstraction for such one-to-many interaction at large scale. Common practices in publish/ subscribe, however, include low-level abstractions which hardly leverage type safety, and provide only poor support for object encapsulation. This tends to put additional burden on software developers; guarantees such as the aforementioned type safety and object encapsulation become of increasing importance with an accrued number of software components, which modern applications also involve, besides an increasing number of hardware components. Type-based publish/subscribe (TPS) is a high-level variant of the publish/subscribe paradigm which aims precisely at providing guarantees such as type safety and encapsulation. We present the rationale and principles underlying TPS, as well as two implementations in Java: the first based on a specific extension of the Java language, and a second novel implementation making use of recent general-purpose features of Java, such as generics and behavioral reflection. We compare the two approaches, thereby evaluating the aforementioned features-as well as additional features which have been included in the most recent Java 1.5 release-in the context of distributed and concurrent programming. We discuss the benefits of alternative programming languages and features for implementing TPS. By revisiting alternative abstractions for distributed programming, including "classic" and recent ones, we extend our investigations to programming language support for distributed programming in general, pointing out that overall, the support in current mainstream programming languages is still insufficient.
引用
收藏
页数:50
相关论文
共 94 条
[41]   IMPOSSIBILITY OF DISTRIBUTED CONSENSUS WITH ONE FAULTY PROCESS [J].
FISCHER, MJ ;
LYNCH, NA ;
PATERSON, MS .
JOURNAL OF THE ACM, 1985, 32 (02) :374-382
[42]  
FOURNET C, 1997, P 8 INT C CONC THEOR, P196
[43]  
FOURNET C, 1996, 23 ACM S PRINC PROGR, P372
[44]  
FREEMAN E, 1999, JAVASPECIES PRINCIPL
[45]  
Gamma E., 1995, Design Patterns: Elements of Reusable Object-Oriented Software
[46]   GENERATIVE COMMUNICATION IN LINDA [J].
GELERNTER, D .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1985, 7 (01) :80-112
[47]   COORDINATION LANGUAGES AND THEIR SIGNIFICANCE [J].
GELERNTER, D ;
CARRIERO, N .
COMMUNICATIONS OF THE ACM, 1992, 35 (02) :96-107
[48]  
Goldberg Adele, 1983, SMALLTALK 80 LANGUAG
[49]  
Gosling James, 2000, The Java Language Specification
[50]  
GREGONO P, 2000, P 14 EUR C OBJ OR PR, P226