Optimising development and deployment of ... - ResearchGate
Optimising development and deployment of ... - ResearchGate
Optimising development and deployment of ... - ResearchGate
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