Palette Services Portal
Screencasts
These screencasts were encoded using XviD codec. If your computer seems not able to render them, simply install the free and lightweight XviD codec. We recommend the download of the XviD screencasts for a comfortable watching.
- Screencast 1 - Overview (XviD) - Overview (YouTube)
- Screencast 2 - Drag and Drop (XviD) - Drag and Drop (YouTube)
Specifications
In the frame of the Palette Services Portal development, a specification about widgets, based on the W3C Widgets 1.0 specification family was made.
Papers
- A Messaging API for Inter-Widgets Communication, Stéphane Sire, Micaël Pacquier, Alain Vagner, Jérôme Bogaerts, WWW2009, April 20-24, 2009, Madrid, Spain.
Introduction
Palette is a project involving a large amount of services, each of them providing a wide range of functionnalities focusing on a particular thematic such as argumentative debates or knowledge management. In the frame of a Community of Practice (CoP), how can we provide a unique and homogeneous entry point to the services a user needs ? How to make interact the latters through a unique graphical user interface ?
Acting as a federator, the Palette Services Portal is the answer to these problematics by delivering to CoP's users a global and customizable access to Palette Services on a unique screen. The user has at his disposal a complete view of the provided services, depicting in an efficient and concise way the perimeter of functionalities and information available within its CoP.
A portable and reusable web application container
The Palette Services Portal is represented as a widget portal, a screen composed by multiple applications delivering access to the different Palette Services available in a CoP. Such a graphical user interface offers unseen features, such as the composition of a wall of information and functionalities coming from multiple sources on the Internet.
From an end-user point of view, the rendering of this kind of user interface improves the global comprehension of the system, while encouraging the adoption and use of Palette Services within a CoP.
What are widgets?
In the frame of Palette, widgets are small web-based applications. They are independant, but are however able to communicate with each other while executed by our portal compliant with the majority of available web browsers. In order to ensure a sweet transition to the users of the portal in this new paradigm, widgets appear on the screen as windows, like the ones you can find on your favorite operating system, such as GNU Linux, Microsoft Windows or Apple Mac OS.

The content of a Palette widget is a « summarized » version of a Palette Service. Through them, some function of services will be fully, or partially usable by the end-user. When he wishes to use more sophisticated features, he will be able to access the full version of the services in a totally transparent manner.
A wide collection of Palette widgets are already available, from simple clocks, notepads, meeting recurrent needs of users, to more complex ones as RSS feed readers, shared schedules or semantic Wiki search engines.
Portability and respect of the standards
As a « Web 2.0 » application, the Palette Services Portal is usable on any type of last generation Internet browser. At present time, the portal is thereby compliant with the last versions of Mozilla Firefox, Microsoft Internet Explorer, Apple Safari, Google Chrome and Opera.
Palette widgets also respect the Widgets:1.0 Packaging and Configuration and Widgets 1.0 APIs and events specifications. By closely respecting these specifications, Palette Widgets are able to be executed on all widget engines that meet the W3C requirements. This encourages the reusability and transfert of widgets developped in the frame of the Palette project. Moreover, widgets developped in the context of third-party projects are of course compliant with the Palette Services Portal.
Adaptation to specific needs
Although the range of widgets available for the Palette Services Portal will suit to the majority of existing CoPs, some of them will have specific needs relevant to their activities.
Creating a new widget is quick and easy. Using typical web-based technologies such as XHTML, CSS and JavaScript, a developper able to create a simple Internet website is ready to create a new Palette widget. Widget development is also greatly simplified thanks to the « Widget API », an API available to every widget instantiated in W3C Widget-compliant portals. It will automatically undertake numerous operations the programmers will not have to care about anymore, and delivers an entire collection of methods required to build complex applications such as:
- access global properties of widgets such as titles and dimensions;
- get the attention of the end-user, notify him about a particular event;
- REST Web Services calls using AJAX (Cross-domain requests available);
- Event-based messaging between widgets;
- Drag and drop of resources between widgets with visual indicators;
- Automatic authentication of users against Palette services;
- management (saves and retrievals) of users' preferences;
More, a lot of widgets' properties can be specified in a declarative way using « widget manifests ». Thanks to this XML-based file format, the author of a widget can specify, for instance, the dimension, title, configuration parameters, ...
Management
The widget portal is easily manageable thanks to a graphical user interface enabling the administrator of a Palette Services Portal instance to configure and manage its portal by focusing on the following aspects :
- widgets management: installation, updates and deletion of widgets provided to end-users, categories;
- users management: creation, updates of properties, deletion of users of the portal;
- configuration: enable/disable OpenID support, private or public mode, CoP's name, ...
Internationalisation
There is a total of twenty-seven countries in the European Community in which twenty-three different languages are spoken. In this context, the Palette Services Portal and its widgets are completely internationalizable. Thanks to the Unicode encoding, alphabets containing special symbols such as Chinese, Arabic or Hebrew ones are supported. All character strings are centralized in isolated files that are easy to translate in an other language.
Composition and cooperation of services at the end-user level
According to the user's profile, a member of a CoP will not have the same needs than an other. This is why the Palette Services Portal provides unique features encouraging the adoption and use of different Palette services within a CoP, among people having different kinds of roles and profiles: the composition and cooperation of services at the end-user lever.
Composition of an individualized service range
The homogenization of the communication between different services within a CoP is expertly handled thanks to the use of a resource oriented architecture, by using XML as a common business format, and by exposing available resources through RESTful Web Services. Although this architecture is really efficient, members of a CoP don't have to worry about those kinds of technical issues. They just want to use the system in a convenient way. The role of the Palette Services Portal is thus to provide a graphical user interface layer able to offer an homogeneous, composite and interactive view of the CoP.
By relying on technologies involved in the emergence of the Web 2.0, the Palette Services Portal is capable of offering a global and individualized view of its CoP, in which different components are able to interact. A member can easily select the Palette widgets he just needs to accomplish its tasks, and then place them as he wants on its own portal view.
Cooperation of services
Chaining multiple tasks on a particular resource by going from service to service may be a hard task for the lambda user. To prevent this from happening, the widget portal enables users to make widgets (and thus Palette services) communicate with each other, and retrieve the result of their actions by using everyday life movements.
A member of community would need, for instance, to seek for a document via a resource search engine service (Palette Common Repository). Then, he would use the found resource in a particular tool in order to reuse it (DocReuse). Thanks to the intuitive graphical user interface of the Palette Services Portal, nothing is simpler. The end-user just have to « drag and drop » a resource from a widget to another to trigger a complex underlying process and achieve its goal by retrieving the result of its action, as shown on the following figure:
As you can see, composition and cooperation of services at end-user level provides a global and clear view of the composite system that users will have to use. Moreover, they also can trigger action chains on resources in an intuitive manner, enabling them to achieve complex processes implying multiple Palette Services.
The best of today and tomorrow
Social aspects, shared platform and data, knowledge, networks, syndication, distributed systems, ... all these words can define the Palette project. However, they reflect the essential components of the Internet's revival, also known as « Web 2.0 ».
XHTML, CSS, Ajax and Web Services are technologies that enabled the emergence of this new Web. The Palette Services Portal, as Palette services, integrates all these technologies and delivers to CoP a powerfull way to work together on a participative platform adapted to the Internet of today and tomorrow.

