5.63. Cloud Computing (Mandatory)

5.63. Cloud Computing (Mandatory)

  • Semester: 10th Sem. Credits: 3
  • Hour of this course: Theory: 1 hours; Practice: 2 hours; Laboratory: 2 hours;
  • Syllabus:

    Español

    English
    - htmlonly
  • Prerrequisites:
    • CS370 Big Data (9th Sem) itemize
    Figure 5.63: Connection Map. CS3P2 Cloud Computing

    5.63.1. Justification ↑ Back to top

    Modern computing relies heavily on distributed architectures and cloud-native platforms. This course provides an in-depth exploration of cloud computing services, distributed database concepts, and web platforms. Students will learn to design scalable architectures, understand the implications of distributed data consistency, and evaluate the privacy and security challenges inherent in cloud-based environments.

    5.63.2. Generales Goals ↑ Back to top

    1. Understand the architecture and deployment models of cloud computing.
    2. Design distributed database solutions considering consistency and availability.
    3. Develop applications using modern cloud-based web platforms and frameworks.
    4. Analyze security and privacy implications in distributed and cloud services.

    5.63.3. Contribution to Outcomes ↑ Back to top

    AG-C11) Use of Tools: Applies modern computing tools in problem solving. (Usage)
    AG-C09) Design and Development of Solutions: Designs, implements, and evaluates solutions for complex computing problems. (Usage)

    5.63.4. Content ↑ Back to top

    5.63.4.1. Cloud Architecture and Data Management (12 hours) [Skills AG-C09,AG-C11] ↑ Back to top

    Bibliography: (Marinescu, 2022; Buyya et al., 2013)

    Topics

    1. Web platforms, frameworks, or meta-frameworks
      1. Cloud services
      2. API, Web Components enumerate
      3. Computing services NoSQL Systems
        1. Cloud Hosting
        2. Scalability (e.g., Autoscaling, Clusters)
        3. Cost estimation for services enumerate
        4. Architecture
          1. Monoliths vs Microservices
          2. Micro-frontends
          3. Event-Driven vs RESTful architectures: advantages and disadvantages
          4. Serverless, cloud computing on demand enumerate

          Learning Outcomes

          1. Design and implement a web-based application using a microservice architecture design [Design]
          2. Describe the constraints, such as hosting, services, and scalability, related to web platforms [Describe]
          5.63.4.2. Distributed Databases/Cloud Computing (10 hours) [Skills AG-C09,AG-C11] ↑ Back to top

          Bibliography: (Buyya et al., 2013)

          Topics

          1. Distributed databases/cloud-based systems

          Learning Outcomes

          1. Describe the key components of a distributed DBMS, including distributed data storage, query processing, and transaction management [Describe]
          2. Analyze the tradeoffs between parallel DBMS architectures: shared memory, shared disk, and shared nothing [Analyze]
          3. Describe data replication strategies and weak consistency models in distributed database systems [Describe]
          5.63.4.3. Parallel and Distributed Computing (8 hours) [Skills AG-C09,AG-C11] ↑ Back to top

          Bibliography: (Marinescu, 2022)

          Topics

          1. Safety and liveness:
            1. Race conditions
            2. Dependencies/preconditions
            3. Fault models
            4. Termination enumerate
            5. Programming models:
              1. Actor models
              2. Procedural and reactive models
              3. Synchronous/asynchronous programming models
              4. Data parallelism enumerate
              5. Properties:
                1. Order-based properties:
                  1. Commutativity
                  2. Independence enumerate
                  3. Consistency-based properties:
                    1. Atomicity
                    2. Consensus enumerate enumerate
                    3. Execution control:
                      1. Async await
                      2. Promises
                      3. Threads enumerate
                      4. Communication and coordination:
                        1. Mutexes
                        2. Message-passing
                        3. Shared memory
                        4. Cobegin-coend
                        5. Monitors
                        6. Channels
                        7. Threads
                        8. Guards enumerate
                        9. Futures
                        10. Language support for data parallelism such as forall, loop unrolling, map/reduce
                        11. Effect of memory-consistency models on language semantics and correct code generation
                        12. Representational State Transfer Application Programming Interfaces (REST APIs)
                        13. Technologies and approaches: cloud computing, high performance computing, quantum computing, ubiquitous computing
                        14. Overheads of message-passing
                        15. Granularity of program for efficient exploitation of concurrency
                        16. Concurrency and other programming paradigms (e.g., functional)

                        Learning Outcomes

                        1. Explain why programming languages do not guarantee sequential consistency in the presence of data races and what programmers must do as a result [Explain]
                        2. Implement correct concurrent programs using multiple programming models, such as shared memory, actors, futures, synchronization constructs, and data-parallelism primitives [Implement]
                        3. Use a message-passing model to analyze a communication protocol [Use]
                        4. Use synchronization constructions such as monitor/synchronized methods in a simple program [Use]
                        5. Modeling data dependency using simple programming constructs involving variables, read and write [Implement]
                        6. Modeling control dependency using simple constructs such as selection and iteration [Implement]
                        7. Explain how REST API's integrate applications and automate processes [Explain]
                        8. Explain benefits, constraints and challenges related to distributed and parallel computing [Explain]
                        5.63.4.4. Networked Applications (6 hours) [Skills AG-C09,AG-C11] ↑ Back to top

                        Bibliography: (Marinescu, 2022)

                        Topics

                        1. Distributed application paradigms (e.g., client/server, peer-to-peer, cloud, edge, and fog). See also: Communication , Coordination

                        Learning Outcomes

                        1. Define the principles of naming, addressing, resource location [Define]
                        2. Analyze the needs of specific networked application demands [Analyze]
                        3. Describe the details of one application layer protocol [Describe]
                        4. Implement a simple client-server socket-based application [Implement]
                        5.63.4.5. Algorithms: Application Domains Survey (4 hours) [Skills AG-C09,AG-C11] ↑ Back to top

                        Bibliography: (Marinescu, 2022)

                        Topics

                        1. Survey of common application domains across multicore, reactive, data parallel, cluster, cloud, open distributed systems, and frameworks (with reference to the following table).
                          1. Multicore: Typical Execution agents: Threads. Typical Communication mechanisms: Shared memory, Atomics, locks. Typical Algorithmic domains: Resource management, data processing. Typical Engineering goals: Throughput, latency, energy.
                          2. Reactive: Typical Execution agents: Handlers, threads. Typical Communication mechanisms: I/O Channels. Typical Algorithmic domains: Services, real-time. Typical Engineering goals: Latency.
                          3. Data parallel: Typical Execution agents: GPU, SIMD, accelerators, hybrid. Typical Communication mechanisms: Heterogeneous memory. Typical Algorithmic domains: Linear algebra, graphics, data analysis. Typical Engineering goals: Throughput, energy.
                          4. Cluster: Typical Execution agents: Managed hosts. Typical Communication mechanisms: Sockets, channels. Typical Algorithmic domains: Simulation, data analysis. Typical Engineering goals: Throughput.
                          5. Cloud: Typical Execution agents: Provisioned hosts. Typical Communication mechanisms: Service APIs. Typical Algorithmic domains: Web applications. Typical Engineering goals: Scalability.
                          6. Open distributed: Typical Execution agents: Autonomous hosts. Typical Communication mechanisms: Sockets, Data stores. Typical Algorithmic domains: Fault tolerant data stores and services. Typical Engineering goals: Reliability. enumerate

                          Learning Outcomes

                          1. Extend an event-driven sequential program by establishing a new activity in an event handler (for example a new thread in a GUI action handler) [Design]
                          2. Improve the performance of a sequential component by introducing parallelism and/or distribution [Create]
                          3. Choose among different parallel/distributed designs for components of a given system [Assess]
                          5.63.4.6. Security Mindset and Principles (8 hours) [Skills AG-C09,AG-C11] ↑ Back to top

                          Bibliography: (Marinescu, 2022)

                          Topics

                          1. Applications of a security mindset: web, cloud, and mobile devices System Design , Common Aspects: Platforms, APIs and Constraints , Common Aspects: Platform Languages and Web Programming Patterns .
                          2. Privacy implications of widespread data collection including but not limited to transactional databases, data warehouses, surveillance systems, cloud computing, and artificial intelligence.

                          Learning Outcomes

                          1. Analyze the security risks associated with distributed cloud applications [Usage].
                          2. Evaluate the privacy implications of data storage in multi-tenant cloud environments [Assessment].

                          5.63.5. Bibliography ↑ Back to top

                          Marinescu, D. C. (2022). Cloud Computing: Theory and Practice. Morgan Kaufmann, 3rd edition.

                          Buyya, R., Vecchiola, C., and Selvi, S. T. (2013). Mastering Cloud Computing: Foundations and Applications Programming. Morgan Kaufmann, 1st edition.

                          Spotted a typo, an outdated course, a broken link, or have a suggestion? Let us know.

                          Scan to open on your phone