In my last blog, I covered the last ten years working with a particular Objectivity customer. In this blog, I want to go back even further, more than 25 years ago to the start of Objectivity.

Let me start by presenting a brief timeline:

  • The 1980s: Object technologies became popular, although even prior to that time, objects had been used in some significant projects. These technologies included languages, modeling, tools and databases.
  • 1989: The Object Management Group (OMG) was formed to coordinate and standardize efforts among multiple organizations in different verticals, all trying to leverage the power of objects.
  • 1996: The Unified Modeling Language (UML) was accepted by the OMG, unifying modeling methods from luminaries like Grady Booch, Ivar Jacobson and James Rumbaugh.
  • 2005: A Task Force was set up with OMG to bring together multiple tools in the Business Process space.
  • 2011: The Cloud Standards Customer Council was created.

So suffice it to say that objects have been around for a long time and are still here.

If we look in more detail at UML, we find that it describes three types of models: Object, Dynamic and Functional. The Object Model (figure 1) represents the static and most stable phenomena in the modeled domain. Main concepts are classes and associations with attributes and operations.


Figure 1 : The Object Model

The Dynamic Model (figure 2) represents a stat/transition view on the model. Finally, the Functional Model handles the process perspective of the model corresponding roughly to process and data flow diagrams. For database people like me, the Object Modeling domain is of particular interest and specifically the explicit support of associations.


Figure 2: The Dynamic Model

It’s true that objects have stood the test of time but not so with object databases. However, they have remained in a niche market with some notable successes: around the year 2000, Objectivity/DB reached the 1PB mark with one of its customers in the scientific market, and around 2005 Objectivity/DB sustained creating 3,200,00 objects per second.

Object databases do have something to offer. In fact, they map very closely to the UML Object Model, they support inheritance and polymorphism, and they implement associations. A key element of reaching these milestones is Objectivity/DB’s distributed architecture for both processing and data storage scalability.

In my world, the associations are as important, if not more important, than the data itself. This is validated by the emergence of graph databases in the NoSQL market.  Looking back over 25 years of successful customer deployments using Objectivity/DB, three major criteria stick out: scalability, associations, and data fusion.

In the mid to late ‘90s, I worked with some of the major system integrators to the Federal Government who were using Objectivity/DB to implement data fusion platforms. Later these platforms became known as sensor fusion platforms.

At the same time our commercial customers were implementing applications/systems which we labeled “monitor, analyze, respond systems.” These were very similar to the sensor fusion systems being developed by the system integrators, just with different objects. I would even go as far as to say that some of these were the early inventors of the Internet of Things!

This evolution leads us to today, where the worlds of Big Data and Fast Data collide. What we called in the past “data fusion” and “monitor analyze respond systems” has emerged as Information Fusion. Information Fusion is the combination of Big Data and Fast Data, which then through various levels of refinement derives new information and relationships (associations) for better intelligence and decision-making.

A modern Information Fusion platform might include Hadoop (HDFS) for Big Data, Apache Spark Streaming for Fast Data, workflows using Apache Spark MLlib and GraphX, standard access through Apache Spark SQL and a metadata repository for storing derived data and relationships (associations).

What better way to model these systems than using objects and using an object database as the metadata repository?