reusable whiteboard wicket component for apache openmeetings

44
MULTI USER WHITEBOARD WEB APPLICATION

Upload: andun-sameera

Post on 21-Aug-2015

3.194 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Reusable Whiteboard Wicket Component for Apache Openmeetings

MULTI USER WHITEBOARD WEB

APPLICATION

Page 2: Reusable Whiteboard Wicket Component for Apache Openmeetings

I AM,

• Andun S.L. Gunawardana• Co- Founder, Sith Solutions (Pvt) Ltd Sri Lanka and emoJot USA

• Undergraduate of Computer Science and Engineering Department University of Moratuwa, Sri Lanka

• GSoC 2013 Student – Apache OpenMeetings

• Contributor – Apache WicketStuff, Apache Synapse, Apache Airavata, Apache Axis2

• Software Engineering Intern @ WSO2 - A GSoC Mentoring OrganizationContributor for WSO2 ESB – World’s fastest ESB, WSO2 Identity Server, WSO2 Application Server, WSO2 Clarity Framework

• Premier interest in SOA, Middleware and Cloud

Page 3: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 4: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 5: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE OPENMEETINGS

http://openmeetings.apache.org/

Page 6: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE OPENMEETINGS

• Apche Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools using API functions of the Red5 Streaming Server for Remoting and Streaming.

• OpenMeetings is initiated as a separate Google Code Project (http://code.google.com/p/openmeetings/) and later it joined Apache

Page 7: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE OPENMEETINGS

Page 8: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE OPENMEETINGS

• All the groupware features of Apache OpenMeetings are designed inside a one major component called Room. Users can create rooms with number of groupware tools and share them among group of people. People who enter these rooms can use these groupware tools in their collaborative work.

Page 9: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE OPENMEETINGS

Page 10: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE OPENMEETINGS• Features

• Audio and Video Conferencing

• Meeting recording and Screen sharing

• File Explorer

• Moderating System

• Multi-Whiteboard and Chat

Page 11: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE OPENMEETINGS• Features

• User and room management

• Private message center

• Plan meetings with integrated calendar

• Polls and Votes

• Backup

Page 12: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 13: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • White board provides drawing, writing, Drag n' Drop, Resizing, Adding Images

(Drag n' Drop from File-Explorer), Adding Symbol(s)/Cliparts .

• Can add a wide range of document formats (PDF, DOC, ODT, PPT etc.)

Page 14: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • Save Content, Load from Saved Content

• Zooming, Navigating

Page 15: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • Multiple Users Simultaneously

• Synchronization of Content Manipulation

• Many Instances of Whiteboard

Page 16: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?

Page 17: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?

Page 18: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?

Page 19: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 20: Reusable Whiteboard Wicket Component for Apache Openmeetings

HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET

• Whiteboard is a commonly used component in web application development

• It is really useful if there is a generic whiteboard component which is integrated to our development – A Reusable Component

• Considering that we have developed a generic whiteboard component using Google Closure Library and Apache Wicket web application development framework in my Google Summer of Code Project

Page 21: Reusable Whiteboard Wicket Component for Apache Openmeetings

HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET

• We used the JavaScript based whiteboard which is developed by Andrey Bogdanov (https://github.com/bay73/whiteboard)

• It is build using Google Closure Tools. Google Closure Tools is a set of tools to help developers build rich web applications with JavaScript. It was developed by Google for use in their web applications such as Gmail, Google Docs and Google Maps.

Page 22: Reusable Whiteboard Wicket Component for Apache Openmeetings

HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET

• Prime target of my project was Apache OpeMeetings 3.1.0 release.• Earlier versions of Apache OpeMeetings has been developed using

Openlaszlo Framework and Flash.• 3.0.0 onwards, Apache OpeMeetings is completely developed

using HTML5, Apache Wicket

Page 23: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 24: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE WICKET?

• Apache Wicket, commonly referred to as Wicket, is a lightweight component-based web application framework for the Java programming language

Page 25: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE WICKET?

• XHTML part of a web page in Wicket,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"

xml:lang="en" lang="en">

<body>

<span wicket:id="message" id="message">Message goes here</span>

</body>

</html>

Page 26: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS APACHE WICKET?

• Java part of the same web page in Wicket,package org.wikipedia.wicket;

import org.apache.wicket.markup.html.WebPage;

import org.apache.wicket.markup.html.basic.Label;

public class HelloWorld extends WebPage {

public HelloWorld() {

add(new Label("message", "Hello World!"));

}

}

Page 27: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 28: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHY APACHE WICKET?

• Less technologiesThere are just two technologies: Java and XHTML.

• Separation between layout and logic / JSP-freeIn Wicket all the logic is in Java-code which makes it compile-save, unit testable and debugable

• Refactoring capabilities / Keep the business logic up-to-date

Page 29: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHY APACHE WICKET?

• ComponentsEvery web application is developed as components. The logic for a business aspect is encapsulated in a component or in some components which can interact with each other. Components are reusable. Thus saves development time and avoids duplicated code

• Pure Object-Orientation• No session wasting and safe flows

In classic MVC applications everything was stored in the session. The developer forget to cleanup the session and it got bigger and bigger. Nobody knows what's in it. This can cause performance and security leaks

Page 30: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHY APACHE WICKET?

• Free and Open Sourced product which has a highly dynamic and very big developer community

• Higher quality and stability

Page 31: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 32: Reusable Whiteboard Wicket Component for Apache Openmeetings

THE MULTI USER WHITEBOARD

• Hosted in WicketStuff repository. Which is the main repository for reusable Wicket Components.

• https://github.com/wicketstuff/core/wiki/Whiteboard

• Initial version of the Whiteboard provides,• Draw basic geometric shapes like point, lines, circles, rectangles, curves, arrows

• Insert pictures & background images

• Basic manipulations like zooming, moving, undo

• Save/Load content

Page 33: Reusable Whiteboard Wicket Component for Apache Openmeetings

THE MULTI USER WHITEBOARD

• Integrated via Maven

<dependency>

<groupId>org.wicketstuff</groupId>

<artifactId>wicketstuff-whiteboard</artifactId>

<version>6.11</version>

</dependency>

Page 34: Reusable Whiteboard Wicket Component for Apache Openmeetings

THE MULTI USER WHITEBOARD

• Can be added to web page with two lines,XHTML,

<div wicket:id="whiteboardContainer"></div>

JAVA,

Whiteboard whiteboard = new Whiteboard("Unique Id for Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard. Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null", "Location of the Background Images Folder. Relative to Context Root. Can be null");

add(whiteboard);

Page 35: Reusable Whiteboard Wicket Component for Apache Openmeetings

THE MULTI USER WHITEBOARD

• Can be added to web page with two lines,XHTML,

<div wicket:id="whiteboardContainer"></div>

JAVA,

Whiteboard whiteboard = new Whiteboard("Unique Id for Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard. Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null", "Location of the Background Images Folder. Relative to Context Root. Can be null");

add(whiteboard);

Page 36: Reusable Whiteboard Wicket Component for Apache Openmeetings

THE MULTI USER WHITEBOARD

• Whiteboard content is represented in JSON{"background": { "height": 326, "width": 595.0481927710844, "left": -297.5240963855422, "type": "Background", "url": "http://localhost:8080/Documents/gmaps.jpg", "top": 163}, "elements": [ { "id": 5, "p2": 4, "color": "", "p1": 3, "trace": false, "hidden": false, "label": "", "type": "PencilCircle“ },}

Page 37: Reusable Whiteboard Wicket Component for Apache Openmeetings

THE MULTI USER WHITEBOARD

• Synchronization of Content, Save Content, Load Content functionalities use the JSON representation

Page 38: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 39: Reusable Whiteboard Wicket Component for Apache Openmeetings

DEMO

Page 40: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 41: Reusable Whiteboard Wicket Component for Apache Openmeetings

WHAT IS NEXT ?

• Adding,• Doc Sharing capability on Whiteboard• Adding complex drawing functionalities• Adding graph tools

Page 42: Reusable Whiteboard Wicket Component for Apache Openmeetings

MY AGENDAWhat is Apache OpenMeetings

What is a Multi User Whiteboard Web Application?

How the Whiteboard is build using Google Closure and Apache Wicket

What is Apache Wicket?

Why Apache Wicket?

The Multi User Whiteboard

Demo

What is Next?

Useful Urls

Page 44: Reusable Whiteboard Wicket Component for Apache Openmeetings

THANK YOU!