Microsoft has announced itself in the enterprise search market by introducing Microsoft Search Server Express 2008. It can be downloaded via the release candidate. MS says the product is free today, and it will be continue to be free at the time of general release in the first quarter of 2008.

Search Server Express should comfortably index and search 400,000-500,000 documents on a reasonably sized server, and capacity and performance can be scaled in a multi-server deployment using the licensed version of Search Server 2008. Further, the Search Engine has also wide variety of connectors for searching MS and Lotus libraries.

MS has also published a Microsoft’s enterprise search products comparison table. Check out here.

Bangalore-based InstaColl launched an application called Live Documents, which is a hybrid online-offline office suite of applications with features similar to Microsoft Word, Excel and PowerPoint.


Instacoll is doing a controlled release, but within the next 2 to 3 weeks will make it available to everyone across the globe. Individual users can access this for free, till the company decides on the pricing. However, the enterprise version will be charged.

Besides the online tool, there is the Live Documents Plug-in, which is an optional client that you can download - the client converts Microsoft Office into a smart client that is web-enabled and provides collaborative capabilities within the context of familiar desktop applications. The desktop client also facilitates offline access to your documents - any changes that you make to a Live Document in offline mode is cached locally and automatically synchronized to the server the next time you go online.

Check out the site here.

"Remember Me" is a popular feature provided by many Web sites that simplifies the sign in process -- and provides a better user experience -- by challenging a user only once for credentials. When selected by a user upon signing in, this feature enables the browser to "remember" the user's identity on subsequent visits to the site. User credentials remain stored as cookies in the browser until either the cookies expire, or the user signs out of the site.

This article explains how you can realize the Remember Me feature on WebSphere Portal with security enabled, and shows a sample implementation of the steps involved.
Recently, I was watching the movie "Ratatouille" and towards the end of the movie, the food critic Anton Ego, publishes a review was really captivating and insightful. Here goes the review


In many ways, the work of a critic is very easy. We risk very little yet enjoy a position over those who offer up their work and there self to our judgment. We thrive on negative criticism which is fun to write and read. But the bitter truth we critics must face is that in the grand scheme of things, the average piece of junk is probably more meaningful then our criticism designating it so.
...


All this got me thinking about the so called Thought Leaders in their respective fields and how easy is for them to critique. Its only, when you get yourself are in deep shit, hands full and people running all over you, you realize the importance of even the average piece of work you get working, that has so much meaning for the business.

IBM Redbooks have released the draft of the latest "Portal Application Development using WebSphere Portlet Factory". Download the book from here.
IBM has published a list of Hello World Tutorials on multiple technologies. The tutorials span across the DB2, Lotus, Rational and WebSphere. Here is the list of the tutorials published.

  • DB2 for Linux, UNIX, and Windows: Introduction to basic features and concepts
  • DB2 for Linux, UNIX, and Windows: Introduction to basic features and concepts. Part 2
  • Lotus Component Designer: Create and deploy WebSphere Portal components
  • Rational Application Developer V7: Create Java, Web service and database applications
  • Rational Business Developer Extension: Create a Java Web application without knowing the Java language
  • Rational Business Developer Extension and SOA: Create a Java Web service -- without knowing the Java language
  • Rational Functional Tester: Create robust, reusable automated functional tests
  • Rational Manual Tester: Accelerating the pace and quality of the manual testing process
  • Rational Modeling Extension for Microsoft .NET V7: Develop UML models and C# code using transformations
  • Rational Performance Tester: Get to the bottom of application performance issues
  • Rational Software Architect V7: Design and implement a simple phone book application
  • Rational Tester for SOA Quality and Rational Performance Tester Extension for SOA Quality: Learn how to test Web services
  • Tivoli Identity Manager: Manage user accounts in an LDAP directory
  • WebSphere Application Server and Application Server Toolkit: Publish an enterprise application
  • WebSphere Enterprise Service Bus: Develop message flow for protocol transformation
  • WebSphere Federation Server: Easily access and integrate your distributed data -- wherever it resides
  • WebSphere Integration Developer V6.0.1: Many business solutions from one set of components
  • WebSphere Integration Developer V6.0.2: Create business rules and business processes
  • WebSphere Portal: Develop, test, and deploy MyFirstPortlet
Check out the tutorials here.
BEA has announced the release of its annual state of the enterprise portal market report, which is available for download at http://bea.com/whitepapers/portal-market. The report reveals that portals remain a top priority for CIOs at large enterprises for the sixth consecutive year.* The report compiles survey results from over 540 customers, which indicates that portals will help introduce Web 2.0 capabilities and social computing technologies in the enterprise.
Don Jones has discussed the WebSphere Portal Security concepts here.

A nice presentation from the Morgan Stanley team on the Technology / Internet Trends. The presentation was given at Web 2.0 Summit in SFO.

Last Week, Oracle made an offer to buy BEA. The problem of Oracle is, end of day all they want is to sell Oracle DB. Now, Oracle DB sales are growing as fast. So, what better way to grow then acquire BEA and add another product line. In the end, it makes the life of the Sales guy difficult.

BEA refused the offer saying it was too low. Now, BEA up in the market was in news for quite some time. After rejecting the Oracle offer, BEA has indicated that it is willing to be acquired provided the price is right.

I believe, more then Oracle, BEA seems a better fit for SAP. The BEA product suites fills in the right gaps in the SAP portfolio and makes SAP a formidable player.

Another vendor that has a good fitment is HP. HP buying BEA makes sense. After the buy off of Mercury, HP has a good product suite in the testing space. Buying BEA also gives an entry into the infrastructure software space and pitching there hardware solutions along with software will be a win-win combination.

IBM will be least interested in this space.

Another rumour going around is that Microsoft might be interested in buying BEA. Not sure how the java world is going to react to that. It will be fun to watch if MS goes on to buy BEA.
This session describes the architecture and implementation of an embeddable, extensible enterprise content management core for Java EE and simpler platforms. The presentation starts by describing the general architectural concepts used as building blocks.



The described implementation, Nuxeo Core, can be embedded in a basic Java technology-based framework based on OSGi (such as Eclipse) or in one based on Java EE, according to the needs of the application using it. This means that the core has to function without relying on Java EE services but also has to take advantage of them when they are available (providing clustering, messaging, caching, remoting, and advanced deployment).
InfoWorld has launched the Best of Open Source Software awards across the IT landscape -- in applications, operating platforms, middleware, software development, networking, security, and storage.

Here is the list of the Top offerings in CRM, ERP, portals, content management, and collaboration platforms.
Tim O Reilly's keynote at SAP TechEd.

When it comes to deciding between the various open source CMS’ solutions (Alfresco, DotNetNuke, Drupal, Joomla or Plone), the first thing that attracted you – is the FREE tag associated with these open source products.

Question is what is FREE and what is NOT FREE exactly?
  • The base deployable code is FREE
  • The code needs to be hosted somewhere , somebody needs to pay for the Data centers – NOT FREE
  • The Staff to maintain the installation is NOT FREE
  • Any customization or integration to the product is NOT FREE
  • Most of these products support various standards – JSR-170, JSR-168 and so on, that means you get industry standards for FREE
  • The base underlying database used by them is most likely to be MySQL. In case, you do not want to use MySQL, then any other commercial DB is NOT FREE
  • The staff training costs for any of these products is NOT FREE
So, even though the software’s are free, there are other hidden costs that need to be accounted for before taking the decision.

Mike Heck has done a very good study of the comparison among the open source Web CMS (content management systems) available in the market (Alfresco, DotNetNuke, Drupal and Joomla, and Plone). He has looked at the standardization effort among these products and his experiences in using the products. The comparison score is like
Read Mike Heck's complete article here.
Given the page hierarchy A -> B -> C, when you move C under A and remove B, what actually happens is that first B and all its children are deleted (or marked as deleted) and then C is tried to be created with only the subset of information that is detected by Releasebuilder. This then results in a new, incomplete page.

Local fix

first move the page and transport that move from staging to production, then do the delete and move that forward.

A fix is available here. This will make sure that the release builder will export the whole page information, if the content or derivation parent is changed.
There is nice post on the CMS Watch that looks into the challenges of fitting the right product for the right need. Tony talks about the overlapping of functionality and how vendors are trying to pitch each product for different needs.





Check out the post here.
In today's market there is a huge demand for specialists and the IT industry tries to address this in a very "shoot yourself in the foot" way.

Usually, it starts with request/opportunity coming from one of the clients, that they require people with so and so capabilities/skills (let's call that skill X) with so much of years of experience.

The vendor's Pre-Sales force comes into action, pitches to the client with the proposal showcasing the capabilities of the company, how they are growing, their expertise in the technology "X" and how they have so many people working in the "X" technology.


The client is very impressed and asks for the profiles of the people who can be engaged for the assignment.

Now comes the problem. Pre-Sales team have done what is called Short Selling. Trying to sell when they have no inventory or people available on the bench with the skills. All in the hopes that if they are able to engage the client, they can do one or more of the following

  • Try to engage somebody from the market ( a la contractor)
  • Try training somebody in the company ( usually not possible within the short time frame
and the last resort
  • Fudge the resume of an existing person and make him an expert on the technology "X"
Usually the vendor is unable to hire people because people with "X" demands very high and if he does not get selected then you do want to be saddled with him. Next option is to train or fudge the resume. In both case, when the client interview's the person, the person is found lacking and in the end the whole client experience is shattered with the vendor. The client becomes wary of the vendor and on the whole, damaging the entire relationship.

My Qs, is Short Selling the right way.

We all do some sort of short selling in our lives. Claiming to be able to do things, which we never ever have done.
WebSphere Portlet Factory is a powerful and flexible tool for rapidly building portlets on top of a service-oriented architecture. Developers are able to quickly and easily leverage their company's core assets, automatically assembling them into custom, high-value portlets.

The book cover the specific techniques and best practices approach for developing portlets using WebSphere Portlet Factory. The book uses a fictitious company scenario to show how to build a Customer Self Service and Customer Representative application.

The book covers the following topics:
- Installing and configuring the Portlet Factory development Environment,
- How to create and consume data services from SQL, Domino and a Web Service,
- Step by step guidance for creating the portlets and enabling inter-portlet communication,
- Advanced UI design techniques, including the use of AJAX for type ahead functionality and working with the DoJo Builders,
- Enabling the use of Profiling
- Deployment Production Considerations, and
- Troubleshooting and Debugging techniques

The book can be downloaded from here.
The findUsersByAttribute() method can only be applied on string type attributes. This is a method in the PumaLocator class. If this method is used on an attribute that is not of type string, then the portal logs might display an EJPSG0008E exception.


The findUsersByAttribute() method can only be applied on string type attributes. Therefore, non-string type attributes such as follows cannot be used as a valid search attribute:

* "manager",
* "secretary",
* "seeAlso" (dataType=MemberIdentifier),
* "createTimestamp",
* "modifyTimestamp" (dataType=Date),
* "jpegPhoto" (dataType=ByteArray),
* "ibm-firstDayOfWeek", and
* "ibm-firstWorkDayOfWeek"

The error recorded in the logs appears like the following:

Search criteria is invalid. manager=uid=theManager,o=default organization ...
Caused by: com.ibm.portal.puma.InvalidSearchCriteriaException:
EJPSG0008E: Search criteria is invalid. manager=uid=theManager,o=
default organization
...

This is a limitation of the findUsersByAttribute method.
Using Java™ API for XML Web Services (JAX-WS) technology to design and develop Web services yields many benefits, including simplifying the construction of Web services and Web service clients in Java, easing the development and deployment of Web services, and speeding up Web services development. This tutorial walks you through how to do all of this and more by developing a sample order-processing application that exposes its functionality as Web services.
  • Google adds presentation capabilities to Google Docs
  • IBM planning to release Lotus Symphony to take on MS Office. Beta version already out. Check out the review here.
  • Yahoo buys out Zimbra. This acquisition marks the entry of Yahoo in the Collaboration Enterprise space

Exciting time for users as more options become available to them. Tough times for MS as it hits there bread and butter business
Everyone downloads or creates or copies so much of data ( documents / files / install ables) and what not on to your desktop that over a period of time, one tends to forgot what all data you have. Now, one can install utilities like Google Desktop Search or Yahoo Omnifind Search Ed or other similar products but then these products do not allow you to tag your data as you want and still file wherever you want. How good it will be if we can tag data and then search for the same using those very tags Web 2.0 style.

The best option would had been Google Desktop supporting the tagging facility. They already index data, adding tags information on top of it would have been very easy. Alas, this is still a dream.

Then I looked around and tried to search if there are other utilities which can offer similar functionality. I stumbled on these.

1. Tag2Find
One can easily download and install the utility. It provide its own window where one can search for file and apply tags to the same. One can also import directories where based on the directory names, the utility tries to generate the tag names. It also provides explorer integration where you can right click and see the tags applied on that file.

Being a third party tool, every tag related action has to be within the application window. I know, there is nothing they can do about that. Windows Vista was meant to come with category based search capability, but they dropped the feature.

Overall it was easy to use and works fine for the functionality it meant for.

2. DocTagger
This one works for MS Word Docs and MS Power Point only. Integrates within the editor. Works well, but the scope limits it to business users only - who work only on word docs and ppts.

3. File Tagger
Paid option, hence could not try. Supposedly tags all the product installable you might have downloaded/purchased over the time.

4. FoundIt
Still in beta. Installs on your machine but works off their web site, which is a bad idea. Privacy concerns are a major issue. Further, if I am not online, I will not be able to access the data. The utility allows you to tag pre-defined set of file extensions ( doc, pdf, ppt, xls, images, email). Uses the google desktop API for searching the data on your desktop.

Overall, I am disappointed. Tag2Find is the best among these lots. But then tagging all that data on the desktop itself is a nightmare. Best way is to start tagging which all data you reference and start build the tag database


Many portal developers have used WebSphere Portal to create cooperative portlets that share events and data to enhance the user experience. For example, a selection submitted in one portlet could cause updated information to display in multiple related portlets, helping the portlets to stay synchronized in their presentation. This functionality is implemented on the server and relies on the portlets submitting action requests to the server so that it can perform the data transfers before the page is refreshed.

This approach starts to break down as you add Ajax functionality to portlets because you dynamically update the data displayed by a portlet without submitting an action request or refreshing the page. This article shows how to use the Dojo JavaScript toolkit to share data and events between portlets in the browser, providing cooperative support to dynamically updated portlets.
The article details on how to clone an installation of IBM® WebSphere® Portal V6 that has been configured for specific deployment needs. How one can create personal standardized installation of WebSphere Portal and use it as a template to mass-produce additional pre-installed and pre-configured portals.

Check out the article here.
Scalability has mostly been a factor of Hardware. But here I am trying to list down some of the Software Design Elements that will go a long way in deciding how scalable the application will be.


  • Minimizing resource contention Contention for resources is the basic cause for all scalability problems. Insufficient memory, processor cycles, bandwidth, or database connections to meet demand would result in an application that cannot scale. For example, when performing transactions that involve resources that are scarce and thereby subject to contention, use those resources as late as possible. The shorter the amount of time that a process is using a resource, the sooner the resource will be available to another process. For example, return database connections to the pool as soon as possible.If possible, do not even use a contentious resource. Sometimes a process uses a transaction that does not require a resource when performing a function. For example, methods that require a transaction should be placed in a component separate from ones that do. As a result, you can avoid creating a transaction when it is not needed.
  • Process Differentiation A process should never wait longer than necessary. Each time slice that a process is using a resource is a time slice that another process is not able to use that resource. One can place processes into two separate categories, synchronous and asynchronous.There are times when applications must perform actions synchronously. Some actions may need to wait for an action to return a result before continuing, or they may need to verify that an action was successful to ensure atomicity. That is, all of the actions associated with the operation must completely fail or succeed before performing another operation. However, when applications are limited in this manner, resources become a source of contention that negatively impacts scalability.One way to achieve scalability is by performing operations in an asynchronous manner. When operating asynchronously, long-running operations are queued for completion later by a separate process.
  • Commutability The application design should try to incorporate the principle of Designing for commutability. Two or more operations are said to be commutative if they can be applied in any order and still obtain the same result. Typically, operations that you can perform in the absence of transaction are likely candidates. The less transaction oriented the operations are, easy it is to scale up the application.
  • Interchangeability The whole idea here is to move the state out of the components. As you add more state to the componennts, they become less interchangeable. Requiring components to maintain state between method calls defeats interchangeability and, ultimately, scalability is adversely impacted. Instead, each method call should be self-contained. Store state outside the component when it is needed across method calls. When calling a method of a stateless component, any state required by that method can either be passed in as a parameter or read from the storage. At the end of the method call, preserve any state by returning it to the method caller or writing it back to the storage. Interchangeability extends beyond resource pooling. Server-side page caching for a Web application will most likely increase its scalability. Although personalization can give a user a unique experience, it comes at the expense of creating a custom presentation that you cannot reuse for another user.
  • Partitioning The application will also look to partition resource and activities. By minimizing relationships between resources and between activities, one can minimize the risk of creating bottlenecks resulting from one participant of the relationship taking longer than the other. Two resources that depend on one another will live and die together. Partitioning of activities can help ease the load that you place on high cost resources. For example, using SSL entails a significant amount of overhead to provide a secure connection. As such, it is sensible to use SSL only for pages that actually require the increased security. In addition, Web servers dedicated to the task could handle SSL sessions.Transactions provide another opportunity for partitioning of activities. By separating methods that do not require transactions from those that do, you do not needlessly impose the overhead required for a transaction on methods that do not require one.However, partitioning is not always a good choice. Partitioning can make your system more complex. Dividing resources that have dependencies can add costly overhead to an operation.


This presentation, originally given by Stephan Hesmer and Thomas Schaeck at Lotusphere 2007, defines Web 2.0, compares Web 2.0 sites to Web 1.0 sites, discusses related technologies such as AJAX, REST and Dojo, and tells how WebSphere Portal leverages these technologies. You see how IBM uses WebSphere Portal and these technologies to support its own internal community. You see how WebSphere Portal V6 enables many Web 2.0 capabilities today, and you get insight into where Web 2.0 support in WebSphere Portal is headed in the future.

The ppt can be downloaded here.
In response to the need for standards post from Apoorv, my take is

Standards are meant for products features that are no longer niche. Once they become commodity, standards are just small note that the products are compliant for so and so standard.

If one looks, you no longer buy Application Server for Java v1.5 vs v1.6 compliant (a very minor issue). You buy products for reasons other then standards. That means - What sells and differentiates products from each other is the features ( proprietary), inroads made by the development tools, ease of those development tools, documentation available for products/tools, expertise available in the market for those tools, ease of development and so on. Now, one can develop j2ee app's for WAS using eclipse. But developing j2ee app's for Weblogic on eclipse is not free and easy. IBM has a WAS CE ed for getting you hooked onto the eclipse platform. Once hooked, only way is to move up to WAS v6.x

Further, if everything was standard, lot of us will be rendered useless. Remember Y2K was a migration exercise for the very reason that there were no standards and everybody made money.

WAS CE (Community Edition) is build upon Apache Geronimo. Now, IBM has released a red book on how to migrate the applications developed fro WAS CE ed to WAS V6.1 ed. It seems all along that was the plan - get you hooked on the free stuff and once hooked, you need to move up the ladder (WAS V6.1 in this case)and start the pay back time.

Overall, the migration steps are pretty straightforward. I like the chapter 3 and 5. Chapter deals with Migration Strategy. The same guidelines are applicable for any migrations. Chapter 5 deals about Common Migration Issues - which is kind of best practices when doing such things.

Check out the red book here.


Yahoo and Google have released their versions of mash up editors. Both are in Beta as all Web 2.0 sites are! Google is currently by invitation. I tried both for couple of days and my observations are
  1. Yahoo has a superior User Interface with drag and drop capabilities and ability to wire the components - which is kind of cool. Any one with basic knowledge can get started and start creating mash ups. Google on the other hand provides more basic UI, but the ability to take things in your hand means more power and richer applications. Although this means it is really for the nerdies

  2. Yahoo has a pre-defined set of components/operators which can be used in combination. I believe most of the simple mashups can be easily achieved throught the same. Google on the other hand allows you to write code (HTML/CSS/JavaScript) which effectively means you can create any look and feel for your mashup.

  3. Yahoo gives an RSS/JSON feed your mashup which is kind of cool. Google is more of application mindset where you create visual mashup applications


  4. You can check out some of the Yahoo Pipes here PCM News. What I did , googled for PCM related keywords, take their feed, mash them together, give a rating as per my need and generated a new feed.

    There is another nice article on Yahoo Pipes and Google Mashups here.


Sounds unbelievable ! Read On.

The organization has been a .NET shop but now wants to implement the WebSphere Portal. Options - dump the entire .NET Team and hire a fresh set of WP programmers.
Or use the Mainsoft's Java EE for Portal Edition. It provides .NET extensions to WebSphere Portal, allowing you to create and deliver a complete front-end Service Oriented Architecture , with equal access to .NET and Java services.

Using a single sign-on, end users gain a personalized, role-based access to .NET and Java applications with consistent branding and navigation. In addition, business analysts can easily compose enterprise applications using .NET and Java components using WebSphere Portal's Application Templates and JSR 168 compliant Inter-Portlet Communications.

Check out the same here.

Read about one of the early adopters here.

WebSphere Portal offers users the option to personalize layout and contents of pages. On the other hand, as an administrator you might want to preserve the layout or contents of pages, or parts of pages, which for example reflect your corporate identitiy. This Tech Note describes how you can prevent the personalization of such portal pages by users.
RSS, or Really Simple Syndication, is a technical format that allows online publishers to share and distribute their content to other websites or individual Internet users.

When a new article is posted or a change made to a webpage, RSS keeps track of the changes and delivers them to the subscriber. RSS feeds are most often attached to text, images, podcasts and video.

To create RSS feeds for your site, you have variety of options. Lets explore them.

First, there are the commercial/open source programs available that allow you to generate the feeds for your site. Popular among these are
  1. RSS Builder
  2. FeedForAll


then there are online services that can be used to generate feeds. Popular among these are
  1. FeedXS
  2. RSS Headliner


then next are the corporates that might want to build there own feed generation service embedded in their application. For such discerning folks, we have the ROME open source library. Check out the same here.
Here is the sample code where the feed is generated via a java program for your content.

Unit testing asynchronous applications like Ajax based applications has really been a pain area. With Ajax coming in, some of the Automated testing have been found lacking i n the same. The Google Web Toolkit noticed this and has come out with an approach to write JUnits for the your Ajax applications.

To see and understand, how you can write JUnits for Ajax applications, check out the following article here.

The documentation around the GWTTestCase class can be found here.

Another article talks about running JUnits for GWT in eclipse. Check out the same here.


User goes to a page and changes the state of a portlet A. The user then navigates to a different page and when you return to the initial page with portlet A, the state of that portlet is the same state as when you left the page (the changed state). One expect the portlet to return to its initial state when you return to the page.

Use the state preprocesor to revert to the initial state of the portlet. (The state preprocesor is originally designed for WML but can be used for HTML as well.)

To configure the WML state preprocessor, add the following two custom name/value property pairs to the WPStateManagerService (WebSphere® Application Server Admininstrative Console -> Resource Environment Providers -> WP StateManagerService -> Custom properties):

name = preprocessors
value = com.ibm.wps.state.preprocessors.selection
.StandardPortalSelectionImpl, com.ibm.wps.state
.preprocessors.wml.WmlPreProcessor

and

name = wmlpreprocessor.markups
value = html


Software company Once Technologies has released what it claims is the first browser-based Web 2.0 development platform as an open source project.

once:radix is a Rapid Application Development system for Intranet and eXtranet environments. It allows developers with only basic programming skills to create sophisticated enterprise-level applications.

The decision to release the software under an open source license will allow SMEs to access Web 2.0 technology; till now only available to large firms that could afford to employ specialist programmers and database designers.

once:radix delivers world-class performance through a combination of its own software and some of the world's best open-source solutions, including PostgreSQL, JasperReports, Mozilla and Apache projects.

The first distro is planned to be released on 7th August.
A growing number of mainstream players are introducing technology to link consumer-style Web 2.0 capabilities with enterprise solutions. Some of the recent launches are


BEA has introduced three new products that helps you make Web 2.0 applications
  • BEA AquaLogic® Pages - Provides Drag-and-drop simplicity for creating wikis, blogs and basic Web applications
  • BEA AquaLogic® Ensemble - Allows to manage Web resources – applications, components, widgets, programmable functions – and for blending these resources together in new and existing Web applications ( Mashups)
  • BEA AquaLogic® Pathways – Helps to combines search, content tagging, bookmarking and activity analytics to deliver a better way to discover information and people.
A Java application server is required to use these products but not necessarily BEA's application server


IBM announced four separate technology offerings: Lotus Connections, Lotus Quickr, Info 2.0 and WebSphere Commerce.

  • Lotus Connections is a suite of five purely Web 2.0 components designed to help companies find experts on topics, bring together teams around a common point and access information. The components enable users to create social bookmarks and tagging and build Web dashboards, blogs, and online communities and profiles, such as what's offered on Facebook or LinkedIn.
  • Lotus Quickr is an open standards-based collaboration tool that enables teams inside and outside a company to work together across different geographies, operating systems and working styles, IBM officials said. Its collaboration capabilities include blogs, wikis—software that enables anyone to input qualified information on a Web page or site—and team space templates that support the processes necessary to get collaboration project up quickly.
  • Info 2.0 is a set of tools designed to unlock data and enable business users to create mashups—the remix and repurposing of data into a single application or Web site, such as a mix of Google Maps with a real estate site to show where available homes are located.
  • IBM's WebSphere Commerce - provides the ability for customers to prioritize and filter specific attributes like price, brand or product characteristics


Oracle WebCenter combines the standards-based, declarative development of JavaServer Faces, the flexibility and power of portlets and runtime customization, and a set of integrated Web 2.0 services into a new generation of context-centric, composite applications. WebCenter Services include a complete set of Web 2.0 content, search, collaboration, and communication services that can be embedded directly into applications built with the WebCenter Framework.
Go2Web20.net is an interactive listing of so-called Web 2.0 apps available online. The list is presented as an enormous assortment of mini logos. Moving your mouse over the tiles gives you the name of the service and a one sentence synopsis. Click on it and a more complete information tab rises from the bottom of the page.

You can search by name or browse tags, sort by date.
This article shows you step by step procedure for creating your own Google Gadget. The sample gadget fetches and displays the DevX feeds.
An Atom service document is for more than just telling readers where to find a site's feeds. This article show you how to parse the atom service document to discover the site's workspaces, feeds and categories.
Ajax (Asynchronous JavaScript + XML) programming techniques are increasingly dominating the world of Web application development. New developers are stepping into the world of Ajax development every day, and they come from disparate development backgrounds. The article gives you a cheat sheet of Ajax development resources from an expert team of Ajax developers at IBM.
I was looking at Google Trends and keyed in the "web 2.0" to see from which region/country is generating the maximum interest. Results are not too surprising.

Check out the same.



The interest seems to have starting going up since beginning of 2005 and is on a upward curve since then.



Again the Silicon valleys of the East (Bangalore) and West (San Francisco) take the top spots that generate the maximum interest in the term Web 2.0



Region wise, the South east countries seem to be showing lot of interest.

* The data is as of 16th July, 2007

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

Check out some great articles on the same here.

REST is a term coined by Roy Fielding in his Ph.D. dissertation [1] to describe an architecture style of networked systems. REST is an acronym standing for Representational State Transfer.

Compared with other styles of web services, REST is easy to implement and has many highly desirable architectural properties: scalability, performance, security, reliability, and extensibility. Despite the lack of vendor support, Representational State Transfer (REST) web services have won the hearts of many working developers. For example, Amazon's web services have both SOAP and REST interfaces, and 85% of the usage is on the REST interface.

Check out the some good articles on the same.


I had talked of What is Web 2.0 some days back. Since then, I have been doing lot of reading and had discussions with my colleagues also on the same. Finally, I think I understand the need for Web 2.0 and all the collaboration techniques Web 2.0 brings together.

I believe is the Web 2.0 is nothing but a manifestation of the human behavior. Web 1.0 was more of a one way traffic. The content is published but you have no clue who is reading it and in what way the data is being used. It is like humans watching television, you can see and hear everything but have no means to participate. But we human beings have opinions, likes and dislikes, want to share things with each other, we are interested in knowing what are neighbors are doing, who is going out with whom and so on ??. In the real environment, we have our informal channels, gossip aunties and what not? Remember, lot of people read tabloids to see what celebrities are doing or not doing ?

Now, if we need to create a similar eco-system in the wired world, the Web 2.0 technologies ( Social Networking, Mashups, Folksonomy, Wikis etc) start making sense.

The irony is, Web 2.0 helps in creating the environment, which we are missing by being sitting in front on the computer.
IBM Portlet for Google Gadgets is a JSR 168 portlet that allows enterprise portal users to integrate Google Gadgets for web pages with their portal pages. Google Gadgets for web pages are remotely accessible services that provide access to online content and applications designed to be aggregated into the context of a web page.

These include language translators, maps, YouTube videos, and Wikipedia.




Check out here for more details on downloading the same.
Anthony (Joey) Bernal talks out the guidelines to be followed when recommending Out of Box Portlets for a WebSphere Portal based solution, for your customers.

Check out the same here.
What is Continuous Integration (CI) ?

Martin Fowler says

" Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly."

The highlighted key words indicate the advantages of having Continuous build process. The idea is have the CI up and running before the project development phase starts.

CI makes sure that the team tackles the integration issues upfront otherwise build will keep failing continuously.

Tools such as BuildForge, Anthill and the open source CruiseControl can help you achieve the CI.

Statistical reports for code quality and other code metrics (using tools like Checkstyle, PMD, Java NCSS, JDepend) can be integrated with CI process to keep a tab on the health of the code base.
The term Web 2.0 has really been foxing me. I have seen the term being used at variety of places and for variety of reasons. Terms like Ajax, Folksonomy, Wikis, Blogs, Mashup , Syndication has been there for some time, but their association with Web 2.0 was not something I was able to apprehend.

As usual, I googled and came across this definition of Web 2.0 from Tim O'Reilly, which kinda of addresses the web 2.0

Web 2.0 is the network as platform, spanning all connected devices; Web 2.0 applications are those that make the most of the intrinsic advantages of that platform: delivering software as a continually-updated service that gets better the more people use it, consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing by others, creating network effects through an "architecture of participation," and going beyond the page metaphor of Web 1.0 to deliver rich user experiences.

In the end, applications that make use of the collective intelligence of its users/audience and able to enrich the experience of the users are truly successful. The Web 2.0 framework comprises of such technologies ( Ajax, Folksonomy, Wikis, Blogs, Mashup , Syndication etc) that allow companies to create such applications.



In the end, Web 2.0 needs to be used for creating Real enterprise value. Patty Seybold tells here, how to use the Web 2.0 principles and harness the same into a business strategy.



If you're building an application that requires a custom isolation level in a global transaction during the execution of a use case, you've probably found out the hard way that the Java™ Transaction API doesn't support custom isolation levels. Fortunately, the Spring framework lets you design Web and enterprise applications that use custom isolation levels in global transactions. In this article, Ricardo Olivieri walks through two alternative approaches to achieving this goal.
Code snippet for getting results from Omnifind Search


The esapi.jar and siapi.jar files found under the OmniFind /lib directory are required.
This technical note provides detailed information about how the WebSphere Portal login or logout flow can be extended or customized by using the login and logout commands. Focused on versions 5.1.0.x and 6.0 of Portal, the technote describes the configuration and the interfaces of the commands, followed by two code samples that are also available for download.
Some of the Top reasons

  1. Login process - Might be taking too long.
  2. Landing Page – too many portlets, data being retrieved from multiple systems
  3. Caching – to get that extra performance, lot of times, we try to get the whole data and cache, so that when the user clicks more or expand, we might be able to serve from the cache.
  4. Trace logger enabled for the Server
  5. Use of heavy themes
  6. Number of portlets / page






In these days of framework and a standard 'n' layer framework, projects are making use of Struts/JSF in the presentation tier, IoC(Spring) for the middle tier and using Hibernate/iBatis/Toplink for the data mapping.

The methodology and the pattern of using these frameworks is pretty much standard. The development standards for design, coding, testing are again pre-defined.

Given all this, my question is what value does an Architect brings to the project.

There obvious area's where I can see an architect being useful

* Design of Integration Architecture with external services/systems
* Performance Tuning of the application
* Keeping an eye on the code quality and the team to make sure that the standards are being followed
* Setting/Reviewing of the Continous Integration Build process

Again, the above tasks are more or less pre-defined.

External Systems pre-define how they need to be invoked. Not much rocket science left there.

If the Build process are good, lot of statistics for code quality and other code metrics (using tools like Checkstyle, PMD, Java NCSS, JDepend) can be generated on a daily basis.

Application tuning means running Load Tests, Checks for Memory leaks, Object usage etc - again each of these can be determined using tools available in the market.


Based on all this, where do you see the need for an Architect in a project?

The coming of Aspects in the programming world has brought so much of clean. I, no longer need to write tons of code for logging, transaction handling, security and what not. I think of a service and next I know what aspect I need to implement.

Some of the area’s where I have used or planning to use aspects

• Logging – no more putting method entry/exits
• Transaction Handling – using spring’s transaction manager
• Profiling – to implement the code instrumentation metrics
• Error Handling – the errors/exceptions can be intercepted and logged
• Security – handling security
• User Activity Tracking – log the user transactions along with the data that got changed
• Caching – caching of data


Besides this, I have aspects for things which are not easily doable in the normal world
• Transaction Retry Logic – trying for a defined ‘n’ number of times before giving up on a transaction
• Excution Flow Display – create a graph showing how the a given transaction is being processed with all the classes and methods that got invoked

To get started, please check out the following presentation here.

Here is the list of Open Source ESB products available in the market

MuleSource
LogicBlaze
Celtix
Apache ServiceMix
JBoss ESB

WebSphere Dashboard Framework gives application developers the power to create rich graphical interfaces to business data which allow the end user to make key decisons upon that data. WebSphere Dashboard Framework also provides powerful collaboaration features as well as real time alerts to provide an organization with the tools needed to make timely decisions.

This IBM Redpaper provides you with the knowledge to get started with WebSphere Dashboard Framework, as well as an in depth look into some of the key features. Whether you are a line of business user wondering what it is all about or a advanced application developer this Redpaper will give you a greater understanding of how WebSphere Dashboard Framework can be utilized within your organization.



In Order to monitor failed login attempts to WebSphere® Portal version 5.1, for example, for a business requirement for auditing purposes.

Refer to the following Tech Note.


Every body gets confused at times, on how many design patterns are there, what are those design patterns, which are the GOF patterns, what are J2EE patterns and what not. Are there any testing patterns, are there GUI patterns and so on.

Check out the following pages for synopsis of patterns

Martin Fowler has written a very good article on the guidelines to be followed when conducting the Stand Up meetings. Check out the same here.

I will add to that, the team should decide early on the rules that need to be followed for these meetings. In ours, we usually had the following

  • If you are coming late to the meeting, make sure to inform.
  • Before the start of the meeting, make sure you have updated the white board
  • No beating of the dead horse ( meaning - no debates if the team can not make/take decisions in the meeting)
  • Switch Off/Turn On Vibration Mode on your cell phones during the meeting
  • No cross talks during the meetings
  • Violation of any above guidelines leads to a fine ( we had $1 for every offense)

The fine money collected for the week was used for having lunch/snacks during the week depending on the amount collected.

Team can decide early on which guidelines make sense and accordingly add/delete to the list. Once agreed, these need to be published and put on display where the meeting is conducted


Mock objects are dummy objects that mimic the behavior of real objects. The use of mock objects for unit testing has really picked up in recent times. Here I list some of the good articles available to helo you get started.





When using the XML command line client for credential export, the command syntax is slightly different than normal command line client use because there are two additional parameters:



xmlaccess -user user -password password
-url https://myhost:9444/wps/config/
-in XML_file -out result_file.xml
-credentialexport
-passphrase encryptionPassphrase

The following rules apply to the above parameters:
  1. The options credentialexport and passphrase are mandatory for export
    or import of encrypted credential secrets during migration.

  2. The options credentialexport and passphrase are optional for all XML
    Configuration actions that do not export or import encrypted credential
    secrets during migration.
Additional XML Syntax elements for credential secret migration

















Syntax element



Description



credentialexport



A parameter without value that indicates that export of
credentials should be enabled



encryptionPassPhrase



The passphrase
for the encryption. The minimum length of this string is the number of bits
set as export
keylength
in Credential Vault Service, divided by 8. The
passphrase is used to create a
key of the specified length for the encryption.



For more information about the XML command line tool, refer
to the XML configuration interface section of the appropriate information
center version.

Sample file

ExportVault.xml for version 5.0.x





<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="PortalConfig_1.2.1.xsd"
  type="export" export-users="true">
<!-- Sample for exporting the credential vault data. -->
    <portal action="locate">
         <credential-segment action="export" objectid="*"/>
    </portal>
</request>


Sample file
ExportVault.xml for version 5.1.x





<?xml version="1.0" encoding="UTF-8"?>
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="PortalConfig_1.3.xsd"
         type="export" export-users="true">    
<!-- Sample for exporting the credential vault data. -->
    <portal action="locate">
         <credential-segment action="export" objectid="*"/>
    </portal>
</request>
The following is an example of how to use the XML

configuration interface to export credential secrets:





xmlaccess.sh -user wpsadmin
-password your_password
-url http://portalhost:9444/wps/config/
-in ExportVault.xml
-out ExportedCredentialSecrets.xml
-credentialexport
-passphrase JGD786JHga7kjhUIT7sdj76675zufurz

IBM has released a tool that detects delays and hangs in WebSphere(R) trace and HTTP plug-in trace.

WebSphere® Application Server trace is used to obtain detailed information about running components, including application servers, clients, and other processes in the environment, such as the time and sequence of methods called by base classes.

IBM® Trace and Request Analyzer for WebSphere Application Server allows you to find delays and possible hangs from WebSphere trace files and HTTP plug-in traces by parsing call trees of methods and traces and calculating delays in each method and trace.

The package includes a Java™ graphical user interface (GUI) application that displays delays in lists and tables.


Check out more details here.


IBM® Unstructured Information Modeler is designed for use by data analysts on unstructured data sets. An example of such a data set would be problem ticket logs from a computer help desk. The data analysts' task is to find out what the commonly occurring problems are and to write or find solutions that will solve these problems in an automated way. IBM Unstructured Information Modeler helps the data analyst perform this task by automatically classifying the unstructured data set and providing insight into the categories.

The tool further allows the user to modify the automatically-created categorization to incorporate any domain knowledge that the user may have in order to make the categorization more sensible. After the classification has been completed, the user can generate reports and create a classification engine for categorizing new problem tickets. In addition, IBM Unstructured Information Modeler can analyze trends by day, week, or month and can analyze correlations against a user-supplied categorical feature.

Check out the tool here.

IBM architect Tilak Mitra takes the viewpoint of a proposal leader and highlights the major steps one needs to follow, to ensure the development of a high-quality proposal.

Covers the Basics, Good to brush up in case we are forgetting something.

Check out the details here.

This article is a primer on DAO design pattern, highlighting its merits and demerits. It then introduces the Spring 2.0 JDBC/DAO framework and demonstrates how Spring addresses the drawbacks in traditional DAO design.

In my last post, I talked about Inefficiency and how it might bring rewards to your inefficiencies. Today, we shall look what options are available for Ram.

We shall try to examine what options are available for Ram.

Option 1 – At that moment, when Ram would have heard that Shyam is going onsite, he would have multiple thoughts in this mind. The first and the obvious reaction is to get frustrated. Ram’s morale will go down and in his day to day activities; he stops taking interests. Ram starts looking for other options in the market. The way the IT market is going, getting a new job and at a better salary is very easy. The moment, Ram gets his first offer, he puts in his papers.

Now, the moment Ram puts in his paper, the leadership gets into action and now Ram will be given multiple options – he will be send onsite, his salary will be hiked in next cycle and what not. Ram may/may not withdraw his resignation based on the job offers he has in hand and what he is being offered. If his wishes are fulfilled, he withdraws his resignations.

I will call this the easy option. Why? Because putting in your papers is very easy and shows lack of character. The first minor obstacle in your career and you choose the “Patli Gali” (means the easy path) option. What is the guarantee that in the next company Ram will get what he wants? One can observe several such candidates who change companies like diapers, the moment things get dirty.

Option 2 – This option is the difficult one. The path of courage and taking a stand has never been easy. When Ram heard that Shyam is going onsite, he needs to remain calm and see the situation from the organization’s point of view. The requirement is immediate and Shyam is available. Let’s see what Ram should be doing.

1. Communicate - Ram needs to talk to his manager or supervisor and apprises them of the situation. He needs to tell them about his career plans, his aspirations. Remember, if you do not tell what you want, how you expect to get it.

2. Understand – When Ram joined this project, he needs to be aware of what his expectations are and how the project assignment helps in achieving those. Majority of time, mismatch of expectations is the root cause of problems. Talking to your manager/supervisor and understanding the role, duration and expectations from the project is very important. If you know, what you are entering into, there will less of frustration.

This starts from the day, one starts talking to a potential employer organization. One needs to ask questions and understand the company policies and working culture.

3. Availability – If Ram wants to move out of the current role/ assignment, he needs to make sure that there are members in the team who can do his work in his absence. If you can not move out of your current role/assignment, you will not be able to take up the next role or the assignment. You need to make yourself redundant. You will have to work with your manager/supervisor for the same.

All the above steps require patience on Ram’s part. Things will not change in one day. But, if Ram follows the option 2, he will come across a person of formidable character. He will demonstrate qualities like – leadership, mentorship, communication and ability to create a win-win situation for both the organization and himself.

In my next post on the same subject, I will try to cover what organization can/should do to make sure Ram does not feel frustrated.


In addition to the Lotus Domino-based portlets, IBM WebSphere Portal provides Common PIM Portlets. Common PIM Portlets (CPP) can have four different back-end mail servers: Lotus® Domino®, Microsoft® Exchange, IMAP, or POP3. This means that the Portal Administrator can configure a portlet in WebSphere Portal to access your mail account if it is based on one of these back-ends.

Currently, there are two Common PIM Portlets available with WebSphere Portal:

* Common Mail Portlet
* Common Calendar Portlet


The Portal Administrator can configure the Common PIM Portlets by clicking the Configure page icon.

Once the Portal Administrator has configured the PIM Portlets, users can access the Common PIM Portlet user interface by selecting the 'My Work' tab at the top of the Portal screen. If the 'My Work' tab is not visible, click the little white right-arrow on the left side of the tabs to scroll/shift your tabs over and expose the 'My Work' tab. Once the 'My Work' tab has been selected, the PIM Portlet user interface appears, which defaults to the E-mail page containing the Mail portlet. To access the Calendar page/portlet, click the Calendar tab.

Filed in:

One of the observations I have made during my experiences in the IT Industry is how being an inefficient professional can actually get you ahead of your peers.

I will illustrate a scenario where we see how 2 people join an IT organization at the same time and how inefficiency can actually help you move ahead of your peer.

Ram and Shyam are 2 Java developers who join an IT organization around the same time. Both want to go onsite. Both of them get assigned to work for a client, who is developing a J2EE application. The Project Manager assigns development of 2 modules to each of them. The modules need to be completed in 2 week time frames.

Ram being the efficient worker, gets on to the task diligently. Ram goes through the requirements, the design and starts working on the development of the module. Ram puts in extra hours and wants to impress the Manager also.

Shyam being the slow and inefficient one starts going through the documents at a leisurely pace. He is also not putting any extra hours.

At the end of first week, Manager comes around to get the status of the work. Ram has made significant progress and will be able to finish his work with 2 days to spare. Shyam on the other hand has not made much progress and his module will actually slip by more then 2-3 days. Shyam will numerous reasons on why he is not able to make much progress – clarifications on requirements, design and what not.

The Manager is really worried. He needs to make sure the plan does not slip. He sees that Ram will be able to finish his work 2 days in advance. So, like the PM he is, he assigns Ram to work with Shyam and help him to come on track.

Ram upon completing his work, starts working with Shyam and see that’s lot of work needs to be done. So, he starts putting extra hours to get the work on stream.

Manager sees how Ram has bought the work on stream and how he is proving to be a valuable and critical team member.

Now, here usually 2 scenarios typically get played out.

Scenario 1:
Now, as part of the project, out of the Ram and Shyam, one has to go to onsite to help in the application deployment(can be replaced with another task). Ram should have been the obvious candidate. But, Ram being the critical, hard working and having knowledge of 2 modules can not be spared. So, Shyam gets the nod and is asked to fly. Once, Shyam reaches the client place, again, he is not up to the mark. So the manager asks Ram to help Shyam in the application deployment from offshore. Ram starts working in the client times and helps Shyam in the application deployment. At the end, when the project is successful. Since, Shyam was the face the client was seeing, he sends out an appreciation mail citing good work done by Shyam. All the program management sees the mail and Shyam is heralded as the hero.

Scenario 2:
The PM need to ramp down the team. Since, Shyam is neither performing nor critical. He is the obvious choice. Shyam is released from the project. Now, the organization gets a new project and needs to send someone to client’s site to study the requirements. Ram would have been an choice, but his PM can not release him immediately. So, Ram gets ruled out. Shyam is available and has a valid visa, becomes an automatic choice. Remember, the key here is having a valid visa and availability. The experience or skill sets does not matter. The project needs to start in 2 weeks and it is difficult to get visa for anyone else. Neither it is possible to recruit someone in such a small time span. So, Shyam flies to client site.


Moral
In both the scenario’s, Ram efficiency got punished. First, he completes his work ahead of time, so he gets pressed into helping Shyam. End of day, his knowledge of 2 modules and hard working attitude makes him a critical team member, who can not released from the project. So, he misses out both the opportunities to go onsite.

I know, this might seem to be a very specific scenario, but I see this playing out in every project.

I am not saying that Ram does not gets rewarded for his hard work. The PM might give him spot rewards.

But given the moment, when Shyam goes onsite, Ram is unable to fan tom any reasons why despite doing so much good work, he is still at offshore.


Janus Boye has posted about the dimensions to consider when looking for an Enterprise Portal product. The dimensions are categorised as
* Services
* Technology
* Intangibles

Read more about the same here.


Filed in:

This hands-on workbook guides you through learning how to develop portlets using the Java™ Standard Portlet API (JSR 168). In addition to getting practice using the basic API, you learn about the issues and challenges associated with portlet development. With this foundation, you can see how the frameworks can help you.

You learn the concepts of portlet development by developing a working example. Along the way, you learn what you are doing and why so that you can truly gain an understanding of what is being accomplished and why certain approaches and decisions were chosen. Portlet code is provided for each chapter so that, if you do get stuck, you can refer to the solution for that topic area. So, immerse yourself in portlet development, and work at your own pace.

Filed in:

This article presents five common Ajax design patterns. They vary in using HTML, XML, and JavaScript code to get data from the server.

Filed in:

There is this conferenceWaterfall 2006 happening on how Waterfall models is coming back. I believe it is a spoof - more like Fools Day celebration, since the date is 1st April.

Anyway, one of the presentations by Robert C Martin talks about - how designs are ruined by execution. I really liked this part

Implementation is harmful to designs! Implementation ruins the elegance, beauty, and symmetry of designs. The problem is execution; and so it is execution that must be eliminated. As a community of designers we need to insist that our designs remain unexecutable!

All we are saying, is give design a chance. The code lies and designs die. The only good design is an unexecutable design. Stop all code. Pay for design, not for code! Code is not the answer!

Check out the article here.

As enterprises start building there Enterprise Portals, one of the common use complaints is portals are too slow. The dashboards in the portal are pulling data from multiple systems and repositories. Further, the data might be structured or unstructured based on the source. Pulling all this data, cleansing this data is consuming considerable CPU cycles. All this is leading to a very bad user experience.

What’s the way out?

• One way to migrate all the data onto a common structure and repository. This will be a considerable effort. Many organizations may not want to go this way.

• Another is create some kind of common data access layer where we can pull data across disparage systems. Products like WebSphere Information Integrator - Content Ed, fit this very much. We can add also add a caching solution using something like IBM Edge Servers to cache the data.

All this allows to provide data to the Portal with out modifying existing systems and still achieve a better user experience.

Some of the other similar products in the Information Integration space are
o Business Objects Data Federator
o BEA AquaLogic Data Services
o Composite Software Information Server
o WebSphere Information Integrator
o Metamatrix
o Avaki
o XAware


Filed in:

Time and again, best practices have been published. It has been more of taking some of the earlier ones and adding some new info to the same. IBM has published some of the best practices when developed using WebSphere Portal. Check these out.

Java EE Best Practices
IBM API Best Practices
IBM JSR 168 API Best Practices

Happy Coding !


Filed in:

The timeout.resume.session parameter is not included in the /shared/app/config/services/ConfigService.properties by default, which equates to the parameter being set to "false." Therefore, if an idle session timeout is experienced, a user will see the ErrorSessionTimeout screen and be forced to re-login. The login causes a new session to be created. This session is separate from the LTPA security token which allows for Single Sign-On.

The timeout.resume.session parameter should be set to "true" in cases where you do not wish for users to see the ErrorSessionTimeout screen and have to re-login to WebSphere Portal once the inactivity timeout for the WebSphere Portal application is exceeded. An example scenario would be if you were using an External Security Manager (ESM) and Trust Association Interceptor (TAI) to handle authentication for WebSphere Portal. You could take advantage of the security invalidation and timeout features of the ESM and TAI to control when the session gets invalidated (and thus when the user gets redirected to ESM's login page to re-login).

To illustrate further, review the behaviors in the following use cases. Note that the following environment was used for testing these use cases:

WebSphere Portal v5.1.0.2 with PK09525 installed

WebSphere Application Server v5.1.1.7 (includes PK03711)

WebSphere Business Integration Server Foundation v5.1.1.3

ConfigService.properties set to:

persistent.session.level = 2 (return to last visited page before session was destroyed)
persistent.session.option =0 (user can't choose whether to resume session on login)

Session Inactivity timeout set to 5 minutes in WebSphere Administration console for WebSphere Portal application.

Filed in: