Publish / Subscribe Systems (eBook)
John Wiley & Sons (Verlag)
978-1-118-35428-5 (ISBN)
This book offers an unified treatment of the problems solved by publish/subscribe, how to design and implement the solutions
In this book, the author provides an insight into the publish/subscribe technology including the design, implementation, and evaluation of new systems based on the technology. The book also addresses the basic design patterns and solutions, and discusses their application in practical application scenarios. Furthermore, the author examines current standards and industry best practices as well as recent research proposals in the area. Finally, necessary content matching, filtering, and aggregation algorithms and data structures are extensively covered as well as the mechanisms needed for realizing distributed publish/subscribe across the Internet.
Key Features:
- Addresses the basic design patterns and solutions
- Covers applications and example cases including; combining Publish/Subscribe with cloud, Twitter, Facebook, mobile push (app store), Service Oriented Architecture (SOA), Internet of Things and multiplayer games
- Examines current standards and industry best practices as well as recent research proposals in the area
- Covers content matching, filtering, and aggregation algorithms and data structures as well as the mechanisms needed for realizing distributed publish/subscribe across the Internet
Publish/Subscribe Systems will be an invaluable guide for graduate/postgraduate students and specialists in the IT industry, distributed systems and enterprise computing, software engineers and programmers working in social computing and mobile computing, researchers. Undergraduate students will also find this book of interest.
This book offers an unified treatment of the problems solved by publish/subscribe, how to design and implement the solutions In this book, the author provides an insight into the publish/subscribe technology including the design, implementation, and evaluation of new systems based on the technology. The book also addresses the basic design patterns and solutions, and discusses their application in practical application scenarios. Furthermore, the author examines current standards and industry best practices as well as recent research proposals in the area. Finally, necessary content matching, filtering, and aggregation algorithms and data structures are extensively covered as well as the mechanisms needed for realizing distributed publish/subscribe across the Internet. Key Features: Addresses the basic design patterns and solutions Covers applications and example cases including; combining Publish/Subscribe with cloud, Twitter, Facebook, mobile push (app store), Service Oriented Architecture (SOA), Internet of Things and multiplayer games Examines current standards and industry best practices as well as recent research proposals in the area Covers content matching, filtering, and aggregation algorithms and data structures as well as the mechanisms needed for realizing distributed publish/subscribe across the Internet Publish/Subscribe Systems will be an invaluable guide for graduate/postgraduate students and specialists in the IT industry, distributed systems and enterprise computing, software engineers and programmers working in social computing and mobile computing, researchers. Undergraduate students will also find this book of interest.
Professor Sasu Tarkoma, University of Helsinki, Finland Sasu Tarkoma is a full professor in the Department of Computer Science at the University of Helsinki. He leads the Networking and Services specialization line at the Department. His research interests include publish/subscribe, mobile computing, and Internet technology. He received a PhD in computer science from the University of Helsinki. He has authored two textbooks and over 100 scientific articles.
Chapter 2
Networking and Messaging
The key ingredients of any distributed system are networking and messaging. The solutions of these central fields are the structural blocks reviewed in this chapter. In the typical layered protocol stack application messages are sent and received utilizing the TCP/IP protocol suite. A header is added by each layer and this header encapsulates the higher level data using its own format.
We will first examine here the waist of the protocol stack, meaning IP and TCP/UDP protocols. Our next focus will be on higher level messaging protocols, characteristically used for implementing distributed pub/sub solutions. The primary protocols studied here are REST, Web services and SOAP, and SIP.
2.1 Networking
Internet has been built on the TCP/IP protocol. Structurally Internet may be thought as consisting of five separate layers depicted by Figure 2.1, which are usually abstracted as the application layer, transport layer, network layer, link layer, and physical layer. We meet layered architectures in other places, too, for instance in the case of the seven-layer OSI Reference Model. Application developers use the Sockets API for programming TCP/IP applications. The Sockets API is provided by the transport layer and it offers two key basic data transport primitives, namely reliable data streams, and unreliable datagrams. The former is implemented with TCP and the latter with UDP.
Figure 2.1 A layered protocol stack.
The current Internet was designed closely following the principles given and outlined in RFC 1122 [1]. The main architectural tenets used when designing the Internet were the Robustness Principle and the End-to-End Principle [2]. In the following, we will elaborate the structure and the components of the Internet.
2.1.1 Overview
The general principle behind the Internet is the Robustness Principle. It lays down a rule which all software written for Internet must follow: be conservative in what you do, be liberal in what you accept from others. For instance, it is mandatory that the pieces of software written by Internet developers strictly adhere to extant RFCs but are prepared to meet client input which does not necessarily comply with those RFCs. Such nonstandard input must be accepted and parsed by the software just as the standard input. The RFC 1122 mandates that this kind of adaptability must be present in every level of Internet host software.
The question of positioning the maintenance of state and overall intelligence is answered by the End-to-End principle which places these functions at the edges. The core Internet is presumed to remain stateless [3]. Nevertheless, the development of the Internet constraining attributes like firewalls, Network Address Translation (NAT) and caches for Web content have made the practical End-to-End principle difficult if not impossible to carry out.
Internet layers are built separate for good reason, aiming to insulate possible failures. Internetworking is realized by the network layer in the TCP/IP model, delivering data from upper layers between end hosts within the IP protocol. Host names are strictly separated from topological addresses by using DNS name resolution in the protocol suite. DNS (Domain Name System) converts the (hierarchical) host names to topological IP addresses [4]. Naming and addressing are thus effectively separated and if there is possible failure in the domain name resolution the underlying routing operations are still independent and intact. For the user level an important feature is the ability to define organizational boundaries in DNS irrespective of the network topology.
There are several algorithms responsible for traffic. The routing algorithm takes care for setting up and maintaining routing tables. A second building block is the forwarding algorithm, which calculates the next hop for a packet when a destination address is given. The packet routing mechanism thus involves the routing and forwarding algorithms. We have actually two main classes of protocols here: the intradomain and the interdomain protocols. Being local tools, intradomain protocols belong to an Autonomous System (AS) such as a Metropolitan Area Network (MAN) or other regional network. The global tools are interdomain protocols utilized to connect the different AS together. Thus, interdomain protocols facilitate the formation of a global network topology. The standard cases of such protocols are Open Shortest Path First (OSPF) used for intradomain operation, and Border Gateway Protocol (BGP) for interdomain operation.
Actually Internet offers several different communication models that are commonly used. The unicasting model handles a packet traversing through a set of links from a source to a well-defined destination. Most traffic on the Internet belongs to the unicast variant. Multicasting implements traffic where a packet will selectively traverse through a multiplicity links typically from one source to many destinations. The broadcasting model describes a case where packet is sent through multiple links to all devices on the network. Broadcasting is normally restricted within a designated broadcast domain. Lastly, in anycasting packets are sent to the nearest or otherwise best destination, the suitable chain of links being chosen from a set of candidates.
The currently prevailing IP version 4 protocol only implements the unicasting model globally. In future, the next IP version 6 will include other communication models as well. It is not clear, however, when the IPv6 will actually be universally used; the progress of the deployment has been slower than expected.
Autonomy is a basic concept of the Internet. In the application of hierarchical routing the local AS are connected with each other by peering and transit links. The AS are autonomous also for their routing software. Each AS is free to run its own local routing algorithm, and the interdomain connectivity is achieved with BGP.
The current interdomain practice is based on three tiers: tiers 1, 2, and 3. Tier-1 is an IP network which connects to the entire Internet using settlement free peering. There are a small number of tier-1 networks that typically seek to protect their tier-1 status. A tier-2 network is a network that peers with some networks, but relies on tier-1 for some connectivity for which it pays settlements. A tier-3 network is a network that only purchases transit from other networks.
The applications are separated from the detailed routing and forwarding. This is accomplished by the network layer when it provides both global addressing and end-to-end reachability. On a lower level, the IP protocol itself is able to support a set of link and physical layer protocols, and therefore it is a waist of the protocol stack. On a higher level, features supporting dissimilar operating environments can coexist with the IP. Therefore, the network layer strives to minimize the number of service interfaces and simultaneously to maximize systemic interoperability.
2.1.2 Sockets, Middleware, and Applications
TCP/IP applications use the Berkeley Sockets API to send and receive data. As mentioned above, the API provides a reliable data stream with TCP and unreliable datagram service with UDP. The transport layer uses port numbers to associate open connections to active processes. For example, a Web page retrieval is performed with a HTTP request that opens a port for the response from the Web server. The response finds it way to the Web browser and the correct window based on the port number. Similarly, the Web server runs a server socket on the standardized Web port 80 and listens for incoming requests. Thus the transport layer and the Sockets API provide the essential mechanisms for receiving and sending data between distributed processes.
In the layered world of Internet we need a level of software that functions on top of the networking stack but below the application level. This is the middleware that provides services between networking and application levels. Middleware caters for a vast area of viable Internet technology and the majority of overlay technologies belong to it. These middleware blocks make use of the APIs and features of the network and the underlying protocol stack. Furthermore, the application developers can utilize the middleware APIs for their software. The middleware layer is important because it is able to hide and abstract many special features of the lower layers from the applications and thus facilitate the writing and running of distributed software.
2.1.3 Naming and Addressing
Network architectures have great variety of components and some are essential. Of those the naming procedures and the associated namespaces are fundamental for a functional network. The component responsible for handling names and managing the hierarchical domain namespace in the current Internet is the DNS. The protocol for DNS was one of the first Internet ingredients, specified by the IETF in the early 1980s. DNS has a central role in the practical Internet because it provides much of the background flexibility. DNS forms the basic system which creates critical scalability for both network level hierarchical routing and the higher level naming service. Without DNS we could not have the Web or e-mail services.
The management of DNS is distributed over the network. DNS is an overlay that uses both a static distribution tree and a namespace organized hierarchically. The DNS system is implemented as a distributed database system using the client-server model. In DNS sharing, replicating, and partitioning the domain namespace are executed by the nameservers. These...
| Erscheint lt. Verlag | 19.6.2012 |
|---|---|
| Reihe/Serie | Wiley Series in Communications Technology |
| Wiley Series in Communications Technology | Wiley Series on Communications Networking & Distributed Systems |
| Sprache | englisch |
| Themenwelt | Mathematik / Informatik ► Informatik ► Netzwerke |
| Technik ► Elektrotechnik / Energietechnik | |
| Technik ► Nachrichtentechnik | |
| Schlagworte | Communication Technology - Networks • Components of a Pub/Sub System • Computer Science • CORBA Event Service • Counting Algorithm • Distributed Hash Tables • Distributed Publish/Subscribe • Drahtlose Kommunikation • Electrical & Electronics Engineering • Elektrotechnik u. Elektronik • Informatik • IR-Style Document Dissemination in DHTs • Kommunikationsnetz • Kommunikationsnetze • Mobile & Wireless Communications • Networking • Networking and Messaging • Netzwerk • Netzwerke • Overlay Networks • publish/subscribe systems • Pub/Sub Networking • Web Technology |
| ISBN-10 | 1-118-35428-1 / 1118354281 |
| ISBN-13 | 978-1-118-35428-5 / 9781118354285 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich