Saturday, September 20, 2014

Solution Architecture Reference Model Example - Logical Reference Model


I will continue to expand from the Previous Post of Solution Architecture reference models. This post I will cover the second but the major architectural view logical reference model.
The logical reference model  details the concept of the conceptual reference model which is explained in the  Previous Post.  The logical reference model identifies the building blocks of each of the concept that are identified at the conceptual reference model.

Logical Reference Model Depiction

The below diagram shows the depiction of a Logical Reference model.



Logical Reference Model



  Presentation Layer

In this section all the logical components which are part of this layer will be identified and explained.

Graphic Interface

A graphical user interface (GUI) (sometimes pronounced gooey) is a type of user interface item that allows people to interact with programs in more ways than typing such as computers; hand-held devices. A GUI offers graphical icons, and visual indicators, as opposed to text-based interfaces, typed command labels or text navigation to fully represent the information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements.

Internationalization

Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering(Source codes) changes. Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.

Personalization

Personalization involves using technology to accommodate the differences between individuals. Web pages are personalized based on the characteristics (interests, social category, context, etc) of an individual

Printing

Printing is a capability for reproducing text and image using a printer. It could be on pre-formatted paper or exact reproduction of UI.

Portal

It is a capability which allows to presents information from diverse sources in a unified way. Portals provide a way for enterprises to provide a consistent look and feel with access control and procedures for multiple applications and databases, which otherwise would have been different entities altogether.

Domain Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Domain Logic

Business logic, or domain logic, is a capability that is generally used to describe the functional algorithms that handle information exchange between a database and a user interface. 

Business Rules

Business rule is a statement that defines or constrains some aspect of the business. It is intended to assert business structure or to control or influence the behavior of the business. The capabilities of the Business Rules component includes but not limited to 

  • Rule Versioining
  • Rule Auditing
  • Rule Approval
  • Rule Deployment

Event Processing

Capability to produce, detect, consume , and react to events generated because of a business or system significant change in system state. This capability is used to help deliver a decoupled or loosely coupled solution which allow for flexible and adaptive solutions.

Reporting

Reporting capability provides ability to query data sources with different logical models to produce a human readable report. Reporting can be mostly divided to three categories

Operational Reporting

Operational reports directly support the ongoing operation of a system. They collect transactional data in order to enhance operational efficiencies. These reports are used by people with responsibility for improving operations. They provide task-oriented line-item information on individual transactions at the very granular level of detail required for operational management.

Tactical Reporting

Tactical reports are intended for monitoring and responding quickly to a variety of short-term situations Such reports may need to combine data from multiple operational systems or store attributes that are not resident in the operational system because they are not required for operational processing.

Strategic Reporting

Strategic reports may measure the same entities as tactical reports; but they may also deal with more strategic financial, sales and productivity data and stretch the analysis over longer periods of time. This report is required by the Senior Management and executives have a business need to obtain the reporting figures at an overview level as opposed to an analyst in a department who needs reporting data at a finer level of detail.

Job Scheduler

A job scheduler is a capability that is in charge of unattended background executions, commonly known for historical reasons as batch processing. Job schedulers may also provide a graphical user interface and a single point of control for definition and monitoring of background executions in a distributed network of computers.


Workflow

A workflow is a  depiction of a sequence of operations, declared as work of a person, a group of persons, an organization of staff, or one or more simple or complex mechanisms.

Transaction Processing

Transaction processing is designed to maintain an application/database integrity a known, consistent state, by ensuring that any operations carried out on the system that are interdependent are either all completed successfully or all canceled successfully.

Data Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Data Persistence

Persistent data is data which always preserves the previous version of itself when it is modified; such data are effectively immutable, as their operations do not (visibly) update the in-place, but instead always yield a new updated copy.

Analytics

The study of business data using statistical analysis in order to discover and understand historical patterns with an eye to predicting and improving business performance in the future.

Replication

Replication  process of sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility

Query

Information Query allows users to interactively interrogate databases, analyze its data and update it according to the users privileges on data.

Data-Warehousing

Data-warehouse is a repository of data which is created by integrating data from multiple disparate transaction processing systems. 

Data Archival

Data Archival  refers to the capability of long-term storage and preservation of information for recovery, legal, audit and compliance reasons.  

Data Summarization

Data Summarization summarizes data included both in primitive and derived data, in order to create a derived shortened data that is general in nature. Data summarization provides the capacity to give data consumers generalize view of disparate bulks of data.

Data Extraction 

Data extraction is the act or process of retrieving data out of disparate data sources for further data processing or data storage or data migration. An intrinsic part of the extraction involves the parsing of extracted data, resulting in a check if the data meets an expected pattern or structure. If not, the data may be rejected entirely or in part


Infrastructure Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Network

Network services provide addressing and packet delivery for the provider’s physical infrastructure and the consumer’s VMs. Network capability includes physical and virtual network switches, routers, firewalls, and Virtual Local Area Network (VLAN).
It facilitates communication between people, software or server to share hardware, information and software.

Storage

It is a device for recording (storing) information (data). A storage device may hold information, process information, or both. A device that only holds information is a recording medium. Devices that process information (data storage equipment) may either access a separate portable (removable) recording medium or a permanent component to store and retrieve information.

Compute

Compute services supply the physical resources such as CPU, Random Access Memory (RAM), NIC, Video, and Storage used by the provider to deliver VMs to consumers. It contains the physical server hardware and parent OS.

Hypervisor

The hyper-visor provides VM (Virtual Machine) services by partitioning and presenting compute, network, and storage services.

Integration Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Mediation

Mediation can be defined at the following  levels. 
  • Protocol Mediation - Communication protocol (SOAP, JMS, FTP, HTTP, SMTP etc.) mediation
  • Data Mediation - Data transformation, adapter to enterprise systems.
  • Partner Mediation - Fan-in and Fan-out of messages to multiple producer/consumer

Messaging

It is defined as the capability to transfer packets of data frequently, immediately, reliably, and asynchronously, using customizable formats.

Discovery

Provides services/capabilities which allows participating application to inquire and discover the metadata associated with interfaces. This is useful for dynamic discovery and binding to appropriate interfaces. Following capabilities are examples of the same

  • Service Registry
  • End point discovery and Binding
  • End-point Virtualization

Collaboration

It is defined as the  capability to provide interaction between participating business and/or system entities using communication channels as defined below.
  • Email
  • SMS
  • Fax
  • Web 2.0
  • File Transfer

Security Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Non-Repudiation

Non-repudiation is the ability to prove that a specific user and only that specific user sent a message and that it hasn't been modified.

Authentication

Authentication as a capability is the process of confirming the correctness of the claimed identity.

Authorization

Authorization as a capability is the approval, permission, or empowerment for someone or something to execute an action.

Encryption

The capability of transforming information (referred to as plaintext) using an algorithm (called cipher) to make it unreadable to anyone(system or human) except those possessing special knowledge in the form of keys, symmetric or asymmetric. In the current context this capability is used to protect data in transit.

Identity Management

Identity management is the capability of a system that maintain and also verifying the identity of a user, process, or device, usually as a prerequisite for granting access to resources in an IT system.

Common Services Layer

In this section all the logical components which are part of this layer will be identified and explained. 

Logging

Logging refers to the recording of activity. Logging is a common issue for development teams. Designing a good logging and instrumentation strategy is important for the security and reliability of any application. Failure to do so can make the application vulnerable to repudiation threats, where users deny their actions, and log files may be required for legal proceedings to prove wrongdoing. There should be audit and log activity across each of the  layers.  Auditing is usually considered most authoritative if the audits are generated at the precise time of resource access, and by the same routines that access the resource. Instrumentation can be implemented by using performance counters and events to give administrators information about the state, performance, and health of an application.

Exception and Error Handling

Exception handling is the process of responding to the occurrence, during computation, of exceptions – anomalous or exceptional 
situations requiring special processing – often changing the normal flow of program execution.  Designing a good exception management strategy is important for the security and reliability of your application. Failure to do so can make it very difficult to diagnose and solve problems with in an  application. It leaves the  application vulnerable to Denial of Service (DoS) attacks, and it may reveal sensitive and critical information. Raising and handling exceptions is very important process in any application development.

Notification

Notification  provides a means of delivering a message to a set of recipients. The key capabilities  should include
  
  • The data contained within the notification system should help the recipient to take some informed decisions.
  • There should be capability for real time bi-directional interaction with the notification system so as to take appropriate actions.
  • The criticality of the event needs to be prioritized and adequate escalation mechanism needs to be implemented.
  • There should be scheduling capabilities to identify what are the appropriate time when a recipient needs notification.

Monitoring


Monitoring  applications to detect and respond to problems - before an end user is even aware that a problem exists - is a common systems requirement, especially for revenue-generating production environments. Most administrators understand the need for application monitoring. Infrastructure teams, in fact, typically monitor the basic health of application servers by keeping an eye on CPU utilization, throughput, memory usage and the like. There are many parts to an application server environment, and understanding which metrics to monitor for each of these pieces differentiates those environments that can effectively anticipate production problems from those that might get overwhelmed by them.

Caching

Caching is a technique which actually stores the data  that have been computed earlier or duplicates of original values that are stored elsewhere.   If requested data is contained in the cache this request can be served by simply reading the cache, which is comparatively faster.   Otherwise the data has to be recomputed or fetched from its original storage location, which is comparatively slower.  Hence, the greater the number of requests that can be served from the cache, the faster the overall system performance becomes.





No comments: