You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Table of contents

Persistency management

Persistency management is the term used in Blueriq to address everything that has to do with persisting (or saving, storing) information and later on retrieving, displaying, updating and deleting this information. In many systems, persistency management is all about databases and SQL-statements. In Blueriq, it is not. We deliberately made the technical way in which data is stored and retrieved not the business engineer's concern, let alone the end user's concern. In stead, Blueriq provides an intuitive canvas where a business engineer can design what information to persist when, also a few services to create, read, update and delete information and a service to display information objects. What happens behind the scenes is, as mentioned before, not of interest to the business engineer.

Experienced Business engineers might use the Dossier Manager (Dossier plugin) for Persistency Management. The functionality described in this design guide is aimed to replace this Dossier Manager.

The following terms play a role within persistency management in Blueriq and will be discussed in this design guide:

  • Aggregate definition
  • Entities, attributes and relations
  • Create, read, update and delete aggregates
  • Lists of aggregates
  • Standard meta data
  • Custom meta data

In future versions, the following functionality will be available and subsequently described here:

  • Non-singleton aggregates
  • Versioning
  • Precise aggregate definition
  • References between aggregates
  • Authorization

The functionality of aggregates is released iteratively, which means that with each release more functionality will become available.

Aggregates

Organizations usually offer more than one product or service to their customers. All these products and services have their own cases, so multiple cases can be running concerning the same customer. To get a good overview of a customer there is a need for shared storage of information, which is shared among the several cases. Ta accomplish this, the concept aggregate is introduce in Blueriq.  See the example below.

Shown above are three different cases that are all part of a single business model of a fictitious insurance company. The first case concerns a medical insurance, the second a dental insurance and the third a home insurance. These cases use and share information. The medical and dental case both use the medical information and information about persons, whereas the home insurance makes use of the person information and information about houses. These information objects are called aggregates in Blueriq and will typically exist of a couple of entities with their endogenous relations.

The reason that different aggregates can be created has to do with design, reuse as well as performance. It makes no sense to use information about a house when deciding about a dental insurance. On the other hand, it is not wanted that a medical insurance case and a dental insurance case each use their own medical information. Finally, unnecessary information used in a case will result in unnecessary actions that will have a negative impact on performance.

Aggregate definition

So, aggregates are used to combine information that belongs together. In Blueriq, information that belongs together is modeled in an entity. Aggregates simply combine entities.

An aggregate typically consists of a couple of entities with their endogenous relations. At the moment, only singleton entities can be added to an aggregate definition, but all non-singleton entities that are connected to the singelton are part of the aggregate as well. Also, at the moment it is not possible to create a precise aggregate definition, excluding for instance a few attributes and relations. Shown below is the design of the aggregate Person information.

As mentioned before, at the moment an aggregate definition can contain only singletons. The design of the aggregate Person information will therefore only consist of entities Person and CurrentEmployment. However, the entity Person has relations with the non-singleton attributes Job and Household, so whenever a person is stored, his or her jobs are also stored, as well as the person's household situation.

In future versions, aggregates can also consist of non-singleton entities

Working with aggregates

In order for an end user to work with aggregates in cases, it must be possible that these aggregates are displayed in a list. This list functionality is very similar to the list functionality that is already available for instances, tasks and cases and is implemented as a Blueriq container.

To let the business engineer create meaningful aggregate lists, custom metadata attributes can be added to the aggregate definition. A custom metadata attribute is an attribute that is not necessarily part of the domain and is therefore defined by an expression. This expression may however only use relations and attributes that are directly or indirectly part of the aggregate definition. In the example above, an aggregate list could contain custom metadata attributes like name, age, city of work or total number of persons in the household. The aggregate list cannot contain a custom metadata attribute blood type, since this is part of the medical information aggregate and not the person aggregate.

By letting the business engineer create different aggregate lists for different purposes, the end user will work with only the aggregates that are relevant for him. Since only a specific set of data from these aggregates is retrieved from the database while displaying them - and not all aggregates completely all the time - this will boost performance. In case of a relatively small amount of data, it is possible to store and read all information all the time and display all aggregates in a single list. However, this approach is not scalable and therefore not advised.

Aggregates can be created, read, updated and deleted. For these specific actions, services are available in Blueriq.

 

  • No labels