How to architecture your Agile Platform Application

How to architecture your Agile Platform Application

  
How Swiitch structured it's Applications
  • Level 4: Interface Tier - Thin client application interface.  [Interface]
  • Level 3: BusinessService Tier - Composite business service logic controller API [Process][Logic][Data:Structure]
  • Level 2: CoreService Tier - Core service logic controller API [Process][Logic][Data:Structure]
  • Level 1: Data Tier - Infrastructure data service API [Data]
  • Level 0: Component Tier - Component Modules/Connectors, Web Service Wrappers etc [Interface][Logic][Data]

Example
Level 4: Interface Tier - Thin client application interface. Contains user interface, App logic to verify EditRecord/Forms, and consume web services from "BusinessService Layer" and "CoreService Layer"
  • Account (Front Office) - Thin client application interface for end-users. 
  • AccountManager (Back Office) - Thin Client application interface for application administration and management.
Level 3: BusinessService Tier - Composite business service logic controller API. Contains Specific business Functions such as Processes/Timers, reusable actions/functions and Web Blocks, structures and web service interface to support REST XML, REST JSON, and SOAP.
  • AccountServices - Specific Account Services API.
Level 2: CoreService Tier - Core service logic controller API. Contains Specific business Functions such as Processes/Timers, reusable actions/functions and Web Blocks, structures and web service interface to support REST XML, REST JSON, and SOAP.
  • AccountCore - Generic Account Services API.
Level 1: Data Tier - Infrastructure data services API. This layer provides data access services and data caching with a simple data service API. 
  • AccountData - Account Data service API.
Level 0: Component Tier -  Component Modules/Connectors, Web Service Wrappers etc. This layer wraps 3rd party web services, and extensions.
  • WebServiceEngine 
  • Geo 
  • Other Component Modules