Archive for the ‘itop’ Category

Media – The Anatomy of an ITOP App

Wednesday, February 10th, 2010

mediaThe media frame is located on the right side of the application window. Media might be an image, an audio, a video, a graph, a flash animation, or a java applet. Conventional Web pages or self-contained Web applications may also be displayed in the media frame. In these cases, they are displayed within an iframe for security reasons.

The media frame features the title bar, the tool bar and the status bar. The title bar contains the name of the media currently being displayed. The tool bar provides buttons to perform actions. The status bar helps the user to be aware of which media is currently being displayed. The buttons provided in the toolbar are also available from a menu on the status bar.

On limited-size screens, the tool bar may be hidden, appearing only when the user hovers over the top part of the screen.

Form – The Anatomy of an ITOP App

Tuesday, February 9th, 2010

formThe form frame is located in the middle of the application window. Just like the list, the form may be populated from the server-side by calling an appropriate service. To allow secure cross-site access, JSONP is used.

The form frame features the title bar, the tool bar and the status bar. The title bar contains the name of the form currently being displayed. The tool bar provides buttons to perform actions. The status bar helps the user to be aware of which part of the form is currently being displayed, since the form might be broken into several parts. The buttons provided in the toolbar are also available from a menu on the status bar.

On limited-size screens, the tool bar may be hidden, appearing only when the user hovers over the top part of the screen.

List – The Anatomy of an ITOP App

Monday, February 8th, 2010

listThe list frame is located on the left side of the application window and its main purpose is to help users browse different services. The list may be populated from the server-side by calling an appropriate service. Services may be interlinked with the serviceLink metadata. To allow secure cross-site access, JSONP is used.

Since browsing services is fundamental, a navigation bar is available on the left corner. The navigation bar allows the user to go back and forth, refresh, check the history, and access shortcuts. On limited-size screens, the navigation bar may be hidden, appearing only when the user hovers over the left part of the screen.

Besides the navigation bar, the list frame also features the title bar, the tool bar and the status bar. The title bar contains the name of the list currently being displayed. The tool bar provides buttons, as well as a search box, which allows users to perform actions or filter the list. The status bar helps the user to be aware of the current services being displayed. To navigate, a user may click on one of the items in the list. A user may also select one or more items to perform an action. The buttons provided in the toolbar are also available from a menu on the status bar.

Frames – The Anatomy of an ITOP App

Friday, February 5th, 2010

frames

Each application window is divided in 3 frames: list, form and media. The framebar may be used to show or hide these frames. The three frames might appear simultaneously, or any combination of two, or just one.

On limited-size screens, only one of the frames may be visible at a time. The framebar may be hidden, appearing only when the user hovers over the right part of the screen.

Tasks – The Anatomy of an ITOP App

Thursday, February 4th, 2010

tasks

On the lower part of the screen, we have the taskbar. The right corner of the taskbar is reserved for status information. The tasks are represented by icons on the left corner of the taskbar. When the user hovers the mouse over one of these icons, four options appear: maximize, minimize, replicate and close.

On limited-size screens, such as mobile phones for example, the taskbar may be hidden, appearing only when the user hovers over the lower part of the screen.

Overview – The Anatomy of an ITOP App

Wednesday, February 3rd, 2010
Overview of an iTop Application

Overview of an ITOP Application

Photos from FISL 10

Monday, June 29th, 2009

The 10th edition of FISL (Internation Free Software Forum) was a huge success, with over 8000 participants, including the presence of the president of Brazil, Luiz Inácio Lula da Silva!

Our presentation entitled ISS (Instant Syndicating Standards) was great! We gave a quick overview of ISS and many attendees got interested in our work. One of the highlights of the presentation was when we used tennis balls to explain how the information would travel in the social network. It was really fun to see the balls been thrown from one side of the room to the other. Some photos of the presentation are shown below:

Bruna Griebeler at FISL 10

Bruna Griebeler at FISL 10

Tiago Rosa da Silva at FISL 10

Tiago Rosa da Silva at FISL 10

Daniel Schmidt da Silva at FISL 10

Daniel Schmidt da Silva at FISL 10

Sharing Information, Services and Interactions in the Next Decade

Tuesday, June 16th, 2009

Introduction

In the 90s, after Tim Berners-Lee created the World Wide Web at CERN research center, scientists around the world were able to share information with their colleagues by setting up their own personal Websites. The key concept behind the Web was the hyperlink, which allowed users to browse Web pages across different networks.

With the popularization of the Web, browsing Web pages just wasn’t enough. So by the turn of the millennium, the advent of search engines came to people’s assistance, most notably from a search engine created by Larry Page and Sergey Brin while at Stanford University. Powered by complex algorithms, search engines would rank and present Web pages to users based on keywords.

With further popularization of the Web, searching again wasn’t enough. The top-down presentation of Web pages selected from a huge collection by an algorithm has created a very undemocratic way of sharing information. In this next decade, users will rely less on monolithic algorithms and more on their own personal social network for sharing information.

While the first decade of the Web was all about browsing and the second decade was about searching, the next decade will be about syndicating. Users will connect with their personal social network to receive and disseminate information in a bottom-up manner. Information, services and interactions will all be syndicated, allowing users to share not only information but also rich and profound experiences.

Sharing Information

As of today, there is no existing technology that allows individuals to share information in a bottom-up manner on a global scale. ISS (Instant Syndicating Standards) is a proposal to create just that: a distributed worldwide recommender system perfectly tuned to output a very personalized stream of information for each individual, where information flows from the personal social network towards the whole wide world. This is accomplished by allowing each individual to create their own broadcasting channels and to connect these channels with the ones created by their personal social network. This trustful and cascading network of syndicated streams filters out irrelevant information, while still letting good information pass through at each level.

The key concept behind ISS is the tagLink. The tagLink is a semantic link created by individuals showing how their friends’ channels are connected with their own channels. If a user becomes interested in a particular channel from a friend, he may subscribe to this channel and add it to his own channel. Thus, each individual receives exactly what he wants based on these subscriptions, and all information that reaches them goes through friends’ approval first.

Sharing Services

ISS is being developed as a set of services on top of Drupal. This service-oriented architecture promotes interoperability and allows individuals from different networks to share information with each other. The ISS services englobes user, channel and content management. These services together with services that provide file, language, search and session management will transform Drupal from a Content Management System into a Web Operating System.

The key concept behind the Drupal WebOS is the serviceLink, which is a structured format that links services together, including services from different networks. For example: a user may browse his way to a friend’s profile and become aware of her interests by visualizing her channels. If there is a common interest, the user may subscribe to a channel and create a taglink that connects her remote channel with his local channel. The fact that the friend is from another network is totally transparent to the user. This is possible when these systems follow a set of open standards called IOS (Instant Operating System). Users will be served by multiple WebOS.

Sharing Interactions

The services provided by the Drupal WebOS can be accessed through a Webtop, i.e. a Desktop Environment that works on top of the Web. The Ext Webtop is a Webtop created using the Ext JavaScript Library following a set of open standards called ITOP (Instant Desktop Environment). From this Webtop, users can share interactions with each other.

The key concept behind the Ext Webtop is the sessionLink. The sessionLink is a service that follows the publish/subscribe pattern and provides users and applications with (almost) real-time updates for subscribed services. For example, when a chat application is loaded in the Ext Webtop, the Webtop subscribes to the user.im service to be kept aware of any updates. More sophisticated interactions may also be shared, including sharing the whole Desktop Environment (this is called an Instant Session). In an Instant Session, when a user opens a window in the Webtop, his friend sees the window being opened. Likewise, when his friend closes a window, the user sees the window being closed.

Conclusion

In this text, we have presented ISS (Instant Syndicating Standards), an open set of standards that challenges the top-down model of information-sharing and gives place to a bottom-up model, where each person has a unique voice and equal opportunity to contribute and benefit. In this way, we hope to bring people closer together to discuss common interests and share information in a more open and democratic manner.

Also, we have presented the IOS and ITOP open standards, which we believe will help people to have more rich and profound experiences. We want to bring the Instant from Instant Messaging to the Web. And by Instant, the most important aspect that we want to exploit is not so much the When, but the Who. We want to empower individuals to “exchange” their Operating Systems and Desktop Environments with friends much the same way that they exchange Messages with friends when using Instant Messaging applications.

Along these two decades, the Web has evolved tremendously. The Web’s influence in democratizing access to information is evident. Yet, there is still a long way to go before reaching a truly democratic Web, where information flows freely in all directions. Also, there is still a long way to go before reaching a truly interactive Web, where people can connect with each other to create rich and profound experiences. We hope that the work here presented will help shape the way we share information, services and interactions in the next decade, as we believe that this will fundamentally shape us into better individuals and into a better society as a whole.

Acknowledgements

I would like to thank the following organizations for sponsoring my work:

  • The GIMSCOP research group from UFRGS university for sponsoring the development of the Drupal WebOS and Ext Webtop. Special regards to my mentor Dr. Jorge Otávio Trierweiler.
  • The PPGC (Computer Graduate Program) from UFRGS university and the CAPES brazilian federal agency, who provided me with a scholarship to develop ISS. Special regards to my mentor Dr. José Valdeni de Lima.
  • The Knight Foundation, for sponsoring the development of ISS on top of Drupal. Special regards to the UFRGSWeb team for helping me out and for giving me the opportunity to mentor them.

I would also like to thank the following open source communities for their contributions:

  • Dries Buytaert and the Drupal community. Special regards to Scott Nelson for the Services Module and Dmitri Gaskin for the JSON Server Module.
  • Jack Slocum and the ExtJS Community. Special regards to Todd Murdock for the Web Desktop extension and Thorsten Suckow-Homberg for the LiveGrid extension.

Further Information

References

The sessionLink

Wednesday, June 3rd, 2009

The Drupal WebOS provides several services to the Ext Webtop. The structure of these services are well described and they can either be static or dynamic in nature. The difference between static and dynamic services is that the dynamic services can be seem more as a stream of information and they can be used to provide users with (almost) real-time updates. If there is a great number of dynamic services being requested at a given time, however, the performance of the application can suffer substantially. To solve this issue, we present the sessionLink.

The sessionLink is a service that follows the publish/subscribe pattern and provides users and applications with updates for subscribed services. For example, when a chat application is loaded in the Ext Webtop, the Webtop subscribes to the user.im service to be kept aware of any updates.

The following is a simplified description of the user.im service:

{"method": "user.im",
"args": [
{"name": "uid", type: "int", "desc": "User ID", "required": "1"},
{"name": "msg", type: "string", "desc": "Message", "required": "1"}
],
“type”: “data”,
"sessionlink": "payload",
"time": "2000",
"sid": "14"
}

The “sessionlink” can either be set to none, payload or timestamp. Services by default are static and there is no need to define sessionlink. A dynamic service on the other hand must have “sessionlink” set to payload or timestamp. When payload is set, the session.link service will return the payload for the subscribed method. Otherwise, if timestamp is set, it will only return a (unix) timestamp, thus requiring the Webtop to make an additional call to receive the update. For applications like chat, where speed is essential and the content is small, it’s recommended to set sessionlink to payload.

The time can also be set. This will help determine how often the Webtop will have to poll the session.link service. The lowest time of the current set of subscribed services is used. For example, if the Webtop is calling session.link every 30 seconds and the user loads the chat application, then the Webtop will start polling session.link every 2 seconds (2000 milliseconds).

The subscriptions are managed automatically by the Webtop by calling the session.subscribe service:

http://webos.iss.im/services/json
method=session.subscribe
sid=14

The user.im service has a sid (Service ID) of 14. The session.subscribe service actually handles sid as a string, thus enabling the Webtop to subscribe to several services at the same time (just use a comma to separate the sids).

To unsubscribe, there is the session.unsubscribe service that works the same way. If the user closes the chat application and he or she is not talking to anyone else, the Webtop can unsubscribe from the user.im service:

http://webos.iss.im/services/json
method=session.unsubscribe
sid=14

In conclusion, the sessionLink is a key component that helps the Webtop to be kept aware of any updates in an easy and straight-forward way. This component will help developers create applications that provide real-time collaboration and offer users a more seamless experience.

Ext Webtop Overview

Wednesday, March 25th, 2009

The Ext Webtop offers a familiar desktop environment that allows users to access services and applications over the Web. The interconnected nature of the Web has inspired the creation of a  distributed desktop, where users can easily share data and services with their contacts. The figure below is a screenshot taken from this environment.

The Drupal WebOS serving the Ext Webtop

The Drupal WebOS serving the Ext Webtop.

The Ext Webtop provides the following features:

  • Browse & Scroll: Browse linked services. Go back and forth. Fetch live data as you scroll;
  • Search & Filter: Search as you type. Show extra fields inline. Rank and filter large data sets;
  • View & Open: Select multiple items and perform actions. View media. Open new instances;
  • Contacts: List contacts. View profiles. Keep aware of updates. Share and interact with users;
  • Channels: Discover and subscribe to channels. Syndicate new entries or recommend others;
  • Networks: Access a new set of services by connecting to different networks securely;
  • Search: Search for both structured and unstructured data in multiple networks;
  • Sessions: Save sessions for later. Handle saved, recorded and instant sessions.