Mac Yosemite, Java, IBM Notes and OnTime Group Calendar

After upgrading my Mac to OS X Yosemite (10.10) I had to reinstall Java to make IBM Notes startup just like Rene describes. To install go to the download page for Java on, download and install. It takes around 5 minutes and you are ready to go. Once installed the Java runtime makes IBM Notes fly again and I can confirm that the OnTime Group Calendar UI’s run just fine on OS X Yosemite.

New cool reference story about IBM Connections and OnTime Group Calendar

Good news – yesterday night a new IBM reference story for one of our Danish customers went online. The reference is for Semler Group and talks about their adoption of Social Business using IBM Connections as a platform and how the social components from OnTime Group Calendar are central pieces in this strategy. The reference story is also available as a PDF.

Calendar integration example using OnTime Group Calendar API

The Problem

A Danish insurance company was running a CRM system to control and maintain customer relationship information and plan meetings for its insurance agents. Because the CRM system wasn’t integrated with their IBM Domino infrastructure running their mail and calendar the insurance agents in effect had two calendars – one in IBM Notes holding their company appointments and one in a CRM system holding their external customer meetings. This meant that the insurance agents effective stopped using their calendars or maintained a third, non-company, calendar) as there were no single place to see all appointments. Besides this the organization as a whole was unable to plan internal meetings with the insurance agents as their calendars didn’t reflect their actual whereabouts.

The Solution

To remedy this they decided to use the OnTime Group Calendar API to integrate the two systems using web services using an intermediate Enterprise Service Bus (ESB). The OnTime Group Calendar API web services are hosted directly on IBM Domino and performs extremely well. After implementing the solution the insurance agents only need to maintain their calendar in Notes as it will reflect their true calendar showing both internal, external and personal appointments and meetings.

The solution provides a true two-way synchronization so any appointment planned from their CRM system shows up in the calendar in Notes. If the user reschedule the appointment the corresponding appointment in CRM is automatically updated and if the appointment is deleted the appointment get cancelled in the CRM system as well as a follow-up activity being created to make sure a new meeting is planned. The personal calendar in Notes is also updated once a meeting is marked completed in the CRM system to allow for automated expense reporting based on the personal calendars in Notes. As an added benefit of the using the OnTime Group Calendar API all insurance agents are now able to use their Notes client, their iNotes webmail or their mobile device to do their job resulting in true mobility and added flexibility.

Below is an architectural drawing showing how it all integrates using Domino as a central application server.

(click image for a larger version)

ISBG (formerly LSBG)

I’m happy to say that I will be speaking at the upcoming Norwegian IBM Social Business usergroup event in Larvik, Norway on 22-23 May 2013. The event used to be called LSBG (Lotus Samhandling Brukergruppe) but have just been renamed ISBG (IBM Samhandling Brukergruppe) to reflect the changes in the branding of the IBM collaboration solutions. I will be at the event with the OnTime team showcasing our amazing group calendar products – and who knows – we might have a little new thing up our sleeve… 🙂

Yet again the event is at this beautiful spa location in Larvik near the ocean. Can’t wait to go there and be social with the Norwegians. See you there.

OnTime at IBM Connect 2013 – Like to win one of 4 iPad minis

OnTime is of course present at IBM Connect 2013 and we will be there in a variety of ways. We are sending 4 people so if you want to talk to us about anything from technology, to sales, to vision you should be good to go. Besides me being there and presenting a session (BP209 on Monday afternoon at 3.45pm) we are in the showcase demoing all our group calendaring goodness as well. We have an extremely cool line-up of products and will be demoing our new UIs namely the reintroduced Team-At-A-Glance sidebar plugin for IBM Notes and our new web UI which will knock your socks of. If you haven’t seen it be sure to stop by the booth or talk to one of us.

During Connect we will be giving a number of iPad minis away and the rules are simple. Simply Like our page on Facebook ( to join the fun and then watch daily during Connect 2013 for extra chances to win. Each way we will post an OnTime related question on Facebook and the first one to come to the booth with the answer will win an iPad mini – there is a iPad up for grasps every day of Connect 2013!! So easy and should be all kinds of fun. Be sure to join in.

So why not head over and Like us right away!?

Domino rules as an API application server platform

Over the last 1.5 years we at OnTime have been making a serious investment into rewriting our backend for the OnTime Group Calendar product. The most fundamental change has been the change from a traditional Notes/Domino application (if it ever was a such) to be a server/API first approach. This means that there’s now a layer of separation between the business logic on the server and the business login in the clients namely the API. The API is now king!! It means that most, if not all, knowledge about the server operation and data storage has been removed from the clients and server and clients may evolve indepently of one another.

Another key benefit of an “API first” approach is that new exciting UI’s and uses of the OnTime data has started to pop up as it’s now easy to get going. As an application developer you do not have to worry about the OnTime backend or even worry about Domino. As long as you have HTTP access and may use JSON you’re all set.

As an example of where you’ve seen the power of the API approach – maybe without thinking about it – is in Mail and Calendar in Notes 8+. Think about how adding Java views to the “mail and calendar experience” in Notes 8+ has allowed the “mail and calendar experience” to leapfrog the rest of the client. This is because there’s a layer of separation between the data and the views and it allows them to evolve separately and at different paces.

Redesigning OnTime to an “API first approach” hasn’t been a smooth ride all along and sure there has been things we’ve changed along and way and the API backend has been rewritten more than once. The key is however that the interface to the API has only changed once which really wasn’t so much a change as a move to a new, additional, data format for the response messages. This has been key as it allowed the clients to stay constant while the API changed.

The server side API has been written in Java all along which has been a very good choice for us. The request and response messages started out being in plain text in our own proprietary format which worked out well in the beginning but it has become clear that the end user (programmer) still needed a fair amount of knowledge about OnTime to use the API. Over the last 7-9 months we’ve made a transition from first plain text in/plain text out, over plain text in/JSON out to a place where we’re now completely JSON in/JSON out. Taking it slow has been important as not to break any clients meaning our own clients or any customer API programs there might be out there now since we opened up the API for purchase.

One thing we’ve learned however is that API versions in the “real world” needs to coexist and we really couldn’t rip and replace. We’ve now move to a model where the user of the API sends an expected API version number along with the requests to signal what API version he/she expects to be returned and the API will honor that. This means that we’ve managed to move along while still maintaining backwards compatibility. Furthermore we are quite safe that we will be able to futher evolve the API while shielding customers and clients.

The real beauty about the API is the Domino application server though.

We have implemented and evolved on the API from day one using nothing more than a standard Domino server – running the HTTP task if HTTP access to the API is required – using standard Java agents. No fancy OSGi plugins here (yet!) – everything is plain ol’ Domino. Keeping everything on Domino has also allowed us to easily leverage the API in an integration problem we’re doing at a Danish customer at the moment (more on that in a later post). How? Using the web services framework available in Domino of course. Nothing fancy there. Just add a web services endpoint to respond to a SOA server and we were golden – it too scales extremely well.

Builing on Domino hasn’t limited us in any way yet – quite contrary. It has allowed us to add additional application endpoints using the easy of development approach of Domino and it has allowed us to scale well beyond thousands of users (think 15.000+ users) without problems. All this and still allowing us to seamlessly service clients from Domino 7 and upwards. So sweet.

Below is the API stack we’re using as you can see Domino feature prominently at the bottom of the stack.

(click image for a larger version)

So start building you own API’s for your Domino apps. It will be very much needed to get the full potential from Notes 8.5.4 Social Edition and the embedded experiences support in there. It’s all nothing if there is no API to read from. If only there were a Domino oAuth provider… Oh well – I’m sure it will all be there in good time.

Back from loads of travel – thoughts on the Leadership Alliance and Tokyo

So I’m back from a 16 day travel which had me home for 50 odd hours after the 5 days away. First Boston for the Leadership Alliance in Boston which of course – as seen other places on the interwebs is very hush hush – and then Tokyo for 8 days to meet up with our OnTime partner there. The trip was far easier from a jetlag perspective than what I had expected but then again I usually cope with jetlag very well. I did come back with pneumonia though 😦

As mentioned what happens at the Leadership Alliance stays at the Leadership Alliance but suffice to say that it was indeed VERY interesting. If you are wondering whether IBM Connect 2013 will be worth attending it would be a resounding YES!!!! from my point of view. The message is better than it has been for a long while if you ask me. Of course IBM still needs to execute on it but man it’s looking good!

In Tokyo we joined our partner at the booth at the annual ITPro Expo. I’ll do a separate blog post on our adventures in Japan and how the event went as it really deserves it. Also it should be a lesson to many IBM Lotus Notes/Domino markets out there as it clearly shows why Japan is a thriving and vibrant Notes/Domino market. They do so much stuff right marketingwise and leaves so many markets in the dust. Including Denmark. Really. It was very interesting to see.

Now once I’m off this pneumonia thing I will be back in full swing. Stay tuned.

Latest pet project

My latest pet project has been working with the OnTime Group Calendar API and try to look into new product ideas or use-cases for calendar data. One thing that came up really quickly is a way to expose all the calendars in OnTime in iCal format and using the API and ical4j it took all about 10 minutes to do. So now we have the option to expose each user in OnTime Group Calendar as an iCal feed honoring the access rights of the logged in user. Now that the data is available as iCal as well it makes remixing and reusing the data in custom scenarios extremely easy and the number of clients grew from our 6 to basically unlimited.

Below is an screenshot example of my adding OnTime calendars as subscribed calendars on my iPad (click the image for a larger version).

(click on image for larger version)

Now using multiple overlays on my iPad (or my iPhone) is just as horrible for as using multiple Lotus Notes overlays (or other clients) which only justifies why we develop client UI’s tailor made for the purpose of group calendaring. But… The overlay option is very nice and allows me to quickly discover what a colleague is doing while not in another OnTime client. It even allowed me to expose my business calendar very easily to my wife. No more manual weekend calendar sync – win!!

I’m not saying this will ever become a part of OnTime Group Calendar but it sure is nice.

The code is written as an agent so it was very easy to deploy and using a Internet Site rewrite rule I was able to do a nice URL per user. So now we have a url like for each user.

Now off to look for more ways to use the API.