Banco do Brasil Turns to Java
Many of the earliest adopters of Java have been financial institutions, which see Java as a fast, clean way to let customers access data. 
One of the most substantial examples is Banco do Brasil. They used Java to open up a traditional Visual Basic, client/server application to fifteen million customers, through 80,000 client banks. Now those customers can access their financial information and perform transactions over the Web. 
On its host system, Banco do Brasil uses CICS and GRI (an older transactional system similar to CICS). With the new model implemented in this project, these systems are accessed using MQ as the messaging scheme. Also, other existing applications are accessed using a proprietary messaging format over a standard socket connection.
The client-side application is an office- and home-banking applet developed in Java 1.1. It provides the user interface that allows the customer (a merchant, for example) to manage his or her accounts, generate transfer and debit requests, and so forth. Java was used on the client to provide the typical client-side functions of user interface, including entry of the data necessary to process the transactions (account numbers, passwords, etc.), simple data validation (e.g., making sure that numeric data contains only numerals), and so on. The applet is signed so that it can run within Netscape Navigator 4 or IE 4 on the Windows platforms, and use the system capabilities for storing application preferences, reading and writing files (file transfer with the bank is a critical part of the office banking environment), and printing. The UI was developed using VisualAge for Java on OS/2 and Windows.
Java 1.1 was also used on the server as the connection to the back-end systems, with dynamic class loading, object serialization, servlets, and RMI playing a major role in the solution. Java servlets work with Lotus Go WebServer on OS/2 to receive the requests from the client applets, then pass the request via RMI to a Java server, which handles some pre-processing and formatting of the MQ message. It is then passed on to MQ for processing on the CICS/GRI host system. The response is received from MQ by the RMI Server, then formatted for the client and returned to the servlet, which then sends the response to the client.