To illustrate an advanced implementation of the Keyple Java middleware for Calypso-based ticketing systems, CNA has released a full ticketing demonstrator under the Eclipse Public License version 2.0.
Ticketing Service & repository | Keyple integration | Smartcard readers involved | Optimization targets | |
---|---|---|---|---|
Calypso card | Calypso SAM | |||
Remote sales & reloading | distributed Calypso applications
| Integrated on the distributed client side | Integrated on the distributed server side |
|
Validation | standalone Calypso terminal application based on Keyple | Locally embedded | Locally embedded | Limit the number of card and SAM commands during the card transaction |
Control |
Stand-alone validation and control terminals
The architecture of validation and control tools is very similar, with only the ticketing transaction differing:
- For validation, the terminal checks that a valid ticket is present, records an event and authorizes access.
- For control, the terminal checks that a recent validation event is valid. The ticketing data format is just an example defined for demonstration purposes.
Terminal application | Language | OS | Supported devices |
---|---|---|---|
Validation | Kotlin | Android | Any Android device having
|
Control |
These demos can be installed on various Android terminals such as Coppernic, Famoco, Flowbird, or Bluebird using the plugins provided by CNA.
Validation scenario:
- An autonomous validator on Android-based ticketing terminal that seamlessly starts a secure session when a contactless card is detected.
- The machine checks the last transport event and the available ticketing contracts.
- If access is granted, a new event is written.
Control scenario:
- A hand-held inspection terminal on Android portable terminal that allows an operator to check the content of a card.
- The application verifies the validity of the last transport event regarding the current time and location.
- Finally, it displays the result.
Remote sales and reloading distributed service
This demo requires a client/server environment:
- On the server side, the back-office includes a Java server application to process the ticketing sale and manage the Calypso secure session to reload contracts in remote cards. The server manages a pool of Calypso SAM using the PC/SC plugin and the Calypso SAM resource manager.
- On the client side, any terminal with a contactless reader provides the means to a customer to make the ticket purchase. The Calypso card commands are fully managed by the back-office ticketing server using the Keyple Distributed solution.
Terminal application | Language / folder | OS | Supported devices | |
---|---|---|---|---|
Sales / Reloading server (Keyple based) | Java | Windows, Linux, macOS | Java Server with PC/SC SAM readers | |
Sales / Reloading client | Keyple-based | Kotlin | Android | Android NFC phone |
Keyple-less | Kotlin | |||
.NET C# | Windows | Windows PC with a PC/SC reader | ||
| Windows, Linux, macOS, Android, iOS |
|