INFORMIX
DataBlade Module Development Overview
Appendix B: Informix DataBlade Modules
Home Contents Index Master Index New Book

Informix DataBlade Modules

This appendix introduces the following DataBlade modules and describes the extensions to Informix Dynamic Server that each one provides:

Informix Geodetic DataBlade Module

The Informix Geodetic DataBlade module manages objects defined on the Earth's surface with a high degree of precision. It is designed to manage spatio-temporal data with global content, such as metadata associated with satellite images. To do this, the Informix Geodetic DataBlade module uses a latitude and longitude coordinate system on an ellipsoidal Earth model, orgeodetic datum, rather than a planar, x- and y-coordinate system.

With the Informix Geodetic DataBlade module, you can extend your Informix Dynamic Server database to store and manipulate objects in space, referenced by latitude and longitude. You can also provide additional attributes representing an altitude range and a time range.

You can create the following spatio-temporal objects with this module:

Extensions to Informix Dynamic Server

The Informix Geodetic DataBlade module provides three kinds of data types:

Spatio-temporal data types enable you to store data that represent spatial objects with a time component in an Informix Dynamic Server database. The time component associates the object with a time period or moment in time. Spatio-temporal types are defined in a type hierarchy, with a supertype-GeoObject-that has the time and altitude attributes common to all spatio-temporal types.

Domain-enforcing types provide angular components such as latitude and longitude, and linear components such as distance. Range data types specify the altitude and time dimensions of spatio-temporal data.

The Informix Geodetic DataBlade module provides more than forty functions to enable you to manipulate your spatio-temporal data. These functions can be grouped in the following categories:

The Informix Geodetic DataBlade module also provides:

Documentation

For more information, see the Informix Geodetic DataBlade Module User's Guide.

LOB Locator DataBlade Module

The LOB Locator DataBlade module enables you to create a single consistent interface to smart large objects. It expands the concept of smart large objects to include data stored outside the database. Smart large object data exceeds a length of 255 bytes or contains non-ASCII characters.

With the LOB Locator DataBlade module, you create a reference to a smart large object and store the reference as a row in the database. The object itself can reside outside the database: for example, on a file system (or it could be a BLOB or CLOB column in the database). The reference identifies the type, or access protocol, of the object and points to its storage location.

The LOB Locator DataBlade module is a foundation DataBlade module for other DataBlade modules that handle smart large objects.

Extensions to Informix Dynamic Server

The LOB Locator DataBlade module provides new data types and functions to extend Informix Dynamic Server.

The lld_locator data type is a row data type that contains the access protocol for a smart large object and a pointer to its location. The lld_lob data type is an opaque data type that is identical to the BLOB and CLOB data types, except that in addition to pointing to the data, it tracks whether the underlying smart large object contains binary or character data. It is contained in the lld_locator data type as a field in the row.

The LOB Locator DataBlade module provides basic functions for creating, opening, closing, deleting, reading from, and writing to smart large objects; client functions to process client files; utility functions for raising errors; and smart large object functions for copying smart large objects.

Most of the LOB Locator DataBlade module functions are implemented in an API library, an ESQL/C library, and an SQL interface for maximum programming flexibility.

Documentation

For more information, see the LOB Locator DataBlade Module Programmer's Guide.

Excalibur Text Search DataBlade Module

The Excalibur Text Search DataBlade module enables you to search your data in ways that are faster and more sophisticated than the keyword matching that SQL provides. Excalibur text search capabilities include phrase matching, exact and fuzzy searches, compensation for misspelling, and synonym matching. The Excalibur Text Search DataBlade module can search any type of text.

The Excalibur Text Search DataBlade module uses dynamic links in the Excalibur class library, or text search engine, to perform the text search section of the SELECT statement instead of having the database server perform a traditional search. The text search engine is specifically designed to perform sophisticated and fast text searches. It runs in one of the database server-controlled virtual processes.

Extensions to Informix Dynamic Server

The Excalibur Text Search DataBlade module provides four sorts of objects to extend Informix Dynamic Server: the etx access method, the filter utility, the etx_contains() operator, and text search routines.

The etx access method allows you to call on the Excalibur Text Retrieval Library to create indexes that support sophisticated searches on table columns that contain text. The indexes that you create with the etx access method are called etx indexes.

To take advantage of the etx access method, you must store the data you want to search-called search text-in a column of type IfxDocDesc, BLOB, CLOB, CHAR, VARCHAR, or LVARCHAR. The first data type in this list, IfxDocDesc, is a data type that Informix designed specifically for use with text access methods. The IfxDocDesc data type is provided by the Text Descriptor DataBlade module. It is a row type that contains the lld_locator data type from the LOB Locator DataBlade module.

When you store your documents in an IfxDocDesc column, you do not need to manually convert them from their proprietary format into ASCII when creating a etx index; the Excalibur Text Search DataBlade module does this for you. One of the components of the Excalibur Text Search DataBlade module is a filtering utility that recognizes a number of document formats and converts them into ASCII form whenever needed.

You use the etx_contains() operator within SELECT statements to perform searches of etx indexes.

In addition to the etx_contains() operator, Excalibur Text Search DataBlade module supplies several routines that you can use to perform tasks such as creating and dropping synonym and stopword lists.

Documentation

For more information, see the Excalibur Text Search DataBlade Module User's Guide.

Informix TimeSeries DataBlade Module

The Informix TimeSeries DataBlade module enables you to store and manipulate a series of data entries associated with a date and time. This timestamped data is stored in a row type, which you define to include whatever data you wish, in addition to the timestamp. You also control the granularity of time recording. The Informix TimeSeries DataBlade module supports regularly or irregularly repeating timestamped series.

Time series data is stored and analyzed by applications in many different industries, including manufacturing, journalism, science, and engineering. Time series data is also used in the financial world for corporate financial reporting, stock prices, bond yields, and derivative securities.

Extensions to Informix Dynamic Server

The Informix TimeSeries DataBlade module allows you to create an intuitively organized data model by grouping all the timestamped data for an entity into a single row in a database table, using the TimeSeries data type. The TimeSeries data type is a type constructor that creates a collection of elements that are row types, as illustrated in Figure B-1.

Figure B-1
Time Series Architecture

You create the row type to fit your data; the first field, or column, in the row must be a timestamp of type DATETIME YEAR TO FRACTION 5, but the rest of the columns can be any data type supported in row types. Since the time series data is in a row type instead of an opaque type, you can retrieve individual columns within an element.

The collection elements are indexed according to their timestamp, making retrieval of chronologically contiguous elements very fast. Once the number of elements exceeds the user-supplied threshold, the Informix TimeSeries DataBlade module moves all the elements to a container, which exists in a user-defined dbspace. Containers are necessary because time series data typically becomes too large to fit in a database table. Containers also allow you to retrieve only the information you need, instead of the whole time series, as would happen if you used a smart large object to store your data.

For both regular and irregular time series, the Calendar and CalendarPattern data types allow you to specify an arbitrarily complex pattern of when entries are accepted. For regular time series, the calendar additionally creates a vector from which to calculate an element's position, so that an element's timestamp does not have to be stored, or even specified.

The Informix TimeSeries DataBlade module provides a wide variety of routines to manage and manipulate time series data. The routines allow you to manipulate columns in an element, an element itself, a portion of a time series, a whole time series, or many time series. In addition, there are routines to manage calendars, containers, and metadata. Most routines are implemented in both an SQL interface and an API library.

The Informix TimeSeries DataBlade module also includes system tables to record information about calendars, time series, and containers.

Documentation

For more information, see the Informix TimeSeries DataBlade Module User's Guide.

Informix Video Foundation DataBlade Module

The Informix Video Foundation DataBlade module enables you to store, manage, and manipulate video data and metadata in the same system in which you store more traditional data.

Video data represents an image that changes continuously in time. Unlike traditional data that is retrieved and displayed as a discrete value, video data is incrementally accessed and is displayed as a real-time stream of frames. Video data can be located on one or more storage servers, such as Web video streamers, VTRs (video tape recorders), or video servers. If an Informix Video Foundation interface has been created for the storage server, then that storage server can come under database control.

Video metadata is "data about the video data." This is the information that is actually stored in database tables, along with information on how to retrieve requested video segments from the various storage servers. The Video Foundation DataBlade module defines two categories of metadata:

The Video Foundation DataBlade module is referred to as a foundation DataBlade module because it provides just that: a video-savvy base on which new or specialized video technology DataBlade modules can be quickly added or change. These other DataBlade modules can use the foundation DataBlade module's services "as is" (without any modifications), or they can extend the data types and functions of the foundation DataBlade module to handle the technology they are introducing. Examples of DataBlade modules that might depend on the Informix Video Foundation DataBlade module include scene-change detection and face-recognition DataBlade modules.

Extensions to Informix Dynamic Server

The Video Foundation DataBlade module consists of the following components:

Documentation

For more information, see the Informix Video Foundation DataBlade Module User's Guide.

Informix Web DataBlade Module

The Informix Web DataBlade module enables you to create Web applications that incorporate data retrieved dynamically from an Informix Dynamic Server database.

Using the Web DataBlade module, you need not develop a Common Gateway Interface (CGI) application to dynamically access database data. Instead, you create HTML pages that include Web DataBlade module tags and functions that dynamically execute the SQL statements you specify and format the results. These pages are called application pages (AppPages). The types of data you retrieve can include traditional data types, as well as HTML, image, audio, and video data.

Extensions to Informix Dynamic Server

The Web DataBlade module consists of three main components:

The following diagram illustrates the architecture of the Web DataBlade module.

Figure B-2
Web DataBlade Module Architecture

When a URL contains a Webdriver request, the Web browser makes a request to the Web server to invoke Webdriver. Based on configuration information, Webdriver composes an SQL statement to retrieve the requested AppPage and then executes the WebExplode function. WebExplode retrieves the requested AppPage from the Web application table (stored in the Informix Dynamic Server database), executes the SQL statements within that AppPage by expanding the Web DataBlade module tags, and formats the results. WebExplode returns the resulting HTML to Webdriver. Webdriver returns the HTML to the Web server, which returns the HTML to be rendered by the Web browser.

Webdriver also enables you to retrieve large objects, such as images, directly from the Informix Dynamic Server database when you specify a path that identifies a large object stored in the database.

Documentation

For more information, see the Informix Web DataBlade Module User's Guide.




DataBlade Module Development Overview, version 3.6
Copyright © 1998, Informix Software, Inc. All rights reserved.