Architecture

Architecture

How the SLS architecture increases both flexibility and reliability

Programming architecture is more than just using OOP (Object Oriented Programming) – it is the core of leverage. A well designed system has objects and methodologies that can be reused in a wide range of applications. Sunshine Learning System’s key to success is leverage – using the correct set of architectural elements to create applications quickly and cost effectively.

The Spirit behind the Architecture

Programming architecture is more than just using OOP )Object Oriented Programming) – it is the core of leverage. A well designed system has objects and methodologies that can be reused in a wide range of applications. Sunshine Learning System’s key to success is leverage – using the correct set of architectural elements to create applications quickly and cost effectively

We believe that design patterns are used to make programming easier and more effective; they are never reasons to arbitrarily create abstraction in the programming.  Our goal is to use the high level implementation of the design pattern while keeping the system as simple as possible.  This does not mean merely reducing the amount of code, it means reducing the conceptual complexity of the system to where the balance between abstraction and direct meaning of the code is reached.  We develop our architecture to be robust and able to be leveraged while still making it possible to be used with minimal training on the system.

Insulating the application from the server

In most applications, we develop the application as an n-tier architecture that includes a data tier, business tier and display tier.  One challenge that is often faced with Internet Applications is the interconnection between the business tier and the display tier.  While the display tier typically has the most complex and difficult to test Use Cases, its development often has to wait until the completion of the lower level tiers, causing risk in the project timeline.

Sunshine Learning Systems has solved this challenge through the use of the data façade.  When we develop a display tier, we architect it as a 3-tier system using the model-view-controller pattern where all of the models receive their data through a data façade.  The data façade provides a standard interface for the application that insulates it from the other application tiers on both sides.  This combination of design pattern and data façade has many advantages:

  • Reduces cost by allowing us to create standard components that we can leverage across many projects.
  • Saves time by allowing the simultaneous development of the display and business tiers.
  • Increases stability by allowing test data to be used while the display layer is being programmed.
  • Allows for portability of the server environment as only the data façade needs to interface with the server and it is written to allow for multiple environments.
  • Increases quality by allowing developers to work within their strengths by isolating the individual components of the application.
  • Improves testing reliability as test data can be used seamlessly to verify test cases.