diff options
Diffstat (limited to 'overview.adoc')
-rw-r--r-- | overview.adoc | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/overview.adoc b/overview.adoc new file mode 100644 index 0000000..146f652 --- /dev/null +++ b/overview.adoc @@ -0,0 +1,102 @@ +Overview +-------- +An ECSA indexterm:[ECSA,overview] +is a service architecture for elearning based webservices. It provides +mechanisms for communication and authorization between elearning systems among +each other and management systems. This is implemented via a +MOM. + +[[fig_ecsa_overview]] +.Components of an ECSA network. +//ifdef::hyperdoc[image::diagrams/ecsa_overview.svg[ECSA network]] +//ifndef::hyperdoc[] + +.... + ........... ........... + . +-----+ . . +-----+ . + . |LMS1 +------------+ +--------------+ LMS2| . + . +-----+ . | | . +-----+ . + . . | | . . + . comm. . | | . . + . A . | | . . + . . +-+-+-+ .+-------+. + . +-----+ . https | | .|HIS/LSF|. + . |LMS4 +----------+ ECS +-----------+ Proxy |. + . +-----+ . | | .+-------+. + ........... +-+-+-+ . comm. . + | | . C . + | | . . + ................................................. + . +-----+ | | . +-----+ . . + . |LMS3 +------------+ +--------------+ LMSn| . . + . +-----+ . +-----+ . . + . community B ........... . + ................................................. +.... + +//endif::hyperdoc[] + +An ECSA builds up of three primary components: + +- The ECS (elearning community server) serves the core functionionality of + an ECSA network. It provides named message resources to allow communication + between all participants. +- An ECC (elearning community client) is a participant in an ECSA network. It + has to be registered at ECS and must be able to talk to the ECS as a REST + based client. This participant normally has a native implementation of the + ECS interface. Our favourite ECCs are LMSs (learning management systems). +- An ECP (elearning community proxy) represents a special kind of participant. + It serves as a proxy for a none ECSA compliant system so that such a system + is able to participate in an ECSA network without ever knowing about it. + +Sample usage scenario +~~~~~~~~~~~~~~~~~~~~~ +Suppose you have several LMSs (learning management systems) and want to share +courses between them. You decide not to interchange the real courses but only +course links which consist of some meta data of the appropriate course +especially a link formed by an URL pointing to the real course so you can call +it through the WWW e.g.: + + http://ilias.freeit.de/goto.php?target=pg_26_43&client_id=ecs2 + +Now it's possible for each LMS to communicate the released courses by the +resources provided from the ECS to an explicit LMS (point to point) or to a +community of LMSs (point to multipoint). + +Because of the uniform application interface -- there are only GET, +PUT, DELETE and POST operations -- receiving participants can fetch +messages through a GET on the resource URL or sending messages +by a POST on the resource URL (with some additional query parameters +or header variables to point to the appropriate receivers). + +To illustrate this we use the simple ECC application +curl+ to +send a message from one participant to another: + +.... +curl -i -H 'X-EcsAuthId: pid01' \ + -H 'X-EcsReceiverMemberships: mid02' \ + -H 'Content-Type: application/json' \ + -X POST \ + -d '{ + "name": "Mathematics II", + "url" : "http://ilias...?target=pg_26_43&client_id=ecs2", + ... + }' \ + http://ecs.freeit.de/campusconnect/courselinks +.... + +In order to receive a message (in fifo mode) the receiving +participant may call: + +.... +curl -i -H 'X-EcsAuthId: pid02' \ + -H 'Accept: text/plain; application/json' \ + -X GET \ + http://ecs.freeit.de/campusconnect/courselinks/fifo +.... + +Of course, there are several ways to operate on a resource. +////////////////////////////////////////////////// +For details on using the resources located on an ECS and the different +parameters (http headers, query strings) plea e see XXX for details. +////////////////////////////////////////////////// |