Lessons Learnt

Jun 25, 2008 at 1:24 PM

I have been putting together a POC for my company based for an Acord compliant solution. Half way through,the IVC software factory project was released. I then went through my solution integrating some of the good work done here. I thought it only fair to share some of my experiences.

The object generator provided was brilliant, especially having the source which did save me a load of time.

The service interface, although not being Acord compliant as I understood it, did make life simpler.

Having objects of the same type in different namespaces did give me some problems. For example, I would retrieve a list of policies through the CommonInsurance interface which would give me CommonInsurance.CommlPolicy.QuoteInfo, I would then use the CommercialInsurance interface to retrieve the details, but this would not accept a CommonInsurance.CommlPolicy.QuoteInfo but a CommercialInsurance.CommlPolicy.QuoteInfo. This resulted in some tedious mapping work.

A particular requirement of mine is the ability to hide the back end service provider (we have several different underwriting systems on various tehcnologies). To do this, I have added a routing component based on line of business and security profiles. Code lists from varying back ends (open enums etc) has no explicit solution. I used a RESTful service for codelist retrieval, supplementing the provided Acord enums. Made some minor adaptions to the providerfactory to allow multiple interface providers in a dictionary.

The biggest and by far the most painful problem I had was integrating the IVC software factory backend with the IVC Software factory front end. Silverlight only supports basicHttpBinding and hence could not bind the the back end, I had to strip out the faults and some minor other parts from the back end to be able to bind. Although not strictly following SOA prinicpal I generally like to share my back end entities with the front end for various practical reasons, but could no do this in this instance as the CLRs are different and you could not reference a non SL library from an SL application and a non SL application to a SL library. And as we could not use fault types with SL, and the poor auto generated proxies (exceptions don't make it to the UI thread), it resulted in a lot of copying and pasting.

But after some work I have it all working now for commercial insurance with several underwriting service providers. This is a major result for us as now as all our systems will talk the same language and we can open up our Acord compliant interface to new external business (we have also succesfully integrated Biztalk with the solution), as well as a common UI for all our staff......result!