Mobile and Cloud computing and
SE
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
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
Topic selection for this course
• Text mining 72 787 software / software
engineering papers
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"
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?
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."
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
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
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-35HtpgSE 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
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
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
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/
SE in the Cloud
• Version controls
• Defect trackers
• Test environments
• CI servers
• IDEs
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
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
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.
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.
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
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.
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
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).
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.
Uses of CloudSim
• Modeling a federation of clouds
– to federate or inter-network multiple clouds,
– Cloud coordinator monitors and initiates
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
Experiments: Evaluating federated clouds
vs. non-federated (each as separate)
Experiments: Hybrid public (Amazon
EC2) and private cloud
Experiments: Energy consumptions
algorithms and SLA’s
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)
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)
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?
Mobile computing
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,
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.
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.
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?