Abstract
The stream programming paradigm aims to expose coarse-grained parallelism inapplications that must process continuous sequences of events. The appeal ofstream programming comes from its conceptual simplicity. A program is acollection of independent filters which communicate by the means ofuni-directional data channels. This model lends itself naturally toconcurrent and efficient implementations on modern multiprocessors. As theoutput behavior of filters is determined by the state of their inputchannels, stream programs have fewer opportunities for the errors (such asdata races and deadlocks) that plague shared memory concurrent programming. This paper introduces S<scp>tream</scp>F<scp>lex</scp>, an extension to Java which marries streams with objects and thus enables to combine, in the same Java virtual machine, stream processing code with traditional object-oriented components. S<scp>tream</scp>F<scp>lex</scp> targets high-throughput low-latency applications with stringent quality-of-service requirements. To achieve these goals, it must, at the same time, extend and restrict Java. To allow for program optimization and provide latency guarantees, the S<scp>tream</scp>F<scp>lex</scp> compiler restricts Java by imposing a stricter typing discipline on filters. On the other hand, S<scp>tream</scp>F<scp>lex</scp> extends the Java virtual machine with real-time capabilities, transactional memory and type-safe region-based allocation. The result is a rich and expressive language that can be implemented efficiently.
- http://www.tglx.de/projects/hrtimers/2.6.17/.Google Scholar
- D. J. Abadi, Y. Ahmad, M. Balazinska, U. Cetintemel, M. Cherniack, J.-H. Hwang, W. Lindner, A. S. Maskey, A. Rasin, E. Ryvkina, N. Tatbul, Y. Xing, and S. Zdonik. The Design of the Borealis Stream Processing Engine. In Second Biennial Conference on Innovative Data Systems Research (CIDR 2005), Asilomar, CA, January 2005.Google Scholar
- C. Andreae, Y. Coady, C. Gibbs, J. Noble, J. Vitek, and T. Zhao. Scoped Types and Aspects for Real-Time Java. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 124--147, Nantes, France, July 2006. Google Scholar
Digital Library
- A. Armbuster, J. Baker, A. Cunei, D. Holmes, C. Flack, F. Pizlo, E. Pla, M. Prochazka, and J. Vitek. A Real-time Java virtual machine with applications in avionics. ACM Transactions in Embedded Computing Systems (TECS), 2006. Google Scholar
Digital Library
- E. A. Ashcroft and W. W. Wadge. Lucid, a non-procedural language with iteration. Communications of the ACM, 20(7):519--526, July 1977. Google Scholar
Digital Library
- J. Auerbach, D. F. Bacon, D. T. Iercan, C. M. Kirsch, V. T. Rajan, H. Roeck, and R. Trummer. Java takes flight: time-portable real-time programming with exotasks. In Proceedings of the Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES '07), pages 51--62, 2007. Google Scholar
Digital Library
- D. F. Bacon, P. Chang, and V. Rajan. A real-time garbage collector with low overhead and consistent utilization. In Conference Record of the ACM Symposium on Principles of Programming Languages, pages 285--298, New Orleans, Louisiana, Jan. 2003. Google Scholar
Digital Library
- D. F. Bacon and P. F. Sweeney. Fast static analysis of C++ virtual function calls. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOP-SLA), pages 324--341, 1996. Google Scholar
Digital Library
- G. Banavar, M. Kaplan, K. Shaw, R. Strom, D. C. Sturman, and W. Tao. Information flow based event distribution middleware. In Proceedings of the Middleware Workshop at the International Conference on Distributed Computing Systems, 1999.Google Scholar
Cross Ref
- A. P. Black, J. Huang, R. Koster, J. Walpole, and C. Pu. Infopipes: An abstraction for multimedia streaming. Multi-media Syst., 8(5):406--419, 2002. Google Scholar
Digital Library
- G. Bollella, J. Gosling, B. Brosgol, P. Dibble, S. Furr, and M. Turnbull. The Real-Time Specification for Java. Addison-Wesley, June 2000. Google Scholar
Digital Library
- C. Boyapati, A. Salcianu, W. Beebee, Jr., and M. Rinard. Ownership types for safe region-based memory management in Real-Time Java. In Proceedings of Conference on Programming Languages Design and Implementation (PLDI). ACM Press, 2003. Google Scholar
Digital Library
- P. Caspi, D. Pilaud, N. Halbwachs, and J. A. Plaice. LUSTRE: A declarative language for programming synchronous systems. In Conference Record of the Fourteenth Annual ACM Symposium on Principles of Programming Languages (POPL), pages 178--188, Munich, West Germany, Jan. 21-23, 1987. ACM SIGACT-SIGPLAN, ACM Press. Google Scholar
Digital Library
- D. G. Clarke, J. M. Potter, and J. Noble. Ownership types for flexible alias protection. In OOPSLA '98 Conference Proceedings, volume 33(10) of ACM SIGPLAN Notices, pages 48--64. ACM, Oct. 1998. Google Scholar
Digital Library
- R. Ennals, R. Sharp, and A. Mycroft. Linear types for packet processing. In Proceedings of the 13th European Symposium on Programming (ESOP), pages 204--218. Springer, 2004.Google Scholar
Cross Ref
- P. Eugster. Type-based publish/subscribe: Concepts and experiences. ACM Trans. Program. Lang. Syst., 29(1), 2007. Google Scholar
Digital Library
- F. Boussinot and R. De Simone. The ESTEREL language. Proc. IEEE, 79(9):1293--1304, Sept. 1991.Google Scholar
Cross Ref
- M. Fähndrich, M. Aiken, C. Hawblitzel, O. Hodson, G. C. Hunt, J. R. Larus, and S. Levi. Language support for fast and reliable message-based communication in Singularity OS. In Proceedings of EuroSys2006, Leuven, Belgium, Apr. 2006. ACM SIGOPS. Google Scholar
Digital Library
- A. Ghosal, T. Henzinger, C. Kirsch, and M. Sanvido. Event-driven programming with logical execution times. In Proceedings of the 7th International Workshop, Hybrid Systems Computation and Control, March 2004.Google Scholar
Cross Ref
- J. Gosling, B. Joy, G. Steele, Jr., and G. Bracha. The Java Language Specification. Addison-Wesley, second edition, 2000. Google Scholar
Digital Library
- P. L. Guernic, M. L. Borgne, T. Gauthier, and C. L. Maire. Programming real time applications with signal. Proceedings of the IEEE, September 1991.Google Scholar
- A. Krishna, D. Schmidt, and R. Klefstad. Enhancing Real-Time CORBA via Real-Time Java Features. In 24th International Conference on Distributed Computing Systems (ICDCS 2004), pages 66--73, Hachioji, Tokyo, Japan, March 2004. Google Scholar
Digital Library
- R. P. M, R. K. Cytron, D. Sharp, and E. Pla. Transport layer abstraction in event channels for embedded systems. In LCTES '03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, pages 144--152, 2003. Google Scholar
Digital Library
- J. Manson, J. Baker, A. Cunei, S. Jagannathan, M. Prochazka, B. Xin, and J. Vitek. Preemptible atomic regions for real-time Java. In Proceedings of the 26th IEEE Real-Time Systems Symposium (RTSS), Dec. 2005. Google Scholar
Digital Library
- J. Noble, J. Potter, and J. Vitek. Flexible alias protection. In 12th European Conference on Object-Oriented Programming (ECOOP), Brussels, Belgium, July 1998. Google Scholar
Digital Library
- F. Pizlo, A. Hosking, and J. Vitek. Hiearchical real-time garbage collection. In ACM SIGPLAN/SIGBED 2007 Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES), pages 123--133, 2007. Google Scholar
Digital Library
- F. Pizlo and J. Vitek. An empirical evalutation of memory management alternatives for Real-time Java. In 27th IEEE Real-Time Systems Symposium (RTSS), Dec. 2006. Google Scholar
Digital Library
- R. Sekar, Y. Guang, S. Verma, and T. Shanbhag. A high-performance network intrusion detection system. In ACM Conference on Computer and Communications Security, pages 8--17, 1999. Google Scholar
Digital Library
- D. Spoonhower, J. Auerbach, D. F. Bacon, P. Cheng, and D. Grove. Eventrons: a safe programming construct for high-frequency hard real-time applications. In Proceedings of the conference on Programming language design and implementation (PLDI), pages 283--294, 2006. Google Scholar
Digital Library
- J. Spring, F. Pizlo, R. Guerraoui, and J. Vitek. Reflexes: Abstractions for highly responsive systems. In Proceedings of the 2nd International Conference on Virtual Execution Environments (VEE), 2007. Google Scholar
Digital Library
- M. Stonebraker, U. Çetintemel, and S. Zdonik. The 8 requirements of real-time stream processing. SIGMOD Rec., 34(4):420--47, 2005. Google Scholar
Digital Library
- W. Thies, M. Karczmarek, and S. Amarasinghe. Streamit: A language for streaming applications. In International Conference on Compiler Construction (CC'02), Apr. 2002. Google Scholar
Digital Library
- O. Vitek, B. Craig, C. Bailey-Kellog, and J. Vitek. Inferential backbone assignment for sparse data. Journal of Biomolecular NMR, 2006.Google Scholar
Cross Ref
- . Zhao, J. Baker, J. Hunt, J. Noble, and J. Vitek. ScopeJ: Simple ownership types for memory management. Submitted for publication, Dec. 2006.Google Scholar
- T. Zhao, J. Noble, and J. Vitek. Scoped types for real-time Java. In Proceedings of the 25th IEEE International Real-Time Systems Symposium (RTSS), Lisbon, Portugal, Dec. 2004. Google Scholar
Digital Library
Index Terms
Streamflex: high-throughput stream programming in java
Recommendations
Streamflex: high-throughput stream programming in java
OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applicationsThe stream programming paradigm aims to expose coarse-grained parallelism inapplications that must process continuous sequences of events. The appeal ofstream programming comes from its conceptual simplicity. A program is acollection of independent ...
Scoped types and aspects for real-time Java memory management
Real-time systems are notoriously difficult to design and implement, and, as many real-time problems are safety-critical, their solutions must be reliable as well as efficient and correct. While higher-level programming models (such as the Real-Time ...
Flexible task graphs: a unified restricted thread programming model for java
LCTES '08The disadvantages of unconstrained shared-memory multi-threading in Java, especially with regard to latency and determinism in realtime systems, have given rise to a variety of language extensions that place restrictions on how threads allocate, share, ...







Comments