Crafting the SAPO Campus platform, a thousand pixels at a time.
Search
Latest posts

High Performance Javascript - dealing with JSON

No Widget is an Island

Designing Email - Part II

Designing Email - Part I

The amazing "widget" object

The Facebook Witch Project

SAPO Campus keynote from OSL Unesco demonstration session

SAPO Campus session at the UNESCO OSL Seminar

SAPO Campus - Eden Seventh Open Classroom Conference

SAPO Campus leaflet for the UA freshmen

Archive

Janeiro 2011

Novembro 2010

Fevereiro 2010

Dezembro 2009

Novembro 2009

Outubro 2009

Setembro 2009

Julho 2009

Maio 2009

Abril 2009

Março 2009

Fevereiro 2009

Dezembro 2008

Novembro 2008

Outubro 2008

Setembro 2008

Terça-feira, 10 de Março de 2009
Widget Platform Technical Specification
[caption id="attachment_188" align="alignnone" width="450" caption="This diagram shows the overall structure of the Widget Platform"][/caption]

Let's make some sense out of all of this, step by step.

Widgets in the Cloud


This component represents all the widgets that are available for display inside the platform. These should be implemented using the UWA specification, an API made available by Netvibes. Both the location and business logic of these widgets are completely separated from the platform itself, allowing for independent widget design. Besides this, by using UWA to power the widget platform we gain instant access to an already huge library of user-developed widgets, as well as ensure widgets built by our team run in a growing number of platforms supporting the UWA standard: NetvibesiGoogleOSX Dashboard and Windows Vista Gadgets, to name a few.

Widget Server


Based on the open-source Netvibes platforms, the Widget Server comprises two key components:


I've modified some of the original files, in order to make the platform run completely independent of the Netvibes servers, as well as to be able to incorporate in each widget a custom stylesheet which gives it some basic styling rules (which can obviously be overridden by specifying new ones in the widget code).

I'm also considering the possibility of using this same method to add one (or more) Javascript files, in order to include the (most awesome) jQuery library. I've received some complaints from the widget development team that the methods specified by the UWA are too shallow and limited, and they wish to harness the power jQuery offers in order to build more attractive and functional widgets.

Widget Platform


The Widget Platform itself is currently little more than XHTML, CSS and Javascript. In the near future, it will be integrated in a CakePHP application for dynamic behaviour. The widgets are parsed by the Exposition Server, rendered in frame mode and then displayed inside iFrames (yes, I know this sucks, but I couldn't get around it no matter what). The widgets are able to communicate with the platform through this very well documented technique. Once again, I've modified some of the core files in the Javascript Runtime to allow for custom messages to be sent to the platform. The platform receives these messages and decides accordingly on what to do.

The rest of the platform uses jQuery to allow for full interactivity with both the widgets and the platform environment itself. The currently supported features include:

Only partially implemented right now is the 'Add Content' menu, which allows the user to search for widgets (either by full text search or by category lists) and drop them in an area of choice.

Future plans include the ability to select from a list of different area layouts (so the user is not limited to the initial three column layout), support for different themes and customization of the header space. Also in the works is the ability to attribute custom names for areas.

I hope you enjoyed this small technical intro to the widget platform. It is still only in a (very) alpha state, and it should take some rather dramatic leaps in the very near future. If you're interested in seeing the current look and feel of the platform, feel free to check out this screencast I made (it's spoken in Portuguese, but you can pretty much get what is going on).


tags:

Published by bruno-abrantes às 18:10

3

De csantos a 10 de Março de 2009 às 23:53
Obrigado pelos esclarecimentos! Ajudou a esclarecer algumas dúvidas :)


De Daily Digest for 2009-03-10 | Pedro Trindade a 11 de Março de 2009 às 08:08
[...] Widget Platform Technical Specification em SAPO Campus [...]


De Visualization on widgets | sapocampus a 7 de Setembro de 2010 às 13:03
[...] to the concept of the SAPO Campus platform, there’s a strong widget presence. Based on this, I made a few integration tests of [...]


Post a comment

About us
Janeiro 2011
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1

2
3
4
5
6
7
8

9
10
11
12
13
14
15

16
17
18
19
20
21
22

23
24
25
26
27
28
29

30
31


tags

todas as tags

subscrever feeds

RSSPosts

RSSComentários

RSSComentários do post