meets classroom: Experience Report on Using IBM in a Software Architectures Course Nikita Sokolov Nazim H. Madhavji University of Western Ontario University of Western Ontario London, Ontario, Canada London, Ontario, Canada [email protected] [email protected] ABSTRACT Table 1: SA Courses in Tertiary Education The process of teaching software architectures should go beyond abstract concepts (such as quality attributes, architectural tactics, Software Architecture Courses With project patterns, and methods) to getting students to recognise and imple- Without Project ment them practically. Clearly, for this, project work is essential Cloud platform used Cloud platform not used so as to familiarise students with the key technologies and tools. 5 9 9* We note that "cloud technology", widely popular in industry for * These nine cases were interpreted based on the publicly available data hosting business services, is quite suited to teaching about service- such as course websites and not on actual analysis of the course material oriented architectures and micro-services. However, our analysis which in most cases was not available to us. suggests that the use of cloud technology in software architec- ture (SA) courses is not very strong in tertiary institutions. Given the time constraints in SA courses, the learning curve on both ad- this course, going beyond theoretical concepts to have students ministrative and technical aspects of the underlying infrastructure learn about how to implement these concepts and what the re- should arguably be minimised so as to enable focus on the core sults of such implementation are becomes a major pedagogical features of the course. In this paper, we share our experience on hurdle. Many instructors thus resign into treating this course as a using IBM Bluemix in a half-term course on software architectures conceptual endeavor which, though useful for gaining theoretical at the University of Western Ontario. In particular, we note that architectural knowledge, falls short of actually gaining practical while students need to familiarise themselves with the technology experience with implementing architectures. and the opportunity it provides for supporting end-user services, We, at the University of Western Ontario (a.k.a. Western)(http: the learning curve of Bluemix is gradual enough for students to //www.uwo.ca/), were faced with this same dilemma. However, accomplish creating plausible services in a real world environment. with the emergence of Cloud platforms, such as AWS (https://aws. This paper describes a number of observations and lessons learnt amazon.com/), Cloud Platform (https://cloud.google.com/), from the points of view of both students and instructors. (https://www.heroku.com/), IBM Bluemix (https://www. .com/cloud-computing/bluemix/), and Azure (https: KEYWORDS //azure.microsoft.com/), this has simplified the availability of tech- Software engineering, software architectures course, service-oriented nological support for courses in SA. Especially, where there are architecture, micro-services, , IBM Bluemix, lessons academic initiatives by technology providers, this has opened doors learnt, experience report. to lift architecture courses from theoretic-conceptual to include sizeable implementation. Buyya et al. [3] refer to cloud as "... a type of parallel and dis- 1 INTRODUCTION tributed system consisting of a collection of inter-connected and Software Architecture (SA) courses are prevalent in tertiary ed- virtualized computers that are dynamically provisioned and pre- ucation [1] and the subject is well-entrenched in scientific and sented as one or more unified computing resource(s) based on business community as evidenced by scholarly conferences, e.g. service-level agreements established through negotiation between Working IEEE/IFIP Conference on Software Architecture (http:// the service provider and consumers". The main advantages of the www.softwarearchitectureportal.org/wicsa/) and European Confer- cloud for the consumer include no up-front investment, lowering ence on Software Architecture (https://www.cs.kent.ac.uk/events/ operating cost, high scalability, easy access, reducing business risks 2017/ECSA2017/). Following the definition given by Clements et al. and maintenance expenses [4]. [2], "The software architecture of a system is the set of structures At Western, we embarked on the idea of embracing cloud tech- needed to reason about the system, which comprise software ele- nology in teaching SA. This can be useful both in terms of educating ments, relations among them, and properties of both". Typically, the students on abstract theoretical knowledge and preparing them main themes covered in such a course include: quality attributes, for real-world projects with trained, hands-on skills. However, we architecturally significant requirements, architectural tactics, de- wondered how we compared to other tertiary institutions and what sign patterns, documentation of architectures, development, and we could learn from their experience for possible improvement to assessment. our program for the future years. Upon analysis, we found that, Often, there is a group project for hands-on learning about these generally, the use of cloud technology in SA courses was not very concepts (see Table 1). Without suitable technological support for strong (9 of 23 courses we examined) (see Table 1). CASCON 2017, November 2017, Markham, Canada Nikita Sokolov and Nazim H. Madhavji

This motivated us to describe our experience with a cloud-based the benefits of using the cloud in such computation-heavy fieldsas infrastructure (specifically Bluemix) in a SA course in the hope proteomics research. that this would be of some use to others. Most of our observations Finally, Coccoli et al. [8] describe a course in software engineer- on using cloud as an educational tool are positive, among which ing degree using IBM Bluemix, which enables students to "start are gentle learning curve, technology heterogeneity and simplified implementing sophisticated functionalities for their apps without database maintenance, as described in detail in the paper. We also having to worry about databases, server connections, security is- captured lessons learnt from two iterations of this course. sues, etc., which are ready-to-use services of the platform, and The rest of the paper is organised as follows: Section 2 describes thus transparent to the developer." They show that the use of the related work, including an explanation of our analysis of SA courses cloud reduces the need to spend a significant amount of time on the from notable institutes around the globe, and identifies the gap in described system-provided functions and lets the students focus the literature concerning the use of cloud platforms in SA courses. on such aspects as core application features as part of teamwork, Section 3 gives a description of the Western’s course and project which "is an essential skill for students to acquire; learning and on SA. Section 4 compares three different projects, as illustrative practicing this skill can give a preview of their future team-working examples, from those that were carried out over two iterations of experience." the course. Section 5 discusses some observations and Section 6 describes lessons learnt and recommendations. Finally, Section 7 2.2 State of Practice in Software Architecture concludes the paper. Courses 2 RELATED WORK Table 2 presents the data we gathered by visiting SA (or sim- ilar/related) course-websites from Canadian, US and European First, in Section 2.1, we describe relevant background literature in universities. The universities were shortlisted from the top 200 relation to SA courses in tertiary institutions and the use of cloud listed in the QS World University Rankings by Computer Science computing in an educational setting. This is followed, in Section 2.2, & Information Systems in 2016 (https://www.topuniversities.com/ by our analysis of SA courses in North America and Europe from subject-rankings/2016). We also attempted to gather data from uni- the point of view of using cloud technology. Finally, Section 2.3 versities in Australia and Asia, but didn’t find adequate amount of gives an analysis of the gap in pedagogy that the Western course or satisfactory public information to justify their inclusion in our on SA aims to fill. list. 2.1 Background Literature 1 Typically, the title of the course either highlights architectural aspect (e.g. "Software Design and Architecture" at the University of One of the first courses designed to bridge the gap between low- Waterloo; "Architectures for Software Systems" at Carnegie Mellon level knowledge (algorithms, data structures, operating systems) University Institute for Software Research) or specific approaches and high-level project work is described by Garlan et al. [5]. An used in teaching software architectures (e.g. "Cloud Computing important conclusion by the authors, derived from this experience, and Big Data" at the University of Oxford, "Enterprise and Service- is that "... abstract model must be related to a real example, so that Oriented Architecture" at Ecole Polytechnique Federale de Lau- the student not only learns the abstract view of the architecture, but sanne). Also, some of the courses have generic names (e.g. "Soft- also the characteristics of a concrete instance of that architecture". ware Engineering" at the University of California, Berkeley), but we They insist on the project nature of the course to not only teach included them in the list because they cover architectural concepts the student different architectural idioms, but to be able to envision and use projects to educate students. strengths and weaknesses on practical examples. Among the concepts [2] being taught, we identified four cate- Lago et al. [6] share their experience on conducting two flavors gories from the data gathered: of SA courses: one more technical, emphasizing design and archi- tectural patterns, and another, which is focused on communication (1) Requirements Engineering (presented in some courses as aspects of a SA to a variety of stakeholders. Among the various Architecturally Significant Requirements); lessons learnt during those courses was that, the lack of real stake- (2) Quality Attributes; holders can impede the project because it doesn’t let the students (3) Design Patterns, Architectural Tactics, and Methods; understand how to find proper compromises. (4) Service-Oriented or Micro-services Architecture. The general use and benefits of utilising cloud in education Different courses tend to focus on different aspects (e.g. "De- in such regions as US, UK and Africa is described by Sultan [7]. veloping Services for the Cloud" at Vrije Universiteit Amsterdam Authors give an example of the University of California at Berkeley dedicates several lectures on the topic of Service-Oriented Archi- where "a huge amount of servers (needed for this [educational] tecture), though they generally share the categorised concepts. course) in a matter of few minutes" is facilitated. They also show Moreover, we wanted to find out how many courses agree with the 1Literature review and search for institutions teaching a software architecture course conclusions drawn in [1], i.e., use projects as the main vehicle for was carried out in a traditional manner (i.e., without a Systematic Literature Review ) gaining practical knowledge. As we are interested in the use of the as much as time permitted but not exhaustively. The former was done by examining key journals and conferences over a period of approx. ten years at the time of writing. cloud, we also stratified project work into "cloud" and "non-cloud" A SLR was not considered appropriate because: (i) the search was often inductive as focus. While cloud is an abstract concept where different platforms opposed to prescriptive due to the exploratory nature of the concepts searched for can be used, we also gathered the names of the specific technologies and (ii) the focus of this work is orthogonal to the focused purpose of SLR, which is a study in itself. used in the courses. The aggregated results can be found in Table 3. Cloud meets classroom: Experience Report on Using IBM Bluemix in a Software Architectures Course CASCON 2017, November 2017, Markham, Canada

Table 2: Software Architecture course characteristics

Canada US Europe Total Courses 8 8 7 23 Projects 7 8 3 18 Service-Oriented/Micro-services Architecture 3 2 5 10 Requirements engineering 5 5 2 12 Design patterns/architectural tactics 6 4 3 13 Quality attributes 5 3 1 9 Use of Cloud platforms for projects 3 3 3 9

Table 3: Use of Cloud platforms in courses Design and Analysis course or equivalent. Due to past experience with the benefits of apriori knowing requirements engineering, Cloud platform # Courses using the platform students are strongly advised to revisit the basics of Requirements Engineering. The learning outcomes of the SA course are: IBM Bluemix 1 2 • familiarity with the notion of SA, their importance, and AWS, EC2 3 different types of architectures; • Heroku 1 understanding of the role architectures play in software- Cybera Rapid Access Cloud 1 intensive systems and in system development; • understanding of, and modeling experience with, system and OpenStack 1 architecture qualities; • understanding and use of architectural tactics and patterns 2.3 Analysis in the design of system architectures; • understanding and experience (through a class project) with Although majority of the courses (18 of 23; 78%) use projects to rein- architecture creation and evolution, architecture analysis, force abstract knowledge with real examples, the number of courses and documenting an architecture; with "cloud" platforms is not substantial (9 of 23; 39%). For some • understanding of management and governance issues; universities, the focus of the projects is not on cloud technology. • understanding of architecture and business; For example, in Canada, only 3 of 8 courses state explicitly that they • understanding of newer architectures. perform cloud projects (Western, University of Alberta, and Uni- versity of British Columbia); 1 uses open-source project (University Evaluation of the taught material is done by weekly Q&A ses- of Toronto); and 1 uses mobile project (University of Waterloo). In sions, topic presentations, summaries of assigned readings and addition, we found that only 10 courses mention Service-Oriented project work (described below). One of the main goals of the course Architecture as a part of the curriculum, of which 3 do not have a is to shift the mental focus of the students from low-level design project to support theoretical content. decisions and code to system-level decisions and its drivers, and The literature describes either the problem of designing and to teach how to represent it using high-level notation that form a improving software architecture courses, or mentions the use of system architecture. the cloud in the classroom. However, we didn’t find any literature that describes the experience with utilising a cloud platform to 3.2 Project Description implement architectural concepts in the pedagogical context. In Project work is the cornerstone of the course, where teams create a contrast, the software architecture course at Western bridges this "service-oriented" system to operate in a Cloud environment, to pro- gap by: provisioning a SA course using modern approaches such vide certain services to potential clients. The cloud infrastructure of -oriented architecture; and leveraging IBM Bluemix choice is IBM Bluemix. The central architectural pattern of interest (through an educational initiative) to gain practical experience with is service-oriented architecture (SOA) using the publish-subscribe architectural concepts. model [9]. There were two options for this project; one, the default option 3 SOFTWARE ARCHITECTURE COURSE AT involved stock data, where the conjectured organisation offered WESTERN services to clients that desired portfolio information created out Here, we first describe the overall course description and learning of stock data. The second option involved team-motivated, non- outcomes, project-specific details, followed by a quick overview of standard, third-party data (e.g., online customer reviews of services). IBM Bluemix. Deliverables for the project were the following: • Progress report 1: the presentation and documentation of 3.1 Course Description the list of services offered and corresponding requirements, The SA course at Western is designed for upper undergraduate project plan with Gantt charts specifying personal and group and graduate students with the prerequisite of the Object-Oriented work, preliminary sketch of system architecture and a short CASCON 2017, November 2017, Markham, Canada Nikita Sokolov and Nazim H. Madhavji

presentation on the use of IBM Bluemix in the scope of News. Team members quickly identified the need for interoper- service-oriented architecture. ability as one of the most important quality attribute for commu- • Progress report 2: highlights of any changes made to the nication between Web Browser, as the aggregator of all services, artefacts specified in progress report 1, with the presentation and dedicated services. Team members also decided to make their of elaborated, documented, system architecture, comprised system extensible, so they created a separate service, called Stock of Module view, Connector & Component (C&C) view, Allo- Hub Registration, to address this issue. In addition, such external cation view and a sample of Quality views selected by the API’s as Yahoo, Norton Web Safe, and Reuters were used to enrich team members. Preliminary demo of system operation was the application with additional functionality. As expected by the encouraged. course requirements, team members successfully implemented the • Progress report 3: enhanced progress report 2 with full publish/subscribe pattern to get notified about new services being system demo, refinement of system documentation, and the registered or removed at run-time. addition of implementation details (such as test cases, con- figuration parameters and instruction on how to run the system from scratch). 5 OBSERVATIONS In this section, we describe some of our observations (from the There was no particular constraint on the process model teams conduct of projects, documentation and team presentations) and could use though it seemed to fall in between planned and agile thoughts from some project members through interviews. This methods. should be of particular interest to instructors.

3.3 IBM Bluemix overview (i) Technology heterogeneity. We counted 6 different lan- IBM Bluemix (https://www.ibm.com/cloud-computing/bluemix/) guages / runtimes / frameworks that were used to complete is a cloud platform-as-a-service running on (https: the projects (see Table 4). We note that this diversity is es- //www.cloudfoundry.org/), allowing users to access applications, sential for such courses because with various third-party services and infrastructure. Bluemix supports most modern pro- components that make up a total system today (unlike a gramming languages and runtime systems, such as Java, Node.js, monolingual, in-house built, system from several decades Python, Go, etc. The advantages of Bluemix include hybrid de- ago) the characteristic of diversity is becoming a fundamen- ployment options (choice between public, dedicated, and local); tal feature of system architectures. Also, senior undergrad- instant-on services, including cognitive services and data analytics; uate and graduate students enrolled in such an architec- secure access for on-premises systems from the cloud at network ture course typically have a variety of language and tech- level. nological experience through previous courses, internships, and work experience, and the heterogeneity of languages, 4 PROJECTS AT WESTERN platforms and frameworks in an architecture course is in This section provides an example of three projects conducted during line with their background and expected challenges. Besides, Winter 2016 and 2017. The aggregated data is shown in Table 4. We service-oriented/micro-services architecture, empowered by created this table using the documentation provided by students the cloud capabilities, makes it possible to build isolated ser- during the course. vices that can be written using any To show how Bluemix was used to implement the architecture for as long as they expose their functionality via HTTP (or, more the projects, we give an example architectural view from one of the specifically, REST [10]). projects (in Figure 1). During the planning phase, team members (ii) Simplified database provisioning and maintenance. For decided how to map requirements to services and how to prop- "non-cloud" projects, hosting a database may require ad- erly decouple functionality to introduce isolated services. During ditional infrastructure in the form of virtual machines on the implementation stage, students developed a prototype, which university premises. In contrast, Bluemix provides access to demonstrated the feasibility of the system’s design and challenged different types of databases (e.g., Cloudant, MongoDB, DB2, students to think about how the services should be hosted. Although and PostgreSQL) and facilitates one to focus more on data- Bluemix was the sole option in the course, it became very clear that base use, rather than on setting it up. As one team member without it, hosting that number of services on premises (e.g., using (Project 1) said: "Creating databases, both SQL and NoSQL was virtual machines on university’s server, and developing application very easy. A click of a few buttons and you had the connection as a set of small processes on a local machine) would introduce information ready to go." additional overhead in maintenance. In addition, the teams were (iii) Gentle learning curve. No project team members had prior small enough to discourage such attempts, and students quickly experience with development on a cloud, much less aware- grasped the simplicity of using Bluemix for such tasks. We note ness of Bluemix. However, performing tasks to successfully that, after the initial stage of learning Bluemix, students found such develop projects was not problematic. As team members topics as allocating and provisioning new services so trivial that it (Project 1, Project 2) said: "Creating a web app from the didn’t warrant inclusion in the technical reports. runtime start kits was fairly easy and allowed you to make In short, the architecture in Figure 1 shows how requirements changes and push them using the Cloud Foundry CLI.", "Envi- (Project 1 row in Table 4) led to independent micro-services: Stock ronment setup, getting the standard ’Hello World’ example up Portfolio, Stock Rank, Stock Hub, Stock Performance and Stock and running in minutes, deploying and connecting with the Cloud meets classroom: Experience Report on Using IBM Bluemix in a Software Architectures Course CASCON 2017, November 2017, Markham, Canada

Figure 1: Combined architectural view of project 1

backend, plugging-in the services were a breeze.". While agree- PHP) and boilerplates (ASP .NET Core Cloudant). However, ing with this sentiment, some students expressed a need Bluemix offers such innovative services as Blockchain (https: for certain tutorials (as part of the Bluemix ) in order //developer.ibm.com/blockchain/sandbox/) or cognitive ser- to eliminate the need for an introductory in-class session: vices based on Watson (https://www.ibm.com/cloud-computing/ "There may be room for improvement in the form of a "Wel- bluemix/watson), which are well documented and can be come Tutorial" of sorts. Something similar to how codecademy utilised for class projects to educate students on emerging (https://www.codecademy.com/) runs their tutorials.". topics. (iv) Free academic account. Every project team had access to a free academic account. This single point was an immense 6 LESSONS LEARNT enabler for the use of cloud-based technology in the class courses as it empowered the instructor to create a project on We describe lessons learnt from the two iterations of the projects top of Bluemix. However, students also unequivocally felt and cluster them as student-oriented and instructor-oriented. some limitations: "... you were restricted to limited features of Bluemix: no Virtual Machines, and minimal storage sizes for 6.1 Student-oriented Lessons databases.", "Non-standard port related tasks were not possi- (i) Explore continuous integration options within Bluemix ble such as using web sockets on a separate port for real-time as soon as possible. Only one team used continuous inte- updates". While no projects failed as a result of these limi- gration [11] facilitated in Bluemix. While manual deploy- tations, they can dampen enthusiasm of talented students ment of the code is still possible, students report having attempting to evolve their projects into start-ups or complex problems: "... on occasion the Cloud Foundry CLI would fail research. when deploying updated code. This would turn out to be some (v) Abundance of offered services. Students used only a minis- minor difference between the Node.js runtime in my local envi- cule portion of Bluemix, typically choosing software de- ronment vs. the Bluemix container service, where some part of velopment kits for modern languages/runtimes (Node.js, the code would cause an error in one environment, but not the other." Continuous integration tracks changes from the code CASCON 2017, November 2017, Markham, Canada Nikita Sokolov and Nazim H. Madhavji

Table 4: Aggregated projects data

Project 1 Project 2 Project 3 Number of team members 5 5 4 Display a bar chart that ranks the top 10, 20, and 50 most traded stocks for a given date and stock ex- change; Create a portfolio of Allow users to publish a given stocks and calculat- service to the registry so ing volatility and return; Provide a list of organi- that services are discov- Returns predictions of zations that publish their erable; the prices in the future; services in a registry; Allow users to search Visualize stock data and Provide a list of available for stock related services interactive charts with services offered by a reg- Key requirements and subscribe to services labels and adjustable istered organization; they wish to use on an time ranges; Create new service by an ongoing basis; Provide stock market organization; Allow users to manage data to any subscribers; Search for services in or- a custom portfolio of Provide a list of available ganization’s registry. stocks; services in a single Display line charts repre- registry. senting the performance of a stock for a given pe- riod; Display news articles re- lated to stocks. Number of services published on Bluemix 6 5 4 Micro-services; Micro-services; Shared data pattern; Micro-services; Architectural patterns/tactics Publish-subscribe; Model-view-controller; Model-view-controller; Model-View-Controller. Ping/Echo tactic; Publish-subscribe. Service discovery tactic. Interoperability; Extensi- Interoperability; Avail- Interoperability; Extensi- Quality Attributes bility; Usability. ability; Usability. bility; Scalability. Node.js; Angular.js; Han- Programming languages/runtimes/frameworks used Node.js; PHP. C#; Node.js; Knockout.js. dlebars.js; Knockout.js. Bluemix Continuous In- Deployment type Cloud Foundry CLI Cloud Foundry CLI tegration How system testing was done Ad-hoc testing Test cases Test cases

repository, builds and deploys it to Bluemix. Even if errors (iii) Intra-team communication is vital. Service-Oriented/Micro- occur, it instantly initiates another attempt and requires no services architecture postulates the idea of isolated services additional input from the developer. Moreover, automatic [13]. Such isolation tends to result in the lack of inter-personnel deployment is wide-spread in industry, so learning this can communications within the team, evidenced by the follow- be beneficial for having pre-employment experience. ing team experience: "Each team member owned one or more (ii) Move from data-oriented to service-oriented mindset. micro-services and somewhat worked in a silo, which made a While data is important to be able to work with something lot of the services a "black box" to other team members." We concrete, the goal of the course is to have a good understand- recommend that individual team members should consider ing of certain architectural patterns. For example, one team themselves as masters of sub-domains of the entire system mentioned that: "... we spent too much time focusing on how to while educating other team members on how their services use the default stock data provided, which distracted us from are evolving and how their services contribute towards the the overall goal of building a SOA system with micro-services." overall goal of the system. For this purpose, it is important Use dummy data during initial stages of development and that team management has regular debriefing sessions. abstract away data interactions using repository pattern [12]. Cloud meets classroom: Experience Report on Using IBM Bluemix in a Software Architectures Course CASCON 2017, November 2017, Markham, Canada

6.2 Instructor-oriented Lessons the third. This thrust-forward process was instituted in the (i) Deposit the data for the default project in one or more second iteration of the project, not in the first. We noted popular databases (e.g., MongoDB, PostgreSQL, MySQL) the difference in student thinking, work achieved-to-date, and pre-host them on the cloud so that the students can and even curiosity look-ahead during project presentations. work directly with the database service rather than spending From the instructor’s point of view, this is also a risk manage- project-time on preparing access to the dataset. ment issue to look ahead and provide appropriate feedback (ii) If possible, have at least one student from the previous to the teams to help them along in their projects. year’s projects present his/her experience to the current class at the beginning of the course. We believe that this goes 7 CONCLUSIONS AND FUTURE WORK a long way into "breaking ice" between the new students and In this paper, we investigate the use of Bluemix as a cloud plat- the cloud technology and project details, alleviating fears of form in software architecture (SA) education at the University of the unknown. This also helps to reinforce, among the project Western Ontario. We have shown how during the projects, stu- teams, the theoretical Do’s and Don’ts imparted by the in- dents went through the stage of elicitation of requirements, choos- structor but which may not "stick" until they experience it ing reasonable service separation, implementation of architectural themselves by which time it is too late to avoid the mistakes. features, and delivering services for public use. Although some (iii) In so far as access to the cloud technology (Bluemix in our limitations of free academic Bluemix accounts were noted by the case) is concerned, we recommend contacting the tech- students, we conclude that Bluemix played an essential role in nology provider (IBM in this case) well ahead of time teaching about software architectures by providing easy-to-use to become familiar with any academic initiative. Specifically, services for different languages/runtimes (see "Programming lan- for the first-time instructors, an introductory lecture from guages/runtimes/frameworks used" in Table 4) and databases (see the technology provider would be a great help in getting the Observation (ii) in Section 5), which lead to the development of low- class started. Perhaps, it may be possible to have a "hotline" coupled micro-services. This paper describes some observations set up with the provider to answer any critical issues that and lessons learnt (in Sections 5 and 6, respectively) that are antic- might arise during the project. ipated to be of interest to students and instructors of SA courses. (iv) An important issue is estimating the amount of cloud Though not validated, it would seem that the results described in resources (database space, computation time, elasticity of this paper may also be of interest to Cloud infrastructure developers CPUs needed for the project and whether the academic pro- in general and the Bluemix developers in particular, from the point gram from the provider will adequately satisfy the project of view of improved support for pedagogy in general and SA in needs. In the first iteration of the project, the default project particular. teams experienced acute shortage of data storage as they Our goal for the next iteration of the SA course at Western is tried to store a large volume of stock data in the 2 GB of stor- to target an expanded use of Bluemix. In particular, (i) populate age space provided. While not ideal, we had a work-around data for the default project in several databases on the cloud and with partial datasets which cost teams some time to slice (ii) share project details (what/how/why/when/etc.) from the ex- the given dataset as needed. In the second iteration, some perience gained thus far with new students in the architecture teams knew of this problem at the head of the project, as the course keeping one or more project members from the current year provider configuration had not changed, and so some teams in the loop. A possible option is to continue with the resultant used external storage facilities or even identified third-party systems from the current year, instead of starting from scratch, datasets for their projects. Thus, as external datasets become and turn future architecture projects into evolutionary ones. While publicly more and more available, we anticipate this problem this is more difficult than starting anew, anticipated advantages to lessen. include: (a) learning about Bluemix in the context of supporting (v) With respect to proactive look-ahead of emerging project re- a functional system instead of in theory; (b) stretching system re- sults, our experience from the two iterations of the projects is quirements and application architecture into new directions based that it is better to ask for some mandatory software arte- on the foundations created by existing projects; (c) delving into run- facts and some optional future artefacts at any given time properties of the services implemented (e.g., inter-operability point in time in the project. For example, for Progress of user-created services, performance analysis, service monitoring, Report One, while the focus was on understanding the appli- and others). cation domain, gathering preliminary requirements, identi- fying Quality Attributes (QAs), defining micro-services, and ACKNOWLEDGMENTS familiarizing with Bluemix, there were optional look-ahead We are much indebted to: the project teams for access to their artefacts (such as, identifying Architecturally Significant Re- project information; IBM for the use of Bluemix through their quirements (ASRs), preliminary determination/identification academic initiative; and NSERC for partly funding this research. of tactics to achieve the identified QAs, preliminary key archi- We are also thankful to the reviewers for their excellent feedback tectural patterns, and even overall preliminary architecture which helped to improve this paper. of the envisaged system and how it would satisfy the ASRs) that thrust student thinking forward towards the end of the REFERENCES project. Likewise, between the second Progress Report and [1] Mary Shaw and David Garlan. Software architecture: perspectives on an emerging discipline, volume 1. Prentice Hall Englewood Cliffs, 1996. CASCON 2017, November 2017, Markham, Canada Nikita Sokolov and Nazim H. Madhavji

[2] Paul Clements, Rick Kazman, and Len Bass. Software architecture in practice, 2013. [3] Rajkumar Buyya, Chee Shin Yeo, Srikumar Venugopal, James Broberg, and Ivona Brandic. Cloud computing and emerging it platforms: Vision, hype, and reality for delivering computing as the 5th utility. Future Generation computer systems, 25(6):599–616, 2009. [4] Qi Zhang, Lu Cheng, and Raouf Boutaba. Cloud computing: state-of-the-art and research challenges. Journal of services and applications, 1(1):7–18, 2010. [5] David Garlan, Mary Shaw, Chris Okasaki, Curtis M Scott, and Roy F Swonger. Experience with a course on architectures for software systems. In SEI Conference on Software Engineering Education, pages 23–43. Springer, 1992. [6] Patricia Lago and Hans Van Vliet. Teaching a course on software architecture. In Software Engineering Education & Training, 18th Conference on, pages 35–42. IEEE, 2005. [7] Nabil Sultan. Cloud computing for education: A new dawn? International Journal of Information Management, 30(2):109–116, 2010. [8] Mauro Coccoli, Paolo Maresca, Lidia Stanganelli, and Angela Guercio. An expe- rience of collaboration using a paas for the smarter university model. Journal of Visual Languages & Computing, 31:275–282, 2015. [9] Patrick Th Eugster, Pascal A Felber, Rachid Guerraoui, and Anne-Marie Ker- marrec. The many faces of publish/subscribe. ACM computing surveys (CSUR), 35(2):114–131, 2003. [10] Roy T Fielding and Richard N Taylor. Principled design of the modern web architecture. ACM Transactions on Internet Technology (TOIT), 2(2):115–150, 2002. [11] Martin Fowler and Matthew Foemmel. Continuous integration. Thought-Works) http://www. thoughtworks. com/Continuous Integration. pdf, 122, 2006. [12] Martin Fowler. Patterns of enterprise application architecture. Addison-Wesley Longman Publishing Co., Inc., 2002. [13] Nicola Dragoni, Saverio Giallorenzo, Alberto Lluch Lafuente, Manuel Mazzara, Fabrizio Montesi, Ruslan Mustafin, and Larisa Safina. Microservices: yesterday, today, and tomorrow. arXiv preprint arXiv:1606.04036, 2016.