54,175 research outputs found
The Artificial Intelligence Workbench: a retrospective review
Last decade, biomedical and bioinformatics researchers have been demanding advanced and user-friendly applications for real use in practice. In this context, the Artificial Intelligence Workbench, an open-source Java desktop application framework for scientific software development, emerged with the goal of provid-ing support to both fundamental and applied research in the domain of transla-tional biomedicine and bioinformatics. AIBench automatically provides function-alities that are common to scientific applications, such as user parameter defini-tion, logging facilities, multi-threading execution, experiment repeatability, work-flow management, and fast user interface development, among others. Moreover, AIBench promotes a reusable component based architecture, which also allows assembling new applications by the reuse of libraries from existing projects or third-party software. Ten years have passed since the first release of AIBench, so it is time to look back and check if it has fulfilled the purposes for which it was conceived to and how it evolved over time
JavaScript grid abstractions
In this paper, we describe a Grid abstraction framework that allows access to the Grid infrastructure using JavaScript while leveraging the power of current Grid middleware and upperware toolkits such as the Globus Toolkit and the Java Commodity Grid (CoG) Kit . The system is heavily based on Web 2.0 technologies and allows accessing the Grid through a Service-Oriented Architecture. An application interface in JavaScript is provided to enable developers to access Grid services from JavaScript. Moreover, our framework includes additional services to enable the creation of advanced Grid services. The availability of our framework simplifies not only the development of new services but also the development of advanced client side Grid applications. We demonstrate this ability while providing a mechanism to develop Grid workflows through advanced services and a graphical user interface defined in JavaScript. Overall, Grid developers will have another tool at their disposal that projects a simpler way to distribute and maintain software while at the same time being able to deliver quickly advanced interfaces and social services for the scientific community
ImageJ2: ImageJ for the next generation of scientific image data
ImageJ is an image analysis program extensively used in the biological
sciences and beyond. Due to its ease of use, recordable macro language, and
extensible plug-in architecture, ImageJ enjoys contributions from
non-programmers, amateur programmers, and professional developers alike.
Enabling such a diversity of contributors has resulted in a large community
that spans the biological and physical sciences. However, a rapidly growing
user base, diverging plugin suites, and technical limitations have revealed a
clear need for a concerted software engineering effort to support emerging
imaging paradigms, to ensure the software's ability to handle the requirements
of modern science. Due to these new and emerging challenges in scientific
imaging, ImageJ is at a critical development crossroads.
We present ImageJ2, a total redesign of ImageJ offering a host of new
functionality. It separates concerns, fully decoupling the data model from the
user interface. It emphasizes integration with external applications to
maximize interoperability. Its robust new plugin framework allows everything
from image formats, to scripting languages, to visualization to be extended by
the community. The redesigned data model supports arbitrarily large,
N-dimensional datasets, which are increasingly common in modern image
acquisition. Despite the scope of these changes, backwards compatibility is
maintained such that this new functionality can be seamlessly integrated with
the classic ImageJ interface, allowing users and developers to migrate to these
new methods at their own pace. ImageJ2 provides a framework engineered for
flexibility, intended to support these requirements as well as accommodate
future needs
Using Java for distributed computing in the Gaia satellite data processing
In recent years Java has matured to a stable easy-to-use language with the
flexibility of an interpreter (for reflection etc.) but the performance and
type checking of a compiled language. When we started using Java for
astronomical applications around 1999 they were the first of their kind in
astronomy. Now a great deal of astronomy software is written in Java as are
many business applications.
We discuss the current environment and trends concerning the language and
present an actual example of scientific use of Java for high-performance
distributed computing: ESA's mission Gaia. The Gaia scanning satellite will
perform a galactic census of about 1000 million objects in our galaxy. The Gaia
community has chosen to write its processing software in Java. We explore the
manifold reasons for choosing Java for this large science collaboration.
Gaia processing is numerically complex but highly distributable, some parts
being embarrassingly parallel. We describe the Gaia processing architecture and
its realisation in Java. We delve into the astrometric solution which is the
most advanced and most complex part of the processing. The Gaia simulator is
also written in Java and is the most mature code in the system. This has been
successfully running since about 2005 on the supercomputer "Marenostrum" in
Barcelona. We relate experiences of using Java on a large shared machine.
Finally we discuss Java, including some of its problems, for scientific
computing.Comment: Experimental Astronomy, August 201
Iris: an Extensible Application for Building and Analyzing Spectral Energy Distributions
Iris is an extensible application that provides astronomers with a
user-friendly interface capable of ingesting broad-band data from many
different sources in order to build, explore, and model spectral energy
distributions (SEDs). Iris takes advantage of the standards defined by the
International Virtual Observatory Alliance, but hides the technicalities of
such standards by implementing different layers of abstraction on top of them.
Such intermediate layers provide hooks that users and developers can exploit in
order to extend the capabilities provided by Iris. For instance, custom Python
models can be combined in arbitrary ways with the Iris built-in models or with
other custom functions. As such, Iris offers a platform for the development and
integration of SED data, services, and applications, either from the user's
system or from the web. In this paper we describe the built-in features
provided by Iris for building and analyzing SEDs. We also explore in some
detail the Iris framework and software development kit, showing how astronomers
and software developers can plug their code into an integrated SED analysis
environment.Comment: 18 pages, 8 figures, accepted for publication in Astronomy &
Computin
COEL: A Web-based Chemistry Simulation Framework
The chemical reaction network (CRN) is a widely used formalism to describe
macroscopic behavior of chemical systems. Available tools for CRN modelling and
simulation require local access, installation, and often involve local file
storage, which is susceptible to loss, lacks searchable structure, and does not
support concurrency. Furthermore, simulations are often single-threaded, and
user interfaces are non-trivial to use. Therefore there are significant hurdles
to conducting efficient and collaborative chemical research. In this paper, we
introduce a new enterprise chemistry simulation framework, COEL, which
addresses these issues. COEL is the first web-based framework of its kind. A
visually pleasing and intuitive user interface, simulations that run on a large
computational grid, reliable database storage, and transactional services make
COEL ideal for collaborative research and education. COEL's most prominent
features include ODE-based simulations of chemical reaction networks and
multicompartment reaction networks, with rich options for user interactions
with those networks. COEL provides DNA-strand displacement transformations and
visualization (and is to our knowledge the first CRN framework to do so), GA
optimization of rate constants, expression validation, an application-wide
plotting engine, and SBML/Octave/Matlab export. We also present an overview of
the underlying software and technologies employed and describe the main
architectural decisions driving our development. COEL is available at
http://coel-sim.org for selected research teams only. We plan to provide a part
of COEL's functionality to the general public in the near future.Comment: 23 pages, 12 figures, 1 tabl
Supporting collaborative grid application development within the escience community
The systemic representation and organisation of software artefacts, e.g. specifications, designs, interfaces, and implementations, resulting from the development of large distributed systems from software components have been addressed by our research within the Practitioner and AMES projects [1,2,3,4]. Without appropriate representations and organisations, large collections of existing software are not amenable to the activities of software reuse and software maintenance, as these activities are likely to be severely hindered by the difficulties of understanding the software applications and their associated components. In both of these projects, static analysis of source code and other development artefacts, where available, and subsequent application of reverse engineering techniques were successfully used to develop a more comprehensive understanding of the software applications under study [5,6]. Later research addressed the maintenance of a component library in the context of component-based software product line development and maintenance [7]. The classic software decompositions, horizontal and vertical, proposed by Goguen [8] influenced all of this research. While they are adequate for static composition, they fail to address the dynamic aspects of composing large distributed software applications from components especially where these include software services. The separation of component co-ordination concerns from component functionality proposed in [9] offers a partial solution
- …