Simba: “What’s a meta?”
Timone: “Nothing, what’s the meta with you?”
Sometimes it feels like understanding of metadata has permeated popular culture, well not quite, but it is a core tenant of significant software platforms today. Everywhere I look in technology “I see meta people”.
Simply put metadata is data that describes data or facts about the data. For example, if a customer name field contains data like “Joe Smith”, the metadata related to that field would be the name of the field, the data type, character (or more likely VARCHAR) and size up to 20 characters. In other words, the DDL (data definition language) which represents the schema of the database.
Metadata is used to describe much more than just the specifications of a data store. My first encounter with metadata was when I was an engineer and later product manager for an application development tools vendor Synon back in the 1990’s. The breakthrough product back then utilized metadata to store a logical data model as well as to capture the designs for UI and processing logic which ultimately produced executable code. Upon completion of the design Synon’s customers could choose their target language, environments, (e.g. AS/400, UNIX) even style of UI and code distribution (e.g. Client/server vs. 5250 character only green screens). The metadata provided an abstraction layer which allowed for the design to be deployed to those environments using a “code generator” which automatically incorporated the best practices for deploying highly scalable and optimized applications. Customers were also protected and insulated from hardware and software changes, allowing them to take advantage of new capabilities quickly without complete rewrites.
Abstraction also provides benefits such as being able to create recurring models, patterns or blueprints which can be reused, thereby simplifying and accelerating the process for rolling out new applications. Ultimately, write once, run many (one of the main goals of Java when it was introduced) is upgrade to design once, share, generate & deploy, continuously adapt for many.
These days metadata is a standard means of design artifact exchange, data model designs and other abstracted pieces of logic. The metadata can be freely exported and imported from tools and platforms for creating applications, allowing for wider interoperability and integration. Similarly for the mainstream public, metadata is used to exchange information about photographs – time, data, format, camera settings, and in audio – catalog, ownership or copyrights for digital audio files.
In 1999, during the teeth of the dotcom boom, while the web was flourishing, another industry Interactive television (iTV) was gaining a second life. iTV took many forms, but the main goal was to allow the viewer to use their remote, in conjunction with their cable or satellite box to be more active with their programming. Using the television to either make purchases, or play along with game shows, and in some cases even surf the web. The challenge was, that much like the IT world, the business of television contained a multitude of hardware and software environments. The same conundrum applied in that iTV applications needed to be created, but app developers could not afford to create customized code for each and every target box or software operating system. Enter MetaTV. Using metadata we captured all of the logical designs and requirements for iTV applications and once again deployed to all of the smart and dumb boxes in living rooms all across the world.
My 3rd and most recent foray was at Siperian where metadata was the secret sauce that supported abstraction, adaptability and encapsulation of best practices. It allows Siperian to provide an MDM platform that can easily be used for deployment for multiple data domains and business initiatives in multiple industries. It’s a core architectural tenant of the platform and we positioned and marketed it accordingly. For Siperian metadata supports the notion of model-driven, which means that a single change at the core definition (e.g. adding a new field) can automatically ripple through the platform and that field is immediately available within corresponding web services, match rules and other aspects of the running MDM Hub. This can represent a tremendous maintenance and enhancement capability, allowing the customer to use the platform to adapt to their changing business and not be hindered by the cost of change.
Most of the major platforms and tools today leverage metadata significantly to provide abstraction, reuse, upgrade insulation, mult-tenancy and other benefits. For example, the leading software-as-a-service (SaaS) vendor, salesforce.com uses metadata extensively for its platform. Metadata underpinnings in combination with other capabilities like web services/API layer, GUI/Visualforce, Apex programming language for logic, and an integrated database, allow salesforce.com to offer Force.com, a platform-as-a-service (PaaS). I am a fan of the new PaaS for building scalable and instantly deployable applications for the cloud, in some cases like Force.com, with little or no coding involved. But as you can see I never metadata I didn’t like.