Service Oriented Architecture

In subject area: Computer Science

Service-Oriented Architecture (SOA) is a design principle where software is developed in modular pieces that offer specific services upon request, allowing for well-defined interactions between systems and technologies.

AI generated definition based on: Managing Data in Motion, 2013

How useful is this definition?

Add to Mendeley

Chapters and Articles

You might find these chapters and articles relevant to this topic.

Service-oriented architecture (SOA)

Service-oriented architecture is a design principle in which software is designed and built in pieces that provide well-defined services when requested. The services may involve performing some activity or returning some information or answer. Most current custom software development is designed and programmed using SOA. Vendor packages that can be purchased usually also provide the capability to interact as services that can be invoked through an API. Service-oriented architecture is particularly relevant in integration because the well-defined nature of the services directs the various systems and technologies on the protocol for interactions. SOA best practice principles include a loose coupling of services, such that the particular technology used in implementations of the various services should not be of interest to users or applications trying to invoke those services, but simply the result. Data services in SOA are those that either provide or update information.

The differences between an ESB and an SOA are first that an ESB is a tool or engine whereas SOA is a design philosophy, and second, that ESB is usually used in a heterogeneous application environment of differing technologies that want to pass data around, whereas SOA implies a more heterogeneous technology environment. An ESB might be connecting some applications that have been written as services, but usually includes applications that have not been written consistently and so the ESB provides the needed layers of technical translation and transformation. If all applications that need to interact have been developed using consistent standards and protocols, then an ESB might be unnecessary, but it still provides the orchestration necessary for the interactions. In the real world of integrating new applications with older legacy applications, an ESB is needed. Coding the overhead of orchestration of the interactions of the application into the code of the application software would be a great burden that is easier to offload onto the specialized ESB technology, just as we offload the overhead of data storage to a database management system.

A bit of tension exists between efficient real-time data integration solutions and pure service-oriented architecture. Software designers and application architects may want to implement all things in an application as services, in order to stay true to the design principles of SOA. However, in most applications it may be more efficient for the application programmers to understand how the data is actually being accessed, such as through an ESB or a database management system (DBMS), and designed and coded according to the efficiencies of the underlying data solutions. This issue can be contentious. Much of the functionality of the service layer, or code, around a data service, such as security access checking, may be redundant, duplicating the services performed by the underlying database management software. Solutions coded to retrieve or update data that don’t take into account the underlying solution may be so slow as to be unworkable, with unacceptable delay in response, or latency.

Improvements in solutions and technologies have started to make the need to understand the underlying implementation of data services somewhat less necessary. See the discussion of data virtualization in Chapter 20 later in this book. Achieving balance of data integration solutions and SOA working together depends on finding the right balance in granularity when defining services. For operational efficiency, it is not a good idea to define data services of too fine granularity; it is better to define application services that perform recognizable business functions. Again, this may contrast with some SOA design principles, but in practice it may be necessary to loosen some pure theory in order to achieve better performance efficiency.

Service-oriented architectures include a registry of available services and how they are invoked. Although originally the protocol used with SOA was SOAP (simple object access protocol), it has become common to use alternative protocols such as REST (REpresentational State Transfer).

Read full chapter
URL: https://www.sciencedirect.com/science/article/pii/B9780123971678000133

Service-oriented architecture is a way to design, implement, and assemble services to support or automate business functions. Various Web services can be used to connect services. This chapter first explains Web services connections. It begins with an analogy to connections used in audio-video (AV) systems (specifically, services in a service-oriented architecture are to AV components as Web services are to the connections between AV components). The connection technology of Web services is explained along with the importance of standardized semantic vocabularies. Then service-oriented architectures are explained in more detail.

More often than not, you can look to the past to find a pattern that will allow you to predict the future. I had an epiphany of this sort concerning the future of software systems architecture back in 2002 when I was writing the first edition of this book. At the time, I was upgrading my AV system. The past for this analogy is my old AV system and the future is the continued evolution of my AV system.

Since 2002, I have continued to evolve my AV system. The cable box was replaced with a digital video recorder (DVR) from my cable company. The VCR was removed, and I decided to resurrect an old turntable to play some of my vinyl albums. I have kept the same receiver and have resisted getting a flat-screen TV. All these components were connected using RCA connectors.

When we recently moved into a new home, my wife and I decided it was time to upgrade to a high-definition TV (HDTV). Of course, I now need to use high-definition multimedia interface (HDMI) connectors, yet I still have my old CD player and turntable. The DVR needed to be upgraded to HD and we purchased a new receiver that could handle HDMI as well as the older audio inputs that use RCA connectors. Figure 3.1 shows how I connected the various components.

Image

Figure 3.1. AV components.

Read full chapter
URL: https://www.sciencedirect.com/science/article/pii/B9780123983572000038

Service Oriented Computing

Service Oriented Architecture (SOA) is a style of design in which applications are composed in whole or in part of reusable services. SOA aligns information systems technology well with business objectives by modeling an application as a composition of reusable services. In contrast to the object-oriented (OO) paradigm, services are designed to model functions rather than things. They are a natural abstraction of the concept of business services; that is, services that a business provides to its customers and partners. A service can be implemented using an object, but it need not be. For example, it may be implemented using a procedure, stored procedure, asynchronous message queue, or script. Services are characterized by the messages they exchange and by the interface contracts defined between the service requester and provider, rather than by the programs that are used to implement them.

Service orientation has been around for a long time as a concept. However, only recently has it become mainstream, with many large-scale web sites for web search, social networking, and e-commerce now offering service-oriented access to their functions. In part, this wide availability is due to the advent of standard Web Services protocols. Web Services is an implementation technology that enables independent programs to invoke one another reliably and securely over a network, especially the Internet. Many vendors now support Web Services protocols. This enables one to implement SOA in a multivendor environment, which is a requirement for most enterprises.

A TP system that is created in whole or in part using the SOA approach may include multiple reusable services offered by a single transaction program or by multiple distributed services. An SOA-based TP system may include both synchronous and asynchronous communications mechanisms, depending on the message exchange patterns that a given service supports and the execution environment in which it runs. SOA-based TP systems may be assembled using a combination of services from a variety of applications and using a variety of operating systems, middleware platforms, and programming languages.

Figure 1.3 illustrates the components of a service-oriented architecture. They include a service provider that offers a service, a requester that invokes a service, and a registry (sometimes called a repository) that publishes service descriptions. The service descriptions typically include the service interface, the name and format of data to be exchanged, the communications protocol to be used, and the quality of service that the interaction is required to support (such as its security and reliability characteristics and its transaction behavior).

Image

Figure 1.3. Basic Architecture of Service Orientation. A service provider publishes its interface in the registry. A service requester uses the registry to find a service provider and invokes it. The corresponding Web Service technologies are WSDL, UDDI, and SOAP.

A caller communicates with a service by sending messages, guided by a message exchange pattern. The basic pattern is a one-way asynchronous request message, where a caller sends a request message to the service provider and the service provider receives the message and executes the requested service. Other common patterns are request-response and publish-subscribe.

The registry is an optional component because the requester can obtain service description information in other ways. For example, a developer who writes the requester can find the service description on a web site or be given the service description by the service’s owner.

One mechanism to implement SOA is Web Services, where a service requester invokes a service provider using the protocol SOAP.1 The service interface offered by the service provider is defined in the Web Services Description Language (WSDL). The service provider makes this interface known by publishing it in a registry. The registry offers access to service descriptions via the Universal Description, Discovery, and Integration (UDDI) protocol. A service requester and provider can be running in different execution environments, such as Java Enterprise Edition or Microsoft. NET.

Web Service interfaces are available for virtually all information technology product categories: application servers, object request brokers, message oriented middleware systems, database management systems, and packaged applications. Thus, they provide interoperability, meaning that applications running on disparate software systems can communicate with each other. Web Services support transaction interoperability too, as defined in the Web Services Transactions specifications (discussed in Section 10.8).

Services simplify the assembly of new applications from existing ones by combining services. Tools and techniques are emerging to simplify the assembly of services, such as the Service Component Architecture for Java and the Windows Communication Foundation for Windows.

A TP application may exist as a combination of reusable services. The use of reusable services doesn’t change the functions of the front-end program, request controller, or transaction server. However, it may affect the way the functions are designed, modeled, and implemented. For example, in Figure 1.2, the decision to build the request controller as a reusable Web Service may affect the choice of implementation technologies, such as defining the interface to the request controller using WSDL and invoking it using SOAP. That decision may also affect the design by enabling an end-user device such as a web browser to call the request controller service(s) directly, bypassing the front-end program. We’ll talk a lot more about TP software architecture in Chapter 3.

Representational State Transfer (REST) is another approach to SOA, rather different than that of Web Services. The term REST is used in two distinct but related ways: to denote the protocol infrastructure used for the World Wide Web, namely the Hypertext Transfer Protocol (HTTP); and to denote a software architectural pattern that can be implemented by web protocols. We use it here in the former sense, which we call REST/HTTP. We will discuss the REST architectural pattern in Section 3.3.

REST/HTTP focuses on the reuse of resources using a small set of generic HTTP operations, notably GET (i.e., read), PUT (i.e., update), POST (i.e., insert), and DELETE. This is in contrast to Web Services, which uses services that are customized for a particular application. Each HTTP operation is applied to a resource identified by a Uniform Resource Identifier (URI). A registry function, as shown in Figure 1.3, is needed to translate each URI into a network address where the resource can be found. On the Internet, this is implemented by the Domain Name System, which translates domain names such as www.mydomain.com into IP addresses.

In REST, generic HTTP operations are used to perform application-specific functions. For example, instead of invoking a Web Service AddCustomer, you could use REST to invoke the POST operation with a URI that makes it clear that a customer is being inserted, such as www.company-xyz.com/customers. In general, the application-specific information that identifies the function and its parameters must be embodied in the representation of the resource. This is why this style of communication is called representational state transfer. In practice, the representation that is transferred is often in a standard, stylized form, such as JavaScript Object Notation (JSON).

The format of the representation is specified in the HTTP header; the content-type and accept fields specify the format of the input and output, respectively. Thus, instead of specifying data types in a service’s interface definition, the caller specifies the data types it would like to receive. This flexibility makes it easier for diverse kinds of callers to invoke the service.

REST/HTTP is popular for its speed and simplicity. Web Services require parameters in SOAP messages to be represented in XML, which is expensive to parse. XML is self-describing and highly interoperable, but these benefits are not always important, for example, for simple services. A very simple interface makes it easier and faster to manipulate in limited languages such as JavaScript.

Read full chapter
URL: https://www.sciencedirect.com/science/article/pii/B9781558606234000019

Service-Oriented Architecture

In addition to the multitier application architecture, application design methodologies play a role in the structure of TP applications. Service-oriented architecture (SOA) is one such design methodology, which was discussed in Chapter 1. In SOA, the designer identifies a service that a business provides for its customers and partners. The designer maps this business service to a software service, which is an operation. Typically, a set of related operations are grouped together in a service interface. Each operation in a service interface is implemented as a software component that can be invoked over a network by sending it a message. In SOA, operations are intended to be relatively independent of each other, so they can be assembled into applications in different combinations, connected by different message patterns.

In a TP system, a service can implement a transaction or a step within a transaction. That is, it can play the role of a request controller or transaction server. In either case, it is invoked by sending a message to the service. In this sense, the notion of a service is nicely aligned with multitier TP system architecture.

This alignment between SOA and TP depends only on the fact that SOA decomposes applications into independent services. It does not depend on the particular technology that is used to define service interfaces or to communicate between services, such as RPC or Web Service standards.

Read full chapter
URL: https://www.sciencedirect.com/science/article/pii/B9781558606234000032
2018, Science of Computer ProgrammingDavid Ameller, ... Xavier Franch

2.3 Service-Oriented Architecture

Service-Oriented Architecture (SOA) is a software architectural style that uses services as the main building component [16]. A service, as a software component, is a mechanism to enable access to one or more capabilities [17]. Some of the most distinguishing characteristics of SOA are [16]:

Reusability: Since services are defined as autonomous software components that expose some generic, well-defined functionality, it should be easy to reuse them in a different context or project.

Scalability: Services can be deployed in more than one place. This characteristic brings many opportunities, for instance, the possibility of increasing the number of available services when there is more user demand.

Flexibility: SOA provides means to publish and discover new services. These facilities allow adapting the service compositions of the architecture in order to fulfill some goal at runtime, normally related to some NFR type, e.g., performance. The flexibility of SOA is highly aligned with business principles (e.g., service provider and pay-per-use). This alignment with business is one of the keys to its success.

SOA is a technology-independent architectural style, although the most common implementation of SOA relies on Web Services (the ones adhered to W3C/OASIS protocols [18,19]) and, more recently, on REST Services (also known as RESTful Web Services) [20]. One of the reasons that favors the adoption of MDD approaches to produce SOAs is that developers can reduce the learning curve of the related technologies and standards, for example, in the case of Web Services, developers would have to cope with a huge amount of notations such as WSDL, UDDI, SOAP, XML, WS-Security, WS-BPEL, etc.

View article
Read full article
URL: https://www.sciencedirect.com/science/article/pii/S0167642318303034
2003, Java Web Services ArchitectureJames McGovern, ... Sunil Mathew

Chapter Two Service-Oriented Architecture

Service-oriented architectures allow for business logic to be invoked across a network and can be discovered and used dynamically. A service is a behavior that is provided by a component for use by any other component-based service using only the interface contract. It stresses interoperability and may be dynamically discovered and used.

Read full chapter
URL: https://www.sciencedirect.com/science/article/pii/B9781558609006500038
2014, Computer NetworksManar Jammal, ... Yiming Li

4.2 Network as a service

4.2.1 Service oriented architecture

The service oriented architecture (SOA) is the concept of building a software system based on multiple integrated logical units. These units known as services allow better construction and management to solve large problems in different domains. The basic components of SOA are elucidated in Fig. 8. The architecture depends on the Services used by the Service User entity. The Service Provider hands over these services and the Service Registry coordinates the services’ information and publishes them for the Service User [38].

Image

Fig. 8. Components of SOA.

SOA satisfies the requirements of different applications by balancing the computational resources. It virtualizes and integrates these resources in form of services entities. Therefore, the basic aspect of SOA is the “coupling” between different systems. Every system has information about the behavior and implementation of its partners. The information gathering procedure facilitates the coupling feature in SOA.

SOA eliminates the tight coupling and lack of interoperability between diverse middleware in a network. It has been endorsed by Cloud Computing (CC) services; Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). Fig. 9 elucidates SOA in CC environment. CC implements SOA in its different fields to exploit the resources’ virtualization feature. This in turn allows SOA to introduce Network as a Service (NaaS) into CC [7].

Image

Fig. 9. SOA in cloud computing environment.

4.2.2 Motivation

Cloud computing offers on-demand provisioning of computational resources for tenants using a pay-as-you-go model and outsources hardware maintenance and purchases [39]. However, these tenants have limited visibility and control over network resources and must resort to overlay networks to complete their tasks. The separation of computation from end-to-end routing in traditional networks in the cloud-computing environment could affect data-plane performance and control-plane flexibility.

These drawbacks can be addressed by NaaS. It provides secure and direct access for tenants to cloud resources and offerings and enables efficient use of the network infrastructure in the data center [39]. NaaS is a new Internet-based model that enables a communication service provider to provide network resources on demand to the user according to a service-level agreement (SLA). NaaS can also be seen from the service point of view as an abstraction between network functions and protocols [40].

The top abstraction layers deal with NaaS as a service that uses the network and customizes its capacity. Customization in the lower layers is replaced by resource management policies. [13] defines Naas as Telco as a Service (TaaS), which offers a “common network and IT substrate that can be virtualized and combined as a slice”.

Naas is also defined as a Web 2.0 model that provides software as a service utility by exposing network capabilities (billing, charging, location, etc.) as APIs to third-party application service providers [41]. In NaaS, the owners of the underlying network infrastructure offer virtual network services to a third party. There is a clear demarcation between the roles of infrastructure providers (InPs) and virtual network operators (VNOs).

The InP is responsible for the operating processes in the underlying network infrastructure, and the VNO is responsible for the operating processes in the virtual networks that run on top of the physical infrastructure.

The NaaS scenario offers many business incentives, such as higher revenues for InPs and lower capital and operating expenditures for VNOs, because it enables a number of virtual networks to run on the same underlying network infrastructure. Detailed information on the interaction between InPs and VNOs is available in [13].

In summary, NaaS provides the following benefits to operators [42]:

Faster time to transition NaaS to market.

Self-service provisioning.

Flexibility in upgrading NaaS resources without long-term constraints.

Payment only for resources used.

Repair and maintenance are part of the service.

Greater control in adding, changing, and deleting services.

4.2.3 NaaS and SDN integration

NaaS is one of the promising opportunities for SDN. NaaS providers can use SDN orchestration systems to obtain a powerful user interface for controlling and viewing network layers. A variety of research studies have proposed NaaS platforms in an SDN environment.

4.2.3.1 Cloud-NaaS model

Feng et al. [40] introduced a cloud-based network architecture which evaluates the provision, delivery, and consumption of NaaS. The proposed cloud-based network consists of four layers: the network resource pool (NRP), the network operation interface (NOI), the network run-time environment (NRE), and the network protocol service (NPS).

The NRP consists of network resources: the bandwidth, queues, and addresses for packet forwarding. The NOI is a standardized API for managing and configuring the NRP. The NRE is the environment that performs billing, resource allocation, interconnection, and reliability assurance for protocol service instances through service migration in cases of network failures and high load [40]. Finally, the NPS is responsible for describing, managing, and composing the new implemented network protocols.

The proposed architecture is implemented using the OpenFlow protocol. The implementation consists of two layers: the controller control plane and the network data plane. The first layer is responsible for NRE and NPS functions. It consists of a master controller that distributes the data stream to the slave servers and slave controllers that perform switching, routing, and firewall functions. The data-plane layer contains the OpenFlow switches that perform packet forwarding services based on controller instructions. The authors in [40] presented NaaS in a cloud-based network, but performance and evaluation studies of the suggested implementation were not carried out.

The limitations on tenants in controlling and configuring networks in current cloud environments provided a motivation for the authors of [43] to implement a CloudNaaS model. The proposed networking framework enables the tenant to access functions for virtual network isolation, addressing, and deployment of middlebox appliances [44] for caching and application acceleration.

The CloudNaaS consists of the cloud controller and the network controller. The cloud controller manages virtual resources and physical hosts and supports the APIs which set network policies. It also specifies user requirements and transforms them into a communication matrix that resides on the OpenNebula framework. These matrices are compiled into network-level rules by the network controller (NOX controller).

The network controller installs these rules in virtual switches, monitors and manages the configuration of network devices, and decides on the placement of VMs in the cloud. The authors proposed optimization techniques to mitigate the hardware limitations mentioned in [43]. These techniques were implemented in the network controller and were designed to optimize traffic during VM placement and forwarding-entry aggregation using the same output ports. The implemented CloudNaaS exhibited good performance with an increasing number of provisioning requests and used cloud resources in an effective manner.

4.2.3.2 Network management in NaaS

Raghavendra et al. [45] presents a scalable graph-query design, NetGraph, which supports network-management operations in NaaS modules. NetGraph is implemented on a software module on a SDN platform. The network controller consists of multiple service modules that collect information about the physical and virtual network infrastructure.

The NetGraph module resides in the centralized controller, collects information about network topology to calculate the graph of the existing topology, and supports the service modules (NaaS modules) in their query mission. Details on the implementation design and the algorithms used (Dijkstra, TEDI, and APSP) for finding the shortest paths in a weighted graph are addressed in [45]. The authors showed that the proposed algorithms have practical compute time and are suitable for centralized architectures.

NaaS can be seen as the ultimate connection between SDN and cloud computing. NaaS is a supplementary scheme for SDN; while SDN is responsible for packet forwarding and network administration, NaaS provides application-specific packet processing for cloud tenants [44]. With NaaS schemes, the operators can control the bandwidth, routing, and QoS requirements of their data. Eventually, with SDN, operators can leverage current NaaS initiatives and build their own SDN infrastructure [46]. However, integration with existing hardware and software systems and providing diverse and efficient APIs are crucial requirements for adopting the SDN and NaaS concepts [44].

Although the SDN concept is attracting the attention of IT organizations and networking enterprises and has various applications in DCNs and NaaS, the overall adoption of SDN has encountered various obstacles, such as reliability, scalability, latency, and security challenges. Section 5 describes these challenges and presents some of the recent solutions proposed in the literature. Overcoming these challenges might assist IT organizations and network enterprises to improve the various opportunities and services offered by SDN.

View article
Read full article
URL: https://www.sciencedirect.com/science/article/pii/S1389128614002588
2014, Computer NetworksManar Jammal, ... Yiming Li

4.2.1 Service oriented architecture

The service oriented architecture (SOA) is the concept of building a software system based on multiple integrated logical units. These units known as services allow better construction and management to solve large problems in different domains. The basic components of SOA are elucidated in Fig. 8. The architecture depends on the Services used by the Service User entity. The Service Provider hands over these services and the Service Registry coordinates the services’ information and publishes them for the Service User [38].

Image

Fig. 8. Components of SOA.

SOA satisfies the requirements of different applications by balancing the computational resources. It virtualizes and integrates these resources in form of services entities. Therefore, the basic aspect of SOA is the “coupling” between different systems. Every system has information about the behavior and implementation of its partners. The information gathering procedure facilitates the coupling feature in SOA.

SOA eliminates the tight coupling and lack of interoperability between diverse middleware in a network. It has been endorsed by Cloud Computing (CC) services; Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). Fig. 9 elucidates SOA in CC environment. CC implements SOA in its different fields to exploit the resources’ virtualization feature. This in turn allows SOA to introduce Network as a Service (NaaS) into CC [7].

Image

Fig. 9. SOA in cloud computing environment.

View article
Read full article
URL: https://www.sciencedirect.com/science/article/pii/S1389128614002588

Summary

This chapter outlined Web services and service-oriented architectures. It showed the importance of a robust messaging format in the use of Web services. The chapter also highlighted the importance of the ongoing standardization of the various semantic vocabularies. The chapter ended with an explanation of service-oriented architectures.

Chapter 4 will weave the concepts of service-oriented architecture into a discussion of cloud computing.

Read full chapter
URL: https://www.sciencedirect.com/science/article/pii/B9780123983572000038
2020, Computer CommunicationsRajanpreet Kaur Chahal, ... Shalini Batra

2.1.2 Service-Oriented Architecture for IoT

Since IoT connects SOs of varying features, capacities and capabilities to each other over networks to facilitate provision of services in varied contexts, there is a great deal of heterogeneity involved. Service-Oriented Architecture (SOA) has been applied extensively for

integrating various heterogeneous systems, hence it turns out to be an ideal choice for IoT as well. But some changes have to be incorporated into SOA based on the underlying technology, technical and business requirements to fit it to IoT.

Table 3. Comparison of communication technologies used in IoT.

Empty CellCommunication Technologies
Empty CellEmpty Cell1G2G3G4G5GRFIDEthernetWiMAXZig-BeeWiFi Ha-LowBluetoothBLEANTZ-Wave
ParametersStandardizationAMPS, TACS, NMTTDMA, CDMA, GSMIMT-2000 (UMTS, WCDMA, CDMA-2000)Single unified standardSingle unified standardISO/IECIEEE 802.3IEEE 802.16IEEE 802.15.4IEEE 802.11ahIEEE 802.15.1IEEE 802.15.1ProprietaryProprietary
Frequency400–800 MHz800–900 MHZ, 1800–1900 MHz2 GHz2–8 GHz3-300 GHz125–134.2 kHz and 140–148.5 kHz, 6.765–6.795 MHz, 13.553–13.567 MHz, 26.957–27.283 MHz,433 MHz,858–930 MHz, 2.400–2.483 GHz, 2.446–2.454 GHz, 5.725–5.875 GHz100–500 MHz2–11 GHz, 10–66 GHz2.4 GHz, 868–915 MHz900 MHz2.4 GHz2.4 GHz2.4 GHz900 MHz
Range1/2 m to 10 m depending upon the frequency band100 m3000 m–10,000 m (Non-line-of-sight links), 30,000 m–50,000 m (Line of sight links)10 m–100 m<700 m (indoor) <1000 m (outdoor)<10 m, 10 m, 100 m50 m<30 m30 m
Data Rate2.4 Kbps64 Kbps2 Mbps100 Mbps–1 Gbps1 Gbps and higher40–640 Kbps1 Mbps–400 Gbps5 bps–100 Mbps20, 40, 250 Kbps150–400, 650–780 Kbps1, 2, 3 Mbps1Mbps1Mbps9.6, 40, 100 Kbps
Throughput2 Kbps14.4–64 Kbps2 Mbps2000 Mbps–1 Gbps1 Gbps and higher10 Mbps–10,000 Mbps2.9 Mbps10–115.2 Kbps>100 Kbps0.7–2.1 Mbps305 Kbps20 Kbps
Power Consumption400 nA–700 nA<40 mA<30 mA<12.5 mA<16 mA<23 mA
MultiplexingFDMATDMA, CDMAWCDMACDMACDMAFDMA, TDMAOFDMDSSSOFDMFHSSFHSSTDMAFHSS
ModulationFSKQAM, QPSKPSK, 64QAMAPSKOOKPAMBPSK, QPSK, 16/64/256 QAMOQPSK, BPSKBPSK, QPSK, 16-QAM, 64-QAM, 256-QAMGFSK, π/4-DQ-PSK, 8DP-SKGFSKGFSKFSK, GFSK
Security AlgorithmKasumi algorithmAES-128, SNOW 3GSNOW 3G, AES-CTR, ZUC, AES-CMAC, HMAC-SHA-256AES-128, TEA, Modified TEAAES-128WEP, WPA, WPA2E0, E1, E21, E22, E3, 56-128 bitAES-128AES-128, 64 bitAES-128
TopologyPoint-to-point, Star, BusStar, Tree, MeshOne-hopPoint-to-point, ScatternetPoint-to-point, StarPoint-to-point, Star, Tree, MeshStar, Mesh
Empty Cell

Table 4. Comparison of communication protocols used in IoT.

ProtocolStandardApplication layer StructureTransport layer protocolReliability mechanismSupported architectureQoS levelsSecurity protocolsCardinality
CoAPIETFSingle layer subdivided into two sub-layers: Message layer and Request–Response layerUDPRetransmissions, resource discovery mechanism, confirmable and non-confirmable messages, acknowledgmentsClient–Server, Request–Response2 levelsDTLSOne-to-one communication protocol
MQTTOASISSingle layerTCP3 QoS levels: QoS 0—At most once delivery QoS 1—At least once delivery QoS 2—Exactly once deliveryClient–Server, Publisher–Subscriber3 levelsSSL/TLSMany-to-many communication protocol
XMPPIETFSingle layer subdivided into two sub-layers: Application protocols and common service provisioning layerTCPInherent mechanism of TCPClient–Server, Publisher–SubscriberNot providedSSL/TLS and SASL
6LoW-PANIETFSingle layerTCP and UDPAcknowledgmentsRequest–ResponseAES-CTR (Encryption only); AES-CBC (Authentication only); AES-CCM (Encryption and Authentication); DTLSMany-to-many communication protocol

Various researchers have proposed numerous solutions and architectures to integrate RFID, WSNs, IoT and applications [32–43]. New ideas have been proposed to create a multi-layered SOA for IoT [9]. Various three-layered [15,30,44] and four-layered architectures have been proposed for IoT [45]. But these architectures are domain dependent and not generic in nature. Domingo proposed a three-layer architecture for IoT applications to help persons with disabilities [44]. The three layers are: Perception layer, network layer and application layer as depicted in Fig. 10. Xu et al. have proposed a four-layered architecture for IoT based on functionalities [9]. The four layers are: Sensing layer, Networking layer, Service layer and Interface layer as shown in Fig. 11. The description of these layers is given in Fig. 12.

Image

Fig. 9. IoT layers and protocols.

View article
Read full article
URL: https://www.sciencedirect.com/science/article/pii/S0140366419310953