TY - GEN
T1 - Type-safe eventful sessions in Java
AU - Hu, Raymond
AU - Kouzapas, Dimitrios
AU - Pernet, Olivier
AU - Yoshida, Nobuko
AU - Honda, Kohei
PY - 2010/8/3
Y1 - 2010/8/3
N2 - Event-driven programming is a major paradigm in concurrent and communication-based programming, and a widely adopted approach to building scalable high-concurrency servers. However, traditional event-driven programs are more difficult to read, write and verify than their multi-threaded counterparts due to low-level APIs and fragmentation of control flow across disjoint event handlers. This paper presents a Java language extension and a novel type discipline for type-safe event-driven session programming that counters the problems of traditional event-based programming with abstractions and safety guarantees based on session types, while retaining the expressiveness and performance characteristics of events. The type discipline extends session types and their primitives with asynchronous input, session typecase and session set types, ensuring event-handling safety and event progress in addition to the standard type soundness and communication safety. The advantages, expressiveness and performance of event-driven session programming are demonstrated through a range of examples and benchmarks, including a session-typed SMTP server.
AB - Event-driven programming is a major paradigm in concurrent and communication-based programming, and a widely adopted approach to building scalable high-concurrency servers. However, traditional event-driven programs are more difficult to read, write and verify than their multi-threaded counterparts due to low-level APIs and fragmentation of control flow across disjoint event handlers. This paper presents a Java language extension and a novel type discipline for type-safe event-driven session programming that counters the problems of traditional event-based programming with abstractions and safety guarantees based on session types, while retaining the expressiveness and performance characteristics of events. The type discipline extends session types and their primitives with asynchronous input, session typecase and session set types, ensuring event-handling safety and event progress in addition to the standard type soundness and communication safety. The advantages, expressiveness and performance of event-driven session programming are demonstrated through a range of examples and benchmarks, including a session-typed SMTP server.
UR - http://www.scopus.com/inward/record.url?scp=77955019307&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-14107-2_16
DO - 10.1007/978-3-642-14107-2_16
M3 - Conference contribution
AN - SCOPUS:77955019307
SN - 3642141064
SN - 9783642141065
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 329
EP - 353
BT - ECOOP 2010 - Object-Oriented Programming - 24th European Conference, Proceedings
T2 - 24th European Conference on Object-Oriented Programming, ECOOP 2010
Y2 - 21 June 2010 through 25 June 2010
ER -