<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Pia Niemela[</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Migrating Learning Management Systems Towards Microservice Architecture</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Tampere University</institution>
          ,
          <addr-line>Tampere, FINLAND https://</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>0000</year>
      </pub-date>
      <volume>0002</volume>
      <abstract>
        <p>Microservice architecture provides on a set of modular, independent and fault-tolerant services. In recent years, new architectures have evolved with an emergence of recurrent, and e ective architectural patterns essential in maintaining and scaling microservice-based systems. However, in the domain of education there is a lack of open-source, microservice-based systems that are easily con gurable for various teaching, research, and commercial purposes. Preferably, these services should be orchestratable as part of other education-related service compositions as well. In this paper, a study of microservice-based learning management systems is conducted by focusing on two systems that the authors are involved in: WETO and Plussa. We report the current status of these systems through the lens of microservice architecture and draft a proposal for the synthesis of an ideal, decoupled learning management system.</p>
      </abstract>
      <kwd-group>
        <kwd>Learning management system microservice architecture</kwd>
        <kwd>open data</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Learning environments and Learning Management Systems (LMSs) have been
in focus of active development and research. However, the development is led by
multinational companies whose topmost interest is commercial. The cross bet
between non-pro t organizations and commercial actors is far from unseen. In
the domain of scienti c publishing, it has led to the situation where some data
is freely available, and some are behind the paywall of commercial journals. This
is an obstacle from the viewpoint of open data: publications on the other side of
the wall will get less reads and references. Research Data Alliance (RDA) works
against these obstacles and promotes openness and reuse of data [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ].
      </p>
      <p>
        In Finland, opening public data sources started approximately in the
beginning of the 2010s, which triggered such initiatives as Open Data [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and
Linked Data [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]: Open Data fosters citizens' participation by increasing the
transparency of decision-making mechanisms [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], Linked Data fosters the
exploitability of data, by agreeing on meta-data formats in spirit of semantic web
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. In consequence, public organizations were called to open up their data and
provide RESTful web service APIs for its retrieval, i.e., so-called microservices.
This call for openness and microservices was promptly responded by National
      </p>
      <p>
        Land Survey of Finland [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] and Open API Project of Helsinki City, the
Capital of Finland. As desired, opening data catalyzed plenty of new business and
services in the SME sector, built on top of this data.
      </p>
      <p>
        In Finland, education is a public service sustained with tax money, where
the 2019 government programme states: An equal society seeks to provide
opportunities for every citizen to study to their full potential [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]. Thus, educational
resources and opportunity for learning should be as open and as accessible as
possible, and this concerns data gathered during all educational events as well,
including learning analytics data1. Accordingly, the Ministry of Education funds
multiple projects that focus on developing and innovating more accessible
learning environments [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. These projects include Digital Education For All [33,
DEFA], FITech [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], and Smart Learning Environments [6, Alyoppi].
      </p>
      <p>DEFA provides a shortcut to university studies: participants can just take
individual courses, or compile courses as bigger and meaningful entities, with a
bonus of being accepted as a student, dependent on one's success. All the studies
are available as MOOCS, enrolling several thousand participants simultaneously.
An example of this is *Elements of AI, a prize-winner MOOC implemented by
University of Helsinki that introduces arti cial intelligence theory with practical
exercises. FITech network lls the digital skills gap and prepares ICT
professionals for the industry, the initiative is called FITech ICT. It runs for three
years and the target output is 4000{5000 ICT-savvy individuals. Smart
Learning Environments project develops and expands university-speci c e-learning
environments (including automatic validation, visualizations and simulations) for
national inter-university use. As its sub-project, the material converter from
LaTeX to RST, or shortly *LaRST, seeks to nd underlying ultimate data format,
where Latex is upvoted by mathematicians, in particular. The original Latex
content can then be printed as a book or converted to on-line course area with
auto-assessed exercises.</p>
      <p>
        In the development of reusable learning materials and exible infrastructure,
the key to success from the technical point of view are such architectural choices
that maximize exibility and the independence of services. By the same token,
microservices have trended since 2014 [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] with the motivation of decoupled
services, better maintainability, scalability, DevOps support, zeitgeist (*because
everybody else is doing it), fault tolerance, easy technology experimentation,
and delegation of team and software responsibilities [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. In migrating towards
microservices, it is rst essential to identify the core functionalities and then
divide them as services in an appropriate manner. Thus, this study asks:
{ RQ1: Which microservices are the core functionality of an LMS?
{ RQ2: How (micro)service-oriented are the LMSs of Tampere University?
{ RQ3: What would a more decoupled architecture of LMS look like?
      </p>
      <p>Next, we introduce our research context, the LMSs used more in detail,
followed by a short explanation of the method used. Next chapter summarizes</p>
    </sec>
    <sec id="sec-2">
      <title>1 Privacy disclaimer: after anonymization and pseudonymization etc.</title>
      <p>the currently identi ed state-of-art solution, as the target state of our LMS
development. In the Discussions and Conclusions section, we validate our results
and ponder critically di erent architectural choices made and (false or
overemphasized) promises attached to them.
2
2.1</p>
      <sec id="sec-2-1">
        <title>Method and research context</title>
        <sec id="sec-2-1-1">
          <title>Feasibility study</title>
          <p>
            This study follows loosely the method of feasibility study [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]. Essential in the
method is the determination of the viability and bene ts of a proposal without
forgetting to evaluate the problems as well. In the Finnish landscape of di erent
LMSs, the studied systems of Tampere University o ering, WETO and Plussa,
provide both plenty of data to analyze as well as lessons learned, thus, are a
representative sample.
2.2
          </p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Higher education LMSs evolving towards micro-services</title>
          <p>In the evolution from monolithic to microservice architecture, WETO resides in
a more monolithic position than Plussa that can be described largely
serviceoriented. In comparison with more traditional service-oriented architecture,
microservice architecture stands out as being more decoupled, its services can
be deployed independently and scaled horizontally with proper load-balancing
mechanisms.</p>
          <p>Using microservices each learning service can be developed and deployed
independently, which makes the exploitation of common resources easier.
Developed learning materials exemplify such resources, and they should be as
exploitable and open as possible keeping in mind that the funding comes from the
Ministry of Education. The target is that reusable parts of learning materials
and gathered data will be publicly available for all national actors and service
providers mainly in the domain of education and employment services.
2.3</p>
        </sec>
        <sec id="sec-2-1-3">
          <title>WETO</title>
          <p>WETO2 is an LMS developed and used at Tampere University since early 2000's.
Its core features are:
{ Basic content management: course pages may be created/edited using a
browser, e.g., images and les may be uploaded and linked to the pages.
{ Submission management: pages may upload student submissions (e.g.
homework or exam answers).
{ Grade management: pages may comprise student grades, and grading rules
may be de ned hierarchically:</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>2 An acronym derived from Web Teaching Organizer.</title>
      <p>E.g., the top-level page could show overall course grades, its
\Exercise"and \Exam"-sub-pages exercise and exam grades, respectively.
{ Automated grading: submissions may be graded automatically. WETO has a
built-in support for multi-choice questions; programming tasks can be graded
by an external grader.
{ Rights management: pages may de ne permissions for viewing and uploading
submissions, these permissions may be time- and student-speci c.
{ Peer-reviewing: submissions may be peer-reviewed anonymously.
{ Basic discussion forum: pages may have a forum where teachers and students
can discuss learning-related issues. Students remain anonymous.</p>
      <p>WETO is a fairly
traditional Java EE 6 Servlet
application. A WETO instance needs WETO Java EE application
adatsaibnagslee anPdosotngereoSrQmLoremPasotsetr- Authentication CouUrsseerenrirgohlltms ent Grader 1
icgmnorfaeuosSrrtsQmeerLsa.dtiacCootnoauubrrsaasesbeeoddcuaoattntaatbaubaisansesesresssg.locTaobnhnade-l dMataasbtaesre MaAteUnrBoisSaenalurysb(imacHmeciTttgziciservM.sadiitdoLyfinon+slrgougmles) GGraraddeerrms
tain course-speci c information
sduecnhts,asgrtaedaecshearnsd, esnurbomlleisdsiostnus-. daCtaobuarssee 1 Course databases daCtaobuarssee n
Each course database may host
several courses. In principle, the
WETO instance may be con- Fig. 1. WETO architecture.
nected with one or more
heterogeneous external automated
graders. A restriction is that each external grader needs to directly manipulate
WETO's course databases, which implies the need to implement WETO-speci c
middleware for any non-WETO-speci c grader. The architecture is illustrated
in Fig. 1. Evidently, WETO itself is a monolithic application even though the
mechanism of exploiting external graders might resemble microservices.
2.4</p>
      <sec id="sec-3-1">
        <title>Plussa</title>
        <p>
          Plussa is Tampere University's application of A+ of Aalto. Plussa divides into
two parts: a front that takes care of role-based authentication (students, teachers,
admins), and stores grades, the other part is MOOC grader that runs in the
background invisible to the user and manages courses and provides such built-in
exercise types as multi-choice questions [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Teachers interact with the course
area mainly through Git version control system, as illustrated in Fig. 2.
        </p>
        <p>
          The A+ platform manages user authentication and authorization, stores
submissions and grading results (feedback and points), manages course con guration
and setup, provides course monitoring (student progress and statistics) and web
user interfaces for students and teachers. [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
        </p>
        <p>
          One major design principle
of Aalto A+ was to provide an
easily extendable, service-oriented
architecture that could be
enhanced with di erent services, for
example, with new graders for
automated assessment [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
Tampere University Plussa has been
enhanced with such services as
Grading Helper [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ], and
Peerreview component [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] that both Fig. 2. A+ architecture visualized by the lead
are integrated by using the LTI developer J. Kantojarvi [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]
protocol explained in more detail
in Ch. 2.4.
        </p>
        <p>In addition to LTI services, A+ LMS can be extended with graders. The
graders do not require separate authentication, since a student has already been
authenticated by A+ frontend. If the grader runs in a separate server, such as
in Fig. 3, this is signi ed in the exercise con guration with the *submit RST
directive and by giving the URL to the exercise. The exercise itself is represented
inside an iframe element (1), and after completion when the student presses
Grade button (2), grading is done and points are returned to A+, which stores
the results (both feedback and points) in its database. In Fig. 3, grading is done
by an external grader. Other options exist, e.g., grading within temporary docker
containers, or submitting exercises to a separate Kubernetes cluster for grading.</p>
        <p>
          Automatic assessment with
graders has been one of the
principal goals when construct- Front: user
authening A+. The work began with tication/grades, exercise and its
a literature review of di erent cMoOurOseCregpraodsietro:ry grading
auto-assessment systems. In the
rseiovnie/wre,ssuubcmh ifsesaiotunr,esmaasnsuuablmaiss-- student:(1) opens an exercisePlussa: Grader:
sessment options, sandboxing, exercise put in iframe foGrmETmseetrhvoicdePUORSLT
distribution and availability of (2) POST form
dwiithertehnet mLiMndSssetwoefrdeeseixganminigneads gets graded points
decoupled assessment system as
possible [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Synchronous, asynchronous, and static analysis e.g. with</title>
        <p>
          Git and SonarQube In their A+ study, Karavirta et al. divide the
assessment systems in three categories: synchronous, asynchronous, and static [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ];
synchronous meaning assessment during one HTTP transaction, asynchronous
allows later grading with the provided unique submission URL; and static implies
batch assessment of stored code les (use, e.g., in Rubyrik). Static assessment
covers also Git-based assessment. Students submit new les into their own
repositories. In this scenario, the only thing returned to the LMS is the URL of the
Git repository.
        </p>
        <p>
          The industry partners of Tampere University have listed Git skills to be
an important asset, which is con rmed by Haaranen's study, which corroborates
their high demand in the software industry, and the emphasis on their importance
in the literature as well [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. Haaranen was not content with the literature review
only, but also tested Git during a large (ca. 200 students) course and evaluated
the results from both instructor's and learners' point of view. The study proved
that Git served well for exercise submissions and course material dissemination.
        </p>
        <p>
          In the strategy of Tampere University, Git system will be exploited even
further: continuous integration pipeline is set on, unit tests are automatically
run when a submission is pushed to the Gitlab repository and SonarQube static
code analysis is available for a course personnel as well as students for
selfre ection of the quality of their code. Besides auto-testing, the bene t of the
pipeline for continuous integration is that students familiarize themselves with
the DevOps development that is another skill appreciated by employers.
Learning analytics and gami cation More recent studies in Aalto has
concentrated on adding gami ed features and learning analytics to the LMS. Gami
cation includes such new features as earning badges [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], where learning outcome,
however, remained controversial in the executed experiments. In addition to
simple built-in exercise types such as multi-choice questions and sending a le, A+
was supplemented with three systems for new exercise types, Acos, Jsvee, and
Kelmu [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]: Acos is an external server for animated exercise types such as
Parson's puzzles and drag-and-drop tasks; Jsvee provides *a visual representation of
a notional machine and shows how the program state changes when a program is
executed step-by-step[
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]; and Kelmu enables annotated animations. In addition
to external services, more embeddable *active elements are developed [
          <xref ref-type="bibr" rid="ref23 ref24">23, 24</xref>
          ].
        </p>
        <p>
          In addition to engaging students with gami ed user experience, A+ improves
teachers' view of the learning process as a whole. Lehtinen et al. note that
teachers' want to monitor the expected progress of their students, improve allocation
of learning material, identify problematic areas in learning material, and improve
interaction with learners [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. At a minimum, Lehtinen et al. targeted allowing
teachers and researchers to access the data collected during learning events.
Actual learning analytics was available through the service API that provided
information in various formats, and additionally, raw data les were
downloadable. Service API was considered bene cial in improving interoperability with
di erent LMSs, e.g. A+ and Moodle.
        </p>
        <p>
          In LukioPlussa, new graders for math exercises were added as internal graders
such as MathCheck, Geogebra, and Abitti. The ease of adding new graders
demonstrates that the plug-in architecture of A+ provides e ortless extensibility.
In addition, interoperability is ensured by using consistently agreed protocols,
such as proprietary A+ protocol, and widely adopted LTI standard.
A+ protocol The A+ grader service protocol is de ned in the GitHub in
Grader's README [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. The simpli ed sequence diagram in Fig. 3 represents
roughly the process. Notably, the protocol is not RESTful. Essential
information is conveyed in HTTP headers, such as status and points. Moreover, unlike
REST protocol de nes, Create-Read-Delete-Update operations are supported
only partially, from HTTP methods only GET and POST are supported. When
the exercise is launched, a grader gets the submission URL. The URL can be
exploited for asynchronous grading that happens later.
        </p>
        <p>
          LTI protocol LTI is a speci cation developed by the IMS Global Learning
Consortium whose main purpose is to provide a standard way of integrating
learning tools [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. The IMS Global Learning Consortium is an international,
not-for-pro t member organization dedicated to enabling the growth and impact
of learning technology globally. As a protocol, LTI is more restricted than A+
protocol. In the services concerned, LTI is used mainly at the authentication
stage.
        </p>
        <p>
          The LTI de nes a standard way in which LMS can communicate with an
o -platform learning service provider. When the LMS aims at using the service,
it sends a signed POST message with a browser. In signing the request, OAuth
protocol is used, which e.g. enables an application to use e.g. Twitter or Google
for authentication. LTI allows single-sign-on, a student needs to authenticate to
the LMS only { not individually to each service used in a course. Once student
is logged in LMS, external services linked to the platform via LTI will be
informed by the platform that the user has already been authenticated. Thus, a
student does not need to register to yet another service. For example, MATLAB
supports LTI, therefore being integrable to Plussa [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. Other LTI-services done
in Tampere University comprise Grading Helper and Peer-review Platform; they
are integrated using Aalto University's Django LTI login module [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
3
        </p>
        <p>LMS with a decoupled microservice architecture
As discussed in Section 1, one of the main goals of the Smart Learning
Environments project is to nd ways to share university-speci c LMS resources
across di erent universities. Due to the heterogeneity of the systems, and lack
of consensus, convergence towards a single common LMS is unlikely, but with
the setting of a more modest target, the way to advance this objective would be
via migration towards microservice architecture. Highly decoupled and
independent microservices would lower the threshold of sharing them among universities,
although di erent universities would still use their own LMSs. Hence, this
section sketches out a microservice-based LMS oriented towards exible reuse of its
components.
3.1</p>
      </sec>
      <sec id="sec-3-3">
        <title>The major principles of decoupling</title>
        <p>{ Page hosting should be minimally restricted. The LMS will be used via a web
browser, hence the requirement is that the course pages can be hosted by any
type of web server/service, for example, a generic web-content management
system, such as WordPress.
{ For the sake of simplicity, the authentication method should be common for all
services, preferably with a wide, existing support, e.g.:
a token-based method: an authentication server provides the LMS frontend
with a token (e.g. JWT) to be included in each request,
the widely used LTI protocol (see Section 2.4) quali es as well.
{ LMS features should be split into independent (micro)services that assume
minimal mutual knowledge and dependence.
{ Each service should provide both a web API and a reference implementation of
a frontend component (HTML, JavaScript etc.) for accessing the service. The
API should provide facilities to get a response from the service as plain data
(preferably in JSON).</p>
        <p>Many existing LTI-based services send pre-rendered HTML content to the
service consumer. Our proposal is more stringent, as we strongly suggest
that each service provides also a data-only type API to enable the migration
towards microservice architecture.</p>
        <p>A reference frontend component could lower the threshold for incorporating
new services. Preferably, the reference implementation only needs tweaking
its context-speci c con guration parameters, e.g., application ids and service
URLs, to be embeddable as a new service to an HTML page 3.</p>
        <p>
          Fig. 4 sketches our proposal for a microservice-oriented LMS architecture and
answers to rst research question: The main component is the user/rights
manager with a centralized responsibility for maintaining information about course
membership roles and more speci c user rights. When a user accesses the LMS
through a view provided by the host, the system authenticates the user, if
necessary. The authenticated user receives an authorization token that will then
be attached to all LMS service requests. Each service uses the token to verify
the identity of the user and to consult the user/rights manager about the user's
roles/rights. This solution is similar to the one proposed by Baier and Allen [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
Alternatively, roles and rights could be attached to the token, but this fairly
common practice may result in invalidated tokens due to outdated rights [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>Furthermore, the sketch suggests grade management, discussion forums, user
activity logs/analytics, and automatically graded exercises as the core
functionalities of the LMS. For decoupling, each service should maintain its own database.
In service access, a request typically entails course and user ids that are unique,
which is enforced by the authentication and user/rights managers. The sketch
also depicts nested services: a service itself might employ sub-services; e.g.,
automated grading may use separate grader services.</p>
        <p>
          Optimistically, this sketch implies independent services that are capable of
performing their tasks without employing any other services. Inter-service
communication would mandate the implementation of e.g. an asynchronous message
queue: a typical solution for service interoperability via HTTP with an inherent
decoupling [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>3 E.g. assuming that Cross-Origin Resource Sharing etc. have been properly con gured</title>
      <p>to allow AJAX calls to the services.</p>
      <sec id="sec-4-1">
        <title>Discussion and Conclusions</title>
        <p>This paper reviews the
migration of LMSs from monolithic
taorwchairtdecstmuroer.e mTaicmropseerrevicUen-bivaesre-d Generic HTML host Gra1der
sairtey LtaMkeSns, Was EsTtaOrtainngd Pplouinsstas,, Authentication Rteockeeinve (H[ATcMceMLss/aetselersisea/rlevticce.?s) GGrramaddeerrs
and are then analyzed and using AJAX]
synthesized into one modern Token Token Automated
tmhiecrroesseurvltiscea-breasseudmLmMaSri.zeNdexats, mGarnaadgeer Token Token Token grading
trieosnpso.nsResQt1o: thTe hreesecaorcrhe qumesi-- Database Rights? Umsearn/raiggehrts Rights? Database
croservices of an LMS
Autuhseenrtiacantdionc,ourmseanaingfeomrmenattionof, sFeorrvuicme Rights? Database Rights? Asnearlvyitciecs
grading, and providing reports Database
and analysis. Database</p>
        <sec id="sec-4-1-1">
          <title>RQ2: Current microser</title>
          <p>vice provision of Tampere Fig. 4. A decoupled microservice architecture.</p>
        </sec>
        <sec id="sec-4-1-2">
          <title>University LMSs In the con</title>
          <p>tinuum from monolith to
microservice architecture, WETO is more to the left, but taking steps to
serviceoriented direction. Plussa mainly waits for an agreed common exercise format
and the anticipated outcome of LARS project, i.e., the Latex to RST converter.
In addition, teachers' user experience is defective in many respects, leaving a lot
of space for improvement.</p>
        </sec>
        <sec id="sec-4-1-3">
          <title>RQ3: The decoupled target architecture of LMS In particular, easy</title>
          <p>
            authentication services are of paramount importance. In general, LMS should
provide open, reusable and standard services that can function independently.
Standard solutions are promoted, such as LTI for authentication and grading.
Other standard solutions include: Sharable Content Object Reference Model
(SCORM), a set of speci cations for creating and sharing e-learning [
            <xref ref-type="bibr" rid="ref34">34</xref>
            ], xAPI
as learning analytics metadata [
            <xref ref-type="bibr" rid="ref19">19</xref>
            ], and *Learning analytics interoperability [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ].
          </p>
          <p>The bene ts of microservice architecture become more apparent when the
target is to co-operate between multiple universities, such as in Smart Learning
Environments project, i.e., when the complexity of a system increases. Then,
micro-architecture may facilitate better coordination, re-usability of resources,
such as learning material, and orchestration of di erent services represented in
Fig. 4. However, we want to highlight that there are problems ahead and too
much unfounded hype: microservice architecture will provide neither a single
point of failure nor easy logging, and service orchestration is, in fact, quite
complex. Cooperation with many players is not supposed to be smooth, e.g.,
sudden and poorly informed changes may cause discontinuities in service provision.
Thus, realization of this vision requires a lot of work, good will, and co-operation.</p>
          <p>P.Niemela et al.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Aalto University:
          <article-title>A+ grader service protocols (</article-title>
          <year>2016</year>
          ), https://github.com/AaltoLeTech/a-plus/blob/master/doc/GRADERS.md
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Aalto University: A+
          <string-name>
            <surname>LMS</surname>
          </string-name>
          (
          <year>2018</year>
          ), https://apluslms.github.io/architecture/
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Aalto University: Django LTI login (
          <year>2019</year>
          ), https://github.com/AaltoLeTech/django-lti-login
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Baier</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brock</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Authorization is hard! implementing authorization in web applications and apis (2018), presentation in NDC London 2018</article-title>
          . Video available at https://vimeo.com/254635640
          <source>(accessed on 31.10</source>
          .
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bowen</surname>
            ,
            <given-names>D.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kreuter</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spring</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cofta-Woerpel</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Linnan</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weiner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bakken</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaplan</surname>
            ,
            <given-names>C.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Squiers</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fabrizio</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , et al.:
          <article-title>How we design feasibility studies</article-title>
          .
          <source>American journal of preventive medicine 36(5)</source>
          ,
          <volume>452</volume>
          {
          <fpage>457</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. eOppimiskeskus:
          <article-title>Alykkaat oppimisymparistot ja niiden sisallontuotanto ( AlyOppi) -hanke (</article-title>
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Finnish Institute of Technology:
          <article-title>Upgrade your knowledge and study ICT courses with FITech! (</article-title>
          <year>2019</year>
          ), https:// tech.io/en/upgrade-your
          <article-title>-knowledge-and-study-ictcourses-with- tech/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. Gri ths, D.,
          <string-name>
            <surname>Hoel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cooper</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Learning analytics interoperability: Requirements, speci cations and adoption</article-title>
          .
          <source>Public Deliverable D</source>
          <volume>7</volume>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Haaranen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ihantola</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hakulinen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Korhonen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>How (not) to introduce badges to online exercises</article-title>
          .
          <source>In: Proceedings of the 45th ACM technical symposium on Computer science education</source>
          . pp.
          <volume>33</volume>
          {
          <fpage>38</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Haaranen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehtinen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Teaching Git on the side: Version control system as a course platform</article-title>
          .
          <source>In: Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education</source>
          . pp.
          <volume>87</volume>
          {
          <fpage>92</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Heino</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Peer-review Platform</surname>
          </string-name>
          (
          <year>2018</year>
          ), https://github.com/piehei/prplatform
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Hyvonen, E.,
          <string-name>
            <surname>Tuominen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alonen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Makela, E.:
          <article-title>Linked Data Finland: A 7- star model and platform for publishing and re-using linked datasets</article-title>
          .
          <source>In: European Semantic Web Conference</source>
          . pp.
          <volume>226</volume>
          {
          <fpage>230</fpage>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ihantola</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ahoniemi</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karavirta</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          , Seppala, O.:
          <article-title>Review of recent systems for automatic assessment of programming assignments</article-title>
          .
          <source>In: Proceedings of the 10th Koli calling international conference on computing education research</source>
          . pp.
          <volume>86</volume>
          {
          <fpage>93</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <source>IMS Global Learning Consortium: LTI Message</source>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Jaakkola</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , Makinen, T., Etelaaho, A.:
          <article-title>Open data: opportunities and challenges</article-title>
          .
          <source>In: Proceedings of the 15th International Conference on Computer Systems and Technologies</source>
          . pp.
          <volume>25</volume>
          {
          <fpage>39</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. Kantojarvi, J.:
          <article-title>Architecture of A+ LMS (</article-title>
          <year>2018</year>
          ), https://apluslms.github.io/architecture/presentation//step-4
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Karavirta</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ihantola</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koskinen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Service-oriented approach to improve interoperability of e-learning systems</article-title>
          .
          <source>In: 2013 IEEE 13th International Conference on Advanced Learning Technologies</source>
          . pp.
          <volume>341</volume>
          {
          <fpage>345</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Lehtinen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , et al.:
          <article-title>Bootstrapping learning analytics case: Aalto online learning (</article-title>
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Lim</surname>
            ,
            <given-names>K.C.</given-names>
          </string-name>
          :
          <article-title>Using xAPI and learning analytics in education</article-title>
          .
          <source>In: Elearning Forum Asia</source>
          . pp.
          <volume>13</volume>
          {
          <issue>15</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. MathWorks: MATLAB Grader (
          <year>2019</year>
          ), https://se.mathworks.com/products/matlabgrader.html
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <article-title>Ministry of Education: The Key Projects (</article-title>
          <year>2019</year>
          ), https://www.aalto. /en/aaltouniversity/the-key
          <article-title>-projects-funded-by-the-ministry-of-education-and-culture</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <article-title>National Land Survey of Finland: Maps and Spatial Data (</article-title>
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Piitulainen</surname>
          </string-name>
          , R.: A+
          <string-name>
            <surname>Active Element</surname>
          </string-name>
          (
          <year>2017</year>
          ), https://apluslms.github.io/events/2017- 1st
          <article-title>-a-plus-con/active element</article-title>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Piitulainen</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A+ RST tools (</article-title>
          <year>2017</year>
          ), https://version.aalto. /gitlab/piitulr1/aplusrst-tools-ae
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Riekkinen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , et al.:
          <article-title>Integrating Stratum and A+ functionalities in Moodle: Architecture and evaluation (</article-title>
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. Sirkia,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Haaranen</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Improving online learning activity interoperability with ACOS server</article-title>
          .
          <source>Software: Practice and Experience</source>
          <volume>47</volume>
          (
          <issue>11</issue>
          ),
          <volume>1657</volume>
          {
          <fpage>1676</fpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27. Sirkia,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Sorva</surname>
          </string-name>
          , J.:
          <article-title>How do students use program visualizations within an interactive ebook?</article-title>
          <source>In: Proceedings of the eleventh annual International Conference on International Computing Education Research</source>
          . pp.
          <volume>179</volume>
          {
          <fpage>188</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Soldani</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tamburri</surname>
            ,
            <given-names>D.A.</given-names>
          </string-name>
          , Van Den Heuvel, W.J.:
          <article-title>The pains and gains of microservices: A systematic grey literature review</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>146</volume>
          ,
          <issue>215</issue>
          {
          <fpage>232</fpage>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Taibi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenarduzzi</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pahl</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Processes, motivations, and issues for migrating to microservices architectures: An empirical investigation</article-title>
          .
          <source>IEEE Cloud Computing</source>
          <volume>4</volume>
          (
          <issue>5</issue>
          ),
          <volume>22</volume>
          {
          <fpage>32</fpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <article-title>The Government of Finland: Programme of Prime Minister Antti Rinne's Government: INCLUSIVE AND COMPETENT FINLAND { a socially, economically and ecologically sustainable society (</article-title>
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>de la Torre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wagner</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rousos</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          : .NET Microservices:
          <article-title>Architecture for Containerized</article-title>
          .
          <source>NET Applications</source>
          . Microsoft
          <string-name>
            <surname>Corporation</surname>
          </string-name>
          (
          <year>2018</year>
          ), https://aka.ms/microservicesebook.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Treloar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The Research Data Alliance: globally co-ordinated action against barriers to data publishing and sharing</article-title>
          .
          <source>Learned Publishing</source>
          <volume>27</volume>
          (
          <issue>5</issue>
          ),
          <source>S9{S13</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33. University of Helsinki: Digital Education for All (
          <year>2019</year>
          ), https://www.helsinki. / /projektit/digital
          <article-title>-education-for-all</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Vossen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Westerkamp</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Towards the next generation of e-learning standards: SCORM for service-oriented environments</article-title>
          .
          <source>In: Sixth IEEE International Conference on Advanced Learning Technologies (ICALT'06)</source>
          . pp.
          <volume>1031</volume>
          {
          <fpage>1035</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35. Vakeva, E.: Grading Helper (
          <year>2018</year>
          ), https://github.com/eliisav/gradinghelper
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>