Description
A broad range of projects from a spectrum of disciplines involve the development of
software born from the collaborative efforts of partners from geographically spread
locations. Such software is often the product of large-scale initiatives as new
technological models like the Grid are developed and new e-Infrastructures are
deployed to help solve complex, computational-intensive problems.
Recent experience in such projects has shown that the software products often risk
suffering from lack of coherence and quality. Among the causes of this problem we
find the large variety of tools, languages, platforms, processes and working habits
employed by the partners of the projects. In addition, the issue of available
funding for maintenance and support of software after the initial development phase
in typical research projects often prevents the developed software tools from
reaching production-level quality. Establishing a dedicated build and test
infrastructure for each new project is inefficient, costly and time-consuming and
requires specialized resources, both human and material, that are not easily found.
The ETICS effort aims to support such research and development initiatives by
integrating existing procedures, tools and resources in a coherent infrastructure,
additionally providing an intuitive access point through a web portal and a
professionally managed, multiplatform capability based on Grid technologies. The
outcome of the project will be a facility operated by experts that will enabled
distributed research projects to integrate their code, libraries and application,
validate the code against standard guidelines, run extensive automated tests and
benchmarks, produce reports and improve the overall quality and interoperability of
the software.
ETICS objectives are not to develop new software but to adapt and integrate already
existing capabilities, mainly open source, providing other research project with
the possibility to focus their effort in their specific research field and to avoid
wasting time and resources in such, required, but expensive, activity.
Throughout the duration of the project the ETICS partners will investigate the
advantages of making use of the ETICS services, the technical challenges relates to
running such a facility and its sustainability for the future.
The vision and mission of ETICS will be accomplished through the following
objectives:
• Establish an international and well managed capability for software
configuration, integration, testing and benchmarking for the scientific community.
Software development projects will use the capabilities provided by ETICS to build
and integrate their software and perform complex distributed test and validation
tasks
• Deploy and if necessary adapt best-of-breed software engineering tools and
support infrastructures developed by other projects (EGEE, LCG, NMI) and other open-
source or industrial entities and organize them in a coherent, easy-to-use set of
on-line tools
• Create a repository of libraries that project can readily link against to
validate their software in different configurations conditions
• Leverage a distributed infrastructure of compute and storage resource to
support the software integration and testing activities of a broad range of
software development efforts.
• Collect, organize and publish middleware and applications configuration
information to facilitate interoperability analysis at the early stages of
development and implementation
• Collect from the scientific community sets of test suites that users can
apply to validate deployed middleware and applications and conversely software
providers can use to validate their products for specific uses
• Raise awareness of the need for high-quality standards in the production of
software and promote the identification of common quality guidelines and principles
and their application to software production in open-source academic and research
organization. Study the feasibility of a “Quality Certification” for software
produced by research projects
• Promote the international collaboration between research projects and
establish a virtual community in the field of software engineering contributing to
the development of standards and advancement in the art
From the perspective of Grid application developers, the ETICS service should
provide them with the means to automate their build and test procedures. In the
longer term, via the ETICS service, users will be able to explore meaningful
metrics pertaining to the quality of their software. Further, as Grid application
level services (most concerned by providers of Grid turn key solutions), the ETICS
service will also offer a repository or already built components, services and plug-
ins, with a published quality level. Furthermore, the quality metrics provided by
the ETICS services and available for each artifact in the repository will help
guiding the user in selecting reliable software dependencies. Finally, the
repository will also contain pre-build artifacts for specific hardware platforms
and operating systems, which will help the developers to assess the platform
independence of their entire service, including each and every dependency the
service is relying on.
In conclusion, most Grid and distributed software project invest in a build and
test system in order to automatically build and test their software and monitor key
quality indicators. ETICS takes requirements from many Grid and distributed
projects and with the help of Grid middleware, offers a generic yet powerful
solution for building and testing software. Finally, building software via such a
systematic can provide a rich pool of published quality components, services and
plug-ins, on which the next generation of Grid and distributed applications could
be based on and composed of.
Author
Marc-Elian Begin
(CERN)
Co-author
Alberto Di Meglio
(CERN)