Claus Seitter is a senior engineer at MUENCHENER VEREIN Versicherung, a Munich-based insurance company. He is
part of the team that developed the underlying architecture and reference
implementation for MVV's UltraLightClient-based applications.
Four years ago MÜNCHENER VEREIN insurance started developing new front-end applications with RIA technology. Several applications are live today, each of them delivering a highly efficient graphical user interface (GUI) to both internal and external users, and allowing both online and offline execution. The key to these multiple operating scenarios is the combination of a Service-Oriented Architecture (SOA) with UltraLightClient, a Java-based RIA library. This marriage of SOA with RIA enables separating functional code from infrastructural code in such a rigorous way that operating scenarios are entirely configurable.

The goal of the new front-end applications is to combine existing, formerly isolated functions of legacy applications into end-to-end business processes. All insurance products that allow for an automated workflow will be integrated and handled with the new applications. A consistent user interface (Fig. 1) standardizes all business processes: the user starts each process by selecting a product and a business transaction. Depending on this selection and the role of the user, the system then triggers backend applications and workflows from a large pool that includes numerous legacy applications. Fig. 1, for example, shows the new data entry interface of the workflow that generates a quote for a life insurance product. Fig. 2 and Fig. 3 show the same process at a later stage that illustrates the entitlement to insurance benefits.


Choosing the technology for this new generation of applications was challenging. There were demanding and seemingly conflicting requirements: on the one hand, the IT department wanted a server-side J2EE architecture, because the applications needed to be easily installable and accessible both within the company and over the Internet. On the other hand, the users needed highly interactive, rich UIs because they are experts that cannot accept the action-wait-reload cycle of HTML applications. Finally, some of the applications must be installable offline, such that field agents could use them when visiting customers.
An evaluation showed that only Rich Internet Applications (RIA) offer the potential to combine these characteristics. Within RIA, there are three client-side technology options: JavaScript/AJAX, Java, and Flash [1]. MÜNCHENER VEREIN decided to use Java for three reasons:
UltraLightClient is a Java library that transfers the API of Java’s standard UI library Swing from the client to the server [4]. The developer can use Swing in a server-side programming model, where the library resolves the issues of code distribution and communication between client and server. As a consequence, development is substantially simplified. A further bonus is that applications can be deployed in numerous configurations without changing the code. MÜNCHENER VEREIN has leveraged the latter benefit to realize applications that run both in multi-user server configuration and offline in stand-alone configuration.
The technology that enables this flexibility is intriguing: the starting point is UltraLightClient’s thin-client architecture with a Java-based presentation engine. This architecture allows shifting the borderline between client and server: in a typical J2EE configuration, the client is merely a UI rendering engine that is independent of an individual application, similar to a browser (Fig. 4). The application runs on the server, including the presentation logic.

In a stand-alone configuration, the application can be deployed together with the rendering engine and run within a single Java VM. In this case, client/server interaction is simulated (Fig. 5).

Leveraging these configuration options requires that you realize a backend architecture that also allows both server-based and stand-alone deployment. Fig. 6 shows the solution chosen: a Service-Oriented Architecture (SOA) with portable components. The primary advantage of this SOA is that most components can be deployed unchanged either on the server or on the PC. Only the Application Adapter, the Resource Adapter, the Legacy Applications, Standard Applications, and the Persistency Service exist in two versions. In this way, the entire suite of applications can be made available both online and offline.

After five years of development with an average team of 15 developers, about half of the desired new applications are in production. The first have been rolled out more than two years ago in server-based configuration for internal employees. For nine months now, applications have been delivered to the 6000 field agents that can use them both over the Internet and in stand-alone configuration.
Experience has shown that RIA technology is truly an ideal partner for SOA. RIA enables both high-end UIs for professionals that require top-notch usability and cost-effective multiple deployment configurations. Combined with an SOA approach that separates functional code from infrastructural code, RIA enables unprecedented leverage of applications and streamlining of business processes across different business units and user groups.
[1] Marc Domenig: Rich Internet Applications and AJAX – Selecting the best product, www.javalobby.org/articles/ajax-ria-overview
[2] Thomas Studer: Rich Thin Clients in der Praxis – am Beispiel von Canoo ULC. Java Magazin 1, 2005.
[3] www.canoo.com/ulc
[4] Bernhard Wagner: Server-Side Swing for Rich Internet Applications, http://javadesktop.org/articles/canoo