DataBlade modules can contain complex operations. A good design is critical to your success.
For DataBlade module SQL design issues, see Designing DataBlade Modules.
For general information about the options you have when you extend the server, see IBM Informix: User-Defined Routines and Data Types Developer's Guide.
See Writing a Functional Specification for more information.
See Programming Resources for more information.
See Writing a Design Specification for more information.
See Creating an Iterative Development Plan for more information.
Some of these steps are described in the following sections.
A functional specification describes the scope and functionality of your DataBlade module, without documenting implementation details. It also documents other issues for development, such as phases of functionality, compatibility, performance, and platform. A good functional specification shows how your DataBlade module solves the problem you designed it to solve.
For a sample functional specification, see the IBM Informix Developer Zone site at www.ibm.com/software/data/developer/informix.
For specific language options and guidelines, see Programming Guidelines.
The following table lists the programming language options you have when writing DataBlade module code and refers you to sources of information about them.
Language | Information Sources |
---|---|
C | Programming DataBlade Module Routines in C
IBM Informix: DataBlade API Programmer's Guide |
ActiveX/C++
(client-side programming and Windows server projects only) |
Creating ActiveX Value Objects
IBM Informix: DataBlade API Programmer's Guide |
Java | Programming DataBlade Modules in Java
IBM Informix: J/Foundation Developer's Guide IBM Informix: JDBC Driver Programmer's Guide |
Stored Procedure Language (SPL) | IBM Informix: Guide to SQL Tutorial |
For further tips on coding DataBlade modules, see the IBM Informix Developer Zone at www.ibm.com/software/data/developer/informix.
A design specification describes the overall functionality of your DataBlade module and documents the specific routines available to the user, the supporting database tables used to implement the routines, error messages, and the environment used to build the DataBlade module. A design specification also documents implementation details that the DataBlade module customer does not need to know, such as internal support routines.
For a sample design specification, see the IBM Informix Developer Zone at www.ibm.com/software/data/developer/informix.
Keep the following guidelines in mind when you create an iterative development plan:
Some objects can depend on others; you must create new data types before you create the routines that operate on them. Create simple data types and routines before complex ones. Create objects in the smallest independently testable groups. For example, you can test opaque data type support routines without any other objects.
Unit tests are SQL files you use to test boundary conditions while debugging your DataBlade module on Windows. After you generate unit tests for all your routines with BladeSmith, you add test data to them. If you later regenerate unit tests, the changes you made are merged into the new unit test files.
Functional tests are scripts you execute to validate your DataBlade module on UNIX after you finish debugging it. You can also run functional tests on Windows if you use a UNIX emulator, such as MKS Toolkit. Before you generate functional tests in BladeSmith, you must enter functional test data for all your routines. You can add custom scripts, but if you alter existing scripts and then regenerate them, changes you made are overwritten. See Adding Functional Test Data for more information.
If you enable tracing when you generate code in BladeSmith, BladeSmith includes enter and exit tracing for every routine. You can also add more tracing. See Generating Files for information on how to generate code with tracing and Tracing and Error Handling for information on the generated tracing.
Anticipate how your customers will use your DataBlade module and create error messages that sensibly report problems to your users. See Defining Errors for information on how to define error messages and Tracing and Error Handling for information on how to add custom error handling to your DataBlade code.