Browsers are not able to provide full feature-rich
user interfaces whereas traditional thick client ap-
plications can be implemented using a wide range
of interface features.
• Application development in a cloud environment
is still prone to vendor lock-in issues due to a lack
of common application programming interfaces
(Brandel, 2009)
Issues such as these have led to continued use of
thick client applications. In addition, we are seeing
adoption of a new model revolving around ”Applica-
tion Stores”. These application stores provide a way
for thick clients to be easily deployed and updated
on end-user devices. Unfortunately, each application
store to-date has been limited to a single platform. No
common abstraction has been developed that allows
applications to execute across multiple platforms, dis-
tributed by multiple stores. Application stores present
a move away from large integrated software pack-
ages to smaller, function-specific applications. These
small fat client applications provide service-style, sin-
gle purpose, functionality. Another defining point is
that application stores are generally controlled by the
hardware vendor for the device to which they relate.
It has been proposed that this tight relationship pro-
vides a level of quality control, but often it has been
critized as a way of limiting innovation and control-
ling the user (Kaneshige, 2010).
The three main application development and de-
ployment approaches - web application, thick ap-
plication and application store all have well docu-
mented issues (Kaneshige, 2010; Gilbertson, 2007).
These represent a hindrance to adoption of a single
consolidated approach. We propose a new global
component-based paradigm, which takes the best
from all three models, while addressing key concerns
found in the areas of Web 2.0, user experience and
cloud computing.
3 EXISTING FRAMEWORKS
There are many distributed component-based frame-
works that aim to resolve key points raised in the
above problem description.
The .NET framework and corresponding Azure
(Microsoft, 2009) cloud computing platform present
a component-based environment for code execution.
A key failing with the .NET approach is the lack of
global scale and open protocol. Non .NET compo-
nents must use bridges to access the .NET environ-
ment and transparent migration of components across
WANs is not supported.
Component migration and location transparency
is a feature of the OMG’s CORBA (Object
Management Group, 2004) component technology.
Again, CORBA fails to scale to a global environ-
ment in which objects housed in multiple virtual
clouds discover/locate each other and exchange mes-
sages. Many technologies and concepts from within
CORBA have been leveraged in our new proposed
framework.
Web Services and the traditional Service-
Orientated Architectures (Bell, 2008) approaches
also address issues relevant to this paper. Web
Services rely on DNS names for transparency and
component locality functions are restricted to discov-
ery services and ill-defined service specifications.
The web browser itself can be viewed as a dis-
tributed execution platform, especially due to recent
developments in web browser ’plugin’ and ’exten-
sion’ technology. Enhancements to the web browser
model to support a lower-level of component exe-
cution have been suggested (Henskens and Ashton,
2007) and may provide a stepping stone for a com-
plete component-based solution.
In Section 4 we present a truly global component-
based architecture, which builds on lessons learnt
from the above technologies.
4 COMPONENT-BASED
ARCHITECTURE
Component-based software engineering is not a new
concept. Component-based systems from a de-
sign perspective are commonly compared to Object-
Oriented approaches (Szyperski, 1997). The key
difference is that each component retains its own
execution thread within the system. By taking a
component-based approach to application develop-
ment we can clearly define each application as a set
of components. These components do not need to
all execute within the one run time environment. The
application developer may define one group of com-
ponents as server-components and have them execute
within a traditional remote cloud environment. An-
other group may be client-components that execute
on end-user devices, outside of a sandbox such as the
web browser. Some components are defined as data
storage components and are in charge of persisting ap-
plication information. There is no need for all appli-
cation data to be stored by a single component using
this approach. For example, the design allows a user
to instantiate different storage components for private
and public data.
Such a component-based system requires technol-
CLOSER 2011 - International Conference on Cloud Computing and Services Science
74