Implementation of cloud service models in training of future information technology specialists

. Leading research directions are defined on the basis of self-analysis of the study results on the use of cloud technologies in training by employees of joint research laboratory “Сloud technologies in education” of Kryvyi Rih National University and Institute of Information Technology and Learning Aids of the NAES of Ukraine in 2009-2018: cloud learning technologies, cloud technologies of blended learning, cloud-oriented learning environments, cloud-oriented methodological systems of training, the provision of cloud-based educational services. The ways of implementation SaaS, PaaS, IaaS cloud services models which are appropriate to use in the process of studying the academic disciplines of the cycles of mathematical, natural science and professional and practical training of future specialists in information technology are shown, based on the example of software engineering, computer science and computer engineering. The most significant advantages of using cloud technologies in training of future information technology specialists are definite, namely, the possibility of using modern parallel programming tools as the basis of cloud technologies. Conclusions are drawn; the direction of further research is indicated: designing a cloud-oriented learning environment for future specialists in computer engineering, identifying trends in the development of cloud technologies in the professional training and retraining of information technology specialists, developing a methodology for building the research competencies of future software engineering specialists by using cloud technologies.


Introduction
During the research, the authors studied a problem of using the cloud technologies in education in 2009-2018 and obtained results for the following areas: 1. cloud learning technologies:  the concept of cloud learning technologies was defined, their relationship with learning technologies, ICT, cloud technologies and ICT learning is established [7];  the historical aspects of cloud services development are analysed [6];  the functional identity of the concept of computer and cloud services are proved, the original sources of cloud services are clarified, the continuity of cloud technologies over the past 55 years and their relationship with the development of ICT, in general, are drawn [5];  the transformation of the main application areas of cloud technologies in education is reflected [19], current trends in the cloud technologies development in education are identified [10]; 2. cloud technologies of blended learning:  the application conditions of the blended learning in training of software engineering specialists are determined [33];  the blended learning software tools for training bachelor of software engineering are defined [22], in particular, cloud-based means of presenting educational materials and organizing collaboration between subjects of the educational process [32];  the blended learning organizational conditions for training information technology specialists by using cloud-oriented means are determined [36];  the model of using Google Apps in blended learning of computer science for engineering specialities students is developed [30];  the concept of an augmented reality educational object is introduced, its role in the organization of traditional, mobile and blended learning is defined, a model for organizing access to augmented reality learning objects is proposed, and approaches to their design and implementation are considered [27];  the theoretical and methodological principles of the blended learning of system programming for future specialists in software engineering are developed [41]; 3. cloud-oriented learning environments:  the general components of the cloud-oriented learning environment of computer science disciplines of engineering students are highlighted [17];  the model of using cloud-based ICT tools is constructed [38];  a cloud-based learning environment of a separate division of a higher education institution is designed [29];  the content and criteria for the development of teachers competence of vocational training disciplines in the design of a mobile-oriented learning environment is determined [37];  a cloud-oriented learning environment for future specialists in electromechanical engineering based on the integrated use of mobile Internet devices is proposed [12];  the place of augmented reality in the mobile-oriented environment of professional and practical training is determined [13]; 4. cloud-oriented methodological systems of training:  it is shown that cloud technologies have the greatest influence on the technological component of the methodical system of informatics disciplines, but at the same time their development influences the goals and content of training information technology specialists [31];  the influence of cloud ICT on the methodical system of training for software engineering specialists is considered, the main tasks of organizing learning are determined, which can be solved using cloud ICT, a model of a cloud-oriented methodical system for training software engineering specialists is proposed [28];  the model of using cloud-oriented ICT tools is proposed [35];

the provision of cloud-based educational services:
 the features of the deployment of educational cloud infrastructure using Amazon Web Services are specified [43];  the conditions for appropriate and integrated use of cloud computing services and technologies are analyzed; a system of cloud-oriented learning tools for training information technology specialists is designed [40];  the advantages of using cloud technologies for different categories of participants in the educational process and the model of providing cloud services that are appropriate to use in the process of studying educational disciplines of mathematical cycles, natural science, professional and practical training of future information technology specialists are defined [8];  the didactic potential of the CoCalc environment for studying mathematics and computer science using cloud technologies [9] is determined; the main components of CoCalc that can be used in the development of cloud software and methodical systems and distance learning course are illustrated [23];  the expediency of using the Xcos on Web modelling system as a means of forming competencies in the modelling of technical objects by future bachelors of electromechanics is justified [12; 11];  the principles of use of mobile and cloud services in the professional training of future specialists in mechanical engineering are defined [16];  a system of cloud technologies is designed for teaching the basics of mathematical informatics to future information technology specialists [9];  a cloud-oriented system for teaching computer science informatics disciplines for engineering students is designed [18];  a historical and technological analysis of the experience of using augmented reality tools for the development of interactive training materials is carried out [37]; a methodology is developed for using BlippBuilder web service to develop learning objects of augmented reality [26]; 6. professional training of specialists in software engineering:  the particularities of training masters of software engineering are determined [3];  the use of cloud technologies in the professional training of software engineering specialists will contribute to the fundamentalization, strengthening of an active approach to the study of the disciplines of the professional and practical training cycle, the active use of project methods and contextual learning, elements of problem-based learning and learning in collaboration is defined [25];  the role of neural network modelling in the education content of the special course "Fundamentals of Mathematical Informatics" is determined, it is aimed at bridging the gap between theoretical informatics and its applications: software, system and computer engineering [4; 20; 21];  the main stages of software engineering development are analyzed, the differences in professional training of specialist in software engineering are outlined [2], the fundamental components of training future software engineers and the problem of the rapid obsolescence of the technological content of training are highlighted; it is certain that mastering the fundamentals of computer science (informatics) is the foundation of software engineering training [39].

Purpose of the study
The analysis of educational and professional training programs for specialists in information technologies in Ukraine has been provided with an opportunity to determine the model of cloud services provision that is appropriate to use in the process of studying the educational disciplines of mathematical cycles, natural science, professional and practical training for future information technology specialists: ─ SaaS -"Higher Mathematics", "Theory of Probability and Mathematical Statistics", "Algorithms and Computing Methods", "Discrete Mathematics", "Ecology", "Computer Logic", "Database Organization"; ─ PaaS -"Physics", "Theory of Electric and Magnetic Circuits", "Computer Electronics", "Programming", "Computer Circuitry", "Parallel and Distributed Computing", "Software Engineering"; ─ IaaS -"Computer Architecture", "System Programming", "System Software", "Technology of Computer System Design", "Computer Systems", "Computer Networks", "Computer Systems Information Security".
The list indicates the lowest level of the deployment model that can be used when studying the relevant discipline.An unexplored component of the problem is the implementation of these models in the training of future information technology specialists.

Discussion of findings
For the academic discipline "Higher Mathematics" can be applied one of the Weboriented systems of computer mathematics or a set of ICT tools for teaching higher mathematics (lecture demonstrations, dynamic models, simulators and educational expert systems), which are provided with general Web access.Kateryna I. Slovak [19] theoretically substantiated and experimentally tested feasibility of using mobile mathematical environments in teaching Higher Mathematics -open modular network mobile information and computing software, which provides the user (lecturer, student) with mobile access to information resources of mathematical and educational purposes, creating conditions for the organization of the full cycle of study (storage and presentation of training materials; conducting educational mathematical research; support of individual and collective work; evaluation of educational achievements and etc.) and the integration of classroom and extracurricular work in a continuous learning process.
The defining characteristics of a mobile mathematical environment include: ─ access mobility (on a wide range of computer devices, which provides the ability to use netbooks, tablet computers and smartphones as learning tools); ─ software mobility (the ability to transfer the environment to different software and hardware platforms without significant modification); ─ networking (storage mathematical objects on network servers, which provides an opportunity to unify access to them as in the classroom and outside it); ─ openness (the ability to change the information and computing component of the environment); ─ modularity (the ability to add, replace and exclude components of the environment); ─ object orientation (the possibility of prototyping, creating, modifying, inheriting, encapsulating mathematical objects); ─ the natural use of effective pedagogical technologies for organizing collaboration on educational projects in educational communities.
The main components of the author's mobile mathematical environment "Higher Mathematics" are the computational core (mathematical package) and information support, which contains methodological and additional information materials.The research [19] shows that as a computing core of a mobile mathematical environment advisable to choose Web-SCM Sage, which gives an opportunity: to implement the main types of software in a single environment (lecture demonstrations, dynamic models, simulators, educational expert systems), the use of which is aimed at enhancing the educational (including independent) activities of students; to automate the computational process of solving applied tasks, focusing on building a model and interpreting the results of a computational experiment.Considering that information support, which is a part of the mobile mathematical environment, is subject-oriented, Kateryna І. Slovak demonstrates a class of mobile mathematical environments which have the same computational core and variable information support (Fig. 1).Therefore, the replacement of the methodological component of information support in the author's mobile mathematical environment "Higher Mathematics" provides the opportunity to create new environments from the subjects of the physical and mathematical cycle.
The minimum level of the cloud service delivery model, which is necessary for the implementation of such an environment, is SaaS, by which can be accessed to Web-SCM Sage.PaaS model is required to support the console interface to such an environment.Finally, an independent deployment of the environment can be automated by the virtualization of a computer with an installed operating system and all the components of the environment according to IaaS model (in such way environment developed by Kateryna І. Slovak is distributed via the Internet).In [17] we can find examples of implementation the SaaS model in education by using online integrated programming environments, and see that most Internet IDE has a rather specific character (unlike general-purpose IDEs such as Eclipse): IDE is not just provided service but it is also a tool for users who use other services.
Examples of such services include Coghead, ZohoCreator, BungeeBuilder, MicrosoftPopFly and YahooPipes.All of these services are proprietary, some of them use their own languages, and all services are required to be placed exclusively on their servers.However, there are several services which are based on standard languages and have a more general character.For example, in Heroku uses the Ruby language and it can be used to develop and deploy Ruby applications.Cloud9 provides the ability to create programs in more than 40 programming languages, including C#, C/C++, Clojure, CoffeeScript, ColdFusion, Groovy, Java, Javascript, Lua, OCaml, PHP, Perl, Python, Ruby, Scala.The online IDE is a good tool for engaging in programming: its use gives to the user an opportunity to quickly start coding and get results instantly.Although online IDEs are not full-fledged integrated environments, working with them gives an idea of how the programming environment may look like.The immediate benefits of an online IDE are the lack of the need to install them and instantly deploy a project.In addition, their application opens new opportunities for exchange of educational materials and cooperation [22, p. 264-269].
Thus, when using the online IDE, a software development service is provided according to the SaaS model.At the same time, the online IDEs act as appropriate platforms, accesses to which are provided according to the PaaS model.The last one is important for the training of specialists in information technology because it creates conditions for practising real skills (in particular, the administration of computer systems and networks) in a virtualized environment [14].An outstanding example of such an environment is the image of a virtual machine (Virtual Appliances), which is distributed through the VMware Solution Exchange, the Virtual Education Laboratory (VEL) produced by iNetwork, Inc.This product provides a remote computer service for educational experiments in the information technology industry.The cloud-oriented infrastructure of VEL is built on the VMware platform, and the reliability of its work is provided by several data processing centers.
Due to using VEL, teachers can create their own network configurations as laboratory tasks for students who are given the opportunity to experiment with different operating systems without the need for a physical presence in a computer classroom.VEL gives an opportunity to master the methods of network monitoring, detecting penetrations, developing mobile programs for Android-based smartphones, providing wireless and mobile security, auditing threats, etc. for future computer engineering specialists [44].Consequently, computer services are provided for the IaaS model whilst using virtual machines in the training of specialists in information technology.
The choice of the SaaS model for teaching the basics of databases is determined by the minimum requirements for the software of the academic discipline.Considering that access to relational databases is traditionally provided by queries in the SQL language, the minimally necessary software should provide the ability to execute queries in the SQL language and review execution results, create databases, revise, create and modify table structures, fill and edit data, search for data templates, their import and export, database server administration, etc. via a web interface.
These requirements are fully met by phpMyAdmin [1] and part of the Google cloud platform -Cloud SQL.
Hassan Rajaei and Eman A. Aldakheel [13] give an example of using cloud technologies according to the PaaS model in the process of learning database management systems.Students are given the opportunity to create their own databases, link databases that are located on different servers, and receive data using the SQL language.The authors suggest using IBM Cloud and Windows Azure for this.Thus, there are images of DB2 DBMS among the adjusted virtual machine images from IBM. Students create their own databases by selecting and supplementing a DB2 image.After initial setup of DB2, students can increase security by creating private and public keys and defining different levels of database access (owner, administrator, and user).After that, students can rise to the SaaS level using a Web browser to create queries in SQL via the phpMyAdmin interface or created by themselves.In addition, they can use remote access from their own computers using public and private keys according to the DaaS model.Two of the four main components of the Windows Azure cloud platform (Fig. 2) are associated with databases: Storage services (access to tables, unstructured large data, files and queries) and Azure SQL Database (Azure Search, Document DB, Redis Cache and StorSimple) provide access to non-relational and relational DBMS, respectively.

Fig. 2. Windows Azure features for working with cloud DBMS
Operating system training is one of the traditional applications of IaaS-based virtual machines: a virtualization environment that includes servers, software, and network equipment.To access IaaS, customers must pay the cost of the selected service, which is determined by the consumption of computer resources such as operating time in the operating system, data processing system usage time, disk space, and network traffic.
One of the most developed infrastructures is Amazon Web Services.Amazon's cloud computing infrastructure (Amazon Web Services (AWS)) provides an opportunity to freely choose the operating system, programming model, and configuration of the computing system.AWS services provide simplified management of simple (Amazon SimpleDB) and relational databases (Amazon RDS), queries (Amazon SQS), payments (Amazon FPS), storage (Amazon S3) and data delivery (Amazon CloudFront), virtualization (Amazon EC2), messaging in the cloud (Amazon SNS), between clouds and the organization's private network (Amazon VPC).
The central component of AWS is Amazon EC2 (Amazon Elastic Compute Cloud), which uses Amazon Machine Image -a virtual machine image that contains the operating system (Linux, Windows, etc.) and the software that a cloud service user needs.To use an image in EC2, its image file system is compressed, encrypted, digitally signed, and divided into 10 megabytes parts, which are uploaded to Amazon S3 server for storage.
The "elasticity" of the EC2 service is provided by: ─ payment only during the service activity; ─ taking into account the geographical location of the client and servers.Amazon EC2's elastic computing unit (Elastic Compute Unit (ECU)) is an abstraction of computer resources that corresponds to the 2007 model of the Opteron and Xeon processors with a clock frequency of 1.0-1.2GHz.EC2 uses a Xen virtual machine monitor, each of which runs on a virtual private server.The simplest among the standard types of EC2 virtual machines are the minimum (tiny) configurations of t1.micro and t2.micro, which provide 640 MB and 1 GB of RAM, respectively.
Starting from December 2010, Amazon provides new users with a free resource credit in the amount of 750 hours per month of t2.micro configuration running under Linux or Windows and 30 GB of disk space that can be used throughout the year.After a year of using or running out of credit, the user switches to paid services (payment is made only for the resources actually used).
To monitor the performance of the cloud, Amazon provides the Cloud Watch service, through which users monitor CPU, disk, and network usage.When system resources are low whilst using Amazon's Auto Scaling feature, they are automatically added, which ensures that the virtual machine runs continuously on the cloud.

Fig. 3. AWS Management Console
To get started in EC2, you must refer to the website at http://aws.amazon.com/ec2/and register as a user (Fig. 3).The next step is to download your own operating system image or select one of the free images offered -for example, Amazon Linux AMI (AMI -Amazon Machine Image) 2015.09.1, which includes a set of AWS tools, interpreters of Python, Perl, Ruby, Java, MySQL DBMS, PostgresSQL, etc.
AWS provides secure access to the operating system using public key cryptography over SSH (Fig. 4).As noted by Hassan Rajaei and Eman A. Aldakheel, the course "Operating Systems" is one of the most beneficial courses for future specialists in the field of computer technology, since most cloud service providers offer variety operating system images.Students can perform multiple exercises and programming assignments on the available operating system images.In addition, they can design their own operating system and implement its image in a virtual machine on the cloud.Due to virtualization techniques, no harm will be done if student's version crushes (in contrast to damage a real machine which occurs through the provision of system administration tools to students) [15, p. 10].Thus, the use of virtual machines in the course "Operating Systems" creates conditions for students to acquire professional competencies at a high level.
Students can study the "behaviour" of various time scheduling algorithms in operating systems using any programming language, virtual memory, device management, etc.This is possible only through modeling with the traditional approach.An interesting example of such a virtual machine was developed as part of the "Agapa" system: a module for conducting virtual laboratory work from system programming provides an opportunity to demonstrate step-by-step program execution by the central processor.The interface of the module (Fig. 5) simulates the operation of the programcustomizer.In separate windows of the working area are displayed: the source code of the program in the form of hexadecimal codes and mnemonic commands to the assembler; the contents of the current memory segment in hexadecimal codes and ASCII characters; the contents of the main processor registers; status of flag register; the contents of the software stack.The ability to load the source code of programs into the module significantly expands the possibilities of using the module in conducting virtual laboratory work on the discipline "System Programming".The module is used by the lecturer while working with students to demonstrate the work of examples that contain fragments of programs or algorithmic structures [41, p. 143-144].

Fig. 5. Module for virtual laboratory in system programming
One of the distinct advantages of using cloud technologies in preparing future information technology specialists is the possibility of using modern parallel programming technologies, which serve as the foundation for high performance computing, which, in turn, are the basis of cloud technologies.The use of virtual machines hosted on the cloud in the course "Operating Systems" provides the opportunity to demonstrate both platform-dependent and mobile parallel programming technologies.
Cluster, grid and other high-performance computing systems are traditionally used to solve modeling problems, which are one of the cornerstones of computer science in general and mathematical computer science in particular.
In order to teach students the basic technologies of parallel computing and parallel programming paradigms, it is advisable to use cloud technology tools to perform lab work, in which students must acquire competence in issues such as scalability and performance of computing systems, limitations on parallelism, overhead costs for synchronization, distribution and load balancing of computing modules, etc. Traditionally, the acquisition of competences from parallel programming occurs in labs that are performed on a local cluster or corporate cloud.Amazon and other leading cloud service providers provide high-performance distributed cloud servers which can improve students' understanding of distributed cloud systems.
One of the most efficient parallel programming technologies is the Message Passing Interface (MPI) standard and its implementation in the corresponding programming libraries, which provide the ability to create multi-current programs, use shared memory, etc. through the message passing mechanism.In fig.6 shows the work results of the program example of using MPI in the operating system Amazon Linux AMI with the OpenMPI library installed, which combined the technologies and resources of many other projects (FT-MPI, LA-MPI, LAM / MPI and PACX-MPI) and is used on most supercomputers which are among the TOP500.The use of cloud technologies in teaching parallel programming using the OpenMPI library provides students with the opportunity to test, customize and deploy their own programs on scalable distributed systems in order to identify hidden errors and other problems that arise during parallel programming.In training informatics disciplines of future information technology specialists, it is feasible to use the following cloud service delivery models: "software as a service", "platform as a service", and "infrastructure as a service" based on the informatics technology of virtual machines and pedagogical distance learning technology.2. One of the clear advantages of using cloud technologies in the preparation of future information technology specialists is the possibility of using modern parallel programming tools as the basis of cloud technologies.
Research does not exhaust all aspects of the analyzed problem.The further scientific search for its solution is appropriate in such directions: ─ designing a cloudy oriented learning environment for future computer engineering specialists; ─ trends in the development of cloud technologies in the professional training and retraining of information technology specialists; ─ method of forming research competencies of future specialists in software engineering by means of cloud technologies.

Fig. 4 .
Fig. 4. Access an adjusted operating system image over a secure connection

Fig. 6 .
Fig. 6.An example of a parallel program in the cloud environment