ITA Labs — Our products

Wizard Framework

The framework for step by step wizard creation, with a set of typical pages

Wizard framework We have our own wizard building framework to simplify product configuration development.

It's key difference is that it allows building both sequenced and nested wizards, that all work with a single, from architectural standpoint, data context for individual pages from wizards of different levels.

In other words, the pages are not aware of any specific wizard they are activated in. This is a key feature to build up a different wizards from a set of different wizard steps including nested ones with no need to change the logic of individual pages.

This is the framework we've used to build all product configuration wizards for our customers.

We adhere of the concept of easy install, meaning that MSI procedure should be as lightweight as possible, while all complex configuration logic is separated into wizard or even set of wizards. In other words, product configuration is a feature of the product itself rather than MSI script that it difficult to develop and maintain.
And installation prepares a really needed minimum to let the self configuration run.

That approach has several significant advantages:
  • Quicker and easier product development process due to positive effect at early development stages
  • Less issues that could arise at the installation phase due to absence of complex logic within installation module
  • Quick installation and results in completely functional product with no manual configuration headache
  • Reduced cost of infrastructural issues troubleshooting at the system deployment stage

Database Wizard

Turn-key solution to configure database connection, create, update and validate a database

Database wizardTypically all software products should have nearly the same steps implemented to provide data tier configuration and optionally an upgrade. This product is an out of the box wizard solution, SDK, that comes with all necessary wizard steps and features with an ability to extend it with specific SQL scripts, and optionally with extra pages if needed.

The wizard supports database type selection, operating mode selection: new or existing configuration, database server lookup, different authentication modes, new database creation and establishing a connection to an existing one, database structure upgrade, database structure validation, set of SQL script templates to create typical database parts and more.

Database wizard out of the box supports two operating modes:
  • New configuration
  • Existing configuration
New configuration mode:
  • Database type selection: Microsoft SQL Server or Oracle
  • Database server lookup, authentication and connection
  • Existing database selection or definition of a parameters to create a new one
  • Database structure validation and upgrade if needed
  • New database creation
Existing configuration mode:
  • Existing configuration check
  • Database version validation and incremental upgrade if needed
Database wizard functionality could be extended as follows:
  • Addition of extra steps
  • Addition of more database types
  • Declarative rules of database version upgrade between any versions
  • Addition of new set of SQL scripts for database creation and optionally a customization of existing ones
  • Customizable graphic banners

Custom Properties Framework

SDK to extend existing business objects with dynamic set of properties

Custom properties One of the typical tasks of information system development is a creation of user defined set of properties that could be configured and changed at runtime. Meaning an addition of new named properties, providing their types, including dictionary based ones. This framework is a out of the box solution to extend existing business objects with a dynamically customizable properties.

It allows to instantly extend the existing business objects with new features:
  • Custom object properties
  • Configuring dictionaries
  • Setting dictionaries as object properties
There is API for custom properties configuration at runtime.

Workflow Framework

SDK for extending business objects with state driven features

Workflow SDK One of the frequent development tasks is a creation of state driven business objects, with customizable states and state transition rules. This framework provides an out of the box solution to add state driven features to an existing business objects. It supports a role based security model to control which users could change specific object state.

It allows quickly extend exiting business objects with these features:
  • Addition of states
  • State transition rules
  • Security roles definition
There is API to extend and control state driven objects at runtime.

Application Host Framework

SDK for building 24/7 middle-tier as windows service

Host framework Almost all enterprise applications have middle tier, so called business logic tier. There are several architectural solutions to host it. We use special win32 service infrastructure. We created a win32 service host for 24/7 operation and turned it into SDK, that has all necessary infrastructure for configuration, operation, diagnostics etc, built on component technology.

Specific business logic service for specific product requires only development of individual components in terms of component host ideology and have them registered in the host configuration. All infrastructure is already in place.

The host has few turn key subsystems and components:
  • Service itself
  • Component activation subsystem
  • Component management subsystem handling operating system events, such as service start and stop, power events
  • Monitoring and diagnostics
  • Configuration subsystem
  • Diagnostic tracing
  • Error handling subsystem
  • Performance counters
This framework allows building product specific components, using the existing stable platform. That results in these key advantages:
  • Speeds up the development process
  • Unified development
  • Increased product stability
  • Scaling

Enterprise Application Template

Enterprise 24/7 application template with all typical components and programmatic links between them

Enterprise application template During a course of many enterprise projects development we мы выявили built a lot of turn key architecture blocks, that remains nearly the same in all applications with probably slight differences or even completely same. A part of them is built as a set of independent SDKs and frameworks listed above.

However, there is a large part that can not be supplied as an SDK or out of the box components due to the fact that it is a basically a template of source code of a multi tier application. This part is an enterprise application template built as a Visual Studio solution with a set of prepared and configured projects.

The template consists of:
  • Business logic middle-tier as a win32 service and components that perform service registration
  • Performance counters and components that perform their registration
  • Trace and it's settings
  • Event log and components that perform it's registration
  • Administrative API
  • Database tier
  • Business logic
  • Monitoring subsystem
  • Power events handling subsystem
  • Tray agent, command line tool
  • Configuration wizard
  • Administrative client
  • Automated business logic tests
  • Etc
It take literally minutes to build up from scratch an enterprise server product skeleton, that has all necessary parts, and more important, stable and proof. The final step of preparation is a renaming of set of entities (namespaces, file names, product name and customer name). As this is quickly done we're able to focus on specific product features development.