What is RAINBOW ?
Rainbow is a banking application fully built on a multi tier oriented architecture based on J2EE technology.
Rainbow is the state of art implementation for the J2EE framework with all its strengths.

Rainbow is the application, which can assure reliable integration either for real time or batch integration and an easy implementation.

Components of RAINBOW


Java Client : This type of client will expose to all Operating systems that support Java as a virtual platform.

All browsers that are java enabled are supported including Microsoft Internet explorer, Netscape, and opera, which are the most common ones.
Mobile Device:
Any mobile compliant device

Http client : This type of client will allow rainbow external users to use Rainbow E-Bank solution which is a group of simple html pages for light usage.

Security :
Implemented based on JAAS technology. So far rainbow supports dynamic authentication, authorization, User/menu permission as well as User/data permission.


Business components:
Rainbow back end contains the core business of Rainbow.

Enterprise java beans are considered as the main building blocks of rainbow back end
They are widely used with the support of SUN latest updates for EJB.
EJBs in Rainbow are used in many ways.
In business components, such like FX order, MM order, Sec order
In Database Object model such like Sec position, Account, Sec Securities
In Rainbow end of day batches (Historical files update) such as financial server, Position server….etc

Though rainbow is using the maximum capabilities of java technologies but there are still some areas which are under migration. Such like switching entity beans from being bean managed to container managed persistence for better performance and more stability.

Application server (Estimation time to switch from weblogic to any other application server is 3 man weeks)
Application server is where we deploy Rainbow so it could be accessed by all clients. Application server is also working as a webserver for Rainbow E-Bank web application.
BEA Weblogic Server version 9.0 is currently the supported platform; also we can any J2EE compliant application servers like IBM websphere, Oracle application server, JBoss ….etc.

Security (Estimation time for finishing this module is 1 man month) :
It will be implemented based on JAAS technology. So far rainbow supports dynamic authentication but not yet authorization.
User menu permission is not yet implemented.


Architecture Features of RAINBOW

Portability (Estimation time to switch from one OS to another is 2 man weeks)

Portability is one of the most attractive aspects of the Java programming language. Applications coded in the Java language can run unchanged in many different types of stand-alone or client operating environments like Unix, Mac OS …etc . J2EE extends the portability benefits of the Java language to the enterprise. It allows you to run applications across different types of J2EE-compliant application servers. Given the large investment most businesses have in client-server applications, J2EE can save companies a lot of development time and money. With J2EE's portability features, there's little or no need to rewrite code for different application servers.
Rainbow is following the J2EE specifications, and accordingly Portability across platforms is one of its features.

EJB (Enterprise java beans) model supports Application Partitioning. Administrators can easily partition an application across multiple servers by deploying an application’s components into several packages, with each package running on its own server. This improves system fault isolation, while increasing application performance and scalability.
EJB components can be packaged as individual enterprise beans, as a collection of EJBs, or as a complete application system.

Multi Channel / Front End
Rainbow supports the following Front ends, all through a “single-point-of-entry gateway to the application tier. Any new Front ends could be added easily as they come up and use the Business services without any Change.
Supported Front Ends are:
            Normal HTML based Front End,
Java applet based Front End,
And Mobile based Front End

Internationalization is the process of planning and implementing products and services so that they can easily be adapted to specific local languages and cultures, a process called localization. The internationalization process is sometimes called translation or localization enabling.

Allows each user a customized and configurable Interface. In conjunction with the Content Management Engine this module can be used to store personal preferences of what is display at particular times.

Native XML
Extensible Markup Language (XML) is a language for documents containing structured information.  it has become an industry standard for delivering content on the Internet.
XML provides a common mechanism for data integration.
Many products currently branded “XML enabled” support XML as an input/output format, that is, they can translate back and forth between their internal data formats and APIs and those of XML. Such "XML-enabled" products clearly have many advantages over their competitors that do not support XML: they can more easily exchange data with other products running on other platforms, and they can be programmed to some extent by means of code written to XML-related specifications
Rainbow supports XML deeply in its internal architectures.
Many of the legacy or Back End systems are built using CICS, COBOL and/or PL/1 programs. In addition, these Legacy systems do specify a lot of messages that needs to be interchanged for proper integration.