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