HOME :: JOB LISTINGS :: ARCHIVES :: MEDIA KIT :: SUBSCRIBE


Embedded Data Management Grows Up
Encirq Accelerates Data-based Development

by Kevin Morris, Embedded Technology Journal

Dealing with data in large enterprise systems has been a well-oiled process for quite some time. Long elevated above the menial manipulations of general-purpose programming languages, sophisticated schemas and query languages have made managing massive amounts of data a routine, almost pedestrian exercise. Give a database expert a few tools and a few hours, and he can sort through terabytes of trivia to tell you the zip codes of all the people who share a common blood type and a penchant for poodles while living in towns with populations less than twenty. The C compiler will never be invoked.

In embedded system design, however, our data management has been a bit more primitive. If SQL were a modern telecom network, most embedded applications would be managing data with two tin cans and a piece of string. Our methods are typically not very sophisticated because they haven't needed to be. We tinker and customize and create miniature Rube Goldberg machines that monitor sensors, consolidate and synchronize data, and make decisions based on the results. For our next system design, we forget it all and start over again.

Of course, all that is changing. Now, with most mobile devices having some network capability and convergence bringing us multi-purpose platforms with innumerable data sources and sinks, keeping all that information straight is becoming a real challenge. More often these days, embedded computing systems are actually data-centric, demanding an approach to engineering that focuses on data elements and their relationships to each other, with the realization that data could come into the system from a variety of sources.

Encirq has attacked the embedded data explosion with a set of tools and methodologies that parallel enterprise data management solutions in the embedded environment. Using their approach, your entire system is viewed as a distributed data platform, much like a large distributed database in the enterprise world. Your embedded software accesses and queries this data with an SQL-like query language called DeviceSQL. Encirq supplies a compiler that produces an optimized ANSI C implementation from the query language and a set of service libraries that provide underlying data services for specific operating system/processor combinations.

"Every type of intelligent device has to acquire, process, integrate, filter, and manage data – often real-time data," says Jan Liband, director of marketing at Encirq. "A lot of today's device software is actually data management. We wanted to provide a foundation that would allow people to leverage and harness that data in more intellingent ways and to take advantage of highly optimized methods for accessing and manipulating that data."

Consider an example like an automotive telematics platform. Data is constantly pouring in from a large and diverse array of internal and external sensors and sources giving information like outside air temperature, vehicle speed, GPS location, engine speed, and road information. Inside the car is a large network of computing devices, all needing access to views of the data being constantly collected. If you can visualize all that data in a database schema view, you can think of individual applications, processes, and machines all being able to query that data in a way that makes sense to them. The efficiency of viewing the entire platform from a distributed data-centric view could be huge in terms of savings in total system cost from components like memory and communications channels. Additionally, taking advantage of well-refined database techniques could dramatically improve performance, responsiveness, and feature capabilities of such a system.

Taking a data-centric view of embedded system design can also yield big benefits in programming productivity. "We've seen projects that would have required five developers dropped to just one," continues Liband. "Our customers have reported significant schedule reductions as well." All around, if you consider the inherent programming efficiency of SQL-like approaches to data management, it's easy to see that coding complex applications could be dramatically simplified from a straight C/C++-based approach.

Another, less obvious, impact of standardizing on commercial-grade data interface modules is overall system software quality. In many systems, the low-level data access is a primary source of bugs, and mismanaging data can be one of the leaders in issues such as excess memory utilization and system-stopping memory leaks – a problem that is annoying in conventional computing systems, but can be fatal in space-constrained embedded systems. Having optimized, tested, high-mileage modules doing all the heavy lifting in the background can have an enormous benefit in lowering the overall bug count of your system.

What is less obvious is the additional performance and BOM optimization that is available because your data access can be highly optimized right from the start. Many applications, however, are not starting from scratch. "Most customers are already in business, already have an existing system, already have millions of lines of code they're maintaining," explains Liband. "They want to insert a bit of the technology, take a look at their design, understand what their data is, look at signal processing, acquiring, and storing. We usually pick one area to start with and expand from there."

One difference in dealing with device-based systems is the transient nature of data compared with typical database systems. Meta data is flowing continually and can be processed with SQL. Basically, the whole architecture of the Encirq system is based on streams. By manipulating and scanning streams, treating select operations as streams, etc., the SQL metaphor can be extended to the data flowing through a real-time system.

Also key to practical implementation of the data-centric philosophy is portability and platform independence. The compiler generates C code that can then be used in your normal, standard embedded software development environment. The only platform-specific components are the service libraries that provide a thin layer on top of a particular OS/CPU combo to drive the rest of the system. Encirq already has support for a wide range of popular operating systems and processors, so most embedded system design projects will find their particular combo already supported.

Encirq's methodology is catching on in a wide range of applications from smart phones to set-top boxes to automotive telematics. Any time your system has data coming in from a variety of sources and performs a number of independent functions based on that data, a data-driven approach like Encirq's warrants consideration. With embedded hardware platforms improving, consolidating, and standardizing every day, it only makes sense that some of that collective experience would start to spill over into the embedded software application domain as well.

Click here for printable PDF
(By clicking on this link you agree to Embedded Technology Journal's Terms of Use for PDF files. PDF files are supplied for the private use of our readers. Republication, linking, and any other distribution of this PDF file without written permission from Techfocus Media, Inc. is strictly prohibited.)

Kevin Morris, Embedded Technology Journal

September 12, 2006

[back to top]


RECENT COMMENTS ON WWW.JOURNALFORUMS.COM:

All material on this site copyright © 2006 techfocus media, inc. All rights reserved.
Embedded Technology Journal
Privacy Statement