Metodiche progettuali per Personal Learning Environments in ambiente Grid e Cloud Computing
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Metodiche progettuali per Personal Learning Environments in ambiente Grid e Cloud Computing Gianni Fenu, Simone Surcis1, Massimiliano Picconi2 Università degli Studi di Cagliari Via Ospedale 72, 09123 Cagliari (CA) fenu@unica.it 1 Consorzio Cosmolab Via Marengo 3, 09123 Cagliari (CA) surcis@sc.unica.it 2 Università degli Studi di Cagliari Via Ospedale 72, 09123 Cagliari (CA) mpicconi@sc.unica.it Negli ultimi anni, l’impiego di tecnologie e-learning è aumentato considerevolmente, introducendo nuove metodologie di apprendimento basate principalmente su piattaforme software, oggi sempre più personalizzabili, che gestiscono i coursewares. Per quanto concerne l’erogazione dei contenuti multimediali di cui tali corsi sono costituiti, l’elevata richiesta di storage e di capacità computazionale, affiancate spesso a problematiche economiche inerenti i budget disponibili, hanno portato all’adozione, sempre più frequente, di soluzioni esternalizzate. L’intento di questo lavoro è di illustrare gli aspetti progettuali, architetturali e tecnologici che riguardano la creazione di una piattaforma di e-learning basata su tecnologie di Grid e Cloud Computing, elementi base quando si parla di fornitura su vasta scala di servizi software. Per il caso di studio si è presa in considerazione la MAG (Metropolitan Area Grid) del Consorzio COSMOLAB di Cagliari implementata nell’ambito del progetto CYBERSAR volto a realizzare una Cyberinfrastructure per la ricerca scientifica e tecnologica in Sardegna. 1. Introduzione Negli ultimi anni, l’impiego di tecnologie e-learning è aumentato considerevolmente; tali tecnologie, derivanti da quelle del Web 2.0, definiscono le caratteristiche del nuovo e-learning 2.0 [Ebner, 2007], nel quale, sono compresi anche quegli aspetti non prettamente tecnici che si coniugano con la natura intrinsecamente sociale della rete e con la sua inesauribile dinamicità. I courseware di nuova generazione erogati dalle piattaforme di e- learning sono ricchi di contenuti multimediali che richiedono un’elevata capacità A. Andronico, L. Colazzo (Eds.): DIDAMATICA 2009 – ISBN 978-88-8443-277-3
DIDAMATICA 2009 di storage, e la fruizione degli stessi può, a volte, richiedere una consistente capacità computazionale per sottostare ad un certo livello di Qualità del Servizio (QoS). Inoltre a volte i corsi sono rivolti ad una platea estesa e in tali casi si rendono necessarie infrastrutture di calcolo che supportino un elevato numero di accessi contemporanei, o interattività diffusa. Ovviamente rispondere a questi requisiti comporta l’impiego di notevoli risorse, quindi, quando si vuole creare un’infrastruttura di tale tipo è necessaria prima un’attenta analisi dei requisiti ai quali la piattaforma deve rispondere, per evitare il sottodimensionamento o la sottoutilizzazione della stessa. Molte scuole, o più in generale enti che vogliono erogare courseware, tuttavia, non dispongono di adeguati budget per poter acquisire le attrezzature e le risorse professionali necessari alla messa in opera e al mantenimento di un ambiente di e-learning. Un’interessante approccio al problema esposto ha le sue fondamenta nelle architetture di calcolo parallelo e più recentemente nel Grid e nel Cloud Computing. Oggi è possibile ricorrere a piattaforme esterne, create ad hoc per consentire l’erogazione di contenuti a diversi enti promotori e solitamente basate su infrastrutture di calcolo di dimensioni medio-grandi organizzate come griglie computazionali. Un concetto fondante la tecnologia Grid, ormai largamente diffusa, è proprio la condivisione e distribuzione delle risorse di calcolo fra chi ne fa richiesta, indipendentemente dalla provenienza, similmente a ciò che avviene in una griglia di distribuzione elettrica; da qui il termine Grid. In tale prospettiva è possibile venir meno al problema introdotto della grande richiesta di capacità computazionale e di storage, e più in generale, alla richiesta di risorse computazionali che possono apportare un’utilità allo scopo prefisso. La recente introduzione delle tecnologie web 2.0 ha avuto un notevole impatto sulle modalità di lavoro con le quali l’e-learner si approccia allo studio. Dal semplice courseware preconfezionato, si è passati a interagire dinamicamente con altri e-learner in una moltitudine di servizi innovativi basati su semplici tecnologie di comunicazione ma che al contempo appoggiano una filosofia ben più complessa, come quella del collaborative learning. Successivamente alla nascita delle tecnologie e dei servizi che costituiscono il web 2.0 si è potuto definire un nuovo modello ibrido di sfruttamento delle risorse offerte dalle reti di computer, il quale ha preso il nome di Cloud Computing. Gartner , all’inizio del 2008, aveva valutato il Cloud Computing come una delle 10 tecnologie chiave per gli anni a seguire, affermando che le aziende a competere in questo settore sarebbero state un gran numero. Infatti l’interesse per tale tecnologia è sempre in crescente aumento; oltre alle più importanti aziende del mondo nel settore ICT (Google, IBM, Microsoft e altre), le quali hanno aperto la strada al Cloud Computing, si sono interessati a tale tecnologia anche molte altre aziende e numerosi professionisti del settore. 2
Metodiche progettuali per Personal Learning Environments in ambiente Grid e Cloud Computing In questo paper verranno analizzati i valori aggiunti che le tecnologie di Grid e Cloud Computing possono apportare a supporto dell’e-learning, con particolare riferimento agli aspetti architetturali e di progettazione di un sistema di erogazione e fruizione dei corsi. Questo lavoro si avvale dei risultati ottenuti con il Progetto Cybersar, gestito dal Consorzio COSMOLAB e co-finanziato dal Ministero dell’Università e della Ricerca (MIUR) nell’ambito del Programma Operativo Nazionale 2000- 2006 "Ricerca Scientifica, Sviluppo Tecnologico, Alta Formazione" per le Regioni Italiane dell'Obiettivo 1 (Campania, Calabria, Puglia, Basilicata, Sicilia, Sardegna) - Asse II, Misura II.2 "Società dell'Informazione", Azione a " Sistemi di calcolo e simulazione ad alte prestazioni". 2. Background Si ritiene utile, per meglio introdurre le tematiche oggetto dello studio, esplicitare attraverso una parte introduttiva le tecnologie proprie dei settori grid e cloud-computing [Foster et al, 2008]. Nella breve trattazione che segue verranno declinati su tre paragrafi i contenuti ritenuti essenziali per la successiva illustrazione del progetto. 2.1 Grid Computing Le Griglie sono ambienti persistenti che rendono possibile realizzare applicazioni che integrino risorse di strumentazione, di visualizzazione, di calcolo e di informazione provenienti da domini amministrativi diversi e geograficamente distribuiti. La definizione di Grid si basa sul concetto di condivisione di risorse computazionali di diverso tipo e si presta, quindi, a specificare diverse tipologie di Grid, tra le quali le più importanti sono: Grid Computazionali, Grid di Dati e Grid di applicazioni e/o servizi. Una griglia computazionale è l’aggregazione di risorse di calcolo provenienti da domini di sicurezza e gestione differenti. Tale aggregazione è finalizzata a fornire ad un insieme di utenti potenza di calcolo on-demand, in modo disaccoppiato dalla provenienza, cioè dai nodi che la stanno fisicamente fornendo. La raccolta della potenza di calcolo sull’intero insieme delle risorse della griglia permette di realizzare un supercalcolatore disponibile dinamicamente nel momento del bisogno. Le Grid di dati possono essere considerate una delle forme evolutive del web. Infatti, come il web nascono per contenere grandi moli di dati distribuiti in domini differenti per gestione e posizione geografica, con la differenza sostanziale che nelle griglie di dati queste aggregazioni vengono correlate tra 3
DIDAMATICA 2009 loro e conseguentemente assumono un alto valore aggiunto rispetto al mero contenuto. Infine vi sono le griglie di applicazioni e/o servizi, che rappresentano uno degli aspetti più innovativi del grid computing. Esse assumono il ruolo di Application Service Provider (ASP), cioè danno la possibilità di prendere in locazione un certo tempo di esecuzione di una specifica applicazione su di un server remoto ed inoltre consentono di realizzare al loro interno nuove specifiche applicazioni. Anche se è possibile suddividere le griglie per tipologie, oggi si parla indistintamente di griglia o griglia computazionale per indicare una griglia che assume tutte le caratteristiche delle tipologie illustrate. 2.2 Cloud Computing Il Cloud Computing [Lin et al, 2008] è una tecnologia Internet basata anch’essa sull’utilizzo di risorse distribuite. In tale definizione, il termine “risorse” indica un insieme più esteso delle risorse computazionali ascrivibili alle tecnologie Grid. Il Cloud Computing è spesso confuso con i concetti di Grid Computing, Autonomic Computing (sistemi informatici capaci di auto-gestirsi) e Utility Computing (l’aggregazione di risorse computazionali, quali storage e cicli di clock, offerte come servizio a pagamento similmente a quanto accade con le utenze come l’elettricità). Sebbene la maggior parte dei sistemi di Cloud Computing dipendano da griglie computazionali, abbiano caratteristiche tipiche dell’autonomic computing e vengano commercializzati con le stesse modalità dell’utility computing, il Cloud Computing è una tecnologia innovativa per molti aspetti, considerabile come la naturale evoluzione del modello grid-utility. Attraverso la tecnologia di Cloud Computing le risorse HW e SW vengono fornite come servizio, tipicamente scalabile e in modalità real-time. Per introdurre l’architettura del Cloud Computing si assume che in essa i servizi hardware e software debbano risiedere prevalentemente sui web server, le “nuvole” [Weiss, 2007], piuttosto che “diffusi” sui singoli computer connessi in rete. Lo scenario è quindi quello di un utente il quale, avendo un device (un PC, un palmare, uno smartphone, o altro), un browser ed una connessione ad Internet può accedere alla nuvola giusta che gli fornisce i servizi e/o i dati che gli sono necessari. Spesso poi questi servizi saranno “composti” a piacimento dall’utente nel rispetto delle sue necessità. Altro aspetto nuovo è la possibilità di “spostare” i dati dal proprio PC/device su di una “nuvola” con il risultato di avere tutto ciò di cui si necessita ovunque, worldwide. Per ora il cloud computing offre servizi per gestire archivi foto e video, la posta elettronica, l’agenda appuntamenti, la gestione di testi e documenti vari, inclusi fogli elettronici. Oltre ovviamente a tutto ciò che è già 4
Metodiche progettuali per Personal Learning Environments in ambiente Grid e Cloud Computing presente solo sul web (blog, comunità virtuali, mappe geografiche e/o stradali e così via). Presto però, questa realtà sarà valida anche per l’immagazzinamento di file del tutto generici, in quanto stanno nascendo dei repository di dati, completi di file system, che costituiscono dei veri e propri “hard disk on line”. La realtà del Cloud Computing si sta evolvendo con una rapidità incredibile, spinta anche dai colossali investimenti dei più grandi operatori IT del mondo, al punto tale che Microsoft ha da poco presentato il primo sistema operativo Cloud, Windows Azure, implementato come una collezione di cloud services. Altro concetto incluso nella nozione di Cloud Computing è l’allocazione automatica e dinamica delle risorse. Se il sistema richiede l’intervento umano per allocare i processi alle risorse, non si può parlare di cloud, ma solo di data center. Questa caratteristica è fondamentale, soprattutto considerando il tipo di dati che possono trovarsi al’interno di una piattaforma “Cloud”. Considerato che uno dei principali vantaggi che il Cloud Computing porterà agli utenti è quello di poter mantenere la totalità dei proprio dati sul web, capiterà sempre più spesso di avere a che fare con dati riservati, dati sensibili, etc. Per questo, chi vuole offrire servizi di Cloud Computing, deve garantire all’utente che il trattamento dei dati sia sempre e solo effettuato in maniera automatica e sicura. 2.3 XaaS La fase di passaggio verso il Cloud Computing sta delineando nuove categorie di servizi IT [Olsen, 2006] che consentono di creare applicazioni, database e servizi Web di qualunque genere, garantendo storage, backups, data replication, data protection, security, etc. Tra le principali categorie ricordiamo Software as a Service (SaaS) [Sirtl, 2008], Hardware as a Service (HaaS), Database as a Service (DaaS) and Platform as a Service (PaaS). Grazie all’impiego di esse è possibile evitare ingenti costi infrastrutturali per l’acquisto, la manutenzione, il supporto e/o l’aggiornamento delle stesse infrastrutture informatiche. Un sempre maggior numero di applicazioni software di utilizzo corrente sono (o diventeranno) applicazioni Web, quindi di fatto applicazioni SaaS [Dan, 2007] [Choudhary, 2007] residenti ed eseguite su computers di terzi nonché mantenute da questi ultimi, disponibili praticamente "on the cloud", analogamente ad una piattaforma operativa integrata. Il termine SaaS viene spesso usato indistintamente al posto di Cloud Computing, ma questi non vanno confusi: è facilmente desumibile come il Cloud Computing sia un concetto ben più esteso, che riguarda un nuovo paradigma computazionale e che comprende diverse nuove categorie di servizi, tra le quali anche SaaS. Si può quindi affermare che un’architettura di Cloud Computing è in relazione con 5
DIDAMATICA 2009 SaaS, in quanto può essere considerata come il miglior meccanismo per erogare Software as a Service. 3. Architettura e Progettazione Essenziale per una progettualità efficace di contenuti e-learning, è la piattaforma tecnologica che gestisce la distribuzione e la fruizione della formazione. Allo stato dell’arte attuale, l’e-learner può optare tra due soluzioni tecnologiche differenti per la propria istruzione: può avvalersi di un Virtual Learning Environment (VLE), detto anche Learning Management System (LMS), oppure far uso di un Personal Learning Environment (PLE) [Attwell, 2007], divenendo in questo caso un Cloud Learner. La prima soluzione è stata ampiamente discussa negli anni precedenti e anche qui vi erano interessanti correlazioni con il Grid Computing [Yang et al, 2005] soprattutto in merito a tematiche quali la memorizzazione e l’organizzazione dei coursewares. I VLE, ad oggi, sono ancora il modello dominante, sia in ambito aziendale sia in quello scolastico. Tuttavia, alcuni segni di flessione sono da addebitarsi all’attuale tendenza di personalizzare il proprio percorso formativo e le tecniche di apprendimento, nuove esigenze nate in corrispondenza della diffusione su vasta scala dei servizi web 2.0. Per questo si è deciso di trattare la seconda soluzione, ovvero quella del PLE, iniziando proprio dalla descrizione delle sue principali caratteristiche e differenze rispetto ai VLE. 3.1 Personal Learning Environment (PLE) I Personal Learning Environment sfuggono da una definizione ufficiale a causa della loro natura complessa. Si possono definire come sistemi, intesi come collezioni di strumenti, che facilitano l’accesso, l’aggregazione, la configurazione e la gestione di Learning Activities (termine che si contrappone a quello di Learning Objects, tipico dei VLE) da parte dell’utente. Facilita l’accesso in quanto l’utente ha un controllo globale su tutto quanto è contenuto nel PLE, contrariamente ai VLE, notoriamente molto più rigidi. L’aggregazione dei contenuti è un elemento fondante dei PLE. Lo spazio operativo assegnato ad ogni utente può contenere foto, video, audio, testo, in aggiunta a vari tipi di informazioni personali (curriculum, skills, bookmarks) e a servizi di messaggistica istantanea, forum e blog. La caratteristica di configurazione del sistema consente all’utente di catalizzare all’interno di un’unica interfaccia tutte queste informazioni. Infine, la possibilità di associare il proprio PLE ad altri elementi, quali un VLE e un e-portfolio, consento di attuare una gestione unificata delle proprie learning activities. I personal learning environment sono dunque sistemi aperti, interconnessi tra loro e con altri servizi esterni; al 6
Metodiche progettuali per Personal Learning Environments in ambiente Grid e Cloud Computing contrario i VLE sono in genere piattaforme proprietarie centralizzate e chiuse, vale a dire che non si interfacciano con altre piattaforme e servizi, a meno di apposite interfacce (API) costruite ad hoc. 3.2 Caratteristiche Progettuali del Sistema La realizzazione di un PLE, da un punto di vista ingegneristico, consiste nella definizione delle funzionalità del sistema, le quali si basano a loro volta sulle risorse hardware e software sottostanti. Nell’ottica di progettare un sistema che possa trarre benefici dall’impiego sinergico di tecnologie grid e cloud computing, si parte col definire dove queste tecnologie intervengano e quali funzionalità apportino o integrino (vedi Fig.1). - COMUNICAZIONE SINCRONA/ASINCRONA GROUD Computing - ENORMI POTENZIALITÀ DI SVILUPPO (g-eclipse) Grid + Cloud = Cloud Computing - PaaS (PLE) e SaaS (WEB 2.0 APPS) - HaaS: USO, ASTRAZIONE E VIRTUALIZZAZIONE DELLE RISORSE GRID - HOSTING PIATTAFORMA CLOUD-BASED - GESTIONE DEGLI ACCESSI Grid Computing - LOAD BALANCING - STORAGE (NAS, SAN, DAS) - POTENZA COMPUTAZIONALE ON DEMAND Fig.1 – Funzionalità introducibili attraverso il Groud Computing. Ogni PLE, come ogni servizio Cloud, necessita di un hosting ove poter essere ospitato. La griglia computazionale risulta essere la migliore delle soluzioni di hosting possibili in quanto garantisce una serie di vantaggi funzionali che altri hosting providers (es. server dedicato) non possono offrire: − potenza computazionale su richiesta, proporzionale alle esigenze; − capacità di storage facilmente scalabile con possibilità di implementare congiuntamente soluzioni eterogenee quali Network Attached Storage, Storage Area Network, Direct-Attached Storage; − bilanciamento del Carico Computazionale dinamico; − gestione degli accessi contemporanei ai dati e delle richieste di accesso multiple da parte degli utenti. L’impiego di tecniche proprie del Cloud Computing, consente invece di ottenere i seguenti vantaggi: − attuare una efficace astrazione delle risorse hardware (HaaS), caratteristica ancor più interessante considerando che si hanno a 7
DIDAMATICA 2009 disposizione le risorse hardware virtualizzate della griglia sottostante; − poter integrare varie cloud applications (erogate come SaaS e disponibili in Internet) al PLE stesso, ottenendo così una piattaforma di servizi integrati (PaaS); − far uso dei servizi web 2.0 integrati nelle cloud applications per affiancare alle tradizionali comunicazioni di tipo asincrono, tipiche dei VLE, anche quelle sincrone come videochat, telefonate VoIP e Instant Messaging di vario tipo; − poter beneficiare di nuove tecniche di sviluppo software [Espadas et al, 2008] che consento una sempre maggior integrazione degli attuali linguaggi di programmazione nelle cloud applications. 3.3 Scelte implementative I concetti riassunti nei paragrafi precedenti rappresentano uno studio di fattibilità condotto, nell’ambito del più vasto progetto Cybersar, con l’obiettivo di sperimentare alcune soluzioni tecnologiche e poterne testare il funzionamento. La griglia computazionale che ospita il progetto è costituita da sette poli computazionali distribuiti in Sardegna. Ogni polo è costituito da decine o centinaia di nodi di calcolo, a seconda della specificità del plesso, equipaggiati con processori dual-core a 64 bit, schede madri supportanti più tecniche di boot, memoria RAM di tipo DDR a 400 MHz e dischi che supportano il funzionamento ininterrotto. I sistemi operativi principalmente adottati sono Linux e secondariamente Windows, ma le tecnologie cloud esaminate sono completamente web-based, quindi il S.O. non è da considerarsi fattore rilevante. La soluzione risultata migliore per giungere alla realizzazione di PLEs è stata l’adozione di un social network engine open source, Elgg (elgg.org), che consente agli sviluppatori di realizzare una piattaforma di applicazioni personalizzate e selezionate tra quelle del web 2.0. L’idea di Elgg è quella di consentire l’integrazione degli aspetti comuni al social networking nelle applicazioni web preferite. Oltre a questa caratteristica Elgg presenta due funzionalità fondamentali per la fase implementativa del progetto: − è eseguito su Apache, MySQL e PHP (AMP technology); questo garantisce una massima compatibilità con i server della griglia computazionale nei quali possono girare tutte le applicazioni compatibili su web server Apache; − gli sviluppatori possono implementare moduli e plugins addizionali completamente integrabili al resto della piattaforma. In questo modo, oltre ai moduli di e-learning già disponibili e interfacciabili 8
Metodiche progettuali per Personal Learning Environments in ambiente Grid e Cloud Computing con elgg è possibile creare applicazioni proprie della griglia e ospitarle negli stessi server per essere erogate come cloud services. Per integrare a quest’ultima funzionalità, la creazione di applicazioni direttamente interfacciabili con la griglia si è scelta l’adozione dell’ambiente di sviluppo g-eclipse [Gjermundrod et al, 2008] (geclipse.org). Questo framework di sviluppo è stato costruito a partire dal noto eclipse e fornisce i tools necessari a realizzare applicazioni che oltre a essere interfacciabili con le risorse delle griglia, possono anche gestirle attraverso una comunicazione diretta con il middleware. G-eclipse al momento è supportato solo sui principali middleware per griglie computazionali, tra i quali glite che è il middleware impiegato nella griglia Cybersar. Un’ultima caratteristica interessante di Elgg gli consente di integrare anche alcuni VLE per aiutare coloro che vogliono integrare al proprio PLE anche i classici ambienti di e-learning formali, primo tra tutti Moodle, che avendo aderito al progetto Elgg, è integrabile mediante un plugin. 4. Conclusioni Attualmente le tecnologie descritte nel paper sono in fase di sperimentazione presso una delle Virtual Organization (VO) appartenenti alla griglia computazionale di COSMOLAB. Il primo obiettivo è la costruzione di un PLE di default contenente tutti gli strumenti di e-learning e social networking più diffusi in modo da fornire una base di partenza all’utente nella quale poi aggiungere o modificare a proprio piacimento i servizi preferiti. I risultati ottenuti fino a questo punto consento di affermare che le tecnologie Grid e Cloud Computing possono dare diversi valori aggiunti nell’erogazione di servizi e contenuti e-learning, nonché introdurre livelli di QoS, quando richiesto. Possibili sviluppi futuri relativi a questo lavoro sono orientati all’implementazione di nuovi servizi per PLEs, sviluppando sia cloud applications, sia applicazioni grid-based mediante il framework g-eclipse. Bibliografia [Attwell, 2007] Attwell G., eLearning Papers, www.elearningpapers.eu vol 2 nº 1, January 2007, ISSN 1887-1542, 2007, 1-8. [Choudhary, 2007] Choudhary V., Software as a Service: Implications for Investment in Software Developments, Proc of the International Conference on System Sciences, 2007, 209. 9
DIDAMATICA 2009 [Dan, 2007] Dan. M., The Business Model of Software-As-a-Service, Proc of the International Conference on Service Computing, 2007, 701-702. [Ebner, 2007] Ebner M., E-Learning 2.0 = e-Learning 1.0 + Web 2.0?, Proc of the International Conference on Availability, Reliability and Security, 2007, 1235-1239. [Espadas et al, 2008] Espadas J., Concha D., Molina A., Application Development over Software-as-a-Service Platforms, Proc of the International Conference on Software Engineering Advances, 2008, 97-104. [Foster et al, 2008] Foster I., Zhao Y., Raicu I., Lu S., Cloud Computing and Grid Computing 360-Degree Compared, Proc of the Grid Computing Environments Workshop, 2008, 1-10. [Gjermundrod et al, 2008] Gjermundrod H., Dikaiakos M.D., Stumpert M., Wolniewicz P., Kornmayer H., g-Eclipse - an integrated framework to access and maintain Grid resources, Proc of the International Conference on Grid Computing, 2008, 57-64. [Lin et al, 2008] Lin G., Dasmalchi G., Zhu J., Cloud Computing and IT as a Service: Opportunities and Challenges, Proc of the International Conference on Web Service, 2008, 374-375. [Olsen, 2006] Olsen E.R., Transitioning to Software as a Service: Realigning Software Engineering Practices with the New Business Model, Proc of the International Conference on Service Operations and Logistics, and Informatics, 2006, 266-271. [Sirtl, 2008] Sirtl H., Software plus Services: New IT- and Business Opportunities by Uniting SaaS, SOA and Web 2.0, Proc of the International Conference on Enterprise Distributed Object Computing, 2008, 18-19. [Weiss, 2007] Weiss A., Computing in the Clouds. Networker, ACM, 2007. [Yang et al, 2005] Yang C., Ho H., Pan C., Using Grid Computing and PVFS2 Technologies for Construction of an e-Learning Environment, Proc of the International Conference on Advanced Learning Technologies, 2005, 898-902. 10
Puoi anche leggere