Which should take precedence, the data or the application?
Shawn P. McCarthy
Systems engineers bandy about the terms data-centric vs. application-centric in discussing how to redesign an agency's application structure. Here's what they're talking about.
The Internet has greatly expanded the ways data can be collected and shared in real time, and rapid application development tools make it easy to experiment with different ways.
It's hard to find experts who agree about which approach is best for routing information through an organization. What's more important, the data or the way it's used? In this chicken-and-egg situation, both are important. Each influences the other.
The data-centric approach puts premier importance on data and its presentation, stressing the need to design applications around the database structure and the users' needs. This customized approach costs more, but it gives users more of what they want. Oracle Corp. databases, for example, are data-centric, especially Oracle's Internet Application Server and Internet Developer Suite.
The application-centric approach focuses on off-the-shelf apps with some level of customization for data interaction and display. But often such apps can't deal with the multiple personalities of data feeds. Microsoft Corp. always has been an application-centric company whose data presentation methods are paramount'data must fit its methods. Microsoft is slowly changing, but the legacy remains strong.Trend is app-centered
Neither approach is wrong. The choice depends on your users' needs and budget.
The trend, however, is away from the data-centered approach for large applications, and toward an app-centered approach. Commercial software costs less. Standardization is valuable to a far-flung operation.
What's changing this either-or scenario is the flood of new data. Data collection from conventional sources is augmented by data culled from Web forms and from field entries in handheld computers and digital phones.
Add to this the growing agency use of voice-response systems that both distribute and collect information, plus the public's expectation that public data should be tailored to their needs. All of a sudden, you discover the off-the-shelf apps aren't flexible enough, and large databases are too ponderous and expensive to modify.What's the alternative?
Here's one scenario that combines aspects of both approaches: A single enterprise database, accessible via Web server, remains the backbone of the system, but from the Web server hang multiple independent app servers. For example, ColdFusion from Allaire Corp. of Cambridge, Mass., provides both a server component and an application development environment.
The server can also absorb data feeds, although this is less common. When real-time data streams in, there must be rules about accepting, storing, overwriting or purging it. Data can be stored in one catalog or in multiple catalogs with different fields.
ColdFusion takes queries from the Web server to be handled by its apps, then passes things back to the server for display. Logic can be embedded in both the server and the apps to channel queries to the proper data source, or to pull data from multiple sources for a real-time report.
Spreadsheet programs such as Microsoft Excel already have functions for running queries against databases and Web sites. Now, spreadsheet users usually make and share new sheets or static roll-up reports. But a system like the one described above eliminates the need for static spreadsheets. All users could open a sheet from its central location and see a real view of the live data.
Such a data-centric commitment could be built on either an open or proprietary architecture. And it could easily be outsourced, as long as the application service provider didn't insist on only its proprietary apps.
The outcome? Using a specific application will mean less in the future. Collecting, analyzing and reacting to data and trends will mean more.
For ideas, see:
Building Data-Centric Business Applications with Microsoft Visual Basic at msdn.microsoft.com/training/courseware/1633.asp
Building with C++ at msdn.microsoft.com/library/devprods/vs6/vstudio/vsentpro/veconbuildingdatacentricapplicationswithvisualc.htm
Data-centric manufacturing environments at help.camcad.com/data_centric_environment.htm
Data-centric voice services at www.lucent.com/serviceprovider/13/13c.html
.Shawn P. McCarthy designs products for a Web search engine provider. E-mail him at email@example.com.