INTRODUCTION
Contexte du travail
CELEBRATE, an initiative funded with 5 million euros, spans a duration of 30 months and is part of the European Commission's Information Society Technologies program.
The main objective of the project is to establish a European learning network that connects educational institutions, facilitating the exchange and research of teaching resources among them Each institution acts as a repository of resources, adopting a distributed approach where resources are spread across a central repository and various networked repositories At the core of this network is a brokerage system that connects clients, directing their requests to appropriate repositories and returning the results.
Toutefois, CELEBRATE n’est malheureusement pas le seul système de ce genre Il existe d’autres systèmes comme ARIADNE Knowledge Pool System, PROLEARN Repository
The EDUTELLA Smart Space for Learning emphasizes the need for a common interface to ensure effective communication between various systems To facilitate this interoperability, the SQI specification has been developed.
This internship focuses on the analysis, design, and implementation of an access interface based on the SQI specification Additionally, its execution aids in identifying imperfections within the SQI, thereby contributing to its improvement, as SQI is still in the development phase.
Définitions
Il convient d’aborder quelques notions de base concernant SQI
According to the IEEE-LSTC definition, a learning object is a digital or non-digital entity that can be used, reused, or referenced in computer-assisted learning activities Learning objects are akin to building blocks, which, when combined, create educational materials They can take various forms, such as text, images, quizzes, or videos An ideal learning object functions autonomously but can also integrate seamlessly into a larger framework The primary goal of designing learning objects is to facilitate their transfer across different documents and contexts For instance, a two-minute video sequence can be utilized in both a computer science course and an assessment, and it can also be incorporated into various platforms.
En général, métadonnées sont des données sur des données En formation en ligne, les métadonées permettent de décrire la sémantique des diverses ressources pédagogiques et
Introduction donc favoriser leur découverte et recherche Un autre intérêt des métadonnées est de permettre à divers outils, divers systèmes de comprendre une ressource et de la réutiliser
Il nous faut aborder le standard LOM (Learning Object Metadata – Métadonnées d’objet d’apprentissage) qui concerne l’implémentation du gateway mentionné ci-dessus
Le Standard LOM (Learning Object Metadata)
The LOM standard, developed by the LTSC (Learning Training System Committee) within the IEEE (Institute of Electrical and Electronics Engineers), outlines the syntax and semantics of educational metadata It specifies descriptors and concrete attributes that enable the creation of a descriptive record for educational resources, referred to as "binding" in English These descriptors are categorized into nine distinct categories.
Figure 1.1 Learning Object Metadata (Source: [4])
Voici une brève description des neuf catégories de descripteurs :
• General : détermine les caractéristiques générales à savoir l’identifiant, la langue, le titre,…
• Lifecycle : spécifie les caractéristiques du cycle de vie comme par exemple le numéro de version, la date de création, date d’expiration, …
• Meta-metadata : des indications sur les attributs
• Technical : définit les aspects techniques tel que le format, la taille, …
• Educational : concerne les spécificités pédagogiques d’un document, tel que son type, son niveau ou son public cible
• Rights : spécifie les droits de la propriété intellectuelle et les conditions d’utilisation tel que le copyright, le cỏt…
• Relation : précise les liens entre des documents
• Annotation : permet d’ajouter des annotations, des commentaires et des informations supplémentaires
• Classification : permet de localiser un document dans un système de classification
A collection of items, known as a repository, typically consists of objects that are identified and cataloged using metadata The primary services offered by a repository include the storage, exhibition, and distribution of these items.
These objects can be stored in a single location or distributed across a distributed system In the latter scenario, the repository should function as a single access point, even if the objects are stored on servers in various locations, providing users with seamless access to the repository.
Problématique
Recent developments in learning object repositories have provided users with vast educational resources However, locating the necessary objects can be challenging due to their presence in closed or proprietary systems These systems often utilize proprietary data formats and access interfaces, resulting in a lack of interoperability and creating a fragmented landscape.
On peut citer cinq raisons principales qui rendent l’interopérabilité entre des dépôts d’objets d’apprentissage nécessaire [6]:
• La création des objets d’apprentissage est cỏteuse
• L’annotation des objets d’apprentissage est cỏteuse
• Une fois que les objets d’apprentissage sont créés, l’éditeur s’intéresse souvent à les disséminer
• Les dépôts d’objets d’apprentissage n’ont pas assez d’objets d’apprentissage
• Les utilisateurs veulent choisir les objets à partir d’un grand nombre de dépôts
Selon [5], l’interopérabilité est “ la capacité de deux ou plusieurs systèmes ou composantes d’ộchanger informations et d’utiliser les informations ộchangộes ằ Ainsi, l’interopộrabilitộ
The introduction addresses two key aspects: data reuse and data exchange Effective data reuse requires a common semantics to enable systems to comprehend data from one another The second aspect is ensured through the use of common protocols that facilitate data exchange.
LA SPECIFICATION SQI
Travaux concernés
Digital Repository Interoperability (DRI) is a specification from IMS that offers recommendations for common interoperability functions of a repository, including searching/exposing, harvesting/exposing, alerting/exposing, submitting/storing, and requesting/delivering However, it allows implementers too many options to effectively address interoperability.
Z39.50 is a protocol primarily utilized in library systems, featuring its own query language based on a set of predefined attributes and data set syntaxes Unlike modern web technologies such as XML and XQUERY, Z39.50 does not currently support these formats However, efforts are underway to integrate XML as a common data exchange format within Z39.50.
The Search/Retrieve Web Service (SRW) protocol aims to enhance interoperability among distributed databases and resources through a common framework Utilizing the robust query language CQL, SRW exclusively supports synchronous queries.
Edutella is a peer-to-peer network designed for sharing educational resources, with resources in its repositories described using RDF It utilizes the QEL query language suitable for RDF-described resources, and supports asynchronous queries through a results listener mechanism, which is also employed in SQI.
EduSource est un projet qui suit IMS Digital Repository Specification Il emploie un langage de requête propriétaire ECL (EduSource Communication Language )
Ariadne propose une interface de requête basée sur service web Cette interface ne s’intéresse qu’à des requêtes synchrones.
Framework pour l’interopérabilité entre dépôts d’objets d’apprentissage
CEN/ISSS has proposed a framework for interoperability among learning object repositories This framework outlines a set of interfaces that provide essential services for creating a network of educational nodes It categorizes these services into two layers: core services and application services Core services are responsible for identifying learning object repositories, authenticating users and repositories, and managing sessions Positioned above the core services, application services are crucial for achieving true interoperability.
Quelques services dans cette couche sont service de fourniture, service de requête, service de contrat, service de livraison, …
Figure 2.1: framework pour l’interopérabilité entre dépôts d’objets d’apprentissage
Two-layer services operate by relying on a messaging service such as XML-RPC, RMI, or SOAP This messaging service, in turn, utilizes network protocols like HTTP, TCP/IP, and SMTP to transfer data effectively.
Figure 1.2 : Les couches dans le framework pour l’interopérabilité entre dépôts d’objets d’apprentissage
Spécification SQI
La spécification SQI est née dans le cadre des travaux du framework pour l’interopérabilité entre dépôts d’objets d’apprentissage ci-dessus mentionné Elle introduit une interface
Messaging Service (e.g SOAP, XML RPCs, JRMI, …)
Network Architecture (e.g HTTP, SMTP; TCP/IP, …)
Service de messagerie (e.g SOAP, XML-RPC , JRMI, … )
Services noyau (Gestion des sessions, authentification, …)
Architecture Réseau (e.g HTTP, SMTP; TCP/IP, … )
La Spécification SQI couvrant trois services : authentification, gestion des sessions (service noyau) et requête ( service d’application )
SQI supports both synchronous and asynchronous queries to enhance interoperability among highly heterogeneous systems Asynchronous querying is particularly suitable for peer-to-peer networks where the likelihood of involved systems being suspended is significant In contrast, synchronous querying is beneficial for local requests, such as simple client-server interactions.
SQI maintains neutrality regarding query languages and result formats In practice, repositories store metadata using various types of storage, such as databases and file systems, while employing different metadata formats, including XML.
Both systems involved in a query, the source system and the target system, must first agree on the query languages and the formats of the results This provides a highly flexible way to change the query language and result format during execution However, it is essential for the repositories to have "wrappers" to facilitate translation between the formats.
SQI is designed for extensibility, leading authors to adopt an approach that minimizes the number of parameters in methods As a result, the total number of methods increases significantly Fortunately, it is not necessary to invoke all the methods defined in SQI to complete a request; default values can be utilized instead.
Figure 3 montre les étapes d’une requête ó le dépơt A recherche des ressources au dépơt B
Dans ce scénario, on s’intéresse à l’échange des données plutôt qu’à la gestion des sessions
Initially, source A formulates a request in a common query language and sends it to target B Then, B translates the request into the local query language and executes it Once the results are generated in the local format, B returns them to A by translating them back into the common results format Wrapper components act as translators between query languages and result formats.
Local Query Language Simple Query
Local Query Language Simple Query
Figure 2.3 : Communication entre deux dépôts de SQI (Source : [7])
Implémentée à la cible et appelée par la source
Implémentée à la source et appelée par la cible
La Spécification SQI setResultsFormat X setMaxQueryResults X setMaxDuration X
Interface de requête synchrone setResultsSetSize X synchronousQuery X getTotalResultsCount X getAdditionalQueryResults X
Interface de requête asynchrone asynchronousQuery X setSourceLocation X queryResultsListener X
Gestion des sessions createSession X createAnonymousSession X destroySession X
Les méthodes sont catégorisées en 5 groupes : gestion des sessions ,configuration des requêtes, interface de requête synchrone, interface de requête asynchrone, et gestion des résultats
Establishing a connection between the source and the target is achieved through createSession or createAnonymousSession, which initiate a session The source must provide the target with a username, password, or other credentials to create this session This identification method allows the target to reject unknown sources and implement a request policy Once created, a session can be utilized for multiple requests When the source calls destroySession, the session is terminated; if not called, the session will automatically be deleted after a timeout period, which defaults to 30 minutes but can be specified by the source.
The query configuration methods are used to define various parameters involved in a session, such as the query language, the number of results in a result set, the maximum duration of a query, and the format of the results.
In a synchronous query, the synchronousQuery method is called to retrieve results The maximum number of results in a result set is defined by setResultsSetSize The getTotalResultsCount method provides the total number of results, while additional results are fetched from the target when the source calls getAdditionalQueryResults.
Les résultats d’une requête asynchrone sont retournés à la source quand la cible appele queryResultsListener La méthode setSourceLocation est utilisée afin que la cible connaisse la
La Spécification SQI localisation de la source
GATEWAY POUR CELEBRATE
Le réseau CELEBRATE
As mentioned in Chapter 1, CELEBRATE is a European network of educational nodes, which serve as content management systems for learning At the core of the network are a messaging server and a brokerage system, responsible for directing requests to the appropriate recipients Each node is equipped with an ELN Client, a software layer that connects to the brokerage system The process of handling a request can be summarized in several key steps.
- Un nœud (on dit ô la source ằ ) soumet une requờte au serveur de messagerie
- Le serveur de messagerie transite la requête vers le système de courtage
- Le système de courtage valide cette requête et l’envoie ensuite aux nœuds appropriés
- Ces nœuds éxecutent la requête et envoient les résultats au système de courtage
- Le système de courtage passe ces résultats à la source
Figure 3.1: La recherche d’objets d’apprentissage dans le réseau CELEBRATE
Gateway pour CELEBRATE
Il existe actuellement en Europe ( et dans le monde ) plusieurs réseaux de nœuds éducatifs par
The CELEBRATE gateway, exemplified by platforms like ADRIADNE, ELENA, and EDUTELLA, is designed to provide a unique interface for exchanging metadata and data Each of these platforms features its own resource formats, ensuring tailored interactions and enhanced user experiences The primary goal of the CELEBRATE gateway is to facilitate seamless communication and integration among diverse educational resources.
CELEBRATE et ces dépôts Les fonctionnalités du gateway construit sont :
- exposer une interface conforme à la spécification SQI qui permet à d’autre dépôts d’objets d’apprentissage de chercher et récupérer des ressources éducatives de CELEBRATE
- chercher des objets d’apprentissage dans divers dépôts d’objets d’apprentissage lorsque une requête provient du CELEBRATE
- permettre à l’administrateur du gateway de configurer les paramètres de fonctionnement
We can create a vast network consisting of multiple educational node networks As illustrated in Figure 3.2, ARIADNE, ELENA, and CELEBRATE connect with each other, each equipped with an SQI interface.
Figure 3.2: Un réseau d’hôtes SQI
From CELEBRATE's perspective, the gateway is viewed as a network member that utilizes the client ELN interface to connect to the brokerage system via the messaging server (see fig 3.3).
Figure 3.3: Gateway est un client du réseau CELEBRATE
S S er e rv ve eu ur r d de e me m es ss sa ag ge er ri ie e
IMPLEMENTATION
Cas d’utilisation
Il y a trois types d’acteurs qui interagissent avec le gateway :
- Administrateur du gateway(Gateway Administrator)
- Système de courtage (Brokerage System)
- Un hôte SQI (An SQI Host)
The administrator is responsible for configuring the gateway by setting various parameters that influence its operation, including the maximum number of simultaneous connections to the gateway, the maximum number of concurrent requests from CELEBRATE, and the location of the gateway listener Additionally, the administrator can add or remove an SQI host from the list of hosts to connect The opening and closing of connections to CELEBRATE, as well as the starting and stopping of the gateway, must be performed manually by the administrator.
When a CELEBRATE member submits a request to the brokerage system, the request is forwarded to other members, including the gateway The gateway then transmits the request to the available SQI hosts listed for connection.
Le système de courtage peut aussi retourner les résultats d’une requête au gateway Ces résultats sera retournés par le gateway vers le bon hôte sousmettant la requête
An SQI host interacts with the gateway using methods defined in SQI, including creating a session, specifying the result format, and setting a request timeout, among others.
Architecture générale et implémentation
Les modules du gateway correspondent bien aux cas d’utilisation On va examiner en détail les fonctionnalités de chacun de ces modules
The ElnClient package, provided by CELEBRATE, is designed to simplify the connection to the brokerage system It encapsulates session management, message formulation, and message processing mechanisms within its files.
This module enables the administrator to configure gateway settings by storing them in an XML configuration file It also manages connections to the brokerage system and SQI hosts The administrator oversees the gateway using a web interface built with JSP and Servlets Access to the configuration file is facilitated through JAXB (Java Architecture for XML Binding) and JAXP (Java Architecture for XML Processing) packages provided by Sun.
This module is responsible for establishing connections to SQI hosts using the SOAP (Simple Object Access Protocol) messaging protocol, which utilizes XML for its messages SOAP is a straightforward protocol designed to execute Remote Procedure Calls (RPC) Each SQI host has a WSDL (Web Service Description Language) file that outlines its available methods.
SQI L’implémentation du gateway a recours au package JAX-RPC (Java API for XML-
Based RPC) fourni par Sun pour générer le client SOAP
The WSDL file that describes the SQI methods is currently unique to each host and is often generated automatically by a platform When a new host implements SQI, other hosts must retrieve the WSDL file and create classes to connect to this new host, which is neither practical nor efficient To streamline programming and enhance host extensibility, the authors of SQI are considering the creation of a common interface description, specifically a shared WSDL file.
This module implements all SQI methods that will be deployed as web services with a description file Support classes, runtime classes, and the WSDL file are generated by the SUN ONE Application Server 7 development tool Another host can implement the interface described in this WSDL file and connect to the gateway.
Web services (SOAP Server) SOAP
XML un hôte SQI CELEBRATE
Ce module a pour but de gérer les sessions et acheminer les messages On va voir le détail des classes ci-dessous
Classe ô TimeoutCollectableStorage ằ et classe ô TimeoutCollector ằ :
These classes implement a mechanism to destroy objects that exceed a specified timeout duration TimeoutCollectableStorage maintains a list of objects eligible for destruction, with each object assigned a timestamp to track its validity over time The TimeoutCollector evaluates this timeout status to determine whether to remove the object or not.
Web services (SOAP Server) SOAP un hôte SQI CELEBRATE
This class manages requests from the brokerage system and implements the ôTimeoutCollectableStorage interface It operates as a queue where requests are processed sequentially Once the results for a request are retrieved at the gateway level, the request will be used to identify the client and subsequently released If no results are returned within a specified timeframe, the request enters a timeout state and will be destroyed.
Comme la classe ô MessagesList ằ, cette classe implộmente l’interface ôTimeoutCollectableStorage ằ et stocke les sessions crộộes par plusieurs hụtes SQI en utilisant le mờme mộcanisme de dộtruire les sessions selon ô timeout ằ
C’est une implémentation concrète de l’interface IncomingMessageListener Elle a pour rôle de recevoir les messages du système de courtage dont le traitement est délégué à une instance de ôMessageHandler ằ
Cette classe s’occupe de traiter plusieurs types de messages arrivant au gateway
Classe ô QuerySenderằ : ôQuerySenderằ est utilisộ par ô MessageHandler ằ pour envoyer une requờte à des hụtes SQI en mode synchrone ou asynchrone selon les modes supportés à chaque hôte
Cette classe abstraite représente un hôte SQI avec les méthodes SQI
The gateway's information and states are maintained within a single instance of this class, designed according to the Singleton design pattern, ensuring that only one instance exists at any given time The gateway's functionality relies on the data stored in this instance For instance, when the message count in the MessagesList reaches the maximum limit defined in the Gateway, the gateway will cease processing requests from the brokerage system.
Ce module se charge de transformer les requêtes et les résultats en utilisant des feuilles de transformation et des classes de support en Java
The current version utilizes VSQL (Very Simple Query Interface) as the common query format VSQL consists of a list of keywords that can be applied in searches An example of VSQL is provided.
The CELEBRATE query format, known as "filter," is more complex, involving a recursive combination of the operators AND, OR, and NOT, along with field indicators in the search.
Le modèle commun de LOM proposé par SQI est IEEE 1484.12.1 A CELEBRATE,
The CELEBRATE Metadata Application Profile v1.1 is utilized, with each model accompanied by an XML binding There are notable differences between the two LOM models that need to be addressed during the transformation process, which manifest at two levels.
Au niveau de modèle de données
- les éléments obligatoires : dans LOM de CELEBRATe, il y a des éléments obligatoires Dans LOM de IEEE, il n’y a accun élément obligatoire
- nouveaux éléments dans le modèle LOM de CELEBRATE
Au niveau de binding XML
- définition de types : un élément peut être défini avec des types différents dans le binding xml de CELEBRATE et dans celui de IEEE
IEEE LOM Resultset (xml instance)
CONCLUSION
This paper discusses the Simple Query Interface (SQI) while providing an overview of the interoperability issues among learning repositories The internship work focuses on two main areas: studying the SQI and implementing the SQI gateway The development of the gateway primarily involves creating transformation sheets between XML formats (XSL files), as well as designing and implementing Java classes and JSP pages Currently, the gateway has only been tested with a limited number of repositories, as the SQI is still under development and its implementation is not yet widespread.
Firstly, SQI was designed to address the interoperability issues among educational institutions However, it can also be effectively utilized in other fields that involve data exchange and metadata discovery.
SQI reste encore à améliorer au niveau de API et de modèle de contenu Les travaux de définir un modèle de contenu commun, de rédiger fichier de description d’interface service
Web (wsdl) sont en cours
Les captures d’ộcran du module ô Admin ằ
Le schộma xml du fichier de configuration du module ô admin ằ
http://fireboy.eun.org:8082/GatewaySQIWS/GatewaySQIWS
SQI Hosts to which Gateway is connected
http://rubens.cs.kuleuven.ac.be:8989/AWS-
SOAP Stub for connection to SQI Host
-
http://fireboy.eun.org:8082/AnSQIHostWS/AnSQIHostWS
Le diagramme de classes du module ô translation ằ :