Websites, Mobile, SEO, SMO, Software

Websites, Mobile, SEO, SMO, Software
Professional Web & Mobile Technology Solutions

Tuesday, March 13, 2012

Untitled

Normal 0 false false false EN-US X-NONE X-NONE

Why Software Architecture Matters Today More than Ever

Your business requires software to run.  However, the software should not only allow your business to run, but to grow, adapt, scale and improve operations and efficiency.  These concepts do not happen by accident, they happen by smart planning and understanding software architecture.

Let’s take a typically organizational website.  Your website has a front-end UI (User Interface) that most likely calls logic that communicates directly with your database(s).  So your website application might have 2 layers.  The first layer is the web pages design and UI layer which communicates with the second layer is your data layer where the information is stored and retrieved.

This all sounds great, but there is a problem.  This model is limited for quick extensibility and adaptation of new business objectives.  There is a layer (or two) missing from this approach that would allow a more modular system leading to faster adaptation of new business rules and processes and even technology such as mobile devices.

The enterprise systems eSavV develops typically contain 4 layers.  The first layer is the UI which is the front-facing design.  The second layer is a business logic layer that handles information processing and dispatching.  The third layer is a Web Service layer that is comprised of components that handle key business processing and algorithmic functions.  The fourth layer is the data layer.

Why Is This Important?

Software architecture is comprised of what the system is, and what the system does.  What the system “is” contains the stable parts – the parts that do not change.  What the system “does” contains the flexible parts – the parts that change often.  Therefore, architecture must be separated by differing rates of change.  These rates of change are the business functions, rules or regulations that change often and also are the new pieces of functionality that a business introduces to its internal staff or customer base.

Let’s start with the FIRST layer is the User Interface (UI):

The UI can be designed for a browser, a phone, a tablet or a desktop application.  Since the front-end design can change and can also be adapted for various marketing campaigns, this layer should be isolated.  The other reason the UI layer should be isolated is due to the fact that you can represent the same business data in many different ways and you may want to do this for various marketing strategies.  The 2nd layer, the business logic layer, should not change based on the UI.  If designed properly, it can be reused.

The SECOND layer is the Business Logic Layer:

The Business Logic Layer is typically a family of objects that are designed to be independent, but work together.  Take a real-world construction project as an example.  You may hire a painter, a plumber and an electrician to do a job.  They are 3 different skills and 3 different people.  Yet, they may collaborate and work together to finish the job.  This is how the business logic layer should be designed.  This type of design is called Object Oriented design and despite many programmers stating they know how to write OO logic, this is unfortunately a rare thing.  Real OO design is a very challenging endeavor and mastery of its art takes many years and a lot of experience.  Designing objects that are independent yet are collaborative to fulfill a business function is difficult.  But when implemented properly, can bring about years of quick adaptation, maintainability, extensibility and reusability.

The THIRD layer is the Web Service Layer:

A Web Service is simply a set of business functionality that lives in the “cloud”.  It is a function or set of functions that can be called by different parts of a software system.  Your browser or web application can call these services as can your mobile devices.  The art of Web Service design lies in the ability to define the business functions in such a way that they can be called in different ways creating a large set of behaviors with a relatively small set of services.  Also, these services are reusable.  So if you have a web-based application that uses a browser and decide later to introduce a mobile application, the mobile application can also use the same services.

The FOURTH layer is the Data Layer:

The data layer is the database model that houses all the business data or information.  How this model is designed is critical to security, extensibility and scalability.  The large amounts of data that are stored are useless unless they can be retrieved in dynamic and flexible ways.  Therefore, the way in which the information is categorized, classified, related and indexed is very important to allow extrapolation of varying sets of data.  The Web Service layer is responsible for communicating with this model which allows your UI and Business Logic Layer to be modified without affecting the data model and vice-versa.

No comments:

Post a Comment