Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1960275.1960304acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Putting events in context: aspects for event-based distributed programming

Published: 21 March 2011 Publication History

Abstract

Event-based programming is an appealing paradigm for developing pervasive systems since events enable the decoupling of interacting components. Unfortunately, many event-based languages and systems have hardwired notions of physical or logical time and space. This limits their adaptability and target deployment environments, as pervasive systems rely on inherent interaction and interchanging of different protocols and infrastructures.
This paper introduces domain-specific aspects for capturing event context, generalizing beyond the classic time and space dimensions associated with events. Through examples, we demonstrate that our context aspects - conspects for short - modularize the design and implementation of event contexts, enabling code reuse, and making programs portable across infrastructures. We illustrate the benefits of conspects by using them to transparently switch protocols in two pervasive software suites implemented in EventJava: (1) a tornado monitoring system deployed on different architectures ranging from desktop x86 to embedded LEON3, and (2) a mobile social networking suite with protocols for different application scenarios.

References

[1]
M. Appeltauer, R. Hirschfeld, M. Haupt, J. Lincke, and M. Perscheid. A Comparison of Context-oriented Programming Languages. COP'09.
[2]
M. Appeltauer, R. Hirschfeld, and H. Masuhara. Improving the Development of Context-dependent Java Applications with ContextJ. COP'09, pages 1--5.
[3]
N. Benton, L. Cardelli, and C. Fournet. Modern Concurrency Abstractions for C#. TOPLAS, 26(5):769--804, 2004.
[4]
S. M. Blackburn and K. S. McKinley. Immix: a Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance. PLDI'08, pages 22--32.
[5]
OAR Corporation. Real-Time Executive for Multiprocessor Systems (RTEMS). http://www.rtems.org, 2009.
[6]
J. Dedecker, T. Van Cutsem, S. Mostinckx, T. D'Hondt, and W. De Meuter. Ambient-Oriented Programming in AmbientTalk. ECOOP'06, pages 230--254.
[7]
R. Douence, P. Fradet, and M. Südholt. Composition, Reuse and Interaction Analysis of Stateful Aspects. AOSD'04, pages 141--150.
[8]
S. Drossopoulou, A. Petrounias, A. Buckley, and S. Eisenbach. SCHOOL: a Small Chorded Object-Oriented Language. Electr. Notes Theor. Comput. Sci., 135(3):37--47, 2006.
[9]
Ericsson Computer Science Laboratory. The Erlang Pogramming Language. www.erlang.org.
[10]
P. Eugster. Type-based Publish/Subscribe: Concepts and Experiences. TOPLAS, 29(1), 2007.
[11]
P. Eugster, B. Garbinato, and A. Holzer. Location-based publish/subscribe. NCA'05.
[12]
P. Eugster and K.R. Jayaram. EventJava: An Extension of Java for Event Correlation. ECOOP'09, pages 570--594.
[13]
L. Fiege, M. Mezini, G. Mühl, and A. Buchmann. Engineering Event-Based Systems with Scopes. ECOOP'02, pages 309--333.
[14]
C. Fournet and C. Gonthier. The Reflexive Chemical Abstract Machine and the Join Calculus. POPL'96, pages 372--385.
[15]
D. Frey and G.-C. Roman. Context-Aware Publish Subscribe in Mobile Ad hoc Networks. Coordination'07, pages 37--55.
[16]
M. Haahr, R. Meier, P. Nixon, V. Cahill, and E. Jul. Filtering and Scalability in the ECO Distributed Event Model. PDSE'00, pages 83--92.
[17]
Philipp Haller and Tom Van Cutsem. Implementing Joins using Extensible Pattern Matching. COORDINATION'08, pages 135--152.
[18]
R. Hirschfeld, P. Costanza, and M. Haupt. An Introduction to Context-Oriented Programming with ContextS. GTTSE'07, pages 396--407.
[19]
R. Hirschfeld, P. Costanza, and O. Nierstrasz. Context-oriented Programming. Journal of Object Technology, 7(3):125--151, 2008.
[20]
Sun Microsystems Inc. Java Message Service - Specification, version 1.1. Technical report, Sun Microsystems Inc., 2005. http://java.sun.com/products/jms/docs.html.
[21]
S. G. Von Itzstein and D. A. Kearney. The Expression of Common Concurrency Patterns in Join Java. PDPTA'04, pages 1021--1025.
[22]
K. R. Jayaram and P. Eugster. Context-Oriented Programming with EventJava. COP'09, pages 570--594.
[23]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W.G. Griswold. An Overview of AspectJ. ECOOP 2001.
[24]
L. Lamport. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM, 21(7):558--565, 1978.
[25]
F. J. Mattern. Virtual Time and Global States of Distributed Systems. WPDA'89, pages 215--226.
[26]
R. Meier and V. Cahill. Steam: Event-based middleware for wireless ad hoc networks. DEBS 2002, pages 639--644, 2002.
[27]
L. D. B. Navarro, M. Südholt, W. Vanderperren, B. De Fraine, and D. Suvée. Explicitly Distributed AOP using AWED. AOSD'06, pages 51--62.
[28]
N. Nystrom, M. R. Clarkson, and A. C. Myers. Polyglot: An Extensible Compiler Framework for Java. CC'03, pages 138--152.
[29]
F. Pizlo, L. Ziarek, E. Blanton, P. Maj, and J. Vitek. High-level programming of embedded hard real-time devices. EuroSys '10, pages 69--82.
[30]
H. Plociniczak and S. Eisenbach. JErlang: Erlang with Joins. COORDINATION'10, pages 61--75.
[31]
H. Rajan and G.T. Leavens. Ptolemy: A Language with Quantified, Typed Events. ECOOP'08, pages 155--179.
[32]
E. N. Rasmussen. Refined Supercell and Tornado Forecast Parameters. Weather and Forecasting, 18:530--535, 2003.
[33]
J. H. Reppy and Y. Xiao. Specialization of CML Message-passing Primitives. POPL'07, pages 315--326.
[34]
C. V. Russo. Join Patterns for Visual Basic. OOPSLA'08, pages 53--72.
[35]
F. B. Schneider. Implementing Fault-Tolerant Services Using the State Machine Approach: a Tutorial. ACM Computing Surveys, 22(4):299--319, December 1990.
[36]
R. Soulé, M. Hirzel, R. Grimm, B. Gedik, H. Andrade, V. Kumar, and K.-L. Wu. A Universal Calculus for Stream Processing Languages. ESOP'10, pages 507--528.
[37]
J. H. Spring, J. Privat, R. Guerraoui, and J. Vitek. StreamFlex: High-throughput Stream Programming in Java. OOPSLA'07, pages 211--228.
[38]
M. Sulzmann, E. S. L. Lam, and P. Van Weert. Actors with Multi-headed Message Receive Patterns. COORDINATION 2008, pages 315--330, 2010.
[39]
E. Tanter. Contextual Values. DLS'08, pages 1--10.
[40]
J. Yoon, M. Liu, and B. Noble. Random Waypoint Considered Harmful. INFOCOM'03.

Cited By

View all
  • (2017)A Model-Based Method for Modeling and Verifying Event-Based Aspect-Oriented ApplicationsRecent Advances and Future Prospects in Knowledge, Information and Creativity Support Systems10.1007/978-3-319-70019-9_23(281-289)Online publication date: 2-Dec-2017
  • (2015)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • (2013)Aggregation for implicit invocationsProceedings of the 12th annual international conference on Aspect-oriented software development10.1145/2451436.2451450(109-120)Online publication date: 24-Mar-2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
AOSD '11: Proceedings of the tenth international conference on Aspect-oriented software development
March 2011
326 pages
ISBN:9781450306058
DOI:10.1145/1960275
  • General Chair:
  • Paulo Borba,
  • Program Chair:
  • Shigeru Chiba
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • Centro de Informatica - UFPE: Centro de Informatica - UFPE
  • CAPES: Coordençãao de Aperfeiçoamento de Pessoal de Nível Superior
  • CNPq: Conselho Nacional de Desenvolvimento Cientifico e Tecn
  • FINEP: Financiadora de Estudos e Projetos
  • PUC-Rio
  • FACEPE: Fundacao de Amparo a Ciencia e Tecnologia do Estado de Pernambuco

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 March 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aspects
  2. context
  3. events

Qualifiers

  • Research-article

Conference

AOSD'11

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2017)A Model-Based Method for Modeling and Verifying Event-Based Aspect-Oriented ApplicationsRecent Advances and Future Prospects in Knowledge, Information and Creativity Support Systems10.1007/978-3-319-70019-9_23(281-289)Online publication date: 2-Dec-2017
  • (2015)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • (2013)Aggregation for implicit invocationsProceedings of the 12th annual international conference on Aspect-oriented software development10.1145/2451436.2451450(109-120)Online publication date: 24-Mar-2013
  • (2013)Programming Robots with EventsEmbedded Systems: Design, Analysis and Verification10.1007/978-3-642-38853-8_2(14-25)Online publication date: 2013
  • (2013)Using Event-Based Style for Developing M2M ApplicationsGrid and Pervasive Computing10.1007/978-3-642-38027-3_37(348-357)Online publication date: 2013
  • (2012)Abstracting context in event-based softwareTransactions on Aspect-Oriented Software Development IX10.5555/2434958.2434964(123-167)Online publication date: 1-Jan-2012
  • (2012)Messages with implicit destinations as mobile agentsProceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions10.1145/2414639.2414652(107-118)Online publication date: 21-Oct-2012
  • (2012)Supporting methods and events by an integrated abstractionProceedings of the 9th ECOOP Workshop on Reflection, AOP, and Meta-Data for Software Evolution10.1145/2237887.2237889(7-10)Online publication date: 13-Jun-2012
  • (2012)Compositional verification of events and aspectsProceedings of the 11th annual international conference on Aspect-oriented Software Development Companion10.1145/2162110.2162121(11-12)Online publication date: 25-Mar-2012
  • (2012)Abstracting Context in Event-Based SoftwareTransactions on Aspect-Oriented Software Development IX10.1007/978-3-642-35551-6_4(123-167)Online publication date: 2012
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media