Building data intensive applications for Symbian OS in C++ can be a time consuming exercise. Now there may be a better way. ENCIRQ claims to not only reduce development complexity but offer the advantages of an embedded relational database without the footprint or performance penalties. Richard Bloor investigates.
ENCIRQ considers itself a pioneer in data-centric software development for intelligent devices. It is a one trick company, but it is a pretty impressive trick: an application framework that helps Symbian OS developers build highly-optimized data management for their applications in a fraction of the time and with just a 24Kb incremental footprint.
The company was founded in 1998 by Mark Vogel and David Posner (who, as Principal Architect at Oracle, designed the Oracle Internet Commerce Server). Their goal was to provide developers of smart, connected devices with the ease of design familiar to them from data-centric enterprise applications development, while providing the performance and design flexibility required by embedded systems. The result is the ENCIRQ® Data Foundation™ Framework.
"On intelligent devices, such as those that run the Symbian OS, data-centric applications are still being created with the technology we saw back in the old IBM mainframes days; with developers hand-coding tables and data management code in C or C++," says John Smolucha, VP Marketing at ENCIRQ Corporation. "Relational databases and fourth generation languages transformed the way enterprise developers worked. Sophisticated business applications became much easier to create because developers had rich tools that simplified the complexity and allowed them to concentrate on the problem rather than low-level implementation details. Unfortunately, this old technology doesn't scale down well to smartphones, because database mechanisms consume a large amount of system resources, which most mobile handsets simply can't accommodate. So we approached the problem by asking how we could capture the best of the data-centric approach to applications, the data modeling, the high-level languages, code-generation tools and put it into a phone with a 24Kb footprint."
The result is a combination of PC-based development tools and a set of run-time service libraries that are linked with the generated code. The combination allows developers to build device-optimized data management foundations for their applications without having to manually build the data management code in C/C++. Instead, they design and build their solution in a higher-level data management language modeled after Oracle's PL/SQL. Then the framework does the optimization and code generation for them. The output is then compiled and linked with the rest of the application for execution on a Symbian OS-based device.
As an application framework, the ENCIRQ Data Foundation does not provide classic client-server style database functionality. It is not a piece of middleware that can dynamically create tables and data structures, then process ad-hoc SQL queries against the stored data. Rather it is used to build an application-specific, relational data management foundation, whether that be table-oriented or, for processing live data streams, streams-oriented. ENCIRQ claim the trick to keeping the incremental footprint small is because it contains only the functionality the application requires. Despite its small library footprint, it is able to provide an optimized data management foundation with full relational, transactional functionality and ACID properties as seen on conventional databases. These include features such as built-in transaction processing with roll-back and crash recovery.
Another important aspect of the technology is the potential for gaining benefits from the high-level of data abstraction and automated code generation. Developers working on Symbian OS applications usually have to hand-code all their applications data management functionality. This includes the data structures, arrays, tables, and each element of data that needs to be defined, as well as the operations to be performed on that data. It can be a complex task that is both time-consuming and error prone.
"C, C++ or Java are high-level languages to many developers. For developers who have been building data-centric applications in the enterprise they are not high-level in the way 4G languages, such as PL/SQL, are," says Jan Liband, Director of Marketing at ENCIRQ. "Building data-driven applications for a platform like Symbian OS is quite common. However, it takes developers a lot of time and effort. The ENCIRQ framework cuts through this complexity. It allows developers to build the data storage and management solution for their application in a fraction of the time, by automating fifty percent or more of the development effort. As a result, we have customers who are creating innovative, data-driven applications that would have been too complex or expensive to build with conventional approaches."
With the ENCIRQ Framework, developers define their data model and data manipulations in ENCIRQ PL, a language with specific extensions for embedded devices. They also define data sources and destinations as well as the calling interfaces they want for the generated code, so it can integrate with existing applications. The ENCIRQ PL definition is then processed by the ENCIRQ Generator, which analyzes and optimizes the model to create a highly-efficient implementation in ANSI C. The functions made available by the ENCIRQ-generated code are then used within native Symbian C++ code to build the rest of the application functionality and user interface. Finally, the ENCIRQ service libraries are linked to the application to create the executable. During development and testing the ENCIRQ framework also provides a PC-based Prototyper, which allows developer's to interactively execute ENCIRQ PL statements and verify their data models before sending them to the ENCIRQ Generator.

The ENCIRQ development process.
With the ENCIRQ Framework, Jan claims that developers can save up to 80% of their coding time when compare to creating similar data management code by hand in C++.
"Unlike an embedded database, ENCIRQ is generally not used to protect static data while ad hoc queries get thrown at it by the application." says Jan. "It's a development framework that makes it easy to build whatever data management foundation an application needs, delivering the precise functionality it needs, no more and no less."
The ENCIRQ Framework provides developers with a great deal of flexibility in how they access, operate on, and store data. Performance is best when all the data can be managed in memory, without having to shift it in and out of flash storage. In addition, as ENCIRQ supports a streams-based data model, developers can perform common data operations such as SELECTs on live data streams without first having to store data locally in temporary data structures. This should allow many applications to reduce memory consumption while improving performance.
In contrast to the ENCIRQ Framework, the Symbian OS database provides a generalized storage mechanism for tables of data. The fact that it is designed to provide a generic storage and querying environment for any data means it is a compromise. A case of providing good all-around performance, but not the optimized performance a developer may need for a specific application.
The reason ENCIRQ has brought its technology to Symbian OS, beside the obvious advantages it offers to applications developers, was due to customer pressure. "We have customers in Japan who have used our technology to create applications on award-winning feature phones," says Jan. "These companies and others are looking to implement applications on their next generation of devices, and some of them will be based on Symbian OS. They have found the high-performance characteristics and flexibility of ENCIRQ to best meet their technical requirements."
Encouragement from these same Japanese companies, coupled with the desire to provide developers with the best possible solution, was a key reason why ENCIRQ joined the Symbian Platinum program.
"There is a lot of interest in putting small versions of enterprise and personal productivity application onto smartphones," says Jan. "While some developers look at Symbian OS phones as a great platform for games or convenience features, most of the money is in enterprise productivity applications; that is, applications that help make field service personnel or sales staff more productive and efficient. Our software technology allows developers to create these kinds of applications on top of Symbian OS with only a fraction of the usual effort." ENCIRQ also works without the need for capabilities on Symbian OS v9, which makes it a practical solution for any embedded application.
"Part of the power of the ENCIRQ framework is that the run-time service libraries are optimized around specific combinations of CPUs and operating systems, say TI's OMAP running Symbian OS," says John. "Joining the Symbian Platinum partner program gives us access to the resources we need to ensure our offering to developers is optimal tuned for Symbian OS and the silicon it runs on."
These are interesting times for native C++ development on Symbian OS. The ENCIRQ Framework promises to simplify the creation of one of the most complex part of many applications, the data management. The control and UI code could be about to benefit from similar automation with Nokia's forthcoming Carbide RAD tool. Both solutions should minimize manual, low-level coding. ENCIRQ technology alone offers the promise of helping accelerate the availability of high-performance enterprise applications on Symbian OS. Interesting indeed.
For more information see www.encirq.com. |