Channels Sample
The Channels sample demonstrates the behavior of Java Card technology-based logical channels by showing how two applets that interact with each other can each be selected for use at the same time.
The Channels sample also demonstrates the use of
ExtendedLength APDU.
The Channels sample mimics the behavior of a device connected to a
network service. A connection manager tracks whether the device is connected to the
service and whether the connection is local or remote.
While it is connected, the user's account is debited on a unit of time basis. The debit rate is based on whether the connection is local or remote.
The sample employs two applets to simulate the behavior of logical channels:
-
The
ConnectionManagerapplet manages the connection. -
AccountAccessorapplet manages the account.
When the user turns on the device, the ConnectionManager applet is
selected. The ConnectionManager implements the
ExtendedLength interface to handle APDUs with larger data segments
such as the ones used for key exchange in the sample. Every unit of time the terminal
sends a message containing the area code to the card.
When the user wants to use the service, the AccountAccessor applet is
selected on another logical channel so that the terminal can query the balance. The
AccountAccessor can return the balance only if the
ConnectionManager is active. The ConnectionManager
applet sets the connection and tracks the connection status.
Based on the value of an area code variable, the
ConnectionManager determines whether the connection is local or
remote. AccountAccessor uses this information to debit the account at
the appropriate rate. The connection is disabled when the user completes the call or
when the account is deleted
Follow one of these sets of instructions to run this sample: