erasmus-without-paper / ewp-specs-mobility-flowcharts

"EWP Mobility Process Explained" document.
MIT License
3 stars 0 forks source link

EWP Mobility Process Explained

Summary

With the help of some flowcharts, this document briefly describes how the Student Mobility Business Process is modeled within the EWP Network. It should be useful to get a quick grasp on which APIs are used by whom and when.

Is it up to date?

Before reading this document, check its last-modified date, and compare it to the respective dates of the API specifications. If particular EWP APIs still haven't been marked as stable, they MAY change substantially. For this reason, this document MAY fall behind. While reading this document, keep in mind that some fresh versions of the APIs might not work exactly as they have been explained here.

A note for future maintainers of this document: remember to update the description and diagrams after any backward incompatible changes in the APIs have been made.

Accessing information on Institutions

The following APIs allow the members of the EWP Network to discover basic information on institutions and organizational units covered by other EWP partners.

Some basic examples of when these APIs might be used:

IROs also exchange so-called fact sheets about their institutions - "business cards" in a nice, printable format. The documents should contain all information the incoming student should know. Fact sheets may be exchanged in the EWP network in two ways:

Handling Interinstitutional Agreements (IIAs)

All HEIs taking part in the mobility process sign IIAs with each other. According to requirements of the EC, these agreements have to be processed via the EWP network, fully electronically. Signed paper versions are neither needed nor recommended.

The following APIs can be used to exchange details of IIAs:

IIAs need not be formally signed with qualified electronic signatures. However, HEIs need an official partner's approval of their IIA copies. The approval process is supported by two other APIs:

HEI B, by sending iia_id obtained from HEI A, approves the agreement identified by this iia_id. However, HEI B needs proof that HEI A has not changed the agreement after HEI B has last seen it. To reference and approve a particular version of the partner’s agreement, HEIs attach to each agreement a digest (hash) of the agreement.

HEI B MUST verify this digest before sending the approval notification (via the IIA Approval CNR API). For this purpose, HEI B has to call the IIAs get API and compare the hash received in the response with the hash independently calculated from the received response. If both hashes are identical, the agreement can be approved. The approval API carries two values - iia_id and hash. Hash MUST NOT be calculated from the local copy of the agreement.

Each partner should behave in the same way and independently:

Partner HEIs can also (optionally) exchange PDF versions of the agreement, in IIAs Approval API.

The detailed example scenario of using IIA API and IIA Approval API with the corresponding CNRs is available in the example scenario folder.

The following flowcharts illustrate some of the possible scenarios:

Handling IIAs

It is also possible that one HEI enters details of the agreement to the local system and the other downloads it to its own system.

Example of IIA CNR API usage

Approval of Interinstitutional Agreements

Student Mobilities

Outgoing and Incoming Mobility APIs

Each mobility can be looked at from two different perspectives:

In EWP, the sending HEI is the master of the majority of the student mobility data. The receiving HEI often keeps its own "slave" copy of this mobility data, but it is the sending HEI who is actually required to have it recorded.

In the master/slave communication model, it is always the master who has the most up-to-date copy of the data. The master is not required to pull the changes from the slave. It's the slave's responsibility to push changes at the master. This means that:

The non-master partners still "have a say", but they might need to work a bit harder for their "say" to "get committed". For example, if the changes are proposed via an update endpoint, and the sending HEI's servers are offline, then they cannot store these proposals.

There are also the CNR APIs, similar to the ones described in the previous sections:

Alternative file exchange format

There's also the .ewpmobility Exchange File. This is not a web service. It is a file format, which can be exchanged by other means (such as email). It establishes a common format for exchanging mobility data, in a form strictly compatible with EWP Outgoing Mobility objects. Can be useful when moving mobility data from one institution to another (e.g. when migrating from other workflows to the EWP workflow).

Handling Nominations

After IIA is signed, sending institution begins recruitment for mobility. As a result of the recruitment, students are nominated. The receiving institution is then notified, and nominations are being approved (usually all of them).

For each new nomination, the sending institution creates a new Outgoing Mobility object. The receiving institution is notified (via the CNR API we have briefly described earlier) about (a) creation of new Outgoing Mobility objects, and (b) all updates to the existing Outgoing Mobility objects.

The following flowchart illustrates how a nomination process works in EWPs workflow. More scenarios can be found in Outgoing Mobilities API workflows.

Handling Nominations

Preparing Learning Agreements

After nominations get verified by the receiving partner, students prepare their Learning Agreements (LAs). This is a separate process in the user's interface, and internally it is covered by other APIs.

All changes to the LA need to be accepted by all three parties (the student, the sending coordinator, and the receiving coordinator).

The primary workflow uses the following APIs:

There are, however, some other APIs that might be useful during this stage:

There are many example scenarios related to LAs - see Outgoing Mobility Learning Agreements API scenarios and OLA Dashboard use cases and scenarios.

The following flowchart presents the entire process:

Editing a Learning Agreement (LA)

Approving Learning Agreements

At some point, the student wants their LA to be approved. To do so, the student first approves it themselves, then waits for other actors to approve it. The next would come approval from the sending HEI, and finally approval from the receiving HEI.

The LA is approved only after all three parties approve it. The details of this process are explained in the API specs.

Learning Agreements can still be edited by the student in the system of the sending HEI after they are approved. Then, they can be approved again, and again. Sending institutions are encouraged to keep a record of all such changes for audit purposes. Currently, the European Commission does not require the entire history of changes to be made available to the receiving institution. If such a request is made by the EC, the appropriate EWP API will be defined.

There are no new APIs needed for approving LAs. We will be using only the ones we have described earlier. The following flowchart presents the entire process:

Approving a Learning Agreement (LA)

Exchanging Arrival and Departure dates

After the mobility ends, the sending institution usually needs to know the exact dates on which the student has arrived to - and departed from - the receiving institution (this is related to the final value of the stipend provided for the student). The receiving coordinator is required to provide this data.

In this case - it is the receiving HEI who is the "master" of this date. Therefore, it is published by the receiving HEI via its Incoming Mobilities API.

Exchanging arrival and departure dates

Exchanging Transcripts of Records (ToRs)

Currently:

At this moment, there are two APIs used in the ToR exchange process:

The following flowchart presents a possible usage scenario:

Exchanging Transcripts of Records (ToRs)

It's worth noting that the exact workflow of the recognition process is not in the scope of EWP. However, the Outgoing Mobility object provides some basic information on this topic too. Please review the Outgoing Mobilities API specification for details.

Migrating from other workflows

As you can see after reading the sections above, all mobility-related features in EWP use a common set of APIs, and have a similar workflow. This chapter discusses the reasons we have picked such a workflow, and compares it to other workflows you might be more familiar with.

S-MASTER and R-MASTER approaches

We found two basic mobility workflows in use in computer systems today. Some readers may find EWP's workflow quite natural, while others may say it's "turned upside down". This is caused by the fact that at the time of writing this half of Europe seems to be using one approach, while the other half uses the other.

The S-MASTER and R-MASTER definitions introduced here are not "official" in any way. We made them up. We simply wanted to have some kind of label for them to refer to. (If you want to reuse these terms somewhere else, then you can use this permalink to refer others here.)

It's also worth noting that:

Both S-MASTER and R-MASTER approaches offer exactly the same functionality. The only functional difference between them is the problem of authority ("who has the final say?").

Unfortunately, the technical differences are bigger, and these are important for us, developers. It is feasible to work with multiple approaches simultaneously (and some of the readers probably already do), but is NOT feasible to use two approaches for processing a single property of a single Mobility object - that would require us to implement a multi-master approach, and we have decided against it. Therefore, for each single mobility, we must determine which approach we will be using.

Why we chose S-MASTER for EWP?

At first glance, it might seem reasonable that we should try to support both approaches in EWP. However, if we give it a little more thought, it seems clear that this would actually make EWP adoption more difficult than supporting only one workflow:

We have picked S-MASTER approach for the majority of mobility properties in EWPs workflow, and here's some reasoning behind this decision:

General guidelines on migrating from R-MASTER workflows

We recognize that many systems use other workflows than the one we chose for EWP, and probably all partners will need at least some changes in their workflows to support EWP. Having that in mind, we'll try to offer some basic guidelines on the migration process (not only here, but throughout all API specifications).

In general, we believe that initially most partners will need to support both workflows for some time (their current one, and the new one, introduced by EWP). The choice on which of the workflows to use for particular mobility depends on the answer to the following question: Does the partner institution (also) support EWP workflow?

If both HEIs support EWP workflow already:

If the other HEI does not support EWP workflow yet:

You can even try to differentiate between these two scenarios dynamically by monitoring the Registry's catalogue and checking if all EWP Mobility Workflow APIs have been implemented by the other HEI. Once they are, you can - for example - stop allowing the creation of new nominations on your side.