Skip to content

Design Philosophy_135856340

nxi edited this page Apr 9, 2015 · 1 revision
Created by Tony Lam, last modified on Dec 09, 2009

Design Philosophy

A GumTree based application typically consists of three major components:
Platform + Frameworks + Customisations
  • Platform - each GumTree application is built on an application platform, which includes a runtime kernel plus a number of application services.  The GumTree platform itself is a fully functional application, where additional features are adding by installing plug-ins into the runtime kernel.  Plug-ins can leverage application services such as logging and persistence to simplify the coding task.  Further explanation on the concept of platform is available on the article "Creating Micro-platforms" (see further readings)
  • Frameworks - framework is referred as a collection of reusable components to solve complex issues, for example, the data analysis framework is designed to help developers to glue existing algorithms in an easy way.  GumTree applications can equip with one or multiple frameworks to address different needs of the users.
  • Customisations - depending on your user requirement, an application may require little or significant customisation on the existing building blocks.  In order to make good use of existing components, GumTree promotes two type of customisations: extension and integration.  When a new behaviour is added within the context of an existing framework, we contribute this via extension.  If possible, we implement more sophisticated features by integrating components from multiple frameworks.
Let's take an example by decomposing a GumTree desktop application that is used for instrument control.  This application may consists of an extensible and general purposed workbench (platform), generic instrument control component (framework), and instrument specific user interface component for special operations (customisation).  A more detailed description of the application design will be covered in the GumTree Architecture chapter.
In summary, the design of GumTree is centered around three main concepts: reusability, scalability and reconfigurability:
  • Reusability- maximising code reuse can free developers from working on fundamentional features, and hence they can spend more time on writing more complex domain specific logics.
  • Scalability - 
  • Reconfigurability -
With developers working on the open and pluggable platform, code sharing becomes
Further Readings:
Document generated by Confluence on Apr 01, 2015 00:11
Clone this wiki locally