• 10

Distributed Systems Characteristics and Trends


Peer-to-Peer and Client-Server Architectures. 2

Security Issues. 3

Naming Systems. 4

External Data Representation. 6

Evolving Middleware Solutions. 8

References. 10

Peer-to-Peer and Client-Server Architectures

Coulouris et al. (2012)explain client-server architecture refers to nodes running processes (servers)which accepts requests from other nodes (client) and responds appropriately. Tannenbaum (2014)identifies three levels which are, the user interface (handles userinteraction), processing (which performs tasks as designed between layers) and data levels (files or databases) of this architecture.

Microsoft (2006) recognize that these three levels can run on different computers allowing the user interface to operate on a simple client device whilst the main processing and database levels operate on much more powerful servers. In contrast to Client/Server networking Microsoft emphasises that Peer-To-Peer (P2P) networking utilizes the relative power of users devices to provide both server and client services. Kshemkalyani and Singhal (2008) add that in the case of P2P  networking all of the three levels can reside on the Client sytems.

Tanenbaum(2014) determines that a trend is developing in the case of client-server architecture (Also known as multitiered architecture or vertical architecture) where most of the processing and data storage is moving away from the client and being handled at the server(See Fig 1.) Shelly and Rosenblatt (2012) add that clients using their own processing power are known as Fat clients whilst those utilisng the servers processing are thin clients.

Figure 1
The trend can be seen moving towards thin client architectures

According to Coulouris et al. (2012) Client/Server technology provides access to resources such as files, web pages and othernodes on a single server, or a cluster, and claim that this makes for moresimpler management.  Microsoft  (2006) argues that P2P networking can provide access to the same resources from any of the systems making up a P2P network and suggests that a network of peers is easily scalable and more reliable than a centralised server. Microsoft (2006) explain that P2P networking enables and enhances Real Time Communications, collaboration,content distribution, distributed processing, improved internet technologies and argue that well designed P2P systems can be self managing. 

Security Issues

Coulouris et al (2012, p.482) recognizes that the goal of security is the restriction of access to information only to authorized users. Tanenbaum (2014, p.379) identifies Encryption, Authentication, Authorization and Auditing as the four important security mechanisms which should be taken into account.

Of the two types of distributed systems Kilvington (2016) warns that P2P networks are more vulnerable to security breaches. Kilvington explains that P2P file sharing systems such as Napster and Gnutella are designed to bypass firewalls which make it very easy for sensitive data to be leaked out onto the internet. Inexperienced users may accidentally share their entire hard drive allowing unintended access to confidential data. Holme et al. (2011) argues that Client Server systems can be configured to provide more restrictive access to users from a centrally managed database. Holme et al. observes that this would ensure that the responsibility for the security of an individual client does not fall on each individual user.  Thomas and McClean (2011) adds that onClient-Server systems a network administrator puts in place network wide security mechanisms to ensure that in the event of a security breach on a single client the whole of the network is not compromised.

In both P2P and Client Server networks Li (2007) argues that each infrastructure type is open to Distributed Denial Of Service (DDOS) attacks.Because of its nature a Server in a Client/Server infrastructure can be attacked by a hacker using a massive number of connections to render the server inoperable. A P2P network can be made inoperable in a similar way by making use of the the querying nature of P2p networks to overload the network, creating a broadcast storm.

Naming Systems

Coulouris et al. (2012) states that a Name Service allows discovery of various services on a distributed system, which includes. as Tanenbaum (2014) explains. PCs,printers and other nodes.  Having a name service, Tannenbaum (2014) adds can provide fort ransparency as it enables discovery even if location changes.

There are various Name Services, each designed for specific requirements, Wiley (2003) states that Distributed Hash Tables(DHT) are essential to robust P2P networks. Wiley explains that the basic design of DHT starts with a circular double-linked list where each node in the list is a client on the network. Each node keeps a reference to the previous and next nodes(double-link) in the list and by arranging these nodes into a ring it simplifies the process of referral.  Stoica et al. (2003) observe that this basic design has been improved upon by systems such as Chord by using a logarithmic function and a finger table to reduce the number of hops a search must take to find the correct node which increases efficiency. (see Fig 2).

Figure 2
Files with ID are stored on the next Node Higher ID

DHT is an example of a flat naming system which Tanenbaum (2014) explains are good for machines but are not very convenient for humans as they do not generally support simple human-readable names. In contrast Tanenbaum argues that hierarchical naming systems such as DNS follow a more structured approach which makes it far easier for users to remember and use.

Liu and Albitz (1998) state that DNS is a distributed database which allows the control of segments of the overall database to be made locally yet still allow the data in each segment tobe made available across the entire network utilising a client server configuration.  Liu and Albitz explain that the DNS Database is essentially a large inverted tree with domain names as the branches (See diagram 3). The top of the tree is referred to as the root, represented by a dot, and a full domain name is the sequence of labels read from the node upto the root so  a web server on the BBC network may be named WWW so this server would be named WWW.BBC.CO.UK.

Figure 3
DNS Name Spaces

Tanenbaum (2014) observes that this implementation of DNS can lead to a swamping of the higher level nodes however, caching of the name to address configurations on lower level nodes can avoid this.

DHT provides for a whole new raft of applications due to its key benefit of being content addressable explains Gummadi (2004) and this a big improvement on DNS where users must remember or know what website or fileserver the content they require is stored on.  Due to their use of the O (log n) function their scalability is exceptional and this has been a contributing factor to their use by large peer to peer networks such as Napster, Skype, BitTorrent and others. However according to Coulouris et al. (2012)the efficiency of DNS is far superior, Coulouris et al. (2012)show that a DNS lookup takes on average 5 lookups per query compared to a DHT user who may need up to 30 lookups. This efficiency is the result of the hierarchical structure of DNS.

External Data Representation

Gao (2005) explains that passing data across anetwork introduces many problems, especially if the systems are running different hardware or software. For instance, character encodings such as ASCII, UTF-8, EDCDIC or Unicode may differ, there may be different floating point representations or data may be stored differently in memory. Therefore,the systems that need to communicate must agree on the external representation of data.

The Standard C Foundation (2016) explains that serialization is the process of translating data structures into an agreed format that can be stored or transmitted over a network.  It also involves the reconstruction, or deserialization, of that data, according to the serialization format by the same computer or other computers on the network.According to Coulouris et al. (2012) an agreed standard for the represenatation of data structures is caled an External Data Representation (XDR) and is described by Sun Microsystems (1987) in RFC 1014. Coulouris et al. (2012) mentions that Serialization is also known as Marshalling whilst the process of reconstructionof data is known as De-Serialization or Un-Marshalling.

Janssen (2000) states that there are various formats of External Data representation. A serialization method confusingly also named XDR and others such as NDR and CDR either store the least significant byte first in memory, known as Little Endian or the most significant byte firstin memory, known as Big Endian. Janssen continues to explain that XDR uses Big Endian and uses a 4-byte structure which is aligned without padding.  NDR and CDR can be Either-Endian and attempt to align data as it would be aligned in a C Data structure and therefore require fairly complex padding. Janssen argues that XDR is much simpler to use.According to Gao (2005) the most common serialization methods in use are the Common Object Request Broker Architecture’s (CORBA) Common Data representation (CDR), JavaScript Object Notation (JSON) and the Extensible Markup Language (XML).

CORBA was originally designed by the Object Management Group (OMG) (2016) who explain that CORBA is used extensively across the internet allowing applications on differing systems to work together due to its open vendor-independent architecture.  Gao (2005) explains that the data structures and basic data items are described in the its Interface Definition Language (IDL), however CORBA’s serialization method, CDR, does not pass the“Type” of data instead it has to use prior knowledge of the data structures. (seeFigure 4.) In contrast Gao states that both XML and JSON include information about the “Type” of data which allow the recipient to construct it using a process called reflection.

Figure 4
CDR assumes sender and receiver have common knowledge of data types

The World Wide Web Consortium(W3C) (2006) state that XML was created in 1996 and its design goals were to support a wide variety of applications and be straignt forward to use over the internet whilst being huma readable, formal and concise. Gao points out that XML and JSON are textual formats and quite slow compared to the Binary data of CORBA but are interoperable across different systems. Yang and Liu (2012) explain that JavaScript Object Notation (JSON) is derived from JavaScript and is an easy to read serialization format for transmission over the internet. Furthermore, JSON can be read or created by any programming language not just JavaScript. Yang and Liu recommend that JSON and XML are great for public and cross-platform APIs, but between Java processes Java serialization is generally the better alternative.

Evolving Middleware Solutions

Miller(2003) identifies some of the problems of integrating computer systems as being the complexity and the cost. He explains that the complexity increases as businesses begin integrating their legacy systems with newer systems, busines s partners, suppliers and customers. These complexities add additional issues such as security and integration. Chavan et al. (2012) identify Middleware sitting in between the Operating System and the Application programs and provides various programming and developer services whilst masking the differences of the underlying services. Chavan et al. recognizes that middleware provides developers with a formalized method of how applications interoperate. Middleware also provides network communication such as marshalling,explained in a previous chapter, and coordinate and monitor resources whilst providing scalability, security, heterogeneity and transparency.

Manylegacy systems still in operation use an aging middleware layer named CORBA which according to Tanenbaum (2014) uses messaging as a means of handling communications in distributed systems. OMG (2016) advocate the use of open systems based on standard object-orientated interfaces which are built from heterogenous hardware, networks operating systems and programming languages.The aim of CORBA is to allow anything to communicate with anything. A main component of CORBA is the Object Request Broker (ORB) states Coulouris etal.  (2012)  amd its role is to help a client to run a program (known as a method) on another system. This involves locating the system, initialising the remote program, and then communicating the request sand the replies between the two systems (See Figure 5).

Figure 5

Onmodern systems IBM (2004) conclude that Software Developers must choose at least one middleware platform, Java EE or.NET with which to deploy their applications when faced with cost and time limitations. According to Oracle (2016) Java provides an OR Band Application Programming Interfaces to allow Java applications to communicate with CORBA applications. Heinzl (2015) states that this means that an existing CORBA infrastructure can be integrated into a J2EE infrastructure however he argues that .NET can only communicate with CORBA using web services and therefore an additional bridging solution must alternatively be utillised creating new issues. (See Figure 6)

Figure 6

According to Miller (2003)  The Middleware Company (TMC) created a web application named “The Pet Store” in both J2 EE and .NET in order to examine claims by Microsoft that .NET is superior in all measures of performance and scales much better as user numbers increase. According to this study King (2016) reports that .Net is superior in areas such as smaller number of lines of code required, response times and users supported. However King states that the Microsoft implementation was highly optimized whilst the java implementation wa simplemented with “best practice” in mind.  King (2016) argues that a new optimized J2EE version was able to improve performance by more than seventeen times bringing it in line with that of the .NET version


Coulouris, G., Dollimore, J., Kindberg, T. & Blair, G. (2012) Distributed Systems, Concepts and Design. 5th edn.Hirsch, M. (ed.) Harlow: Pearson Education limited.

Gao, B. (2005) External data representation and marshalling. Available at: http://www.cs.sfu.ca/CourseCentral/401/bgao/slides/chp4-2.pdf (Accessed: 18th October 2016).

Gummadi, K. (2004) DHTs and their Application to the Design of Peer-to-Peer Systems. Available at: https://courses.cs.washington.edu/courses/csep551/04wi/krishna.dht-pmp.ppt (Accessed: 30th October 2016).

Heinzl, M. (2015) Seemless Integration of j2ee CORBA and.NET. Available at: http://mh-enterpriseconsulting.de/download/articles/english__j2ee_corba_net_integration.PDF (Accessed: 16th November 2016).

Holme, D., Ruest, N., Ruest, D. & Kellington, J. (2011) Configuring Windows Server. 2nd edn.Koch, J. (ed.) Redmond, Washington: Microsoft press.

IBM (2004) IBM J2EE Middleware Platform vs. Available at: http://www-01.ibm.com/software/smb/na/IBM_vs_MS_for_ISVs.pdf (Accessed: 24th October 2016).

Janssen, B. (2000) A comparison between CDR, NDR, XDR etc. Available at: https://groups.google.com/forum/#!topic/comp.object.corba/po88fJULWkI (Accessed: 17th October 2016).

Kilvington, S. (2016) The dangers of P2P networks. Available at: http://www.computerweekly.com/feature/The-dangers-of-P2P-networks (Accessed: 25th September 2016).

King, D. (2016) Java vs.Net. Available at: www.zsi.pwr.wroc.pl/~krol/dydaktyka/./Part3.pps (Accessed: 25th October 2016).

Kshemkalyani, A.D. & Singhal, M. (2008) Distributed Computing Principles. Algorythms and Systems. Cambridge: Cambridge University Press. Available at: http://eclass.uoa.gr/modules/document/file.php/D245/2015/DistrComp.pdf.

Li, J. (2007) A Survey of Peer-to-Peer Network Security Issues. Available at: http://www.cse.wustl.edu/~jain/cse571-07/ftp/p2p/ (Accessed: 7th October 2016).

Liu, C. & Albitz, P. (1998) DNS and Bind. Available at: http://cse.unl.edu/~ylu/csce855/notes/OReilly-DNS-and-BIND.pdf (Accessed: 10th October 2016).

Microsoft (2006) Introduction to Windows Peer-to-Peer Networking. Available at: https://technet.microsoft.com/en-gb/library/bb457079.aspx (Accessed: 23rd September 2016).

Miller, G. (2003) The Web services debate:.NET vs. J2EE. Available at: http://cacm.acm.org/magazines/2003/6/6806-the-web-services-debate (Accessed: 24th October 2016).

Mockapetris, P. (1987) DOMAIN NAMES – CONCEPTS AND FACILITIES. Available at: https://www.ietf.org/rfc/rfc1034.txt (Accessed: 8th October 2016).

Moltchanov, D. (2013) Client/server and peer-to-peer models: basic concepts. Available at: http://www.cs.tut.fi/kurssit/ELT-53206/lecture01.pdf (Accessed: 7th October 2016).

Morrison, M. (2002) Teach yourself XML in 24 hours. 2nd edn.Clapp, C. (ed.) Sams Publishing.

Northup, T. & Mackin, J.C. (2011) Configuring Windows Server Network infrastructure. 2nd edn.Koch, J. (ed.) Washington: Microsoft press.

Object management Group (2016) Corba history. Available at: http://www.corba.org/history_of_corba.htm (Accessed: 17th october 2016).

Oracle (2016) CORBA Technology and the Java Platform Standard Edition. Available at: http://docs.oracle.com/javase/7/docs/technotes/guides/idl/corba.html (Accessed: 16th November 2016).

Savita Chavan, M.S.A.C.M.S., (2012) ‘Middleware: An Architecture for Distributed Systems Services’, International Journal of Engineering Science and Innovative Technology (IJESIT), 1(2), pp. 1-5. Available at: http://www.ijesit.com/Volume%201/Issue%202/IJESIT201211_01.pdf (Accessed: 2017 November 2016)

Shelly, G.B. & Rosenblatt, H.J. (2012) Systems Analysis and Design. Ninth edn.McMahon, K. (ed.) Boston: Course technolgy.

Standard C++ Foundation (2016) Serialization and Unserialization. Available at: https://isocpp.org/wiki/faq/serialization (Accessed: 17th October 2016).

Stoica, I. et al. (2003) Chord: A Scalable Peer-to-Peer Lookup Protocol. Available at: https://web.stanford.edu/class/cs244/papers/chord_TON_2003.pdf (Accessed: 8th October 2016).

Sun Microsystems (1987) XDR: External Data Representation Standard. Available at: https://tools.ietf.org/html/rfc1014 (Accessed: 18th October 2016).

TanenBaum, A.S. (2014) Distributed Systems Principles and Paradigms. 2nd edn. Upper Saddle River: Pearson Education Inc.

Thomas, O. & McLean, I. (2011) Windows Server Adminsitrator.koch, J. (ed.) Washington: Microsoft press.

Wiley, B. (2003) Distributed Hash Tables, Part I. Available at: http://www.linuxjournal.com/article/6797 (Accessed: 8th October 2016).

World Wide Web Consortium (2006) Extensible Markup Language (XML) 1.1 (Second Edition). Available at: https://www.w3.org/TR/2006/REC-xml11-20060816/ (Accessed: 17th October 2016).

Yang, H. & Liu, X. (2012) Software Reuse in the Emerging Cloud Computing Era.Probst, H.A. (ed.) Hershey: IGI Global.

Comments are closed.