| |
|
|
Software as a Service(SaaS) is a software deployment model typified through application logic residing on a centralized network server, as opposed to within a desktop, client application. In this model, the traditional thick-client is replaced by a simpler thin-client that does little more than present a view of the system data.
This model is advantageous from a maintenance point of view, as subsequent software development will be applied to the server, meaning any software update will be transparent to the user.
This model is also of use where multiple user sites have to access the same software application. If the server is available through the web, working from home or on the move is also possible.
Web browsers were initially intended only as a means of visualising mark-up language received from a server. This meant data entry widgets were limited and not as capable as desktop software equivalents. Loading a whole page of (typically the same) content each time a link was clicked also led to empty screen pauses.
Various competing technologies have emerged that attempt to address these concerns.Rich Internet Applications(RIAs) leverage one ore more of these technologies to provide a user experience comparable to that found on the desktop.
Software development of RIAs typically involves use of AJAX and DHTML, or a browser plug-in such as Adobe Flash or Microsoft Silverlight.
Software Development is the term given to the range of activities associated with the creation of a software product. These activities may include, but are not limited to, requirement capture, design, coding, testing and maintenance. The effort spent on a particular activity is typically dictated by the scale and complexity of the software project. Traditionally these activities were performed sequentially (the waterfall model), but alternative methodologies, such as Agile software development, have emerged which advocate a more iterative procedure, thereby increasing the flexibility of the software development process.
In the field of software development, a number of best practice designs, or patterns, have emerged. The Model-View-Controller (MVC), is one such pattern which advocates splitting business logic (the controller) which operates on a data set from the presentation of this data (the view) and its persistent storage (the model). The isolation of layers in this manner allows for self-contained development and testing of each layer, or for an entire layer to be replaced at a future date.
The MVC is at the core of the software developed by Cardinal IT, Edinburgh. The model is implemented by means of a relational database server. The view is typically implemented as a thin-client application that leverages technologies such as Adobe Flash or HTML with AJAX, such that it may be deployed through web browsers with no additional installation effort. The role of the controller is fulfilled by server side technologies, such as JSPs, Servlets or PHP. XML and Object Relation Mapping software are used to provide the isolation between the layers.