A very Merry Christmas to you

Posted by:

Infoware wishes to thank all of our customers and friends for a fantastic year! We started off in January with the great conference IBM Connect in Orlando. Our product DomainPatrol Social did indeed hit the charts, and we have had a really busy year, taking care of all the new contacts we made. We are proud to announce that we now have several new customers using our IBM Connections tool. And with this, our knowledge about how you want IBM Connections shall be modeled and used, is growing by the day. All this nice feedback and credit gives us a real energy boost to continue to use our expert skills in developing DomainPatrol further!

Our room booking app for mobile devices, Rooms & Connections, has also received praise, and since we see an increasing interest for mobile apps in total, we are keeping up the speed in developing new versions and with extended functionality!

We are more global than ever! Our technical experts are increasingly demanded by customers abroad. We suspect it has something to do with our knowledge and experience within social business, infrastructure and development work.

The other day we celebrated a very sucessful, fun, challenging and rewarding year at our annual christmas party on a restaurant in the beautiful Stockholm archipelago. A relaxing evening with coworkers where we planted a seed for a promising new year 2015!

Christmas is a time of giving so our gift this year goes to Doctors without borders! They do very important work in providing medical aid where it is needed most. Why not do the same? http://www.doctorswithoutborders.org/

0

Developing social applications with the Social Business Toolkit SDK

Posted by:

Intro

The Social Business Toolkit SDK (SBT SDK) is a set of libraries and code samples that you use for connecting to the IBM Social Platform. As a developer you can choose which web development skills fits you best: Java, (client side) JavaScript or XPages. Your social platform may reside in the cloud or on premise.

In this post I will give you guidelines and practical examples to get you started. I choose XPages as development environment.

Terminology

In the document terms are thoroughly used:

Term

Description

SBT

Social Business Toolkit

SDK

Software Development Kit

DDE

Domino Designer on Eclipse

XPages

XPages is a rapid web and mobile application development technology

OpenNTF

Open Source Community for (IBM) Collaboration Solutions

OAuth

Open standard for authorization

Managed Bean

Java Beans representing system objects and resources

Endpoint

Encapsulates the access to a service provider, like Connections or Sametime

Installation of the SDK

Prerequisites

Before you can start with development in Domino Designer on Eclipse you need to install the SBT SDK. It can be downloaded from the following address: http://ibmsbt.openntf.org/The files you need to work with the SBT SDK and Domino are located in folder ‘redist\domino’ in the downloaded ZIP file.

Extension Library

Another condition to be able to run the Social SDK within your XPages you need to have installed the Extension Library, available on OpenNTF: http://extlib.openntf.org/. You need to have the library installed on both Domino server and DDE.

Installation for Domino Server

You can find a set of instructions how to install the SBT SDK on an IBM Domino server on the address:
http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Social+Business+Toolkit+SDK+documentation#action=openDocument&res_title=Installing_on_Domino_Server_SDK1.0&content=pdcontent. I recommend the installation via an Eclipse Update site. As a result your Update site should display the following plugins:

Screenshot_4

Installation for DDE

The Domino Designer deployment of the IBM Social SDK can use the same imported update site from the Update Site NSF. On Domino Designer verify that the checkbox for "Enable Eclipse plugin install" is checked in the Domino Designer preferences. You can find a set of instructions how to install the SBT SDK on DDE on the same address:
http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Social+Business+Toolkit+SDK+documentation#action=openDocument&res_title=Installing_on_Domino_Server_SDK1.0&content=pdcontent.

Setting up a Notes application

Create a new Notes application from scratch. I called mine ‘bornsocial.nsf’. Open the Xsp Properties file in DDE. Include the following libraries:

  • com.ibm.xsp.extlib.library
  • com.ibm.xsp.sbtsdk.library

Screenshot_5

Authentication

The Social Business Toolkit leverages a credential store for single sign on. For OAuth for example the user tokens are stored in this repository so that users don’t have to authenticate and grant access to services like IBM Connections for every session. The OAuth application tokens are also stored in this repository so that all tokens can be managed in one central place. You can read more on the credential store here: http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Social+Business+Toolkit+SDK+documentation#action=openDocument&res_title=Configuring_token_stores_SDK1.0&content=pdcontent&sa=true. And it is also explained in the following video: http://www.youtube.com/watch?v=2CWD70XarX8#t=100

In basic: the implementation of the credential store is performed by the use of a managed bean. The usage of this credential store is then defined in an endpoint. An endpoint encapsulates the access to a service provider, like Connections or SameTime.

In the Package Explorer open the faces-config.xml file:

Screenshot_6

Add the following lines:

<!– Token Store memory implementation –>
<managed-bean>
    <managed-bean-name>CredStore</managed-bean-name>
    <managed-bean-class>com.ibm.sbt.security.credential.store.MemoryStore</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

<!– Password Store memory implementation –>
<managed-bean>
    <managed-bean-name>PasswordStore</managed-bean-name>
    <managed-bean-class>com.ibm.sbt.security.credential.store.MemoryStore</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

Endpoint

In the first example(s) we are only going to demonstrate to connect to IBM Connections. Add the following lines:

<managed-bean>
    <managed-bean-name>connections</managed-bean-name>
    <managed-bean-class>com.ibm.sbt.services.endpoints.ConnectionsBasicEndpoint</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
      <property-name>url</property-name>
      <value>https://your-connections-url.com</value>
    </managed-property>
    <managed-property>
      <property-name>authenticationService</property-name>
      <value>communities/service/atom/communities/all</value>
    </managed-property>
    <managed-property>
      <property-name>authenticationPage</property-name>
      <value>/bornsocial.nsf/_BasicLogin.xsp?endpoint=connections</value>
    </managed-property>
  </managed-bean>

For value of managed property ‘url’ you must enter the address of your connections installation or in case you are using IBM Greenhouse for demonstration purposes you can choose 'https://greenhouse.lotus.com’.

Login page

A custom login page will presented when a user initially tries to connect to IBM Connections:

Screenshot_7

The elements for the login page are in the XPagesSBT.nsf application which comes with the SBT SDK. The nsf is located in folder redist\domino. The login page consists of the following design elements:

Name

Type

_BasicLogin.xsp

XPage

sbtLoginPage

Custom Control

sbtLoginPanel

Custom Control

You can simply copy the design elements from the sample application in your application and modify them e.g. for branding.

Connecting to Connections

Your application is now ready to connect to Connections. Where you place the code to connect to Connections is up to you. A recommended approach could be to establish connections via Managed Beans.A managed bean is nothing more fancy than a registered a JAVA object.

Managed Bean

In our first example we are going to read the content under My Files in Connections. These are the files that you have uploaded and shared.

  1. Create a new Java design element (Java Class).
  2. Enter the following code:

package com.quintessens.bornsocial.sbt;
import java.io.Serializable;
import com.ibm.sbt.services.client.connections.files.FileService;
import com.ibm.sbt.services.client.connections.files.FileServiceException;
import com.ibm.sbt.services.client.connections.files.FileList;

public class ServiceBean implements Serializable{
private static final long serialVersionUID = 1L; 

    public FileList getMyFiles() {   
                FileService service = new FileService();   
                try {      
                    return service.getMyFiles();   
                } catch (FileServiceException e){
                return null;
                } 
        }
}

Code explanation

The function getMyFiles gets handle to the FileService object. Then the getMyFiles function is called to get all the files (both private and shared) the user has uploaded in Connections. Then a FileList object is returned to the caller. 

The FileList object can then be used in a suitable XPage control e.g. the DataTable or the DataView control. 

Registration

In order to access the Managed Bean you have to register it. This is done in the faces-config.xml file. Open the file and add the following lines:

 <managed-bean>
    <managed-bean-name>ServiceBean</managed-bean-name>
    <managed-bean-class>com.quintessens.bornsocial.sbt.ServiceBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

You will access the bean via its name ServiceBean.

XPages

Finally we have come to a point where we can display the files that the managed bean returns from IBM Connections. I have choosen the XPages environment to do so.

Custom Controls

A best practice in XPages development is to divide functionality in individual blocks known as Custom Controls. This make it easier to re-use the functionality across your application.

Custom Control for a ‘My Files’ overview

  • Create a new Custom Control design element.
  • Add the following code to the control:

<xe:widgetContainer id="widgetContainer1" itleBarText="#{javascript:return compositeData.widgetTitle;}">
    <xp:panel>
        <xe:dataView id="dataView1" var="file" rows="5" columnTitles="true" styleClass="filesDataView">
            <xe:this.extraColumns>
                <xe:viewExtraColumn columnTitle="Filetype"></xe:viewExtraColumn>
                <xe:viewExtraColumn columnTitle="Created"></xe:viewExtraColumn>
                <xe:viewExtraColumn columnTitle="Size"></xe:viewExtraColumn>
            </xe:this.extraColumns>

            <xe:this.summaryColumn>
                <xe:viewSummaryColumn columnTitle="Filename"></xe:viewSummaryColumn>
            </xe:this.summaryColumn>
            <xp:this.value>
                <![CDATA[#{javascript:ServiceBean.getMyFiles();}]]>
            </xp:this.value>
            <xp:this.facets>
                <xp:panel xp:key="noRows" id="topicsPanel2">
                    <xp:div styleClass="lotusWidgetBody">
                        <xp:text>
                            <xp:this.value>
                                <![CDATA[#{javascript:return (viewScope.myFilesAvailable ? “No files found.” : “My Files unavailable.”);}]]>
                            </xp:this.value>
                        </xp:text>
                    </xp:div>
                </xp:panel>
                <xp:panel id="summaryPanel" xp:key="summary" style="width:50%;white-space:nowrap;">
                    <h4><xp:link styleClass="dataViewLink" escape="true" id="link7" target="_blank" text="#{javascript:return file.getTitle();}">
    <xp:this.value><![CDATA[#{javascript:return file.getContentUrl();}]]></xp:this.value>
</xp:link></h4>
                </xp:panel>
                <xp:panel id="typePanel" xp:key="extra0" style="width: 20%;white-space:nowrap;">
                    <xp:text>
                        <xp:this.value>
                            <![CDATA[#{javascript:return file.getType();}]]>
                        </xp:this.value>
                    </xp:text>
                </xp:panel>
                <xp:panel id="sizePanel" xp:key="extra2" style="width: 15%;white-space:nowrap;">
                    <xp:text>
                        <xp:this.value>
                            <![CDATA[#{javascript:var size = file.getSize();
var kilobyte = 1024;
var megabyte = kilobyte *1024;
if(size < kilobyte) {
    return (size + " B");
}else if(size < megabyte) {
    return (Math.round(size/kilobyte) + " KB");
}else {
    return (Math.round(size/megabyte) + " MB");
}}]]>
                        </xp:this.value>
                    </xp:text>
                </xp:panel>
                <xp:panel id="panel1" xp:key="extra1" style="width: 15%;white-space:nowrap;">
                    <xp:text escape="true" id="computedField3" value="#{javascript:file.getCreated()}"></xp:text>
                </xp:panel>
            </xp:this.facets>
        </xe:dataView>
    </xp:panel>
</xe:widgetContainer>

As a result the files in IBM Connections for the authenticated user will be listed e.g.: 

Screenshot_8

Code explanation

The DataView control is using the getMyFiles function from Managed Bean ServiceBean for data binding:

 

Screenshot_9

<xe:dataView id="dataView1" var="file" rows="5" columnTitles="true" styleClass="filesDataView">            
            <xp:this.value><![CDATA[#{javascript:ServiceBean.getMyFiles();
        }]]></xp:this.value>
            …
</xe:dataView>

It iterates through the returned FileList object and for each column values from each entry in the ‘file’ collection the value is computed e.g.:

<xp:panel id="summaryPanel" xp:key="summary" style="width:50%;white-space:nowrap;">
                    <h4><xp:link styleClass="dataViewLink" escape="true" id="link7" target="_blank" text="#{javascript:return file.getTitle();}">
                        <xp:this.value><![CDATA[#{javascript:return file.getContentUrl();}]]></xp:this.value>
                    </xp:link></h4>
 </xp:panel>

API Explorer

Use the SBT API Explorer which method each object provides:

Screenshot_10

Link: http://greenhouse.lotus.com/llapiexplorer/.

Summary

As you have seen getting started with the Social Business Toolkit is not that difficult for XPages developers. As alternative you could also choose JavaScript or JAVA if those skills fit you better. The SDK will help you understanding Connections piece by piece from a developer perspective.

In the example information is read from Connections but you can also post data. The SDK allows you to create great 'social enabled' applications. This can be applications that solely work with Connections or integrate with other platforms e.g. IBM Notes. 

I hope to write more on the Social Business Toolkit in another post. Thank you for reading.

Patrick Kwinten

 

 

 

 

 

1

Infoware is proud sponsors of Social Connections VII in Stockholm

Posted by:

Once again we are participating in this fantastic event arranged by IBM Connections User Group.

And we will also welcome you all to our beautiful hometown Stockholm!

The event includes leading speakers from IBM, partners and customers, and it is a fabulous opportunity to network with old and new acquaintances. To suit a larger crowd the content will be both business and technical.

Do not hesitate to register for two interesting days focused on IBM Connections and Social Business.

Read more about the event here:  socialconnections.info

 

0

Presentations from our sessions at Social Connections VI in Prague

Posted by:

Home after a fabulous event in Prague, we are more than happy to share with you presentations from our sessions:

 

Electrolux: 4 deep dives in our social journey – Rafael Braz & Ulf Stider

In this session Electrolux and Infoware will share their experiences on urgent subjects for any social agenda. The presentation will primarily be a live demo where Ulf and Rafael discuss each topic from both a business and technical perspective.

 

Launching a social intranet: a true customer story – Ulf Stider & Per Ejnar Thomsen

TINE SA is Norway’s largest producer, distributor and exporter of dairy products.

Spring 2014, TINE launches a new, social intranet for all their employees, with IBM Connections as one of the core components. Learn about TINE’s project with focus on experiences with launching a social intranet; the strategy, the deployment, the technology, the success and the pitfalls, and if all goes well, a live demo of the brand new intranet.

 

 

0

Infoware on stage talking about mobile development at IBM Connect Stockholm 2014

Posted by:

Our new mobile room booking app has rendered interest from customers as well as partners. We will now show it live in one of the sessions at IBM Connect Stockholm 2014 on February, 19. Don’t miss out!

Our room booking app allows you to quickly and easily get an overview of all your organization’s meetings and room bookings. With the app you can book rooms, check the booking status and above that contact your colleagues. All in your mobile device! Ulf Stider will furthermore discuss mobile development, IBM Worklight, XPages and Open Ratio.

Learn more info about our room booking app here: Room booking app

Read more about IBM Connect Stockholm 2014 here: IBM Connect Stockholm 2014 

MobileRoomBookingApp

0

Infoware is one of the exhibitors at the Social Business Exhibition at IBM Client Center Kista

Posted by:

Energize your life's work and stay social!

Infoware is one of few Business Partners chosen to participate in the Social Business Exhibition at IBM Client Center Nordic in Kista. Throughout 2014 you can visit the IBM Client Center to learn more about Infoware's investment in Social Business and the way we work smarter. After all, Social Business is about the future.IBMSocialBusiness

The opening ceremony will begin with Annika Ekdahl, SWG Manager ICS Sweden, who will talk about IBM's position in the field. Later Infoware's Sales Manger, Ulf Stider, will introduce the specially invited audience, about how we create Social Business and how we use it in today's work.

If you want to know more how we can make your business Social, or if you want to visit the IBM Client Center Nordic, please do not hesitate to contact us

info@infoware.se

 

 

0

Infoware in the spotlight at IBM Connect 2014

Posted by:

IBM Connect is about people and technology.  It is about how passionate people together with IBM social software creates social and successful business.  A number of IBM clients were here to tell their stories. 

During 2013 Infoware has successfully implemented a number of Sametime- and Connections-installations. Infoware has developed and launched a new release of DomainPatrol Social. We have developed and launched a cool mobile app for room and resource booking. We have invested time in certification for onboarding to IBM Smart Cloud.  For all this work we got a lot of recognision at this years IBM Connect.  Here is when in Keynote session 103 The power of Social Software in the enterprise when Infoware was mentioned to be one of the partners adding value to IBM Connections.

Personally I also had the pleasure attending Keynote session 104 Transforming Life's Work – IBM Social Business Cloud Strategy where Infowares was displayed as beeing one of the partners that is certified to help clients Onboard.
 

We are happy to be on a limited list of IBM Business partners in the world. Today 29 partners are on the global list. Infoware is one of them. If you are considering going to the cloud – talk to us. We can advice you on everything from IBM licenses to taking you on board.

For our unique expertise regarding IBM Sametime – Infoware was one of the Business Partners  that was mentioned and had the logo on the screen during the Keynote session: 105 IBM Sametime Roadmap: Because Social Isn’t Social If You Can’t Communicate. 

 

In at least three sessions Infoware was recognised for our skills and contribution to the IBM social business at IBM Connect 2014. It is very rewarding to know that our hard and passionate work is competetive on a global market. IBM Connect is the place to meet up with old friends from customers, other business partners and IBM:ers in different roles. Infoware now also has a global network of resellers for our products.
IBM Connect is the place to meet everybody. It was also exciting to meet the customers we have been doing business with but never met in person. It is all about people. Infoware product DomainPatrol Social creates a lot of interest not only for itself but for our deep knowledge in IBM Connections. We often get involved in discussions regarding tricky technical issues.
When it comes to sessions and talking to people – there is no more talking about IF getting into social business. The talking is about how and when. On premise or in the cloud. We can see the trend of engaging the customers in contributing in developing the businesses. Customer interaction based on social technology creates measureable increased customer loyalty.
We are ready – are you? Do not hesitate to contact us if you want to talk social business.
0
Page 1 of 8 12345...»