29
MediaMosa in Blackboard and Android - technical background VLE and mobile development Informatiseringscentrum November 25, 2010

MediaMosa + blackboard + android

Embed Size (px)

DESCRIPTION

Presentation by Tom Kuipers from the UvA at the MediaMosa Community day november 25th at SURFnet

Citation preview

Page 1: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android - technical backgroundVLE and mobile development

Informatiseringscentrum

November 25, 2010

Page 2: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 2

Agenda

It’s all about XML Java API Blackboard Building Block Android App Q&A

Page 3: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 3

MediaMosa interface

MediaMosa Java API

GET /asset/G6360d62gs4yaS4IyTmMUHhB

<item id="1"> <asset_id>G6360d62gs4yaS4IyTmMUHhB</asset_id> <app_id>5</app_id> <owner_id>jansen</owner_id> <videotimestamp>2009-10-08 14:11:20</videotimestamp> <videotimestampmodified>2009-10-08 14:11:20</videotimestampmodified> [...]</item>

Page 4: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 4

MediaMosa interface

REST module in WLE

Page 5: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 5

Page 6: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 6

XML Schema (XSD)

Validation Service contract Documentation Code generation

Page 7: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 7

Validation

Automatically determine if message is valid or invalid. Are required elements present? Do they contain valid values according to their data types?

Priscilla Walmsley, “The Importance of Schema Design in SOA” (2010)

Page 8: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 8

Service contract

A schema serves as part of the understanding between two parties. The service provider and the service consumer can both use the schema as a machine-enforceable set of rules describing the interface.

Priscilla Walmsley, “The Importance of Schema Design in SOA” (2010)

Page 9: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 9

Documentation

Schemas document the service contract for the developers and end users that will be implementing or using the service. Narrative human-readable annotations can be added to schema components to further document them.

Priscilla Walmsley, “The Importance of Schema Design in SOA” (2010)

Page 10: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 10

Code generation

Schemas are also used to generate classes and interfaces that are used to read and write the XML message payloads. When a service contract is designed first, classes can be generated automatically from the schema definitions, ensuring that they match. The schema provides information not only about what elements (objects) will appear in XML messages, but also about their data types.

Priscilla Walmsley, “The Importance of Schema Design in SOA” (2010)

Page 11: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 11

XSL Transformation (XSLT)

Transform structure of XML document Translate MediaMosa responses to format which

conforms to schema Translate <item> to <asset>, <mediafile>, <job> etc.

Page 12: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 12

Java API

Make REST calls Process XML responses Partial implementation of the MediaMosa API Reusable JavaDoc

Page 13: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 13

Mediamosa Java API Blackboard

uPortal

Sakai

Page 14: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 14

Mediamosa Java API uPortal

Sakai

Blackboard

Page 15: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 15

Mediamosa Java API Sakai

Blackboard

uPortal

Page 16: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 16

Mediamosa Java API Blackboard

uPortal

SakaiSURFnet

UvA

Page 17: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 17

Blackboard Building Block

Virtual learning environment Building block: added functionality Using video is problematic Simplicity Integration Upload, play, search, metadata Open source

Page 18: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 18

Blackboard Building Block

Page 19: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 19

Building Block - changes

MVC (Model-View-Control) BB9 API changes bbNG layout tags (BB9 look and feel) Changed javascript framework, from jQuery to

Prototype BB9 ships with Prototype Removed JWplayer dependency, embed code

provided by MediaMosa platform

Page 20: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 20

Building Block - issue

Dynamic contextmenu usage <bbNG:listContextMenu dynamic="true" />

bb-ui-webapi.jar missing on classpath Blackboard support case Cannot distribute building block with Blackboard

library included due to legal issues Build from source and include your own copy

Page 21: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 21

Android App

Page 22: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 22

Android App

Page 23: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 23

Android App development

App or mobile site Upload feature isn't possible for mobiles. Form-

based file upload is not supported Smartphone features: video recording,

connectedness Source code is written in Java Familiar tooling (Eclipse IDE, Maven) Reuse MediaMosa Java API

Page 24: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 24

Android App caveats

Dalvik VM != Java VM No JAXB, switched to SimpleXML for binding XSLT since API Level 8 (Android 2.2) Streaming over HTTP or RTSP No player functionality in App Prototype: not released, limited functionality

Page 25: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 25

Android App recorded video

Video: codec mp4, container 3pg Audio: Adaptive Multi-Rate (AMR or AMR-NB)

audio codec Recompile FFmpeg (0.6):

--enable-libopencore-amrnb

--enable-libopencore-amrwb

Transcode uploaded file automatically

Page 26: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 26

MediaMosa platform

Android App

Page 27: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 27

MediaMosa platform

Android App

App server

Page 28: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 28

App server setup - implications

Pro: User identity: authentication

and authorization XSL transformation on

server Or parse to JSON output Supports older Android

versions Smaller footprint for Andriod

app

Con: Android app is less generic:

pre-configured to use specific server

Page 29: MediaMosa  + blackboard + android

MediaMosa in Blackboard and Android 29

Q&A

[email protected] http://mediamosa.org