Abstract
During early stages of computer software development, depending on the methodology employed, developers usually create the application’s initial skeleton based on previously gathered requirements and on generated diagrams. When counting purely on what is provided by languages such as Java, developers tend to come up only with synchronous method calls, making use of coding tricks to achieve asynchronous behavior, which usually disrupts the original system model by adding a series of undesired side-effects such as unnecessary class coupling and error-prone constructions. This work proposes an extension to the Java language to allow for both executing asynchronous methods and handling asynchronous events occurring during normal execution, as a straightforward, class coupling-free and native alternative. With this extension it is expected that developers can natively use asynchronous communication from the beginning of the development cycle without having to make structural modifications to the original system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Typesafe Inc.: Akka Documentation 2.1.2 (2013), http://doc.akka.io/docs/akka/2.1.2/
Sun Microsystems: Java Message Service Specification 1.1. (2002), http://download.oracle.com/otndocs/jcp/7195-jms-1.1-fr-spec-oth-JSpec/
Keen, A.W., Ge, T., Maris, J.T., Olsson, R.A.: JR: Flexible distributed programming in an extended Java. In: ACM Transactions on Programming Languages and Systems (TOPLAS), pp. 578–608. ACM, New York (2004)
Gruler, A., Heinlein, C.: Exception handling with resumption: design and implementation in Java. In: Proceedings of the 2005 International Conference on Programming Languages and Compilers (PLC 2005), Las Vegas, pp. 165–171 (2005)
Gosling, J., Joy, B., Steel, G., Bracha, G., Buckley, A.: The Java Language Specification, Java SE 7 Edition (2011), http://docs.oracle.com/javase/specs/
Lindholm, T., Yellin, F., Bracha, G., Buckley, A.: The Java Virtual Machine Specification, Java SE 7 Edition (2011), http://docs.oracle.com/javase/specs/
Krishnamurthi, S.: Programming Languages: Application and Interpretation (2007), http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/
Oracle: Java Platform Debugger Architecture (JPDA) (2012), http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/
Heinlein, C.: Local Virtual Functions. In: Proceedings of NODe 2005, GSEM 2005, Erfurt, pp. 129–144 (2005)
Ekman, T., Hedin, G.: The JastAdd Extensible Java Compiler. In: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Montreal, pp. 1–18 (2007)
Caromel, D., Chazarain, G.: Robust exception handling in an asynchronous environment. In: ECOOP Workshop on Exception Handling in Object-Oriented Systems: Developing Systems that Handle Exceptions, number 05050 in Technical Reports - Laboratoire. Sophia Antipolis (2005)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing, Boston (1995)
Oracle: ThreadLocal Class Documentation (2012), http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html
Spring Source: Spring Framework 3.2.2 (2012), http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/pdf/spring-framework-reference.pdf (2012)
Olsson, R.A., Andrews, G.R., Coffin, M.H., Townsend, G.M.: SR: A Language for Parallel and Distributed Programming, The University of Arizona, Tucson (1992)
Andrews, G.R., Olsson, R.A.: The SR programming language: concurrency in practice. Benjamin-Cummings Publishing, Redwood City (1993)
ActiveEon: ProActive Parallel Suite (2011), http://proactive.activeeon.com
Oracle: Future Interface Documentation (2012), http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
das Neves, C.R.G., Guerra, E.M., Fernandes, C.T. (2013). A Proposal for Native Java Language Support for Handling Asynchronous Events. In: Murgante, B., et al. Computational Science and Its Applications – ICCSA 2013. ICCSA 2013. Lecture Notes in Computer Science, vol 7975. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39640-3_39
Download citation
DOI: https://doi.org/10.1007/978-3-642-39640-3_39
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39639-7
Online ISBN: 978-3-642-39640-3
eBook Packages: Computer ScienceComputer Science (R0)