3. 3. ENVIRONMENT-BASED MODEL
The purpose of this model is to offer a working frame which will serve as a guide in the development of e-
business applications pivoting on entrepreneurial platforms all along its lifecycle to take advantage of the
properties and benefits which these new architectural methods and the ICT are able to provide.
The model has been sub-divided into a set of logic entities called environments which suggest a partition
over the set of states of lifecycle in the development of the application. Each environment defines a set of
properties and methods over the development of the application.
Concurrently, the model establishes a relationship among the different environments, which means an
ordering of the set from the lower to the highest stability of the product generated.
Figure 1. Working environment model.
According to the model defined in Fig.1, a software product experiences an increasing evolution towards
stability and at a give time, it can be located at any of the states shown in Fig.2. We are going to analyze each
of the environments proposed.
Figure 2. Relationship between application state and application stability
3.1 Development Environment
This development environment combines the wider area of tasks, and encompasses them from the beginning
of the software lifecycle âsampling requirementsâ to the actual obtaining of a version of the application
âor of a subset of itâ with a minimum of stability.
The main tasks managed in this environment are: sampling requirements and the establishing of
specifications of the application in documents to enable the involved personnel to have a general view of the
application; the analysis of the architecture and technical design so as to be able to define the most adequate
technology and establish a robust base from which to view the possible errors in the project before its
implementation; the implementation proper pivoting on the previous task, which will reduce the complexity
of the process; and finally, the unit tests which each component of the project will pass on its modules and
components in its local working environment.
3.2 Integration Environment
Tasks related to combining the different elements which make up the application together with the
integration tests to validate the general performance will be considered in this integration environment.
Development environment Integration environment
Preproduction environment Demonstration environment
Production environment
Software Repository
Distributed file system
Version control system
Tagging policy Deployment document
Policies for management incidents
Development, Integration, Demonstration, Preproduction, Production
- Stability + Stability
IADIS International Conference e-Commerce 2005
291
5. âą A version control system that manages the concurrent access and the different versions of the
information generated all along the project; a control system of the source code and of the general
working policies. This system behaves as a central communication node among the different
environments making it possible for the information to move from one to another point in an easy,
uniform and controlled way.
3.7 Environments Migration Strategy
The environment migration strategy describes, for each element and environment, the preconditions required
in order to transfer that element, its target environment, and how this transference should be performed. This
strategy consists of a set of policies, protocols and procedures that define a univocal relationship between
different environments, thus providing coverage for the softwareâs life-cycle and enabling extra checks to
ensure its correctness.
Figure 1 shows the most relevant relationships between the systemâs elements, which will be described in
detail in the next sections.
3.7.1 Development and Integration
This is the first migration process to be carried out; although it is not the most critical one, it is tedious
because of the large number of elements and resources involved: developers, deploying documents, control
version systems, etc.
In order to perform the migration, developers are in charge of committing the application modules into
the version control system. They are also asked to carefully tag the committed modules according to the
chosen policy.
Besides, the development manager maintains a set of deploying documents which are very useful in order
to detect technological mistakes or incorrect tag policy uses.
The version control system is the key for this transference, as it is used in the integration environment so
as to retrieve the files required in order to build the application.
To accomplish this task, the integration manager exports the committed modules from the version control
system into the integration environment.
Summarizing, the steps required in order to migrate our application from the development environment to
the integration one are:
âą Developers commit their modules to the control version system.
âą They also tag the modules according to the chosen policy.
âą The integration manager exports the committed modules, which were previously selected by their
corresponding tag, into the integration environment.
âą The integration team builds the application from the exported modules, following the deployment
document.
3.7.2 Integration and Pre-production
The preproduction is the stage where the application is deployed and tested preceding its transfer to the
production environment. Because it is a testing environment, the migration from the integration environment
is not critical; however, if we need to take it back to the previous environments âin order to correct errorsâ,
we must carefully follow the deployment documents so as to avoid any interferences between the different
environmentsâ configurations.
As in the latter case, a team member is assigned as preproduction manager, who is in charge of deploying
the application following the corresponding deployment document âwhich lists the implied modules and
their location.
3.7.3 Pre-production and Production
The migration from the preproduction stage to the production environment is the most critical phase, because
the latter one holds the real world application that supports the organizationâs business processes, and
therefore has a direct impact on its economy. Thus, an erroneous management at this stage may imply a
considerable loss for enterprises.
IADIS International Conference e-Commerce 2005
293
7. file system based on the SMB protocol [5], which offers high interoperability through heterogeneous
networks.
The control version system and the network file service are both installed on optimized Linux servers
within our working environment [6].
Last, but not least, it is indispensable to safeguard the repositoryâs information through a suitable backup
policy. In order to complement the backup system, we use a network node regeneration system named GAIA
[10].
4.2 Tagging Policy
Software traverses several states throughout the entire development process used in the methodology that we
propose in this paper. In order to ensure the softwareâs proper operation, it is necessary to identify which
version is installed in each environment, and its maturity grade. In order to provide this identification, we
propose a nomenclature (see table 1) that associates each version tagâs name with the softwareâs state and
maturity for that particular version.
Table 1. Nomenclature proposed in the tagging policy for our modelâs instance.
Environment Label syntax Prefix meaning
Development DR_ProjectName_ProjectVersion Development Release
Integration IR_ ProjectName _ ProjectVersion Integration Release
Pre-production PR_ ProjectName _ ProjectVersion Preproduction Release
Demonstration SR_ ProjectName _ ProjectVersion Show Release
Production FR_ ProjectName _ ProjectVersion Final Release
4.3 Development Environment
The development environmentâs setup has been guided by a local work philosophy, where each developer
uses a workstation endowed with the tools and services required in order to the assigned tasks, thus providing
autonomous IT equipment so as to develop and test the application modules without interfering with other
membersâ work.
However, some services can be shared without conflicts in concurrent development works, and thus they
can be provided by a centralized server and used safely by the entire team. This is the case of the LDAP [3]
directory service, where changes are introduced very seldom and they are so small that they do not interfere
with each userâs work; therefore, it is shared among all the users in the development and integration
environments,
Finally, a GUI CVS client is installed in each developerâs workstation in order to provide access to the
control version system in a secure, easy way.
4.4 Integration Environment
The main task carried out at this stage is the integration of the modules committed by developers, in order to
build the application. In addition, an integration test is performed so as to check the applicationâs integrity.
After that, the integrated application is submitted to a basic operating test.
For this environment to operate smoothly and efficiently, we will need the following services: A system
which automatically retrieves the files required in order to build the application, based on the established
tagging policy, a system that automates the applicationâs building process, thus performing every necessary
step (compilation, link, archiveâŠ) in order to obtain the applicationâs operative files (Apache ANT) and the
external applications and services required so as to run the application (Java Virtual Machine) [6].
In order to perform the operating tests, the application must be up and running, and therefore these tests
require the above mentioned external applications and services, such as the Java Virtual Machine, the LDAP
directory service, the database service, the application server together with the Web server, etc. However,
these applications and services can be downsized âit is not required that they suit the real world demands
[6].
IADIS International Conference e-Commerce 2005
295