-
4 Ziele von verteilten Systemen nach Tatenbaum aufzaehlen und erklaeren (auswendig lernen)
- Connecting users and resources
- Provide access to remote resources
- Simplifies collaboration and exchange of information
- Security mechanisms
- Billing and accounting mechanisms
- Transparency
- Hide the fact that resources are physically distributed
- Hide where a resource is located
- Hide the failure and recovery of a resource
- Openness
- System offers functionality according to standard rules that specify how to access this functionality
- Protocols, API, DSL, description
- Scalability
- Allow growth in number of users/resources, geographical extent, number of administrative domains
-
Baumstruktur zu den verschiedenen Architekturen zeichnen und die Ebenen erklaeren (auswendig lernen)
- System vs Software
- In System: Is it Centralized, Decentralized or Hybrid?
- In Decentralized: Vertical or Horizontal?
- In Horizontal: Is it Structured or Unstructured?
-
What is the difference between Software Architecture and System Architecture?
- I would say, that Software Architecture is a part of System Architecture
- System architecture includes elements of both software and hardware and is used to enable design of such a composite system. → More about final working solution, deployment and structure, that guarantees the “qualities” → “Final instantiation of software architecture on real machines”
- Software architecture considers different factors such as Business strategy, human dynamics, quality attributes, design, and IT environment etc. → More about “qualities” itself. → “How various software components are organized and should interact”
-
What is the difference between Centralized, Decentralized and Hybrid?
- Centralized: Client-Server, where the Layers (UI-Application-DB) can be deployed to Client and Server in various forms (e.g Fat Client where Client has both UI and a part of Application or Thin Client where Client has only the UI). Trend: application parts are shifting from client to server. Serveral layers in Server, e.g separate servers for application and databases, or even services that are separately deployed.
- Decentralized: There is no single central point of control. Usualy voting instead. Pure P2P, e.g P2P file sharing systems, or blockchain.
- Hybrid: combination of centralized with decentralized solutions. P2P with usage of centralized server, e.g for maintaining the centralized list of users that have specific files. Security problem: central instance knows the information about all peers. Example: BitTorrent
- Decision:
- Centralized: all decision-making powers and processing capabilities are located within a single central unit or location
- Decentralized: decision-making and processing capabilities are distributed across multiple nodes or units within the system
- Welche zwischen P2P Architekturen gibt es?
-
Structrured P2P: based on deterministic algorithms for structuring, joining and leaving. Examples:
-
Chord system, which is organized logically a as ring, where id defines which data is stored in which node. Entering and leaving has strict policy.
-
Content Addressable Network (CAN): Each node has an associated region in d-dimensional coordinate space. Every data item in CAN will be assigned a unique point in this space, after which it is also clear which node is responsible for that data. Kinda similar to Chord, but imagine it with regions of 2D plane instead of ring. Also strict join and leaving procedures.
-
Unstructured P2P: based on randomized algorithms for structuring.
- Each node maintains a list of neighbors, where each of these neighbors represents a randomly chosen node from the current set of nodes
- Can be easily constructed as a new peer that wants to join the network can
copy existing links of another node and then form its own links over time
- If a peer wants to find a desired piece of data in the network, the query has to be flooded through the network in order to find as many peers as possible that share the data. “Do you have X? Do you know somebody, who has X? Do you know somebody, who know somebody, who has X?…”
- Main disadvantage: queries may not always be resolved
- Popular content is likely to be available at several peers and any peer searching for it, is likely to find the same thing
- If a peer is looking for a rare or not so popular data shared by only a few other peers, then it is highly unlikely that a search will be successful
- Flloding causes a high amount of signaling traffic in the network → much overhead → poor search efficiency
-
Is there any solution for Unstructured P2P disadvantages?
- Superpeers: use special nodes that maintain an index of data items, that are acting as a broker for nodes
- Example: Content Delivery Networks (CDN), i.e. collaboration of nodes that
offer resources to each other
- When a regular peer joins the network, it attaches to multiple the superpeers and remains attached until it leaves the network
- Assumes that superpeers are long lived processes with a high availability