16.01.2014 Views

Diploma Thesis Santiago Gómez Sáez - IAAS

Diploma Thesis Santiago Gómez Sáez - IAAS

Diploma Thesis Santiago Gómez Sáez - IAAS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3. Related Works<br />

store may contain one or more users. In our prototype we ensure tenant and user isolation at<br />

both communication, and administration and management levels.<br />

Over the past decades, caching has become the key technology in bridging the performance<br />

gap across memory hierarchies via temporal or spatial localities; in particular, the effect is<br />

prominent in disk storage systems [HLS + 12]. Han et al. investigate how cost efficiency in<br />

a Cloud environment can be achieved, specially in applications which require a high I/O<br />

activities number, and present a CaaS (cache-as-a-service) model. Cloud providers offering<br />

data storage solutions present pricing models based on the storage size, usage per time,<br />

or number of requests. Amazon RDS costs $0.025 per hour for a Micro DB Instance usage<br />

[Amac], while Amazon DynamoDB $0.01 per hour for every 50 units of read capacity [Amaa],<br />

and Google Cloud Storage $0.01 per 1000 PUT, POST, GET requests per month [Gooc]. An<br />

I/O-intensive application whose database is hosted in the Cloud may produce a significant<br />

economic cost. The cost of continuously retrieving data from the Cloud data store, when<br />

existing temporal proximity between the data accessed, can be considered unnecessary, and<br />

reducible. Furthermore, the application’s overall performance can be reduced due to the<br />

network latency and, in the scope of this work, the use of an ESB to access the Cloud data store.<br />

In this diploma thesis we do not provide cashing as a service, but include cashing support<br />

to the sharded-based router pattern described in [SAB + 12]. Uralov enhaces ServiceMix-mt<br />

with cashing support for dynamic discovery and selection of Cloud data hosting solutions<br />

[Ura12]. However, we must adapt and extend it due to the lack of support of functionalities<br />

we require and the lack of full OSGi compliance.<br />

3.1. SQL Approaches<br />

In this section we discuss about the different approaches ESB vendors take into account<br />

when accessing or storing data in SQL database systems, and compare it to the support<br />

we provide in this work. Most of the ESB vendors provide support for data persistency<br />

in RDBMS. However, it is restricted to output connections to DBMS. Fuse ESB provides<br />

JDBC data source support, enabling users to connect to a database and make SQL based<br />

queries and updates [Fus11]. This connection can be established during routing, when<br />

receiving a JMS or HTTP message in a consumer endpoint, etc. However, they do not provide<br />

support for native database communication protocol incoming messages, e.g. MySQL or<br />

PostgreSQL communication protocol. Thus, data consumer endpoints supporting native<br />

database protocols are not deployable. The same limited support is provided in the integration<br />

framework Camel, in its component Camel-jdbc [Thec].<br />

JBoss presents its Enterprise Data Service Platform containing data services with SOA support,<br />

and an ESB [Red11]. Any organization currently using an ESB can interoperate their Data<br />

Services Platform through open standards [Red11]. Accessing the database layer using<br />

methods which implement the SOA, e.g. Web services, requires the application to support<br />

such methods. One of the main goals in this diploma thesis is to minimize the adaptations<br />

in the DAL when migrating the data to the Cloud. Furthermore, as we can see in Figure<br />

3.2, connection utilizing native database protocol is established directly from the business<br />

32

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!