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.

2. Fundamentals<br />

the tenant level, but also isolation at the user level. We discuss this requirement in detail in<br />

Chapters 4 and 5.<br />

4. Concept and<br />

4. Concept<br />

Specification<br />

and Specification<br />

4. Concept and Specification<br />

Backend<br />

Web-Service<br />

Tenant1<br />

4. Concept and Specification<br />

!"#$%&%"' WSDL<br />

!"#$%&%"' WSDL<br />

!"#$%&%"' WSDL<br />

!"#$%&%"' WSDL<br />

Backend<br />

Web-Service<br />

Tenant2<br />

JBI Environment<br />

Figure 4.1.: Overview of the system JBIMulti2. Arrows illustrate data flow between core<br />

components and resources.<br />

Figure 4.1.: Overview of the system JBIMulti2. Arrows illustrate data flow between core<br />

system is called JBI Multi-tenancy Multi-container Support (JBIMulti2), because it supports<br />

components and resources.<br />

many tenants and a cluster of ServiceMix instances.<br />

!"#$%#&%'()%*+$")&,#-)(*,.&*/'$%'$0*1.23.$)$"(*<br />

JBIMulti2 relies on three data resources: the Tenant Registry, the Service Registry, and the<br />

system is called JBI Multi-tenancy Multi-container Support (JBIMulti2), because it supports<br />

Configuration Registry. Tenant contexts are obtained from the Tenant Registry. It delivers tenant<br />

Figure 4.1.: Overview many of the tenants systemand JBIMulti2. a cluster Arrows of ServiceMix illustrate data instances.<br />

Figure 4.1.: Overview ofusers the system and their JBIMulti2. role inside Arrows the illustrate corresponding data flowtenant between(see flow<br />

coreSect. between 4.3.2). coreThe Service Registry<br />

stores components service JBIMulti2 and assemblies resources. relies on andthree service data descriptions resources: for theeach Tenant tenant, Registry, whilethe isolating Service the Registry, data of and the<br />

components and resources.<br />

!"#$%&'()*+,)--%.)+/"01)#+<br />

differentConfiguration tenants (see Sect. Registry. 4.2). Tenant All other contexts non-tenant are obtained relatedfrom andthe tenant Tenant related Registry. data is It stored delivers tenant<br />

by the Configuration users and their Registry. role inside This includes the corresponding configurations tenant created (see by Sect. system 4.3.2). administrators<br />

The Service Registry<br />

or tenantstores administrators. service assemblies As service andassemblies service descriptions and services forare each stored tenant, to awhile separate isolating Service the data of<br />

system is called<br />

system<br />

JBI<br />

is<br />

Multi-tenancy<br />

calledRegistry, JBI Multi-tenancy different they must tenants not<br />

Multi-container<br />

Multi-container be(see stored Sect. to4.2). Support (JBIMulti2),<br />

Support the All Configuration other (JBIMulti2), non-tenant Registry<br />

because it supports<br />

because related (see it supports Sect. and tenant 4.3.3). related data is stored<br />

by the Configuration Registry. This includes configurations created by system administrators<br />

!"#$%#&%'()%*+$")&,#-)(*,.&*!)&/'-)*0$1'$)(*<br />

many tenants<br />

many<br />

and<br />

tenants<br />

a cluster<br />

and We propose<br />

of ServiceMix<br />

a clusteraof graphical<br />

instances.<br />

ServiceMix Web-based instances. user interface named Web UI that exposes the functionality<br />

or tenant administrators. As service assemblies and services are stored to a separate Service<br />

of JBIMulti2. It can be used by system administrators and tenant users and supports all<br />

Registry, they must not be stored to the Configuration Registry (see Sect. 4.3.3).<br />

use cases listed in Section 4.4. Likewise, all functionality supported by the Web UI must be<br />

JBIMulti2 relies<br />

JBIMulti2<br />

on three<br />

relies<br />

data<br />

on<br />

resources:<br />

three data<br />

the<br />

resources:<br />

Tenant Registry,<br />

the Tenant<br />

the<br />

Registry,<br />

Service Registry,<br />

the Service<br />

and<br />

Registry,<br />

the<br />

and the<br />

supported Weby propose a Web aService graphical APIWeb-based well (seeuser Sect. interface 4.5.2). Currently, named Web the UIprototype that exposes developed the functionality<br />

Configuration<br />

Configuration<br />

Registry. Tenant<br />

Registry. within<br />

contexts<br />

Tenant the of scope JBIMulti2.<br />

are obtained<br />

contexts of this are Itdiploma can<br />

from<br />

obtained be used thesis<br />

the Tenant<br />

frombyonly Registry.<br />

the system Tenant implements administrators<br />

It delivers<br />

Registry. the<br />

tenant<br />

ItWeb delivers and Service tenant API. users However, and supports a all<br />

concept for usethe cases layout listedof the Section Web UI 4.4. can Likewise, be foundall infunctionality Section 4.5.1. supported by the Web UI must be<br />

users and their<br />

users<br />

role<br />

and<br />

inside<br />

their<br />

the<br />

role<br />

corresponding<br />

inside supported corresponding<br />

tenant (see Sect.<br />

tenant<br />

4.3.2).<br />

(see Sect.<br />

The Service<br />

4.3.2). The<br />

Registry<br />

Service Registry<br />

The preceding components Legend by a Web Service API<br />

are built on(1) as<br />

top and well<br />

of (2): SOAP (see<br />

Integration over Sect. 4.5.2). Currently, the prototype developed<br />

Layer that encapsulates the access<br />

stores service<br />

stores<br />

assemblies<br />

service<br />

and<br />

assemblies within<br />

service descriptions<br />

and service the scope descriptions of this diploma<br />

to databases and the ServiceMix for each tenant, clusters. for each HTTP thesis<br />

while Moreover, Consumer tenant, only<br />

isolating<br />

while implements<br />

the<br />

isolating<br />

data of<br />

thedata Webof<br />

Service API. However, a<br />

it can initiate atomic transactions among<br />

concept for the layoutEndpoint<br />

of the Web<br />

different tenants<br />

different<br />

(see<br />

tenants the<br />

Sect. 4.2).<br />

(see resources.<br />

All<br />

Sect.<br />

other<br />

4.2). An<br />

non-tenant<br />

All extension other<br />

related<br />

non-tenant component Endpoints<br />

UI can be found in Section 4.5.1.<br />

and tenant<br />

related for ServiceMix<br />

related<br />

and tenant provides<br />

data<br />

related<br />

is stored<br />

data integration is storedwith JBIMulti2.<br />

It installs The JBI preceding components, components Interface<br />

processes are(3) service built and (4): onassemblies SOAP top of over an Integration by adding Layer a tenant that encapsulates context, andthe access<br />

by the Configuration<br />

by the Configuration deploys Registry. This<br />

Registry. to service databases includes<br />

This assemblies. configurations<br />

includes and theOnce configurations ServiceMix ESB deployed, created by system<br />

created<br />

administrators<br />

by system administrators<br />

HTTP clusters. Provider a service Moreover, Endpoints assembly it canmust initiate notatomic interfere transactions with the among<br />

or tenant administrators.<br />

or tenant administrators. service assemblies the resources.<br />

As assemblies<br />

As service of<br />

and<br />

assemblies other An extension tenants. Endpointcomponent services<br />

and To<br />

are<br />

services ensure<br />

stored to<br />

are data for ServiceMix<br />

a separate<br />

stored isolation, to<br />

Service<br />

a separate the provides tenant integration Service context inside withthe<br />

JBIMulti2.<br />

service units It installs of a service JBI components, assembly is processes processed service by a setassemblies of new BCsby andadding SEs. JBI a components<br />

tenant context, and<br />

Registry, they<br />

Registry,<br />

must not<br />

they<br />

be<br />

must<br />

stored<br />

notdeploys to<br />

be<br />

the<br />

storedservice Configuration the assemblies. Configuration Once Bidirectional<br />

Registry (see<br />

Registry deployed,<br />

Sect. 4.3.3).<br />

(see Sect. a service 4.3.3). assembly must not interfere with the<br />

service assemblies of other tenants. Communication To ensure data isolation, the tenant context inside the<br />

service units of a service assembly is processed by a set of new BCs and SEs. JBI components<br />

We propose a<br />

We<br />

graphical<br />

propose<br />

Web-based<br />

a graphical 24<br />

user<br />

Web-based<br />

interface<br />

user<br />

named<br />

interface<br />

Web UI<br />

named<br />

that exposes<br />

Web UI that<br />

the functionality<br />

exposes the functionality<br />

of JBIMulti2.<br />

of<br />

It<br />

JBIMulti2.<br />

can be used<br />

It can<br />

by<br />

be<br />

system<br />

used<br />

administrators<br />

by system administrators<br />

and tenant users<br />

and tenant<br />

and supports<br />

users and<br />

all<br />

supports all<br />

use cases listed<br />

use<br />

in<br />

cases<br />

Section<br />

listed<br />

4.4.<br />

in<br />

Likewise,<br />

Section 24 4.4.<br />

all<br />

Likewise,<br />

functionality<br />

all functionality<br />

supported by<br />

supported<br />

the Web UI<br />

by<br />

must<br />

the Web<br />

be<br />

UI must be<br />

supported by<br />

supported<br />

a Web Service<br />

by a<br />

API<br />

Web<br />

as<br />

Service<br />

well (see<br />

API<br />

Sect.<br />

as well<br />

4.5.2).<br />

(see<br />

Currently,<br />

Sect. 4.5.2).<br />

the<br />

Currently,<br />

prototype<br />

the<br />

developed<br />

prototype developed<br />

within the scope<br />

within<br />

of<br />

the<br />

this<br />

scope<br />

diploma<br />

of this<br />

thesis<br />

diploma<br />

only implements<br />

thesis only implements<br />

the Web Service<br />

the Web<br />

API.<br />

Service<br />

However,<br />

API.<br />

a<br />

However, a<br />

concept for the<br />

concept<br />

layout<br />

for<br />

of<br />

the<br />

the<br />

layout<br />

Web UI<br />

of<br />

can<br />

the<br />

be<br />

Web<br />

found<br />

UI can<br />

in Section<br />

be found<br />

4.5.1.<br />

in Section 4.5.1.<br />

The preceding<br />

The<br />

components<br />

preceding components<br />

are built on top<br />

are<br />

of<br />

built<br />

an<br />

on<br />

Integration<br />

top of an<br />

Layer<br />

Integration<br />

that encapsulates<br />

Layer that encapsulates<br />

the access<br />

the access<br />

to databases<br />

to<br />

and<br />

databases<br />

the ServiceMix<br />

and the<br />

clusters.<br />

ServiceMix<br />

Moreover,<br />

clusters.<br />

it<br />

Moreover,<br />

can initiate<br />

it<br />

atomic<br />

can initiate<br />

transactions<br />

atomic transactions<br />

among<br />

among<br />

the resources. the An resources. extension An component extension for component ServiceMix for provides ServiceMix integration provides with integration JBIMulti2.<br />

with JBIMulti2.<br />

It installs JBI<br />

It<br />

components,<br />

installs JBI components,<br />

processes service<br />

processes<br />

assemblies<br />

service<br />

by<br />

assemblies<br />

adding a<br />

by<br />

tenant<br />

adding<br />

context,<br />

a tenant<br />

and<br />

context, and<br />

deploys service<br />

deploys<br />

assemblies.<br />

service assemblies.<br />

Once deployed,<br />

Once<br />

a<br />

deployed,<br />

service assembly<br />

a service<br />

must<br />

assembly<br />

not interfere<br />

must not<br />

with<br />

interfere<br />

the<br />

with the<br />

service assemblies<br />

service<br />

of<br />

assemblies<br />

other tenants.<br />

of other<br />

To ensure<br />

tenants.<br />

data<br />

To ensure<br />

isolation,<br />

data<br />

the<br />

isolation,<br />

tenant context<br />

the tenant<br />

inside<br />

context<br />

the<br />

inside the<br />

service units<br />

service<br />

of a service<br />

units<br />

assembly<br />

of a service<br />

is processed<br />

assembly is<br />

by<br />

processed<br />

a set of new<br />

by a<br />

BCs<br />

set<br />

and<br />

of new<br />

SEs.<br />

BCs<br />

JBI<br />

and<br />

components<br />

SEs. JBI components<br />

Figure 2.5.: Multi-tenant HTTP Binding Component [Sá12].<br />

As seen in Figure 2.5, the multi-tenant HTTP BC is mainly used in ServiceMix-mt to support<br />

the SOAP over HTTP communication protocol by exposing a Web service in the tenantaware<br />

consumer endpoint and consuming an external Web service in the provider endpoint.<br />

SOAP defines an XML message 24 format<br />

24<br />

which is sent over the network and a set of rules<br />

for processing the SOAP message in the different SOAP nodes which build the message<br />

path between two endpoints [WCL + 05]. A SOAP message is a composition of three main<br />

elements: a SOAP envelope, header, and body. A SOAP envelope may contain zero or<br />

more headers and one body. The header may contain processing or authentication data<br />

for the ultimate receiver or for the intermediate nodes through the message is routed. The<br />

message payload or business data is included in the SOAP body. SOAP is used as a message<br />

framework for accessing Web services in loosely coupled infrastructures [WCL + 05]. The Web<br />

service consumer specifies the functionality to invoke in the SOAP body. If the Web service<br />

functionality has a request-response Message Exchange Patterns (MEP), a SOAP message<br />

is used to send the response data when the corresponding operation has been executed<br />

successfully or the error data in case an error occurred during execution.<br />

Most of the Cloud storage providers provide an HTTP interface to the tenants for data<br />

management, retrieval, and storage. In this diploma thesis we extend this JBI BC in order to<br />

provide the tenant a transparent access to his NoSQL Cloud data stores.<br />

2.8. Service Engine<br />

A SE can provide different kinds of services, e.g. business logic, routing, and message<br />

transformation. In this diploma thesis we will mainly concentrate on one: Apache Camel<br />

[APA11a], which is wrapped in a ServiceMix-camel JBI SE in ServiceMix, and in a ServiceMixcamel-mt<br />

JBI SE in ServiceMix-mt for multi-tenancy awareness..<br />

18

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

Saved successfully!

Ooh no, something went wrong!