skip to main content
article

Streamflex: high-throughput stream programming in java

Authors Info & Claims
Published:21 October 2007Publication History
Skip Abstract Section

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.

References

  1. http://www.tglx.de/projects/hrtimers/2.6.17/.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarCross RefCross Ref
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. G. Bollella, J. Gosling, B. Brosgol, P. Dibble, S. Furr, and M. Turnbull. The Real-Time Specification for Java. Addison-Wesley, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarCross RefCross Ref
  16. P. Eugster. Type-based publish/subscribe: Concepts and experiences. ACM Trans. Program. Lang. Syst., 29(1), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. F. Boussinot and R. De Simone. The ESTEREL language. Proc. IEEE, 79(9):1293--1304, Sept. 1991.Google ScholarGoogle ScholarCross RefCross Ref
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarCross RefCross Ref
  20. J. Gosling, B. Joy, G. Steele, Jr., and G. Bracha. The Java Language Specification. Addison-Wesley, second edition, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Noble, J. Potter, and J. Vitek. Flexible alias protection. In 12th European Conference on Object-Oriented Programming (ECOOP), Brussels, Belgium, July 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. Stonebraker, U. Çetintemel, and S. Zdonik. The 8 requirements of real-time stream processing. SIGMOD Rec., 34(4):420--47, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. W. Thies, M. Karczmarek, and S. Amarasinghe. Streamit: A language for streaming applications. In International Conference on Compiler Construction (CC'02), Apr. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. O. Vitek, B. Craig, C. Bailey-Kellog, and J. Vitek. Inferential backbone assignment for sparse data. Journal of Biomolecular NMR, 2006.Google ScholarGoogle ScholarCross RefCross Ref
  34. . Zhao, J. Baker, J. Hunt, J. Noble, and J. Vitek. ScopeJ: Simple ownership types for memory management. Submitted for publication, Dec. 2006.Google ScholarGoogle Scholar
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Streamflex: high-throughput stream programming in java

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!