The Technology Layer of the Essential Meta Model is concerned with the Technology that provides and supports the systems that are in use in the organisation - both software and hardware technology. This tutorial introduces the Technology Layer and gives an overview of the main constructs available for modelling Technology Architecture.
As with the other layers of the core meta model, the Technology Layer is split into the following views:
Conceptual - The conceptual area is where we define the ‘what’. In technology terms this means ‘what’ technology capabilities are required to provide the appropriate technology infrastructure for the enterprise.
- Example, Data Integration Services is a technology capability that describes ‘what’ is needed, but does not stipulate how this capability is to be realised
Logical - The logical area is where we define the ‘how’. In technology terms this is the next level of abstraction of ‘how’ the ‘what’ will be achieved. This deals in terms of the classes of technology and the technology products that are available to realise the Technology Capabilities
- Example, Integration Platform as a Service is a component that can be delivered by products such as Mulesoft, Dell Boomi, etc
Physical - The physical captures the implementation and deployments of technology in the enterprise. In the technology layer this means the lowest level of abstraction and captures the instances of the technology products and where they are physically deployed.
- Example, server XYZ123 hosted at IP address 18.104.22.168 in the London Data Centre, or your instance of EC2 in AWS Dublin
The major constructs for capturing Technology Architecture elements are shown in the above diagram. The following definitions describe and provide some examples of each construct.
Technology Architecture Objective - A strategic goal associated with the technology architecture of an enterprise
- Example - 'Converge Technology Infrastructure to a shared platform'
Technology Architecture Principle - High level rules that govern the manner in which technology capabilities are delivered by the enterprise and provide the context for designing and defining how these capabilities will be realised.
- Example - 'We will take an API-centric approach to delivering technology platforms'
Technology Domain - This is the top level construct in the Technology Architecture. It provides a means of grouping technology into particular areas of focus.
- Examples - Integration, Platforms, Development, Storage
Technology Capability - Technology Capabilities are conceptual constructs used to describe what a technology fundamentally does or needs to do. These often have quite abstract names in order to cover several Technology Components (see below) that fundamentally provide the same capability.
- Examples - Application Runtime Services, B2B Integration Services, Messaging Services, Data Management Services.
Technology Component - Describes a particular class of technology that is used to provide a Technology Capability. While Technology Capabilities can be used to capture capabilities that are currently not available, Technology Components should reflect what is currently available (or coming soon) in the technology marketplace.
- Examples - Application Server, Message Oriented Middleware, Operating System, Document Management System, ETL Platform, Data Lake
Technology Function - Describes the functionality that a Technology Component or Technology Product should (in top-down design) or can (capturing real products) provide.
- Examples - RDBMS::read, RuleEngine::load_rules
This is very low level of granularity and should only be used on an occasional basis if required by a project, typically we don't uses this in our enterprise architecture work, but the capability is there if you wish to
- Examples - RDBMS::read, RuleEngine::load_rules
Technology Provider - Captures a Technology Product or a Technology Product Build (a 'standard' Technology Architecture in use in the enterprise) that is being used to provide Technology Components in the architecture.
- Examples - Oracle Corporation::Oracle 12c, IBM::COBOL, AWS::EC2, Microsoft::Azure Functions
NOTE: The software product that is purchased as a packaged application is captured as a Technology Product, rather than as an application. The particular configuration of that packaged application software deployed in your organisation is captured as an Application Provider.
Technology Product Role - A relationship class that captures how a Technology Product or a Technology Product Build provides a Technology Component - using the concept of that product playing the role of the component. This class enables products that provide more than one Technology Component to be accurately captured and to associate the current architectural standard status for the product playing that role.
- Examples - Oracle 10g::as::RDBMS is production, Oracle 10g::as::Java Application Server is prototype.
The role concept we use in Essential is very powerful as it allows you to describe how something can be performing multiple roles, but allow for some to be strategic and others not. This is critical when looking at rationalisation as without this relationship it is impossible to tell if something can truly be rationalised. In the example above, if we just said Oracle 10g was strategic at the product level then we cannot tell that actually that is true for the RDBMS but not for the Application Server. To make accurate entrprise architecture decisions you do need the granularity.
Technology Node - a locateable technology device that exists in the physical environment of the enterprise. Technology Nodes capture both physical and virtual devices. When capturing physical or virtual server nodes, the hostname is normally used as the name of the Technology Node. Technology Nodes can also contain other Technology Nodes, e.g. for capturing how virtual servers are hosted by a physical server.
- Example - server123, AWS EC2 in AWS East Coast US
Technology Instance - A physical instance of an element of technology that exists in the architecture. Technology Instances are deployed to Technology Nodes, and the dependencies between these instances are captured - in particular between instances that are deployed on different Technology Nodes. Technology Instances are sub-divided into:
- Application Software Instance - instances of Application Deployments
- Hardware Instances - instances of hardware technology, such as external disk drives, RAID arrays.
- Information Store Instance - instances of Information Stores
- Infrastructure Software Instance - instances of Technology Products
Technology Deployment Group - a convenience construct that enables you to define a 'template' deployment of a Technology Node and the Technology Instances that are deployed on that node. You can then specify the number of instances of this 'template' that exist in the enterprise. This is particularly useful for managing scenarios such as standard desktop builds over hundreds or thousands of installations.