Session Details
Session ID: TS-4222
Session Title: Asynchronous I/O Tricks and Tips
Session Abstract: Writing scalable, high-volume-traffic network server applications in the Java™ programming language has always been difficult. The advent of new I/O (NIO) greatly improved the way powerful, scalable applications could be written with the Java programming language. With JDK™ release 7, a new I/O paradigm called asynchronous I/O (JSR 203) has been added. In short, asynchronous I/O gives you a notification when the I/O is complete. The big difference between AIO and NIO is that with AIO you get a notification when the I/O operation is complete, whereas with NIO you are notified when the I/O operation is ready to be completed.

The asynchronous I/O API supports the development of event-driven applications that use the Proactor pattern. It integrates the demultiplexing of I/O and completion events with dispatching to application-provided handlers that consume the result of I/O operations. In brief, an application initiates an I/O operation and specifies a completion handler that is invoked when the I/O is complete. This session contrasts this with the existing API that supports the development of event-driven applications that use the Reactor pattern. With the existing API, a selector is used to multiplex channels to receive events when the channel is ready for I/O.

The session presents lessons learned in implementing a highly scalable AIO-based server and describes how AIO was implemented inside the Project Grizzly framework.
Track: Core Technology: Java SE & Desktop; Java SE & Desktop Scheduling Track
Duration: 60
Speaker(s): Jean-François Arcand, Sun Microsystems, Inc.; Alan Bateman, Sun Microsystems, Inc.