Theme: Software Development for and in the Cloud
Cloud computing is a transformative force for software development today. Choosing systems such as Heroku, Microsoft Azure, or Google EC2 as the execution environment of an application has a profound impact not only on how the application will ultimately be executed, but also on the development and release process, the application architecture, and even on the tools used for development. In this seminar we will approach the topic of cloud computing (and related trends) with a software engineer's hat on. That is, we will discuss topics such as cloud performance, cloud middlware, DevOps, continuous delivery, as well as economic aspects of cloud computing.
|Lecturer:||Prof. Dr. Harald Gall, Prof. Dr. Thomas Fritz, Dr. Philipp Leitner|
|Time and Place:||Kick off meeting: 21.09.2015, 12:00 - 13:00 (2.A.10)
Presentations: 14.12.2015, 08:00 - 18:00 (1.D.06)
(there are no physical meetings between those dates)
|AP (ECTS):||3 points|
|Target Audience:||BSc Informatics and MSc Informatics Students|
|Registration:||Registration for a topic after kick-off meeting & Modulbuchung|
Schedule & Deadlines
- 21.09.2015, 12:00 - 13:00 (2.A.10) - Kickoff meeting (participation mandatory!)
- 27.09.2015 - Topic preferences sent to Philipp Leitner via mail.
- 30.09.2015 - Topics assigned to students (via mail).
- 01.10.2015 - 09.11.2015 - Students work on their topics (individually).
- 09.11.2015 - Submission deadline for first paper revision.
- 20.11.2015 - Submission deadline for paper reviews.
- 21.11.2015 - 13.12.2015 - Students work on their revisions.
- 14.12.2015, 08:00 - 18:00 (1.D.06) - Presentations (full day, participation mandatory).
- 18.12.2015 - Final submission deadline.
For the final grade we will take into account a written report, a presentation of the report, the reviewing of the other participants' work and the active participation in the lectures
The written paper represents the first task of the seminar. It has to be 12-15 pages long (not counting the cover sheet and the table of contents) and in the Lecture Notes in Computer Science format. Both the MS Word ("word.zip") and LaTeX format ("llncs2e.zip") are available here for downloading, even though we strongly suggest anyone to use the LaTeX format. Eventually the report will have to be delivered as PDF.
Please pay attention to the tips in the format template, in particular:
- the correct structure of a scientific research article,
- the right use of figures and tables,
- the correct citation of other works.
For administrative questions please contact Philipp Leitner.
Each student should read and cite at least 7-10 articles in his/her own work.
The ACM Digital Library, IEEE Digital Library, Citeseer and GoogleScholar are very good online catalogues for technical literature search. Both the ACM and the IEEE publications can be downloaded for free from within the Uni Zürich domain. For some important literature, UZH does not have subscriptions (e.g., some Springer journals). Those can sometimes be found for free on the Internet, on Researchgate, or via the ETH library. In the worst case, you can always contact the authors and friendly ask for a preprint copy.
Another good starting point are the proceedings of major conferences and journals, such as the International Conference in Software Engineering (ICSE), the Symposium on the Foundations of Software Engineering (FSE), the IEEE CLOUD conference, the World Wide Web conference, the ACM Symposium on Cloud Computing, etc. The easiest way to browse through papers of all major computer science conferences and journals is via DBLP.
The paper of each student goes through a first review phase, done by one lecturer and 2-3 other students. The goal of this first reviews is to give some useful feedback on the paper, which should then be improved and modified accordingly.
The reviews take the following criteria into account:
- Technical quality (critical analysis of the topic)
- Logical structure (the structuring of the work)
- Presentation (the use of graphics and tables)
- Style (orthography and typos)
- References (significant selection of relevant literature)
Each category is graded on an A to D scale:
- A: An excellent work.
- B: A good work with just a couple of small weaknesses.
- C: An average work with clear weaknesses.
- D: Insufficient work with many substantial weaknesses.
Every participant has to review two other participants' reports. The whole reviewing process (the reports and their subsequent reviews submission) will be done through the EasyChair online platform. An email with all the necessary instructions will be sent after the kick-off meeting.
The delivery website (Easy Chair) can be found here.
On that, you have to create a new user account and then you can easily upload your report with the appropriate menu option.
All the participants will present their work during the second meeting in December.
Every presentation consists of a 20 minutes talk followed by a 10 minutes discussion.
All the participants need to have the presentation in electronic format (MS Powerpoint, Apple Keynote or slides in PDF/PS). We provide both a beamer and a laptop to be used (in case you don't want to use your own laptop).
Attendance to all the presentations is mandatory. Exceptions are made only if a proper, official excuse (e.g. doctor's excuse note) is given.
- Make sure that your talk includes enough background material and motivation so that it can be understood by those who are not specialists in what is being presented.
- Design your slides using large text and diagrams such that they can be read by anyone in the room. The person far away in the corner may be the one with central insights to your work, so make sure he/she gets the message, too.
- Do not place text on the slides that you will speak aloud anyway. The audience will read the text faster than you speak, and continuously experience lags. Slides and spoken word should support each other, and not be redundant representations of each other.
- Modern presentation programs can switch the laptop screen in presenter mode, showing the upcoming slides or presenter notes. Make use of these tools to ensure fluid transitions between slides and a smooth information flow.
- Spend at least one slide to clearly motivate your work, explicitly stating the problem you are addressing.
- Spend at least one slide on related work, such that the audience can place your work in a greater context.
- Do not end with a slide saying nothing but "Thank you!" or "Questions?" Instead, on the last slide, summarize your talk (problem, approach, results). Have this slide stay on the screen during the discussion; people will be able to recall your talk and provide insightful questions and comments.
Cloud Adoption and Usage
How and why are developers and companies choosing to use (or not use) cloud applications for provisioning applications? What does this decision impact, and how?
- J. Cito, P. Leitner, T. Fritz, and H. C. Gall, The Making of Cloud Applications – An Empirical Study on Software Development for the Cloud. Proceedings of the 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC/FSE), New York, NY, USA, 2015.
- Gupta, P., Seetharaman, A., and Raj, J. R. (2013). The usage and adoption of cloud computing by small and medium businesses. International Journal of Information Management, 33(5), 861–874. http://doi.org/10.1016/j.ijinfomgt.2013.07.001
How can developers (and researchers) evaluate the performance of IaaS cloud services? What have been the main observations of existing cloud benchmarking studies?
- Li, Z., OBrien, L., Cai, R., and Zhang, H. (2012). Towards a Taxonomy of Performance Evaluation of Commercial Cloud Services. 2012 IEEE 5th International Conference on Cloud Computing (CLOUD), 344–351. http://doi.org/10.1109/CLOUD.2012.74
- Iosup, A., Ostermann, S., Yigitbasi, M. N., Prodan, R., Fahringer, T., and Epema, D. H. J. (2011). Performance Analysis of Cloud Computing Services for Many-Tasks Scientific Computing. Parallel and Distributed Systems, IEEE Transactions on, 22(6), 931–945. http://doi.org/10.1109/TPDS.2011.66
Selecting the Right Cloud Service(s)
How can developers select the best cloud service, or combination of cloud services, for their applications? What are the primary factors that need to be taken into account?
- Sören Frey, Florian Fittkau, and Wilhelm Hasselbring. 2013. Search-based genetic optimization for deployment and reconfiguration of software in the cloud. In Proceedings of the 2013 International Conference on Software Engineering (ICSE '13). IEEE Press, Piscataway, NJ, USA, 512-521
- Khajeh-Hosseini, A., Greenwood, D., Smith, J. W., and Sommerville, I. (2012). The Cloud Adoption Toolkit: supporting cloud adoption decisions in the enterprise. Software: Practice and Experience, 42(4), 447–465. http://doi.org/10.1002/spe.1072
How do cloud providers determine the price of instances or other types of cloud resources? Is the price always fixed? What are the main factors that cloud users are priced on?
- Benedikt Martens, Marc Walterbusch, and Frank Teuteberg. 2012. Costing of Cloud Computing Services: A Total Cost of Ownership Approach. In Proceedings of the 2012 45th Hawaii International Conference on System Sciences (HICSS '12). IEEE Computer Society, Washington, DC, USA, 1563-1572. DOI=10.1109/HICSS.2012.186 http://dx.doi.org/10.1109/HICSS.2012.186
- Orna Agmon Ben-Yehuda, Muli Ben-Yehuda, Assaf Schuster, and Dan Tsafrir. 2013. Deconstructing Amazon EC2 Spot Instance Pricing. ACM Trans. Econ. Comput. 1, 3, Article 16 (September 2013), 20 pages. DOI=10.1145/2509413.2509416 http://doi.acm.org/10.1145/2509413.2509416
Security and Privacy
What are the main challenges related to security and privacy in the context of cloud computing? What specific security and privacy challenges does cloud computing raise, and what are known successful attacks?
- Zhou, M., Zhang, R., Xie, W., Qian, W., and Zhou, A. (2010). Security and Privacy in Cloud Computing: A Survey. 2010 Sixth International Conference on Semantics Knowledge and Grid (SKG) (pp. 105–112). IEEE. http://doi.org/10.1109/SKG.2010.19
- Thomas Ristenpart, Eran Tromer, Hovav Shacham, and Stefan Savage. 2009. Hey, you, get off of my cloud: exploring information leakage in third-party compute clouds. In Proceedings of the 16th ACM conference on Computer and communications security (CCS '09). ACM, New York, NY, USA, 199-212. DOI=10.1145/1653662.1653687 http://doi.acm.org/10.1145/1653662.1653687
Modelling Cloud Applications
What standards and other proposals are there for modelling the structure and cloud deployment of applications? What do these proposals have in common, and how do they differ?
- Tobias Binz, Uwe Breitenbücher, Oliver Kopp, Frank Leymann (2014) TOSCA: Portable Automated Deployment and Management of Cloud Applications. Advanced Web Services, Part III. pp 527-549, Springer New York
- Goncalves, G., Endo, P., Santos, M., Sadok, D., Kelner, J., Melander, B., and Mangs, J.-E. (2011). CloudML: An Integrated Language for Resource, Service and Request Description for D-Clouds. 2011 IEEE 3rd International Conference on Cloud Computing Technology and Science (CloudCom) (pp. 399–406). IEEE. http://doi.org/10.1109/CloudCom.2011.60
What client-side libraries, frameworks, and middleware systems are there for supporting the development of cloud applications? What functionality do these systems typically provide, and how do they differ?
- Calheiros, R. N., Vecchiola, C., Karunamoorthy, D., and Buyya, R. (2012). The Aneka platform and QoS-driven resource provisioning for elastic applications on hybrid Clouds. Future Generation Computer Systems, 28(6), 861–870. http://doi.org/10.1016/j.future.2011.07.005
- Rostyslav Zabolotnyi, Philipp Leitner, Waldemar Hummer, and Schahram Dustdar. 2015. JCloudScale: Closing the Gap Between IaaS and PaaS. ACM Trans. Internet Technol. 15, 3, Article 10 (July 2015), 20 pages. DOI=10.1145/2792980 http://doi.acm.org/10.1145/2792980
What server-side frameworks, and middleware systems are there for deploying cloud applications? What functionality do these systems typically provide, and how do they differ?
- Chandra Krintz. 2013. The AppScale Cloud Platform: Enabling Portable, Scalable Web Application Deployment. IEEE Internet Computing 17, 2 (March 2013), 72-75. DOI=10.1109/MIC.2013.38 http://dx.doi.org/10.1109/MIC.2013.38
- Pierre, G.; Stratan, C., ConPaaS: A Platform for Hosting Elastic Cloud Applications in Internet Computing, IEEE vol.16, no.5, pp.88-92, Sept.-Oct. 2012 doi: 10.1109/MIC.2012.105
Developer Performance Awareness
How can cloud developers monitor the performance of their applications? What are important metrics to keep track of?
- J. Cito, P. Leitner, H. C. Gall, A. Dadashi, A. Keller, and A. Roth, Runtime Metric Meets Developer – Building Better Cloud Applications Using Feedback, in Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2015), New York, NY, USA, 2015.
- Andre van Hoorn, Jan Waller, and Wilhelm Hasselbring. 2012. Kieker: a framework for application performance monitoring and dynamic software analysis. In Proceedings of the 3rd ACM/SPEC International Conference on Performance Engineering (ICPE '12). ACM, New York, NY, USA, 247-248. DOI=10.1145/2188286.2188326 http://doi.acm.org/10.1145/2188286.2188326
Releasing Changes Fast(er)
How do faster releases, as often associated to cloud computing, impact the quality of software?
- Mantyla, M.V.; Khomh, F.; Adams, B.; Engstrom, E.; Petersen, K., On Rapid Releases and Software Testing.2013 29th IEEE International Conference on Software Maintenance (ICSM), pp.20-29, 22-28 Sept. 2013 doi: 10.1109/ICSM.2013.13
- Feitelson, D. G., Frachtenberg, E., and Beck, K. L. (2013). Development and Deployment at Facebook. IEEE Internet Computing.