Tech Framework
CommuniCity Technical Framework
The objective of CommuniCity’s technical framework is to provide a set of assets, such as specifications and software, to support the design and development of innovative solutions. This technical framework is to be implemented by the Piloting Teams, and experimented in the cities.
The main aim of the technical framework is twofold:
– Firstly, the assets help developers to speed up and simplify the implementation of the technological solutions that must be provided within the limited timeframe of the CommuniCity Open Call rounds.
– Secondly, tools must be provided to enable the interoperability between existent cities’ IT infrastructures/systems and developers’ solutions. Furthermore, most importantly, to achieve replicability of developed applications and services across different cities involved in the CommuniCity
To achieve these objectives CommuniCity proposes a high-level technical architecture that defines some logical elements that are developed and provided in different phases of the CommuniCity Open Calls:
Specification and API
Figure 1 – CommuniCity high level technical architecture
As seen above, the Specification and Application Programming Interface (API) layer represents the logical and functional specifications of the interoperability components of the technical architecture. Its scope is to provide common standards and building blocks to developers that deliver solutions for the cities during the CommuniCity Open Call rounds. The basic pillars of these specifications are represented by the OASC (Open & Agile Smart Cities) Minimal Interoperability Mechanisms (MIMs).
Minimal Interoperability Mechanisms are universal tools for achieving interoperability of data, systems, and services between cities and suppliers around the world. MIMs are based on a set of baseline specifications and references related to the different cities and communities that are part of the OASC (Open & Agile Smart Cities) network.
The MIMs are vendor-neutral and technology-agnostic, meaning that anybody can use them and integrate them in existing systems and offerings. MIMs are based on common specifications but the concrete technical implementation can be different, as long as crucial interoperability points in any given technical architecture use the same interoperability mechanisms.
The MIMs are governed through a specific process that starts from proposal from one partner of the OASC network followed by improvements by other members and finally approved by the Council of Cities (CoC), representing all OASC cities across 4 continents.
Detailed information about technical specification and of the architectural elements of the CommuniCity project can be found in D4.1 Technical Architecture and APIs.
CommuniCity Toolbox
The toolbox is a compilation of concrete software components and services that are provided by CommuniCity project to be used by developers during the three rounds of CommuniCity Open Calls. It offers technical tools that comply with the specification and API layer as well as represent a reference implementation of the MIMs.
Different categories of technological assets are available in the Toolbox, including:
- Open-source software representing MIMs reference implementations
- Open data models
- Software as a service (e.g., AI algorithms), available in a dedicated cloud environment and accessible via web applications, rest APIs or specific SDK (Software Development Kit)
Software as a service (for example, AI algorithms) are available in a dedicated cloud environment and accessible via web applications, rest APIs or specific SDK (Software Development Kit).
The toolbox offers not only software and services based on MIMs but also other components that can be useful to achieve interoperability. Furthermore, it offers components to standardise applications in terms of data representation and API access to software capabilities.
The toolbox is provided as a Git repository. This approach is meant for developers who prefer to have full control over their applications. They have direct access to the library to incorporate the functions directly into their applications. For developers that first want to try the library, the toolbox is also available in the form of a Sandbox (see next section) that has the toolbox components (pre)installed so that developers can start developing right away. Finally, the toolbox is also implemented as a service, with multiple APIs and a front-end to interact with the toolbox components, available here.
The collection of technological assets included in the toolbox will expand over the course of the CommuniCity project to provide increasingly advanced and comprehensive resources tailored to the requirements and specificities of each open call round. In addition, already existing assets originated from relevant European projects and initiatives, open-source software, and CommuniCity consortium partners’ solutions are also included in the toolbox.
CommuniCity Sandbox
The sandbox is a cloud environment where developers can test if their solutions are in compliance with CommuniCity specifications. This allows them to incorporate and execute some of the key components of the toolbox using preconfigured “recipes”, as well as to interact with external application and services.
The main scope of the sandbox is:
- To facilitate and accelerate the learning curve for using the main toolbox components by avoiding installation and configuration problems
- To offer a safe environment for experimenting and testing toolbox components, including their integration with predefined “compositions” for different use cases and domains
- To allow the validation of developed solutions for compliance with the CommuniCity specifications
Currently each sandbox is built/implemented as a virtual machine with a set of fixed resources and equipped with a Context Broker and TimescaleDB time-series historical database. The Orion Context Broker is MIM1 compliant and implements an ETSI NGSI-LD protocol for data exchange.
NGSI-LD is an information model and API to collect, retrieve and subscribe to context information. Together with the use of standard datamodels such as SmartDataModels, a city can implement a robust system to gather data that is dynamic and relevant to its context and access and share it easily. Each sandbox is instantiated on demand when pilots request their creation. This is done by submitting a request that is received via the CommuniCity Supporting system.
Similar to the toolbox, the cloud resources and components available in the sandbox will be improved during the different phase of the project to better support the developers involved in the open calls.
CommuniCity Supporting System
To assist the open call pilots in request access to sandboxes or troubleshooting, an online ticketing system is used in CommuniCity. This ticketing system is managed by the support team of CommuniCity and allows:
● Requesting a sandbox;
● Requesting changes to the resources of the sandbox;
● Deleting a sandbox;
● Reporting issues regarding the sandbox or toolbox;
● Requiring general support regarding the sandbox or toolbox
To open a ticket in the support system simply send an email to communicities@portodigital.pt and specify in the Subject the topic you require assistance to and in the Body of the email describe the problem as best as possible. This would be the procedure to start any assistance request to the support team of CommuniCity.
More information about the toolbox, sandbox and supporting system can be found on the on-line CommuniCity technical doc
Contact Information
Adeeb Sidani – Porto Digital
adeeb.sidani@portodigital.pt