Perficient Portal Solutions Blog

Subscribe via Email

Subscribe to RSS feed

Archives

avatar

Glenn Kline

Technical Director, Portal

Posts by this author:

avatar

Do not Neglect Portal Performance and Load Testing

by on March 12th, 2012

Poor performance in a portal production environment will quickly become your number one complaint from your employees, partners and customers.  Given an option, your user community will look elsewhere and not come back.  Performance testing and load testing are often left to the last minute or skipped all together.  If 2 weeks before launch you hear “performance is a little slow, maybe we should run a test,” you’re project is in serious trouble.  You always need to give yourself ample time in a project to introduce realistic expected user loads and monitor the performance during the tests.

Why should I load test?  I paid a lot of money for my portal and it’s supposed to be scalable.

  • Some defects may not show up until load is introduced.  Memory leaks seldom show up in development and system testing.  They can easily bring down your production portal and be very difficult to track down.
  • Tuning your capacity means you can control can get the most out of investment with the fewest number of production servers.
  • The portal may not be the bottleneck under load.  It could be a connected database, web service, LDAP repository, etc.  This gives you a chance to identify and resolve those issues before going live.
  • Quicker response times mean happier users, business stakeholders and executive sponsors.

What are some load testing approaches I should consider?

  • Perform a baseline test before installing any of your custom code, components or configuration.  This will allow you to know what the portal can handle and surfaces any configuration and installation issues that might contribute to poor performance.
  • Introduce load until the system crashes.  Determine what caused the crash, fix the issue and then load test again.  Continue to repeat this process until the crash cannot be fixed.  This allows you to tune for maximum scalability.
  • Perform long term soak tests which run for days or longer using loads consistent with expected usage.  This will surface performance impacts that may not show until over time such as slow memory leaks.
  • It is not necessary to test unrealistic scenarios, e.g. 1000 users log on and immediately log off over and over again.  This would not be a typical usage pattern of your users.

Do you have any other hints and tips?

  • Portal is all about integration and likely connects with a number of other systems including databases, Web Services, an LDAP repository, etc.  Make sure the stakeholders of those other systems and services are made aware of testing and efforts and timing are coordinated.  You may need a DBA to monitor a database, if a connected service crashes you will need someone to restart it, or you certainly would not want to risk bringing down a production system or network due to a test.
  • If your portal is highly personalized, you will need a large bank of representative test users.
  • Create a test plan and share it with the implementation team.  They will be able to help validate the scenarios and point out any missing or non applicable ones.
  • External facing or distributed portals may have bandwidth or latency constraints on the clients.  If this is the case, it is a good idea to account for it in the testing scenarios and evaluation.
  • When troubleshooting a poor performing page in a portal, selectively remove portlets and content from the page to isolate the problematic portlet or content.

 

Performance testing is not difficult but it does take a large and coordinated effort among many different teams.  Plan early in your project for a comprehensive performance test and you will place yourself in the best possible position to deliver a highly scalable and fast performing portal.

avatar
avatar

Lotusphere Jump Start – The Social Busines Toolkit

by on January 22nd, 2012

Empowering the Exceptional Web Experience with the IBM Social Business Toolkit

Lotusphere was last week and I had an opportunity to attend one of the jumpstart sessions on 1/15/2012 titled “Empowering the Exceptional Web Experience with the IBM Social Business Toolkit” with Mike Taylor and Paul Bastide, software engineers from IBM.Social Business Toolkit is available on Lotus Greenhouse.  Here are some of the highlights.

What is the Social Business Toolkit?

  • Set of tools and techniques to make applications social
  • A set of APIs and services used to:
    • Add social capabilities to applications
    • Integrate non-social applications and services to social applications
  • Integrates online with LotusLive
  • Makes custom integrations with IBM Connections much easier
  • Enables integratoin of aplications within containers
  • Social Business APIs are based on open standards

The Toolkit

  •  Data Formats – Data is the foundation and understanding how data is formated and structured is critical.  Data is represented in two main ways.
    • Javascript Object Notation (JSON)
      • JSON is raw text
      • Represents objects with the descriptive text
      • More efficient than XML since data is represented in name/value pairs instead of repeating nodes and attributes
    • XML
      • Hierarchical datamodel with nodes and attributes
  • Accessing toolkit services
    • HTTP is the most common way to access data.  The 4 HTTP methods manipulate data as follows:
      • Get – List collection of resources
      • Put – Replace
      • Post – Create
      • Delete – Remove

Social Business Toolkit API Explorer

View the Social Business Toolkit API Explorer here.

  • Test environment for developing social applications
  • Can make API calls, see the response, and access documentation for APIs in a single interface
  • Goal is to help developers quickly understand and try APIs for building social applications

Highlights

  • Uses OAuth to authorize
  • Samples for the following
    • Activities
    • Profiles
    • Files
    • Wikis
    • Domino data services
  • Documentation is available right online
  • Much easier to consume than traditional javadoc for J2EE development
  • Makes developing and testing integration with Connections much easier

Open Authorization (OAuth)

  • Open standard for authorization.  It is:
    • Token-based
    • Given to 3rd parties
    • Common in virtually every social site, e.g. log in using Facebook
  • Used for authorization, not authentication
  • OAUTH.net contains tools to help withOAuth development

Open Social

  • Web standard which defines how to build socially enabled applications
  • Current specification is 2.0.1 and aligns close with OAuth
  • Gadges are built using XML, JavaScript, CSS and XML
  • Google Gadgets are an example
  • Visit http://opensocial.org for more informaiton
  • Java and PHP containers have been developed by Apache Shindig
avatar

Mobile Development Best Practices

by on January 18th, 2012

From Desktops to Mobile and Smart Phones – Lessons Learned

This session at Lotusphere 2012 was presented by Usman Memonand focused on lessons learned and best practices many organizations face today when moving to mobile platforms.  Some of the key lessons learned are highlighted here.

Development Approaches and Considerations

  • Users are attempting to access your sites with mobile devices whether you have a mobile site or not
  • There are trade-offs: Richness of your mobile presence increases total cost of ownership
  • Native applications will be richest but highest cost
  • Hybrid mobile applications are growing in popularity since they are web based but can use device capabilities such as a GPS or camera
  • Cost and complexity goes up exponentially as you try to support custom interfaces for more than 1 device

(more…)

avatar

WebSphere Portal Mobile Themes

by on January 16th, 2012

WebSphere Portal Mobile Themes

Live from Lotusphere, Tyler Tribe and Jonathan Lidaka gave a presentation titled “Deliver Rich Mobile Experiences with IBM WebSphere Portal Mobile Theme.”  First, let’s start with some mobile statistics.

Mobile Statistics

  • Within 5 years, 80% of all people will have a mobile device
  • By 2020, 10 billion mobile connected devices
  • Mobile is a top priority of 74% of surveyed CIOs behind only business intelligence
  • Online adult community
  • 177 million US adults are online
  • 105 million having 2 or more device types
  • 1/3 have at least 4 devices
  • 4.5 million have at least 9 different web connected gadgets

(more…)

avatar

Lotusphere Session Highlights – IBM Connections Auditing and Compliance Infrastructure

by on January 16th, 2012

IBM Connections Auditing and Compliance Infrastructure

I attended a session with Rene Schimmer, Offering Manager, IBM on Connections auditing and compliance.  As social business continues to grow and become the norm, auditing and compliance becomes more critical, especially in certain industries that are subject to government regulations.

Social Business and Compliance

There are quite a few key concerns with governance, risk management and compliance for social business.  These include:

  • Avoid conflicts of interest (between employes, customers, partners and/or investors)
  • Establish safe practices and policies on how to use social media
  • Protect reputation and image
  • Protect confidential information
  • Balance information retention and storage cost

(more…)

avatar

Upgrading to WebSphere Portal 7 – Problems with JSF

by on November 4th, 2011

Anyone who has gone through a WebSphere Portal upgrade and has portlets which use JSF has likely had some issues.  I am currently working on a portal 6.0.x to 7.0.x migration and want to share a massive JSF challenge to hopefully spare others some pain.  The problem created is that  <hx:requestLink /> tags are blocked by SiteMinder. Here is what I ran accross.

Out of the box if you create a simple link that looks like this:

<hx:requestLink styleClass=”requestLink” id=”link1″>
      <h:outputText id=”text1″ styleClass=”outputText” value=”Link Test”></h:outputText>
</hx:requestLink>

Portal 7 will generate a URL that looks like this:

http://dev.perficient.com:10039/wps/myportal/!ut/p/b1/dczLboMwEIXhZ8kTzAGDDUsH09gtIdhACt5ESL0oqEmqNopanr5UyqaqMruR_vORpz7gXLCQJ4GgjvxxuOxfh_P-dBzefn_Pd3mldHwnNjWabQhTSbT3jgMZ6JE6RLt6TN7X3-eumLJLM0411spOZdN_lZMMy7SonrauXUo5flrU88b_ZTeximB0lLOgYADYNcCNk_gn5CqDSY2xlXEzwa9BtpI6EgWQFKsYRurWpZYxSEalPh2eqZ8zcdN5CKmhfkkH_8Fd_qKsXCx-AJjeIEY!/pw/Z7_EPDH5F7OS0TV20IPA0UJR600C5/ren/p=_rvip=%250JSFLinkTestView.jsp/p=_rap=_rlnn/p=com.ibm.faces.portlet.mode=view/p=javax.servlet.include.path_info=%250_rlvid.jsp/-/#Z7_EPDH5F7OS0TV20IPA0UJR600C5

First, notice that the parameters are available in clear sight in the URL.  This did not work this way previously in portal 6 and depending what you are doing there could be obvious security concerns here and possibilities of URL hacking.  If you add your own parameters to the requestLink, they will now show in clear text in the URL.

Second, notice the %250 in two places that gets added to the URL.  This is inserted internally by JSF.  This is an enormous problem if you are using SiteMinder.  SiteMinder sees the %25 and instantly blocks the URL and throws an HTTP 500 error before even hitting the web server or the portal since this is by default a prohibited character in the URL by SiteMinder.  Now, all of your <hx:requestLink /> tags are usless.

So, what can you do?  Well I solved the problem by using an <h:commandLink /> instead.  If you rely on request parameters from your link you will need to read them in your action phase and set them as render parameters as such:

Enumeration e = request.getParameterNames();
while(e.hasMoreElements()){
      String name = (String)e.nextElement();
      response.setRenderParameter(name, request.getParameter(name));
}

If you have the opportunity to migrate to Spring MVC instead of using JSF, that might be your best solution.

Happy migration.

avatar

WebSphere Portal Version 8 Beta

by on September 21st, 2011

On 9/15/2011 I attended a great session from IBM on the IBM Customer Experience Suite, WebSphere Portal and Web Content Manager Version 8 Beta given by Lauren Wendel, Brian Chaput, Nicole Carrier and Thomas Stober of IBM.  They gave some great insight into what new capabilities will be coming in Q3 in the upcoming beta.

Four Key Investment Areas

There are really four key investment area IBM is making and these align very well with what we see in the industry with our customers.

  • Content
  • Mobile
  • Analytics
  • Social

Content

One of the new additions in Q3 2011 is a new Content Template Catalog.  This includes a new set of templates and pages that you can copy an modify to really jump start your content delivery.  Often one of the most time consuming parts of a WCM project is creating the libraries, base work-flows, sites, templates, etc.  Having something usable that you can just modify instead of starting from scratch can save significant time.  The general direction is to integrate content easier and more seamless so instead of having content as a portlet, you will have content as a site.

Mobile

Mobile comes up in almost every conversation with every customer at some point.  One of the new capabilities available in Q3 is a new mobile theme which targets the WebKit based browsers which have essentially become the de facto standard mobile browser.  There is also an update to the mobile portal accelerator if you still need to support thousands of legacy devices for your mobile delivery.  I could go on for many, many paragraphs here but I’ll leave that of a post on its own.

Analytics

Understanding how your users utilize your portal and what they do while active, and then adapting to their behaviors is really at the heart of analytics.  Analytics goes well beyond just capturing what pages have been viewed.  Portal really enables this through multiple analytic integration points and support for leading analytics tools such as CoreMetrics, Unica, Omniture, and WebTrends.  These integration points allow you to see in real time and in context  how your portal is used and understand your users’ behaviors.

Social

I’m not going to spend a lot of time here but IBM is pushing hard to integrate portal and Connections closer so that they are truly a seamless experience.  This is evidenced by their community pages which integrate with Connections blogs and profiles.  There are many more integration points on the horizon too.

One of the complaints I’ve heard over the years about IBM products is that they don’t really integrate well.  That is not the case anymore.  IBM has listened and is clearly executing on their promise to bring their product line of portal, social and mobile tools together.

avatar

Migrating to WebSphere Portal 7: WCM

by on September 15th, 2011

I am currently working on a project for a customer where we are migrating a very complex portal from WebSphere Portal 6.0.1.3 to 7.0.0.1.  There is quite a bit going which has to be migrated including Personalization rules, JSF portlets, Spring MVC portlets, customized WebSphere caches and shared libraries, customized WebSphere Portal configuration, content nodes, URL mappings, and of course an extensive amount of content.  The approach we chose to take for migrating content turned out to be pretty straight forward.  In this scenario we simply copied the existing production JCR database from the production 6.0.1.3 authoring environment to the new portal 7.0.0.1 development environment and ran a series of configuration tasks to upgrade the JCR.  Once complete, syndicators can then be configured to push content to test, stage, production authoring, and production.  At a high level, here are the key steps:

  • Copy the existing 6.0.1.3 JCR database to your new portal 7.0.0.1 development server.
  • Inspect your wkplc.properties, wkplc_dbdomain.properties, and wkplc_dbtype.properties files to make sure all the database settings are correct.  NOTE: you must set DbSafeMode=”false” in wkplc_dbtype.properties.  If not, the ConfigEngine tasks run later will not be able to update the database schema.
  • Run the following ConfigEngine tasks:

./ConfigEngine.sh validate-database -DTransferDomainList=jcr
./ConfigEngine.sh  connect-database-jcr-migration
./ConfigEngine.sh   update-wcm-schema

  • Restart portal

At this point you should be able to access the authoring portlet and verify all content and components have been successfully migrated.  When you migrate your pages with rendering portlet references, all your content should show up.  One note to remember though is don’t forget to migrate your personalization rules if you are using any personalization.  You can simply export the nodes from your portal 6 environment and import them to portal 7 without changing any rules or running any migration tasks.  Good luck with your migration!

 

avatar

12 Things to Get Your Portal in Production Quickly: Wrap Up

by on August 5th, 2011

Over the last 3 weeks Mike Porter and I have covered a number of topics to consider when trying to accelerate your speed to production for a portal project.  In case you missed any of the installments, here they are.  Good luck on your project!

Previous Installments

  1. Dependency Management
  2. Ramp Your Resources
  3. Don’t Forget Your Users
  4. Visualization Tools
  5. Use the Capabilities Portal Provides Out of the Box
  6. Foundation One Step at a Time
  7. Use an Experienced Core Team
  8. Use Collaborative Tools
  9. Provide Ramp Up Time for Less Experienced Resources
  10. Change Management
  11. Don’t Forget Mobile
  12. Use an Iterative Development Methodology