The Guide to Practical and Pragmatic IT Architecture Design

IT Architecture: Functional Capabilities

Each application has business or functional logic to perform whether this is just turning on a light or calculating the new interest rate for a loan, it is why computers changed the world to facilitate processes and actions with the simple touch of a button. However, the logic needs to be modelled and / or programmed.  

An architect needs to group of functionalities to decide which logic goes in which part of the program and what logic may be re-used by different functionalities. An example here is for instance doing payments can be called from multiple modules, so it can be built only once to make the architecture more efficient. At a more granular level, each module can have services that are specific functionalities such as payments, checkin, check balance. These services can be designed as business services (as in a service oriented architecture – SOA), APIs and/or micro services.  

Architecture Framework Functional Capabilities

Next to the identified functionalities, there are number of other capabilities that helps building a solution:
  • Workflow or Business process management(BPM) engine that helps orchestrate the different steps in a flexible way
  • Business rules engine, helps establishing rules or criteria that determines a resulting outcome, e.g. based on different criteria, a visitor to a country can be granted a visa. These criteria that decide whether an applicant can enter a country are managed in the business rules engine,
Diving into application logic, one needs to customize or program the logic. The most basic application commands are:
  • Response: Printing something as output to a screen or paper or activating a device
  • Input: Obtaining information through a screen, microphone, camera or other device
  • Making calculations
  • Comparing an input to a certain value and deciding what to do
  • Storing, querying, changing and retrieving data, images or videos
Obviously, there are more advanced programming semantics, dependent in the specific solution needs, but these are the most fundamental logical commands an application has. The detailed design and build of the application logic are typically the responsibility of a programming team and not a technical architect. A technical architect designs the blueprint of the application with which functionalities and modules are required to be built.

No comments: