Serve clients' specific protocol requirements with Brazil, Part 6
In this conclusion to his series on Brazil, Rinaldo Di Giorgio
demonstrates how to use the following technologies with the Brazil
toolkit: Jini, BeanShell, and the Java API for XML Messaging
(JAXM). You can also use Brazil with many other technologies,
including Xalan-Java, servlets, Velocity, and LDAP (the lightweight
directory access protocol); Di Giorgio shows you how to get started
with those as well. He'll also discuss the larger purpose of this
series: to demonstrate how to use Brazil to support new
technologies and APIs in ways that API developers might not have
considered. For example, you would not commonly consider using the
above technologies in a Web server. By understanding how these
technologies work, you can better determine the right tool for your
job.
Rinaldo Di Giorgio,
July 2002
Serve clients' specific protocol requirements with Brazil, Part 4
This fourth installment of Rinaldo Di Giorgio's Brazil technology
series introduces you to multicast via JRMS (Java Reliable
Multicast Service). Multicast is a protocol that supports
simultaneous message transmission to multiple recipients, without
having a point-to-point connection with each recipient. In this
article, Di Giorgio presents some JRMS examples that you can use in
your own network, and provides sample code for a Brazil handler
that creates a weather multicast channel. (2,400 words)
Rinaldo Di Giorgio,
April 2001
Serve clients' specific protocol requirements with Brazil, Part 3
In Part 3 of the Java Developer Brazil technology
series, Rinaldo Di Giorgio shows how the Brazil server transmits
weather data to wireless clients. Using three different wireless
access environments -- Palm, Openwave (previously, Phone.com), and
the Java 2 Micro Edition's Connected Limited Device Configuration
(CLDC) and Mobile Information Device Profile (MIDP) solution -- he
demonstrates how to develop wireless applications with minimal
programming on the server. Some of the clients he discusses in this
article require the use of other languages, such as WML, and Web
clipping knowledge. See Resources for more
on these subjects. (2,800 words)
Rinaldo Di Giorgio,
January 2001
Serve clients' specific protocol requirements with Brazil, Part 2
In this second article in the Brazil technology series, Rinaldo Di
Giorgio will demonstrate how to use XML to facilitate data exchange
between applications. Specifically, he'll explain how you apply XML
to exchange weather data. He'll also introduce scripting languages
that you can implement to efficiently and quickly produce
XML-tagged data. Brazil supports the Python and Tcl scripting
languages as handlers, and can support added languages like Perl.
The examples presented here work with the Brazil Web server, but
can also be ported to other servers like Apache and iPlanet. This
month, he focuses on defining and generating XML data via BSL, Tcl,
or Python. (2,900 words)
Rinaldo Di Giorgio,
October 2000
Serve clients' specific protocol requirements with Brazil, Part 1
In his last column, Rinaldo Di Giorgio discussed how to support X10
devices through a Brazil handler. This time, he begins a series
that will utilize the Brazil Web server as an experimental
application server. The Brazil sever can deliver data to clients
requiring such specific protocols or technologies as the simple
HTTP via URL programming interface, the Java Reliable Multicast
Service protocol, Java Message Service, and Jini. He will also show
you how to use applets, JavaScript, and the Brazil Scripting
Language to rapidly create Webpages. (3,000 words)
Rinaldo Di Giorgio,
August 2000
How handlers work in Web-accessible home automation
The Brazil server project at Sun Labs began as an HTTP stack with
an extremely small footprint. It was originally designed to provide
a URL-based interface for smart cards, so that smart cards could be
accessed easily from an ordinary Web browser. Along the way, it
grew to provide a more flexible architecture for adding URL-based
interfaces to arbitrary applications and devices. In previous
JavaWorld articles, Rinaldo DiGiorgio and others have
discussed the advantages of embedding Web servers in applications.
This column offers a complete example for providing Web-accessible
home automation using X10. (3,000 words)
Rinaldo Digiorgio, Colin Stevens and Stephen Uhler,
May 2000
Use software components to deploy applications with Java Cards
This article provides a broad overview of how OpenCard and the
smart card URL Programming Interface (UPI) -- both of which have
been discussed in prior JavaWorld articles -- can be used
to design an application, load it onto the Cyberflex Access card,
and deploy it on more diverse desktops than any other architecture
currently available for smart-card deployment. This information
will allow you to easily use Java Card technology in Web-based
applications requiring sophisticated security and privacy, as well
as make applications such as portable form filling more convenient.
Rinaldo and Mike will also provide information on how to load a
Cyberflex Access smart card, produced by Schlumberger, and give a
brief introduction to CAP files, which will eventually standardize
the dynamic downloading process described in this article.
(3,000 words)
Rinaldo Di Giorgio and Mike Montgomery,
November 1999
Learn to use software components to deploy applications using Java Cards
This article will provide a broad overview of how OpenCard, and the
smart card UPI URL Programming Interface -- both of which have been
discussed in prior JavaWorld articles -- can be utilized
to design an application, load it onto the CyberFlex Access card,
and deploy it on more diverse desktops than any other architecture
currently available for smart-card deployment. This information
will allow you to easily use Java Card technology in Web-based
applications requiring sophisticated security and privacy as well
as in convenience applications such as portable form-filling. We
will provide some additional information on how to load a CyberFlex
Access smart card produced by Schlumberger and a brief introduction
to CAP files, which eventually will standardize the dynamic
downloading process described in this article. (2,200
words)
Mike Montgomery,
October 1999
An introduction to the URL programming interface
The demand is increasing for universally available networks and
devices for personal and corporate use. For example, wouldn't it be
useful to be able to get a file from your home system in Australia
while you were on a business trip in California? Many of the
current approaches use proprietary solutions that do not scale or
make effective use of the Internet. A workable solution must
provide strong authentication, offer optional encryption of the
established session, and operate without requiring special
permission to reconfigure firewalls. Additionally, the solution
shouldn't make use of large applets that only work on corporate
LANs, as some users may access the system from low-speed modem and
wireless connections. This article shows you how to build scalable
implementations that provide solutions to these problems. It
describes an architecture -- the URL programming interface (UPI) --
that utilizes Java technology to glue together legacy
architectures, new devices, and the Internet securely and at a low
cost. (5,500 words)
Rinaldo Di Giorgio,
September 1999
An instrumentation network for weather data on the Web
This article is the first in a series of articles that will examine
how Java can be used to improve and reduce the cost of collecting
realtime data on the Web. Over the next few months, several
architectures, including HTTP posting, applets, applications, RMI,
Jini, and multicasting, will be discussed. The articles will focus
on weather data, using the low-cost 1-wire weather station from
Dallas Semiconductor. This month, authors Rinaldo Di Giorgio and
Brian Hindman turn their attention to techniques for distributing
realtime data to Web clients -- in this case, data collected from
weather stations -- using the browser of your choice. Weather
stations can just as easily be replaced by any other device
producing data that can be read and processed by a proxy and made
available on the Internet. (5,600 words)
Brian Hindman,
May 1999
Write OpenCard services for downloading Java Card apps
Loading Java Cards can be a confusing process requiring proprietary
development tools that work on only one platform. Sun Microsystems
is developing a standard in this area for Java Card licensees. But
what do you do in the interim: wait for the standard or use
proprietary tools? This article demonstrates easy methods for
loading Java Cards using loading information published by various
card manufacturers. It also shows you that Java Card development
can be platform-independent and can make use of 100-percent-Java
development tools. In this article, Rinaldo and guest contributor
Mike Montgomery provide two card services for loading Java Cards --
one for Schlumberger's CyberFlex 16K and one for Dallas
Semiconductor's Java iButton. (The latter has always supported
cross-platform development.) This article is intended for any
developer looking to use Java Cards from manufacturers that support
published interfaces for downloading their cards. The article
assumes the reader has some knowledge of smart cards, Java Cards,
and OpenCard. (3,000 words)
Mike Montgomery,
February 1999
How to write a CardTerminal class for simple and complex readers in an OpenCard environment
In October, the 1.1 release of the OpenCard Framework was
announced. There were a number of changes to the previous release,
version 1.0, in the area of card terminals. These changes greatly
simplify programming of card terminals and provide significant
performance enhancements. OpenCard Framework 1.1 differs from 1.0
in the card terminal area in that exceptions are more concise; the
CardID, which served a dual purpose in 1.0, now serves the single
purpose of identifying the card using the ATR; event handling has
been simplified; and the APDU classes have been made reusable to
improve performance. Also, many of the convenience methods of
CommandAPDU have been removed in order to contribute
to slimlining the framework.
In order to provide developers with a good library for
developing card terminals, this month's Java
Developer contributors offer two card terminal
implementations: one that uses RS232 signals to control the reader
and one that uses a packet protocol to send data back and forth to
the reader, which decodes it and forwards it on to the card.
(4,500 words)
Rinaldo Di Giorgio,
January 1999
How to write OpenCard card services for Java Card applets
OpenCard provides an API that allows different card readers,
different platforms, and different Java Cards (as well as non-Java
Cards) to be used by the same Java code with no change. With
OpenCard you can run Java smart card applications in your office,
on your set-top, and on your personal data assistant -- and, of
course, on Windows platforms as well.
In this article Thomas and Rinaldo describe what must be done to
provide OpenCard support for a smart card in general and for a Java
Card in particular. They first present an architecture for Java
Card card services for OpenCard, then move on to a step-by-step
tutorial, showing how a card service for a given Java Card applet
can be implemented and how an application can then use that card
service. (4,200 words)
Thomas Schaeck With Rinaldo Di Giorgio,
October 1998
Restricted-channel multicast in Java
Jason Scherer with Rinaldo Di Giorgio,
September 1998
Java gets serial support with the new javax.comm package
One of the most popular interfaces on a PC is the serial port. This
interface allows computers to perform input and output with
peripheral devices. Serial interfaces exist for devices such as
modems, printers, bar code scanners, smart card readers, PDA
interfaces, and so on. Sun's JavaSoft division recently has made
available the javax.comm package to add serial support to Java.
This package provides support for serial and parallel devices using
traditional Java semantics such as streams and events. In order to
communicate with a serial device using a serial port on a host
computer from a Java application or applet, an interface is
required. This API allows you to transmit and receive data from
external devices connected to your serial port. In addition, the
API provides a complete set of options for setting all of the
parameters associated with serial and parallel devices.
This article focuses on how to use javax.comm to communicate
with a serial device based on RS-232; discusses what the javax.comm
API does and does not provide; and offers a small example program
that shows you how to communicate to the serial port using this
API. We will end with a brief discussion of how this API will work
with other device drivers, and also go over the requirements for
performing a native port of this API to a specific OS. (2,700
words)
Shivaram H. Mysore and Rinaldo Di Giorgio,
May 1998