28.06.2015 Views

Optimising development and deployment of ... - ResearchGate

Optimising development and deployment of ... - ResearchGate

Optimising development and deployment of ... - ResearchGate

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.

6<br />

potential end users. A solution accounts for domain specific characteristics within its<br />

domain model, its business logic <strong>and</strong> its user interface.<br />

Customisations<br />

A customisation is defined as an application that is based on an existing solution <strong>and</strong><br />

has been tailored to address the needs <strong>of</strong> one specific customer. There exists a one-tomany<br />

relationship between platform, solutions <strong>and</strong> customisations: A platform hosts<br />

many solutions, <strong>and</strong> for each solution, it is possible to provide several customerspecific<br />

customisations.<br />

Apps<br />

Solutions <strong>and</strong> customisations can be regarded as “bundles” consisting <strong>of</strong> finer-grained<br />

components which are called apps. Each app within a solution or customisation<br />

provides a highly-specialised functionality. An app can be data-centric, e.g. providing<br />

the implementation for a new data type, or it can be process-centric, e.g. supporting a<br />

sales employee for performing mass-imports <strong>of</strong> customer addresses.<br />

Apps can (but may not always) affect all <strong>of</strong> the platform’s runtime layers, i.e. by<br />

defining new data object types on the data layer, new business operations on the<br />

business logic layer, <strong>and</strong> new user interface elements on the presentation layer.<br />

An app’s behaviour can be extended by creating so called app extensions which<br />

interface with the app at designated extension points. An app extension is not a<br />

st<strong>and</strong>alone component, but functions as a plug-in to one or more apps. Apps as well as<br />

app extensions can be configurable. Predefined functionality can be enabled, disabled<br />

or adjusted to a certain extent.<br />

External Services<br />

Apps <strong>and</strong> app extensions may rely on external services to deliver part <strong>of</strong> their<br />

functionality. By external services we refer to systems that are deployed externally to<br />

the platform <strong>and</strong> are accessible over the Web, <strong>and</strong> through a programmatic interface<br />

(i.e. Web services).<br />

The ability to use Web services enables the developers <strong>of</strong> solutions <strong>and</strong><br />

customisations to leverage already existing (<strong>and</strong> tested) solutions for particular<br />

highly-specialised tasks within their apps, instead <strong>of</strong> having to reinvent the wheel. For<br />

example, an app or app extension for contact management could invoke an external<br />

service to perform postal address validation for a particular contact, or to obtain stock<br />

quote information for a contact’s company.<br />

Even more importantly, the use <strong>of</strong> Web services in conjunction with apps opens the<br />

possibility <strong>of</strong> integrating solutions that are deployed on the platform with external<br />

organisations <strong>and</strong> service providers, or even with legacy systems.<br />

5 CAST platform outline<br />

We could outline the synthesis <strong>of</strong> the CAST platform by distinguishing among three<br />

main elements within its architecture: the platform’s execution infrastructure, the

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

Saved successfully!

Ooh no, something went wrong!