-
1. Characterization
-
1.1 Definition
- Componets located at networks which communicate and coordinate their actions only by PASSING MESSAGES
-
1.2 Characterstics
- concurrency
- lack of global clock
- independent failures
-
1.3 Examples
-
Internet
- network of networks
- TCP/IP
-
Applications
- email
- file sharing
- dns
- web
- original goal: share resources
- web as service
- client/server
- resources
- web pages (HTML)
- audio, video, binary, files
- techonology
- HTML
- URL
- HTTP
- request/response protocol
- stateless
- MIME
- static vs dinamic web
- static: web pages
- web applications
- web 1.0 - web 2.0 - 3.0
- web 1.0
- webmaster
- simple web apps
- web 2.0
- collaboration
- blogs, wikis, tagging
- social networks
- web 3.0
- semantic web
- Intranet
- mobile and ubiquitous computing
-
1.4 Goals of D.S.
-
share resources
-
Resource?
- file
- object
- component
- webcam
-
1.5 Challenges
-
Heterogeneity
-
applications running on different:
- networks
- hardware
- operating systems
- programming languages
- different people
- middleware as a solution
- virtual machine approach
-
Openness
- new functionalities
- interfaces as a contract
-
Security
-
services
- autentication
- autorization
- encription
-
challenges
- denial of service
- access not valid
- mobile code
-
scalability
-
stable while increase
- users
- process
- transactions
-
Failure handling
- detecting failures
- masking failures
- tolerating failures
- recovery from failures
- redundancy
-
concurrency
- n clients accessing a common resource on a server
- n servers working to solve a same problem
-
Transparency
- access
- location
- concurrency
- replication
- failure
- mobility
- performance
- scaling
- Question?:
-
assignment - challenge1
- Analyze some service or application running on internet or intranet and to expose/discuss many things present in an distributed system (model, architecture, protocols, etc). i.e. dns, email, file transfer, facebook, twitter, wikipedia, etc. please select one and discuss on this.
-
1.6 Types of D.S.
-
Distributed Computing Systems
- high-performance computing
-
subgroups
- cluster computing
- grid computing
-
Distributed Information Systems
- main architecture: C/S
- transaction processing systems
-
Enterprise App Integration
- middleware
- RPC
- RMI
- MOM
-
Distributed Embedded Systems
- home systems
- electronic health care systems
- sensor networks
-
Question?
- What is the role of middleware in a Distributed System?
-
2. System Models
-
2.1 Architectures
-
1. Software Architecture
-
4 view
- 4view
- Image from: Software Architecture: An Executive Overview: Paul C. Clements Linda M. Northrop
- Logical (conceptual) View
- Process View
- Development (module) View
- Physical View
-
Distributed Software Architecture
- n components, where is located and
how is the interaction
-
System Architecture
- instantion of components
- C/S, P2P, Hybrid
-
Layers in D.S
- Applications & Services
- Middleware
- to mask heterogeneity and to provide a convenient programming model
- support the model of D.S.
- NOS: Network & OS
- HW
-
Architectural Styles
- layered architectures
- object-based architectures
- data-centered architectures
- event-based architectures
-
System Architectures
-
Centralized
- C/S
- request-reply
- aplication layering
- user or presentation
- processing or business logic
- data
- multitiered architectures
-
decentralized architectures
- P2P
- structured vs unstructured P2P
-
hybrid
- edge-server systems
- collaborative distributed systems
-
Client/Server
- 95% of applications or services in Internet are C/S
- server has resources
- client requests resources from server
- examples: Web Server, Mail Services, DNS
-
Variants
- n tier
- heavy and light clients
- multiple servers
- proxy/cache servers
- mobile code
- mobile agents
- network computers
-
P2P
- BIG PROBLEM: Where are nodes, users, resources?
- BIG PROBLEM: Who runs the queries?
- horizontal distribution
- peers have the resources
-
Structured P2P
- overlay network is built using a determinist procedure.
- Distributed Hash-Table (DHT)
-
Unstructured P2P
- pure or hybrid
- pure: no server
- hybrid: serverless
-
2.2 Fundamental models
-
interaction
- Synchronous vs Asynchronous
- Symmetric vs Asymmetric
- State vs Stateless
- Session vs Sessionless
- Event ordering - clock sync
-
failure
-
Omission failure
- process
- Fail-Stop
- Crash
- communication channel
-
arbitrary failure
- Byzantine failure
- worst possible failure semantic
- timing failure
- secutiry