Automotive – Customisation

The Volvo Car Corporation (Volvo) is one of the car industry's strongest brands, with a long and proud history of world-leading innovations. Founded in Gothenburg, Sweden, by Gustaf Larson and Assar Gabrielsson, the first car left the factory on 14 April, 1927. Today, Volvo offers an extremely diversified range of cars which changes frequently. To handle it all the Common Product Authorization Master – CPAM – operates as the common master for lots of product information at Volvo Cars. Working with array structured product data, CPAM is an incredibly sophisticated software application developed by Fujitsu Sweden* using Dyalog for Windows.

*The developers of CPAM have since then formed the company Aplensia.

When a customer considers buying a Volvo they have the option of configuring their very own car. A wealth of options is presented for each individual model ranging from colour, engine, gearbox, navigation system, stereo equipment, interior décor and much more. In fact, cars can be configured in billions of different ways. The complexity of these variations stem from the fact that Volvo operates in a broad international market where each country has different needs and customer preferences.

Volvo car

In any one year alone Volvo handles 50 markets, 6 factories, 13 models, 20 running changes, 5,000 basic cars, 500 different options, thousands of restricted options (combinations that are not allowed), 400 features for each configured car, 25,000 assembly parts and 2,000 assembly parts for each configured car.  In addition to this, there is a further requireme_nt to handle cars for specific requirements such as executive cars, taxis, vans a_ind police cars as well as special offerings.

The product information is used throughout the company as well as by partners and customers. The data must, therefore, be uniformly available for public product information, sales, ordering, planning, logistics, production, distribution, procurement, product engineering, finance and certifications.

It goes without saying that such a high level of information demands that the data must be easy to reach, correct and up-to-date. Because of the different uses of the data it must be available in different forms, allow for different views and enable selected content. Product presentation needs overviews of the products, ordering needs detailed configuration rules and logistics needs Bill of Materials (BoM) – just to mention a few examples.

The simplest way to maintain such a vast complex data structure is to hold everything in one common master system which can then be accessed by services, such as web-services. The advantages of this approach are immediately obvious when you consider that the data is very complicated, changes often and is needed by many different users and systems.

Success through Dyalog and Thinking in Arrays

There had been several attempts to translate the engineering rules to something useful for ordering and configuration but – they all failed.

The key software developer and systems architect behind Volvo's solution is Lars Wentzel of Aplensia. He explains, "Using APL and the Array way of thinking made us successful. It delivered fast results and allowed us to create a flexible solution which could be adapted to the needs of the business and the users. The resulting solution is called Common Product Authorization Master – CPAM.

"Keeping everything in one Master Server ensures that all the data are always up-to-date and the logic and the interpretation of the information is kept consistent and hence the same for all users. By avoiding any copies of the data you also avoid having to deal with different versions which are bound to differ from each other from time to time. It also minimises the code required for handling data – because, by using services, the code is only needed in the master. This saves costs!" Lars points out.

Substantial and Tangible Business Value

The business value of using CPAM as a Master to Volvo is very substantial and tangible:

  • All operations see the same data. Previously ordering, product presentation, planning and logistics all worked with different data.
  • Data is always up-to-date. This means there are fewer errors when orders reach production.
  • Misunderstandings are minimised.
  • The manual time used for translation is removed.
  • Updates are more efficient.
  • Validations of the product offering are now possible. This increases the quality.
  • It's faster – and easier – to get the product information.
  • By replacing the nightly batch runs the direct IT costs have been lowered.
  • New functionality and use of data that simply wasn't possible before has been introduced.
  • Last – but certainly not least – it's a cheap solution!

Lars says "Keeping everything in the same system does, however, also present some challenges. The information must be reliable – correct and up-to-date – 24 hours a day, 7 days a week. It is necessary to make it available in a flexible way since obviously different users want to view and use the data in different ways. Flexibility also implies that you can create new functions and services all the time as and when the users need them. Finally, performance is of very high importance – users have an expectation of getting hold of data just as quickly as if it was their own data on their own local machine."

Core CPAM Functionality

The main components of CPAM are:

  • The basic translation of product configuration data from the engineering system.
  • The publishing of data as array structures in the Master Server.
  • Interactive browser functions used for updates and analysis.
  • On-line web-services for other systems and interactive functions.
  • Batch services, for example, for creation of the BoM for the full production program and the translation and transmission services where data is sent to other systems – usually according to pre-defined schedules.

According to Lars, "Currently the system has more than 800 interactive users and it communicates with 20 other systems. It is written with 100k lines of APL code – of which 75k lines have no comments. It facilitates 150 interactive browser screens using Microsoft IIS, ASP and HTML. It pipes data into 223 different web-services, of which 47 are external for other systems. It runs 20 different batch services and has 9 different send-outs of data. Daily it facilitates 110 batch services and 30 on-line transactions per minute, so it's a very very busy system indeed. The CPAM data covers basic cars (standard model variants), colours, upholstery, options and features, restrictions (limitations of possible combinations like engine and gearbox), changes of configuration data over time, market offerings like special option packages and technical data such as weight, measurements, fuel consumption, performance and accessories and part numbers for the BoM."

Translating Complex Rules using Arrays

"We had to find a way to create regular translation of the complex rules from the legacy engineering system. We did this by using some of the principles described by the Danish company Array Technology. They invented the idea of describing logic as positive combination arrays. We picked up the general idea to use arrays as restrictive rules. For example: If you have 17" brakes you can not have 16" wheels. The seat upholstery should match the colour of the steering wheel and the dashboard. If you have a navigator you need audio equipment for sound. If you have a radio button on the steering wheel you cannot have the simplest steering wheel. In this manner we found a way to manage combinations of features/functionalities and define if they're allowed or not," Lars explains.

CPAM Restriction Functionality

"By using Array-based logic it is possible to verify the data to get it fully consistent, meaning that it is possible to describe all combinations. It also means that you can see and analyse information from different angles and facilitate high performance and flexibility when using the data. In CPAM we take the engineering rules – which are described by sequential rules, tables and restriction. We investigate all the possible combinations and create array structures accordingly which describe all possible combinations in a very compact form. The array structure is actually sets of several hundred connected (nested) arrays. Using arrays this way is a revolution because you can now use the data for multiple purposes such as creating different presentations forms, you can translate data and analyse them from different angles – bottom-up or top-down. The added benefit is a really high operational performance."

"Let me give you an example of how using arrays can be a super help," Lars says. "We have a list of unique features – which for a car model is 1400 such as engine, tyres, rims and so on. We have 57,000 car orders. What features are associated with each individual order is represented by a Boolean matrix. Then we have the rules – 5,700 actually. A rule is a combination of features such as Engine D5 and Gearbox automatic. Each rule has a maximum of five features. These are represented by five matrices where a rule is a specific row in all the matrices. In order to match all this up we have programmed a small function which performs a rule match with a loop that runs 5 times. The execution time for this function is 8 seconds, which boils down to 0.15 ms per order. This figure, by the way, is using Dyalog version 12.0. Using version 12.1, where the Boolean handling has been improved, the routine is 10 times faster and effectively we can create a BoM in 0.02 ms, per order. Pretty impressive!

Master Data Server

"The Master Data Server is an ordinary Windows Server with Dyalog sessions. All communication takes place through TCP/IP using SOAP protocol. It's our own implementation, and we're using Dyalog's Conga and TCP/IP object. It all runs in one master session where all requests arrive. Once arrived, a request is forwarded to a free slave who does all the real work. The slaves all keep important and frequently used data in the working memory. The users of these services are systems of quite different kinds. For example, the Microsoft IIS server is handling the user interactive part of CPAM. These services are very different in size and complexity. The factory system validates every single order against CPAM and it gets a complete feature list for each order. The planning system requests all combinations of markets and basic cars in order to be able to set correct production volumes for each week. Further to this, we have batch sessions, which handle all of the batch operations. The batch services are triggered by requests coming in from Websphere MQ or FTP. They're then put into a batch queue. When available, a batch starts in one of the batch sessions and when processing is completed, the reply – with data – is sent back in the same manner it arrived through MQ or FTP. A typical batch service is to create the BoM for a full production program. The send-out operations typically also run in batch and either occur at scheduled times or are triggered by an interactive user."

CPAM Public Configuration

The Microsoft Windows server, where Dyalog is running and the data handling is done, also runs the Microsoft IIS server. The IIS server facilitates the use of screens by the interactive users and it communicates with the data server through web services. The interactive screens are very different by nature and have some special solutions which make CPAM quite unique. The information is mostly handled in tables and the tables can be very large. Not only are they used for viewing data, they're also used for updates. They appear very much like spreadsheets where you can scroll both horizontally and vertically while row and column headers are fixed.

Flexibility Means Several Things

Lars continues, "As mentioned, there is a big requirement for functional flexibility. The users ask for new services and new interactive functions every week. From this point of view CPAM is a very lively system where we constantly implement new services, without compromising what's already up and running. Having this flexible and dynamic approach is really important when you're working with a Master system. But flexibility actually means several things. First of all, we need to be able to deliver data of different sizes and forms and be able to customise data to specific user requirements or to fit specific systems. Secondly, we need to be able to deliver the information in different ways. Services are of course the preferred method, but the ability of other systems as well as general thinking means that data is also "pushed" out on a regular basis. Thirdly, it must be quick and easy to create new services.

"CPAM started as a small scale system and over the years we have let the solution grow as it became known, trusted and valued. I am utterly convinced that any Master system should use this approach." Lars continues "In our case Dyalog has been of the utmost importance in facilitating and accomplishing the sophisticated solution we have today. Performance and response times are important success factors and what is making it successful is Dyalog, the Array approach and the use of memory resident variables. A couple of examples aptly illustrate what we have achieved: Creating a BoM for a production program was a 6 hour night batch – CPAM now does this in 15 minutes. On-line validation was not an option before we created CPAM. In terms of performance it now takes 100ms to check and create a feature list for a car specification (order) and the batch check and feature creation for thousands of car orders takes 1 ms per order using the APL many-to-many fast search capability.

"I have seen several other systems with much lower complexity where the development took a long time but still didn't achieve the good results we have in terms of high performance. This is why I will always advocate that APL is superior for this type of application. CPAM has not only shown an effective way to create a Master Data System, it has also shown how useful a Master Data System is for important company information. It is definitely a model solution for other types of information and for other companies and organisations to consider. The Master Data System approach is a fantastic way for complex organisations to accomplish a much better information structure and make the entire organisation work more efficiently. The flexibility, performance and effective tools provide obvious advantages. Last – but certainly not least – it's fast to create and can handle very complex problems whilst still being flexible – at a low cost," Lars concludes.


Download this case study as a PDF