You must login to post on this forum, if you are not already registered please fill in the registration form.
If you appreciate the work the OpenQuote team is doing, please give the project a "Thumbs up" on SourceForge, thank you.
- Index
- » System Developer Forums
- » System Development Discussion
- » Reporting in OpenQuote requirement
Reporting in OpenQuote requirement
Reporting in OpenQuote requirement
With this topic I want to propose an idea and start a discussion around how reporting functionality can be added to OpenQuote. Any proposed solution should be able to support future developments in OpenQuote functionality, such and Policy administration with MTA and Renewal behavior.
Matt
Re: Reporting in OpenQuote requirement
Proposed Solution
My proposal is to create a data warehouse facility in OpenQuote. This would be an incredibly simple implementation of a Data Warehouse and would not be intended to replace fully functional data warehouses. The purpose would simply be to provide an easy way to present OpenQuote data (which by default is held as XML in blob data fields) for either reporting purposes, or for extraction to other systems (including dedicated data warehouses).
The OpenQuote Data Warehouse would be populated either by a scheduled job, or at run-time for each individual transaction that occurs in OpenQuote (a transaction being a policy status / data change - quote, write, MTA, renewal etc.). Basically a snap shot of the OpenQuote policies is taken and saved in the data warehouse, these snap shots will have an expiry date associated with them, all but the most recent policy versions having the expiry date set.
If OpenQuote is configured to update the data warehouse at run-time, each time a transaction occurs on a policy, a copy of that policy will be written to the data warehouse.
If OpenQuote is configured to run the scheduled job for updating the data warehouse, the job will copy all quotes/policies in OpenQuote across to the data warehouse in one go. All previous non-expired policies recorded in the data warehouse will have their expiry dates set at this point.
When a policy is copied across to the data warehouse data elements will be held in the data warehouse as individual fields in a table (not as XML). Three types of data element exist:
Generic - data that is generic across all products (i.e. premium, broker etc)
Product Specific - data that is specific to an individual product (i.e. house construction)
Not Required - data that is not required for the data warehouse.
Data that is specified as generic, will be put in a data warehouse table that has policy data from all products in it. Data that is specified as being Product Specific will be placed in a data warehouse table designed specifically for that product. Data that is not required will simply not be exported to the data warehouse. By default data should be consider as Product Specific.
When the export process takes place, if a transaction occurs for a product that has not previously had data transferred to the data warehouse, a product specific table will be automatically created to hold any Product Specific data (minimal fields initially - transaction reference, expiry date etc.).
If the export process comes across any data fields that require transferring to either the Generic or the Product Specific tables, but have never previously been transferred, then a new field is created to hold that data element.
Clearly policies are not a flat structure, so nested elements will require their own data warehouse tables to be created as required.
I need to flesh these ideas out a bit, and some areas need further clarification and detail, however hopefully this makes a good starting point for discussion.
Matt
Re: Reporting in OpenQuote requirement
Would it be worth listing the reports we want to support? And include in that list a description of the report, how it should be distributed and who should have access to it - maybe a wiki page?
I'm also wondering if there is a requirement for product specific reports as well as generic reports? I can imagine some products wanting breakdowns by geographic region - just one example.
This also feeds into the product manager discussion. There is already a requirement listed on the product manager page related to reporting.
We should also consider broker specific reports.
And potentially different reporting formats (examples might include PDF, CSV, XML, Excel).
Re: Reporting in OpenQuote requirement
There are two types of companies that I can think of who may use OQ:
1. Small, who just want default reports from a system.
2. Larger, who want to access the raw data so they can build data cubes and pivot tables, they then can distribute these to the business users.
I guess my proposal for a 'Data Warehouse Lite' is really most suited to the second type of company, where you want to provide specialist data analyst and warehouse type people easy access to the raw data (preferable in a traditional relational DB structure). You want them to access the data without them impacting (either performance or integrity) the live OpenQuote system. These companies will probably also want to import the data into thier own warehouses where it can be merged with other systems data for company wide reporting.
For the Smaller users, purhaps we could look at creating pivot tables for them directly form OQ, allowing them to create thier own custom reports in Excel - rather than trying to second guess everyones needs (and product design).
Matt
Re: Reporting in OpenQuote requirement
Looking at the Data Warehouse idea in more detail, it could be used to implement a much more generic policy transaction export facility in OpenQuote.
Each time a transaction (change to a policy) occurs, OpenQuote could place a copy of the XML for that policy into a "Completed transactions queue". Once this is done, OpenQuote does not need to have any more interactions with the queue. This queue could, if performance impact on the main OpenQuote database server is a concern (unlikely), be held on a completely separate database server.
Other applications would be able access this queue, using the data for their own purposes. For example, a "Plugin" (for want of a better word) could be created to take data from the queue and populates a Data Warehouse. It would also be possible to populate back-end systems (such as policy admin systems) or to send transaction messages via EDI for example using this approach.
The queue mechanism is good because for a number of reasons:
i. From an implementation perspective it is fairly basic.
ii. Runtime impact on OpenQuote would be minimal.
iii. Opens up the system for integration with third party applications.
iv. Does not impact OpenQuote product design or functionality.
Things that need to be considered:
i. Security - can't just let anyone / anything access the queue.
ii. Control - data must not be deleted from the queue before all applications that require it have accessed it.
I am setting up an area on the Wiki to discuss new features, requirements and design, I will post here to let people know when the area is up and running.
Matt
Re: Reporting in OpenQuote requirement
I like the sound of this. It certainly simplifies things considerably, and frees us from having to perform a xml->relational mapping which is very likely to be a painful exercise for a totally generic solution.
It would be reasonably trivial for OQ to place messages into a JMS point-to-point queue from which plugins can pick them up and do whatever is necessary in order to integrate with external data warehouse solutions. We could provide a sample plugin which simply retains the quote XML pretty much as is, and use something like Birt (http://www.eclipse.org/birt/phoenix/) to generate some sample reports.
Birt might also be a good approach to canned reports like broker bordereau - especially if the report templates sit in Alfresco thus making them available through OQ's normal eclipse integration.
Re: Reporting in OpenQuote requirement
Excuse my lack of knowledge when it comes to JMS, but would the publish and subscribe model be better than the point-to-point? From what I understand point-to-point model is for posting messages to a single receiver, for which you need to know where that receiver is, whereas the publish and subscribe model allows you to post a message to a single location that can then be read by multiple receivers, without you having to know who or where they are (I'm assume that security can be put in place around this area).
Also, is JMS only compatible with J2EE apps, or can apps based on alternative technologies (ie .NET) work with it?
Thanks
Matt
Re: Reporting in OpenQuote requirement
There might be an argument for supporting both point-to-point and pub-sub, but for different reasons.
For communication to a data warehouse or back end, point-to-point is really the only option because it guarantees that messages will be delivered even if the recipient isn't listening when the message is queued. Whereas pub-sub guarantees to deliver messages only to those who are listening when the message appears in the queue. Plainly for data warehouse and backend services guaranteed delivery is essential.
JMS is a standard which defines how Java interacts with message queue implementations - much like JDBC defines how Java interacts with databases. Most J2EE servers bundle a queue implementation, JBoss included. But in a large organisation an OQ installation might well be configured to use some other commercial queue implementation, e.g. IBM's Websphere MQ, or Oracle's AQ.
Dick.
Re: Reporting in OpenQuote requirement
OK, that makes sense. So, to check I understand correctly, for point-to-point message deliverly, OpenQuote would simply need a configurable list of receivers (thier queue addresses) that we would post to. If a new app came along that also required the messages, we would simply add the queue address for that app to our list.
Re: Reporting in OpenQuote requirement
I think we might even make it a bit simpler than that. We simply guarantee that all quotes will be placed into a single point-to-point queue. If an organisation wants their deployment of OpenQuote to feed more than one back office system, they can implement something which splits our one feed into many.
I think this makes sense because any organisation big enough to want to do this will also, probably, have their own mechanism - which may not involve queues at all in the JMS sense. So a single feed gives them the minimum that they need and also keeps things nice and simple.
Dick.
Re: Reporting in OpenQuote requirement
Documentation comes is several shapes:
- Small Documents (1-10 pages): Certificates, Acknowledgements, Pamphlet, Quote document, Debit Note ...
- Large Documents (10+ pages): Policy wordings, Novels ...
- Data Mining: Reports
Each could easily have their own solution.
Small and large documents may have similar tools (e.g. BIRT) that can support multiple report solutions, although it is current a "fat-client" solution. But then I think all document output solutions are by nature.
When it comes to Data Mining though we need to be more careful in that we should try to ensure that we create a clear data universe, and how this can be configured, as opposed to a solution with one or other tool.
Re: Reporting in OpenQuote requirement
Another thought.
As the solution we offer covers more and more of the insurance world the data we need to capture and persist will extend.
The various artefacts that we need to produce to support that will need to be addressed: screens, alerts, sub-processes etc. Should this not be the point at which we design a base template for a document?
Data mining is a future concern but are we sure we want to try and find a solution to something we haven't finalised yet?
If not shouldn't we be considering all the other items we haven't yet done?
Also, Data mining tools are not a documenting/reporting tool. This is a mistake many companies have made. Data mining universities are in fact used by reporting tools.
Mark
Re: Reporting in OpenQuote requirement
I think you're right - we do have a need to generate different types of documents and their nature makes different technologies appropriate. Although it might seem counter-intuitive, we would involve the project in more effort by trying to use a single document technology for all of our document needs than we would by supporting different technologies for different types of document - and at times for different types of products.
For example, Apache FOP is good for generating quotation documents, policy documents etc. (especially as we can inherit documents and document features from other products), but would you want to define reports using it? I'd say no. You would end up having to implement a lot of functionality that something like BIRT already has.
On the subject of data mining, again I agree. There isn't much we can say at this point - or probably any point - about what information OpenQuote might be used to capture or about how data might be mined. The only sensible approach at this point is to define an interface via which external tools can get at OpenQuote's data - without saying anything about what the data is. That, I think, is the approach we've arrived at here.
That isn't to say that we don't already have applications for this kind of data - we have reporting requirements which can nicely be met based on this approach. These will be totally usable and useful reports, but we would expect larger organisations to use their own systems and implement their own extraction mechanisms using our interface.
Dick.
- Index
- » System Developer Forums
- » System Development Discussion
- » Reporting in OpenQuote requirement
Board Info
- Board Stats:
- Total Topics:
- 141
- Total Polls:
- 1
- Total Posts:
- 517
- Posts this week:
- 2
- User Info:
- Total Users:
- 5393
- Newest User:
- Nalderop
- Members Online:
- 2
- Guests Online:
- 29
- Most Active Users:
- dickanderson, matthew.tomlinson
- Online:
- Unellchieltdp , Anddausx
Forum Legend:
Topic
New
Locked
Sticky
Active
New/Active
New/Locked
New Sticky
Locked/Active
Active/Sticky
Sticky/Locked
Sticky/Active/Locked






























