Application Architecture Overview www.castek.com Insure

advertisement
Application Architecture Overview
Insure3 a Flexible Approach to
Core Processing Systems for
Property & Casualty Insurers
www.castek.com
Insure3 Claims – Application Architecture
© Castek Software Inc. 2006. All rights reserved worldwide.
This document contains information proprietary to Castek Software Inc. which shall not be
disclosed to third parties nor reproduced in whole or in part for any purpose whatsoever, without
the prior written permission of Castek Software Inc.
© Castek Inc. 2003
ii
Insure3 Claims – Application Architecture
Table of Contents
Introduction .................................................................................................................... 1
Architecture Tier Details.................................................................................................... 3
Presentation / Desktop Tier ..................................................................................... 4
User Services Tier .................................................................................................. 4
Business Services Tier ............................................................................................ 5
Enterprise Integration Tier ...................................................................................... 7
Data Services Tier ................................................................................................ 10
Supporting Technologies ................................................................................................. 11
iii
Insure3 Claims – Application Architecture
INTRODUCTION
Insure3 Claims is a module in Castek’s Insure3 Suite of core business
processing systems for Property & Casualty insurers.
The functional scope of Insure3 Claims is to support insurers’ in performing
the core business activities across the full claims lifecycle, from first notice
through assignment, adjudication, settlement and recoveries.
Insure3 Claims also addresses the non-functional requirements associated
with enterprise-scale, mission critical applications: performance, scalability,
reliability, operability and maintainability. These goals drive the use of a
layered architecture and best practice design patterns for application
development.
The Insure3 Claims system is architected as a thin-client, service-based,
Java 2 Enterprise Edition (J2EE) application. This drives a partitioning of the
application into four basic logical tiers, which can be physically deployed on
one or more computers, plus an Enterprise Integration tier to represent
interaction with other existing systems and external service providers.
The diagram below depicts these tiers and the interactions between them:
Presentation
Desktop
Tier
User
Services
Tier
Business
Services
Tier
Data
Services
Tier
Enterprise
Integration
Tier
Presentation / Desktop Tier
The desktop tier represents the user’s computer and their visual interface
into the Insure3 Claims system. In the Insure3 Claims application this tier
runs on the physical computer that the end user is using. A Web Browser
presents the user interface and allows the end user to interact with the
application.
1
Insure3 Claims – Application Architecture
User Services Tier
The user services tier represents the user’s processing model, in other
words, the way in which they perceive their interaction with the system. This
tier responds to user actions and manipulates the objects in the User
Interface (UI) domain model. User actions are mapped to service requests
that can be satisfied by the Business Services tier, and the corresponding
responses are reflected back in the UI model. Finally, this tier is responsible
for rendering the user interface pages that are displayed in the presentation
tier. In the Insure3 Claims application this tier resides in the Web Server
and Web Container that responds to HTTP posts sent from the Presentation
tier.
Business Services Tier
The business services tier represents the application’s processing model.
This tier responds to triggered business transactions, manipulating the
objects in the Business domain model. In the Insure3 Claims application this
tier resides in the Application Server and the EJB Container that receives
service requests from the User Services tier. Additionally, Insure3 Claims
exposes XML Web Services on top of the Business Services components
which facilitate integration with other applications.
Data Services Tier
The data services tier represents the model of persistent information
maintained by the application. This tier responds to requests for data and
manipulates the columns and rows in the relational database tables which
hold persistent data for Insure3 Claims. In the Insure3 Claims application
this tier is supported by the relational database (RDBMS) server which
responds to data requests from the Business Services tier.
Enterprise Integration Tier
The enterprise integration tier represents the focal point for interactions
between Insure3 Claims and other enterprise systems. For the purposes of
this document these systems could be an insurer’s legacy or existing
systems, external application or information service providers, or other
modules of the Insure3 suite. XML Web Services are used as a standard
mechanism to facilitate easier integration through well defined interfaces.
2
Insure3 Claims – Application Architecture
ARCHITECTURE TIER DETAILS
This section provides additional detail on each of the tiers in the Insure3
Claims application: its role, key responsibilities, interactions, design
approach and supporting technologies.
The diagram below depicts the key pieces within each tier that will be
discussed in this section. The numbered arrows indicate the sequence of
flow in processing a user request originating at the thin client user interface
in the web browser.
Presentation /
Desktop Tier
User Services Tier (Web Server)
Business Services Tier (App Server)
2 / 10
Web Browser
HTTP(S)
1 / 15
Application
Servlet
11
W
3/9
Flow Manager
Desktop
Objects
12
HTTP(S)
14
6a
Business
Event
4/8
SOAP
(XML)
JSP
E
B
S
E
R
V
I
C
E
5
Business
Service
Component
(Session
EJB)
SOAP
(XML)
13
Business
Object
Component
(Entity EJB)
Business
Object
Component
(Entity EJB)
6b
6c
Enterprise Integration Tier
Existing
System
External
Service
Data Services Tier (Database Server)
W
E
B
7
S
E
R
V
I
C
JDBC/
SQL-J
E
3
Insure3 Claims – Application Architecture
Presentation / Desktop Tier
The desktop for the Insure3 Claims, in its “out-of-the-box” configuration, is
any electronic device that is capable of hosting Microsoft Internet Explorer
5.5 (or later). The only two requirements for supporting Insure3 Claims thin
client presentation are the ability render HTML and to execute JavaScript.
Scripting is used on the presentation later for proactive field editing,
creating dialog boxes, and other lightweight activities which improve the
efficiency and responsiveness of the user experience. This limited use of
JavaScript has no adverse effect on the bandwidth requirements of the
Insure3 Claims application.
User Services Tier
The User Services tier for the Insure3 Claims requires a Web Server that is
capable of hosting a Web Container, or delegating to a separate Web
Container, that is compatible with the J2EE 1.2 standards for Java Servlet
2.2 and JavaServer Pages (JSP) 1.1.
A servlet acts as the “Front Controller”, representing the Claims application
on the User Services Tier. Front Controller is a J2EE Design Pattern that
ensures all UI interactions with an application enter through a single “front
door”. This allow the servlet to act as a controller for the application,
delegating responsibilities to the appropriate object to meet a user’s goals
and then directing them to the next page in the application flow. For more
information about the Front Controller design pattern please refer to
http://java.sun.com/blueprints/patterns/FrontController.html.
The controller is one part of a standard presentation design pattern called
Model-View-Controller, usually abbreviated as MVC. MVC segregates the
program logic related to creating the presentation (View) from the object
model itself (Model) and the application control logic (Controller). In the
Insure3 Claims application the Application servlet, Flow Manager and
Business Events represent the controller, the Desktop Objects represent the
Model, and the JSPs represent the View. For more information about the
Model-View-Controller design pattern please refer to
http://java.sun.com/blueprints/patterns/MVC.html.
Desktop objects form the User’s object model. The intent was to create a
set of interacting objects that represent the items used in day-to-day Claims
Processing work. The concept of a desktop was chosen as a metaphor to
help derive the proper set of objects with responsibilities useful in handling
claims. Having an object model that reflects the user’s perspective of claims
handling activities supports the user centered design objective of making
personnel efficient and effective in their use of the system.
Insure3 Claims’ User Services tier was created to be a part of a serviceoriented architecture. This service focus influenced the decisions to make
the Desktop objects stateful, and to assign them responsibility for knowing
transactional boundaries. As an example, when taking a First Notice Of Loss
4
Insure3 Claims – Application Architecture
(FNOL), all of the data available regarding an incident is captured. This
information is held in the Desktop until the ‘Submit FNOL’ action is taken.
Once a Desktop object has reached a transactional boundary, it must
forward a request to the Business Services tier. This communication is
made via an XML message.
The Desktop object model is aware of the user’s HTTP Session that controls
its lifecycle. If the HTTP Session times out, the desktop is able to stream its
state into XML format and send this data to a persistent cache. When the
user logs back on to the system, the cache is searched for desktop state
information; if saved state information is located, the desktop will restore
itself to its previous state and the user can continue their work, without
losing any data.
Business Services Tier
The Business Services tier for the Insure3 Claims executes on an Application
Server that is capable of hosting an EJB Container compatible with the J2EE
1.2 standard for Enterprise JavaBeans 1.1. The EJBs in Insure3 Claims are
separated into two business categories: Business Services and Business
Objects.
Business Services are large-grained services representing business process
areas that are supported within Insure3 Claims such as FNOL and
Adjudication. A Web Service typically fronts a Business Service component
allowing easy integration with disparate technologies and platforms. Each
Business Service is implemented as a Stateless Session Bean which acts as
a façade, delegating work to one or more underlying Business Objects. For
more information about the Session Façade design pattern please refer to
http://java.sun.com/blueprints/patterns/SessionFacade.html.
Business Objects represent the core business domain concepts or physical
entities that make up the Claims processing world, such as Claim File,
Incident, Claim, Reserve and Payment. These objects have responsibility for
performing the actual business processing and enforcing business rules. The
persistence of business information in the underlying data store is
accomplished through interaction with the data services tier. Each Business
Object is implemented in the Claims system as an Entity Bean and its
associated Dependent Objects.
The Business Object is designed to be the smallest atomic object in the
Insure3 Claims system. The word atomic in this context denotes that this
object, as a whole, exists on its own as a business concept. A typical
example would be an Invoice. Yes, there are Invoice Line Items, but they
cannot exist without the Invoice. So Invoice becomes a Business Object,
while Invoice Line Item is a Dependent object.
5
Insure3 Claims – Application Architecture
Configuration and Customization Options
Claims components can be tailored to accommodate different business
needs in different ways. The decision as to which approach is provided for a
given feature is based upon a prioritized assessment of configurability
factors such as the frequency of change, who is expected to make the
change, and the ease of performing the configuration.
1) Business Configurability
Areas that are Business Configurable have been specially designed to
allow maximum flexibility for all configurability factors. Business
Configurable areas are architected using one of two patterns:
•
Data-driven. Use database rows to hold the configurable data,
and provide maintenance screens to allow business or system
administrators easy access to modify this information.
Examples of areas where this level of business configurability
is provided in Insure3 Claims include Code Tables, Exception
Messages, Organization Structure and User Profile. Data
configuration is used for these areas because they can change
dynamically and rapidly. These areas need quick turnover
and claims department staff cannot wait for a specialized
technical resource to be available.
•
Integration with a Rules Engine. Insure3 Claims incorporates
a Rule Engine façade that fronts Rules Engine adapters
compatible with the JSR 94 Java Rules Engine API. Through
this common mechanism it is possible to invoke any rule
configured inside these rules engines from the Business
Services tier. For details on the Java Rules Engine API
specification please refer to
http://www.jcp.org/en/jsr/detail?id=94.
Examples of the types of rules that are configurable via Rules
Engine are Incident and Claim File State Transition edits (i.e.
pre-requisite constraints and triggered actions related to
submitting an Incident or closing a Claim File), Fraud
Indicators, and Automatic Adjuster Assignment.
2) Java Extension Points
In some cases there is not a demonstrated need to make ongoing
rapid changes. Areas that primarily require the ability to support
variation between different insurers’ implementations have a Java
Extension Point. A Java Interface is defined, along with a
configurable way to specify which implementation should be used
behind the interface. In most cases there is a default implementation
6
Insure3 Claims – Application Architecture
provided with the core Insure3 Claims product, and it may be
modified according to a customer’s specific needs during system
implementation.
Examples of this level of customization are numbering schemes (e.g.
Incident, Claim File, Claimant and Claim number) and the Incident to
Claim File Transition algorithm. Java extension points are used for
areas of the system that only need to be tailored when the system is
deployed, or areas that change very rarely. In these cases the
system is either not yet in production or the wait for technical
expertise to carry out a change does not negatively impact business
operations.
Enterprise Integration Tier
The Insure3 Claims application does not exist in a vacuum, but rather is one
player in a company’s insurance process. For example, in order for a First
Notice of Loss to be successfully captured, information must be retrieved
regarding the customer’s Policy. This data does not reside inside the Claims
system, but in the Policy Administration System (PAS). As another
example, when a Claim payment is made the details on the payment are
recorded within the Claims system, but a request must forwarded to a
Payment System to produce a check or trigger an electronic payment.
Traditionally, integration efforts have had to deal with connecting two
completely disparate systems, often written in two different languages,
possibly even running on different platforms. This has caused no lack of
troublesome integration issues, and added complexity and cost to
integration efforts.
Insure3 Claims mitigates these issues by using Web Services as the base
technology in all our incoming and outgoing interfaces. Web Services
combines XML as the data encoding standard with HTTP as the data
transport protocol. Since both the client and the service provider can
communicate using XML we remove the typical impedance mismatch
between different languages and different platforms.
A business object, in the Claims application tier, will represent each
enterprise integration point. As an example, the interface with a Policy
Administration System is handled by a component known as the Policy
Admin Bridge. This component acts as a façade for all access to Policy data.
Behind this interface the integration with one or more Policy systems can be
supported by means of a Policy Admin Proxy object. Each proxy implements
the same interface, which allows the core Claims application to communicate
with multiple systems using the same language. It is the responsibility of
the proxy object to properly form an XML request and to send this to the
known address (URL endpoint) for the Policy Admin web service provider.
7
Insure3 Claims – Application Architecture
Insure3 Claims has identified Enterprise Integration points with a number of
other applications commonly found in an insurer’s systems environment
such as Policy Administration, Customer Management, Document
Management, Payment System, and Vendor Management.
As an example, below is a view of the integration design for Policy
Administration which allows for connecting to Castek’s Insure3 Policy as well
as to one or more other existing Policy Admin Systems.
Insure3 Claims Module
Claim
File
Policy
Snapshot
Policy Admin
System Bridge
Factory
Insure3
Policy
Proxy
Other
Policy
Proxy
Insure3 Policy
Web
Existing
Policy Admin System
Web
Snapshots
The term snapshot is used in the Insure3 Claims system to mean a view of
an entity, for a specific business point in time (“As Of” date), taking into
account any backdated changes entered up to a specific system point in
time (“As At” date). Furthermore this snapshot is for a specific usage,
associating to a unique Claims entity.
The snapshot stores the necessary data to allow Insure3 Claims to
“reconnect” to the enterprise integration system and re-request data from
that system. Typically a snapshot will store an internal Claims system
identifier (which is an Object Identifier or OID), an external system identifier
(which is a Globally Unique Identifier, or GUID, composed of a System
Identifier string and a unique Object Identifier string), plus the “As Of” and
“As At” dates needed to get the correct historical view of the information.
The snapshot mechanism allows for minimizing storage of redundant data
inside the claims system in situations where the external system can reliably
be called upon to provide a consistent view of the external data on demand
in real-time.
8
Insure3 Claims – Application Architecture
Caching Enterprise Data
Data that is retrieved from an Enterprise Integration Web Service can be
expensive to obtain both in terms of response time (latency) and processing
demand on the external system. Insure3 Claims has implemented an XML
caching mechanism in order to optimize the retrieval of the same Policy data
over the duration of a “session”. The length of this session is configurable
and can vary by either the source system identifier or another system
appropriate value.
When a request is received in the Enterprise Integration Tier for a business
object (e.g. Policy) that would normally be satisfied through an integration
with another system, the cache is first checked for a copy of the object
based upon its ID plus “As of” and “as At” dates; when a usable copy is
found in the cache, this snapshot is returned to the Business Services Tier,
avoiding the overhead of making the external service call to the source
system. In addition, the cached copy can be used to ensure that data is still
available for claims processing at times when the source system is
unavailable, or when the source data is no longer in the other system.
ClaimsPath and Service Provider Collaborative
Communications Integration
Castek’s ClaimsPath is an application that connects an insurer and all of the
service providers involved in the claims resolution process, from first notice
of loss to approval of invoices. ClaimsPath allows adjusters to connect and
send assignments from their desktop directly to their service provider
partners in the supply chain, as well as track and document all
communications.
Insure3 Claims’ first focus is on supporting the core claims business
processes within an insurer. ClaimsPath could be used to extend claims
management capabilities to include the insurer’s external supply chain
partners, serving as a Vendor Management and Collaborative
Communication module for Insure3 Claims. The design for integration with
ClaimsPath for service provider communications is consistent the other
explicitly identified external interfaces for Insure3 Claims. Castek has
identified the points in claims business process workflows where the core
Claims system will interact with a Service Provider Collaborative
Communications system and an XML service-based interface has been
specified to facilitate these interactions.
System Listener Framework
The Insure3 Claims product, like any enterprise application, has integration
points to outside systems. Some of these integration points are critical to
the successful handling of Claims, while others are optional and customer
specific.
9
Insure3 Claims – Application Architecture
Insure3 Claims is designed in accordance with the general principals of high
cohesion and loose coupling. Basically this implies limiting the number of
integration points that Insure3 Claims explicitly has to know about. The key
integration points expected for typical claims application implementations
are explicitly supported through specific mechanisms in the Enterprise
Integration Tier.
However, individual insurers may have other integration points. The System
Listener framework provides a common standards-based approach to
supporting these additional interfaces to existing systems and external
entities.
Every major business event completed in Insure3 Claims results in a
Transactional XML (tXML) stream being generated. This XML is published
through the System Listener component. The System Listener pushes this
XML stream out to each Subscriber that has been registered. An
implementation team can write custom Listener Subscriber objects, each of
which will be able to use the data in the tXML for its own purpose.
System Listener
Listener
Claims
Component
System
Event
System
Listener
Component
Existing
System
Listener
Listener
External
Service
Data Services Tier
The Data Services tier for the Insure3 Claims is a Database Server that has a
JDBC 2.0 compliant driver and SQL-J support.
SQL-J is a standard for integrating embedded SQL statements into Java.
SQL-J syntax is simpler and more intuitive that native JDBC, plus it has the
additional benefit of creating static SQL. Static queries are processed in a
much more efficient manner than dynamic queries by the database engine.
Also, bind information stored in the database catalog about the data access
paths used to fulfil these static queries will allow a Database Administrator
to further tune the database for optimal performance.
The information persisted in the Data Services Tier is the most critical part
of the system, and corruption is not an option. In order to provide the
integrity needed, declarative Referential Integrity (RI) is enforced at the
database level. These RI constraints enforce the relationship rules between
database tables, including foreign key validation and cascade deletion.
10
Insure3 Claims – Application Architecture
SUPPORTING TECHNOLOGIES
The Insure3 Claims application has been architected using Java 2 Enterprise
Edition (J2EE), ANSI SQL and XML as the primary enabling technologies.
The widespread adoption of these technology standards for the development
of enterprise applications facilitates integration of Insure3 Claims with a wide
variety of Enterprise Application technologies and third party systems.
The layered service oriented architecture and use of recognized best practice
design patterns, as described earlier in this document, improve the
maintainability of Insure3 Claims, and help to ensure that it can cost
effectively be evolved over an extended lifetime in response to changing
business conditions and priorities.
These technologies also allow maximum flexibility in terms of potential for
porting the application easily across different hardware platforms and
vendor implementations of infrastructure software in the event that an
insurer’s preferred computing environment changes over time.
11
Download