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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

10<br />

7 CAST platform <strong>deployment</strong> model<br />

The way in which solutions <strong>and</strong> customisations are deployed on the platform differs,<br />

depending on the artefacts/code that come with their associated apps, <strong>and</strong> how the<br />

latter are deployed to the runtime infrastructure.<br />

Within CAST, we distinguish between three types <strong>of</strong> apps with respect to their<br />

method <strong>of</strong> <strong>deployment</strong>: purely declarative apps (type 1), apps that involve code<br />

execution at the client-side (type 2), <strong>and</strong> apps that involve code execution at both<br />

client-side <strong>and</strong> server-side (type 3). The increasing numbering <strong>of</strong> app types denotes<br />

increasing capabilities but also increased <strong>deployment</strong> complexity. This concept<br />

applies not only to apps, but to app extensions as well.<br />

7.1 Type 1: Purely declarative apps<br />

A major objective for the CAST platform is to promote declarative configurations<br />

over native code. If an app is created using declarative specifications only, it is<br />

classified as type 1. Such apps can be deployed during normal execution <strong>of</strong> the CAST<br />

platform, without the need to stop <strong>and</strong> resume any subsystems or affect any active<br />

users. During <strong>deployment</strong> to the platform’s runtime infrastructure, a type 1 app<br />

comprises the following (not necessarily all) types <strong>of</strong> XML-based artefacts:<br />

• Database schema descriptions, for extending already existing data object types or<br />

defining new ones.<br />

• Declarative specifications <strong>of</strong> data validators employed to enforce constraints on<br />

data object types.<br />

• Definitions <strong>of</strong> custom UI elements (XAML-based), page flows, <strong>and</strong> mappings from<br />

page types to forms.<br />

• Extensions to business logic through definitions <strong>of</strong> data-centric rules, or declarative<br />

specifications <strong>of</strong> invocations to external Web services.<br />

• Definitions <strong>of</strong> translation/localisation resources.<br />

• Specifications <strong>of</strong> app extension points.<br />

In addition, each app comes with a manifest that describes additional important<br />

properties, such as dependencies on other apps, version information, provider<br />

information, licensing information, pricing information, etc.<br />

7.2 Type 2: Client-side code apps<br />

Type 2 apps <strong>of</strong>fer all <strong>of</strong> the possibilities that are provided by apps <strong>of</strong> type 1, <strong>and</strong> in<br />

addition, include the possibility to use native code which is deployed <strong>and</strong> executed at<br />

the client’s machine. In the CAST platform, this is C# code that is intended for<br />

runtime <strong>deployment</strong> to a Silverlight runtime instance within the client’s browser<br />

(making use <strong>of</strong> Silverlight’s ability for dynamic loading <strong>of</strong> libraries from a Web<br />

server). This allows the <strong>deployment</strong> <strong>and</strong> execution <strong>of</strong> customised comm<strong>and</strong> h<strong>and</strong>lers

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

Saved successfully!

Ooh no, something went wrong!