• No results found

Mobile and Cloud computing and SE

N/A
N/A
Protected

Academic year: 2021

Share "Mobile and Cloud computing and SE"

Copied!
48
0
0

Loading.... (view fulltext now)

Full text

(1)

Mobile and Cloud computing and

SE

(2)

This week normal.

Next week is the final week of the

course

• Wed 12-14 Essay presentation and final feedback

– Kylmämaa – Kerkelä – Barthas – Gratzl

– Reijonen???

• Thu 08-10 Group Exercise presentations and feedback

– What are the current findings

– What is the road ahead to finalize the group work

– Instructions. See essay instructions of essay presentation.

• Fri 08-11 Final Exercises

(3)

Deadlines

• Next week the normal essay DL on 13.10. (Tuesday) at noon (12:00) • Group exercise 25.10.2015 (Sunday) 23:59

– If late.

• If <12h then -1 • If <24h then -2 • If <36h then -3 • If <48h then -4

• For each additional 12h late another -1

• Bonus essay 1.11.2015 (Sunday) 23:59

– If late.

• If <12h then -1 • If <24h then -2 • If <36h then -3 • If <48h then -4

(4)

Topic selection for this course

• Text mining 72 787 software / software

engineering papers

(5)

Most probable words of each topic

Given topic name

Web services (n=915)

Mobile and Cloud computing (n=862) Industrial studies (n=1376) Source code (n=988) Test generation (n=923)

1 "web" "mobile" "study" "code" "test" 2 "service" "computing" "case" "source" "generation" 3 "services" "cloud" "empirical" "open" "automatic" 4 "applications" "environments" "industrial" "projects" "coverage" 5 "composition" "agent" "studies" "changes" "automated" 6 "semantic" "middleware" "comparative" "usage" "selection" 7 "discovery" "grid" "use" "documentation" "generating" 8 "composite" "devices" "exploratory" "API" "cases" 9 "QoS" "smart" "pilot" "detecting" "suite" 10 "BPEL" "trust" "importance" "clones" "tests"

(6)

Essay – Discuss one or more of the

following topics

• What possibilities Cloud offers for Software Engineering

• How could CloudSim toolkit be valuable?

• How does the Cloud computing topic link to the Web-services

topic that was already covered in the course?

– Can one success without the other? Are they a same thing?

• Platform heterogeneity of mobile systems. In many cases

developers need to create native apps for several platforms.

– What software engineering techniques could be used to reduce code duplication when deploying for several platforms?

– How should testing be organized? – How could testing be automated?

– What other problems might appear when supporting several heterogeneous platforms?

(7)

Cloud computing – What it is?

• “Cloud computing is a recent advancement

wherein IT infrastructure and applications are

provided as ‘services’ to end-users under a

usage-based payment model.” [1]

• “Cloud computing is a model for enabling

ubiquitous, convenient, on-demand access to

a shared pool of configurable computing

resources.” (Wikipedia)

[1] Calheiros, Rodrigo N., et al. "CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms."

(8)
(9)

SE in the Cloud

• Why –

– To save from the effort of setting up and maintaining

it yourself

– To use the effort saved for something more valuable

• Motivation is similar for SE services in the cloud

as for other services

• Salesforces video to elaborate

(10)
(11)

SE in the Cloud –Version Control

• Version Control or Software Configuration

Management

– Has always been used for sharing and distributing

source code with a group of developers

• There is no shortage of such tools in the cloud

– “45 of the Top Source Code Repository Hosts”

https://blog.profitbricks.com/top-source-code-repository-hosts/

• Many of them of them are Based on GiT

(12)

SE in the Cloud – Management:

Defect tracking, Project management, and

communication, etc

• Defect tracking and Project management have

nearly always been in a centralized storage

• Example tools

– Jira

• https://www.youtube.com/watch?v=xrCJv0fTyR8

– Trello

• https://www.youtube.com/watch?v=xWiunIolf4s

– VersionOne

• https://www.youtube.com/watch?v=YWXiuxSUMS4

– Agilefant

• https://www.youtube.com/watch?v=y6uI-35Htpg

(13)

SE in the Cloud – Test environments

• Virtualized environment (hardware + software) on

demand

• Nokia has 100 000 cores to support software engineers

in software development, testing, and simulation

– See http://www.enterprisetech.com/2013/11/11/nokia-dev-cloud-will-swell-100k-cores/

• For example

– Run all regression tests in all environments (HW+OS+DB) automatically in few minutes

• after which the environment is released to other tasks

– Experiment with tens of machines on which configuration setting results in shortest build time in CI servers

(14)
(15)

SE in the Cloud - CI servers

• Continuous Integration server:

– Combines compiling, building, automated testing and sometimes also deployment

– Using a centralized CI server has recently gained popularity

• Note: Microsoft was using such system already in 1990’s [1]

• Buying CI as a service is also possible

– Cloudbees • https://www.youtube.com/watch?v=QyXGc5Uwwao – Codeship • https://www.youtube.com/watch?v=7oe47iB-jaY – Travis • https://www.youtube.com/watch?v=UF0VZyvzPvE – Semaphore • https://www.youtube.com/watch?v=3Z1RVCSmX00

(16)

SE in the Cloud - IDEs

• Less intuitive than the previous example

• Natural development considering

– CI, version controla and management tools are in the cloud – Document editing is as well (Goodle Docs, Spreadsheets)

• Tools

– Cloud9

• https://www.youtube.com/watch?v=hqzOwM8aXdI

• https://www.youtube.com/watch?v=xsdnwifwr5g

– Nitrous

– Cored - A recent PhD Thesis from TUT

http://www.tut.fi/fi/tietoa-yliopistosta/uutiset-ja- tapahtumat/vaitostiedotteet/uusi-kehitysymparisto-mahdollistaa-reaaliaikaisen-yhteistyon-ohjelmoinnissa-x110797c2

(17)

SE in the Cloud – Humans /

Crowdsourcing

• Crowdsourcing

– “process of obtaining needed services, ideas, or content by soliciting contributions from a large group of people, and especially from an online community, rather than from traditional employees or suppliers”

• Technically speaking no longer a Cloud Computing resource

– Similarities: shared resources (multitenancy), scalability, pay-as-you-go,

• Crowdsourcing platform enables distribution and management of tasks,

• Amazon Mechanical Turk

– Offers often simple, low paid, opinion based (to a degree) and hard to automate tasks, e.g. evaluate quality of scanned images

http://kernelmag.dailydot.com/features/report/4732/my-gruelling-day-as-an-amazon-mechanical-turk/

(18)
(19)

SE in the Cloud

• Version controls

• Defect trackers

• Test environments

• CI servers

• IDEs

(20)

Discuss the possibilities Cloud offers

for Software Engineering

• What do you see as the biggest hit service

• What service could be used for what purpose

– E.g. Cloud IDEs could be good for certain cases

• Summary of previous slides

– Version controls

– Defect trackers

– Test environments

– CI servers

– IDEs

(21)
(22)
(23)

Motivation: CloudSim: a toolkit for modeling and

simulation of cloud computing environments and

evaluation of resource provisioning algorithms

• Cloud computing

– infrastructure, platform, and software as services in a

pay-as-you-go model to consumers.

– Infrastructure as a Service (IaaS), Platform as a

Service (PaaS), and Software as a Service (SaaS)

• Clouds frees the companies from the trivial task

of setting up basic hardware and software

infrastructures

(24)
(25)

Motivation: CloudSim: a toolkit for modeling and

simulation of cloud computing environments and

evaluation of resource provisioning algorithms

• Provisioning (configuring, scheduling and allocation)

policies is extremely challenging because:

– Clouds exhibit varying demands, supply patterns, system

sizes, and resources (hardware, software, network);

– Users have heterogeneous, dynamic, and competing

QoS requirements;

– Applications have varying performance, workload, and

dynamic application scaling requirements.

(26)

Motivation: CloudSim: a toolkit for modeling and

simulation of cloud computing environments and

evaluation of resource provisioning algorithms

• Real infrastructures are difficult to modify -> time

consuming to create all configurations

• Modifications in real environment always pose a risk of

degenerating quality

• Cloud-based environments are not in the control of

developers of application services.

• It is not possible to perform benchmarking experiments

in repeatable, dependable, and scalable environments

using real-world Cloud environments.

(27)

Motivation: CloudSim: a toolkit for modeling and

simulation of cloud computing environments and

evaluation of resource provisioning algorithms

• Simulation tools are the solution!

• CloudSim that allows

– seamless modeling, simulation, and experimentation of emerging Cloud computing infrastructures and application services.

• By using CloudSim,

– Test the performance of a newly developed application service in a controlled and easy to set-up environment.

• The main advantages of using CloudSim for initial

performance testing include:

– time effectiveness: less effort to implement Cloud-based application provisioning test environment

– flexibility and applicability: developers can model and test the

performance of their application services in heterogeneous Cloud environments (Amazon EC2, Microsoft Azure) with little

(28)

Motivation: CloudSim: a toolkit for modeling and

simulation of cloud computing environments and

evaluation of resource provisioning algorithms

• Simuation tools are the solution!

• Cloudsim that allows

– seamless modeling, simulation, and experimentation of emerging Cloud computing infrastructures and application services.

• By using CloudSim,

– Test the performance of a newly developed application service in a controlled and easy to set-up environment.

• The main advantages of using CloudSim for initial

performance testing include:

– time effectiveness: less effort to implement Cloud-based application provisioning test environment

– flexibility and applicability: developers can model and test the

performance of their application services in heterogeneous Cloud environments (Amazon EC2, Microsoft Azure) with little

programming and deployment effort.

(29)
(30)

Uses of CloudSim

• Modeling the cloud

– From Iaas to SaaS

• Modeling the VM allocation

– Sharing of host computing resources (HW) to

virtual machines (VM)

– Sharing of virtual machine computing resources to

application

(31)

Uses of CloudSim

• Modelling the cloud market with two layer design

– IaaS model

• cost per unit of memory, cost per unit of storage, and cost per unit of used bandwidth.

• Cloud customers (SaaS providers) have to pay for the costs of memory and storage when they create and instantiate VMs,

• the costs for network usage are only incurred in the event of data transfer.

– SaaS model.

• Costs at this layer are directly applicable to the task units

(application service requests) that are served by the application services.

• If a Cloud customer provisions a VM without an application service (task unit), then they would only be charged for layer 1 resources (i.e. the costs of memory and storage).

(32)

Uses of CloudSim

• Modelling network behavior

– Network latency affects the overall service satisfaction

experience.

– Network latency that a message can experience on its

path from one host to another or to Cloud Broker is

simulated

– m×n size matrix for all CloudSim entities (hosts)

currently active in the simulation context. An entry

e(ij) in the matrix represents the delay that a message

will undergo when it is being transferred from entity i

to entity j over the network.

(33)

Uses of CloudSim

• Modeling a federation of clouds

– to federate or inter-network multiple clouds,

– Cloud coordinator monitors and initiates

(34)

Uses of CloudSim – Modelling of

• Dynamic workloads

– Cloud applications deploy dynamic workloads

– Some systems are used only during working hours – Deadline driven behavior or people

• Call for tenders, funding applications, recruiting software

– Are all SLAs kept in when running various cloud applications?

• Power consumption of data centers is another cost

factor

• Dynamic entities

– User can join or leave

(35)

Experiments: Evaluating federated clouds

vs. non-federated (each as separate)

(36)

Experiments: Hybrid public (Amazon

EC2) and private cloud

(37)

Experiments: Energy consumptions

algorithms and SLA’s

(38)

Summary CloudSim

• Model

– Cloud from IaaS to SaaS – Cloud market – VM allocation – Network utilization – Power usage – SLAs – Federation – Dynamic workloads

– Dynamic entities (new/removal of data centers, customers etc)

(39)

Discuss

• How could CloudSim toolkit be valuable?

• Summary: CloudSim

– Model

• Cloud from IaaS to SaaS • Cloud market • VM allocation • Network utilization • Power usage • SLAs • Federation • Dynamic workloads

• Dynamic entities (new/removal of data centers, customers etc)

(40)

Essay – Discuss one or more of the

following topics

• What possibilities Cloud offers for Software Engineering

• How could CloudSim toolkit be valuable?

• How does the Cloud computing topic link to the Web-services

topic that was already covered in the course?

– Can one success without the other? Are they a same thing?

• Platform heterogeneity of mobile systems. In many cases

developers need to create native apps for several platforms.

– What software engineering techniques could be used to reduce code duplication when deploying for several platforms?

– How should testing be organized? – How could testing be automated?

– What other problems might appear when supporting several heterogeneous platforms?

(41)

Mobile computing

(42)

Mobile computing

• Extending terms

– Not just mobile (phones) but computers on: cars, eyes

glasses, fridges, watches

– Ubiquitous computing, pervasive computing, Internet of

Things, ambient intelligence,

(43)
(44)

Motivation: Mobile application platform heterogeneity:

Android vs Windows Phone vs iOS vs Firefox OS

• Android, Windows Phone, iOS, were identified

as market leaders for the smartphone market

by Gartner Group.

• Firefox OS, 4, were recognized as the chiefly

representative for a new category of mobile

operating systems.

(45)

Platform heterogeneity – Although

cross platform support exists…

• Java (1.0 desktop 1995, Java ME 2000) has a vision of supporting multiple platforms, “write once, run

everywhere”.

– The idea was that the same byte code created from the source code should be able to run on all sorts of mobile device models. – In practice: “write once, debug everywhere”

• Developers often need to create multiple clients for different platforms

• Applications running HTML 5 (the new Java)

– Facebook dumbed HTML5 in favor of native apps

• Still past work suggests: “native apps if there was going to be interaction between the app and the hardware on the specific device (such as the GPS unit or the camera);

otherwise, the app developed using the cross platform tool was just as good as the native one.”

Grønli, Tor-Morten, et al. "Mobile application platform heterogeneity: Android vs Windows Phone vs iOS vs Firefox OS."

Advanced Information Networking and Applications (AINA), 2014 IEEE 28th International Conference on. IEEE, 2014.

(46)
(47)
(48)

Essay – Discuss one or more of the

following topics

• What possibilities Cloud offers for Software Engineering

• How could CloudSim toolkit be valuable?

• How does the Cloud computing topic link to the Web-services

topic that was already covered in the course?

– Can one success without the other? Are they a same thing?

• Platform heterogeneity of mobile systems. In many cases

developers need to create native apps for several platforms.

– What software engineering techniques could be used to reduce code duplication when deploying for several platforms?

– How should testing be organized? – How could testing be automated?

– What other problems might appear when supporting several heterogeneous platforms?

References

Related documents

Hence, the concept of placemaking is an ‘innovative participatory engagement tool’ (SAPI, 2014), considered important in attaining the aim of this research, centered

For those in the computer security, networking, and telecommunications industries, sponsorship opens the doors to a highly influential community of computer security incident response

1 M.Sc of Health, Safety and Environment Management, Department of Health, Safety and Environment Management, Faculty of Health, Kashan University of Medical Sciences, Kashan, Iran•

These consequences depend on features of the community and on the nature of disturbances (press, pulse or ramping), the type of environmental change (e.g., temperature,

That is, if the possibility of production coordination failure is introduced into the environment, then, given the appropriate structure of imperfect information, there is a

Total phenolic content (TPC) and DPPH (2,2-diphenyl 2,2-diphenyl-1 picrylhydrazyl picrylhydrazyl) scavenging activity were determined in extracts.. Results: The TPC and

Successful Deployment Model and Successful Implementation of Knowledge Management System Training: Standard Factor of Human Resource Variables, Knowledge Process,

Samples were consolidated by hot press (HP) or Spark Plasma Sintering (SPS). HP samples were heated to a temperature of 850 °C and held for 60 minutes, and remained under a