- ES Español

- EN English

5.63. Cloud Computing (Mandatory)
- Semester: 10th Sem. Credits: 3
- Hour of this course: Theory: 1 hours; Practice: 2 hours; Laboratory: 2 hours;
- Syllabus:
- htmlonly

Español

English - Prerrequisites:
- CS370 Big Data (9th Sem) itemize
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
- Understand the architecture and deployment models of cloud computing.
- Design distributed database solutions considering consistency and availability.
- Develop applications using modern cloud-based web platforms and frameworks.
- 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
- Web platforms, frameworks, or meta-frameworks
- Cloud services
- API, Web Components enumerate
- Computing services NoSQL Systems
- Cloud Hosting
- Scalability (e.g., Autoscaling, Clusters)
- Cost estimation for services enumerate
- Architecture
- Monoliths vs Microservices
- Micro-frontends
- Event-Driven vs RESTful architectures: advantages and disadvantages
- Serverless, cloud computing on demand enumerate
Learning Outcomes
- Design and implement a web-based application using a microservice architecture design [Design]
- 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
- Distributed databases/cloud-based systems
Learning Outcomes
- Describe the key components of a distributed DBMS, including distributed data storage, query processing, and transaction management [Describe]
- Analyze the tradeoffs between parallel DBMS architectures: shared memory, shared disk, and shared nothing [Analyze]
- 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
- Safety and liveness:
- Race conditions
- Dependencies/preconditions
- Fault models
- Termination enumerate
- Programming models:
- Actor models
- Procedural and reactive models
- Synchronous/asynchronous programming models
- Data parallelism enumerate
- Properties:
- Order-based properties:
- Commutativity
- Independence enumerate
- Consistency-based properties:
- Atomicity
- Consensus enumerate enumerate
- Execution control:
- Async await
- Promises
- Threads enumerate
- Communication and coordination:
- Mutexes
- Message-passing
- Shared memory
- Cobegin-coend
- Monitors
- Channels
- Threads
- Guards enumerate
- Futures
- Language support for data parallelism such as forall, loop unrolling, map/reduce
- Effect of memory-consistency models on language semantics and correct code generation
- Representational State Transfer Application Programming Interfaces (REST APIs)
- Technologies and approaches: cloud computing, high performance computing, quantum computing, ubiquitous computing
- Overheads of message-passing
- Granularity of program for efficient exploitation of concurrency
- Concurrency and other programming paradigms (e.g., functional)
Learning Outcomes
- Explain why programming languages do not guarantee sequential consistency in the presence of data races and what programmers must do as a result [Explain]
- Implement correct concurrent programs using multiple programming models, such as shared memory, actors, futures, synchronization constructs, and data-parallelism primitives [Implement]
- Use a message-passing model to analyze a communication protocol [Use]
- Use synchronization constructions such as monitor/synchronized methods in a simple program [Use]
- Modeling data dependency using simple programming constructs involving variables, read and write [Implement]
- Modeling control dependency using simple constructs such as selection and iteration [Implement]
- Explain how REST API's integrate applications and automate processes [Explain]
- 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
- Distributed application paradigms (e.g., client/server, peer-to-peer, cloud, edge, and fog). See also: Communication , Coordination
Learning Outcomes
- Define the principles of naming, addressing, resource location [Define]
- Analyze the needs of specific networked application demands [Analyze]
- Describe the details of one application layer protocol [Describe]
- 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
- Survey of common application domains across multicore, reactive, data parallel, cluster, cloud, open distributed systems, and frameworks (with reference to the following table).
- 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.
- Reactive: Typical Execution agents: Handlers, threads. Typical Communication mechanisms: I/O Channels. Typical Algorithmic domains: Services, real-time. Typical Engineering goals: Latency.
- 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.
- Cluster: Typical Execution agents: Managed hosts. Typical Communication mechanisms: Sockets, channels. Typical Algorithmic domains: Simulation, data analysis. Typical Engineering goals: Throughput.
- Cloud: Typical Execution agents: Provisioned hosts. Typical Communication mechanisms: Service APIs. Typical Algorithmic domains: Web applications. Typical Engineering goals: Scalability.
- 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
- 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]
- Improve the performance of a sequential component by introducing parallelism and/or distribution [Create]
- 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
- 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 .
- Privacy implications of widespread data collection including but not limited to transactional databases, data warehouses, surveillance systems, cloud computing, and artificial intelligence.
Learning Outcomes
- Analyze the security risks associated with distributed cloud applications [Usage].
- 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.