Webinar 2

From Jini.org

Jump to: navigation, search

Contents

Webinar #2 - Using JavaTM Programming Language Interfaces to Achieve Network Protocol Independence

Wednesday, October 27, 2004

John McClain, Sun Microsystems

Abstract

Defining network services using interfaces written in the Java programming language rather than public network protocols gives one an unprecedented ability to evolve services as requirements and/or one's understanding of the problem domain change. Defining services in terms of language interfaces also allows the service to inject code into the client that can be used to bridge the gap between what makes a good client API and what makes a good network protocol. Both benefits derive from the portable, secure nature of Java programming language byte codes, and the dynamic class loading abilities of the Java runtime environment. To demonstrate this idea, we will define an API written in the Java programming language for a network service that transfers bulk binary data between network nodes using streams. We will explore, with extensive code examples, six implementations of this interface, including an implementation that uses Java RMI and another that uses a custom protocol built on top of raw socket connections. We will investigate the tradeoffs (specifically performance, ease of implementation, and flexibility) between the two implementations. We will also discuss how we can start with one implementation and then transition to the other without needing to update or interrupt clients.

Media

Audio

Slides

Personal tools