Wednesday, February 20, 2013

IBM Connect Session Summary - BP 407 Portal at the Speed of Light: Techniques for IBM Worklight Integration

I recently presented a session at Connect 2013 with Handly Cameron titled: Portal at the Speed of Light: Techniques for IBM Worklight Integration. This session focused on discussing various techniques for integrating IBM WebSphere Portal with IBM Worklight. IBM unveiled Portal 8.0.0.1 and a new feature pack for Web Experience Factory, which took mobile landscape to a different level. In Portal, we have responsive themes Out of the Box with CTC4 templates and in Web Experience Factory we have a Camera builder that integrates with Worklight. Our techniques discussed during the session were inline with these new developments in the Portal space.

Let us take a step back and look at what we discussed during the session. We started off with a quick introduction to Multichannel Applications and Worklight. We then discussed various questions that current IT decision makers have in mind before zeroing in on an approach. And then, we presented our five techniques namely:
  • Standalone Portal – Responsive Web Design
  • Standalone Worklight
  • Using Portal to host application pages
  • Personalized Content driven by WCM
  • Integration with Backend Systems
Finally, we concluded with a Reference Architecture and list of things to keep in mind while selecting an approach.

The message that was conveyed through out the session was loud and clear. Portal could be used Standalone to cater to multichannel devices; Same applies to IBM Worklight. Each of them has their own place depending on the business requirements. The other three approaches talk about inter-play between Portal, WCM and other Backend systems with Worklight. We explained scenarios and presented code snippets where such integration would make sense. Most of the questions at the end were focused on this topic.

To summarize - If anyone is heavily invested in WebSphere Portal, then migrating to 8.0.0.1 and employing Responsive Design helps tremendously in targeting multi-channel devices seamlessly. Responsive Themes are available Out of the Box and personalized content could be created to target users more closely. In addition to that, IBM entitlement provides 2 additional licenses for Worklight if the application talks directly to Portal. This would be a nice way to use that entitlement to create mobile applications from Portal targeting multichannel devices. Alternatively, if WebSphere Portal is not in the mix, IBM Worklight could present a promising solution standalone delivering enterprise capabilities across devices.

To access our presentation from IBM Connect, please click here: Portal at the Speed of Light: Techniques for IBM Worklight Integration.

As an IBM Champion for IBM Collaboration Solutions, I was also interviewed on my work with Worklight, Portal and Mobile. To watch the interview, click here or below.


Find out more about Prolifics' week at IBM Connect here: Prolifics @ IBM Connect.
To learn more about Prolifics, please visit www.prolifics.com.

If you would like to talk about this presentation in depth, please connect with me in one of the following ways!
Twitter: @LaksSundar
LinkedIn: Laks Sundararajan
Email: Laks Sundararajan


Laks Sundararajan is a Solution Architect at Prolifics, an IBM Champion for Collaboration Solutions and a key member of highly specialized team working on IBM WebSphere Portal, Content Management and Collaboration technologies. He has led implementations of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise SOA solutions leveraging WebSphere Portal, Content Management and Tivoli. He holds a Masters in Information Technology from Carnegie Mellon University and Graduate Degree in Engineering from BITS, Pilani.

Wednesday, February 13, 2013

Prolifics Thought Leaders Named IBM Champions in 2013!

The IBM Champion program recognizes innovative thought leaders in the technical community. An IBM Champion is an IT professional, business leader, developer, or educator who influences and mentors others to help them make best use of IBM software, solutions, and services.

Meet Prolifics' 2013 IBM Champions!
Prolifics is proud to announce that 15 of our thought leaders have been recognized as IBM Champions for 2013. Prolifics has long demonstrated technology leadership through deep skills, a proven methodology, and high customer marks. Our technical staff has consistently developed innovative and creative solutions for Prolifics' clients and has dedicated themselves to rigorous and ongoing training - raising the bar and bringing thought leadership to the entire industry. Many of Prolifics' Champions selected by IBM have been published in several trade journals and often speak at conferences. Additionally, their custom-solutions implemented for customers worldwide have been honored with several awards.



Congratulations to all of our IBM Champions!

Handly Cameron - ICS
Laks Sundararajan - ICS
Alex Ivkin - Security
Dan Kern - Tivoli
Greg Hodgkinson - Rational
AJ Aronoff - WebSphere
Steve Fraser - WebSphere
Leland Irwin - WebSphere
Eric Markowitz - WebSphere
Vladimir Serebryany - WebSphere
Ashraf Souleiman - WebSphere
Prithvi Srinivasan - WebSphere
Neha Dhawale - WebSphere
Arup Datta - WebSphere
Rajiv Ramachandran - WebSphere

To learn more about our IBM Champions, visit: http://www.ibm.com/developerworks/champion/
For more information about Prolifics, visit: www.prolifics.com

Tuesday, February 12, 2013

The Messaging Whisperers: The Zero Downtime Series

A retail organization I recently worked with had a simple explanation for why downtime is bad. They do a billion dollars a year of business on the web and so one day’s worth of business is a loss of several million dollars. But that isn’t the problem. The real problem is that downtime means losing customers forever. (They’ll try another retailer and they may never come back).

The Zero Downtime Series is all about avoiding outages with IBM WebSphere MQ and WebSphere Message Broker. Multi-instance queue managers and brokers are a great way to achieve high availability at a low cost. (There will be another blog entry on idle standby licenses for MQ and Message Broker, which can help make high availability more affordable).

The first part of the series is a comparison between active / active and active / passive.

Active / Active vs Active / Passive vs Active / Active / Passive:
Multi-instance queue managers can be arranged in several configurations with different costs and benefits. Three of these configurations are:
  1. Active / Passive (One queue manager on two machines. During a failure the queue manager runs on the standby machine).
  2. Active / Active. (Two queue managers on two machines. During a failure both queue managers run on the same machine).
  3. Active / Active / Passive (Two queue managers on three machines. During a failure the failed queue manager runs on the third machine.)
In order to compare costs and benefits, lets consider a case where CPU intensive transformations are being done and that four CPUs are required to meet expected response time.

1. Active / Passive Case
Both the primary and standby machines are quad core. The primary uses regular MQ licensing and the standby machine uses idle-standby licensing (which is only 20% of the cost of regular MQ licensing).
  • Total cost:
    • 2 Quad core machines (or VMs); plus
    • Licensing for 4.8 CPUs: 4 for primary and .8 for standby (20% of 4)
2. Active / Active Case
There are two variants of the Active / Active Case:
  • Need to meet performance requirements during a failure
  • Performance requires do not need to be met during a failure
If performance requirements need to be met during a failure then, two quad core machines are required for the active / active case. Both machines need to be fully licensed.
  • Total cost:
    • 2 Quad core machines (or VMs); plus 
    • Licensing for 8 CPUs (4 for the first machine and 4 for the second machine)
  • Active / Active is good for IO bound message handling (since the traffic is spread over two machines).
  • If performance requirements do not need to be met during a failure, then two dual core active / active machines could be used. This case requires caution. Having performance cut in half (at best) is a significant penalty. (Also be sure to check memory etc). This requires careful capacity planning (as does everything).
3. Active / Active / Passive Case
All three machines are dual-core. The first queue manager runs on the first machine. The second queue manager on machine two. Either Queue Manager can fail over to the 3rd machine.
  • Total Cost:
    • 3 dual core machines (or VMs); plus
    • Licensing for 4.4 CPUs - 2 for the first machine and 2 for the second machine and .4 for the 3 machine (20% of 2)
  • The active / active / passive case has even lower licensing cost than the active / passive case, while having the same ability to handle IO bound messages as the active / active case

Next week, I will be hosting a live webinar titled: Message Broker as your Enterprise Service Bus. During this webinar, I will discuss Message Broker approaches and techniques to reduce complexity by dividing challenges into smaller, more easily manageable pieces. To register, click here.

Have a question? Want to connect?
LinkedIn: AJ Aronoff
Email: aj@prolifics.com

Additionally, I would like to share some excellent articles and walkthroughs for mult-instance queue managers:



AJ Aronoff is the Infrastructure and Messaging Practice Director for Prolifics and an IBM Champion for IBM WebSphere. AJ first joined Prolifics as a Developer, then specialized in WebSphere MQ. He has 25 years experience in the IT field — 17 of those years at Prolifics. As a Prolifics consultant, he has done MQ design, implementation, infrastructure, monitoring and security assignments at several large financial, insurance, retail and communication firms (Bloomberg, Credit Suisse, Deutsche Bank, DTCC, Fidelity, ITG, JPMC, Och Zif, Tokyo Marine, Pep Boys and British Telecom). He has presented on security and infrastructure at Impact, Hursley comes to Minneapolis and Palisades, and MQ User Groups. His customers use Omegamon to monitor over a thousand systems across the globe.

Friday, February 8, 2013

Building Social Media Toolbars on WebSphere Portal 8

The Business Case
Social Media Toolbars are a popular user interface pattern for many websites today. Providing links to your social media channels helps promote your brand, connects users to your social venues, and can aid both the user and the site owner in communicating information through additional channels and formats. This article discusses an approach to building social media toolbars that can be re-used in your WebSphere Portal 8 themes. You can optionally allow business stakeholders some ability to manage the social media links including; changing the order of links within the toolbar or activating and deactivating individual media links. This solution may also allow you to leverage the features of Portal security and personalization to allow for advanced targeting scenarios.

In the simplest implementation you might implement the html markup for the social media toolbar directly in your theme html or a dynamic content spot using a JSP file. The hard coded solution is extremely simple and may be acceptable if you have no need to for any of the following: - You have no need to share the links across themes. - You don’t need any personalization capabilities or security authorization. - You are comfortable with a development and deployment cycle to manage the links.

However there is an alternative approach that is nearly as simple to implement and allows much greater flexibility and re-use. We want to store the social media bar links in our portal page taxonomy under a hidden page label. When we do this, we can then preserve the same links across themes and allow the theme to read and display the social media links.

The Implementation
First let’s setup some basic custom theme helper code.

In the dynamic content of a your custom theme locate the file includePortalTaglibs.jspf and add the JSTL core taglib.




Next, we want to be able to locate all external links under our hidden portal label. To do this we are going to use a custom uniquename for our label so we can find this label using the Navigation Model SPI. In order to get the navigation node for the uniquename we create a helper function in the helper.jspf called “getNodeByUniqueName”.

Add the import statements highlighted below in the file named “helper.jspf”:


Next, we’ll use a JSP Init method to perform the JNDI lookup of the navigation model home. We also declare the instance members for “navModelHome” and “ctx”.


To complete our helper code we implement our helper method in the JSP static block.


Now we have a helper method to return a NavigationNode for a given uniquename string. Keep in mind this method may throw runtime exceptions in certain scenarios. Later for our case we want to invoke this method in a way that catches any additional exceptions beyond the checked ModelException. Users of this helper method should also check for a null return value.

Next we need a new dynamic content JSP page to render our social media bar.

The code listing is given below:


The above code listing deserves some explanation. In the declarations at the top we include our helper and common tag library includes.

Next we look for two parameters. The first is the uniquename of social media label from Portal - Manage Pages portlet that contains our external links and metadata. The second is an optional parameter for a separator markup we optionally may place between groupings of items in our social media bar. When possible you should try to achieve this using CSS instead of the separator markup parameter.

In the next section we call our helper function “getNodeByUniqueName” in order to get the NavigationNode to iterate over. We conditionally process the lookup of children under the navigation node if the social node is not empty.

We initialize a category variable to track changing from one grouping of social links to the next. This is our indicator to output the separator markup.

Next, we use the Portal EL Beans to get the metadata for each external URL managed by the portal:

  • link.css.classname
  • link.category
  • “Page Icon” property


With this we conditionally output the separator markup, and finally we output a link using the CSS class name from the page properties.

The image icon URL is optional and changes the content of the anchor tag. Depending on how you wish to implement the social media icons. You can use CSS for the anchor tag alone to render the images. If you provide the icon URL the tag is used. Using CSS only may be preferable as you can use glyphicons.

Now that we have a JSP to render our social media toolbar, we can place this into the static resource(s) of our theme as a dynamic content spot. You can register the dynamic content spot as a theme resource environment provider property per – “Creating a dynamic content spot”. For the purpose of this article we’ll simply use the resolver URI directly.

The code listing below shows adding the social media bar dynamic spot to the “theme_en.html” file:



Note the protocol and URI resolves to our JSP in the anchor with relation attribute of “dynamic-content.” We also give the uniquename parameter in the query string.

This is total code needed to implement the solution aside from site specific css.

Portal Page Management
We need to create our Portal Label and add some links. To do this; navigate Portal Administration and select Manage Pages.

Navigate to Content Root > Hidden Pages. Create a new Label under Hidden Pages.



Enter “Social Media Links” under the title, and give the label the same uniquename you used when creating the dynamic content spot.



Next, add a new URL under the Social Media Links label




In this example, I used an image for Page Icon property. If you wish to set page parameters for link.category or link.css.className you must first click Ok to Save the URL. You then return to edit the URL and can modify the page metadata. An example of this appears below:


The screen capture below shows a representative URL’s Page Parameters being set.



Repeat the URL creation process for each link you wish to show in the toolbar.



The Rendered Output
The social links created in Page Management will now be presented in the theme(s) that render the social media bar dynamic content spot.

Conclusion:
This is one possible solution to building social media bars in WebSphere Portal 8 Themes. The solution allows a Portal administrator or business user to create new toolbar items (excluding the supporting CSS or images.) The same user can activate and deactivate a link. The links in the toolbar can be reordered. The links could be different for authenticated users based on a user’s identity by using “assign permissions” or by using personalization rule mappings. Most importantly the link data is decoupled from a particular theme and its presentation of the links.

Tim Reilly is a Technology Manager with Prolifics. He has led the implementation of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise Java and Portal solutions leveraging WebSphere Portal, Content Management, Tivoli and 3rd party integrations. He has over 10 years of experience with Websphere Portal and is a former Apache Software Foundation committer.

Creating the Intranet “Classifieds” Feature using IBM WCM 8 – Part 3

In this blog series on WCM Based “Classifieds” intranet solution, we covered the Site Area, Authoring and Presentation Templates, HTML & Menu Components, Categories, Authoring Tools Component so far. In this final part of the blog we will look at the Workflow and Permissions and finally Creating the Page and Portlet.

Workflow and Permissions
  • Workflow
    • The following workflow is used to manage the item lifecycle. By default, the item enters the first stage “WS_DraftMktpl”; it has a scheduled move action which moves the item to next stage in 1 min. The next stage contains the Publish action and publishes the item on the live site.


    • We could also use an approval process for each kind of item by inserting one more stage between the Draft and Publish stages for approval. Approver rights can be assigned to a group or person in the Approval stage, ensuring all content is approved manually by a group/person before it gets published.
  • Permissions
    • In order to enable users to post, edit and delete items on the live site, we configured the following permissions.
      • Page and Content Viewer Portlet– Map “User” role “All Authenticated Users”
      • Demo_Lib – Map “Contributor” role to “All Authenticated Users”
      • Demo_Lib\Content – Map “Editor” role to “All Authenticated Users”

First, you need to assign all authenticated users access to pages and the portlet, which render the content. Next, you want to assign permissions for Demo_Lib(you content library) and Demo_Lib\Content in order to provide edit, delete and create functions to end users.

All these permissions are set using Portal Administration Console.

Creating the Page and Portlet
Page - Here we create a Portal Page anywhere in the Portal page hierarchy and make sure end users have appropriate permissions to access that page.

Portlet - Place a Web Content Viewer (JSR 286) portlet on the above page. Edit the portlet and add the below settings.


    • Select the HTML component that renders the Marketplace view. This is a convenient feature in WCM 8 where we can directly render components instead of placing them on Content Items first.
    • Next, select the three authoring templates to act as input when you click the button “Post Item,” providing users with an option to select one of these to add as the new item.

Conclusion
In short, the solution is useful for building a classifieds-like site within your intranet or Internet site using Portal and WCM 8. This article only gives the general idea and concepts that can be used to build such a solution, but you can tweak it in numerous way to meet your specific requirements. Essentially, the main enabler of this solution is the use of the Authoring Tools component and the appropriate permissions to provide that component to end-users.

In the example we used in this blog series all the three items can be created using a single button that gives users a choice to pick an authoring template. This was our client requirement; you may divide your site into different sections based on different item types and have a different button for each item type. So, based on your requirements, you can choose an appropriate option to select authoring templates within the Authoring Tools component.

Manmeet Gill is a Senior Consultant at Prolifics, an IBM Bravo Award Winner and a key member of specialized teams working on IBM WebSphere Portal, Content Management, IBM Forms and Collaboration technologies. He is certified in IBM WebSphere Portal and IBM Web Content Manager and has over 8 years of IT experience. Besides specializing in IBM technologies he is a double black snowboarder, an advanced windsurfer and a superbike enthusiast. He holds a Bachelors Degree in Engineering from MSR Institute of technology, Bangalore.

Tuesday, January 22, 2013

Creating the Intranet “Classifieds” Feature using IBM WCM 8 – Part 2

In this blog series on WCM Based “Classifieds” intranet solution, we covered the Site Area, Authoring and Presentation Templates so far. In this blog we will look at the HTML & Menu Components, Categories, Authoring Tools Component, Workflow and Permissions and finally Creating the Page and Portlet.

HTML and Menu Components:
  • Menu Components
    • To list the three types of content items under respective sections of the rendered Marketplace, we use three menu components: menu_MktplcVehicles, menu_MktplcElectronic, and menu_MktplcOther. Each of these menu components pulls content based on the category that distinguishes each type of content. Each menu also contains the HTML markup to render the list of respective items.




  • HTML Component
    • This component is the main presentation component of Marketplace. The above three categories are put together using a jquery tab construct, and the markup for that resides in an html component called html_Marketplace. This html component is the top level component that is configured in the “Web Content Viewer(JSR 286) portlet”, and it calls the three menu components to render each tab view.

Rendered View of Marketplace:


Categories:
We use three categories under the Taxonomy - WCM/Marketplace - Vehicles, Electronics and Others - to categorize the three kinds of content items.

Authoring Tools Component:
This is the most important aspect of the whole solution. This is how “create” and “edit” features are exposed to the end users. An authoring tools component allows users with appropriate permissions to create new items, edit items, delete items or approve items inline on the live site. That means the users don’t need to access the authoring UI to author content.

We use two authoring tools components as part of our solution:
a) atcomp_ItemPost: This component allows users to create new items and is rendered as a button. The way we use this component is quite interesting, as we configured the component to use the Authoring templates defined in the rendering portlet. In the rendering portlet we add our three authoring templates. Refer to “Pages and Portlet section” for portlet configuration.


Since there is more than one authoring template in rendering portlet configuration, invoking this control displays a list of authoring templates to choose from (see below).


An inline interface displays the authoring template to create new content once the template is selected (see below).

b) atcomp_ItemEditDelete: This component allows users to edit or delete an item. In the Marketplace listing page, each item has an edit and delete option next to it if it was created by the current logged in user. Essentially, only the creator of the content item can edit or delete the content item. This can be setup by assigning a “Manager” role to “[Creators]” group in the Published workflow stage.

So far in this blog series focused on a WCM Based “Classifieds” intranet solution, we have covered the Site Area, Authoring and Presentation Templates, HTML & Menu Components, Categories, Authoring Tools Component. In the next and final part of this series, we will look at the Workflow and Permissions and finally creating the Page and Portlet.

Manmeet Gill is a Senior Consultant at Prolifics, an IBM Bravo Award Winner and a key member of specialized teams working on IBM WebSphere Portal, Content Management, IBM Forms and Collaboration technologies. He is certified in IBM WebSphere Portal and IBM Web Content Manager and has over 8 years of IT experience. Besides specializing in IBM technologies he is a double black snowboarder, an advanced windsurfer and a superbike enthusiast. He holds a Bachelors Degree in Engineering from MSR Institute of technology, Bangalore.

Sunday, January 20, 2013

Creating the Intranet “Classifieds” Feature using IBM WCM 8 – Part 1

A feature that most organizations can provide as a benefit to their associates using their intranet is by implementing a company classified ads feature. This concept is by no means new, and some of us can reminisce of the physical cork bulletin board prominently displayed in a break room or around the office walls. A human resources department may choose to champion the intranet version of this concept as a "soft benefit" to employees or associates. For the associates there is a convenience of posting ads within the organization as opposed to posting out in public forums such as Craig's List. The associate is transacting with a more 'trusted' party. Many times an item can be exchanged at their work location.

Organizations that leverage IBM Web Content Manager and WebSphere Portal for their intranet site can quickly and easily build and deploy such a feature. We recently developed and deployed a large intranet redesign using WebSphere Portal with WCM version 8. This 3-part blog series provides an overview of the design and implementation of this classified ads feature. With the tools provided by IBM WCM and WebSphere Portal, a robust classifieds system can be created. We use a workflow to provide governance, WCM authoring templates for structured content capture and inline authoring tools to place content creation in context and in the hands of end users.

We called the classifieds feature “Marketplace”; it consists of three kinds of items (using three different authoring templates) that can be posted by users. The items are submitted by the users from the live site using the inline Authoring Tools component. The submitted items are sent to a workflow that has a scheduled move action to push it to the next stage where it gets published. Once published, the items appear live on Marketplace.

Users also have the option to edit their own items again using the Authoring Tools component on the live site. The changed items are sent to the same workflow and appear on Marketplace after they have moved to the published stage.

The actual library artifacts cannot be included in this article as those are client assets, but we have included snippets and concepts wherever applicable. The idea is to share the concepts and the solution approach so anyone needing a similar setup can use this as a starting point.

This blog is broken down into a 3-part series covering various assets that will need to be created as part of the overall solution followed by a conclusion section.

In this first part we will look at the Site Areas, Authoring & Presentation templates required for this solution.

The Site Areas:
We use a single Site Area to store all Marketplace content items. Create a Site Area; in our example, we use DEMO_Lib\Marketplace.

We use categories in Authoring templates to distinguish between different types of content items posted by users.

The Authoring Templates:
We use three authoring templates to post three different kinds of content items. These are exposed to end users through the Authoring Tools component. In our example, we use the following authoring templates:
i. Post New Vehicle
ii. Post New Electronic
iii. Post Other The “Post New Vehicle” template has the elements listed below. This is requirement specific and could contain any number and type of elements.

The “Post New Vehicle” template has the elements listed below. This is requirement specific and could contain any number and type of elements.



Attach a category to content by specifying a category in the “Default Content Properties->Profile” section of the authoring template. Each authoring template will have a different category that will be used to differentiate between various content items.



Finally, the workflow is attached to the content items created by authoring templates; simply select a pre-defined workflow in “Default Content Properties->Workflow” section.



The Presentation Templates:
We do not directly use the presentation templates to render individual items; using HTML and menu components, the listing page meets the rendering requirements. However, a presentation template for each type of content item maybe useful if search is to be supported.

When using Portal search to search WCM content, the respective presentation template is used to render the content item. So, since search did not need to be supported, no presentation templates were needed in our example.

As a part of this WCM Based “Classifieds” intranet solution, we covered the Site Area, Authoring and Presentation Templates so far. In the remaining two parts of this blog series, we will look at the HTML & Menu Components, Categories, Authoring Tools Component, Workflow and Permissions and finally creating the Page and Portlet. In the meantime, feel free to email me with any questions or comments you may have and visit www.prolifics.com for more information about Prolifics' WCM solutions.


Manmeet Gill is a Senior Consultant at Prolifics, an IBM Bravo Award Winner and a key member of specialized teams working on IBM WebSphere Portal, Content Management, IBM Forms and Collaboration technologies. He is certified in IBM WebSphere Portal and IBM Web Content Manager and has over 8 years of IT experience. Besides specializing in IBM technologies he is a double black snowboarder, an advanced windsurfer and a superbike enthusiast. He holds a Bachelors Degree in Engineering from MSR Institute of technology, Bangalore.