ShowTable of Contents
Abbreviations & Definitions
Sametime Development Toolkit
Application Programming Interface
Ro(BOT) – automated software to perform some task
To populate Sametime Branding area with a static image
To populate Sametime Branding area with a static Web page (usually from within the enterprise)
To develop a custom plug-in which will provide the content in the Sametime Branding area
The branding possibilities within IBM Sametime Connect Client 8.5 are of publishing an image, a URL link or a Plug-in. The first 2 methods have limited opportunities where as the Plug-in method was preferred for this application to allow maximum flexibility. For example: It allows developing multiple tabs in the branding area of the Client or it allows the Plug-in to pull content from Branding BOT (custom application) when latest content is available on the Server.
The Live Branding for Sametime Client application showcases how the IBM Sametime Branding feature can be used to disseminate various information; directly to the end-users of IBM Sametime Connect Client. This can be utilized as another channel to distribute corporate-wide information to end-users. The default branding Plug-in was utilized only for displaying Company’s logo or providing embed a page in the branding area. The customization has enhanced the branding area to store & display rich contents such as flash images, tabs etc.
Various websites & desktop initiatives are undertaken to disseminate information within an organization. However due to lack of time & effort required; most employees may avoid logging to the corporate website to check the latest information every time. Lack of observation towards noticeboards also fails to pass information to the relevant audiences. The advantage with IBM Sametime Branding section is that employees can get information while they are logged into the Corporate Chat platform. Any information put inside the Client window stands a good chance to be noticed.
§ Security Concern: Default Sametime branding options allow display of static web pages/images. Both of these require anonymous access to all users to the image/web page. This is causes security concerns in most enterprise server setup.
§ Load balancing and DR: All requests would go to a single server. So no load balancing and DR was possible with static content approach.
§ Plug-in Complexity: Another approach includes storing the web content locally and devise a mechanism of pulling Live content from a designated server. In this approach, two plug-ins were required; one to display the content in the Branding area and another to pull content from designated server. The problem with this approach is it requires end users to exit the IBM Sametime Connect Client and log in again to view the new content.
Fig 1, illustrates the Live Branding content publishing & rendering process.
Fig 1 flow chart illustrates the functionality of the branding application. Whenever the IBM Sametime Connect Client gets launched for the first time, it loads the content in client by extracting it from the default plug-in contents. If not launched for the first time, then it loads from the application folder in the system default path (/STPlugins/Branding).
After end user logs in IBM Sametime Connect Client, the timer is activated which checks for any updates in the server. If updates are present, it downloads the updated files to the application folder (/STPlugins/Branding) and then loads them in the client. If no updates are present, the timer is re-activated for next interval of inspection.
Server does not need to authenticate user since they are logged in to Sametime.
Load Balancing & DR
Each Branding BOT is pointed to designate IBM Sametime Server. For scalability, addition of more designated IBM Sametime Servers can be performed to handle Branding BOT load.
To display the latest Live content; another thread checks with the designated BOT server for latest content and updates the UI automatically.
Key Features of the application
“Custom Branding Application” has the following features in addition to Branding UI plug-in features:
- Allows publishing rich web content into users IBM Sametime Connect client.
- Branding UI has been developed with multiple tabs facility to allow various content publishing by category. Each tab has its own title & respective content allowing more dynamic information dissemination.
- Enterprise information can be shared through this channel – Internal Corporate News, External News, Weather News, New Product/Service launches or rollouts, New Announcements etc.
- Urgent Announcements from Senior Management to all Employees.
- Link to the local web pages publishing will be possible.
Custom Branding Application is developed utilizing the following technologies/programming’s languages:
Development & Product Technology
Java API for Sametime 8.5
Java API was used for developing plug-in and Branding BOT.
Plug-in and Branding BOT are develop in 1.6
The web pages should be in HTML4
Lotus Domino 8.5.1
IBM Lotus Domino 8.5.1 required for IBM Sametime Connect Client login and to communicate with Branding BOT.
IBM Sametime Connect Client 8.5
To render the custom branding plug-in & custom Sametime Branding BOT content dynamically.
Fig 2: General Application Architecture Diagram
- Sametime Community Cluster: Users login in connect client to the Sametime community server which is in cluster.
- Sametime DR: When primary Sametime Server fails the users are diverted to Sametime DR servers.
- Branding Application Server: This is the server on which the Branding BOT runs. Separate instance of the BOT is run an OS process which connects with designated server through its service as a trusted application
- Branding Application Server DR: The DR Branding BOT runs on this server connecting to Sametime DR server when the primary Sametime server fails. It contains one instance for the Sametime DR Server.
- Branding in Connect Client: This is the portion on Sametime connect client where the Branding is displayed to the end user and which is in sync with the server.
- Branding BOT Instance: Multiple Instance of Branding BOT Application running on single server provides scalability & portability to the application. A single Instance runs for DR.
Eclipse 3.7 M2 with IBM Sametime Java Toolkit 8.5.1 had been utilized for the BOT development. Eclipse 3.4.2 with Expeditor 6.2.1 and Sametime XPD Toolkit 8.5.0 had been utilized for the plug-in development. Eclipse features - Templates and Debug tools were helpful in a smooth and low defect development phase
User Interface: Development platform utilized for the IBM Sametime Branding UI is as follows:
- Eclipse 3.4.2
- Sametime 8.5
- Expeditor 6.2.1
- Java 1.6
- Internal libraries
Eclipse 3.4.2 was configured as per the installation steps in the SDK documents. The launch settings were created so that Branding BOT could be tested on IBM Sametime Connect Client 8.5. XML was utilized for development to ease future enhancement of the application. Since this is loosely coupled application client-server application where the Plug-in is the client and BOT is the server, from the user perspective there are various points of failure when new content is pushed. Therefore the application was developed with robustness and safe failback options.
BOT: Development platform utilized for the IBM Sametime Branding BOT is as follows:
- Sametime server toolkit 8.5
- Java 1/6
- Internal libraries
A major feature of the BOT application was its ability to handle concurrent file transfers. For this the application had to be robust and scalable. The fact that administrator may upload new content anytime outside application control, a mechanism had to be designed that only valid content was transferred to the Client. Quite a few internal libraries were used. For example CipherLib provides easy to use interface to the Java Cryptographic API. ToolsLib and CoreLib provide standard platform for both Plug-in and BOT development.
Additional application details
Application & Performance Testing
“Performance Tester” batch code was developed for IBM Sametime applications due to lack of performance testing tools for chat based platforms solutions. The test cases are written in Java for the following reasons:
- Java objects are being tested so integration is simple.
- Java is the language being used for development so no learning curve is involved.
- Java is multi-threaded so many test cases can be run concurrently in the same process.
For ST Branding the test case was: the user should log in and download a file. For Branding, we had to develop the Channel based interface as there are no ready test tools available for this platform. This test case implemented as a Java class.
Factory class was written to generate multiple instances of the test cases on demand based. JUnit was used to validate the test case using a Test Runner class. Once the JUnit test is successful, these test cases can be run as a batch.
On a typical machine, we can run between 500 to 1000 test instances. These are organized into batches of 100-500each. To allow for changing parameters at runtime, Eclipse ECJ java compiler was used. For 10000 concurrent users test, 10 desktop class machines are required to run the BOT Test case batch files.
Performance Testing was carried out for this Plug-in on different platforms such as Win XP, Win Vista & Win 7. Testing was carried out for 10,000 concurrent users through automated scripts developed to check simultaneously whether 10,000 users’ contents are getting pushed from the Server. Testing was carried out using various scripts; each script contains 500 users and per machine 2,000 users script was performed in a 5 different machines, with a 10,000 unique username. Based on this the performance of the custom branding application was tested. Testing also involved test cases by making changes in the branding contents such as changing a picture or background wallpaper, changing text, including flash files etc.
Post-Performance Testing, application security testing was conducted by the Internal Security team to identify any security loopholes if any.
Application Monitoring and Reporting
Automated scripts are developed to perform daily application reporting activity. The report captures the following usage statistics:
- Number of users who connected to the bot.
- Contents downloaded by unique users.
- Maximum concurrent users.
- Bytes transferred.
Application Security has a major role to play since the folder contents are getting pushed to local machine of end -users of the Company. Application operates on a secure communication channel between the IBM Sametime Connect Client and BOT.
Application Business Benefits
Following are the business benefits of adopting this solution:
- Implementation would enhance the involvement of the employee within the organization.
- It would provide an easy and reliable means to ensure that the right & latest information has reached the targeted audience in the organization
- It would increase overall productivity and efficiency in the organization
- It would provide an exceptional intranet employee experience, a major leap towards employee engagement and hence overall satisfaction.
- The time taken for propagating any updates is less than 10 mins; faster than any mass mail.
IBM Sametime Meetings Remote Client SDK
IBM Lotus Sametime 8.5 Information forum
IBM Sametime developer work forum
About the Author
Kamna Puri is an Solution Architect working in IBM Social Business, Corporate Technology Excellence Group, TATA Consultancy Services Ltd.
and has 10 years of IT experience. Her core competencies are Product & Solution consulting, Solution architecting, Product Administration, Project & Program management, Presales and Process Consulting. She has approx 8+years extensive operational experience on various Collaboration Products ranging from IBM Lotus Notes/Domino, IBM Sametime, IBM QuickPlace, WebSphere Portal Server, IBM DB2 and MS SharePoint 2007 with strong technical certification background – IBM Certified Lotus Professional, Microsoft Certified Technology Specialist (MCTS) certified in Microsoft SharePoint Server (MOSS) 2007, ITIL V3.