MultiValue data with InterSystems Caché

This article was originally published in VSJ, which is now part of Developer Fusion.
Part of the reason for the vibrant success of the MultiValue (MV) database market is that the application development environments that support it are very productive and have applications that are rich in functionality that users continue to value highly, with the consequence that the MV market is now worth around $3 billion annually.

The success of the MV market is widely attributed to Richard Pick, who developed what was commercially released as the Pick Operating System. As the name suggests, MV databases are designed to accept multiple values in a single database field.

With the recent release of InterSystems Caché 2008.1, the object database now ships with out-of-the-box support for the MV development environment, so providing a fully featured modern environment for database developers.

The MultiValue data access in Caché means that MV data structures, data files, and data dictionaries can be loaded without changes into Caché’s multidimensional data engine. There’s a utility that you can use to import MV backup files, so you can import all your files and metadata into Caché to recreate the same account structure as your original system.

Once you’ve imported your MV files, Caché provides a number of ways for you to access the data. Caché MultiValue Query Language (CMQL) is the Caché implementation of the standard MultiValue query language, providing the familiar commands such as LIST, SELECT and SORT. In most cases, you’ll be able to use CMQL with existing queries and dictionary definitions without needing to modify them. CMQL makes use of the standard Caché SQL engine, so gains the advantage of all the facilities it provides such as index definitions and optimisations. Caché also provides MultiValue dictionary support; developers can access the information within MV dictionaries using the Caché MultiValue Query Language. You can also do an analysis of an MV dictionary and use the analysis to create Caché object classes that mirror the dictionary information. This means you can access the data using either object oriented techniques or via standard SQL.

Figure 1
Rhyme Systems is able to better service its clients by pooling Caché and MV development teams

Developers who have expertise in MVBasic can still make use of that knowledge, as InterSystems has added MVBasic as a new language in the Caché language compiler and run time environment. The language has been extended to support object programming, and is interoperable with Caché’s other languages. One advantage the support for MVBasic offers is that Caché Studio provides a very sophisticated and easy to use GUI development environment.

One company already reaping the benefits of using the MV environment is Rhyme Systems. Rhyme Systems is part of 3i Infotech and provides solutions and services to the asset management industry. The asset management systems created by the company are used by four out of the top five UK private asset managers, and other clients include some of the country’s largest financial services firms. 3i Infotech is a global Information Technology company which provides technology solutions to over 500 customers in more than 50 countries across five continents.

Rhyme has both Caché and MV development teams, and one of the new options the latest version gives the company is the ability to pool resources from both teams so they can offer a better service to clients. As Stephen Cruse, Team Leader and System Analyst at Rhyme told us, “key to this is the fact our developers can use their MV skills within Caché, which means both sets of skills are valuable and continue to be used. This pooling of resources makes it much easier to plan our future developments. We’ve also been able to add MV facilities to our web development spheres.” Rhyme’s systems are used by four out of five of the top brokers in the UK, and a number of those systems are MV based. The developers are now able to expand the applications to make use of the facilities of the Caché object database without losing any aspect of the MV facilities. While Rhyme had been offering web-based applications for the MV systems before moving to Caché, the developers are finding that Caché provides a much faster and easier way to add web-based facilities.

One factor that can prevent developers from changing to a new and better development environment is the trouble involved in moving existing applications. Stephen Cruse points out that because Caché provides a good set of migration and import tools, it’s possible to import an entire application from other MV environments into Caché in a couple of hours. “80 to 90 percent of a system is purely a matter of choosing the appropriate import option, and the tools will do the work for you. Obviously, as you make use of the extra facilities offered by the new environment you will need to do some work, but getting a like for like copy is very easy.”

Another plus point, according to Stephen Cruse, is the ability to use current MV Basic code within the front-end code. “The support for areas where we already have knowledge means we can make use of developers existing back – end skills within the front-end.”

Stephen Cruse points out that the clients who use the applications wouldn’t be particularly interested in having applications converted unless there were specific benefits on offer. “Basically, companies are not going to spend money moving to a new application unless there’s a marked improvement in some aspect of the system. We’ve found improvements in performance of between 5 and 15 times in our tests, and the experience of our customers matches those test results. We have some very large data files, and the way Caché stores those means it is remarkably quick at finding both indexed and non-indexed items. Our data files are also quite complex – one file holds over 600,000 items, each with around 200 attributes, and Caché lets us search on any attribute very rapidly. In addition, the file management is all done automatically, which saves a lot of problems. The size of our data files can vary quite markedly in a short period of time; for example, if a company is setting up a rights issue, the file can grow very quickly. Because Caché handles all the file management, we no longer need to worry about sizing the files ourselves”.

Figure 2
Thanks to Caché’s migration tools, importing an application from other MV environments into Caché is simple

The developers at Rhyme Systems are in the process of testing the InterSystems Zen Ajax framework that’s a feature of Caché for developing. Existing applications had a GUI interface, but Stephen Cruse says that the developers are finding that Zen makes it very easy to create a visually rich display for users. “There’s a lot more that can be done with it compared to our previous development environments, and it makes it very easy to create applications such as dashboards. This helps our sales teams show potential customers just how an application might look; if someone wants a dashboard, we can put an example together in the presentation to show them just how it might appear”.

A further advantage identified by Stephen Cruse is the broad support Caché offers for different ways of using hardware. “Caché takes care of all the network management aspects, so that applications can be spread over linked computers. This means customers can choose to run some elements on Windows boxes, some on Unix or Linux, whatever works for them, and everything can be clustered. This provides much simpler and cheaper expansion options for customers. We don’t have to say ‘you’ll have to buy a machine like this, with this size of disk and amount of memory’. Instead, we can tell customers that they can expand as required, and that we can cluster the servers whether the machines are spread across the city, country, or across continents. It’s a big selling point. We can cluster a set of small servers, probably using hardware the customer already has. The cluster can be set up to have mirrored disks with automatic failover recovery, and the customer knows the application will really run 24/7. Because Caché offers all those benefits, we can provide them easily for our customers”.

So why did InterSystems extend Caché to include MV functionality? Simple, they’ve bought a new lease of life to existing MV applications and the prospect of further expanding their rapidly growing community of Caché Application Partners.


Kay Ewbank, the editor of Server Management magazine, is an experienced database analyst who has followed the development of database technology from dbase through to today’s modern relational and post relational databases.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Programs must be written for people to read, and only incidentally for machines to execute.”