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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.4. NoSQL Support Architectural Overview<br />

5.4. NoSQL Support Architectural Overview<br />

Transparent access to different NoSQL family databases and providers, e.g. Amazon DynamoDB,<br />

Google Cloud Storage, MongoDB, must be supported in the system. In this section<br />

we provide an architectural design to support the communication between the tenant and<br />

backend NoSQL databases. We first discuss the integration mechanisms with the components<br />

implemented in [Muh12] and [Sá12], and then provide the required adaptations.<br />

5.4.1. Integration<br />

ServiceMix-mt is shipped with an HTTP BC which supports the SOAP over HTTP communication<br />

protocol. As discussed in Chapter 3, most of the Cloud data store providers offer a<br />

REST interface for accessing, and modifying data. The payload format supported by most<br />

of the vendors, and specified in the CDMI specification is JSON [Sto12]. Therefore, we find<br />

suitable the reuse of this component, and its enrichment with the required operations which<br />

are described in the following subsection.<br />

The packaging required to deploy the component as a SA forces us to statically include the<br />

imported packages in the BC SA. Unlike in the SQL architectural approach one, the deployed<br />

HTTP endpoint configuration in this case references an endpoint which is addressed in the<br />

BC the configuration refers to. Therefore, we can include the needed packages in the BC and<br />

not in the SAs containing the tenant-aware endpoint configurations.<br />

5.4.2. Architectural Overview<br />

The multi-tenant aware HTTP BC provides tenant isolation at the tenant level. As in the<br />

Servicemix-camel-mt, we extend the component and provide isolation at the tenant and user<br />

level.<br />

The architectural design presented in Figure 5.6 is similar to the one presented in [Sá12]. The<br />

main reason of this similitude is that we must extend the functionalities of the BC rather than<br />

making a substantial architectural modification.<br />

In this approach we consider that the tenant in using the driver provided by the Cloud data<br />

store provider to access the consumer endpoint in ServiceMix-mt. The different Java SDKs<br />

which are offered by the providers support a set operations and data conversions, build the<br />

HTTP request, and forward it to the data store endpoint. To support the different storage<br />

structures naming, authentication mechanisms, and data types, we extend the HTTP BC at the<br />

marshaling level, routing level, and enhance it with I/O operations with the service registry.<br />

Furthermore, to avoid adversely performance effects, it must support cashing mechanism.<br />

HTTP provider endpoints are modified in order to able data retrieval from different backend<br />

data stores, as long as the source and target database’s family and version are the same.<br />

61

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

Saved successfully!

Ooh no, something went wrong!