EnterpriseSMS® Layers

Applying the system model to building EnterpriseSMS® helped because its organized approach helps clarify the participating components and their relationships.  The four layers are Field Devices and Users, Edge Components And User Interfaces, Shared Applications, and Shared Core Components.  Each layer plays an important role in achieving the vision.

  Field Devices And Users

Systems exist in an environment defined by the field devices and users that will interact with it.  They create and define the requirements that must be achieved by the system.  As expected, the most comprehensive view of field devices and system users makes the best system.  The standard for EnterpriseSMS® is any device and any user anywhere.  It is not unreasonable to declare the field devices and users the most important part of the system because their requirements control so much of what it becomes.

  Edge Components And User Interfaces

The edge of the system is defined by the edge components and user interfaces that connect the system to its environment.  An edge component is an operating environment (hardware, computing environment) plus some application software that characterizes the behavior of the operating environment including its user interface.  User interfaces include specialized software that provide graphical user interfaces for human users.  Edge components and user interfaces as viewed from the outer layer provide the business capabilities of the system.  As viewed from the shared applications layer they become the virtualized image of the field devices and users with which the system interacts.

  Shared Applications

Our vision required a design where every application in the system would be distributable and that multiple instances of the same application had to be supported.  This distribution requirement went a long way to ensure easy scalability, controllable performance, and high availability.  All applications had to be able to interact with any edge device or relevant user interface and vice versa!  Scalability and controlled performance were supported because additional instances of a software component could be added along with additional computing environments to increase capacity.  High availability is enhanced because application instances may be made redundant in different computing environments thus protecting from failures. 

  Shared Core Components

Shared core components include databases and transaction handling components that are essential to the vision. They provide the configuration data, participate in message routing and arbitrate requests for shared resources, and provide automatic system responses to selected events.  These components must be deployable in multiply redundant configurations distributed across an environment to have true high availability.  An advantage of this approach is that administration, which would otherwise be nearly impossible and extremely resource intensive, can now be accomplished centrally with automatic distribution of changes to all concerned components.  When a computer fails and is replaced, the replacement process is simple and fact as it comes from the  core database components.  Additionally, these core components provide sites for interfaces to external system integration. 

Based on this classification scheme, specific design constraints were developed were developed for each layer.  There have been many enhancements over the last 25 years as the operating system software, networks, and related tool capabilities have been greatly expanded.