Diploma Thesis Santiago Gómez Sáez - IAAS
Diploma Thesis Santiago Gómez Sáez - IAAS
Diploma Thesis Santiago Gómez Sáez - IAAS
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