Techne

Project Overview

Techne pronounced as `tech-nee' - Wikipedia: in Greek means craft or art, is a project that supports the notion of a typed container - a multi-purpose container that can be specialized into various normative types such as: web container, J2EE (now JEE) container, Spring framework container, etc. as well as non-normative types, those that are geared to the specific needs of families of applications. By building on top of a standard OSGi framework, Techne enhances the framework's capabilities to create new functionality rapidly, to increase runtime dynamicity, to enable total component manageability, and to provide a sophisticated and intuitive assembly model and wiring process out of the box.

Container

The term container is generally defined as "a software system that runs programs". In our context, a container is a system that has one or more instances, each instance is capable of running an application or a set of applications. A more detailed profile of the container we envision (specifically, an OSGi container) is found on this wiki

System Components

The system is basically broken down into two large segments: core infrastructure and advance features. In addition, other supporting modules are samples, a reference implementation, and other modules in the project's sandbox.

The core infrastructure consists of the following modules:

On the other hand, some of the advance features that have been identified are as follows (no bearing on order):

Project Organization

To ensure the production of a high-quality product, the project embraces the concept of development layers, each layer representing a major milestone in its lifecycle. As reflected in SVN, the layer from top to bottom are:

Coding takes place in the development layer. Each piece of code or artifact is related to a JIRA issue (more on this topic in the next section) and checked into SVN. When the issue requirements are complete, the issue is promoted to the Test layer. Typically, this is where system or integrated testing is conducted while development cycles continue unabated in the first layer. We anticipate that professional testers will join the ranks of Techne as part of the development team so this is the area exclusively reserved for them. After issues are satisfactorily tested and QA'd, they are promoted to the Acceptance layer. This is the area where users (or those who sponsored the issues) can join in the fun. A CCB (change control board similar to a PMC except that it is usually ad-hoc and composed entirely of volunteers) would give its blessing and anoint a group of issues for release. Naturally, these anointed issues are moved up to the Release layer.

Contributions

To describe it simply, the development of Techne involves the development of its features to realize a particular module or component. On the other hand, features are slated to a release target determined by the Techne community. When a new feature is proposed, it is entered as a JIRA new feature issue - see Resources for more info on JIRA. Then certain tasks are identified related to this feature, each task perhaps generating more issues (again there's no fix rule here with the exception of the new feature issue creation). But one thing that is really important is that the Techne community assigns each feature to a specific release target. This allows all committers of this project (you automatically become a Techne committer when you register with OPS4J), to be focused on achieving well-defined, common goals and thus the project keeps moving forward as propelled by the OPS4J FlockOfBirds approach.

Prototype Demos

The quick demo is divided into sessions. Each session is intended to demonstrate a basic feature of Techne and usually takes less than 5 minutes to complete.
A list of these sessions and links to each one are provided below. You can either view the demo directly on your browser or download the zip file for viewing later.

Session 1. Typed Containers
Check out why typed containers provide the most appropriate environment for your application.
html zip

Session 2. Componentization
See how the holy grail of software development is easily delivered using simple line commands.
html zip

Session 3. FAR Assembly
Composition of components into runtime assemblies has never been made easier. Find out for your self by clicking on the link below.
html zip

Session 4. Emerging Behavior
This last session explores the ability of runtime assemblies to acquire new behavior as functionality is added or removed from it.
html zip

Resources

JIRA - User's Guide

General Overview
User Stories
Use Cases
Targets
Prototype Design
Project Catalog
Blogs
SVN
Jira
Original Wiki