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