Emerging Computing Paradigms

Course info:

Semester: 7

Elective

ECTS: 6

Hours per week: 3

Professor: T.B.D.

Teaching style: Face to face

Grading: Written Exams (50%), Essays / Project (50%)

Activity Workload
Lectures 26
Tutorials 13
Essays / Project 66
Independent study 45
Course total 150

Learning Results

The course aims to present and argue on: the basic concepts and important capabilities of cloud computing in data science, the understanding of support technologies and required infrastructures, the analysis of individual systems and techniques, the deepening of application planning and development technologies, the demonstration of the most important services offered, and in applying all of the above to areas of real-world problems. Furthermore, this course focuses on emerging technologies which interoperate with the Clouds and data science, such as fog computing and edge computing.

Upon successful completion of this course, each student will be able to:

  • Realise the cloud computing paradigm basic characteristics and capabilities, the keystone technologies on which the Clouds rely on, which are the delivery and service models, etc.
  • Understand and comprehend topics on virtualisation and virtual machines (VMs), how the VMs communicate with the operating systems (OS), how cloud computing utilises VMs, and how VMs integrate into clusters and datacentres.
  • Investigate and apply modern techniques and methodologies for analysing and designing cloud-based systems and infrastructures.
  • Deepen in cloud-based applications architecture, systems, and service provisioning, as well as in the cloud-, fog-, and edge-based mechanisms regarding their distributed management, load balancing, and high availability.
  • Understand and comprehend about middleware/development platforms (cloud platforms and OS) and how they are utilised to construct fine-grained solutions on the Cloud.
  • Evaluate and design fine-grained solutions on integrating a business computing and application infrastructure on the Cloud.
  • Analyse advance concepts of cloud computing, such as: capacity planning, workloads distribution, resource provisioning, load balancing, elasticity, high availability, cloudonomics.
  • Understand and apply keystone techniques on layered application development in the cloud / fog / edge ecosystems.

Skills acquired

  • Retrieve, analyse and synthesise data and information by utilising necessary technologies
  • Decision-Making
  • Work independently / Teamwork
  • Advance of free, creative and inductive thinking
  • Adapt to new situations
  • Work in an interdisciplinary environment
  • Generate new research ideas

Introduction on Cloud Computing: Terminology, basic characteristics, technologies, capabilities of developers and end-users. The NIST model. The cloud cube model. Delivery and Service models. Concepts of IaaS, PaaS and SaaS. Concepts of private, public, community, and hybrid Clouds.

B. Virtualisation – Clusters – Data Centres: The virtual machine concept (definitions, pros and cons, virtualisation types, hypervisors, containers, etc.). Physical and virtual clusters. Provisioning and organisation requirements, datacentre integration, management and toolkits (e.g. VΜware, Xen, KVM, Docker, Kubernetes, MESOS).

C. Middleware software / Cloud platforms: Offered toolkits and capabilities, interfaces with lower levels (e.g. the VM layer), interaction with offered services (e.g. Amazon Web Services, Google Cloud Platform, IBM cloud); well-known implementations and case-studies (e.g. OpenStack, CloudStack, Eucalyptus, OpenNebula, etc.)

D. Architectures – Design Concepts: Reference Architecture (cloud reference model), capacity planning, resource provisioning, auditing & monitoring. Workloads distribution, Load balancing, Resource pooling, Load testing and resource ceilings, Dynamic scalability, Elasticity. Cloud serverless architecture.

E. Programming technologies – Applications in data science: Offered technologies and libraries, integration issues and high-performance computing. Review on scripting languages, development tools, APIs – web services, the microservices paradigm, etc. Distributed file systems, Big Data processing, management, and analytics. Case-studies and practice on Google APIs, and Hadoop/MapReduce, Spark.

F. Fog Computing. Architecture, offered capabilities and benefits (comparing to cloud computing), applications development requirements.

G. Edge Computing. Architecture, devices, communication protocols, programming tools and techniques, computing and batch processing requirements, edge services delivery models.

H. Emerging technologies (SDN networking, NFV paradigm, multicore processing, the role of 5G infrastructures, gpu accelerators) and layered applications development in cloud/ fog / edge computing paradigms.

I. Special Issues. Requirements on cloud security and high availability. Cloud computing economics (cloudonomics). Moving an enterprise to the cloud – (the 6 R’s), Cost Metrics / Pricing Models, Service Quality Metrics / SLAs, Regulatory and Law Topics. Research path – open issues.

  • Thomas Erl, Ricardo Puttini, Zaigham Mahmood, Cloud Computing: Concepts, Technology & Architecture, Prentice Hall, 2013.
  • Dan C. Marinescu, Cloud Computing: Theory and Practice, Morgan Kaufmann, 2013.
  • Rajkumar Buyya, Satish Narayana Srirama, Fog and Edge Computing: Principles and Paradigms, Wiley, 2018.
  • Salah-ddine Krit, Mohamed Elhoseny, Valentina Emilia Balas, Rachid Benlamri, Marius M. Balas, Internet of Everything and Big Data, Major Challenges in Smart Cities, CRC Press, 2019.
  • Kris Jamsa, Cloud Computing, Jones & Bartlett Learning, 2012.
  • Barrie Sosinsky, Cloud Computing Bible, Wiley, 2011.
  • Kai Hwang, Jack Dongarra, and Geoffrey Fox, Distributed and Cloud Computing, Morgan Kaufmann, 2011.
  • Amin Naserpour, R J Cope, and Thomas Erl, Cloud Computing Design Patterns, Prentice Hall, 2015.
  • Michael Kavis, Architecting the Cloud: Design Decisions for Cloud Computing Service Models, Wiley, 2014.
  • San Murugesan and Irena Bojanova (eds), Encyclopedia of Cloud Computing, Wiley, 2016.
  • Ray Rafaels, Cloud Computing: From Beginning to End, CreateSpace Independent Publishing Platform, 2015.
  • Michael Hugos and Derek Hulitzky, Business in the Cloud: What Every Business Needs to Know About Cloud Computing, Wiley, 2010.
  • Robert Elsenpeter, Anthony Velte and Toby Velte, Cloud Computing: A Practical Appoach, McGraw-Hill, 2010.
  • Borko Furht and Armando Escalante, Handbook of Cloud Computing, Springer, 2010.
  • David Sarna, Implementing and Developing Cloud Computing Applications, Auerbach Publications, 2010.
  • Jure Leskovec, Anand Rajaraman and Jeff Ullman, Mining of Massive Datasets, Cambridge University Press, 2012.
  • Jimmy Lin, Chris Dyer and Graeme Hirst, Data-Intensive Text Processing with MapReduce, Morgan and Claypool Publishers, 2010.

Related scientific journals:

  1. Transactions on Cloud Computing, IEEE
  2. Journal of Cloud Computing, Springer
  3. Future Computing and Informatics Journal, Springer
Learning Results - Skills acquired

Learning Results

The course aims to present and argue on: the basic concepts and important capabilities of cloud computing in data science, the understanding of support technologies and required infrastructures, the analysis of individual systems and techniques, the deepening of application planning and development technologies, the demonstration of the most important services offered, and in applying all of the above to areas of real-world problems. Furthermore, this course focuses on emerging technologies which interoperate with the Clouds and data science, such as fog computing and edge computing.

Upon successful completion of this course, each student will be able to:

  • Realise the cloud computing paradigm basic characteristics and capabilities, the keystone technologies on which the Clouds rely on, which are the delivery and service models, etc.
  • Understand and comprehend topics on virtualisation and virtual machines (VMs), how the VMs communicate with the operating systems (OS), how cloud computing utilises VMs, and how VMs integrate into clusters and datacentres.
  • Investigate and apply modern techniques and methodologies for analysing and designing cloud-based systems and infrastructures.
  • Deepen in cloud-based applications architecture, systems, and service provisioning, as well as in the cloud-, fog-, and edge-based mechanisms regarding their distributed management, load balancing, and high availability.
  • Understand and comprehend about middleware/development platforms (cloud platforms and OS) and how they are utilised to construct fine-grained solutions on the Cloud.
  • Evaluate and design fine-grained solutions on integrating a business computing and application infrastructure on the Cloud.
  • Analyse advance concepts of cloud computing, such as: capacity planning, workloads distribution, resource provisioning, load balancing, elasticity, high availability, cloudonomics.
  • Understand and apply keystone techniques on layered application development in the cloud / fog / edge ecosystems.

Skills acquired

  • Retrieve, analyse and synthesise data and information by utilising necessary technologies
  • Decision-Making
  • Work independently / Teamwork
  • Advance of free, creative and inductive thinking
  • Adapt to new situations
  • Work in an interdisciplinary environment
  • Generate new research ideas
Course content

Introduction on Cloud Computing: Terminology, basic characteristics, technologies, capabilities of developers and end-users. The NIST model. The cloud cube model. Delivery and Service models. Concepts of IaaS, PaaS and SaaS. Concepts of private, public, community, and hybrid Clouds.

B. Virtualisation – Clusters – Data Centres: The virtual machine concept (definitions, pros and cons, virtualisation types, hypervisors, containers, etc.). Physical and virtual clusters. Provisioning and organisation requirements, datacentre integration, management and toolkits (e.g. VΜware, Xen, KVM, Docker, Kubernetes, MESOS).

C. Middleware software / Cloud platforms: Offered toolkits and capabilities, interfaces with lower levels (e.g. the VM layer), interaction with offered services (e.g. Amazon Web Services, Google Cloud Platform, IBM cloud); well-known implementations and case-studies (e.g. OpenStack, CloudStack, Eucalyptus, OpenNebula, etc.)

D. Architectures – Design Concepts: Reference Architecture (cloud reference model), capacity planning, resource provisioning, auditing & monitoring. Workloads distribution, Load balancing, Resource pooling, Load testing and resource ceilings, Dynamic scalability, Elasticity. Cloud serverless architecture.

E. Programming technologies – Applications in data science: Offered technologies and libraries, integration issues and high-performance computing. Review on scripting languages, development tools, APIs – web services, the microservices paradigm, etc. Distributed file systems, Big Data processing, management, and analytics. Case-studies and practice on Google APIs, and Hadoop/MapReduce, Spark.

F. Fog Computing. Architecture, offered capabilities and benefits (comparing to cloud computing), applications development requirements.

G. Edge Computing. Architecture, devices, communication protocols, programming tools and techniques, computing and batch processing requirements, edge services delivery models.

H. Emerging technologies (SDN networking, NFV paradigm, multicore processing, the role of 5G infrastructures, gpu accelerators) and layered applications development in cloud/ fog / edge computing paradigms.

I. Special Issues. Requirements on cloud security and high availability. Cloud computing economics (cloudonomics). Moving an enterprise to the cloud – (the 6 R’s), Cost Metrics / Pricing Models, Service Quality Metrics / SLAs, Regulatory and Law Topics. Research path – open issues.

Recommended bibliography
  • Thomas Erl, Ricardo Puttini, Zaigham Mahmood, Cloud Computing: Concepts, Technology & Architecture, Prentice Hall, 2013.
  • Dan C. Marinescu, Cloud Computing: Theory and Practice, Morgan Kaufmann, 2013.
  • Rajkumar Buyya, Satish Narayana Srirama, Fog and Edge Computing: Principles and Paradigms, Wiley, 2018.
  • Salah-ddine Krit, Mohamed Elhoseny, Valentina Emilia Balas, Rachid Benlamri, Marius M. Balas, Internet of Everything and Big Data, Major Challenges in Smart Cities, CRC Press, 2019.
  • Kris Jamsa, Cloud Computing, Jones & Bartlett Learning, 2012.
  • Barrie Sosinsky, Cloud Computing Bible, Wiley, 2011.
  • Kai Hwang, Jack Dongarra, and Geoffrey Fox, Distributed and Cloud Computing, Morgan Kaufmann, 2011.
  • Amin Naserpour, R J Cope, and Thomas Erl, Cloud Computing Design Patterns, Prentice Hall, 2015.
  • Michael Kavis, Architecting the Cloud: Design Decisions for Cloud Computing Service Models, Wiley, 2014.
  • San Murugesan and Irena Bojanova (eds), Encyclopedia of Cloud Computing, Wiley, 2016.
  • Ray Rafaels, Cloud Computing: From Beginning to End, CreateSpace Independent Publishing Platform, 2015.
  • Michael Hugos and Derek Hulitzky, Business in the Cloud: What Every Business Needs to Know About Cloud Computing, Wiley, 2010.
  • Robert Elsenpeter, Anthony Velte and Toby Velte, Cloud Computing: A Practical Appoach, McGraw-Hill, 2010.
  • Borko Furht and Armando Escalante, Handbook of Cloud Computing, Springer, 2010.
  • David Sarna, Implementing and Developing Cloud Computing Applications, Auerbach Publications, 2010.
  • Jure Leskovec, Anand Rajaraman and Jeff Ullman, Mining of Massive Datasets, Cambridge University Press, 2012.
  • Jimmy Lin, Chris Dyer and Graeme Hirst, Data-Intensive Text Processing with MapReduce, Morgan and Claypool Publishers, 2010.

Related scientific journals:

  1. Transactions on Cloud Computing, IEEE
  2. Journal of Cloud Computing, Springer
  3. Future Computing and Informatics Journal, Springer