![]() |
0.12 2008-04-23 21:12 -0700 |
{Preliminary Material: Brief synopsis and TOC required here.}
An ODMJNI 1.0 Deployment is any packaging of code that is extracted from the development system and made available for download and use by others.
All defects that are detected in a deployed package are recorded as bugs in delivered code and there is a public record, here, of the current availability and status of each deployed package.
1.1 This devNote tracks the development of the deployment procedures and packages for ODMJNI 1.0. The deployed "releases" are combinations of material from four development tracks:
info.odma.practical100 package of implementation-independent components: interfaces and Java classes that provide the assured behavior seen by Java applications that rely on ODMJNI 1.0.
info.odma.odmjni100 package of the Java bridge to ODMA, along with the odmjni100.dll used to implement native methods of the Java-language bridge components. Apart from a single initialization operation, all behavior of the odmjni100 bridge software is exposed entirely via the practical100 interfaces.
OdmNative100 library software that uses C++ Language, Microsoft COM interfaces, and native Windows (Win32) API functions to provide and manage access to the ODMA API on behalf of the ODJNI 1.0 application. This code is incorporated in the odmjni100.dll module. Its interfaces are confined to internal use of odmjni100 Java methods having native implementations in odmjni100.dll.
OdmPackage100 materials for creating the deployment package with progressive use of runtime, regression checks, and the source code from each track that is incorporated in the full deployment. (OdmNative100 library will be moved to its own development library by the 0.80 Beta Refactoring release.)
1.2 An important part of deployment is to synchronize these layers in choosing the combination to distribute and test.
1.3 Initially, deployment is by distribution of Zip archives containing material that must be extracted and manually customized. Eventually, deployment is by Java .JAR files that can be incorporated in the Java application's own deployment.
- 0.01alpha Evolutionary Prototype (completed 2006-10-19). This first-trial definition of practical100 interfaces was used to verify the Java compiler implementation and use of scripts to automate construction and deployment. The interfaces were revised and the development code tree enhanced by 0.05alpha as the result of experimentation with this first prototype effort.
- 0.05alpha Evolutionary Prototype (completed 2006-10-24). This stage provided confirmation of the basic interfaces and the overall approach for practical100 components. The interface definitions were incomplete, but remained stable until 0.30alpha. Only the Java language "front-end" interfaces are defined, with limited exercising by null implementations. Because null interfaces are legitimate results in the final package, this allows initial testing of "ODMA not available" cases in an actual application. This "deployment" was only of practical100 materials and some tests to exercise them.
- 0.20alpha End-to-End Confirmation (completed 2006-12-07). This rudimentary implementation, deployed in a Zip archive, is used for confirmation of the development configuration.
- The implementation of ODMJNI is sufficient to accomplish an end-to-end connection from a Java application through ODMJNI to the ODMA Connection Manager and a default ODMA DMS for the test application. This allows initial confirmation of the basic handling of OdmConnection interfaces in an ODMA-aware Java-based application.
- There is no document-processing functionality delivered to the Java application beyond confirmation of connection and demonstration that a DMS is reachable and responds to the application.
- Reproducing the compiling and linking of components in this distribution is an useful way to verify that a compatible development environment has been set up.
- 0.25alpha API Regression Check (completed 2006-12-20). This is a version of 0.20alpha that substitutes the 0.30alpha API and demonstrates that the breaking changes have been accommodated by rebuilding odmjni100 classes and leaving odmjni100.dll unchanged. The Check03 test program does not exercise any additional functionality in this release: It is designed to show that nothing that worked before has been broken.
- 0.30alpha Document-Access Features (completed 2007-01-09). This version implements the basic functions for accessing the content and properties of an ODMA document once selected in an available ODMA DMS integration. This allows testing and verification of scenarios in which ODMA documents are made available for retrieval and viewing.
- 0.40alpha Document-Update Features (completed 2007-01-14). This version expands on the functionality of 0.30alpha by implementing updates (commitment of changes) back to the DMS-retained version of a retrieved document.
- 0.50beta Feature-Complete Release (completed 2007-01-25). The basic feature set for ODMJNI 1.0 is completed with introduction of functions for creating new documents in coordination with the DMS. A variation, the saving of a current DMS document as a new DMS document, is implemented at the same time. The ability to open a known ODMA document using its Document ID is omitted, although all required features are available. This function is omitted until code for validating Document IDs is also introduced in 0.60beta. (This is part of a commitment to never allow unacceptable data to be passed to the ODMA Connection Manager and through there to an ODMA-compliant DMS.)
At this point, we officially move out of alpha-level development and are now entering beta-test. There are already some urgent stabilization activities and they are addressed in the progression to the 0.60beta, release.
- 0.5x beta Function-Stabilization Updates (under development). The purpose of this portion of the project is to stabilize all functionality that is apparent at the Java application level. There is a series of interim 0.5xbeta "drops" that are applied as successive patches to the 0.50beta source-code and test tree. The 0.59beta release is a complete roll-up and is the candidate for the public-beta release.
- 0.60beta Public-Beta Release (tbd). The 0.60beta release will be a full roll-up and replacement of the source-code and test tree.
- 0.70beta Packaging (tbd, tentative). Following initiation of the 0.60beta public-beta release, the packaging (including documentation) and deployment of ODMJNI are improved so that it is easier to install and confirm as part of a production Java application. There will be bug fixes and hardening of the code. The code tree is replicated on SourceForge and the project history and materials are fully public.
- 0.80beta Refactoring (tbd, tentative). Along with maintenance and any bug fixes, this release includes a major refactoring of the Java native implementations in odmjni100 to exploit a significant improvement and restructuring of OdmNative100 interfaces and code. There is continuing improvement of regression tests and sample applications begin to take form.
- 0.90beta Hardening (tbd, tentative). This stage is devoted to maintenance and hardening of the code, especially with regard to the threat surface, defensive programming, stress cases, and preparation for the equivalent of "Works on Vista" certification. All FIXME entries in the code are addressed and all XXX entries reviewed. There will also be experiments to reduce the code foot-print, reduce the dependency surface, and separate out the improvements to ODMA headers and the OdmNative100 libraries that are re-usable elsewhere. The documentation is updated and the comments in the code are streamlined for use with JavaDoc and other documentation tools. We declare code complete (this is RC1) and await confirmation that there seem to be no bugs.
- 1.00 Certification (tbd, tentative). This is the version that is declared suitable for production use. The DLLs and JAR files are signed, attestations concerning the tests and source codes are collected, and we are under serious change control. The bug reporting and feature request system is fully operational, there is a trustworthy support spiral that provides for easy tracking and announcements of importance to adopters and their users.
Any further development and deployments will be under new post-1.0 projects. It is already assumed that the OdmNative100 elements will be flexed into a full-up documented deliverable that will also provide a common foundation for an ODMNET 1.0 Bridge for ODMA-aware .NET application programs.
d061201a: Diary & Job Jar
see also:
{Material to be supplied.}
created 2006-11-09-13:48 -0800 (pst) by
orcmid |