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:
- Main
- Runtime Shell
- Main Console
- Command Processor
- Framework Launcher
- Functional Archive
- Container Factory
- Builder
- Component Manager
- Admin
- Common Utilities
On the other hand, some of the advance features that have been identified are as follows (no bearing on order):
- Declarative Services
- Service Manager
- Event Manager
- Lifecycle Services
- Rules Engine
- Component Command Language (COCOL)
- Application Console
- Eclipse Integration
- Dashboard
- Enterprise Provisioning
- Inter-Container Communication
- Ajax Bundling
- Virtual Devices and Gateways
- UPnP
- Software Componentry (see equinox suggestions on importance here: http://wiki.eclipse.org/index.php/Equinox_Crazy_Ideas)
- Container Morphing
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
Links
General Overview
User Stories
Use Cases
Targets
Prototype Design
Project Catalog
Blogs
SVN
Jira
Original Wiki