Live Online Chat Transcript, May 24, 2007 Hosted by Stephan Hesmer (shesmer) and Stefan Behl (sbehl). Topic: Web 2.0, related technologies such as AJAX, REST, and Dojo, and how WebSphere Portal leverages these technologies. ----------------------------- tomyoung: Hello everyone! On behalf of developerWorks, I'd like to thank you all for joining the chat today. We're here with Stephan Hesmer and Stefan Behl to talk about Web 2.0-related technologies such as AJAX, REST, and Dojo, and how WebSphere Portal leverages these technologies. I'll turn it over to Stephan and Stefan to say a few words about the topic of this discussion, then it will be open for questions. shesmer: Hello, my name is Stephan Hesmer and I am the Web 2.0 architect in WebSphere Portal leading the Web 2.0 team developing new features for Portal. sbehl: Hi, my name is Stefan Behl. I'm a software developer in Stephan's team and I'm in particular responsible for designing and implementing parts of our client-side aggregation as well as our server-side REST services which provide access to all the data which is needed to mashup portal content. tomyoung: Great, thanks. I'd like to go ahead and open it up for questions now. prissumm: I think there are some Web 2.0 features are available today in WebSphere Portal such as a blogging portlet, and the Sametime IM, but what are you working on outside of Portlets for Web 2.0? mssanjay: What kind of frameworks or AJAX APIs are available in the current release of WPS 6 ? sbehl: mssanjay - good question shesmer: prissumm, that is a very good question. As you say in Portal today we have some features around Web 2.0. In the near future we are planning to release a couple of additional features for Portal as depicted in the presentation posted on the web site. shesmer: the most important areas are: Client Side Aggregation which basically turns the browser into an aggregation engine. shesmer: just image every click you do inside of portal will now do partial page refreshes instead of full page refreshes. sbehl: first of all you can run AJAX portlets in WebSphere Portal 6. The recommendation here is to use the DOJO framework. IBM is strongly engaged in the DOJO community and will contribute further features that are useful for portlet development. shesmer: Additionally we have a Client Side Programming Model which allows you to easily write AJAX Portlets using JavaScript. For instance you have a PortletPreferences JS object now and you can read and write preferences in Java script on the client without knowing how to handle AJAX yourself. It is all taken care of by the framework. sbehl: With the next version of portal we will offer additional convenience APIs that can be used to implement portlets. These APIs will be JavaScript APIs that can be use to easily read and write portlet preferences, portlet state (portlet mode, window state, render parameters) as well as user profile information. shesmer: other features coming out in the near future are semantic tagging, sample AJAX portlets and client side feed consumption. you can find it in the presentation on slide 18. sbehl: please also note shesmer: http://www.ibm.com/developerworks/websphere/library/presentations/0705_hesmer/0705_hesmer.html sbehl: please also note that there are already tools available which will help you to implement AJAX portlets. sbehl: even for WebSphere Portal 6. shesmer: this is where you can download the presentation. It contains 3 parts. A generic introduction of what is Web 2.0 - in particular, how do we see Web 2.0 - the second being an overview what is available in Portal 6 and the third and biggest is about the new features coming out soon. sbehl: for example our Portlet Factory supports AJAX development and provides you with self-contained widgets such as type-ahead field, dynamic lists etc. which can be easily used within portlets. Mrs Mercer: Can you please further explain REST in laymen's terms? shesmer: prissumm, does that answer you question or would you like to hear more about that topic ? shesmer: Mrs Mercer, very good too. Let me state first of all that REST is nothing new kalalu: Does RAD 7 allow to implement AJAX portlets? shesmer: REST is an architectural design pattern of the WWW which basically exists since the beginning. The term REST has been coined by Fieldings around 2000. shesmer: Interestingly Fieldings also was one of the godfathers of the HTTP Spec in the 80s. Therefore all the guidelines and best practices have been in the HTTP Spec. sbehl: mssanjay, if you are looking for more detailed information about DOJO feel free to have a look in out dW article which is available under http://www.ibm.com/developerworks/websphere/library/techarticles/0703_wallaker/0703_wallaker.html shesmer: Unfortunately the HTTP Spec contains so much information that you cannot easily extract everything. Because of this Fieldings created REST which contains all the "good" things from HTTP and other WWW Specs. mssanjay: Thanks. shesmer: Basically one could say that if you adhere to REST you have a well performing and well architect services that adheres to WWW concepts. sbehl: kalalu, RAD 7 allows you to build AJAX portlets. Either by making use of the offered JSF /JWL components or by using the ATF (AJAX Toolkit Framework) which is a free plugin that can be installed on RAD. shesmer: There is more of course, but does that answer you question ? or would like to hear more details ? tomyoung: For those just joining the chat, we're talking with Stephan Hesmer and Stefan Behl about Creating Web 2.0 portals using AJAX and REST with WebSphere Portal. Please feel free to jump in with questions. Mrs Mercer: more details would be great. is there a link to a doc somewhere? I've read the presentation already. sbehl: kalalu, some further comments on your question on RAD 7.... the new JWL library which is offered along with RAD 7 provides a rich set of UI components which extensively exploit AJAX (tree widgets, tabbed panes, richtext editors etc.). This rids you from implementing all the AJAX logic manually (submitting requests, registering callbacks, process responses, apply XSLT) sbehl: does this answer your question? kalalu: yes, thanks. shesmer: well the wiki is always a place to start Mrs Mercer: good point, thanks shesmer: and then you can also use the link I had in the presentation. http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm shesmer: this is the dissertation of Fieldings explaining REST shesmer: This is the link for the wiki: http://en.wikipedia.org/wiki/REST debcot: There's an intro to REST and AJAX here: http://www.ibm.com/developerworks/web/library/wa-ajaxarch/ shesmer: a very important point wrt REST services is that they are cacheable by design. this means that every REST services that is out there is cached in all the proxies up to you local browser cache. shesmer: compared to Web Services this is a huge advantage which is one of the reasons why REST is more popular these days. The WebServices Spec adheres to use POST request which are not cacheable. They are about to fix this and the Spec 1.2 will also allow to use GET requests which are cacheable, shesmer: unfortunately it will take some time until the new version is implemented in the major application platforms. it may take a few years. sbehl: Another very powerful feature which is currently under development is semantic tagging. It allows you to add semantics to your markup by including special tags (e.g. class attributes). In addition there will be a so-called tagging framework which allows you to register handlers for those tags in order to add behavior to your tags. For example you could tag person names and blend in a context menu if the user hovers over a name. The context menu might provide a set of actions that can be applied to that person (e.g. show me the user profile, show the work location in Google Maps, etc.) debcot: How will the client enabled with the aggregation capability? debcot: be enabled, that is shesmer: Let me share a few thoughts about Web 2.0 in general shesmer: Web 2.0 is mainly regarded as a new technology and AJAX centered. While this is not wrong it is also not complete correct. Web 2.0 is much more than just technology... sbehl: debcot, the client-side aggregation is integrated into a special portal theme which loads all the JavaScript that is needed to load the data to aggregate the page. For example the client-side aggregation will first load the navigation model (by connecting to the Navigation Model REST service) to render navigation widgets (e.g. a pagebar); after that the layout REST service is accessed to layout the page and finally to load the portlets on that page. tomyoung: If you've just joined the chat, we're talking with Stephan Hesmer and Stefan Behl about Creating Web 2.0 portals using AJAX and REST with WebSphere Portal. Please jump in with any questions you might have. shesmer: Web 2.0 contains a broad spectrum and many aspects. The new social aspect as well as concepts is a very important point to note here as well. If you enable people to participate (which is Web 2.0 too) and they are allowed to contribute and rate as well, you got a whole social network going. sbehl: After that process each further request will only result in a partial page refresh (depending on the semantics of the respective interaction; for example when interacting with a self-contained server-side portlet, the portal will only refresh that particular portlet, if there is inter-portlet communication, other portlets might be refreshed as well. sbehl: debcot, does this answer your question? dwu: hi stephan, stefan - your presentation talks about "Situational Development through Composite Application Templates". Could you explain what you mean by Situational Development? shesmer: The content is accumulated much faster than in Web 1.0 sites where only few admins can post content. In Web 2.0 you have many user posting content and additionally through the social factor everybody tries to do his or her best because in the end you are part of a community and try to make an impression. gem has left the room. debcot: Yes, sbehl, thanks. shesmer: Web 2.0 is general is explained in the presentation on page 2,3 and 4. sbehl: dwu - sure. Situational application development is a very important feature. In the Web 2.0 scenario web-sites often offer the infrastructure only can be used to easily build applications for a particular context or situation. sbehl: REST services for example are the main building blocks for situational application development. They allow you to mashup content into an integrated user experience. shesmer: Our vision for situational applications is that you can click your applications together within the web browser. Think of an IDE in the browser readily available without installation and very easy to use. shesmer: It is not like Pipes or other frameworks. sbehl: A feature which already supports sit. app. development is the Composite Application feature offered in WebSphere Portal 6. It allows you to define generic templates for applications and instantiate these templates for a particular context. mssanjay: Apart from Social Networking sites which use Web 2.0 technology to full extent, most of the portals built with WPS are for Partners, Resellers and other audience ( ie. from my personal experience). How best WPS can address the needs with Web2.0 technologies? Like Self contained AJAX enabled Widgets are something that are most likely to be used in such scenarios. sbehl: dwu - does this answer your question? dwu: yes, thx. shesmer: mssanjay, are you asking about AJAX portlets or about AJAX in Portal itself =? mssanjay: AJAX in portal shesmer: alright, besides the AJAX features (popup menu) in Portal 6.0 already, we have the so called Client Side Aggregation as said before. This CSA is based on the DoJo framework shesmer: Due to the DoJo framework anybody can write their own DoJo widgets and use them easily inside of the portal page shesmer: the same holds true for portlets, but here the portlet has to package its own Dojo version to not collide with the overall framework DoJo version. mssanjay: Thanks. sbehl: So, let's briefly turn the tables What are your plans regarding Web 2.0? Do you have specific plans to use AJAX in your portal environments? shesmer: not sure if that really was answer. so feel free to go into more detail. shesmer: or are you looking for specific features / capabilities wrt Web 2.0 in Portal ? mssanjay: Well, a Tree based, contextual menu navigation is one of the most popular feature users want. kalalu: with every client action on a portal page does portal theme refresh without AJAX portlets? shesmer: kalalu, there are various way. let me explain. sbehl: mssanjay - you could for example use the tree widget of DOJO to render a portal page navigation; an alternative would be to use the JWL tree widget which is offered in the component palettes of RAD. shesmer: Inside of CSA you can run ANY server side portlet (with server side portlet I mean a portlet written against JSR 168 not using ANY AJAX features). This portlet will be refreshed without have a full page refresh. This means that every interaction with an existing server side portlet in CSA will use AJAX under the covers and almost never do a full page refresh. shesmer: Of course you can also write your portlet so that it uses JavaDcript and leverage the Client Side Programming Model we were talking about in the beginning. Using this technique you can even get faster and nicer portlets running in CSA as well as Server Side Aggregation. sbehl: mssanjay - you would get the navigation hierarchy that should be displayed in your tree widget from the so-called Navigation REST service of portal and then transform the received XML into a format which is understood by the respective widget. Typically this is a JSON object. kalalu: is CSA enable in portal 6.0 by default? sbehl: kalalu - CSA is so far not part of portal 6.0 but will be shipped with one of the next 6.x releases coming out soon kalalu: ok thanks sbehl: probably it won't be activated by default but there will be sample pages (part of the out of the box experience) making use of the client-side theme tomyoung: Sorry to say it, but we're pretty much out of time. I'd like to thank everyone for joining, and thanks to Stephan and Stefan for hosting the conversation today! tomyoung: Thanks all! The transcript for this chat will be posted at http://www.ibm.com/developerworks/websphere/library/chats/0705_hesmer/0705_hesmer.html. mssanjay: Thank You kalalu: thanks Stephan, Stefan and Thomas Young Mrs Mercer: thank you sbehl: you're welcome shesmer: yw