<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">CISL -Core Insurance Service Layer</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Michael</forename><surname>Ilger</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">AMOS Austria</orgName>
								<address>
									<postCode>1140</postCode>
									<settlement>Wien</settlement>
									<country>AUSTRIA, WWW home</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Michael</forename><surname>Halwax</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">AMOS Austria</orgName>
								<address>
									<postCode>1140</postCode>
									<settlement>Wien</settlement>
									<country>AUSTRIA, WWW home</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">CISL -Core Insurance Service Layer</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">515E67DD038AB202AC85252AC100C339</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T03:43+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>API</term>
					<term>REST</term>
					<term>Insurance</term>
					<term>Model</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Core Insurance Service Layer (CISL) is a project to create a common but extensible service layer catalog for insurance processes. It follows the REST principles to define services and a datamodel which are exposed by new or existing insurance backends and that can easily be consumed by front end applications. The project provides a REST Meta-Model and tools to facilitate the adaption of CISL and the reuse across organizational units within Allianz.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Large corporation, such as Allianz Insurance, want to standardise processes, software and infrastructure to benefit from synergies <ref type="bibr" target="#b10">[11]</ref>. Allianz wants to give customers continuity in the user interfaces they see and to enable sharing of user interface components among different countries. To achieve this a project to create an abstraction layer called Core Insurance Service Layer (CISL) was initiated. The project has the goal to define reusable data objects and operations focussed on the insurance world, while also offering concepts and tooling which can be applied in other scenarios.</p><p>Unlike many other standards which are based on SOAP, this service layer uses REST services. The idea behind this is to use some features which are important aspects of HTTP and REST, therefore making the whole process more suitable for the main goal: providing a fast and easy way to provide fresh user interfaces to existing back end applications and scaling them out vertically.</p><p>To get a better perspective on the difference between this approach and existing solutions such as BiPro <ref type="bibr">[13]</ref> or Acord <ref type="bibr" target="#b11">[14]</ref>, it is very important to focus on the goals. While the two aforementioned standards rely on SOAP and the concept of larger service calls, the concept of REST allows us to put a much stronger emphasis on smaller resources and the connection between those. This leads to a scenario, where we can have reuse of individual resources and still provide simple, dynamic integration.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Project Organization and Outcomes</head><p>The original idea for the project started in 2013, when a couple of Allianz entities were faced with a problem: They had to provide a new user interface based on some new corporate identity and they had to already prepare the migration to a new insurance system. The new insurance system would already provide a user interface, but this would not be usable with their legacy systems, so this would mean two separate migration steps and possibly also three separate user interfaces in a very short time.</p><p>Shortly after that, in early 2014, the project was started with a CISL implementation based on the Allianz Business System (ABS). ABS is a software platform for insurance backends and is developed by Allianz in Austria. ABS is used world wide, as part of a plan to provide standardised software and processes for insurances. The focus of the project is allow to have a separation between the user interface and the underlying logic. Originally the project team was staffed with three developers and analysts from the pool of AMOS (Allianz Managed Operations and Services) Austria resources working on the insurance system ABS. Soon the project was split into a separate entity dealing with the standardisation of the interfaces and therefore also giving other systems more influence on the development of the standard. A second unit, part of the ABS development team, continues to implement the interfaces defined by the CISL team.</p><p>As of 2016 many different countries, including Austria, Switzerland, Italy and many more, have CISL in their road map, while Austria already has an implementation based on CISL in production.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">The Integration Scenario</head><p>The general integration scenario surrounding CISL is relatively simple. It will separate a back end system from the front end system. One of the main ideas behind this is, that those two systems will evolve at different speeds. Especially in banking or insurance companies the underlying 'systems of record' generally evolve rather slowly, the reason for that being the stability of the system and the fact that the sheer size of systems do not allow an quick rewrite.</p><p>While it generally is not considered a problem if the underlying logic runs on and older system (as long as software and hardware updates are still available), this is not true for user-facing front ends. While there are still some expert systems around using traditional host-style text input, these systems are getting fewer and acceptance for such solutions is going down. End customers expect even more than that and modern client side javascript applications provide usability and customer experience which is muss better than anything which was possible in the past -and all that across a variety of different types of devices.</p><p>Being able to focus on the front end alone and not having to deal with details of specific business logic allows you to create new user interfaces at a fraction of the cost and faster than previously. CISL allows you to do exactly that, as can be seen in figure <ref type="figure" target="#fig_0">1</ref>.</p><p>The central part of figure <ref type="figure" target="#fig_0">1</ref> represents the core of the API, creating an abstraction between front end and back end systems. While the implementation of the services on the insurance platform is out of scope for now, we want to focus The solution for this is to provide a complete application, called CISL application in figure <ref type="figure" target="#fig_0">1</ref>, which consists of a server side element and a client side element. Those two elements are tightly coupled and are not using any standardised communication format, besides the general concept of HTTP and REST which is also typically followed here.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Challenges</head><p>The project deals with a couple of different topics which have been around for a long time in academia and in practice. Starting with the data standardisation point of view, there is the important question about how individual resources and services are cut and then the follow up question regarding how they can be extended. These problems existed back when EDIFACT (with a syntax based on separator characters) was created, existed when XML-based standards were created and still exist today. The goal is to create elements which are highly reusable, but still leave room for customisations if needed -even if too much customisation leads to fragmentation and therefore can destroy a standard.</p><p>One very simple example of cases where you need to be able to deal with different systems which handle data differently would be 'gender'. Traditionally supporting exactly two values here would be enough, but there are movements which go towards allowing more than those two traditional values. Even if the underlying standard supports more than the two traditional values, it does not mean that all the systems implementing this standard also support all the values and that a front end system should support all those values.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">The REST Metamodel</head><p>As CISL is used in the context of multiple platforms and shared among stakeholders with various skill levels. The project decided to use a metamodel that serves as a common base for communication between business analysts and developers. This model defines the abstract syntax, the possible elements and the relations between them and is used as a base for model driven development <ref type="bibr" target="#b6">[7]</ref>.</p><p>Many frameworks that support the definition of REST APIs evolve. Prominent ones, that have also influenced CISL and it's REST meta model, are Swagger <ref type="bibr" target="#b3">[4]</ref>, RAML <ref type="bibr" target="#b2">[3]</ref> and WADL <ref type="bibr" target="#b4">[5]</ref>. The CISL Project using an early version of of RAML in 2014 <ref type="foot" target="#foot_0">1</ref> . Due to limitations in tool support, modularisation, expressing extensions and complex object oriented representations the project decided to introduce the meta models RADL (REST API Definition Language) and RCORE (based on EMF Ecore).</p><p>RADL and RCORE are based on the modelling framework EMF <ref type="bibr" target="#b8">[9]</ref> and also provide a textual representation based on Xtext <ref type="bibr" target="#b7">[8]</ref>. The CISL model provides all the information necessary to support the structural modelling of a REST API <ref type="bibr" target="#b0">[1]</ref>. In addition to the IDE integration (highlighting, code completion, validation) the project provides a generator that is used for server-code generation and to create API user documentation.</p><p>With the use of Xtext it is possible to support IDE Integration like highlighting, code completion, validation and code generation. To extend distribution possibilities an export of the model to Swagger and Microsoft Excel is supported as well in order to reach also developers as well as non-technical stakeholders.</p><p>Figure <ref type="figure" target="#fig_1">2</ref> describes a class diagram that gives an simplified overview of the most relevant RADL and RCORE model.</p><p>RCORE is an extension of Ecore and in its textual representation built on top of Xtext. It provides better support for annotations that may be used to specify constraints like datalists. A datalist is a list of options that are valid for a specific field, that is determined via a REST call at runtime.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Workflows</head><p>Basically everything we do is based on workflows and interaction. Most data exchange formats are based on the assumption that they are used for the integration of (automated) systems and therefore also expects all the information to be available from the start. When we think of a system based on user interaction this assumption does not work. Taking the relatively simple case of a car insurance shows us what types of information are required: The minimum information consists of at least one person (the owner; optionally also a driver or other roles), a vehicle and an underlying insurance product. In a user interfacedriven scenario this means that you could end up first selecting a product, then providing the owner's personal data and at the end choosing a car from a list. Having all this functionality combined in one single back end call would result in limited customer experience as the user would have to fill out all the information first, before finding out that he is not allowed to buy this product due to age restrictions. It would still be possible to duplicate the logic which checks for the age restrictions, but this would again cause heightened software maintenance costs and reduce reusability. The approach taken here is to rely on something which has been around as long as the internet: Hyperlinks. While the anchor tag in HTML is a very central part of the web, there are no such standards for APIs, even though the concepts have been around for a while now in HATEOAS, or Hypermedia as the Engine of Application State. This basically allows you to put meta information into REST resources which points the consuming application into different directions for a workflow. In case of our above example this means that the workflow could be specified in the following (simplified) way from a REST point of view POST /quote -creates a new quote; this returns a quote object which could also be retrieved using a GET requests and the given ID (e.g. GET /quote/4711)</p><p>The resource representing that quote would also contain a section pointing to different other URLs specifying certain functionality. In our case this section would also include the hint that a POST to /owner or a POST to /vehicle would be allowed.</p><p>POST /quote/4711/owner -adds an owner to the quote created above. This can subsequently be read or modified using other HTTP verbs.</p><p>A subsequent GET to the quote resource would now return a different result. The owner is already present, therefore the POST link to the owner would not be offered anymore.</p><p>The same concept would be used to create a vehicle in the next step, which would then leave the quote in a different state, where neither of the two links would be available anymore. Instead the resource could now show a couple of different links: Buy and Save.</p><p>It is important to remember here, that this is all done on the level of the underlying API and not directly in the user interface. It would be better if the user interface designer was already aware of the possible different actions that are available, but generally it is not required to know all the possible steps in advance. It is also worth noting that this would allow you to react to subtle differences in workflows in different scenarios, where for example one system would require the owner to be entered first and one system would require the vehicle to be entered first.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Reusability and Extensibility</head><p>Though CISL API should be used as is, it important that it remains extensible (for example to adhere to national regulatory). CISL describes the common parts that are designed and shared by the project team, but a partner may introduce an extension module to support non global requirements. To extend the core there are two possiblities:</p><p>add new (sub)resources -introduce resource in parallel to the existing ones (the URI has to be unique)</p><p>inheritance -use inheritance in the representation, typically this approach would be chosen when adding properties and having an is-a relation ship</p><p>The CISL API defines REST resources to expose core business functions (as described in globally defined processes) that can be used in CISL Applications. A major challenge lies in finding the right granularity for the definition of resources:</p><p>If we design the API around fine grained resources, we would end up with a chattier API for consumer applications. On the other hand, if we design the API based on very coarse grained resources (de-signed to do everything) there will not be enough variations to support all the API consumers' needs and the API may become too difficult to use and maintain. <ref type="bibr" target="#b5">[6]</ref> Since various frontend specific requirements are expected, tailored interfaces, that would be hard to specify globally, are rarely used. This aligns with the goal to define a general interface that separates the fast evolving CISL applications from the stable and slow adapting core insurance platforms.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="8">Conclusion</head><p>Overall the approach in CISL is to combine multiple different approaches into one new framework, combining the advantages and prior art into one coherent solution. This includes the definition of service calls based on REST instead of the more traditional SOAP-based web services which have been around for a long time. Using REST brings two advantages with the typical format (JSON) being usually much smaller than XML messages <ref type="bibr">[12]</ref> and with the full support for HTTP verbs and hyperlinking.</p><p>Two more topics, which still need more thorough work, are reuse and tooling. While it is very simple to define services which return some data, it is not that easy today to describe their functionality as a model and use this as the basis for actual implementations. In the recent past many new attempts were made to find a good solution, but this is nowhere near the quality of such features in standards like XML Schema. These concepts of reuse of existing components as well as the possibility to extend the functionality, if the standard does not provide everything that is needed, are the most important aspects of the future work in this area.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. CISL Consumer Producer</figDesc><graphic coords="3,134.77,134.76,345.82,255.11" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. RADL and RCORE</figDesc><graphic coords="5,134.77,134.77,345.83,400.50" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Listing 1 . 1 .</head><label>11</label><figDesc>Company package package com . a l l i a n z . d i r e c t . company import com . a l l i a n z . c i s l . b a s e . D a t a l i s t c l a s s Company { S t r i n g name @ D a t a l i s t ( Degree ) S t r i n g [ ] d e g r e e s } RADL is based on WADL [5] but optimized for the integration with RCORE. It provides the means to define resources, methods, parameters and representations that are based on RCORE. Listing 1.1 provides a sample RADL textual definition to get companies (based on an optional query parameter company name) and post a new company on the collection resource defined by the path /companies . package com . a l l i a n z . d i r e c t . r e s t import com . a l l i a n z . d i r e c t . company . Company r e s o u r c e s company / companies | Companies { g e t | getCompanies ( q u e r y S t r i n g companyName ){ r e t u r n Company [ ] } p o s t | postCompany ( Company company ) { r e t u r n Company } }</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">Since the RAML 1.0 (released in</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2016" xml:id="foot_1">), it provides initial support for object oriented representations and new extension concepts.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Modeling restful applications</title>
		<author>
			<persName><forename type="first">Silvia</forename><surname>Schreier</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Second International Workshop on RESTful Design, WS-REST &apos;11</title>
				<meeting>the Second International Workshop on RESTful Design, WS-REST &apos;11<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="15" to="21" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">REST: Architectural Styles and the Design of Network-based Software Architectures</title>
		<author>
			<persName><forename type="first">Roy</forename><surname>Thomas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Fielding</forename></persName>
		</author>
		<imprint>
			<date type="published" when="2000">2000</date>
		</imprint>
		<respStmt>
			<orgName>University of California, Irvine</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Doctoral dissertation</note>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<ptr target="http://raml.org/" />
		<title level="m">RAML -RESTful API Modeling Language</title>
				<imprint>
			<date type="published" when="2016-05">May 2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title/>
		<author>
			<persName><surname>Swagger</surname></persName>
		</author>
		<ptr target="http://swagger.io/" />
		<imprint>
			<date type="published" when="2016-05">May 2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Web application description language (wadl)</title>
		<author>
			<persName><forename type="first">Marc</forename><forename type="middle">J</forename><surname>Hadley</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2006">2006</date>
			<pubPlace>Mountain View, CA, USA</pubPlace>
		</imprint>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">Prakash</forename><surname>Subramaniam</surname></persName>
		</author>
		<ptr target="http://www.thoughtworks.com/insights/blog/rest-api-design-resource-modeling" />
		<title level="m">REST API Design -Resource Modeling</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">Thomas</forename><surname>Stahl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Markus</forename><surname>Voelter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Krzysztof</forename><surname>Czarnecki</surname></persName>
		</author>
		<title level="m">Model-Driven Software Development: Technology</title>
				<imprint>
			<publisher>John Wiley &amp; Sons</publisher>
			<date type="published" when="2006">2006</date>
		</imprint>
		<respStmt>
			<orgName>Engineering, Management</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">Implementing Domain-Specific Languages with Xtext and Xtend</title>
		<author>
			<persName><forename type="first">Lorenzo</forename><surname>Bettini</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><forename type="first">David</forename><surname>Steinberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Frank</forename><surname>Budinsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Marcelo</forename><surname>Paternostro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ed</forename><surname>Merks</surname></persName>
		</author>
		<title level="m">EMF: Eclipse Modeling Framework 2.0</title>
				<imprint>
			<publisher>Addison-Wesley Professional</publisher>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>2nd edition</note>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Harald Generation of Business Process Models for Object Life Cycle Compliance Business Process Management</title>
		<author>
			<persName><forename type="first">Jochen</forename><forename type="middle">M</forename><surname>Küster</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ksenia</forename><surname>Ryndina</surname></persName>
		</author>
		<author>
			<persName><surname>Gall</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">5th International Conference</title>
				<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Zornitza Prodanoff Comparing Performance of Web Service Interaction Styles: SOAP vs</title>
		<author>
			<persName><forename type="first">Martin</forename><surname>Grossman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Richard</forename><forename type="middle">V</forename><surname>Mccarthy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jay</forename><forename type="middle">E</forename><surname>Aronson E ; Pavan Kumar Potti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Sanjay</forename><surname>Ahuja</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Karthikeyan</forename><surname>Umapathy</surname></persName>
		</author>
		<ptr target="http://www.bipro.net" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Conference on Information Systems Applied Research 13</title>
				<meeting>the Conference on Information Systems Applied Research 13</meeting>
		<imprint>
			<publisher>Brancheninstitut Prozessoptimierung</publisher>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
	<note>Commerce Adoption in the Insurance Industry Issues in Information Systems</note>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<ptr target="http://www.acord.net" />
		<title level="m">Acord Data Standards</title>
				<imprint/>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
