Digital Communications and Networks xxx (xxxx) xxx
Contents lists available at ScienceDirect
Digital Communications and Networks journal homepage: www.keaipublishing.com/dcan
Analysis of identifiers on IoT platforms Haris Aftab a, Komal Gilani a, JiEun Lee a, Lewis Nkenyereye a, SeungMyeong Jeong b, JaeSeung Song a, * a b
Software Engineering and Security (SES) Lab, Department of Computer and Information Security, Sejong University, Seoul, 05006, Republic of Korea IoT Convergence Platform Lab, Korea Electronics Technologies Institute, Sungnam-Si, 13509, Republic of Korea
A R T I C L E I N F O
A B S T R A C T
Keywords: Internet of things Identifiers Identification schemes IoT platforms IoT standards
The Internet of Things (IoT) provides new opportunities for different IoT platforms connecting various devices together. The need to identify those devices is foremost important to perform any kind of operation. Many organizations and standard bodies that provide specifications and frameworks for the IoT currently have their own identification mechanisms. Some existing industrial identification mechanisms can also be used in the IoT. There is no common Identification Scheme (IS) for the IoT as yet, because of the political and commercial differences amongst the standard bodies. The unavailability of a unified IS and method makes the inter-working among IoT platforms challenging. This paper analyses and compares ISs used by several selected IoT platforms. This work will help in understanding the need of a common identification mechanism to provide inter-working among different IoT platforms.
1. Introduction Since the emergence and rapid growth of the Internet of Things (IoT) [1,2], many global organizations have been providing specifications and guidelines for creating IoT applications. Therefore, IoT applications are very diverse in nature due to the heterogeneity of the platforms available. An identifier has a string of characters used to identify any physical or virtual entity. For example, an IP address is an identifier of a computer connected to the network [3]. Basically, the IoT devices or the applications need to be recognized before being used in an IoT environment [1]. There are many platforms that use various globally unique Identification Schemes (ISs) [4,5] or their own proprietary methods. The problem arises when devices from different platforms need to exchange data or communicate with other applications. Due to the lack of an identification standard, the inter-working among IoT platforms remains challenging [4, 6]. The identifiers in an IoT standard can be typically divided into the following categories: object identifier, communication identifier and application identifier [7]. Object identifiers represent physical or virtual objects. Barcodes and Radio Frequency IDentifier (RFID) are some examples for identifiers that cannot be used for addressing or communicating. Communication identifiers uniquely identify nodes on a network having communication capabilities. Any sensor or network device is an
example of a network node. The Communication identifier, which is generally made of an IP address, is used for addressing. Application identifiers identify service layer applications, objects, and logical entities, etc. Uniform Resource Identifier (URI) and Uniform Resource Locator (URL) are some examples for application identifiers. In order to communicate with IoT applications running on different IoT platforms, a unified identification methodology is needed [8]. This is the most prominent issue in the IoT [9]. The interoperability of identifiers is a key challenge since many different IoT platforms co-exist. The diverse nature of the hardware devices [3] of different IoT platforms makes it even more difficult for the inter-working of heterogeneous identifiers. There are various universal ISs, such as Object IDentifier (OID), Electronic Product Code (EPC), Universally Unique IDentifier (UUID), and International Mobile Equipment Identity (IMEI), etc[10,11]. These ISs are used in identifying objects or devices in different domains, such as the supply chain [12], cellular phones and information systems. Unfortunately, there is no single universally unique IS, and different platforms use different schemes in the IoT. This makes the interoperability across various platforms difficult to achieve [13]. Before discussing the details about ISs, it is important to understand the difference between an identifier and an IS. In order to understand the identifier of an object, we first need to understand the distinction between the identifier of an object and its network address. In general, the
* Corresponding author. E-mail addresses:
[email protected] (H. Aftab),
[email protected] (K. Gilani),
[email protected] (J. Lee),
[email protected] (L. Nkenyereye),
[email protected] (S. Jeong),
[email protected] (J. Song). https://doi.org/10.1016/j.dcan.2019.05.003 Received 27 March 2018; Received in revised form 28 January 2019; Accepted 9 May 2019 Available online xxxx 2352-8648/© 2019 Chongqing University of Posts and Telecommunications. Production and hosting by Elsevier B.V. This is an open access article under the CC BYNC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/).
Please cite this article as: H. Aftab et al., Analysis of identifiers on IoT platforms, Digital Communications and Networks, https://doi.org/10.1016/ j.dcan.2019.05.003
H. Aftab et al.
Digital Communications and Networks xxx (xxxx) xxx
identifier of an object and its network address are different and serve different purposes. The former provides a unique meaning to the object, whereas the latter might change with the physical location of the object. In the case where the address of the object differs from the identifier, the identifier is generated by using different ISs. The EPC, as stated earlier, is one of the well-known ISs that uniquely identifies an object associated with a RFID tag. An IoT IS is based on the concept of providing management, maintenance and mapping discovery of identifiers and the retrieval of identifier information. Currently, the IoT has not achieved a common identification mechanism due to various reasons. A preliminary approach towards a unified scheme or inter-working mechanism is to understand the various ISs that are used by IoT platforms. The main contributions of this paper are as follows: We review the ISs and the methods used by some selected IoT platforms. We provide a comparison of the practical ISs used by the IoT platforms. The rest of the paper is structured as follows: Section 2 discusses the state of the art ISs that are globally used in various industries. Section 3 explores the ISs used by various IoT platforms. Section 4 analyses different ISs and compares these schemes in some selected platforms. Section 5 concludes the paper, highlights the importance of the research and proposes future work.
Fig. 1. OID structure by ITU.
There are a lot of existing ISs, and each has its own way of assigning identifiers to various physical and virtual entities (devices, users, applications, etc.). This section discusses some of the current mainstream ISs, including OID, EPC and UUID.
efficiently and safely. In the field of the RFID, unique identification methods are urgently needed. In the RFID, EPC and ISO codes are used for existing barcodes. Therefore, special identification methods are needed for the new RFID service to avoid collision with the system that uses previous code systems, such as the EPC. Based on these reasons, the concept of OID is essential in the RFID.
2.1. OID
2.2. EPC
The OID is an identification mechanism developed by the ITU-T (International Telecommunication Union Telecommunication Standardization Sector) [14] and the ISO/IEC (International Organization for Standardization/International Electrotechnical Commission) [15], to name specific objects so that the objects can be distinguished easily. Objects are represented as a sequence of base integer values and corresponding unicode values according to a hierarchical name structure so that they can be identified. The OIDs address the interoperability issues of heterogeneous inter-industry identification systems. The OID scheme uses a tree-like hierarchy to assign unique numbers to objects so that they are not duplicated. There is no name for the root and it only has three of the top-level areas, which are managed by the ISO. 0 is the ITU-T, 1 is the ISO, and 2 is jointly managed by the ISO and the ITU-T [16]. Below is an example scheme based on the OID: { 0.2.481.1.999.xxxx } Each digit in the OID hierarchy is called an arc. The first arc represents the managing organization and 0 here represents the ITU-T. The second arc represents the type for which it is used. In this example, 2 represents the administration. The third arc is the Data Country Code (DCC), which is assigned to each country. In Korea, 450, 480 and 481 codes are assigned, and KISA is responsible for the management. 450 is used to discriminate the RFID code type. The other two numbers are not used nowadays, but number 1 of 481 is experimentally granted and used by SKT. The fifth arc 999 means the grant for the IoT and the sixth arc means the given organization or company. Fig. 1 shows the OID structure which is managed by the ITU-T. The OID can be used in various fields, such as Internet management, security, medical care, and the RFID. It can identify objects that are managed by the Internet. It can also be used for digital signature certificate items used by banks or various security duties to manage them
An EPC is a universal identifier that assigns the identity to any physical object that is unique amongst all objects and categories all around the world. These unique identifiers can be used for referring to or tracking objects in information systems that are part of the EPCglobal Network [17]. EPCglobal Inc™ has the responsibility to oversee the EPC standards, specifications and guidelines for the auto ID infrastructure to support its use [18]. EPCglobal is a non-profit joint venture of GS1 (formerly EAN International) and GS1 US (formerly the Uniform Code Council). EPCglobal and other third-party providers aim to achieve a common goal towards an enhancement in business flows and computer applications through the use of EPCs. The identification of each object, such as an asset, a trade item and a document, has a corresponding GS1 key, which is shown in Table 1. GS1's EPC Tag Data Standard (TDS) 1.11 [19] specifies the data format of the EPC and provides encodings for numbering schemes, which include the GS1 keys within an EPC. The TDS is concerned with the encoding of EPCs onto the RFID tags, as well as with defining the standards for other data apart from the EPC that may be stored on a Gen 2 RFID tag. A large subset of EPC adapted applications rely on the RFID as a data carrier. For such applications, the EPC identifiers are encoded on the RFID tags and can be captured using radio waves. The EPC is an identifier, and the RFID is a data carrier. The RFID tags contain other data besides the EPC identifiers, whereas in some applications, they may not carry an EPC identifier at all. The EPC identifier can also exist in nonRFID contexts. The identifier can be represented in two forms: the text form and the binary form. The EPC text form represented within computer systems, including electronic documents, databases and electronic messages, is referred as the pure identity EPC URI. The term EPC binary encoding is used specifically to refer to the form that the EPC takes within the
2. State of the art ISs
2
H. Aftab et al.
Digital Communications and Networks xxx (xxxx) xxx
Table 1 EPC identification schemes. EPC Scheme
Identifier Syntax
Serialised Global Trade Identification Number (SGTIN) Serial Shipping Container Code (SSCC) Global Location Number with or without Location (SGLN) Global Returnable Asset Identifier (GRAI) Global Individual Asset Identifier (GIAI) Global Service Relation Number Recipient (GSRNR) Global Service Relation Number Provider (GSRNP) Global Document Type Identifier (GDTI) Component/Part Identification (CPI) Serialised Global Coupon Number (SGCN) Global Identification Number of Consignment (GINC) Global Shipment Identification Number (GSIN) General Identifiers (GID)
urn:epc:id:sgtin:CompanyPrefix.ItemRefAndIndicator.SerialNumber urn:epc:id:sscc:CompanyPrefix.SerialReference urn:epc:id:sgln:CompanyPrefix.LocationReference.Extension urn:epc:id:grai:CompanyPrefix.AssetType.SerialNumber urn:epc:id:giai:CompanyPrefix.IndividulAssetReference urn:epc:id:gsrn:CompanyPrefix.ServiceReference urn:epc:id:gsrnp:CompanyPrefix.ServiceReference urn:epc:id:gdti:CompanyPrefix.DocumentType.SerialNumber urn:epc:id:cpi:CompanyPrefix.ComponentPartReference.Serial urn:epc:id:sgcn:CompanyPrefix.CouponReference.SerialComponent urn:epc:id:ginc:CompanyPrefix.ConsignmentReference urn:epc:id:gsin:CompanyPrefix.ShipperReference urn:epc:id:gid:ManagerNumber.ObjectClass.SerialNumber
To ensure its uniqueness, a UUID relies upon a combination of components. A generated UUID contains the network address of the system that has generated the UUID, a timestamp and a randomly generated component. As both the network address and timestamp of each UUID are unique, a combination of the two components are practically enough to guarantee the uniqueness of a UUID. The randomly generated component acts as an extra protection to avoid any unpredictable problem. UUIDs are widely used as database keys in database tables. Automatically generated ID functions in databases usually return every variant of the UUID. MySQL provides a function to generate version 1 UUIDs [22]. Various versions of GUIDs are used in Microsoft's Component Object Model (COM) [23]. Commonly they are used to identify various classes and library identifiers in the Windows registry. UUIDs are also used in Linux-based operating systems at the file system and partition level.
memory of the RFID tags. The basic format of the EPC identifier can represent the product's manufacture date, origin, and batch number. It consists of a header, an EPC manager number, an object class and a serial number [20]. The header identifies the length, type, structure, version and generation of the EPC. The EPC manager number is responsible for maintaining the subsequent partitions. The object class identifies a class of objects and a serial number identifies the instance. The standardization and application of the EPC are managed by EPCglobal and GS1. The EPC framework architecture includes the EPC fundamentals, the pure identity EPC URI, the EPC tag URI and the binary encoding. The pure identity EPC URI is the identifier representation used to identify objects in documents, databases or computer programs, such as the identification of resources in a website. The EPC tag URI consists of the EPC and the control information. The control information is used to guide the processing of the data captured from the RFID tags. It is used at the data capture level to extract information from the RFID tags. The third standard is the binary encoding. It is a compressed encoding representation of the memory bank content, and it is only encountered at a very low level of software and hardware. The EPC identifier is represented as the Internet URI in any kind of data carrier. This URI is called pure identity EPC URI. The former syntax of the EPC is as follows: EPC-URI:: ¼ SGTIN-URI j SSCC-URI j SGLN-URI j GRAI-URI j GIAI-URI j GSRN-URI j GDTI-URI j CPI-URI j SGCN-URI j GID-URI j DOD-URI j ADIURI j BIC-URI
3. Identification in IoT standards There are many different global organizations and industry groups that provide specification standards, security solutions and interoperability guidelines for the Machine-to-Machine (M2M) and IoT technologies. oneM2M, Open Connectivity Foundation (OCF) and FIWARE represent some of the most popular standards and platforms providing end-to-end IoT services. Apart from the standards that focus only on the IoT, there are some organizations that develop global standards for business communication. GS1 is the most famous amongst those organizations. Barcodes and the RFID are the best examples of the standards from GS1 that are also used in the IoT for connecting the physical and digital worlds. The following sections discuss the architecture, resource modelling mechanisms, identifiers and ISs employed by oneM2M, GS1, OCF and FIWARE.
2.3. UUID The UUID is a 128 bit number that is used to uniquely identify an entity or object across space and time. It is also termed as Globally Unique IDentifier (GUID) [21]. The probability of having a duplicated UUID is almost zero and can be considered negligible. Because of this characteristic, it can be safely used as a unique IS. UUIDs were used initially in Apollo Network Computing System (ANCS) and later on Open Software Foundation's (OSF) Distributed Computing Environment (DCE) and in Microsoft Windows platforms. The first design of the UUID was based on the ANCS UUIDs. Microsoft Windows platforms use GUIDs which are based on DCE's design of UUID. In the canonical structure of the UUID, 32 hexadecimal (base 16) digits represent the sixteen octets of a UUID. The display format of the UUID is in five groups as 8-4-4-4-12 for a total of 36 characters, four of which are hyphens. The following is a sample UUID: 61f8a73e-52bf-11e8-9c2d-fa7ae01bbebc GUID used by Microsoft is usually represented in surrounding braces which are shown as below: {61f8a73e-52bf-11e8-9c2d-fa7ae01bbebc}. The Internet Engineering Task Force (IETF) RFC 4122 defines the URN namespace for UUIDs. The UUID as a URN namespace is described as:
3.1. oneM2M oneM2M standards partnership project platform was founded in 2012 by eight of the world's leading Information and Communication Technology (ICT) organizations [24]. The main objective of oneM2M is to define a comprehensive M2M platform to provide interoperability services within an organization and among multiple organizations. The architecture of oneM2M derives a layered approach in which each layer is responsible for a certain set of actions. The layers in the architecture include the application layer, the common services layer and the network layer, which are shown in Fig. 2. The oneM2M system has different entities that operate on different layers, including the Application Entity (AE), the Common Services Entity (CSE) and the Network Service Entity (NSE) [25,26]. The AE is responsible for providing the application logic, such as a smart home application that provides M2M services. The CSE is responsible for providing the Common Services Function (CSF) to other CSEs or AEs, such as data management and device management. The NSE
urn:uuid:61f8a73e-52bf-11e8-9c2d-fa7ae 01bbebc
3
H. Aftab et al.
Digital Communications and Networks xxx (xxxx) xxx
Fig. 2. oneM2M reference architecture.
delivers underlying network services to the CSE, for example, device triggering, location services and device management. The locations of AEs and CSEs can be on a device, gateways, or servers. The entities are linked to each other via oneM2M reference points. oneM2M provides three reference points for communication in a single oneM2M system. These reference points include Mca, Mcc and Mcn [27]. The Mca reference point allows AEs to use services offered by the CSE. The Mcc reference point provides inter-CSE communication. The Mcn reference point permits CSEs to use services offered by the underlying network or the NSEs. The reference point Mcc’ is like the Mcc except that it provides a communication flow between two CSEs in the domain of infrastructure. oneM2M follows the resource-based data model where all services are represented in the form of resources. The CSE base represents a CSE and it is the root of all resources that reside in the CSE. It can have various resources as its child resources, including resources for the AE, the container, the content instance and others. Like the CSEs, the AE can also have multiple child resources. Both the CSE and the AE have their respective resource types. There are other resource types used for data management and data instances. Data management and tracking are supported by the < Container> resource type, and data instances are stored in the < Content Instance > resource type. The < Subscription > resource type contains information for its subscribed-to resource. Fig. 3 shows an example of resource tree in the oneM2M. In this figure, the < Subscription > resource type is a child of the CSE base, the AE and the container resource. Identifiers in the oneM2M system uniquely identify an entity (CSE or AE), an object (M2M node or M2M service provider) or a resource (
, < Content Instance>, < Subscription>, etc.) as specified by oneM2M technical specification 3.12 [28]. Also, the identifier in a oneM2M system should not change its value over the life cycle of the entity, resource or object. The CSE-ID uniquely identifies a CSE when instantiated in an M2M node in the M2M system. It is adequate for the CSE-ID to be unique within the domain of the M2M service provider. The AE-ID uniquely identifies the AE residing in the M2M node and the AE that wants to communicate to an M2M node. It is also adequate for the AE-ID to be unique within the domain of the M2M service provider. The CSE-ID and the AE-ID are required to be globally unique once they are used outside the domain of the M2M service provider. An M2M service provider is uniquely identified by the M2M-SP-ID. It is a static value assigned to the service provider. The App-ID uniquely identifies a oneM2M application. The oneM2M application runs in the oneM2M node which is identified by the M2M-Node-ID. The M2M-Node-ID refers to the node where the oneM2M application is running and thus it requires to be globally unique. oneM2M provides flexibility in choosing among ISs for a globally unique identifier. One example of such an IS is the International Mobile Equipment Identity
Fig. 3. oneM2M resource tree.
(IMEI) number. The IMEI number consists of 15 decimal digits, including 1 digit as the check digit. It contains various information, including the device model, the origin and the serial number. Alternatively, the OID can be used as the IS for the M2M-Node-ID. The OID consists of a tree structure format and uses integer values for its construction. It uses one higher level arc and a sequence of four other arcs. The higher arc represents the M2M device indication ID and is managed by the ITU-T/ISO. The remaining four arcs represent the manufacturer ID, the product model ID, the serial number ID and the expanded ID, respectively. Let's presume 0 2 481 1 100 3030 10011 to be an OID-based M2M device ID. The interpretation of the M2M-Node-ID is described as below: (0 2 481 1) in 0 2 481 1 100 3030 10011 represents the M2M device indication ID (higher arc): – (0) in 0 2 481 1 100 3030 10011 identifies the managing organization: ITU-T. – (2) in 0 2 481 1 100 3030 10011 identifies the “Administration”. – (481) in 0 2 481 1 100 3030 10011 identifies the data country code for Korea. – (1) in 0 2 481 1 100 3030 10011 identifies an M2M device. 4
H. Aftab et al.
Digital Communications and Networks xxx (xxxx) xxx
(100) in 0 2 481 1 100 3030 10011 identifies the device manufacturer. (3030) in 0 2 481 1 100 3030 10011 identifies the device model. (10011) in 0 2 481 1 100 3030 10011 identifies the device serial number.
element string syntax and the EPC URI syntax [30]. The plain syntax is composed of GS1 identification keys as a sequence of characters with no additional syntactic feature. The plain syntax is used where a single type of key is expected. For example, an XML element in a business document that contains only one key. The GS1 element string consists of an Application Identifier (AI) which represents the type of GS1 identification key to follow and the key itself [29]. The AI in GS1 is composed of numeric prefixes used in barcodes and EPC/RFID-tags. The AI specifies the format and semantics of data elements. For example, the AI 8002 specifies that the GS1 AI data field holds the serial number of a cellular mobile telephone. The GS1 element string syntax is used in the capturing layer to carry multiple data elements in a single barcode. The use of the EPC URI is not limited to the identification key. It can be used to describe any Internet resource because of its URI syntax. One of the EPC URI constructs is the EPC scheme. Almost each EPC scheme has a corresponding GS1 identification key. Each EPC scheme provides a namespace of identifiers that can be used to identify physical objects of a particular type. Collectively, the EPC URIs from all schemes are unique identifiers for any type of physical objects. The EPC URI, which is a specific Uniform Resource Name (URN), has the following syntax [19]: urn:epc:id:scheme:component1.component2. Table 2 shows a comparison of the identifier syntaxes of the GS1 keys.
3.2. GS1 GS1 is a non-profit organization that mainly focuses on various standards used in business communication, such as barcodes and the RFID. GS1 was established in 1973 by Uniform Code Council, Inc. (UCC), known now as GS1 US [29]. GS1 formulates a global language for business that helps in three key areas: identifying, capturing and sharing. The GS1's business language uses these key areas to provide information about products, assets, locations, shipments and others. The GS1 identification standards provide GS1 identification keys that serve as unique identifiers to refer to the real-world entities. The GS1 data capture standards provide ways to capture data from physical entities. The GS1 sharing standards help in sharing information between applications and trading partners. Thus the combined GS1 system of standards plays an integral role in connecting the IoT-based devices. GS1 fulfills the requirement of identifying objects through the GS1 identification keys. These keys uniquely and persistently identify an object. The GS1 data capture standards can be used to capture the data of sensors, such as the temperature or humidity in the EPCIS through its capturing interface. The architecture of GS1 consists of three layers (identifying, capturing and sharing) as shown in Fig. 4. The main constructs of the GS1 system involve the entities, the attributes and the keys [30]. The information associated with each entity is represented by its attributes. For example, in order to represent a temperature sensor in GS1, its attributes can be the name, the measurement unit and the location, etc. The keys in GS1 uniquely and unambiguously identify the entity. The GS1 key is a unique attribute of the entity and is part of the identifying layer in the GS1 architecture. The GS1 identification keys are available to distinguish a variety of products, such as the documents, logistics, location, assets, shipments, coupons, etc. There are 11 GS1 identification keys that are used to identify items from different categories. These identification keys are: Global Trade Item Number (GTIN), Global Location Number (GLN), Serial Shipping Container Code (SSCC), Global Returnable Asset Identifier (GRAI), Global Individual Asset Identifier (GIAI), Global Service Relation Number (GSRN), Global Document Type Identifier (GDTI), Global Identification Number for Consignment (GINC), Global Shipment Identification Number (GSIN), Global Coupon Number (GCN) and Component/Part Identifier (CPID) [30]. The GS1 identification keys require the GS1 company prefix as the initial construct for its composition. The GS1 company prefix is obtained directly from GS1 and is different for each country. The GS1 keys require a concrete syntax that can be used in information systems and that is called the identifier syntax. GS1 supports three kinds of identifier syntaxes, including the plain syntax, the GS1
3.3. OCF OCF is an industry group that aims at providing interoperability guidelines and specification standards for IoT devices. OCF is one of the biggest IoT industrial standardization organizations and has more than 300 member companies [31]. It provides a set of specifications, a reference implementation and a certification for IoT-based devices through its framework. The focus of the OCF framework is to offer interoperability by providing a common data model for the IoT device interfacing. The general architecture of OCF depicts the resource-based interaction amongst different IoT artefacts that include the applications and physical devices, etc. It enables semantic interoperability by providing a common and consistent data model for describing the environment. The architecture also proposes common communication protocols, security and identification mechanisms to enable improved connectivity, discovery and identification of devices. The real world entities, such as the temperature sensor, light bulb or other devices, are described in the form of resources. They are interacted upon by operations that adhere to the REpresentational State Transfer (REST) architectural style [32]. The OCF architecture is classified into three types [33] as follows: Resource model: The resource model is responsible for defining mechanisms that provide interoperability among the devices in OCF. The major components in the resource model are: the entity, the resources, the URI, etc. RESTful operations: To perform interactions with a resource, generic CRUDN operations are specified in the OCF architecture. This also means that the interaction is carried in a protocol and in a technologically independent way. Table 2 GS1 identifier syntax.
Fig. 4. GS1 architecture. 5
Syntax
Example
Description
Plain
0614141567891123
GS1 Element String EPC URI
800300614141567891123
GRAI scheme with GS1 Company Prefix 0614141, Asset Type 56789, Check Digit 1 and Serial 123 Application Identifier (AI) 8003, 0 as the padding element followed by the Plain syntax. EPC URI GRAI represented by urn:epc:id:grai, GS1 Company Prefix, Asset Type and Serial
urn:epc:id:grai:0614141.56789.123
H. Aftab et al.
Digital Communications and Networks xxx (xxxx) xxx
Abstraction: This component provides the abstract primitives of the resource model and the RESTful operations.
physical objects in the real world. Examples include: sensors, actuators, table, and person, etc. Each entity contains an identifier and a type. For example, an entity may represent a temperature sensor, a room in a building or even a person. In the case of an entity representing a person, it can have an identifier, such as “Harry”, and a type as “Person”. In the case of a sensor, it can have an identifier as “temperature_sensor” and a type as “Temperature Sensor”. Because of this relationship between the identifier and the type, entities are uniquely identified by a pair consisting of an entity Id and an entity type [36,38]. Context elements also contain context elements attributes and meta-data [36]. Context element attributes refer to entity attributes that are characterized by a triplet of name, type and value. For example, the temperature of an entity “temperature_sensor” can be represented by the attribute name “temperature”, the type “Celsius” and the temperature value of that sensor. Each context element optionally contains meta-data (also referred to as semantic-data) which is also characterized by the same triplet of name, type and value. The context information model consisting of the context element, the context element attributes and the meta-data with their relationships are shown in Fig. 5. The FIWARE version of the OMA NGSI 9/10 interfaces is the RESTful APIs. Context information is exchanged on the FIWARE platform by these interfaces. The NGSI-9 interface provides functions to make context information accessible among different context elements [36]. It provides context registration through which registered entities publish their data and context discovery to access or discover that data. The NGSI-10 interface provides context subscription to create subscriptions for the context elements and the context update function to update the context information for the context elements [36]. A resource on the IoT platform represents some physical objects. For example, an entity can be used to represent a sensor, a person, a room, etc. The manipulation of the context information represented by the context element is achieved through the NGSI 9/10 RESTful APIs. To distinguish resources in a FIWARE-based context management system, there are various identifiers for identifying resources at different hierarchical levels. Fig. 6 shows the resource structure of the FIWARE platform. The context element representation of an entity is identified uniquely by its entity Id and entity type. Similarly, attribute name and the attribute type identify an attribute that is represented by the attribute's context element attribute. The meta-data resource is identified by the meta-data name and the meta-data type. There are some conditions to name these identifiers in the FIWARE NGSI v2 specification [39] that are summarized as below:
The OCF architecture is resource-based where each resource needs to be identified to perform any operation. OCF requires a unique identification as a way to identify and address various elements in its framework. The identifier should unambiguously identify a resource and should be unique within a context or domain. The most salient property of the identifier is that it should not change its value over the life-cycle of the element it refers to. The identifiers in OCF can be either context-specific or context-independent. Context specific identifiers are unique in the context or the domain they are used and easy to generate. For example, an IP address can be a unique identifier for a device that is located inside a home behind some gateway. Context-independent identifiers are required to use practically stronger schemes. An example of such a scheme is the UUID. A resource requires some properties for its identification. There are some common properties available to every resource in OCF. The Resource Identity (RI) is such a common property that can be used to identify any resource. It uniquely identifies a specific instance of the resource. This identifier's value is dependent on the device and its implementation. OCF provides Device ID (DID) attributes to uniquely identify the device that hosts the resource. The resources can also be identified by the URI. The resource can be addressed by the URI if it represents a URL. The structure of the OCF URI is defined in the IETF RFC 3986 [34] as follows: :///? Specifically, the OCF URI can be described as below: ocf:///? Here, the scheme of the URI is the OCF, the authority is the DID, the path is the string that refers to the resource on the server, and the query string contains pairs. The URI can be either relative or absolute. The URI addresses only the resource, and any parent-child relationship between the resources cannot be inferred. The RI and the DID are used where the identifier needs not to be a URI. OCF relies on the OCF scheme to make a resource instance unique across the scope of the device. The value for the attribute that uniquely identifies the device, such as the RI, can be either a string or a UUID. A UUID refers to a 128-bit number used to identify an object. The probability of having a duplicate UUID is close to zero and negligible. The string value of the RI can be used when we are using the OCF scheme. For identifiers that need to be globally unique, such as the DID, some strong ISs are required. OCF requires globally unique identifiers to use a UUID as their IS.
Allowed characters are the ones in the plain ASCII set except the following ones: control characters, whitespace, &, ?,/and #. The maximum field length is 256 characters. The minimum field length is 1 character. The OMA NGSI specification provides a guideline for defining the identifier's entity Id and entity type. The identifier's entity Ids are the URIs, and those URIs can be represented by a UUID URN to make them globally unique. The entity Id can also use a URN to make the URI from some specific FIWARE enablers. An example of this URI can be “urn:xoma-application:dpe:” prefix, which can be added to the DPE server-ID/ client-ID for connecting with the DPE enablers [40]. Because of the similarity to the entity Id, the entity type can use any standard OMA registered namespace URN or an existing standard namespace. The attribute name and attribute type can use the OMA URN or any existing standard namespace, which is very similar to this approach. In the same example, when interacting with the DPE enablers, the attribute name can use the existing name “DPE-deviceprops” as its value, and the attribute
3.4. FIWARE The FIWARE project was initiated by the European Commission as part of the Future Internet Public-Private Partnership (FIPPP), which was launched on 3rd May, 2011 with major information and communication technology partners and companies based in Europe. The essential objective of creating FIWARE is to provide future Internet services and applications by utilizing the services of generic enablers [35,36]. These enablers provide modular and reusable functions in various application domains. These domains include IoT services, security, data management, cloud hosting, and Augmented Reality (AR), etc. FIWARE relies on the Open Mobile Alliance Next Generation Service Interface (OMA NGSI) specification [37] for information exchange and data management. The context information is represented by the context elements and a set of generic data structures [36]. A context element refers to the data structure used for representing and exchanging information about entities or things. The entities are the virtual representation of
Fig. 5. FIWARE context information model. 6
H. Aftab et al.
Digital Communications and Networks xxx (xxxx) xxx
Table 3 Identification schemes in different IoT Standards/Platforms. Standard/ Platform
Globally Unique Identifiers
Identification Scheme(s)
oneM2M
APP-ID, M2M-Node-ID, CSE-ID and AE-ID All GS1 EPC Identifiers Device ID (di) Entity ID, Entity Type, Attribute Name and Attribute Type
OID, IMEI or any other scheme EPC UUID (any form) UUID URN
GS1 OCF FIWARE
FIWARE provides flexibility to use URIs for its globally unique identifiers. The globally unique identifiers in FIWARE include the entity Id, entity type, attribute name and attribute type. The URIs for these identifiers can be generated from the URNs of the connected FIWARE enablers or from the UUID URNs. Table 3 presents a comparison of different ISs used by the IoT platforms under consideration. The table shows the main underlying features for each IoT platform and the corresponding identification scheme. Note that both OCF and FIWARE use the UUID as an IS. However, OCF is more flexible compared with FIWARE because it is not limited to the UUID URN, which is the case of FIWARE. Amongst them, oneM2M provides more flexibility to use any kind of scheme. Because of the existence of a variety of ISs in the IoT, interoperability is a major challenge [2]. On the Internet, the IP addresses take care of the identification of machines. Those IP addresses are then resolved and discovered by the Domain Name System (DNS) [13,41]. Reasons for why the IoT does not have this kind of infrastructure are the resource constraint and the mobile nature of its devices [42]. The IoT devices need a common IS or such like mechanism to perform inter-working and the discovery of the data on other platforms. 5. Conclusion & future work In this paper, we have provided an initial study about the identifiers and the need for a common IS to achieve interoperability amongst various IoT standards and platforms. We have discussed some of the ISs that are adopted by different IoT platforms. Meanwhile, since numerous applications are already using some IoT platforms, the migration to a whole new IS could be difficult. However, the goal of interoperability and inter-working can be achieved by proposing a mechanism that acts as a middleware and provides unified identification that discovery services. As for the future work, we intend to provide an in-depth systematic review of the major IoT platforms. Then, we shall define a mechanism through which devices from different IoT platforms can discover and interact with each other. The unified mechanism will help in achieving global inter-working among applications and devices from different IoT industry standards and platforms.
Fig. 6. FIWARE resource tree.
type can use “urn:org.openmobilealliance:device:properties” as its value [40]. 4. Analysis and discussion This section analyses different previously mentioned ISs used by some IoT platforms. All of the platforms treat the physical and virtual objects in the form of resources that are operated by the REST operations. The canonical form of the identifiers is the URI in most cases. There are two types of identifiers: globally unique identifiers and locally unique identifiers. Globally unique identifiers require a strong IS. Locally unique identifiers, however, do not require a practically strong scheme. ISs for globally unique identifiers vary from one platform to another. The oneM2M standard uses a large number of identifiers in its architecture. For example, the AE-ID and the CSE-ID need to be globally unique when used outside the domain of the M2M service provider. The APP-ID and the M2M-Node-ID are globally unique identifiers that represent the oneM2M application and device, respectively. OneM2M uses the URI to represent its identifiers. The IS is flexible in oneM2M, and any scheme that guarantees uniqueness can be used, such as IMEI and OID, etc. GS1 uses the EPC IS as a part of its identifier syntax. It defines TDS to use the EPC format and provides the corresponding GS1 keys. GS1 maintains a relationship between the GS1 identification keys and the item categories. Although it uses the URI form of the identifiers, this relationship restricts the utilization of any other IS other than the EPC. The OCF platform defines its own IS for locally unique identifiers. An example of such an identifier is the RI. For globally unique identifiers, such as DID, any UUID-based scheme can be used.
Acknowledgements This work is supported by the Institute for Information & communications Technology Promotion (IITP) grant funded by the Korean government Ministry of Science and ICT (MSIT) (No. B0184-15-1001, Federated Interoperable Semantic IoT Testbeds and Applications). References [1] Daniele Miorandi, Sabrina Sicari, Francesco De Pellegrini, Imrich Chlamtac, Internet of things: vision, applications and research challenges, Ad Hoc Netw. 10 (7) (2012) 1497–1516. [2] Li Da Xu, He Wu, Shancang Li, Internet of things in industries: a survey, IEEE Trans. Ind. Inf. 10 (4) (2014) 2233–2243. [3] Damjan Katusic, Pavle Skocir, Iva Bojic, Mario Kusek, Gordan Jezic, Sasa Desic, Darko Huljenic, Universal identification scheme in machine-to-machine systems, in: Telecommunications (ConTEL), 2013 12th International Conference on, IEEE, 2013, pp. 71–78.
7
H. Aftab et al.
Digital Communications and Networks xxx (xxxx) xxx [24] Jorg Swetina, Guang Lu, Philip Jacobs, Francois Ennesser, JaeSeung Song, Toward a standardized common m2m service layer platform: introduction to onem2m, IEEE Wirel. Commun. 21 (3) (2014) 20–26. [25] Jaeho Kim, Jaeseok Yun, Sung-Chan Choi, Dale N. Seed, Guang Lu, Martin Bauer, Adel Al-Hezmi, Konrad Campowsky, Jaeseung Song, Standard-based IoT platforms interworking: implementation, experiences, and lessons learned, IEEE Commun. Mag. 54 (7) (2016) 48–54. [26] Hyuncheol Park, Hoichang Kim, Hotaek Joo, JaeSeung Song, Recent advancements in the internet-of-things related standards: a onem2m perspective, ICT Express 2 (3) (2016) 126–129. [27] Syed Husain, Athul Prasad, Andreas Kunz, Apostolos Papageorgiou, JaeSeung Song, Recent trends in standards related to the internet of things and machine-to-machine communications, J. Inf. Commun. Converg. Eng. 12 (4) (2014) 228–236. [28] oneM2M Technical Specification. http://member.onem2m.org/Application/docu mentapp/downloadLatestRevision/default.aspx?docID¼29382, July 2018. [29] GS1 General Specifications. https://www.gs1.org/sites/default/files/docs/ba rcodes/GS1_General_Specifications.pdf, July 2017. [30] GS1 System Architecture Document. https://www.gs1.org/docs/architecture /GS1_System_Architecture.pdf, February 2017. [31] OCF Membership List. https://openconnectivity.org/foundation/membership-list, December 2017. [32] Roy T. Fielding, Richard N. Taylor, Architectural Styles and the Design of NetworkBased Software Architectures, vol. 7, University of California, Irvine Doctoral dissertation, 2000. [33] OCF Core Specification. https://openconnectivity.org/specs/OCF_Core_Specificatio n_v1.3.0.pdf, November 2017. [34] URI Generic Syntax. https://www.ietf.org/rfc/rfc3986.txt, January 2005. [35] FIWARE Catalogue. https://catalogue.fiware.org/enablers. [36] Boris Moltchanov, Oscar Rodriguez Rocha, A context broker to enable future IoT applications and services, in: Ultra Modern Telecommunications and Control Systems and Workshops (ICUMT), 2014 6th International Congress on, IEEE, 2014, pp. 263–268. [37] NGSI OMA next generation services interface v1.0. http://www.openmobileallian ce.org/release/NGSI/V1_0-20120529-A/OMA-RD-NGSI-V1_0-20120529-A.pdf, May 2012. [38] Ram on Martínez, Juan Angel Pastor, Barbara Alvarez, Andres Iborra, A testbed to evaluate the fiware-based IoT platform in the domain of precision agriculture, Sensors 16 (11) (2016) 1979. [39] FIWARE-NGSI V2 Specification. http://fiware.github.io/specifications/ngsiv2/st able/. [40] NGSI Context Management. http://www.openmobilealliance.org/release/NGSI/ V1_0-20120529-A/OMA-TS-NGSI_Context_Management-V1_0-20120529-A.pdf, May 2012. [41] Bill Karakostas, A DNS architecture for the internet of things: a case study in transport logistics, Procedia Comput. Sci. 19 (2013) 594–601. [42] Zhi-Kai Zhang, Yi Cho Michael Cheng, Zong-Yu Wu, Shiuhpyng Winston Shieh, Identifying and authenticating IoT objects in a natural context, Computer 48 (8) (2015) 81–83.
[4] Rui Ma, Yue Liu, Chun Shan, Xiao Lin Zhao, Xu An Wang, Research on identification and addressing of the internet of things, in: P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC), 2015 10th International Conference on, IEEE, 2015, pp. 810–814. [5] Roussos George, Chartier Paul, Scalable id/locator resolution for the IoT, in: 2011 International Conference on Internet of Things and 4th International Conference on Cyber, Physical and Social Computing, vols. 58–66, IEEE, 2011. [6] Martin Floeck, Apostolos Papageorgiou, Anett Schuelke, JaeSeung Song, Horizontal m2m platforms boost vertical industry: effectiveness study for building energy management systems, in: Internet of Things (WF-IoT), 2014 IEEE World Forum on, vols. 15–20, IEEE, 2014. [7] Eu-china Joint Whitepaper on Internet of Things Identification, November 2014 [8] Yijian Li, Naming in the Internet of Things, 2013. [9] Euihyun Jung, Younghwan Choi, Jun Seob Lee, Hyoung Jun Kim, An OID-based identifier framework supporting the interoperability of heterogeneous identifiers, in: Advanced Communication Technology (ICACT), 2012 14th International Conference on, IEEE, 2012, pp. 304–308. [10] Ala Al-Fuqaha, Mohsen Guizani, Mehdi Mohammadi, Mohammed Aledhari, Moussa Ayyash, Internet of things: a survey on enabling technologies, protocols, and applications, IEEE Commun. Surv. Tutorials 17 (4) (2015) 2347–2376. [11] Zhiwei Yan, Ning Kong, Ye Tian, Yong-Jin Park, A universal object name resolution scheme for IoT, in: Green Computing and Communications (GreenCom), 2013 IEEE and Internet of Things (iThings/CPSCom), IEEE International Conference on and IEEE Cyber, Physical and Social Computing, IEEE, 2013, pp. 1120–1124. [12] Zhengguo Sheng, Shusen Yang, Yifan Yu, Athanasios Vasilakos, Julie Mccann, Kin Leung, A survey on the IETF protocol suite for the internet of things: standards, challenges, and opportunities, IEEE Wirel. Commun. 20 (6) (2013) 91–98. [13] Chi Harold Liu, Bo Yang, Tiancheng Liu, Efficient naming, addressing and profile services in internet-of-things sensory environments, Ad Hoc Netw. 18 (2014) 85–101. [14] Telecommunication standardization sector (ITU-T). https://www.itu.int/en/ITU-T/ Pages/default.aspx. [15] O. Dubuisson, Introduction to Object Identifiers (OID) and Registration Authorities, France Telecom Orange, 2013. [16] Michael Mealling, A URN Namespace of Object Identifiers, 2001. https://tools.ie tf.org/html/rfc3061. [17] EPC information. https://www.epc-rfid.info, 2017. [18] EPC/RFID Standards. https://www.gs1.org/epc-rfid, 2014. [19] GS1 tag data standard. https://www.gs1.org/sites/default/files/docs/epc/GS1_ EPC_TDS_i1_11.pdf, September 2017. [20] Sanjay Sarma, David Brock, Daniel Engels, Radio frequency identification and the electronic product code, IEEE Micro 21 (6) (2001) 50–54. [21] Paul J. Leach, Michael Mealling, Rich Salz, A Universally Unique IDentifier (UUID) URN Namespace, 2005. [22] MySQL Functions. https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-funct ions.html. [23] Michael Satran John Kennedy, Interface Pointers and Interfaces. https://msdn.microsoft.com/en-us/library/windows/desktop/ms688484 (v¼vs.85).aspx.
8