[Technology Report]
Working Within The Framework
A solid software framework builds in more flexibility for designers, relieving them of otherwise time-consuming tasks.
FRAMEWORKS ON TOP OF FRAMEWORKS: Building a framework on a framework is quite common even among third parties, assuming the specifications are open and stable. With Echelon's Lonworks Bundle Deployment Kit, developers can add connectivity via the OSGi Services Gateway and develop OSGi Service Platform device bundles. The latter can be delivered to an OSGi Service Gateway node for execution. Espial's DeviceTop provides similar support for its frameworks, such as IPTV.
The appearance of more frameworks also can be pinpointed to the increased formalization of middleware support. For example, QNX has a power-management framework for its real-time operating system.
Many areas that aren't even mentioned above are available, from point-of-sale (POS) services to robotics to Voice over IP frameworks such as Asterisk (see "Open-Source Platform Dials Into VoIP," p. 34). Like most of the frameworks discussed, these others often have rigid requirements that limit their use to a small set of environments.
The bottom line is to make sure your applications can live within these constraints, because mixing frameworks may not be possible. Just try combining frameworks for high Availability, safety-oriented support, security, and robotics with a graphical-user-interface framework to see how many combinations are available. Right now, it may not be possible.
IN THE LONG TERM: The need for frameworks is undisputed, since they provide significant front-end savings and can be very economical in the long run. Yet keep in mind that signing on to use a framework doesn't just commit the current application design.
It's a long-term relationship where upgrades, bug fixes, licensing, and so on must be considered. Access to source code can be an issue, especially for debugging. A larger factor may be understanding the details of the framework. Frameworks seem to have lots of feature creep, too. Once started, they continue to grow.
Framework designers may want to take a tip from the Mozilla crew with its Firefox Web browser, or from Eclipse. Both have a different plug-in environment comprising all components, including the base components for the target environment. Modularity is critical in embedded designs. Building a system up in a modular fashion can improve reliability and reduce memory requirements.
NEED MORE INFORMATION?
Apache Software Foundation www.apache.org Certicom www.certicom.com Eclipse Foundation www.eclipse.org Echelon www.echelon.com Espial www.espial.com Green Hills Software www.ghs.com GIMP Toolkit www.gtk.org LynuxWorks www.lynuxworks.com Mozilla www.mozilla.org MySQL dev.mysql.com OSGi Alliance www.osgi.org QNX www.qnx.com Microsoft www.microsoft.com Monta Vista www.mvista.com MySQL www.mysql.com Sun www.sun.com Wind River www.windriver.com