SlideShare ist ein Scribd-Unternehmen logo
1 von 21
ROLE Technologies –
        A possible contribution to Apache Rave?

           Dominik Renzel                                Sten Govaerts
         Chair of Computer Science 5               Department of Computer Science
Advanced Community Information Systems (ACIS)   Katholieke Universiteit Leuven, Belgium
      RWTH Aachen University, Germany


                              Apache Hackathon
                       June 13, 2012, Utrecht, Netherlands


                                                     This work by Dominik Renzel is licensed under a
                                                     Creative Commons Attribution-ShareAlike 3.0 Unported.
                                                                                 © www.role-project.eu
ROLE Background & Motivation




                                     
Currently happening: significant shift in education
   From passive lectures to interactive (online) group work
   Online learning tools cherry-picked or handcrafted by educators & learners
   DIY motto “create, disassemble, repurpose“ applied to educational products
   Learners & educators create mash-up learning apps, lessons & processes
 More collaboration, personalization, freedom, effectiveness
 ROLE: Inherent DIY support using widget-based Personal Learning
  Environments

                                                                      © www.role-project.eu
ROLE Vision




                        • Empower learners to build their
      ROLE Vision         own responsive learning
                          environments



       Responsiveness
                        • Awareness and reflection of own
                          learning process



        User-Centered
                        • Individually adapted composition
                          of personal learning environment



                                                   © www.role-project.eu
ROLE Technologies – How to sustain?




                                      ?
                          ?




                                          © www.role-project.eu
The ROLE Sandbox (role-sandbox.eu)

 Public installation of ROLE SDK for development & testing purposes
 ROLE Reference Container for Widget-based PLE


 Space
   Widget List
   (add/remove)


   Member List
   (join/leave)

   Space Chat



   Widgets
   (max/minimize)


       Does this already remind you of Apache Rave?
                                                              © www.role-project.eu
ROLE APIs




 ROLE APIs
 How to make your widget communicate in real-time –
 The ROLE Interwidget Communication (IWC) API




                                              © www.role-project.eu
ROLE XMPP-based Real-time Communication & Collaboration
ROLE Interwidget Communication – Concept




                                           © www.role-project.eu
ROLE Interwidget Communication – Facts

 Message-based communication between widgets
 Two different forms
    Single-user-single-browser:
        Integration of local widget instances to full applications
        Realized with HTML5 Web Messaging (other mechanisms realizable, too)
    Multi-user-multi-browser:
        Remote user collaboration in real-time
        Realized with XMPP Publish-Subscribe
 Message types
    Events: what happened upon sending message
    Intents: what should happen on receiving message
    (Use of semantic descriptions in message representations)
 Context
    In general: XMPP Publish-Subscribe Channel
    ROLE Reference Implementation: ROLE Spaces

 Refers to Epic RAVE-25
ROLE Interwidget Communication – Client API


 Function             Description
 connect(callback) Connects the client to local interwidget communication.
                   After successful call, the client is able to publish and
                   receive intents. Received intents are passed to the
                   callback function.
 disconnect()         Disconnects the client from interwidget communication.
 publish(intent)      Publishes a JSON-encoded intent.

 Initialize ROLE IWC Client
 var iwcClient = new iwc.Client();
 iwcClient.connect(function(intent){
     // process intent
 });

 Publish ROLE IWC Intent
 iwcClient.publish(intent);


                                                                  © www.role-project.eu
ROLE IWC – Intent Message Format

  var intent = {
      "component": "",
      "sender":"bob@somewhere.org?http://widget.org/sender.xml",
      "data":"http://data.org/some/data",
      "dataType":"text/xml",
      "action":"ACTION_UPDATE",
      "categories":["category1","category2"],
      "flags" :["PUBLISH_GLOBAL", "own_flag"],
      "extras":{"key1":"val1", "key2":"val2"}
  };

  Google Android-like Intents
      component(*) (String) - the component name of a specific recipient widget
       (explicit intent) or the empty string to indicate broadcasting (implicit intent)
      sender (String) - sender & sender widget.
      action (String) - the action to be performed by receivers (e.g. ACTION_UPDATE)
      data(*) (String) - data in form of a URI (e.g. http://myresource.org/microblogs/1)
      dataType(*) (String) - the data type in MIME notation (e.g. text/html)
      categories (Array) - categories of widgets to process the intent (e.g. ["editor"])
      flags (Array) - flags controlling intent processing (e.g. ["PUBLISH GLOBAL"])
      extras (JSON) - auxiliary data (e.g. {"examplekey":"examplevalue“})
                                                                            © www.role-project.eu
Efforts in XMPP Community: XMPP over WebSocket




    XMPP over WebSocket Gateway (WXG)
           Based on "An XMPP Sub-protocol for WebSocket" (J. Moffit, E. Cestari)
           Jetty-based implementation (supporting RFC 6455)
           Source: https://github.com/hocken/wxg
    Web Client Library Extension (strophe.js)
           (Semi-)transparent BOSH/XMPP over WS
           Refers to Strophe Issue 68:
           Source: https://github.com/Gordin/strophejs
(XMPP over) BOSH vs. WebSocket


Property                 BOSH                     WebSocket
Connections              Two concurrent           One
Connection Persistence   Repeated open/close      Persistent
Transportable Data       Textual only             Textual, binary
Latency                  High                     Low
Package Overhead         High (180+ bytes for     Low (2 bytes for frame
                         headers per roundtrip)   headers)
Uptake                   High                     Low
XMPP Servers             Most                     Few
XMPP JS Libraries        All                      Only some experimental
Browser support          Most                     Few


      XMPP over WebSocket to obsolete BOSH with
       stable specifications and implementations
ROLE Interwidget Communication – Online Resources

 Documentation
    ROLE SDK API Docs (SDK Download)
    Sourceforge MediaWiki (Wiki Page)
    Overview Paper (PDF)
 Demonstration
    ROLE SDK Trailer (youTube Video)
    Demo Space in ROLE Sandbox: http://role-sandbox.eu/spaces/iwc
 Code
    Libraries
        Proxy Part (code)
        Client Part (code)
    Tools
        ROLE IWC Test Stub Widget (code)
    Demo Widgets (cf. Demonstration)
        Synchronized Video Player (code)
        Synchronized Map Navigation (code)
        Collaborative Sketching Widget (code)
        Real-time Shared Note-Taking (code)
                                                                     © www.role-project.eu
ROLE APIs




 ROLE APIs
 How to make widgets manage Linked Data resources –
 The OpenApp API




                                             © www.role-project.eu
OpenApp – Concept


 API for Linked Data-style resource management
 Everything is a Resource
      URI
      Representation
      Metadata
      Data
 Resources can have sub-resources
    Access to sub-resources filtered by type or relation to parent
 Special Resources
    Space is topmost resource in a space (shared)
    User is topmost personal resource (protected)
OpenApp – Client API


openapp.oo.Resource
      create                    getInfo
      del                       setInfo
      getSubResources           getMetadata
      refresh                   setMetadata
                                 getRepresentation
                                 setRepresentation
 Get current space & user as resources
var space = new openapp.oo.Resource(openapp.param.space());

var user = new openapp.oo.Resource(openapp.param.user());

 Get resource information (JSON object with key/value pairs)
space.getInfo(function(info) {
    alert(info);
});
OpenApp – Client API (Code Samples continued)


 Create data sub-resource under space
 space.create({
 Get space resource metadata "data",
     relation: openapp.ns.role +
     type: "my:data:namespace:uri",
     metadata: meta,
     callback: function(sub){
         //do something with new sub-resource
     }
 });


 Find sub-resources via relation and type
 space.getSubResources({
     relation: openapp.ns.role + "data",
     type: "my:data:namespace:uri",
     onAll: function(arr) { //alternatively use onEach
         //Do something with array of found subresources
     }
 });
OpenApp – Browsing Resources with the Index Page

 For any resource open index page with <RESOURCE_URI>/:index
CfP – ROLE Widget Enchantment Competition




                                            © www.role-project.eu
Visit the ROLE project page
                 role-project.eu
          Download the ROLE SDK
     sourceforge.net/projects/role-project
           Try the ROLE Sandbox
                role-sandbox.eu
    Enter the ROLE Widget Competition
      role-project.eu/WidgetCompetition
           Join ROLE on LinkedIn
      linkedin.com/groups?gid=1590487
Share your widgets in the ROLE Widget Store
              role-widgetstore.eu/



                                              © www.role-project.eu

Weitere ähnliche Inhalte

Andere mochten auch

JTEL11 - Short Introduction to ROLE Social Requirements Engineering
JTEL11 - Short Introduction to ROLE Social Requirements EngineeringJTEL11 - Short Introduction to ROLE Social Requirements Engineering
JTEL11 - Short Introduction to ROLE Social Requirements EngineeringDominik Renzel
 
Recruitment Solution- By prothom-alojobs
Recruitment Solution- By prothom-alojobsRecruitment Solution- By prothom-alojobs
Recruitment Solution- By prothom-alojobsMd. Shahriar Arefin
 
Requirements Bazaar: Experiences, Added Value & Acceptance of Requirements Ne...
Requirements Bazaar: Experiences, Added Value & Acceptance of Requirements Ne...Requirements Bazaar: Experiences, Added Value & Acceptance of Requirements Ne...
Requirements Bazaar: Experiences, Added Value & Acceptance of Requirements Ne...Dominik Renzel
 

Andere mochten auch (6)

35 line coding
35 line coding35 line coding
35 line coding
 
JTEL11 - Short Introduction to ROLE Social Requirements Engineering
JTEL11 - Short Introduction to ROLE Social Requirements EngineeringJTEL11 - Short Introduction to ROLE Social Requirements Engineering
JTEL11 - Short Introduction to ROLE Social Requirements Engineering
 
Recruitment Solution- By prothom-alojobs
Recruitment Solution- By prothom-alojobsRecruitment Solution- By prothom-alojobs
Recruitment Solution- By prothom-alojobs
 
Links of london
Links of londonLinks of london
Links of london
 
Introduction to SCORE
Introduction to SCOREIntroduction to SCORE
Introduction to SCORE
 
Requirements Bazaar: Experiences, Added Value & Acceptance of Requirements Ne...
Requirements Bazaar: Experiences, Added Value & Acceptance of Requirements Ne...Requirements Bazaar: Experiences, Added Value & Acceptance of Requirements Ne...
Requirements Bazaar: Experiences, Added Value & Acceptance of Requirements Ne...
 

Ähnlich wie ROLE Technologies – A possible contribution to Apache Rave

Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshowTee Malapela
 
Vijay Mix Presentation
Vijay Mix PresentationVijay Mix Presentation
Vijay Mix Presentationvijayrvr
 
Developing With Openbravo Rl Eppt
Developing With Openbravo Rl EpptDeveloping With Openbravo Rl Eppt
Developing With Openbravo Rl Epptvobree
 
Drupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source AppDrupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source ApplittleMAS
 
An overview of OpenStack for the VMware community
An overview of OpenStack for the VMware communityAn overview of OpenStack for the VMware community
An overview of OpenStack for the VMware communityAnthony Chow
 
Open Innovation means Open Source
Open Innovation means Open SourceOpen Innovation means Open Source
Open Innovation means Open SourceBertrand Delacretaz
 
What is WebDAV - uploaded by Murali Krishna Nookella
What is WebDAV - uploaded by Murali Krishna NookellaWhat is WebDAV - uploaded by Murali Krishna Nookella
What is WebDAV - uploaded by Murali Krishna Nookellamuralikrishnanookella
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesNicola Ferraro
 
Fedora Overview
Fedora OverviewFedora Overview
Fedora Overvieweposthumus
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to KubernetesPaul Czarkowski
 
Analyzing data with docker v4
Analyzing data with docker   v4Analyzing data with docker   v4
Analyzing data with docker v4Andreas Dewes
 
Open Innovation means Open Source
Open Innovation means Open SourceOpen Innovation means Open Source
Open Innovation means Open SourceBertrand Delacretaz
 
Teched India Vijay Interop Track
Teched India Vijay Interop TrackTeched India Vijay Interop Track
Teched India Vijay Interop Trackvijayrvr
 
Open innovation in software means Open Source (2011 remix)
Open innovation in software means Open Source (2011 remix)Open innovation in software means Open Source (2011 remix)
Open innovation in software means Open Source (2011 remix)Bertrand Delacretaz
 
Pyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOpsPyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOpsAhmed Bessifi
 
CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011Nick Freear
 
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and toolsOpen Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and toolsOpenAIRE
 
Introduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStackIntroduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStackAbderrahmane TEKFI
 
Linked services for the Web of Data
Linked services for the Web of DataLinked services for the Web of Data
Linked services for the Web of DataJohn Domingue
 

Ähnlich wie ROLE Technologies – A possible contribution to Apache Rave (20)

Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
 
Vijay Mix Presentation
Vijay Mix PresentationVijay Mix Presentation
Vijay Mix Presentation
 
Developing With Openbravo Rl Eppt
Developing With Openbravo Rl EpptDeveloping With Openbravo Rl Eppt
Developing With Openbravo Rl Eppt
 
Drupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source AppDrupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source App
 
An overview of OpenStack for the VMware community
An overview of OpenStack for the VMware communityAn overview of OpenStack for the VMware community
An overview of OpenStack for the VMware community
 
Open Innovation means Open Source
Open Innovation means Open SourceOpen Innovation means Open Source
Open Innovation means Open Source
 
What is WebDAV - uploaded by Murali Krishna Nookella
What is WebDAV - uploaded by Murali Krishna NookellaWhat is WebDAV - uploaded by Murali Krishna Nookella
What is WebDAV - uploaded by Murali Krishna Nookella
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
 
Fedora Overview
Fedora OverviewFedora Overview
Fedora Overview
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Analyzing data with docker v4
Analyzing data with docker   v4Analyzing data with docker   v4
Analyzing data with docker v4
 
Open Innovation means Open Source
Open Innovation means Open SourceOpen Innovation means Open Source
Open Innovation means Open Source
 
Teched India Vijay Interop Track
Teched India Vijay Interop TrackTeched India Vijay Interop Track
Teched India Vijay Interop Track
 
Vicky_Resume
Vicky_ResumeVicky_Resume
Vicky_Resume
 
Open innovation in software means Open Source (2011 remix)
Open innovation in software means Open Source (2011 remix)Open innovation in software means Open Source (2011 remix)
Open innovation in software means Open Source (2011 remix)
 
Pyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOpsPyfest Tunisia 2015 - Python & DevOps
Pyfest Tunisia 2015 - Python & DevOps
 
CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011
 
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and toolsOpen Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
 
Introduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStackIntroduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStack
 
Linked services for the Web of Data
Linked services for the Web of DataLinked services for the Web of Data
Linked services for the Web of Data
 

Kürzlich hochgeladen

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Kürzlich hochgeladen (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

ROLE Technologies – A possible contribution to Apache Rave

  • 1. ROLE Technologies – A possible contribution to Apache Rave? Dominik Renzel Sten Govaerts Chair of Computer Science 5 Department of Computer Science Advanced Community Information Systems (ACIS) Katholieke Universiteit Leuven, Belgium RWTH Aachen University, Germany Apache Hackathon June 13, 2012, Utrecht, Netherlands This work by Dominik Renzel is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported. © www.role-project.eu
  • 2. ROLE Background & Motivation  Currently happening: significant shift in education  From passive lectures to interactive (online) group work  Online learning tools cherry-picked or handcrafted by educators & learners  DIY motto “create, disassemble, repurpose“ applied to educational products  Learners & educators create mash-up learning apps, lessons & processes  More collaboration, personalization, freedom, effectiveness  ROLE: Inherent DIY support using widget-based Personal Learning Environments © www.role-project.eu
  • 3. ROLE Vision • Empower learners to build their ROLE Vision own responsive learning environments Responsiveness • Awareness and reflection of own learning process User-Centered • Individually adapted composition of personal learning environment © www.role-project.eu
  • 4. ROLE Technologies – How to sustain? ? ? © www.role-project.eu
  • 5. The ROLE Sandbox (role-sandbox.eu)  Public installation of ROLE SDK for development & testing purposes  ROLE Reference Container for Widget-based PLE Space Widget List (add/remove) Member List (join/leave) Space Chat Widgets (max/minimize) Does this already remind you of Apache Rave? © www.role-project.eu
  • 6. ROLE APIs ROLE APIs How to make your widget communicate in real-time – The ROLE Interwidget Communication (IWC) API © www.role-project.eu
  • 7. ROLE XMPP-based Real-time Communication & Collaboration
  • 8. ROLE Interwidget Communication – Concept © www.role-project.eu
  • 9. ROLE Interwidget Communication – Facts  Message-based communication between widgets  Two different forms  Single-user-single-browser:  Integration of local widget instances to full applications  Realized with HTML5 Web Messaging (other mechanisms realizable, too)  Multi-user-multi-browser:  Remote user collaboration in real-time  Realized with XMPP Publish-Subscribe  Message types  Events: what happened upon sending message  Intents: what should happen on receiving message  (Use of semantic descriptions in message representations)  Context  In general: XMPP Publish-Subscribe Channel  ROLE Reference Implementation: ROLE Spaces  Refers to Epic RAVE-25
  • 10. ROLE Interwidget Communication – Client API Function Description connect(callback) Connects the client to local interwidget communication. After successful call, the client is able to publish and receive intents. Received intents are passed to the callback function. disconnect() Disconnects the client from interwidget communication. publish(intent) Publishes a JSON-encoded intent. Initialize ROLE IWC Client var iwcClient = new iwc.Client(); iwcClient.connect(function(intent){ // process intent }); Publish ROLE IWC Intent iwcClient.publish(intent); © www.role-project.eu
  • 11. ROLE IWC – Intent Message Format var intent = { "component": "", "sender":"bob@somewhere.org?http://widget.org/sender.xml", "data":"http://data.org/some/data", "dataType":"text/xml", "action":"ACTION_UPDATE", "categories":["category1","category2"], "flags" :["PUBLISH_GLOBAL", "own_flag"], "extras":{"key1":"val1", "key2":"val2"} };  Google Android-like Intents  component(*) (String) - the component name of a specific recipient widget (explicit intent) or the empty string to indicate broadcasting (implicit intent)  sender (String) - sender & sender widget.  action (String) - the action to be performed by receivers (e.g. ACTION_UPDATE)  data(*) (String) - data in form of a URI (e.g. http://myresource.org/microblogs/1)  dataType(*) (String) - the data type in MIME notation (e.g. text/html)  categories (Array) - categories of widgets to process the intent (e.g. ["editor"])  flags (Array) - flags controlling intent processing (e.g. ["PUBLISH GLOBAL"])  extras (JSON) - auxiliary data (e.g. {"examplekey":"examplevalue“}) © www.role-project.eu
  • 12. Efforts in XMPP Community: XMPP over WebSocket  XMPP over WebSocket Gateway (WXG)  Based on "An XMPP Sub-protocol for WebSocket" (J. Moffit, E. Cestari)  Jetty-based implementation (supporting RFC 6455)  Source: https://github.com/hocken/wxg  Web Client Library Extension (strophe.js)  (Semi-)transparent BOSH/XMPP over WS  Refers to Strophe Issue 68:  Source: https://github.com/Gordin/strophejs
  • 13. (XMPP over) BOSH vs. WebSocket Property BOSH WebSocket Connections Two concurrent One Connection Persistence Repeated open/close Persistent Transportable Data Textual only Textual, binary Latency High Low Package Overhead High (180+ bytes for Low (2 bytes for frame headers per roundtrip) headers) Uptake High Low XMPP Servers Most Few XMPP JS Libraries All Only some experimental Browser support Most Few  XMPP over WebSocket to obsolete BOSH with stable specifications and implementations
  • 14. ROLE Interwidget Communication – Online Resources  Documentation  ROLE SDK API Docs (SDK Download)  Sourceforge MediaWiki (Wiki Page)  Overview Paper (PDF)  Demonstration  ROLE SDK Trailer (youTube Video)  Demo Space in ROLE Sandbox: http://role-sandbox.eu/spaces/iwc  Code  Libraries  Proxy Part (code)  Client Part (code)  Tools  ROLE IWC Test Stub Widget (code)  Demo Widgets (cf. Demonstration)  Synchronized Video Player (code)  Synchronized Map Navigation (code)  Collaborative Sketching Widget (code)  Real-time Shared Note-Taking (code) © www.role-project.eu
  • 15. ROLE APIs ROLE APIs How to make widgets manage Linked Data resources – The OpenApp API © www.role-project.eu
  • 16. OpenApp – Concept  API for Linked Data-style resource management  Everything is a Resource  URI  Representation  Metadata  Data  Resources can have sub-resources  Access to sub-resources filtered by type or relation to parent  Special Resources  Space is topmost resource in a space (shared)  User is topmost personal resource (protected)
  • 17. OpenApp – Client API openapp.oo.Resource  create  getInfo  del  setInfo  getSubResources  getMetadata  refresh  setMetadata  getRepresentation  setRepresentation Get current space & user as resources var space = new openapp.oo.Resource(openapp.param.space()); var user = new openapp.oo.Resource(openapp.param.user()); Get resource information (JSON object with key/value pairs) space.getInfo(function(info) { alert(info); });
  • 18. OpenApp – Client API (Code Samples continued) Create data sub-resource under space space.create({ Get space resource metadata "data", relation: openapp.ns.role + type: "my:data:namespace:uri", metadata: meta, callback: function(sub){ //do something with new sub-resource } }); Find sub-resources via relation and type space.getSubResources({ relation: openapp.ns.role + "data", type: "my:data:namespace:uri", onAll: function(arr) { //alternatively use onEach //Do something with array of found subresources } });
  • 19. OpenApp – Browsing Resources with the Index Page For any resource open index page with <RESOURCE_URI>/:index
  • 20. CfP – ROLE Widget Enchantment Competition © www.role-project.eu
  • 21. Visit the ROLE project page role-project.eu Download the ROLE SDK sourceforge.net/projects/role-project Try the ROLE Sandbox role-sandbox.eu Enter the ROLE Widget Competition role-project.eu/WidgetCompetition Join ROLE on LinkedIn linkedin.com/groups?gid=1590487 Share your widgets in the ROLE Widget Store role-widgetstore.eu/ © www.role-project.eu