New I/O (JSR 51) Robert Rock Howard Chief Technology Officer Tower Technology.

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming Lecture 10 API Review; Where Next.
Advertisements

Tom Sugden EPCC OGSA-DAI Future Directions OGSA-DAI User's Forum GridWorld 2006, Washington DC 14 September 2006.
Title 1 New debug/profile features in J2SE 6 Ivan Popov, May, 2006 Intel Corporation.
Eliminating Eliminating Sanjiva Weerawarana WSDL WG F2F – Raleigh, NC July 30, 2003.
Java Programming: Advanced Topics 1 Collections and Utilities.
Lists and the Collection Interface Chapter 4. Chapter Objectives To become familiar with the List interface To understand how to write an array-based.
STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
The Random and String Classes The import statement.
It provides a framework for embedded multimedia facilities in java enabled mobile devices.
C Intro.
Generics and the ArrayList Class
Chapter 7:: Data Types Programming Language Pragmatics
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
Lab#1 (14/3/1431h) Introduction To java programming cs425
CS 180 Problem Solving and Object Oriented Programming Fall 2011 Notes for the Final Lecture Dec 7, 2011 Aditya Mathur Department of Computer Science Purdue.
J2ME Web Services Specification.  With the promise to ease interoperability and allow for large scale software collaboration over the Internet by offering.
Andrew Borg. The University of York. 1 Java NIO Andrew Borg.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Introduction and a Review of Basic Concepts
Chapter 14 Generics and the ArrayList Class Copyright © 2010 Pearson Addison-Wesley. All rights reserved.
VB in Context Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh Pittsburgh, Pa 15260
A Short Introduction to JAVA
Practical Session 11 Multi Client-Server Java NIO.
Guide to Assignment 3 Programming Tasks 1 CSE 2312 Computer Organization and Assembly Language Programming Vassilis Athitsos University of Texas at Arlington.
Java Programming: Advanced Topics 1 Collections and Wealth of Utilities Chapter 4.
Java Programming: Advanced Topics 1 Collections and Wealth of Utilities.
Assertions Program correctness. Assertions Java statement – enables you to assert an assumption about your program. – An assertion contains a Boolean.
1 The Java Virtual Machine Yearly Programming Project.
Java Mobile Application sms,sim,mms and barcode application Presented by Ayedh(SIM and MMS) Asad(SMS and Barcode Application)
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Files and Streams. Java I/O File I/O I/O streams provide data input/output solutions to the programs. A stream can represent many different kinds of sources.
More with Methods (parameters, reference vs. value, array processing) Corresponds with Chapters 5 and 6.
Computer Science Detecting Memory Access Errors via Illegal Write Monitoring Ongoing Research by Emre Can Sezer.
1162 JDK 5.0 Features Christian Kemper Principal Architect Borland.
Chapter 14 Generics and the ArrayList Class Slides prepared by Rose Williams, Binghamton University Copyright © 2008 Pearson Addison-Wesley. All rights.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2552 Keyword & Data Type มหาวิทยาลัยเนชั่น.
3.14 Work List IOC Core Channel Access. Changes to IOC Core Online add/delete of record instances Tool to support online add/delete OS independent layer.
Telecooperation Technische Universität Darmstadt Copyrighted material; for TUD student use only Q&A Telecooperation Group TU Darmstadt.
Page 1 Remote Procedure Calls Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Practical Session 11 Multi Client-Server Java NIO.
Ideas from ARC about the CORBA FL interface Interface ideas learned from K9 and K10 (Lorenzo) CORBA usage and wrapping ideas learned from MIRO (Hans)
CS 261 Fall 2009 Dynamic Array Introduction (aka Vector, ArrayList)
Copyright © 2009 – Curt Hill Standard Template Library An Introduction.
Fuzzing And Oracles By: Thomas Sidoti. Overview Introduction Motivation Fuzzable Exploits Oracles Implementation Fuzzing Results.
AdaptJ Sookmyung Women’s Univ. PSLAB. 1. 목차 1. Overview 2. Collecting Trace Data using the AdaptJ Agent 2.1 Recording a Trace 3. Analyzing Trace Data.
Java Programming: Advanced Topics 1 Input/Output and Serialization.
SPL/2010 Reactor Design Pattern 1. SPL/2010 Overview ● blocking sockets - impact on server scalability. ● non-blocking IO in Java - java.niopackage ●
Java Generics. Lecture Objectives To understand the objective of generic programming To be able to implement generic classes and methods To know the limitations.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
System Components Operating System Services System Calls.
Variables in Java A variable holds either
Open Source distributed document DB for an enterprise
University of Central Florida COP 3330 Object Oriented Programming
Classes, Libraries & Packages
JDK 1.6 change summary D. MANIKANDAN.
Functional Programming with Java
Explicit and Implicit Type Changes
Unit-2 Objects and Classes
Portability CPSC 315 – Programming Studio
I/O Systems I/O Hardware Application I/O Interface
Arrays and Collections
XDR External Data Representation
Review CSE116 2/21/2019 B.Ramamurthy.
Java Programming Review 1
Student: Popa Andrei-Sebastian
Introduction to Data Structure
Sookmyung Women’s Univ. PSLAB
The reactor design pattern
Presentation transcript:

New I/O (JSR 51) Robert Rock Howard Chief Technology Officer Tower Technology

New Features Scalable Network I/O High Performance File I/O Pluggable Characters Sets –Character conversion Regular Expressions Features considered but not included: –Formatting and scanning –Improved filesystem interface

New Abstractions Channels –Connections for I/O Buffers –Containers for primitive data Charsets (decoders, encoders) Pattern Matchers Selectors –Selectable channels

Channels Defined by interface classes –Reading, writing –Inherit both for bi-directional I/O Asynchronous Closing and Interruption Defined methods are a grab bag of utilities for buffer manipulation.

Buffers Based on primitive types –For int, long, float, double, char, etc. On Heap or else managed directly (not GCd) –Memory mapped files are allowed Indexes are managed wrt. # of primitives –Big or little endian hidden in implementation –Nice set of operators for manipulating buffers (reading, writing, managing indices, etc.)

Random Notes: New I/O Buffer operations return the buffer so that they can be chained: –MyIntbuffer.clear().write(17); Selector allows monitoring of many channels via a single thread Old I/O unchanged and retained in entirety

Random Notes: JDK 1.4 The thread stack size can be set via a new Thread constructor JVMPI and JVMDI (profiling and debugging interfaces) are being replaced –See JSRs for debugging, profiling, monitoring New Assert capability can be enabled –Usage: assert expression ; –Optional Usage: assert expression : error_message ; –Generates AssertionError if triggered –Make sure there are no side effects in assert expression!

Conclusion The new I/O mechanism is sufficiently powerful and scalable that I expect all major commercial Java frameworks to be rewritten for them within 6 to 12 months. The APIs are simple enough that you can pick them up in about one day of concentrated effort.