Category Archives: Software Architecture

Reference Models and Architectures related to Smart, Connected Devices and Internet of Things

Introduction

It’s been a while since I started to collect and review reference models for the domain of Smart, Connected Devices aka Internet of Things (IoT) (see this former blog post). A reference model is a standard decomposition of a known problem into parts that cooperatively solve the problem (see [BaCK2003, p. 24 ff.). It facilitates the transfer of knowledge in relation to a problem domain and supports the communication between stakeholders, architects and developers. The design and implementation of IT systems connecting to, integrating with and managing Smart, Connected Devices or the Internet of Things is such a problem. Actually it’s an extensive and diverse problem domain consisting of numerous variations of the problem and many feasible solutions. Furthermore, the vendors of so-called IoT platforms usally have their own view on the architecture, services and protocols necessary to deploy IoT-related solutions. Thus, architects have to put those IoT platforms and their underlying architecture into perspective. In addition an IoT-related solution generally isn’t built from scratch and has to be integrated with existing operational technology (OT) systems and business applications. In order to grapple with those challenges architects require knowledge about the problem domain of Smart, Connected Devices/the Internet of Things. Therefore, any stakeholder, architect and developer who’s not familiar with this problem domain, should investigate some reference models to get to know scenarios, variations and options.

Consider this post as a starting point and guide to existing reference models in the domain of Smart, Connected Devices or the Internet of Things – as far as I know them. The release of an Open Group white paper by Chris Harding inspired me to revise my inital blog post and update my knowledge base once again.

Looking at Smart, Connected Devices or the Internet of Things in its entirety, the problem spreads across multiple architectural domains (business, application and technology). Therefore, I differentiate at first between views on business model & business architecture and views on application & technology architecture.

 

Views on the Business Model & Business Architecture

The high-level business view on the topic of Smart, Connected Devices is excellently described in two Harvard Business Review articles by M. E. Porter and J. E. Heppelmann (see also the section Smart, Connected Devices (aka Internet of Things) on the knowledge page Business Strategy and Business Models):

As far as I know, Porter and Heppelmann coined the term Smart, Connected Devices to separate their work focusing on the ‘changing nature of things‘ from the technology that enables and connects the things. Although they don’t refer to the concepts explicitly, Porter and Heppelmann elaborate on the business strategy and business architecture related to Smart, Connected Devices.

Smart, Connected Devices - Capability Model

A Capability Model for Smart, Connected Products (Source: Porter, M.E.; Heppelmann, J.E.: How Smart, Connected Products Are Transforming Competition. In: Harvard Business Review, November 2014.)

In detail they’ve developed:

  • a definition of Smart, Connected Products,
  • a capability-based reference model for managing Smart, Connected Products,
  • a capability model for Smart, Connected Products (see figure above),
  • a composition of ten new strategic choices in relation to Smart, Connected Products,
  • a summary of the change impacts in relation to the generic, high-level value chain and
  • a summary of the implications for the organizational structure of a company.

Although some of the reference models considered in the next section are also dealing with the business architecture by providing dedicated viewpoints, the aforementioned articles represent the most extensive business-oriented views that I know so far.

 

Views on the Application & Technology Architecture

There are a lot of reference models on the topic Internet of Things available. In particular, a lot of software companies have some IoT-related products and/or services in their product and service portfolio. However, if the focus is set on non-proprietary reference models, I recommend considering the following existing and emerging architectural deliverables:

The following sections provide an overview of each reference model and put the included deliverables into perspective.

 

Internet of Things Architecture (IoT-A)

The Internet of Things Architecture is a deliverable of the collaborative European Lighthouse Integrated Project ‘IoT-A’ which was conducted between September 2010 and November 2013. Essentially this project delivered:

  • The IoT-A Architectural Reference Model consisting of a reference model, a reference architecture, corresponding usage guidelines and design choices,
  • a definition of the terminology used across all deliverables,
  • concepts for modeling IoT-related processes and interactions (see deliverables D2.1, D2.2, D2.3 and D2.5),
  • an initial analysis of the appropriate M2M API design (see deliverable D3.1),
  • concepts and solutions for IoT-related resource management (see deliverables D4.1 and D4.3),
  • concepts and solutions for privacy and security (see deliverables D4.2) and
  • a dedicated book providing detailed guidance on how to use the reference model and architecture.

The aforementioned concepts and solutions are supposed to complement the IoT Architectural Reference Model. They deal with distinct aspects of an IoT-related IT system and elaborate on specific design choices and concrete solution architectures.

The reference model aims at establishing a common conceptional foundation and language for IoT architectures and systems. It consists of the following IoT-related models (see figure below):

  • Domain model,
  • information model,
  • functional model,
  • communication model and
  • trust, security and privacy model.

The reference architecture is designed as a generic blueprint for specifying concrete IoT-related architectures. It rests upon and extends the reference model.

IoT-A Reference Model

Interactions of all the Sub-Models in the IoT Reference Model (Source: IoT-A: Updated Reference Model for IoT v1.5. Deliverable D1.3. June 16, 2012.)

The following views are described as part of of the reference architecture:

  • Functional view,
  • information view and
  • deployment and operation view.

Furthermore, the following four architectural perspectives document a collection of activities, tactics and guidelines that support the achievement of non-functional quality attributes of a concrete architecture:

  • Evolution and interoperability,
  • availability and resilience,
  • trust, security and privacy, and
  • performance and scalability.

The IoT Architectural Reference Model also contains detailed guidance on how to use the model to craft concrete IoT-related architectures. Furthermore, the project has delivered a book which provides an overview of the model and guidance on its usage.

 

Industrial Internet Reference Architecture (IIRA)

The Industrial Internet Consortium is a global, member-supported, organization that promotes the Industrial Internet of Things in order to accelerate market adoption and decrease barriers to entry. There are various working groups and teams working on currently seven areas (Business Strategy & Solution Lifecycle, Legal, Liaison, Marketing, Membership, Security, Technology and Testbeds).

The Architecture Task Group has developed and published the Industrial Internet Reference Architecture (IIRA) as a technical report.

IIRA Architecture Viewpoints

Industrial Internet Architecture Viewpoints (Source: Industrial Internet Consortium: The Industrial Internet of Things Volume G1: Reference Architecture. IIC:PUB:G1:V1.80. January 31, 2017.)

The reference architecture contains the following architectural views (see figure above):

  • Business,
  • usage,
  • functional and
  • implementation.

With the exception of the functional view, all views are rather abstract. They define the elements and relationships of the view and describe some instances of them. The business view focuses on the stakeholders, vision, values and objectives for implementing an IoT-related IT system that is to say it isn’t describing a complete business architecture consisting of business capabilities, processes, roles, etc. The functional view documents five functional domains which are further refined by functions. The implementation view refers to five architectural patterns which can be leveraged to implement IoT-related IT systems.

In addition to the documented views the reference architecture elaborates on the key quality attributes of IoT-related IT systems and discusses how those quality attributes can be achieved generally. However, the level of detail of this discussion varies across the selected quality attributes. Overall it doesn’t reach a level of detail required for the description of an architectural tactic.

The other working groups and teams have produced further technical reports which should be considered too:

The Business Strategy and Innovation Framework identifies and analyzes the problems and approaches on a strategic level that need to be addressed when the IoT in considered in scope of a business or innovation strategy. The Industrial Internet Security Framework rests upon the Industrial Internet Reference Architecture and elaborates on the security concerns of an IoT-related architecture. The Industrial Internet Vocabulary defines common terms which are reference across all other deliverables.

Finally, the Industrial Internet Consortium organizes Testbeds which are opportunities to implement and evaluate IoT-related processed, applications, technologies, products, etc. The experiences and results of the Testbeds are supposed to be reinforced within the working groups and teams.

 

Reference Architectural Model for Industrie 4.0 (RAMI 4.0)

The Reference Architectural Model for Industrie 4.0 (RAMI 4.0) is a collaborative result of several organizations and institutions: The Plattform Industrie 4.0, VDI/VDE Society for Measurement and Control (GMA), ZVEI and German Commission for Electrical Engineering (DKE). The German term Industrie 4.0 was coined as part of the high-tech strategy of the German government which promotes the enhanced automation and data exchange in manufacturing technologies. The Plattform Industrie 4.0 is a research and collaboration platform which supports the implementation of the aforementioned high-tech strategy. The Industrie 4.0 is considered to be a specialization on the Internet of Things.

The Reference Architectural Model for Industrie 4.0 rests upon the Smart Grid Architectural Model (SGAM) which was developed by the European Smart Grid Coordination Group (SG­CG). It was adapted and extended to fulfill the requirements of the Industrie 4.0 strategy. The model was developed to meet to following objectives:

  • Mapping to existing standards,
  • identification and location of missing standards,
  • identification of relationships within the model and
  • the deduction of high-level rules for the implementation of Industrie 4.0 applications.

It is a three-dimensional model which essentially structures the problem domain of Industrie 4.0-related IT systems (see figure below).

RAMI Reference Model

Reference Architecture Model for Industrie 4.0 (Source: ZVEI/VDE/VDI: Reference Architecture Model Industrie 4.0 (RAMI4.0). July 2015.)

The first dimension consists of the following layers which are located along the vertical axis of the model:

  • Business,
  • functional,
  • information,
  • communication,
  • integration and
  • asset.

Along the left-hand horizontal axis the model outlines the value stream and life cycle of a product. The value stream Type contains the life cycle phases Development and Maintenance/Usage and the value stream Instance comprises the life cycle phases Production and Maintenance/Usage.

The third dimension describes the location of functio­nalities and responsibilities within the factories/plants along the right-hand horizontal axis as a functional hierarchy including the following levels:

  • Connected world,
  • enterprise,
  • work centers,
  • station,
  • control device,
  • field service and
  • product.

Reference Model for Industrie 4.0 Components

An Industrie 4.0 component is defined as either hardware or software which must have certain common properties. Such a hardware or software component can be located in any dimension/layer of the Reference Architectural Model for Industrie 4.0.

The Reference Model for Industrie 4.0 Components elaborates on the definition, characteristics, capabilities and requirements of Industrie 4.0 components. It is the initial publication of a series of elaborations that aim at detailing the reference model.

RAMI Industrie 4.0 Component

Industrie 4.0 Component Model (Source: ZVEI/VDE/VDI: Reference Architecture Model Industrie 4.0 (RAMI4.0). July 2015.)

The definition of an Industrie 4.0 component is based on the description of its characteristics (e.g. type vs. instance, virtual presentation and communication ability) and requirements that each component is supposed to implement. The Administration Shell is a core element of the Industrie 4.0 component concept and encapsulates the virtual presentation and technical functionality a component. It makes the data and functions available to the outside world that is to say other IT systems or human actors.

Web of Things (WoT) Architecture

The W3C has established three groups related to the Internet of Things: Web of Things Interest Group, Web of Things Working Group and Web of Things Community Group. These groups grapple with the lack of interoperability between different IoT-related platforms and aim at identifying and developing standards that facilitate the development of applications independent of the underlying IoT platform.

The Web of Things (WoT) Architecture is a deliverable by the Web of Things Interest Group. It focuses on the application layer of an IoT-related IT system and describes a functional view consisting of logical modules, implemented requirements (see figure below) and reasonable deployment scenarios (deployment view).

W3C-Conceptional-Architecture

Conceptual Architecture of the WoT Building Blocks (Source: World Wide Web Consortium: Web of Things (WoT) Architecture. W3C Editor’s Draft. ‎August‎ 29, ‎2017.)

The WoT Architecture is further detailed by the following deliverables:

  • The Web of Things (WoT) Thing Description defines a fundamental semantic metadata model of a thing and a basic description of its functional interface. The model was designed to describe the capabilities of a thing: properties, actions, and events.
  • The Web of Things (WoT) Scripting API elaborates on the programming interfaces to the Web of Things (WoT) that is to say the different APIs outlined in the WoT Architecture. The APIs deal with the discovery, access and control of Things.
  • The Web of Things (WoT) Binding Templates are supposed to describe standard binding templates for most common protocols which are implemented by the Protocol Binding component of the Web of Things (WoT) Architecture. However, as of this writing the deliverable doesn’t contain any description (W3C Editor’s Draft ‎26‎ ‎February‎ ‎2017).

 

OPC Unified Architecture (OPC UA)

The OPC Unified Architecture is a platform-independent, service-oriented architecture specification which supports the communication between various systems and devices. It originally focused on promoting interoperability within manufacturing industry but recently it’s also increasingly considered for implementing IoT and Industrie 4.0 scenarios. The specification is maintained by the OPC Foundation which is an industry consortium currently consisting of more than 450 members.

The scope of the specification is the secure and reliable exchange of process data, alarms, events, historical data and batch processes between sensors, instruments, controllers, software systems and notification devices. Therefore, the specification elaborates on the following models:

  • An information model to represent structure, behaviour and semantics,
  • a message model to interact between applications and devices,
  • a communication model to transfer data between endpoints and
  • a conformance model to guarantee interoperability between systems.

Actually it’s a multi-part specification subdivided into three groups: Core specification, access type specification and utility specification (see OPC UA Part 1: Overview and Concepts).

The OPC UA architecture describes a standard by which systems and devices can communicate by exchanging messages between clients and servers over various types of networks. A server hosts a collection of data (so-called AdressSpace) that is provided to clients via services. Each server defines the set of services that it provides and a client can dynamically discover those services. Servers can host current and historical data as well as alarms and events. They can also notify clients of important changes.

Servers provide clients with type definitions for the objects which are accessed based on the AdressSpace. OPC UA supports different data formats like binary and XML. However, the semantics of the data beyond the type definitions is not in scope of the specification.

Due to its flexibility, OPC UA is not targeted at the integration of SCADA, PLC or DCS only but also as a standard to integrate with non-operational technology systems (see figure below).

OPC-UA-Target-Applications

OPC UA Target Applications (Source: OPC Foundation: OPC Unified Architecture: Part 1: Overview and Concepts. Release 1.03. October 10, 2015.)

The OPC UA rests upon a client-server architecture and the fundamental message exchange pattern adheres to a request-response model. However, the OPC UA Working Group is currently introducing additional communication pattern into the standard (see OPC UA Part 14: PubSub). This will particularly enhance the usage of the standard within IoT-related scenarios where the communication with devices will not be directly but some cloud-related service will be involved.

The Reference Architectural Model for Industrie 4.0 (RAMI 4.0) considers the OPC UA as a standard for implementing the communication layer. However, a detailed mapping of all the standards which were consulted for reuse in RAMI 4.0 is not part of the reference architecture.

 

oneM2M

The oneM2M is a global standards initiative consisting of eight regional information and communication technology (ICT) standardization bodies, various industry consortia and over 200 member organizations. The fundamental architectural model is the oneM2M Layered Model (see figure below).

oneM2M_Layered_Model

oneM2M Layered Model (Source: oneM2M: Functional Architecture. Technical Specification TS-0001-V2.10.0. August 30, 2016.)

The initiative aims at developing technical specifications which focus on a Common Service Layer (also called M2M Service Layer) which supports the connection of heterogenous hardware devices and software components in Machine-to-Machine (M2M) and Internet of Things (IoT) scenarios. The Common Service Layer abstracts the different characteristics of various network protocols and provides a common, standardized set of functions to the Application Layer. Applications don’t have to consider specific networks and technologies. They are decoupled from the network layer and thus can be developed (and maintained) cheaper and faster. The technical specifications are independent of an industry that is to say there are no industry-specific processes, functions and interfaces considered. An exception is the Home Appliances Information Model and Mapping (see TS-0023 and the summary below).

The deliverables of the oneM2M initiative encompass technical reports and technical specifications. The former have supported the development of the technical specifications as intermediate deliverables. They describe for example the results of an analysis of existing architectures and standards proposed for consideration. The latter are considered draft versions of official standards that will be made available by the eight regional ICT standardization bodies (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA and TTC).

The technical specifications focus for example on the following topics:

  • Requirements (see TS 0002),
  • Functional Architecture (see TS 0001),
  • Security Solutions (see TS 0003),
  • Service Layer Core Protocols (see TS 0004),
  • Common Terminology (see TS 0011),
  • Base Ontology (see TS 0012),
  • Binding to several protocols (HTTP see TS 0009, MQTT see TS 0010, CoAP see TS0008) and
  • Integration and reuse of existing standards (e.g. OMA see TS 0005, BBF TS 0006).

The Functional Architecture elaborates on the oneM2M Layered Model and provides a reference architecture consisting of the following models and views:

  • A functional architecture defining the different components (called entities) in Machine-to-Machine (M2M) and Internet of Things (IoT) scenarios and their interfaces,
  • a detailed functional view describing the concepts, functions and features of the Common Service Layer,
  • architectural concepts and features (e.g. supported configurations and deployment scenarios),
  • concepts for identifiers of entities and objects,
  • fundamental interfaces and information flows, and
  • security aspects.

The descriptions of the concepts and functions of the Common Service Layer are informative. They cover a description of the underlying concepts and elaborate on the capabilities each function should support (see figure below).

 

oneM2M_Common_Service_Functions

Functions of the Common Services Layer (Source: oneM2M: Functional Architecture. Technical Specification TS-0001-V2.10.0. August 30, 2016.)

 

Furthermore, the Functional Architecture defines so-called reference points to the other layers and Common Service Entities. The reference points encompass one or more interfaces which are detailed in the Service Layer Core Protocols technical specification (see TS 0004). The specification defines the data, interfaces and message sequences that is to say an application-level protocol for all reference points. The application protocol in turn is mapped to a set of supported transport protocols (HTTP see TS 0009, MQTT see TS 0010, CoAP see TS0008 (in release 1 specifications)).

The oneM2M Base Ontology defines a fundamental ontology (i.e. a vocabulary and structure) for the M2M and IoT domains (see TS 0011). Specifc and external ontologies are assumed to be mapped to the oneM2M Base Ontology. The specification also contains the instantiation of fundamental classes which are required to map other ontologies into the Base Ontology (Thing, ThingProperty, Device, Operation, Command, etc.).

One example for a specific ontology is the technical specification Home Appliances Information Model and Mapping (see TS-0023). It defines an unified information model for home appliances by abstracting common elements from existing information models of the home domain (e.g. AllJoyn, Apple HomeKit, ECHONET).

In addition to the aforementioned deliverables the oneM2M comprises more technical specifications and reports. Those deliverales deal with for example requirements and use cases, security, interoperability testing, reuse and integration of existing protocols.

 

ISO/IEC CD 30141 Internet of Things Reference Architecture (IoT RA)

The ISO/IEC Working Group 3 of the Joint Technical Committee 1 is currently working on the new international standard ISO/IEC CD 30141 Internet of Things Reference Architecture (IoT RA). As of this writing this standard is being reviewed according to the ISO/IEC life cycle process. The draft version of the standard is unfortunately not publicly available. However, when it reached the status of international standard, it will constitute an authoritative reference for IoT-related terminology and concepts.

It will consist of the following elements:

  • Description of the characteristics of an IoT system (e.g. compatibility, usability, robustnes, etc.),
  • conceptual model,
  • reference model and
  • corresponding architectural views (functional, system, information, communication and usage).

Overall the standard will provide guidance for developing a IoT-related system architecture by describing the overall structure of IoT systems.

 

Summary and Conclusion

The problem domain of Smart, Connected Devices or the Internet of Things is extensive and diversified. It involves numerous variations of the problem and many possible solutions. The introduced reference models and architectures abstract and define the fundamental elements and relationships of IoT-related solutions. Therefore, they are a valuable source to acquire knowledge about the problem domain. Nevertheless, they have miscellaneous emphases and are defined on different levels of detail.

The deliverables by Porter and Heppelmann elaborate on the business strategy and business architecture related to Smart, Connected Devices. However, the primary focus of their work in on the consumer market. The perspectives of the industrial automation domain (or Industrie 4.0) is not represented completely.

The Internet of Things Architecture (IoT-A) which was delivered by the European Lighthouse Integrated Project ‘IoT-A’ consists of an extensive reference model and architecture including several views, concepts and solutions, architectural tactics and guidelines, and even a dedicated book providing detailed guidance on how to use the reference model and architecture.

The Industrial Internet Reference Architecture (IIRA) focuses on industrial IoT scenarios. It encompasses multiple views which are – with the exception of the functional view – rather abstract. The reference architecture elaborates on the key quality attributes but not on level of detail required for the description of an architectural tactic. The Business Strategy and Innovation Framework identifies and analyzes the problems and approaches on a strategic level but doesn’t describe business architecture like Porter and Heppelmann do.

The Reference Architectural Model for Industrie 4.0 (RAMI 4.0) is a three-dimensional model which essentially structures the problem domain of Industrie 4.0-related IT systems. It was developed to conduct e.g. a gap analysis in relation to IoT standards. Therefore, the model is quite high-level compared to e.g. the Internet of Things Architecture (IoT-A) or Industrial Internet Reference Architecture (IIRA).

The Web of Things (WoT) Architecture isn’t aiming at a specific vertical industry or use case. However, it focuses on establishing a common application layer that abstracts from the different underlying IoT platforms. In addition it has a strong bias towards the reuse of existing W3C standards.

The OPC Unified Architecture (OPC UA) focuses on interoperability in industrial automation and Industrie 4.0 scenarios. Moreover, it zooms in on the communication and integration of sensors, instruments, controllers, software systems and notification devices. The OPC UA specifications describe various communication-oriented models and the capability to dynamically define and exchange type definitions. It doesn’t define an additional capability or functional view of an IoT-related architecture.

The oneM2M technical specifications are independent of a specific industry but focus on establishing a common access layer for applications (Common Service Layer) that abstracts from specific networks and technologies. The reference architecture includes multiple views, concepts, protocol bindings and a fundamental ontology for the IoT domain. It is an extensive reference architecture which scope and level of detail can be compared with the Internet of Things Architecture (IoT-A).

The ISO/IEC CD 30141 Internet of Things Reference Architecture (IoT RA) elaborates on the characteristics of an IoT system and describes various models and corresponding views. The level of detail can be compared with the Industrial Internet Reference Architecture (IIRA) although it doesn’t focus on a specific industry. Considering the reference architectures presented in this post, it is the only reference model and architecture defined as part of an authoritative standard. Unfortunately the draft version is not publicly available and therefore the value of the reference architecture is (at least at the moment) constraint.

An interesting finding of my analysis is that the business architecture is rather underrepresented. The deliverables by Porter and Heppelmann are the only ones just focusing on the business architecture. All the other reference models and architectures considered in this post have a strong emphasis on the application and technology perspective. This bias of the reference models and architectures is in line with another perception: The overarching engineering problem of the domain of Smart, Connected Devices/the Internet of Things is not about technology. It’s about the challenge to develop feasible business models, design adequate business capabilities and acquire the necessary skills. Furthermore, most IoT-related scenarios aren’t build up from scratch. Thus, the challenge shifts to the challenge of changing existing business capabilities including business processes, functions, rules and data sets. I assume that reference models and architectures focusing on the business architecture will develop on the basis of the use case scenarios which are already in scope of IoT-related solutions: Optimization of physical assets, enriched products and services, and transformed customer engagement.

Do you know further resources which you consider as fundamental in relation to the topic Smart, Connected Devices or Internet of Things (IoT)?

Sound off in the comments!

 


With the exception of the ISO/IEC CD 30141 IoT RA, all deliverables are publicly available. You can find a list and corresponding links in the section Smart, Connected Devices (aka Internet of Things) on the knowledge page Reference Models and Architectural Styles.


References

[BaCK2003] Bass, Len; Clements, Paul; Kazman, Rick: Software Architecture in Practice. 2nd Edition, Addison-Wesley, Boston et al. 2003.

Architectural Reference Models related to Smart, Connected Devices

Lately I figured out that I haven’t covered resources on the topic of Smart, Connected Devices (aka Internet of Things (IoT)) in the knowledge base. As the topic spreads across multiple architectural domains (business, application and infrastructure), I’ve updated several knowledge base pages. Please note that the current resources are just a start.

Views on the Business Model & Business Architecture

The high-level business view on the topic of Smart, Connected Devices is excellently described in two Harvard Business Review articles by M. E. Porter and J. E. Heppelmann (see the section Smart, Connected Devices (aka Internet of Things) on the knowledge page Business Strategy and Business Models). As far as I know, Porter and Heppelmann coined the term Smart, Connected Devices to separate their work focussing on the ‘changing nature of “things”‘ from the technology that enables and connects the “things”. Although they don’t refer to the concepts explicitly, Porter and Heppelmann elaborate on the business strategy and business architecture related to Smart, Connected Devices.

In detail they developed:

  • a definition of Smart, Connected Products,
  • a capability-based reference model for managing Smart, Connected Products,
  • a capability model for Smart, Connected Products,
  • a composition of ten new strategic choices in relation to Smart, Connected Products,
  • a summary of the change impacts in relation to the generic, high-level value chain and
  • a summary of the implications for the organizational structure of a company.

My personal takeaways related to Smart, Connected Devices are:

  • Software should be a key component of the product development cycle of a lot of industries and
  • Software architecture and development capabilities are mandatory to design and deliver Smart, Connected Products (see also Marc Andreessen’s essay Why Software Is Eating The World).

Views on the Application & Technology Architecture

There are a lot of reference architectures on the topic Internet of Things available. In particular, a lot of major software companies have some IoT-related product and/or service in their portfolio. However, if the focus is set on non-proprietary reference models, I recommend the deliverables of the European research project Internet of Things Architecture (IoT-A). Essentially this project delivered:

  • an in-depth architectural reference model,
  • definitions of initial set of key building blocks and
  • several accompanying deliverables like introductive guides and initial API designs.

All deliverables are publicly available. You can find a list and corresponding links in the section Smart, Connected Devices (aka Internet of Things) on the knowledge page Reference Models and Architectural Styles.

Do you know further resources which you consider as fundamental in relation to the topic Smart, Connected Devices or Internet of Things (IoT)?

Sound off in the comments!

New Knowledge Page focussing on REST, SOA, APIs and Microservices Available

Recently I’m involved in various activities around APIs and Microservices. Unfortunately, I discovered that especially in relation to Microservices, it’s the same setting as with Digital Transformation. Usually the topics aren’t put into perspective and therefore ignorance leads to the ‘Great! It’s new!‘ effect. However, a lot of the ideas, concepts, pattern and principles already exist, are well-documented and thus should be reused.

Therefore, I’m currently working on a new page called Reference Models and Architectural Styles in the Knowlege & Links section that aims at listing some valuable books, articles and standards in the categories REST, SOA, APIs and Microservices. You could think of those resources as a kind of foundation for the topics although they don’t build on each other in every case. I’m going to update the page, as soon as I identify further interesting sources.

Do you know further resources which you consider as fundamental in relation to the topics REST, SOA, API and Microservices?

Sound off in the comments!

The Open Group Released a Business Reference Model for the Natural Resources Industry

The Exploration, Mining, Metals and Minerals (EMMM) Forum of The Open Group developed a business reference model that has been approved as an Open Group Technical Standard (see The Open Group Blog post here). The reference model focuses on the natural resources industry, i.e. the high-level business processes of different mining organisations dealing with all metals and minerals. It consists of a documentation describing the concepts and definitions of the reference model and a model poster providing an abstract one-page-view of the model. These deliverables are available for download from The Open Group Bookstore (see here).

The Role of the Enterprise Architect as a Sherpa

When thinking of the role of an enterprise architect, I came up with the idea of comparing the enterprise architect with the role of a sherpa. In government, a sherpa is a person who represents a head of state or government and prepares international summits, especially the G8 summit. Sherpas meet before the official summits to analyse and prepare the decisions or agreements. This reduces the effort required at the official meetings considerably.

In addition, the sherpas are generally responsible for elaborating on concepts and explaining them to the corresponding head of state or government. That means that they are responsible for the briefing of, and knowledge transfer to, the head of state or government so that this person is prepared for an official meeting.

The term sherpa refers to the Nepalese ethnic group, the Sherpa people, who guide and support expeditions in the Himalayas. In government, the term refers to the fact that sherpas pave the way for the official meetings and agreements. You could also think of the sherpas as bearing the brunt of work in preparation of the summits. The sherpas are assumed to be quite influential but in general they do not have the authority to make final decisions or agreements.

The role of the enterprise architect is very similar to the role of a sherpa in government. Enterprise architects work towards official meetings where architectural decisions are taken. This might be a meeting of the architecture board or any other governance body in charge of architectural decisions. In preparation of these meetings they elaborate on architectural options and any deliverables and artifacts that are required to evaluate these options. All architectural options should be analysed and evaluated upfront to the official meeting so that these meetings can be conducted efficiently. In opposition to the government domain, the architectural options should be evaluated objectively, based on clearly defined metrics/KPIs, i.e. architectural decisions shouldn’t be taken for purely political reasons (cp. ‘No Politics, Just Great Architecture‘).

Analogous to the role of the sherpa, the enterprise architect is responsible for the briefing and knowledge transfer to the stakeholder so that this person is able to make decisions within the official meeting. Depending on the stakeholder’s character and knowledge on architectural topics, this could require much effort and sometimes constrains the options you are able to discuss within the official meeting. In this spirit the enterprise architect paves the way for the official meetings and decisions. He/She bears the brunt of work in preparation of these meetings.

In summary, the role of the enterprise architect and sherpa are very similar. They take a back seat and focus on methodology, concepts, options, knowledge and facts. Both strive for an efficient and effective decision process and are intensively concerned with the exchange of knowledge prior to an official decision meeting. Therefore, they are quite influential but do not make decisions on their own. Nevertheless, enterprise architects should be objective in any case whereas sherpas often act with a hidden political agenda that is driven by individual or personal interest.

Mastering ArchiMate Edition I by Gerben Wierda

During The Open Group conference in Barcelona Gerben Wierda released his book Mastering ArchiMate Edition I. It contains an introduction to the ArchiMate language and documents his practical experience using the language within the financial domain. The book is available freely under a ‘begware’ license and I suggest that you donate or buy a licence if you use it commercially.

No Politics, Just Great Architecture

A few days ago a friend of mine changed the short description of his business on his Linkedin page to the slogan: ‘No politics, just delivery.’. What a brilliant slogan! He’s working in the IT project business for many years and I assume that he’s tired of all these projects that are heavily influenced by politics. Of course each nontrivial IT project has to deal with miscellaneous stakeholders and their conflicting objectives/requirements including politics but I think he’s referring to those ones where politics dominates and sometimes leads to strange decisions and project conditions.

Transferring his idea to my primary business of (enterprise) architecture management I adopted it spontaneously to ‘No politics, just great architecture.’ because sometimes there is architectural work that is heavily influenced by politics too. When I spend a few more thoughts on it I was struggling with the adjective great. Of course there is no great or even bad architecture. Remembering the very basics of evaluating architectures an architecture always has to be considered in its context that is framed by the specified requirements (including objectives, principles, constrains) that it has to fulfill (see [ClKK2002, Mali2008]). So it’s much better to characterize it as a capable architecture, i.e. an architecture that fulfills all the requirements that are imposed to it, but ‘No politics, just capable architecture.’ doesn’t sound so smashing… 😉

Anyway there is still the question how to deal with such situations which are heavily influenced by politics. When looking at the enterprise architecture discipline in particular what should an enterprise architect do if he realizes that he is doing architectural work in a politics dominated environment? Furthermore from my point of view it is interesting if there are any best practices or strategies how to cope with such challenges. When looking at TOGAF for example (see [TOGAF2011]) there’s no special chapter or topic explicitly dealing with this question but of course there are a lot of basic methods, guidelines and techniques described in this framework (e.g. architecture requirements management, stakeholder management) that provide the foundation for coping with such situations.

When thinking of the most important pillars of this foundation I came up with the following ones:

1. The role of the enterprise architect should be executed in an objective manner

The enterprise architect role is responsible for providing a capable (alias ‘great’) architecture that fulfills the requirements imposed to that architecture as good as possible. When investigating and evaluating the architectural options the architect himself should be objective, i.e. he should adhere to the facts and should not rely on personal flavor. You might say: ‘Yes, of course!’. Sounds like simple logic but it isn’t… According to Bass, Clemens and Kazman there are four major factors that influence the development of an architecture: Stakeholders, the developing organization, the technical environment and the architect’s experience (cp. [BaCK2003, p. 9-12]).

Source: On the basis of [BaCK2003, p.11]

The latter characterizes the fact that within the development of an architecture the architect gains additional knowledge and extents his experience (cp. [BaCK2003, p. 11]). A successful implemented architecture will inspire an architect to design a similar architecture for another project. An architecture that fails to deliver the expected requirements (including objectives, principles and constraints) is unlikely to be chosen second time. If an architect has little experience with respect to an architecture, architectural building block and/or architectural pattern it is less likely that he will take it into the range of design options.

Therefore an architect should be beware of the fact that his experience influences the architectural design process. In addition he should be open and curious in relation to previously unknown or unapplied design options. These might be the better ones although they were not used by the architect yet.

2. Document the design decisions taken and their rationale

Going back the very basics of documenting architectures the design decisions taken and their rationales should be a mandatory part of the architecture documentation. For example Clements, Bachman, Bass et al. describe this idea in their ‘Seven Rules for Sound Documentation’ (Rule 5: Record Rationale, see [CBBG2003, p. 24-29]). Here it is important to notice that all evaluated options should be documented to support the transparency of the decision process – not only those leading to the final design. Therefore each template for architecture documentation should contain a dedicated chapter and/or structure supporting this part of the documentation.

In case the architect works on the enterprise architecture level a motivational model as part of an overall EA metamodel supports the explicit modeling of the objectives, principles, requirements and constraints and their linkage to the architectural decisions and elements respectively. Take for example Open Groups’ ArchiMate standard which contains such an motivational model in its latest version 2.0 (see [TOGAF2012] and this related post).

3. Use qualitative metrics to the most possible extend

The paramount architectural evaluation is based on qualitative metrics solely but in rare cases the architect has all underlying data and evaluation models and therefore is able to calculate all required metrics. Nevertheless the architect should strive for using qualitative metric by identifying available basic data, useful evaluation models and trying to combine architectural decisions with relevant metrics. In case there are at least some metrics available pure political decisions could be argumented against easily.

REFERENCES

  • [BaCK2003] Bass, Len; Clements, Paul; Kazman, Rick: Software Architecture in Practice. 2nd Edition, Addison-Wesley, Boston et al. 2003.
  • [CBBG2003] Clements, Paul; Bachmann, Felix; Bass, Len; Garlan, David; Ivers, James; Little, Reed; Nord, Robert; Stafford, Judith: Documenting Software Architectures – Views and Beyond. Addision-Wesley, Boston et al. 2003.
  • [ClKK2002] Clements, Paul; Kazman, Rick; Klein, Mark: Evaluating Software Architectures – Methods and Case Studies. Addison-Wesley, Boston et al. 2002.
  • [Mali2008] Malich, Stefan: Qualität von Softwaresystemen – Ein pattern-basiertes Wissensmodell zur Unterstützung des Entwurfs und der Bewertung von Softwarearchitekturen. Gabler, Wiesbaden 2008.
  • [TOGAF2011] The Open Group: The Open Group Architectural Framework (TOGAF).  Version 9.1, 2011.
  • [TOGAF2012] The Open Group: ArchiMate 2.0 Specification. Technical Standard, February 2012.