Breaking down widget silos with a friendly Wookie Ross Gardler With thanks.

Slides:



Advertisements
Similar presentations
1 The phone in the cloud Utilizing resources hosted anywhere Claes Nilsson.
Advertisements

Developing downloadable mobile apps using HTML5 and PhoneGap Apache Callback Ron Perry, CTO, Worklight Inc.
HTTP Request/Response Process 1.Enter URL ( in your browser’s address bar. 2.Your browser uses DNS to look up IP address of server.com.
Developing Enterprise Applications with the WSO2 Application Platform
Apps & Widgets Scott Wilson [1] CETIS [2] Apache Wookie (incubating)
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
© 2012 Cisco and/or its affiliates. All rights reserved. Presentation_ID Cisco Public Quad APIs and SDK Preview Sachin Smotra Product Manger, Enterprise.
Widget Architecture. Terminology Widget, Gadget, Tool, Badge Widget Engine, Gadget Container, Widget Host Runtime Environment, Tool Proxy Runtime, Widget.
A problem in IMS Learning Design To promote interoperability, few services Local tool frameworks like LAMS have much richer tool environment –Easy provisioning.
Content Management, Working with WordPress Svetlin Nakov Telerik Corporation
Part or all of this lesson was adapted from the University of Washington’s “Web Design & Development I” Course materials.
Toward an OpenSocial Life Science Gateway Wenjun Wu, Michael E. Papka, Rick Stevens.
Native vs hybrid vs web mobile Application
Google App Engine Google APIs OAuth Facebook Graph API
Creation of hybrid portlet application for file download using IBM Worklight and IBM Rational Application Developer v9 Gaurav Bhattacharjee Lakshmi Priya.
WHAT IS A WEB APP? Van Kelly Yeshiva University July 6, 2013.
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Course review BTM 395: Internet Programming. What you have learnt in this course.
Introduction to ArcGIS API for JavaScript
Introduction CIS 136 Building Mobile Apps 1. What is a mobile app? 2  Computer program  Designed for small devices  Smartphones  Tablets  Other handhelds.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
Extending ArcGIS for Server
Template. Mobile devices used in the exploration.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
Secure Credential Manager Claes Nilsson - Sony Ericsson
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
EXact Suite Where are we going? Rome, 09/03/2015 The eXact Roadmap.
© Universidad Politécnica de Madrid How to develop a widget in Wirecloud (Application Mashup GE) Hands-on Webinar (November, 2012) Dr. Javier Soriano
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
Extend the Operations Dashboard with Custom Widgets (and more)
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
Extending the Operations Dashboard
Using NativeScript to develop native apps for IOS and Android
KAASHIV INFOTECH Presents INTEL XDK For Inplant Training / Internship, please download the "Inplant training registration form" from our website
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
CMS 2: Advanced Web Editing - Content Presented By: Katie Pagano, Special Projects Manager Steve Pont, Product Architect.
What web developers need to know when building Metro style apps Scott Dickens Principal Program Manager Lead Microsoft Corporation DEV352.
Live Mobile and Cloud Hacking by ACEs OGh | Fusion Middleware Experience (FME) 16-feb :45 – 16:45.
Understanding Web-Based Digital Media Production Methods, Software, and Hardware Objective
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
© 2014 IBM Corporation Activity Streams Integration IBM Connections 5.0 Workshop Author: Paul Godby IBM Ecosystem Development Duration: 45 minutes.
NCCUCS 軟體工程概論 Lecture 5: Ajax, Mashups April 29, 2014.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Basics Components of Web Design & Development Basics, Components, Design and Development.
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
Phonegap API & Phonegap Bridge CIS 136 Building Mobile Apps 1.
Build Cross-Platform Mobile Apps Using Visual Studio A Telerik webinar by Jeffrey T. Fritz March 27, 2014 AND.
PhoneGap. web-based mobile development framework, based on the open-source Cordova project. use standard web technologies such as HTML5, CSS3, and JavaScript.
Apache Wookie (Incubating)
Breaking down widget silos with a friendly Wookie Sander van der Waal
Apache Wookie (Incubating) Building a real widget
Apache Wookie (Incubating) Creating your first widget Ross Gardler
A little more App Inventor and Mind the GAP!
The Object-Oriented Thought Process Chapter 13
The CareWeb Framework Douglas K. Martin, MD
Personal Website Final Project
App Configuration, Customization or Development
Platform as a Service.
Open-O Client Project Proposal
WordPress Development
PHP / MySQL Introduction
Phonegap Bridge Configuration file
WordPress Development
And I have to create mobile apps too?
2/24/2019 6:15 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
PHP Forms and Databases.
Dev10. Eclipse Plug-ins in Notes 101, and then some Teresa Deane, BCC
Web Application Development Using PHP
WordPress Development
Presentation transcript:

Breaking down widget silos with a friendly Wookie Ross Gardler With thanks to Sander van der Waal

Apache Wookie (Incubating) Upload and deploy widgets for your applications Entered incubator July ‘09 –That's a long time ago Originally developed in EU project TenCompetence (Framework 6 IP)

Widgets? Mini portable applications –(typically) Small view area Examples include games, clocks, feed displays –But not limited to frivolous uses Lots of competing models: – iPhone SDK, Android SDK, Apple Dashboard, Opera Widgets, Nokia Widgets, Google OpenSocial etc

Wookie is… A Widget runtime for websites Lets you upload and deploy widgets Supports – W3C Widgets P&C, W3C Widgets Interface – Google / OpenSocial Gadgets Provides 3 rd party APIs as features – Google Wave Gadget API – BONDI client APIs

Wookie is…

W3C Widget Specs Packaging and Configuration –Recommendation (27 Sep 2011) –100 % conformance The Widget Interface –Last Call Working Draft 7 June 2011 –97 % conformance Widget Access Request Policy (WARP) –Recommendation (20 April 2010) –Conformance tests TBA

W3C DAP Device APIs & Policy Working Group Collection of client-side APIs Specifications for: –Camera –Contacts –Device status and settings –Messaging –Media gallery Input from eg. Nokia's APIs and BONDI

W3C Widget How-to Create : –HTML + CSS + JavaScript + image files –Add a “config.xml” file with some basic info Zip the lot Change the extension to.wgt Deploy in widget server That's it.

Or use Wookie skeletons “ant seed-widget” Edit a few files – HTML – CSS – Javascript “ant build-widget” or “ant deploy-widget”

Or use Wookie templates “mkdir WIDGETNAME; cd WIDGETNAME” “cp../templates/default.widget.properties” Edit even fewer files – “*.properties” – Perhaps HTML/CSS Javascript “ant generate-widgets”

Wookie is also… A server for integrating widgets in 3 rd party apps – Moodle – Wordpress – Drupal – And more: Elgg, LAMS, BlackBoard Provides connector frameworks for integration – Perl, PHP, Python, Ruby, C#

Wookie under the hood Java web application REST API for widget management –(DEPRECATED) Admin UI for managing W3C Widgets JavaScript API objects for widgets at runtime JPA for server-side storage Comet / DWR used for processing JS events

Wookie REST API GET /widgets –Gets the list of widgets installed POST /widgetinstances –Instantiate a widget POST /participants –Add a participant to a widget instance Lots more at

Widget File Structure

confix.xml File Structure <widget xmlns=" id=" height="125" width="125"> Weather A silly Weather widget Scott Wilson Licensed under the Apache 2.0 License (see

Widget API example Widget.preferences – Gives access to preferences stored for the widget Widget.preferences.setItem(name, value) – Widget.preferences.setItem('displayStatus', this.checked) Widget.preferences.getItem(name) – Widget.preferences.getItem("displayStatus") Widget.proxify(external_url) – Access external url

Security and privacy Can store user credentials in widget.preferences –not very secure In-development oAuth functionality Same-origin policy; –Wookie provides a proxy –CORS is on roadmap

Widget runtime APIs <feature name=" required="true" /> W3C Widget Object : preferences, metadata BONDI camera API, W3C DAP Google Wave Gadget API : state, participants SCORM CMI API (eLearning).. anything else!

Let's see that in action.. Simple widgets – Bubbles Widgets using 3 rd party APIs – Weather

Collaborative Apps Use W3C Widgets packaging and widget object API with the Google Wave Gadgets API Runs in Wookie, no Wave server needed APIs: – State – Participants

State State is shared across “sibling” widgets State is propagated to related widgets using an event callback State is set by submitting deltas (as associative arrays) or single values

State example wave.setStateCallback(stateUpdated); stateUpdated = function(){ var keys = wave.getState().getKeys(); for (var i = 0; i < keys.length; i++) { alert(wave.getState().get(keys[i])); } }; wave.getState().submitValue(“key”, “value”);

Participants Who is using a shared instance Use Wookie’s participants REST API Viewer is the current user object – participants is the set of users

Participants example wave.setParticipantCallback(refreshMembers); refreshMembers: function(){ var participants = wave.getParticipants(); var memberList = ""; for (participant in participants) { name = participants[participant].getDisplayName(); memberList = name + " " + memberList; }... }

More action.. Collaborating widgets – Sharing state – Using participants

Apache Rave (Incubating) A web and social mashup engine Host, serve and aggregate – (Open)Social Gadgets using Shinding – W3C Widgets using Wookie Context-aware personalization and collaboration

Wookie Vs. Rave Rave – Open Social – Widgets and Gadgets – Widgetstore – UI – Context aware portals Wookie – W3C Widgets – Google Gadgets – Server only – Widget interaction – Widget Lifecycle – Context aware widgets

Get Involved! Create widgets Wookie can serve up Create plugins to connect Wookie with other platforms Create features that add more runtime capabilities Contribute to improving the server code itself Build web based systems with Rave –