AIBench: a rapid application development framework for translational research in biomedicine

Applied research in both biomedical discovery and translational medicine today often requires the rapid development of fully featured applications containing both advanced and specific functionalities, for real use in practice. In this context, new tools are demanded that allowfor efficient generati...

ver descrição completa

Detalhes bibliográficos
Autor principal: Rocha, Miguel (author)
Outros Autores: Glez-Peña, Daniel (author), Reboiro-Jato, M. (author), Maia, P. (author), Díaz, Fernando (author), Fdez-Riverola, Florentino (author)
Formato: article
Idioma:eng
Publicado em: 2010
Assuntos:
Texto completo:http://hdl.handle.net/1822/24302
País:Portugal
Oai:oai:repositorium.sdum.uminho.pt:1822/24302
Descrição
Resumo:Applied research in both biomedical discovery and translational medicine today often requires the rapid development of fully featured applications containing both advanced and specific functionalities, for real use in practice. In this context, new tools are demanded that allowfor efficient generation, deployment and reutilization of such biomedical applications as well as their associated functionalities. In this context this paper presents AIBench, an open-source Java desktop application framework for scientific software development with the goal of providing support to both fundamental and applied research in the domain of translational biomedicine. AIBench incorporates a powerful plug-in engine, a flexible scripting platform and takes advantage of Java annotations, reflection and various design principles in order to make it easy to use, lightweight and non-intrusive. By following a basic input–processing–output life cycle, it is possible to fully develop multiplatform applications using only three types of concepts: operations, data-types and views. The framework automatically provides functionalities that are present in a typical scientific application including user parameter definition, logging facilities, multi-threading execution, experiment repeatability and user interface workflow management, among others. The proposed framework architecture defines a reusable component model which also allows assembling new applications by the reuse of libraries from past projects or third-party software.