Cloud Computing

2021/2022
Programme:
Computer Science and Mathematics, Second Cycle
Year:
1 in 2 year
Semester:
first
Kind:
optional
ECTS:
6
Language:
slovenian, english
Lecturers:

Matjaž Branko Jurič

Hours per week – 1. semester:
Lectures
3
Seminar
1.33
Tutorial
0.67
Lab
0
Prerequisites

There are no prerequisites.

Content (Syllabus outline)

Developing applications for the server-side
Definition of cloud computing: what is cloud computing, purpose, role and importance, objectivesChallenges: Infrastructure Management, Application Architecture for cloud, data storage, security, other aspectsFeatures: on demand self-provisioning, elasticity and scalability, access in the form of services, monitoring, sharing of resources (pooling), etc..Service models: IaaS (Infrastructure-as-a-Service), PaaS (Platform-as-a-Service), SaaS (Software-as-a-Service), XaaSDetailed overview of IaaS:
Overview of concepts, architectural perspective
Private cloud, public cloud, hybrid cloud, virtual cloud
Getting to know and compare the most important IaaS technologies
Detailed overview of PaaS:
Overview of concepts, architectural perspective
Changes in development models: data persistence: distributed file systems, unstructured storage, NoSQL database, SQL database in the cloud, Business tier: Web services, REST services, other technology runtime environment
Understanding and comparison of major PaaS technologies: Java EE, Azure, Google App Engine, etc.
Detailed overview of SaaS:
Overview of concepts, architectural perspective
Access Models, Development Concepts
Business models, Cloud Services (location, data delivery, data enrichment, integration services, business intelligence, etc.).
Deployment models
Private, public, hybrid, shared cloud
On premises, remote, hybrid model, overview of providers
Migration to the cloudControl, management, SLA and QoSPractical part:
Deploying, setting up and configuring your own Cloud
Developing applications for the cloud
Technological aspects
Content and business aspects
Development of innovative applications that run in the cloud
Configuring a hybrid cloud
Getting to know the most important public clouds: Amazon, Google App Engine, Azure, OpenStack, etc.
Portability study between cloud solution providers
Development of cloud-specific extensions

Readings

Barrie Sosinsky, Cloud Computing Bible, Wiley, 2011.
George Reese, Cloud Application Architectures: Building Applications and Infrastructure in the Cloud, O'Reilly Media, 2009.
David S. Linthicum, Cloud Computing and SOA Convergence in Your Enterprise, Addison-Wesley Professional, 2009.
John Rhoton, Risto Haukioja, Cloud Computing Architected: Solution Design Handbook, Recursive Press, 2011.
Matjaz B. Juric et al., Do more with SOA Integration, Packt Publishing, 2011.

Objectives and competences

The course objective is to provide an in-depth knowledge and understanding of the scope of cloud computing and all levels of service orientation (XaaS), provide knowledge of infrastructure, platforms, and applications in the form of services, get familiar with design patterns, architectural models and best practices and understand the importance of innovative applications in the cloud.
Competences:
Students will be able to deploy the infrastructure for the operation of private, hybrid and private clouds, to design and implement PaaS platform architecture, design and implement applications that are implemented on PaaS, understand the specifics of cloud architectures and infrastructures. Students will be trained to develop SaaS applications on most important PaaS / IaaS platforms and understand the importance of innovation in the cloud.

Intended learning outcomes

After successful completion of the course a student will be able to:

  • Develop cloud-based software solutions
  • Understand the characteristic public and private clouds
  • Understand the infrastructures and architecture of computer clouds
  • Understand the cloud-native architecture and use it in the development
  • master the development of microservices
  • understand and use patterns for the development of microservices
  • use containers and orchestration of containers
  • capable of developing SaaS applications
Learning and teaching methods

Lectures, computer-based workshops, project work, seminars.

Assessment

Continuing (workshops, midterm exams, project work)
Final (written and oral exam)
grading: 5 (fail), 6-10 (pass) (according to the Statute of UL)

Lecturer's references

Pet najpomembnejših del:
JURIČ, Matjaž B. WSDL and BPEL extensions for event driven architecture. Inf. softw. technol.. [Print ed.], 2010, vol. 52, iss. 10, str. 1023-1043
JURIČ, Matjaž B., ŠAŠA, Ana, BRUMEN, Boštjan, ROZMAN, Ivan. WSDL and UDDI extensions for version support in web services. J. syst. softw.. [Print ed.], 2009, vol. 82, iss. 8, str. 1326-1343
JURIČ, Matjaž B., ŠAŠA, Ana, ROZMAN, Ivan. WS-BPEL extensions for versioning. Inf. softw. technol.. [Print ed.], 2009, vol. 51, iss. 8, str. 1261-1274
JURIČ, Matjaž B., PANT, Kapil. Business process driven SOA using BPMN and BPEL: from business process modeling to orchestration and service oriented architecture. Birmingham, Mumbai: Packt Publishing, cop. 2008. V, 311 str., ilustr. ISBN 978-1-84719-146-5
JURIČ, Matjaž B., MATHEW, Benny, SARANG, Poornachandra G., Business process execution language for web services: an architect and developer's guide to orchestrating web services using BPEL4WS. Birmingham: Packt Publishing, 2006. X, 353 str., ilustr. ISBN 1-904811-81-7.
JURIČ, Matjaž B., LOGANATHAN, Ramesh, SARANG, Poornachandra G., JENNINGS, Frank. SOA approach to integration: XML, web services, ESB, and BPEL in real-world SOA projects. Birmingham, Mumbai: Packt Publishing, cop. 2007. VIII, 366 str., ilustr. ISBN 978-1-904811-17-6