Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesJava, Come Hear I Need You


December 1997 / Javatalk / Poet Goes Java / Java, Come Hear I Need You

JTAPI, the Java Telephony API, is part of a series of multimedia APIs JavaSoft is rolling out this year. At the time of this writing, JTAPI was at version 1.1. The company was expecting to release version 1.2 within a month.

JTAPI is actually a collection of Java APIs for telephony support. In particular, JTAPI can deal with either first- or third-party telephony applications. (An example of a first-party application is a desktop system equipped with a multifunction telephony card. An example of a third-party appli cation is a server system controlling a network of phones, faxes, and modems. JTAPI is built in such a way that it accommodates either application.)

It's important to recognize that JavaSoft did not solely author JTAPI. According to Vicki Shipkowitz, senior product marketing manager for Java media and communications technologies, JTAPI was constructed with the aid of organizations such as Lucent, Nortel, Intel, Novell, and IBM. The goal was to create a TAPI that was simultaneously extensible and uncomplicated. This involved walking a narrow line. On the one hand, JavaSoft wanted enough functionality in the API so that it sufficiently modeled those applications it is supposed to support. On the other hand, too much completeness leads to complexity; and with too much complexity, the result is an API that no one is interested in using.

JTAPI's architecture is that of a collection of extension APIs orbiting around a core package. The core package defines the basic JTAPI call model (the abstract collect ion of objects that model a telephone call). The core also supplies foundational functions: placing calls, answering calls, dropping calls, and so forth.

The package extensions add the objects and behaviors needed to either implement specific applications or add specific capabilities. There are six extension packages in version 1.1:

JTAPI's call model is the edifice on which reside all the extension pack ages. The call model is a collection of abstract objects that are defined as interfaces in the core package itself. Key objects within the model are the provider (which provides the actual telephony service) and the call object. Associated with each call object are zero or more connection objects, each of which acts as a link between a call object and an address object (e.g., a phone number). Lastly, the telephone object models the actual phone hardware, and the telephone connection object models the relationship between a call and a physical endpoint.

The behavior of a telephone system is decidedly asynchronous. Calls originate and arrive at unanticipated times. It is therefore important that the application have some means of dealing with unpredictable events.

To cope with this asynchrony, JTAPI defines observer objects. In function, they are not unlike the listeners of the Abstract Window Toolkit (AWT). If you're familiar with Windows programming, you might recognize an observer as being a kind of callback. An application can associate an observer to an object (e.g., a call object), and the observer will be called whenever an event takes place that causes the observed object to change state. In this way, the "upper-level" application can be informed of events from below -- where the control of the actual phone hardware is taking place.

JTAPI is meant to address a wide range of telephony applications and accomplishes this thanks largely to its object-oriented roots. The architecture of a core package supporting various extension packages lets developers extend the support in whatever direction their application demands, without breaking the "spirit" of JTAPI.

However, what we call telephony applications is a rapidly expanding sphere. Bill Gogesch, a technical staff member at JavaSoft, admits that JTAPI probably doesn't have all that is required (or, perhaps, has more than is required) to support, for example, mobile phones. JavaSoft recognizes that mobile telephony is a unique enough app lication that it would be best served by its own API. For this reason, you can expect to see a version of the TAPI for mobile phones that will complement JTAPI in the near future.


Up to the Javatalk section contentsGo to previous article: Poet Goes JavaSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network