Practical Issues in The Development of Secure Distributed Systems
Practical Issues in The Development of Secure Distributed Systems
• Examples
– distributed file systems (NFS)
– distributed object based systems (CORBA, DCOM)
– distributed document based systems (Web)
– distributed coordination based systems (Jini)
Advantages of distributed systems
• reduced execution time through parallelism and
distribution,
• increased fault tolerance,
• functional specialization
• reduces cost / performance ratio,
• easy access to remote resources,
• incremental system growth.
Design Problems
Heterogeneity – diversity of components:
network – solved by using Internet protocols for communication
hardware – various data representations (e.g. big endian, little endian)
operating systems – different implementations of Internet protocols;
calls for message transfers in Unix differ from Windows NT
programming languages – use different representations for
characters and data structures (arrays, records)
implementations from different developers – not respecting
standards
• Solutions
– asynchronous communication
• avoids long blockings found in synchronous communication
– task distribution
• e.g. DNS
– replication of components (in particular caching)
• introduces consistency problems
• Failure handling – detect, hide, prevent, or recover
from fails.
– fails are partial
Solutions
– detection (e.g. control sum)
– mask (e.g. repeat the operation)
– fault tolerance
• design for failure recovery
• redundancy
• Concurrency – simultaneous execution of tasks
– problems when accessing common resources
Solutions
– synchronization
[Tanenbaum 2007]
Distributed Systems Architectures
• Describe components and their relations
– software architectures
• logical components and links
– system architectures
• include implementation details
• Two fundamental models
– client-server
• Two component types with different roles
– peer-to-peer
• components with same rights that share resources and services
through direct exchanges
• each component is client and server at the same time
• in hybrid networks, super-peer with special functions
Client - Server Model
• Processing is distributed
between client and server
dedicated machines
• Server = process that
implements a specific
service (e.g. file server,
name server, print server)
Discovery service is an
alternative to
publish/subscribe.
Example: Grid SOA
OGSA (Open Grid Service Architecture)
• Standardize common services in Grid based applications: job
management, data transfer, security, …
• Implementation based on Web services – WSRF (Web Services Resource
Framework)
• WSRF: uses WS-Resource (web service + resource)
• Resources represent a mechanism to preserve the state
Peer-to-Peer Architectures
• Based on the direct access among peers
• Peer offers and consumes (by contrast to client - server)
• Categories
– distributed computation
• SETI@home, genome@home
– collaborative
• Jabber.org for instant messaging, Internet Relay Chat (IRC),
Groove Workspace
– content distribution
• Napster, Gnutella, Freenet, BitTorrent
Peer-to-Peer Architectures
• Purely Decentralized
– Nodes with similar capabilities “servents” = SERVers+clieENTS
• offer and consume the same type of resources (CPU cycles,
memory, content)
• special services
– bootstrapping,
– add and delete peers,
– maintain index for peer searching,
– connect and disconnect neighbors
– encrypting/decrypting content
– e.g.: Gnutella, Freenet, Chord, CAN
– Example: Gnutella, Freenet, Chord, CAN
Peer-to-Peer Architectures
Source: http://static.howstuffworks.com/gif/cloud-computing-1.gif
END part 1
References
[Erl06] Thomas Erl, “Service Oriented Architecture” (Prentice Hall, 2006)