Showing posts with label Portal. Show all posts
Showing posts with label Portal. Show all posts

Thursday, July 17, 2014

Introduction to Script Portlet using AngularJS

Introduction
In this blog entry I would like to give an introduction to the NEW Script Portlet using AngularJS. I will also show you how to develop a sample weather application using the Script Portlet using AngularJS. 

This sample is only for demo purposes, and is by no means a completed application. In addition, this blog entry does not cover all the features of AngularJS or the Script Portlet.

What is Script Portlet?
The Script Portlet is IBM’s version of http://jsfiddle.net. It allows developers to write an application using JavaScript, HTML and CSS technologies. You only need a browser to develop and run these technologies. 

Installing Script Portlet
You can download Script Portlet from Greenhouse. This Portlet is constantly being updated with new features. At the time of this writing the Portlet is at version 1, update 3.

Your portal server should be at least at V8.0.0.1 CF 11 to install version 1.3 of Script Portlet. 

Once your Portal is updated, follow the steps in the “readme.pdf” to install the Portlet. This file is located in the .zip file you downloaded from Greenhouse.

Hello World
So now that you have your Script Portlet, let’s do a simple “Hello World” 
1. Place the Script Portlet on a portal page. 
2. Click “Edit Mode” on the top right of the page. This will enable the “Edit” link on your Portlet.




 3. Click the “Edit” link on the Portlet. This will launch four panels.


HTML/<head>: In this panel you can write your HTML code. Click on the <head> link to open the Head panel. Here you can write any code that you want to place in the <head> section of your Portal page. Note: If you want to include any JS or CSS files you can place them under the “Depedencies” section, explained later.
CSS: In this section put any CSS classes you want to define.
JavaScript: In this section place any JavaScript code you may have.
Preview: Once you click the “Save” button, your application can be previewed in this panel. 
For all these panels you have an icon that looks like this:. Click on this icon to expand the  panel. In the Preview panel you can also preview the application in a new browser window, just click the new browser icon.
Dependencies: You can define any external JS or CSS dependencies here. Just give the URL and click the “+” button to add the external resource to your application. Any dependencies you define here are automatically added to <head> section of the page. 
Rename the Portlet: You can rename the Portlet title. Click “Edit” link next to “Script Portlet Content Item”. Rename it to “Hello World”.
 


4. Now that we know the interface, let’s continue with our Hello World app. Place the below code in their respective panels.
HTML: 

JavaScript:

5. Click the Save button. This will render the application in the Preview panel.


6. Click on the “Click Me” button. It will display an alert that says “Hello, Script Portlet”.


7. Great, we finished our first application.

Some More Details About Script Portlet
All the code you develop in script Portlet is stored within IBM Web Content Management found on the Portal server.




You could create your own WCM project using managed pages and create a Portlet using Script Portlet. This project can then use WCM workflows to approve the page and Portlet for release and change management control.

For more details on Managed pages please refer to the IBM Wiki.

What is AngularJS?
AngularJS is like any other JavaScript framework (such as jQuery, Dojo, Prototype.js etc.), but with one key difference. AngularJS is based on a MVC framework. With growing demand to make web applications work more like desktop applications, you need to carefully design your front end views. If your JavaScript is all over the place with <script> tags then it will be impossible to maintain. With other frameworks like jQuery and Dojo, you as a developer should put extra effort to design your application properly. But with AngularJS (much like Spring and Struts) it provides guidelines of how to develop an MVC application.

Say Hello to AngularJS
Let’s develop a simple application before we develop a bigger application.
1. Place the script Portlet on the portal page and open the editor.
2. Add https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.13/angular.min.js as the


3. Directives: Directives are notations letting AngularJS know what that block means. For example “ng-app” lets the framework consider that block as an application. This “ng-app” directive makes AngularJS take care of some important tasks on your behalf. The “ng-app” directive makes sure it initializes the models (ng-model), controllers (ng-controller), views (ng-view), etc. as the application is loaded.

We use {{someModelReference}} format to reference a model, typically meaning a data element.
This information is enough to complete our first AngularJS application.

4. Copy the below code in HTML panel.


5. Click the “Save” button. The application is opened in Preview panel. Type your name in the text box.



AngularJS Building Blocks
As seen in the above example, with some simple directives we made our code simple and clean, but at the same time we achieved some functionality without any JavaScript code. Now our code looks more readable. Let’s explore the building blocks of this framework:

Module:
A module is like an application. You can have one or more modules/applications on a page. In the above application “ng-app” initializes an application. A module can be initialized as ng-app=”MyModuleName”.
Modules contain models, controllers, views, factories, services, etc.

Model:
Any framework model represents your data. In AngularJS you can define what a model is. It can be as simple as string or it could be an object. You use “ng-model” to bind your data to HTML controls. You can also reference your model using {{yourObject.attribute}}. 

Model data is properly scoped when you use “ng-app” directive. Models can be further scoped using “ng-controller”. They can also be passed between controllers or views.

Controller
As in any MVC framework, your controller is the bridge between model and view. Controller can do custom logic, invoke a factory/service to call backend and construct the data model and hand it over to appropriate view.

View
View is the markup for the application. “ng-view” defines a view. There can be multiple views in an application. Each view is a HTML template that has place holders for model data and event handlers to hand over control to Controllers.

Routing
Routing is the configuration that defines which view to invoke and which control to be used. In the below example when “/list” is the path, it renders the “list.html” template and passes “ListCtrl” controller.


Factory/Service
Factory/Service is used to make a reusable service. Typically controllers invoke one or more services.

Weather App
Let’s develop a sample weather application using some of the features of AngularJS.

Since we have only one view, we don’t have to define the view explicitly or configure the routing. You can explore more on views and routing at https://angularjs.org/.

We use a free REST API to develop this application. You need a create a free account at http://www.wunderground.com/weather/api/d/docs?d=data/index&MR=1

This free account will generate a key, which should be used in our sample application.

Dependencies
Define the following dependencies.
1. https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.13/angular.min.js
2. http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css

We use bootstrap to control the look and feel. Bootstrap is an open source CSS utility to create responsive applications.

JavaScript 
Place the following code in JavaScript panel. Code is explained with inline comments.


HTML
Place the following HTML code in HTML panel. Code is explained with inline comments.

                          

                           

Ajax Proxy
We cannot directly make an Ajax call to another domain as browsers do not allow cross site scripting for security reasons. Portal has a feature called “Ajax proxy” that allows this to happen. It just needs some configuration.

Copy “proxy-config.xml” from your Portals  “IBM\WebSphere\wp_profile\config\cells\<YourCell>\applications\AJAX Proxy Configuration.ear\deployments\AJAX Proxy Configuration\wp.proxy.config.war\WEB-INF” directory and add the following policy.


Run the following command:


C:\IBM\proxy-config.xml is your updated file.

Final output:





Features Coming Soon
There are some NEW features that IBM plans to release soon:
1. Upload zip files: In the next version you should be able to upload a zip file with multiple JS, CSS and HTML files.
2. Copy existing scripts: You can copy existing scripts from a different project and update them as required.
3. WebDav entry point: You should be able to update your files connecting to a WebDav entry point. This should be handy if you use any tool like Brackets to edit your code or store the files in source repository.

References:
Greenhouse Script Portlet URL: https://greenhouse.lotus.com/plugins/plugincatalog.nsf/assetDetails.xsp?action=editDocument&documentId=DDB5C467D991413285257C67002476E0

Script Portlet Sample:
http://openntf.org/main.nsf/project.xsp?r=project/Script%20Portlet%20Samples%20for%20IBM%20WebSphere%20Portal/summary

Script Portlet Webinar:
https://developer.ibm.com/social/2014/05/05/webinar-replay-developing-portlets-using-html-css-javascript/

Script Portlet Presentation:
http://www.slideshare.net/IBMSBT/script-portlet-v30#

Sample Weather Service:
http://www.wunderground.com/weather/api/d/docs?d=data/index

AngularJS:
https://angularjs.org/

AngularJS Video Tutorial:
https://www.udemy.com/angularjs-jumpstart/?couponCode=AngularJSJumpStart40


Krishna Bhupathi is a Technical Lead with strong background in J2EE and Portal technologies. With over 10 years of experience in IBM technologies, Krishna has been responsible for design and delivery of many intranet and internet web sites using IBM products. He is a certified Portal developer. Prior to Prolifics, Krishna worked for IBM Global Services. He used to design and develop portal solutions to customers. 
Krishna attended college in India, he did his engineering in Computer Science at Visvesvaraya Technological University. He likes playing cricket, he plays for TCC at Triangle Cricket League, NC.

Thursday, June 12, 2014

Prolifics Employee Showcase: Alan Shemelya, VP of Healthcare Business Development

Alan Shemelya is the Vice President of Healthcare Business Development and is responsible for growing Prolifics’ healthcare services and solutions for customers around the world. With more than 30 years of experience and thought leadership in the Healthcare industry, Alan has accomplished an impressive list of milestones over the course of his career and is passionate about not only helping businesses achieve success but also making significant strides in patient care.

Commitment to Healthcare
Alan’s passion for the healthcare industry began as a young child after a trip to the hospital. His interest grew in college when he wrote a thesis on healthcare finance. During this project, he realized that hospitals were manually driven in just about everything they did on a daily basis and were operating 10 years behind. From registration to billing, automated processes simply did not exist.

It was at this time that Alan recognized an opportunity in the industry. Throughout his career, his work has always been driven by a consistent mission: finding ways to improve the care of sick children.

The Road to Prolifics
Alan joined the Prolifics team in March 2014. Over his career, he has worked with a number of leading healthcare information technology (HIT) and consulting companies in Sales, Product Development, Marketing and Implementation of EMR, Revenue Cycle and ERP solutions. Prior to joining Prolifics, Alan provided his leadership and expertise at HCA/Parallon, Xerox/ACS, Allscripts and McKesson.

Alan is driven by his motivation to provide innovative IT solutions for the provider and payer markets, specializing in improving patient, provider and payer communications, business process enablement, and outcomes. With Alan’s expertise in the healthcare industry, experts will have the experience, skills and knowledge necessary to deliver in this highly complex industry, aligning innovative and proven solutions to solve clients’ business goals.

Innovation & Thought Leadership
Alan has written articles on the redesign of business processes and advancement in technologies that enable the automation of workflow decisions impacting both providers and payers. He has been a featured speaker with the Southern Healthcare Administrative Regional Process (SHARP) and has been on the National Speakers List for the Healthcare Financial Management Association (HFMA). Below is a list of articles that Alan has published throughout his career.

HFMA ANI, 2009
HFMA Georgia Meeting, 2010
HFMA Patient Friendly Billing – Accessibility of Data

The Future is Bright
When asked, Alan selected the following three words to describe Prolifics: agility, intelligence, responsibility. He finds these characteristics as key drivers for success in building innovative healthcare IT solutions.

A Recent Journey
Alan recently participated in the AIDS/LifeCycle 2014 bike ride. This is a fully supported, 7-day bike ride from San Francisco to Los Angeles designed to raise money and awareness in the fight against HIV/AIDS. This event delivers a life-changing experience for thousands of participants from all backgrounds and fitness levels united by a common desire to do something heroic. Prolifics proudly supports Alan and this worthwhile cause!



Alan Shemelya is the Vice President of Healthcare Business Development at Prolifics. He is responsible for growing Prolifics' healthcare services and solutions for customers around the world. Alan has 30 years of experience and thought leadership in the Healthcare industry, specializing in Sales, Product Development, Marketing and Implementation of EMR, Revenue Cycle and ERP solutions. As an industry expert in the healthcare financial arena, Alan has written articles on the redesign of business processes and advancement in technologies that enable the automation of workflow decisions impacting both providers and payers. He has been a featured speaker with the Southern Healthcare Administrative Regional Process (SHARP) and has been on the National Speakers List for the Healthcare Financial Management Association (HFMA).


Wednesday, June 11, 2014

The Web Speech API and WebSphere Portal 8

The evolution of speech recognition software has come a long way. Companies like AT&T Bell Labs, IBM, and Nuance Communications are leading speech recognition experts. Commercialized software like IBM ViaVoice and Dragon NaturallySpeaking were game changers in the speech recognition software industry. The backbone technologies in speech software (e.g Hidden Markov Models, noise filtering technology, acoustic signal processing, etc.) that were originally developed decades ago, but are finding their application today in products and services like gaming consoles, smartphones, customer help centers, and infotainment systems. The adoption of speech recognition technologies is becoming an important part of the way we live. The application of the technology is crossing multiple industries; from enforcing traffic laws, to educational training, and medical transcription. The pervasiveness of speech-enabled products and services will likely lead to further innovation and refinement. This article will show you a rudimentary way on how to bring speech recognition to your web experience using a few lines of JavaScript, CSS, and HTML code in the WebSphere Portal 8 environment.

By leveraging the JavaScript API defined in the Web Speech API specification, we’re able to tap into the browser’s audio stream to transcribe speech to text. Currently, the only browser that supports the Web Speech API specification is Google Chrome. As a note in the cited W3C specification, the Web Speech API specification is not a World Wide Web Consortium (W3C) standard nor is on track to becoming a standard.

To enable speech recognition in our browser, there are a handful of events and attributes we need to handle and define in order to make this functional. The start, end, result, and error events will provide us the triggering points needed to initiate and terminate our speech recognition feature on the web page. There’s also a few attributes we need to set to assist us in the transcription process.  

Explanation of Core JavaScript Functions and Attributes
For this implementation, the anonymous functions correlating to the start, end, result, and error events defined in the Web Speech API Specification are defined below. The triggering points for start and end events are through button clicks; the end event could also be triggered by non-detected speech or if there’s an error detected by the speech recognition service (in our case, the service hosted by Google.)
In the example code below, we adapted the W3C Web Speech API specification sample code as our foundation:






The SpeechRecognition (e.g. webkitSpeechRecognition) JavaScript object attributes that are utilized in this example are defined below:
  • continuous: Sets the behavior for discrete or continuous speech
  • interimResults: Indicates if an interim transcript should be returned 
  • lang: Defines the language of the recognition

Please reference the Web Speech API specification for a complete list of method, attribute, and event definitions.

Enabling Speech Recognition in WebSphere Portal 8
Copy the images, CSS, and JavaScript files from the “SpeechAPI.zip” file to its corresponding Portal theme static resource folders (e.g. <Theme>/images, <Theme>/css, <Theme>/js).

Enabling Speech Recognition in WebSphere Portal 8

Copy the images, CSS, and JavaScript files from the “SpeechAPI.zip” file to its corresponding Portal theme static resource folders (e.g. <Theme>/images, <Theme>/css, <Theme>/js).


For a quick test, Edit the “search.jsp” file from “<WPS_HOME>\PortalServer\theme\wp.theme.modules\webapp\installedApps\ThemeModules.ear\ThemeModules.war\themes\html\dynamicSpots\modules\search\”:
Include the following JSTL variable declarations at the top of the “search.jsp” file
<!-- START: Speech Recognition JSTL variables -->
<c:set var="sr_basePath" value="/wps/mycontenthandler/dav/fs-type1/themes/portal8WebSpeechTheme"/>
<c:set var="sr_imgPath" value="${sr_basePath}/images"/>
<c:set var="sr_cssPath" value="${sr_basePath}/css"/>
<c:set var="sr_jsPath" value="${sr_basePath}/js"/>
<!-- END: Speech Recognition JSTL variables -->  

Include the following HTML Input-element after Input-element (id="wpthemeSearchBoxInput") of the “search.jsp” file
<input class="wpthemeSearchText" id="sr_microphone_button" type="button" title="Click to start speaking" alt="Microphone Off" style="width: 22px; height: 22px; vertical-align: middle; background-image: url('${sr_imgPath}/microphoneOff_22pxs.png');" onclick="WebSpeechHelper.prototype.toggleStartStop(event, stateInfo)">

Include the following HTML snippet right after the last <div> in the “search.jsp” file
<!-- START: Speech Recognition HTML -->
<div id="sr_webSpeechAPIContainer">
<!-- Pull in Speech Recognition Resources -->
<LINK rel="stylesheet" type="text/css" href="${sr_cssPath}/speechRecognition.css">
<SCRIPT src="${sr_jsPath}/speechRecognition.js"></SCRIPT>
<div id="sr_results" class="sr_results">
<span id="final_span"></span> 
<span id="interim_span"></span>
</div>
<SCRIPT>
var jsonText = '{"parameters":[' +
'{'+
'"locale":"en-US",'+
'"imagePath":"${sr_imgPath}",'+
'"microphoneOnImage":"microphoneOnAnimated_22pxs.gif",'+
'"microphoneOffImage":"microphoneOff_22pxs.png",'+
'"microphoneDisabledImage":"microphoneDisabled_22pxs.png",'+
'"microPhoneButtonID":"sr_microphone_button",'+
'"finalSpanID":"final_span",'+
'"interimSpanID":"interim_span",'+
'"searchBoxID":"wpthemeSearchBoxInput"'+
'}'+
']}';
var jsonObj = JSON.parse(jsonText);
var stateInfo = new SpeechStateInformation(jsonObj);
WebSpeechHelper.prototype.initializeVoiceRecognition(stateInfo);
</SCRIPT>
</div>
<!-- END: Speech Recognition HTML -->


*** Please reference the “search.jsp” file, included in this blog, to verify that the code-placement is correct. ***

After making the modification to the “search.jsp”, log into WebSphere Portal with Google Chrome (version 25 or above) to see the microphone image appear on the left of the search-icon as such:



By clicking on the microphone image, the browser will ask you to “allow” microphone usage. The microphone image will animate when it’s enabled. In this example, I searched for “web content manager”. (Note: Click on the native search button after you’re finished speaking)




Summary
This article we hope has helped introduce the possibilities of adding speech capabilities to the user experience in WebSphere Portal 8 and beyond. The referenced example and resources should help in getting started with exploring this emerging trend in voice enabled inputs in the digital experience. Many possibilities exist for reacting to and enabling voice input and interactions with the IBM Digital Experience platform. We look forward to increasing browser support and adaption in the near future. The solution presented here could also be abstracted into a portal theme module for re-use with the module theme framework. For the purpose of illustrating the voice API integration presented here we have not packaged the examples in the Portal 8 modular theme contributions as we normally would. A non-illustrative solution would contain the modular theme contribution configuration so that resource aggregation and minification are addressed and conform to Portal 8 best practices.



Richard Yu is a Senior Consultant at Prolifics with over 11 years of experience in application design, development and migration. He has worked on projects of varying complexity and magnitude in healthcare, manufacturing, and government . He holds two Master's degrees from NYU Polytechnic School of Engineering and a Bachelor's from Stony Brook University.

Wednesday, February 5, 2014

Applying a Cumulative Fix: IBM WebSphere Portal 8

In this whitepaper, Omar Siliceo illustrates a generic method to apply IBM WebSphere Portal Cumulative Fixes. The installation of a cumulative fix is carried out in two major stages. During the first stage, the actual code for the Cumulative Fix is deployed on the Portal nodes and the master Portal Profile. Once the code is in place, the second stage can initiate. During the latter, each of the additional WebSphere Profiles is upgraded to the Cumulative Fix by using the ConfigEngine tool.

The whitepaper follows the following road map:
1. Access Reference Document
2. Cumulative Fix ID
3. Cumulative Fix System Requirements
4. Cumulative Fix Distribution Acquisition
5. Cumulative Fix Content Extraction
6. Cumulative Fix Pre-Installation Tasks
7. Cumulative Fix Installation





Applying a Cumulative Fix: IBM WebSphere Portal 8






For more information and to contact Prolifics, visit www.prolifics.com.

About the Author:

Omar Siliceo is a Senior Consultant in the User Experience practice at Prolifics. He is a professional Systems Engineer with a Master of Science degree in Electrical Engineering. Beginning his career over 20 years ago, he has focused on providing design, programming consultation, and problem solving to organizations around the world. He specializes in WebSphere Application Server, WebSphere Portal, and WebSphere Edge Components efforts and has worked with a notable list of clients, including Bank of America, Blue Cross Blue Shield of Florida, Macy’s and The World Bank Group. Omar is the author of the book “IBM WebSphere Application Server v7.0 Security”.

Wednesday, August 21, 2013

Integrating WebSphere Portal 8 With IBM Connections Using Connections Portlets - Part 3

This article is the third and last part of the article which explains details of integrating websphere portal with connections using web app integrator portlet and connections portlets. In the first two parts we saw details of integrating portal with connections using web app integrator portlet.This part explains details of integrating WebSphere Portal with connections using IBM connections portlet.

IBM CONNECTIONS PORTLETS
The IBM Connections Portlets for WebSphere Portal delivers the IBM Connections rich set of social software services for use within a WebSphere Portal environment. WebSphere Portal users can integrate the Activities, Blogs, Bookmarks, Communities, Forums, Profiles, and Wiki applications of Connections along with a Tag Cloud portlet for quick filtering in composite applications. The approach here is to display the Connections in a portlet in portal page.

These portlets are part of the collection of portlets that are available on the Solutions Catalog on IBM Greenhouse and can be downloaded from the following location. Here I used portal version 8 and IBM Connections 3.0.1.

https://greenhouse.lotus.com

After unzipping the downloaded IC3011_Portlets_20121211.zip, you can see that there are two folders available, IC3011_Portlets and IC3011_Portlets_refresh.IC3011_Portlets_refresh is used to integrate with portal 8.This has a PAA file SNPortlets.PAA which has all the connection portlets bundled into it. Once we install this PAA file we can access connections in portal environment.

CONFIGURING AND INSTALLING CONNECTIONS PORTLETS
To install, deploy and configure the connections portlets we need the following steps.


1.  Import a certificate to support SSL
Log into the WebSphere® Application Server Integrated Solutions Console.

Navigate to Security -> SSL certificate and key management -> Key stores and certificates.
Add the certificates to the appropriate trust store as configured in SSL Configurations. To view the SSL configuration and determine the appropriate trust store, navigate to: Security -> SSL certificate and key management -> SSL configurations -> NodeDefaultSSLSettings -> ['Trust Store Name']
For example, in a standalone deployment you navigate to NodeDefaultTrustStore -> Signer certificates for adding certificates. If NodeDefaultSSL Settings points to 'CellDefaultTrustStore', you add a certificate to 'CellDefaultTrustStore'.
Click Retrieve from port. Enter the host and SSL port used by your Connections server.
Click Retrieve signer information and Save.

2.  Run the Following Config Tasks
ConfigEngine install-paa -DPAALocation=C:\WebSphere\wp_profile\paa\SNPortlets.paa -DWasPassword= [was-admin-pwd] -DPortalAdminPwd=[portal-admin-pwd]

ConfigEngine deploy-paa -DappName=SNPortlets -DWasPassword=[was-admin-pwd]  -DPortalAdminPwd=[portal-admin-pwd]

ConfigEngine configure-SNPortlets -DWasPassword=password -DPortalAdminPwd=password

You can configure more parameters by logging into  admin console and add values in WPConnectionsIntegration Service as in step 4.

3.  Changes in Themes
Add the following two modules to your theme profile by editing the corresponding json file. These json files are in your profiles folder of theme. If you are using default theme profile, edit profiles\profile_deferred.json. If you are using a custom profile, add the modules to that profile.

wp_liveobject_framework, dijit_form_17

4.  Configuring WAS admin Console 
Log into the WebSphere Application Server Integrated Solutions Console. Navigate to Resources -> Resource Environment -> Resource Environment Providers.
Set the following five parameters in the custom property, WPConnectionsIntegrationService (create the property if it’s not already there)

blogsHomepageHandle, conversion, tagSearchType, emailSetting and globalBaseURL, the base URL to the Connections server
Configure Authentication

For this article, I used basic authentication instead of SSO as its simple and the setup is common for all environments. SSO setup varies in each environment depending on your access gateway.

Set the authenticationMethod property to basicAuth in the file, lcaccelerator.properties, located at (<wp_profile_root>\installedApps\<cell name>\PA_WPF.ear\snor.pf.portlets.war\WEB-INF\lcaccelerator\properties\ lcaccelerator.properties)

When using basic authentication for the portlets, every user must type in their personal credentials manually in the personalize mode of the portlets or shared credentials can be supplied from the Credential Vault.

If you are planning to use SSO environment, please refer IBM connections wiki from the following location. It has details for various types of SSO environment.

www-10.lotus.com/ldd/lcwiki.nsf

5.  Stop and Restart Portal Server

TESTING IN PORTAL
Once all the configurations are done you can login to the portal. You will see the IBM connections tab with the pages profiles, blogs, forums etc as in the below image. In the edit mode, select Personalize option and enter the username and password in the portlet as below and save it.

You need to enter the username and password in only one portlet and its transmitted to all other portlets. Logout of the portal and login once again and you can see all the connection portlets are displayed with the corresponding connection content. Profiles portlet is displayed in the image below.


This completes the integration of WebSphere Portal and Connections. To learn more about Prolifics, visit www.prolifics.com.

Sanju Varghese, a Senior Consultant for Prolifics, is an experienced Portal and JEE Architect. He was with IBM Global services for six years delivering WebSphere Portal based solutions to its major customers and is certified in Java,IBM WebSphere Portal and BPM . He has performed different IT roles ranging from being an Architect, Consultant, Technical lead and Software developer for several large projects .Currently his main focus area is integrating Portal with Collaboration software. Besides specializing in IBM technologies he likes reading, traveling, watching and playing cricket. He holds a Bachelors Degree in Computer Engineering from Pune University, India.

Monday, August 12, 2013

Integrating WebSphere Portal 8 With IBM Connections Using Web App Integrator - Part 2

This article is the second part of the article which explains details of integrating IBM WebSphere Portal with connections using web app integrator portlet and connections portlets. In the first part we saw an introduction of web app integrator portlet and installed a web app integrator portlet in the portal server and tested successfully. This part explains the steps needed to connect the installed web app integrator portlet with IBM Connections.

CONFIGURING PORTAL FOR INTEGRATION
From portal side we need to do two steps as we did in the first part for testing the WAI portlet.

  • Create a URL page in the portal using the New URL button, with unique name and set the URL value in the page property, in advanced section->HTML, set URL of the connections server.
  • Enter the unique name in the web app integrator portlet to generate the script.


 
CONFIGURING CONNECTIONS
We need to add the generated script in the header.jsp in connections server.If you search for header.jsp in connections you will see multiple header.jsp files in source directories and all are identical. 

We need to create a header.jsp in the customization directory. Customization directory is mentioned during installation. On Microsoft Windows, if you accepted the defaults during installation, the customization path is C:\Program Files\IBM\LotusConnections\data\shared\customization. This can be found in Websphere admin console of connections server. Customization directory is stored as the value of the websphere environment variable, CONNECTIONS_CUSTOMIZATION_PATH.
  1. Create a directory called "templates" at <customizationDir>\common\nav\.
  2. Copy the header.jsp file from any of the application source directory to the new templates directory. For example, copy the header file from <WAS_home>\Activities.ear\oawebui.war.\nav\templates.
  3. Copy the script generated from the WAI portlet in the header.jsp
  4. Restart the connections server.
Another websphere environment variable, CONNECTIONS_CUSTOMIZATION_DEBUG can be found in the admin console as well. Set the value of this variable to true and then we should not need to restart connections server for jsp changes.

TESTING INTEGRATION 
If you have properly configured till this point, then you can go back to portal. Navigate to the URL page you created, here Connections Integration page, you should see the connections inside the portal. 


We have completed the integration of WebSphere Portal and Connections. I used Portal 8 and IBM Connections 3.01 for this article.You should be able to use it for other versions as well with minimal or no changes.

This article explains the basic integration techniques between portal and connections.For an excellent user experience and to make a seamless transition from application page to application page you should work with a theme developer to place additional theme modules.This will enhance the smooth transition between product pages and produce the desired user experience.

In the next part, Part 3, we will see how to integrate IBM WebSphere Portal and Connections using the Connections portlets.


Sanju Varghese, a Senior Consultant for Prolifics, is an experienced Portal and JEE Architect. He was with IBM Global services for six years delivering WebSphere Portal based solutions to its major customers and is certified in Java,IBM WebSphere Portal and BPM . He has performed different IT roles ranging from being an Architect, Consultant, Technical lead and Software developer for several large projects .Currently his main focus area is integrating Portal with Collaboration software. Besides specializing in IBM technologies he likes reading, traveling, watching and playing cricket. He holds a Bachelors Degree in Computer Engineering from Pune University, India.

Tuesday, August 6, 2013

Integrating IBM WebSphere Portal 8 With IBM Connections Using Web App Integrator – Part 1

IBM Connections is a leading enterprise social software which provides social networking tools for businesses. Existing IBM WebSphere portal users are exploring ways to seamlessly integrate Connections into Portal. This article explains details of integrating WebSphere Portal with IBM connections using Web App Integrator portlet and Connection portlets.

In the first part of this blog series, I will give an introduction of Web App Integrator portlet and the necessary steps to install it in WebSphere Portal Server. In the second part, I will provide details of the configuration of Web App Integrator and IBM connections. The third and final part of this blog series will include details needed to install and configure Connections portlets.

WEB APP INTEGRATOR (WAI)
Web Application Integrator for IBM WebSphere Portal is a solution which allows external web applications to be integrated with WebSphere Portal. Generally there are two approaches used to access external web applications in portal. The first approach is to display the external application in a portlet in portal page by developing a custom portlet. The second approach is to include the entire external application inside a Portal page. WAI uses the second approach with more flexibility than the existing web clipping methods. There are no viewing area constraints (no scroll bars) in WAI and all Java scripts and links within the integrated Web App continue to function as expected. The user experience suggests that the user is still within the Portal environment even though they are, in reality, natively accessing Connections.

INSTALLING WEB APP INTEGRATOR IN PORTAL
Web Application Integrator portlet is available as catalogue version from the IBM Lotus green house. WAI can be downloaded from the following location. Users need to register with the site before downloading.

https://greenhouse.lotus.com

Once unzipping the downloaded file, webappintegrator.zip, users can see folders for the various portal versions. It has WAI portlets for portal 6 version to current 8.0.0.1 version. In earlier versions WAI was packaged as a web archive (war) file but for recent versions it’s packaged as portal application archive (paa) file. To install paa files we need portal solutions installer (si) but portal 8 has an inbuilt solutions installer so this is not needed for version 8.

To install deploy and configure the WAI we need to follow the below steps:
1. Determine the correct version of the WebAppIntegrator portlet that should be used (8 or 8.0.0.1) and extract the files in that folder.
2. Copy WAIPortlet.paa to a temporary directory on your portal server.
3. Make sure WebSphere Portal Server is running.
4. Open a command prompt window and cd to <wp_profile>\ConfigEngine

Execute the following config tasks for Windows:


Here temp dir name is the location of paa file (<wp_profile>\paa), was pwd and wps pwd are the was admin password and the portal admin password respectively. For UNIX its ./ConfigEngine.sh instead of ConfigEngine.bat. Restart the portal server.

TESTING INSTALLATION IN PORTAL
Before integrating with the connections, we can do a quick test to see WAI is installed as expected. Login to portal as administrator and then navigate through the administration-> Manage Pages, you can see the WAI portlet as below, with a button to generate the HTML script tag.



To test we need the following steps:
1. Create a test.html with following contents and place in the wps.war(located at <wp_profile>\installedApps\<cell name>\wps.ear\wps.war)
2. Create a URL page in the portal using the New URL button and set the URL value in the page property, in advanced section->HTML, set value as http://<servername>:<port no>/wps/test.html.
3. Create a unique name, as shown in the WAI test Page above.
4. Generate script through WAI portlet using the unique name.
5. Place the generated script in the test.html immediately after the beginning <body> tag.

Now you can test by navigating to the WAI test Page. You will see the page appear as below.


This concludes the first part of this blog series. In Part 2, we will see how to integrate the installed WAI with IBM Connections.

To learn more about Prolifics, visit www.prolifics.com.

Sanju Varghese, a Senior Consultant for Prolifics, is an experienced Portal and JEE Architect. He was with IBM Global services for six years delivering WebSphere Portal based solutions to its major customers and is certified in Java,IBM WebSphere Portal and BPM . He has performed different IT roles ranging from being an Architect, Consultant, Technical lead and Software developer for several large projects .Currently his main focus area is integrating Portal with Collaboration software. Besides specializing in IBM technologies he likes reading, traveling, watching and playing cricket. He holds a Bachelors Degree in Computer Engineering from Pune University, India.