An automated real-time integration and interoperability ...cache (Redis) for improved performance; d...

13
SOFTWARE Open Access An automated real-time integration and interoperability framework for bioinformatics Pedro Lopes 1* and José Luís Oliveira 1 Abstract Background: In recent years data integration has become an everyday undertaking for life sciences researchers. Aggregating and processing data from disparate sources, whether through specific developed software or via manual processes, is a common task for scientists. However, the scope and usability of the majority of current integration tools fail to deal with the fast growing and highly dynamic nature of biomedical data. Results: In this work we introduce a reactive and event-driven framework that simplifies real-time data integration and interoperability. This platform facilitates otherwise difficult tasks, such as connecting heterogeneous services, indexing, linking and transferring data from distinct resources, or subscribing to notifications regarding the timeliness of dynamic data. For developers, the framework automates the deployment of integrative and interoperable bioinformatics applications, using atomic data storage for content change detection, and enabling agent-based intelligent extract, transform and load tasks. Conclusions: This work bridges the gap between the growing number of services, accessing specific data sources or algorithms, and the growing number of users, performing simple integration tasks on a recurring basis, through a streamlined workspace available to researchers and developers alike. Keywords: Data integration, Interoperability, Publish/subscribe, Integration-as-a-service, Intelligent ETL, Workflow, Cloud, Service-oriented architecture, Event-driven Background The scale of information available for life sciences re- search is growing rapidly, bringing increasing challenges in hardware and software [1, 2]. The value of these raw data can only be proved if adequately exploited by end- users. This reinforces the role of integration and inter- operability at several service layers, allowing them to focus on the most relevant data for their research ques- tions [3]. Biomedical data are complex: heterogeneously struc- tured, originating from several different sources, repre- sented through various standards, provided via distinct formats and with meaning changing over time [4, 5]. From next generation sequencing hardware [6] to the growing availability of biomedical sensors, tapping this on-going data stream is an unwieldy mission [7]. Acces- sing, integrating and publishing data are essential activities for success, common to commercial and scien- tific research projects [8]. Many life science researchers perform these tasks on a regular basis, whether through the manual collection and curation of data, or the use of specific software [9, 10]. In recent years, data integration and interoperability is focused on three interdependent domains: cloud-based strategies [11, 12], service-oriented architectures [13] and semantic web technologies [14]. Cloud-based approaches are adequate for institutions that want to delegate the solution for computational re- quirements. Processing high throughput sequencing data or executing intensive analysis algorithms involves a technical layer that is greatly enhanced by using grid- and cloud-based architectures [15]. This removes any technological hardware concern from the researchers' work. In addition, improved availability and ease-of- access, to and from cloud-based resources, further pro- motes the use of cloud-based strategies. However, for the majority of researchers, their problems are much smaller and focused, and, where the implementation of a * Correspondence: [email protected] 1 DETI/IEETA, Universidade de Aveiro, Campus Universitario de Santiago, Aveiro 3810-193, Portugal Full list of author information is available at the end of the article © 2015 Lopes and Oliveira. Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver (http://creativecommons.org/publicdomain/zero/1.0/) applies to the data made available in this article, unless otherwise stated. Lopes and Oliveira BMC Bioinformatics (2015) 16:328 DOI 10.1186/s12859-015-0761-3

Transcript of An automated real-time integration and interoperability ...cache (Redis) for improved performance; d...

Page 1: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

SOFTWARE Open Access

An automated real-time integration andinteroperability framework for bioinformaticsPedro Lopes1* and José Luís Oliveira1

Abstract

Background: In recent years data integration has become an everyday undertaking for life sciences researchers.Aggregating and processing data from disparate sources, whether through specific developed software or viamanual processes, is a common task for scientists. However, the scope and usability of the majority of currentintegration tools fail to deal with the fast growing and highly dynamic nature of biomedical data.

Results: In this work we introduce a reactive and event-driven framework that simplifies real-time data integrationand interoperability. This platform facilitates otherwise difficult tasks, such as connecting heterogeneous services,indexing, linking and transferring data from distinct resources, or subscribing to notifications regarding thetimeliness of dynamic data. For developers, the framework automates the deployment of integrative andinteroperable bioinformatics applications, using atomic data storage for content change detection, and enablingagent-based intelligent extract, transform and load tasks.

Conclusions: This work bridges the gap between the growing number of services, accessing specific data sourcesor algorithms, and the growing number of users, performing simple integration tasks on a recurring basis, througha streamlined workspace available to researchers and developers alike.

Keywords: Data integration, Interoperability, Publish/subscribe, Integration-as-a-service, Intelligent ETL, Workflow,Cloud, Service-oriented architecture, Event-driven

BackgroundThe scale of information available for life sciences re-search is growing rapidly, bringing increasing challengesin hardware and software [1, 2]. The value of these rawdata can only be proved if adequately exploited by end-users. This reinforces the role of integration and inter-operability at several service layers, allowing them tofocus on the most relevant data for their research ques-tions [3].Biomedical data are complex: heterogeneously struc-

tured, originating from several different sources, repre-sented through various standards, provided via distinctformats and with meaning changing over time [4, 5].From next generation sequencing hardware [6] to thegrowing availability of biomedical sensors, tapping thison-going data stream is an unwieldy mission [7]. Acces-sing, integrating and publishing data are essential

activities for success, common to commercial and scien-tific research projects [8]. Many life science researchersperform these tasks on a regular basis, whether throughthe manual collection and curation of data, or the use ofspecific software [9, 10].In recent years, data integration and interoperability is

focused on three interdependent domains: cloud-basedstrategies [11, 12], service-oriented architectures [13]and semantic web technologies [14].Cloud-based approaches are adequate for institutions

that want to delegate the solution for computational re-quirements. Processing high throughput sequencing dataor executing intensive analysis algorithms involves atechnical layer that is greatly enhanced by using grid-and cloud-based architectures [15]. This removes anytechnological hardware concern from the researchers'work. In addition, improved availability and ease-of-access, to and from cloud-based resources, further pro-motes the use of cloud-based strategies. However, forthe majority of researchers, their problems are muchsmaller and focused, and, where the implementation of a

* Correspondence: [email protected]/IEETA, Universidade de Aveiro, Campus Universitario de Santiago,Aveiro 3810-193, PortugalFull list of author information is available at the end of the article

© 2015 Lopes and Oliveira. Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, andreproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link tothe Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver(http://creativecommons.org/publicdomain/zero/1.0/) applies to the data made available in this article, unless otherwise stated.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 DOI 10.1186/s12859-015-0761-3

Page 2: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

full cloud-based stack is relevant, access to these re-sources is difficult and expensive.Workflow management tools represent a leap forward

for service interoperability in bioinformatics. The abilityto create comprehensive workflows eased researchers’work [16]. Nowadays, connecting multiple services anddata sources is a recurring task. Yet, tools such as Yabi[17], Galaxy [18] or Taverna [19] lack automation strat-egies, essential for real-time features.The Semantic Web paradigm has been promoted as a

perfect fit for the innate complexity of the life sciences.The complex biological data relationships are betterexpressed through semantic predicates than what is pos-sible in relational models or tabular files [20]. Althoughapplications such as the semantic Diseasecard [21] or ar-chitectures like Semantic Automated Discovery and In-tegration (SADI) [22] already commoditize SemanticWeb technologies, this paradigm is not a “one size fitsall” solution.In this work we introduce an open-source framework

to streamline data integration and web service interoper-ability tasks. Our goals are two-fold: enabling the auto-mated real-time, reactive or event-driven analysis ofdata, and empowering the creation of state-of-the-artapplications.Traditional integration approaches, in use by data

warehouses, rely on batch, off-line Extract-Transform-Load (ETL) processes. These are manually triggered onregular intervals of downtime, which can range fromweeks to months or even years. However, in the life sci-ences domain, the demand for fresh data cannot be ig-nored. Hence, we need to deploy new strategies that aredynamic [23], reactive [24] and event-driven [25, 26].Thus, today’s platforms must act intelligently, i.e., inreal-time and autonomously, to changes detected in in-tegrated environments.There is untapped potential in the real-time and

event-driven integration of data. Researchers want to ac-cess the most up-to-date datasets; thus, ensuring thatdata are synchronized across resources continues to bean on-going challenge. Combining this need with the re-sources’ heterogeneity and distribution, and we have amajor bottleneck for faster scientific progress.Our approach is based on the creation and deploy-

ment of intelligent agents. Agents track data changes onremote data sources, identifying new events based onuser-specified conditions. Next, events trigger the pro-cessing of actions based on user-specified templates.Agents monitor resources in CSV, JSON, XML or SQLformats, which cover the majority of data sources andservices available. Templates handle integration actions,interacting with files, databases, emails or URLs. As a re-sult, there are endless combinations for customisable in-tegration tasks, connecting events detected by the agents

with actions configured in templates. Among others, theframework empowers live data integration and heteroge-neous many-to-many interoperability. In addition to thementioned integration scenario, this platform is suitableto several other research problems within and beyondthe life sciences.

ImplementationThe framework’s current version includes two compo-nents: server and distributed clients, both available touse and download at https://bioinformatics.ua.pt/i2x/.The server is the main platform component, powering

the framework’s core features. The distributed clientscripts enable deploying local agents, using an internalpackaged library.The source code is available at GitHub (https://

bioinformatics.ua.pt/i2x/docs/install/index), under theMIT free software license.

ArchitectureFigure 1 details the framework’s architecture, includingits basic components, described next.Original resources refer to the data sources being

monitored by the configured agents. In our initial ver-sion these endpoints can provide data in SQL, CSV/TSV, XML or JSON format.Agents are intelligent distributed engines tracking re-

sources. Deployed agents form a multiple agent systemfocused on extracting content for verification in format-specific algorithms. Internally, each agent analyses re-sources detecting changes in comparison to previousstates. Agents are modelled to include the configurationproperties required to setup automated real-time con-tent change detection from heterogeneous resources.This includes miscellaneous agent features such asscheduling, endpoints, connection strings, data selectorsor caching definitions, among others.Agents are executed in the main server or in remote

locations using the framework’s distributed client scripts.This results in improved security as data exchanges be-tween the original data sources and the server compo-nent are reduced, and all transactions are performed viaHTTPS.The agent’s monitoring scheduling is also flexible, as

available schedules are not hard-coded. The schedule listis defined in the application settings and can change ondistinct server instances. More importantly, whereas thebasic modus operandi is reactive integration relying onscheduled polling, content changes can also be pusheddirectly to agents, enabling passive integration.Within the agents we have detectors. These are the al-

gorithms that perform the actual resource tracking. Detec-tion algorithms look for changes in the output contentfrom the origin resources. The detector connects to the

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 2 of 13

Page 3: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

data store to analyse, retrieve and compare event metadataobtained by the agents.In the current implementation, detectors can identify

changes in four distinct formats: CSV/TSV files, SQL da-tabases (MySQL or PostgreSQL), XML or JSON data.These formats cover the output of the majority of datasources and web services available. For instance, we canwrite complex queries that fully explore SQL’s potentialto extract data for detection. Moreover, this open archi-tecture makes it easy to build on these methods to ex-pand the detection to extra formats.Agents can be configured with one or more Seeds.

Seeds enable the dynamic population of values in theagents’ configuration. Although agents are flexibleenough to cover the collection of data from disparate

sources, there are scenarios where we need to launchagents for a very large number of targets with a similarconfiguration (for example, to iterate over a list of iden-tifiers such as genes, proteins or publications). This iswhere Seeds are used. Seeds’ configuration is identical toagents’ as the framework uses similar selectors to obtainseed values that fill in the gaps in the associated agents’configuration, enabling the dynamic creation of agents.A sample scenario where seeds can be helpful revolvesaround the extraction of data from XML content feeds.The outcomes of agents’ monitoring process are Events.Each content/state “change” detected by the agent cre-ates a new event. This triggers the execution of actionsthrough delivery templates, enabling a controlled flow ofdata within distinct resources. Events are atomic and

Fig. 1 Framework architecture highlighting the different system layers. a external Original Resources are accessed for data extraction; b local ordistributed Agents poll Original Resources; c the internal Data store uses a relational database (PostgreSQL or MySQL) to store data and an objectcache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls the entireapplication and its API; e the Postman applies the data extracted by the Agents to the Templates and executes the final delivery; f the externalDestination Resources receive the data from the system.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 3 of 13

Page 4: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

contain the metadata required for finalizing the integra-tion task.The internal data store combines a relational database

with a high-performance cache to persist applicationdata. The platform uses the relational database to storeall internal data, from agents’ configurations to user de-tails. In addition to these, it stores all the required con-tent verification elements. In addition, the system alsofeatures a Redis cache for faster change detection andevent generation.The FluxCapacitor is the main application controller,

registering and proxying everything. With all compo-nents deployed independently, the FluxCapacitor con-nects all components, acting as as a flow manager andensuring that all operations are performed smoothly,from event detection to the final delivery. Moreover,FluxCapacitor also enables the framework’s API, empow-ering the various platform web services.The Postman, as implied by its naming, performs the

delivery of each template. That is, it finalises the integra-tion tasks, receiving event data and applying them to thedelivery template for execution.Destination resources are the templates’ objects to

which the Postman will connect for the final delivery.Delivery Templates define the actions executed for newevents. The current version contains templates for exe-cuting SQL queries, sending emails, calling web services(using URL routes) or managing files (in a private userworkspace or in an associated Dropbox account). Likeagents, the templates set can be extended with additionalplugins to connect custom services or delivery types.To connect agents and templates we have Integrations.

That is, integrations define the data origin and destination.

Integrations match multiple agents with multiple tem-plates, enabling a many-to-many data distribution.At last, the log engine stores summary information for

all actions and flows. Each log entry contains the min-imal set of information required to re-enact specifictransactions or errors. This includes timestamps, origin/destination and the messages sent. For improved track-ing and analysis, this backend uses the Sentry platform.Agents, templates and integrations’ metadata are

stored in the internal database. We devised a flexibleand dynamic data model that allows the easy configur-ation and update of these properties via the platform’sweb interface. Further details regarding the internalframework architecture and model are available on thedocumentation at https://bioinformatics.ua.pt/i2x/docs.

System workflowsFigure 2’s simplified sequence diagram features theframework’s Extract-Transform-Load pipeline, from datasource polling to resource delivery. The sequence stepsare listed next.

1. Poll Content (Agent-Origin resource): the agentconnects to external data sources and loads content.

2. Return Content (Origin resource-Agent): the datasource returns the requested content.

3. Check Content (Agent-Detector): the agent sendsacquired data to Detector for content changedetection.

4. Check Changes (Detector-Data store): the Detectorimports the data into the internal Data store andchecks if there have been any changes since the lastupdate (new events).

Fig. 2 Framework monitoring and integration sequence diagram. In addition to the listed steps, all actions are logged internally forauditing, error tracking and performance analysis. Two alternative pipelines can be executed: a distributed agents generate a differentsequence from step 3, where FluxCapacitor mediates all interactions; b events data can be pushed directly into the platform, generatinga new sequence starting at step 7.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 4 of 13

Page 5: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

5. Return Data (Data store-Detector): the Data storereturns a dataset with the unique new content.

6. Return Events (Detector-Agent): the Detector generatesa set of events and returns them to the Agent.

7. Push event (Agent-FluxCapacitor): the Agent pushesevent data iteratively (one connection for eachevent) to the FluxCapacitor

8. Forward data (Flux Capacitor-Postman): theFluxCapacitor sends event data to the Postman fordelivery.

9. Load template Postman-Data store: the Postmanloads the configured templates from the Data store.

10.Return template Data store-Postman: the Data storereturns matching templates.

11.Deliver Postman-Destination resource: the Postmanperforms the final delivery, transforming thetemplate with the event data, thus concluding theETL workflow.

There are two more pipelines enabled that imply min-imal changes to the framework’s base pipeline: a) whendealing with remote agents, and b) when event data arepushed from external resources. The latter complementsthe original reactive polling-based approach, which relieson recurring data fetching from the original sources,with a passive push-based strategy, where the originalsources must send the new data to an open endpoint inour platform.For the first alternative (Fig. 2a), there are a couple

additional steps on the content detection sequence. TheFluxCapacitor mediates the content change detection,acting as a middleware layer between the remote agentand the detection engine. This means that remote agentsonly interact with the main application controller andAPI, the FluxCapacitor.On the second scenario (Fig. 2b), when external pro-

viders push events directly, the content detection sub-sequence is ignored. This is where our platform achievesoptimal performance. As it is not necessary to fetch datafrom the original sources, we can skip the change detec-tion algorithm and start the event processing immedi-ately. The internal pipeline starts on step 7 as data arepushed directly from the external resources to the API.In this case, the original data sources are responsible forsending new data to the platform’s API. The drawbackof this approach is that it implies implementationchanges in the original data sources.

Agent distributionThis distributed architecture relies on the ability to de-ploy intelligent remote agents. Agents can be executedin the server-side, on the same machine as the servercomponent, or at the client-side, where there is directaccess to resources.

This feature is relevant when we consider the amountof data available in legacy systems, such as relational da-tabases or CSV files, which are not available throughpublic URLs or services, and also secure private environ-ments. In these scenarios, client agents are configuredwith the server details, and deployed on the resourcelocation.A script controls local agent execution, loading all re-

quired code through a standalone library. The ETLworkflow for distributed agents is similar to what hap-pens in the main server. The major change regards thecontent change detection engine. Whereas with server-side agents the cache verification occurs within the ser-ver codebase, with client-side agents a web service callto the server API performs the verification. Likewise,with new events, the client agent initiates the deliverythrough another web service call.

Dynamic content change detectionTo ensure a reliable stream of changed data, this frame-work relies on a set of content change detection services.As we cannot pre-emptively identify what is new in theoriginal data sources, these services perform basic detec-tion and filtering actions [27], specialised for each inte-grated data format. This enables the rapid identificationof new events. The architecture adopts an atomic datastorage approach for content change detection. That is,agents are configured to extract defined data elementsfrom the original sources, and each of these is independ-ently stored, without dependencies to other resources,datasets or agents. This verification process occurs infour steps.

1. A new detector loads agent metadata according tothe resource data format. For instance, the CSVdetector implementation is different from the SQLdatabase detector one, although both share the sameinterface.

2. The detector polls the resource for data, whichreturns the requested dataset. Again, this process isdetector-based, requiring format-specific algorithms.

3. The detector validates the retrieved data in aninternal cache. The cache acts as the atomic datastorage component, storing each data elementuniquely.

4. If the retrieved data are not in the cache, i.e., dataare fresh, a new event is created, triggering the datapush to the main application controller for deliveryand storing the new data in the cache. If the dataare not new, the integration process stops.

By default, the platform resorts to a solution based onthe internal relational database to store events metadatafor verification. To improve detection performance, the

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 5 of 13

Page 6: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

framework can use a Redis cache instead, making the con-tent change detection process faster and more efficient.The cache verification process can use two distinct

data elements. On the one hand, users can configure thecache property for each agent specifying what variablethe change detection algorithm will monitor. Thisshould be set to track unique data properties, namelyidentifiers. On the other hand, if there are no data ele-ments that can identify integrated data unequivocally,the framework creates and stores an MD5 hash of thedata elements’ content. As changing content results in anew hash, we can detect new events without comprom-ising the system performance.

Job processingScalability issues in automated real-time integration sys-tems are a cause for concern. For example, in moderndata processing it is mandatory that information is proc-essed as efficiently as possible. Hence, several challengessurface at the integration and interoperability level. Scal-ability, performance, processing time or computationalrequirements are some of the bottlenecks we face. Totackle them, we employ a queue-based approach to con-trol the on-demand execution of monitoring jobs. Sincethese are the more computationally intensive algorithms,each monitoring task is placed on a homogeneousqueue, without priority ordering. During the predeter-mined scheduling intervals, the framework launches therespective agents.In parallel with the application server, a queue tracking

service is continuously running, dequeuing jobs accord-ing to the system’s resources load. For instance, if thesystem can only execute two tasks simultaneously, andthere are four monitoring tasks on the queue, they willbe processed two at the time, in order of arrival. Tasksstart with the agent monitoring and proceed until thefinal delivery. Moreover, the job execution daemon isflexible enough to allow distributing the load throughmultiple processing cores. As such, for computationallyintensive tasks we can fully explore multithreading cap-abilities to optimize the overall system performance.In spite of being a rather simplistic scaling method,

this strategy prevents system overloads without com-promising the near real-time solution, i.e., introduceddelays are not significant to the application workflow.

Extracting, transforming and loading dataAt a basic level, this proposal introduces an intelli-gent ETL proxy. The framework simplifies the processof extracting, transforming and loading data from dis-tributed sources to heterogeneous destinations. Thedata extraction for each resource is configured in theagent, through selectors. Selectors are key-value pairs,mapping a unique variable name, the key, with an

expression to extract data elements, the value. Wherekeys are strings, values are specific to each data for-mat. For example, with CSV data, values are columnnumbers, but with XML data, values are XPath querystrings.Delivery templates perform the transform and load

process. Their configuration can have several variables,named within the %{<variable name>} expression. Thecustom template engine identifies variables at runtimethat match the selector keys configured in the agent(being transferred in the event data). A variable inthe template must have a corresponding selector inthe agent. Yet, variables can be used multiple timesthroughout the template.Additional features, such as data mapping in tem-

plates, can be achieved using a Ruby code script (with amapping matrix, a switch statement or multiple condi-tion tests) within the ${code(<ruby script>)} function.We do not impose any restrictions to possible mappings,as long as the Ruby script is valid and outputs contentsuitable to the delivery format.For instance, an integration task that extracts data

from a CSV file to a SQL database has an agent witha set of selectors matching CSV column numbers, theselector value, with template variable names, the se-lector key. During the transform and load process,the Postman replaces SQL template variables (in theINSERT INTO… statement) with values obtained foreach variable at each CSV row – Fig. 3.Besides transforming static data for variables, templates

can call internal functions or execute custom transform-ation code. Functions, named within ${<function name>},provide quick access to programmatic operations. For ex-ample, ${datetime} outputs the time of delivery in thetemplate.As we cannot pre-emptively foresee all possible data

mapping and transformation operations, we enablethe execution of complex operations in Ruby code.The ${code(<ruby script>)} function enables writingscripts that are evaluated during the delivery. This en-dows templates with a generic and flexible strategyfor performing complex data deliveries. Taking thisapproach to the limit, we can perform a delivery thatis entirely based on the execution of custom Rubycode. Code blocks can be of any size, as long as theyare valid and finish returning a value. This coversboth simple transformations such as numerical calcu-lations, and complex operations such as matrix-basedtranslations or mappings. Hence, we enable templateswith conditional transformations, equations solving,strings manipulation, or calls to system functions,among many other operations. Further details areavailable in the framework documentation, online athttps://bioinformatics.ua.pt/i2x/docs.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 6 of 13

Page 7: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

ResultsThis framework brings a new perspective to the scien-tific data integration landscape, summarised in threemain features, discussed in detail next.

� Automated real-time data integration is achievedthrough the deployment of intelligent agents, whichcan operate remotely, to monitor data sources.

� Improved data delivery to heterogeneousdestinations using a template-based approach,allowing transmitting and transforming data.

� Advanced integration and interoperability, as we canuse the framework to empower multiple service-oriented architectures, from publish/subscribe tocloud-based integration-as-a-service.

Real-time content monitoringAlthough the real-time paradigm is seldom applied to thelife sciences domain, there are relevant research opportun-ities, besides genomics, open to exploration. For example,in health care, real-time analysis [28] can be used to

improve patient data monitoring or, at an institutionallevel, to enhance the collection of statistical data [29].This framework ensures real-time reliable data trans-

mission and up-to-datedness. Real-time refers to the en-tire integration process. After the initial test, weheuristically decided that “every 5 minutes” representedthe best trade-off between the overall application per-formance and researchers’ real-time demands to be thesmallest update interval. Nevertheless, the platform canbe setup to monitor data sources in any given interval,from every second to every year.Local (server-side) or remote (client-side) agents per-

form resource-monitoring tasks. While server-side mon-itoring is enclosed within the server, remote monitoringbrings three key benefits: distribution, improved loadcontrol and better security.The ability to download, configure and execute moni-

toring tasks locally adds a unique distribution layer. Atthe architecture level, we can deploy and configure anynumber of remote agents, pushing data to the frame-work’s main server.

Fig. 3 Applying data transformations. Data from Original Resources (in CSV/TSV, XML, JSON or SQL) can be easily translated and transformed (intoURL requests, files, SQL queries or emails) using the framework’s templates: a CSV data are automatically inserted into a SQL database; b data areextracted from a SQL query into a CSV file; c XML elements are extracted (using XPath) and sent to a web service via POST request.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 7 of 13

Page 8: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

Local agent execution moves the monitoring scheduleresponsibility to the agent owners. As a result, agents’scheduling is more flexible. Agents run as a standalonescript with an associated configuration file. Scheduledtasks or manual ad-hoc execution (whenever dataowners want to integrate/publish new data) automatethe script execution.At last, using client-side agents results in a more se-

cure ecosystem. All communications with the platformare already secured through HTTPS. Yet, with client-side agents, sensitive content, such as authenticationcredentials or private API tokens, are not stored in theserver. All configurations are saved locally, in a privateJSON file. Moreover, user-based access tokens, unique32 character strings, control the API data exchanges re-quired for remote monitoring. Users can add one ormore tokens and revoke existing ones in the server’sweb interface. This token-based strategy also ensuresthat client-side agents only access the user's integrationsand templates.

Template-based deliveryThe use of template-based engines in software is com-mon and the integration domain is not an exception.From meta-programming [30] to service composition[31], templates are used to simplify recurring tasks andstreamline processes.Template-based integration strategies traditionally

refer to the data extraction activity of the ETL ware-housing workflow [32]. However, as this proposal usesintelligent agents for this task, templates' use fulfils thetransform and load requirements. As detailed in themethods section, the framework includes a comprehen-sive template mechanism, based on variables and func-tions, to generate integration data for delivery to manydestinations. This comprehensive approach is simple, yetflexible and powerful.In summary, the framework allows four types of deliv-

eries for now. These are succinctly described next.

� SQL queries to MySQL or Postures databases. AsSQL is a powerful data manipulation language,complex query delivery can be combined with theagents’ detection output to perform advancedtransformation.

� Send emails. Emails can be sent to multiplerecipients (with CC and BCC also). All emailproperties (to, CC, BCC, subject and message) areavailable for customisation with the framework’stemplating engine.

� File manipulation. We can define deliveries aswriting files in the user platform workspace or inthe user’s associated Dropbox account. We cancreate new files, or append or delete existing files.

By managing files in the users’ Dropbox account, weensure that they are always synchronised withexternal changes.

� Requests to URLs. The framework allows contactingmiscellaneous services via HTTP GET or POST,enabling data exchanges in text, JSON or XML. Thisis the most powerful publishing method as it allowsthe interaction with most modern REST webservices, which traditionally accept new data viaPOST and make data available via GET.

Currently, building tools to call REST services or man-age files brings distinct requirements and implies customad hoc implementations. However, our template flexibil-ity provides an abstraction on top of these methods.Whether we want to append lines to a CSV file, send anemail or POST data to a REST service, users control theentire process in the server’s simplified interface.

Advanced integration & interoperabilityAs previously mentioned, this proposal introduces anopen source framework that can act as the foundationfor distinct applications with distinct architectures.Whether we are dealing with event-driven applicationsor publish/subscribe environments, this framework canbe easily adapted to support these systems.

Event-driven architectureTraditional service-oriented architectures follow a request-response interaction model [33]. Although this basic oper-ation principle sustains many systems, lack of support forresponses to events is a major drawback [34].Event-driven architectures adopt a message-based ap-

proach to decouple service providers from consumers[35]. In these service-oriented architectures, event detec-tion is essential to get a reliable stream of changed data[36]. Event-driven architectures are used for direct re-sponses to various events and for coordination withbusiness process integration in ubiquitous scenarios.Our framework enables this kind of reactive integra-

tion. Intelligent agents are configured to detect events,with the server acting as a message broker and router.For a truly event-driven environment, the frameworkalso supports receiving events via push mechanisms.This means that we can deploy applications that fullyoperate on an event-driven paradigm.

Publish/subscribeThis framework is also an enabler of publish-subscribesoftware [37]. The basic principle behind this strategy re-volves around a dynamic endpoint, the publisher, whichtransmits data to a dynamic set of subscribers [38]. Pub-lish/subscribe architectures decouple communicating cli-ents and complement event-driven architectures with the

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 8 of 13

Page 9: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

introduction of notifications. These can be a specialisedform of events and ensure that we can actively push thedesired data to subscribers in the shortest possible time.Translating this basic principle to the framework’s

model, we can see the agents as a controlled set of pub-lishers (local or remote), which can be configured, usingintegrations, to interact with specific templates, the sub-scribers. This framework encloses the necessary toolsand API that will allow applications to harvest the fullpotential of this paradigm in a seamless way.Adopting the proposed work, data owners now have

the tools to deliver custom notifications when new dataare generated. This further advances the state of the art,namely on the life sciences [39], becoming vital when weconsider the amount of legacy systems used to store dataand the availability (or lack thereof ) of interoperabilitytools to connect these systems.Likewise, we can perform asynchronous push-based

communication, broadcasting event data to any numberof assorted destinations.From an interoperability perspective, agents can also

be on the subscriber end of the architecture. Events no-tification data can be pushed into to the system, trigger-ing the integration in real-time.

Integration-as-a-serviceCloud-based integration-as-a-service is currently a majorgoal in service-oriented architectures [40]. Our frame-work empowers that paradigm, moving one step closertowards interoperable science data. This architecturalapproach abstracts algorithms, features, data or even fullproducts as services [41], which should be available on-line via HTTP/S.The framework can operate on both ends of the inte-

gration and interoperability spectrum. Besides being aservice consumer, for data extraction and loading tasks,it also provides services for miscellaneous real-worldproblems.As we embrace the Integration-as-a-Service notion,

the relevance of frameworks to ease the process of ex-changing and translating data amongst multiple serviceproviders becomes clear. By combining the qualities ofservice-oriented, event-driven, publish/subscribe andcloud-based architectures, this framework endows usersand developers with the required toolkit to build future-proof biomedical informatics software.

DiscussionThe proposed framework’s flexibility makes it suitablefor miscellaneous integration use cases, connectingprivate or public data sources with existing services.More importantly, it allows researchers to create theirown scenarios, with agents and templates suitable totheir work.

The following discussion introduces a human variomedata integration scenario and details some current limi-tations and future perspectives. This scenario can betested at https://bioinformatics.ua.pt/i2x. This is a fullyfunctional version of the platform, where everyone canregister an account to create agents, templates andintegrations.

Automating variome data integrationOur first application scenario is provided in the config-uration samples list available on the platform’s webinterface. In it, we tackle a prime challenge for life sci-ences researcher regards the integration of human var-iome data: collecting unique mutations associated with aspecific locus. This feature is already available in severalsystems. WAVe [42] or Cafe Variome [43] centralise datafrom distributed locus-specific databases (LSDBs) andmake them available through web interfaces. The LeidenOpen-source Variation Database (LOVD) provides aturnkey solution to launch new LSDBs, with web anddatabase management interfaces [44]. These featuresmake LOVD the de facto standard for LSDBs, with morethan 2 million unique variants stored throughout 78 dis-tinct installations. LOVD has an API enabled by default,which allows obtaining the full list of variants associatedwith a gene. These are returned in Atom format, a feedspecification built in XML. In addition to LOVD, thereare several other LSDBs using legacy formats, such asExcel or CSV files, or relational databases.Despite the quality of available systems, data integra-

tion is limited by various constraints. For instance, theadopted pipeline - extract and curate data, enrich data-sets, deliver results - creates a time-based snapshot ofavailable human variome data. However, researchers re-quire access to constantly updated datasets. To accom-plish this we can use two distinct strategies: 1) werepeatedly launch our integration pipeline, processingeverything from scratch or 2) we create an ad hoc inte-gration solution tailored to this particular scenario. Themaintenance and development effort underlying any ofthese strategies delays real progress.For simplicity purposes, we considered extracting data

from the LOVD platform only. When curators submitnew variants to LOVD, their data becomes available inthe feed API. An agent is configured to monitor the feedfor a single gene or, through the definition of a seed, formany genes based on a predefined list. After the initialdata population process, events are detected when newvariants are published. This starts a new integration task,which can deliver data directly to a database (using aSQL template) or send them to a URL-based service(using a URL route template). Figure 4 displays the plat-form prototype web interface showcasing the integra-tion, agent and template configurations for this scenario.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 9 of 13

Page 10: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

This scenario is already in place in the data aggrega-tion for WAVe’s backend (http://bioinformatics.ua.pt/wave/), which highlights three key benefits of the frame-work: autonomy, flexibility and data quality. First, thedata warehousing process is triggered autonomously,without user intervention. Next, agents can track anynumber of genes and deliver data for new variants toany number of heterogeneous destinations. At last, var-iome datasets in the centralised application are alwaysup-to-date with the latest discovered variants. Agentscheduling can monitor LSDBs frequently, resulting inimproved database completeness.Furthermore, in an ideal scenario, LSDBs owners can

deploy local agents to monitor their databases internallyor, using push, send events (with new variation data) dir-ectly to the main server platform for integration.

Limitations and future perspectivesAlthough this open-source framework already supports ad-vanced features for real-time content monitoring and datadelivery, it has some limitations. Integration scenarioswhere the data acquisition involves combining data frommultiple data sources or the execution of multiple data ex-traction steps require a more comprehensive integration

solution. Likewise, there are several data compression andencryption methods that were not accounted for.Hence, we are continually improving our solution,

namely with the inclusion of new detection formats anddelivery methods.Data verification and rule processing are some of the

main targets for future improvements. Our goal is tomake a system that is completely independent from anyorigin or destination resource. This means that the plat-form should not rely on any external resources to ensurethat data are new, which implies storing processedevents in an internal database. As the platform needs toknow what is new to trigger the integration process, weneed to maintain a cache of everything the platform hasalready processed. These metadata could be complemen-ted with delivery verification information, where wewould store if and when the data were actually receivedby the destination resources. Although this would be an-other configuration burden for users, the overall integra-tion algorithm will be improved with this feature.We also plan to expand the framework’s data ware-

housing features by focusing on rule processing. Thegoal is to detach the ETL transform task from the deliv-ery task, enabling more complex data transformation

Fig. 4 Web interface for proposed platform prototype. This interface highlights the integration configuration for automating human variomeintegration. This integration features one agent (LOVD XML Agent) and one template (SQL variant). The former configures how to extractmutation data from LOVD API and the latter specifies the configuration for storing extracted data in a relational database.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 10 of 13

Page 11: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

that obeys custom heuristics. In a simple use case, we wantto perform the delivery only for data above a given thresh-old. Despite being able to perform these validations usingRuby code variables, simplifying these processes with dedi-cated methods will improve the framework’s usability.In the long haul, we can further enhance rule processing

with the inclusion of semantics. Latest developments onsemantic web technologies and frameworks are respon-sible for an increased adoption within the life sciencesfield. As such, we plan to include support for LinkedDataand SPARQL agents and delivery templates, and new in-ference and reasoning engines, allowing researchers toperform more complex operations with their data.The mandatory configuration of scheduling properties

for agents will also be the subject of future researchwork. We assume a constant flow of information in andout of the framework. In its current state, the frameworkis already tailored to scenarios where the data sources’content change quite often. Traditionally, they requireintensive manual effort to ensure the up-to-datedness ofintegrated data. With our proposal’s automation featuresand regular data monitoring, live data integration is en-sured independently from the dataset update interval.For instance, regularly updated datasets can be moni-tored every 5 minutes or, in opposition, datasets that areseldom updated can be monitored daily or weekly.To further improve this, we plan to include algorithms

for the automatic identification of the best schedules foreach resource. For instance, when a monitored resourcegenerates events on a daily basis, the system shouldautomatically understand that it is not efficient to sched-ule the resource for monitoring every 5 minutes. Thiswill enhance the handling or large volumes of data andfurther improve the framework’s performance.There are numerous high-quality data integration

platforms. Nevertheless, it is common for existingsolutions, such as Pentagon (http://www.pentaho.de/explore/pentaho-data-integration/) or Talend Open Stu-dio (https://www.talend.com/products/talend-open-studio),among others, to have three major drawbacks: 1) they lackdistribution, enforcing local access; 2) they operate inclosed desktop environments; and 3) they lack auto-mation features.First, our approach enables the deployment of a dis-

tributed multi-agent architecture, where any number ofagents can be running autonomously, processing data inany number of machines.Moreover, monitoring agents can be deployed locally,

where some desktop application to be integrated is run-ning, or online, where most public systems are available.With this, we overcome traditional local-based integra-tion problems. In our approach, a central web-based ser-ver operates online to control agents’ distributedexecution and data delivery.

At last, current solutions require manual integrationtriggers, from script execution to loading cumbersomeplatforms, whereas our solution is fully automated, en-suring real-time integration.

ConclusionsNowadays, access to vast amounts of life sciences data isa commodity. Hence, modern integration strategies havearisen to better explore available information. In spite oftheir quality, existing models lack built-in mechanismsfor handling change and time. That is, connecting dataand services is a manual task, whose only results aretime-limited snapshots.With this research work we introduce a framework for

enhanced integration and interoperability. This system’sinnovative features - automation, real-time processing,flexibility and extensibility - convey true added value tobiomedical data integration and interoperability.Automation brings a new approach to the field, stimu-

lating reactive and event-driven integration tasks. Further-more, live data integration brought by automated andreal-time intelligent agents ensure up-to-date information.The proposed framework is non-obtrusive, requires nochanges in most original data sources, and can processdata to and from heterogeneous data sources, making itan extremely flexible and adaptable framework.This system is relevant for both researchers and devel-

opers: researchers can sign up to use the online platformand developers can download and modify the sourcecode for local deployment. On the one hand, the plat-form’s streamlined configuration process puts a powerfulintegration and interoperability framework at the handsof less technical experienced users. We believe that thecombination of the platform’s integration features withits easy-to-use web interface make the creation of inte-gration tasks much more straightforward. Although theconcept of integrations, agents and templates may bedifficult to understand, once the user grasps these no-tions, deploying complex integration procedures be-comes trivial. This enables anyone to create business-level data and service integration tasks with reduced ef-fort. On the other hand, developers can download anduse the framework open-source code. As the frameworksupports dynamic real-time message translation, format-ting and delivery to multiple resources, it can play a cen-tral role in service-oriented architectures, from publish/subscribe to event-driven up to cloud-based integration-as-a-service environments.This research work delivers a system that bridges

the gap between data and services through a new in-telligent integration and interoperability layer, furtherenabling the creation of next generation bioinformat-ics applications.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 11 of 13

Page 12: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

Availability and requirementsProject name: i2xProject home page: https://bioinformatics.ua.pt/i2x/Operating system(s): Platform independentProgramming language: Ruby, JavaScriptOther requirements: Ruby web server, relational data-base management systemLicense: MITAny restrictions to use by non-academics: not applicable

AbbreviationsAPI: Application programming interface; BCC: Blind carbon copy; CC: Carbon copy;CSV: Comma-separated values; ETL: Extract-transform-load; HTTP: Hypertexttransfer protocol; HTTPS: HTTP secure; JSON: JavaScript object notation;LOVD: Leiden open-source variation database; LSDB: Locus-specific databases;MD5: Message digest algorithm 5; MIT: Massachusetts Institute of Technology;REST: REpresentational state transfer; SPARQL: SPARQL protocol and RDF querylanguage; SQL: Structured query language; TSV: Tab-separated values;URI: Uniform resource identifier; URL: Uniform resource locator; XML: eXtensibleMarkup Language.

Competing interestsThe authors declare that they have no competing interests.

Authors’ contributionsPL is responsible for creating and developing the i2x framework. JLO revisedthe manuscript and supervised the work. All authors read and approved thefinal manuscript.

AcknowledgementsThe research leading to these results has received funding from the EuropeanCommunity (FP7/2007-2013) under ref. no. 305444 – the RD-Connect project, andfrom the QREN "MaisCentro" program, ref. CENTRO-07-ST24-FEDER-00203 – theCloudThinking project.We also thankfully acknowledge Luís Bastião and Joel P Arrais for their workon the platform use cases, and Sérgio Matos and Carlos Costa for theirinsightful advice.

Author details1DETI/IEETA, Universidade de Aveiro, Campus Universitario de Santiago,Aveiro 3810-193, Portugal. 2IEETA, Campus Universitario de Santiago, Aveiro3810 – 193, Portugal.

Received: 23 March 2015 Accepted: 6 October 2015

References1. Sascha S, Kurtz S. A New Efficient Data Structure for Storage and Retrieval of

Multiple Biosequences. IEEE/ACM Trans Comput Biol Bioinform.2012;9(2):345–57.

2. Iskar M, Zeller G, Zhao X-M, van Noort V, Bork P. Drug discovery in the ageof systems biology: the rise of computational approaches for dataintegration. Curr Opin Biotechnol. 2012;23(4):609–16.

3. Thiam Yui C, Liang L, Jik Soon W, Husain W. A Survey on Data Integration inBioinformatics. In: Abd Manaf A, Sahibuddin S, Ahmad R, Mohd Daud S,El-Qawasmeh E, editors. Informatics Engineering and Information Science.254th ed. Heidelberg: Springer Berlin; 2011. p. 16–28.

4. Darmont J, Boussaid O, Ralaivao J-C, Aouiche K. An architecture frameworkfor complex data warehouses. arXiv preprint 2007. http://arxiv.org/abs/0707.1534.

5. Blankenberg D, Johnson JE, Team TG, Taylor J, Nekrutenko A. WranglingGalaxy’s reference data. Bioinformatics. 2014;30(13):1917–9.

6. DNA Sequencing Costs: Data from the NHGRI Genome SequencingProgram (GSP) [http://www.genome.gov/sequencingcosts]

7. Goble C, Stevens R. State of the nation in data integration forbioinformatics. J Biomed Inform. 2008;41(5):687–93.

8. Mons B, van Haagen H, Chichester C, den Dunnen JT, van Ommen G, vanMulligen E, et al. The value of data. Nat Genet. 2011;43(4):281–3.

9. Wong L. Technologies for integrating biological data. Brief Bioinform.2002;3(4):389–404.

10. Alonso-Calvo R, Maojo V, Billhardt H, Martin-Sanchez F, García-Remesal M,Pérez-Rey D. An agent- and ontology-based system for integrating publicgene, protein, and disease databases. J Biomed Inform. 2007;40(1):17–29.

11. Dudley JT, Butte AJ. Reproducible in silico research in the era of cloudcomputing. Nat Biotechnol. 2010;28(11):1181.

12. Schönherr S, Forer L, Weißensteiner H, Kronenberg F, Specht G,Kloss-Brandstätter A. Cloudgene: A graphical execution platform forMapReduce programs on private and public clouds. BMC Bioinformatics.2012;13(1):200.

13. Sansone S-A, Rocca-Serra P, Field D, Maguire E, Taylor C, Hofmann O, et al.Toward interoperable bioscience data. Nat Genet. 2012;44(2):121–6.

14. Lopes P, Oliveira JL. COEUS:“semantic web in a box” for biomedicalapplications. Journal of Biomedical Semantics. 2012;3(1):1–19.

15. Ekanayake J, Gunarathne T, Qiu J. Cloud Technologies for BioinformaticsApplications. IEEE Transactions on Parallel and Distributed Systems.2011;22(6):998–1011.

16. Jamil HM. Designing Integrated Computational Biology Pipelines Visually.IEEE/ACM Trans Comput Biol Bioinform. 2013;10(3):605–18.

17. Hunter A, Macgregor AB, Szabo TO, Wellington CA, Bellgard MI. Yabi: Anonline research environment for grid, high performance and cloudcomputing. Source Code for Biology and Medicine. 2012;7(1):1.

18. Goecks J, Nekrutenko A, Taylor J. Galaxy: a comprehensive approach forsupporting accessible, reproducible, and transparent computationalresearch in the life sciences. Genome Biol. 2010;11(8):R86.

19. Wolstencroft K, Haines R, Fellows D, Williams A, Withers D, Owen S, et al.The Taverna workflow suite: designing and executing workflows of WebServices on the desktop, web or in the cloud. Nucl Acids Res. 2013. 41 (W1):W557-W561. First published online May 2. doi:10.1093/nar/gkt328.

20. Jupp S, Malone J, Bolleman J, Brandizi M, Davies M, Garcia L, et al. The EBIRDF platform: linked open data for the life sciences. Bioinformatics.2014;30(9):1338–9.

21. Lopes P, Oliveira JL. An innovative portal for rare genetic diseases research:The semantic Diseasecard. J Biomed Inform. 2013;46(6):1108–15.

22. Wilkinson MD, Vandervalk BP, McCarthy EL. The Semantic AutomatedDiscovery and Integration (SADI) Web service Design-Pattern, API andReference Implementation. Journal of Biomedical Semantics. 2011;2:8.

23. Salem R, Boussaïd O, Darmont J. Active XML-based Web data integration.Inf Syst Front. 2013;15(3):371–98.

24. Tank DM. Reducing ETL Load Times by a New Data Integration Approachfor Real-time Business Intelligence. International Journal of EngineeringInnovation and Research. 2012;1(2):1–5.

25. Naeem MA, Dobbie G, Webber G. An Event-Based Near Real-Time DataIntegration Architecture. In: Enterprise Distributed Object ComputingConference Workshops, 2008 12th: 16–16 Sept. 2008 2008. 401–404.

26. Mouttham A, Peyton L, Eze B, Saddik AE. Event-Driven Data Integration forPersonal Health Monitoring. Journal of Emerging Technologies in WebIntelligence. 2009;1(2):110–8.

27. Gustafsson F. Adaptive filtering and change detection. 1st ed. New York:Wiley; 2000.

28. Croushore D. Frontiers of Real-Time Data Analysis. J Econ Lit. 2011;49(1):72–100.29. Lubell-Doughtie P, Pokharel P, Johnston M, Modi V. Improving data collection

and monitoring through real-time data analysis. In: 3rd ACM Symposium onComputing for Development. 2442916th ed. Bangalore: ACM; 2013. p. 1–2.

30. Sheard T. Accomplishments and Research Challenges in Meta-programming. In: Taha W, editor. Semantics, Applications, andImplementation of Program Generation. 2196th ed. Heidelberg: SpringerBerlin; 2001. p. 2–44.

31. Sirin E, Parsia B, Hendler J. Template-based composition of semantic webservices. Virginia: AAAI Fall Symposium on Agents and the Semantic Web;2005. p. 85–92.

32. Sen A, Sinha AP. A comparison of data warehousing methodologies.Commun ACM. 2005;48(3):79–84.

33. Papazoglou M, Heuvel W-J. Service oriented architectures: approaches,technologies and research issues. VLDB J. 2007;16(3):389–415.

34. Kong J, Jung JY, Park J. Event-driven service coordination for businessprocess integration in ubiquitous enterprises. Comput Ind Eng.2009;57(1):14–26.

35. Niblett P, Graham S. Events and service-oriented architecture: The oasis webservices notification specification. IBM Syst J. 2005;44(4):869–86.

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 12 of 13

Page 13: An automated real-time integration and interoperability ...cache (Redis) for improved performance; d the application engine, is implemented in Ruby, with the Rails framework, and controls

36. Etzion O, Niblett P. Event Processing in Action. Cambridge: ManningPublications Co; 2010.

37. Fotiou N, Trossen D, Polyzos GC. Illustrating a publish-subscribe internetarchitecture. Telecommun Syst. 2012;51(4):233–45.

38. Eugster PT, Felber PA, Guerraoui R, Kermarrec A-M. The many faces ofpublish/subscribe. ACM Computing Surveys (CSUR). 2003;35(2):114–31.

39. Linlin L, Shizhong Y. XPath-Based Filter for Publish/Subscribe in HealthcareEnvironments. In: 12th IEEE International Conference on Computer andInformation Technology (CIT): 27–29 Oct. 2012 2012. 1092–1096.

40. Erl T. Service-oriented architecture: a field guide to integrating XML andweb services. Prentice Hall PTR Upper Saddle River, NJ, USA: Prentice HallPTR; 2004.

41. Chang V, Walters R, Wills G. Business Integration as a Service. InternationalJournal of Cloud Applications and Computing. 2012;2(1):16–40.

42. Lopes P, Dalgleish R, Oliveira JL. WAVe: web analysis of the variome. HumMutat. 2011;32(7):729–34.

43. Lancaster O, Hastings R, Dalgleish R, Atlan D, Thorisson G, Free R, et al. CafeVariome-gene mutation data clearinghouse. In: Journal Of Medical Genetics:2011. BMJ;48:S40.

44. Fokkema IF, Taschner PE, Schaafsma GC, Celli J, Laros JF, den Dunnen JT.LOVD v. 2.0: the next generation in gene variant databases. Hum Mutat.2011;32(5):557–63.

Submit your next manuscript to BioMed Centraland take full advantage of:

• Convenient online submission

• Thorough peer review

• No space constraints or color figure charges

• Immediate publication on acceptance

• Inclusion in PubMed, CAS, Scopus and Google Scholar

• Research which is freely available for redistribution

Submit your manuscript at www.biomedcentral.com/submit

Lopes and Oliveira BMC Bioinformatics (2015) 16:328 Page 13 of 13