SAP riding the Google Wave

It has been interesting to see that SAP is working with Google Wave. SAP has been innovating but not all of the work has been publicized because it was difficult to find the correct format for publishing the research. Some of the results have probably been taken into SAP products, but it is probably very little.  The release of Gravity for Wave SAP has showed to the public that they know how to innovate.

In the Demo Jam at SAP Teched 09 in Vienna, Lars Rasmussen (Google Wave Team) and Alexander Dreiling (SAP) did a demo. They had 6 minutes to do the demo in. They first introduced Wave to thee audience and then they showed off Gravity. They show an extension of Gravity, where it was possible to see the execution of the process model. This model was driven by Business Objects Live Enterprise and was a dashboard, which shows how each step performs.

See the video by Dennis Howlett video of the event.

On a wednesday presentation, Alexander showed the next steps for the Wave integration. SAP is working on a tool to design some Gui screens to be used in the process. With a combination of these two tools all the business users can define their processes, build the user interfaces, run the processes and monitor the status. This will be very powerful to be able to do. The tools will target business users with limited IT skills and make them able to develop and run their own processes.

I was lucky to talk to Alexander Dreiling from SAP Labs in Brisbane, one of the people responsible for the Gravity. He said that SAP was trying to figure out what the community meant about Wave and if it was something that businesses want. Being a large organization, it was difficult to get some ideas into the market, if it should follow the normal release procedures. He talked about if an open source model could be used. Releasing the tool under some open source license would make it possible to get the tool into the market much faster and solve some of the support problems. SAP would like to get much more feedback and a faster development cycle.

Before Gravity could be released it had to undergo a rewrite to fix some of the bugs and make the code more maintainable. Alexander also talked about porting Gravity into Flex to have a more stable foundation to use for Wave development. Google Web Tool kit had some limitations.

I was not sure about the status of two other tools was in the development process. A screen capture will be created soon, which demonstrates one or both of the tools. I’m looking forward to see what tools is cable of and it they will be interesting for organizations. It will also be interesting if SAP can create a business model for the tools.

Talking about SAP it is interesting we created a tool that will allow you to test your SAP PI/PO system much faster than other tools so you can automize the tests on the things you are dealing with.

Working with Gravity for process modeling in practice

At the SAP Teched in Phoenix there event BPX process slam, we worked with SAP NetWeaver Collaborative Business Process Modelling (formerly Gravity) to create a process model. In the SAP community a BPX is a Business Process Expert, a person with technical and business experience. BPX process slam is an event, where different people from the SAP community were working with different tools to create a common process. All was focusing on creating some tools for a community driven power plant. The event was covered by Sandy Kemsly

My group’s goal was to test how collaboration can be done with Wave and Gravity. We were on 7 people of which 2 were in Europe, so we had to do some offline work. Our result is on the SAP wiki.

We first started to get used to the Gravity tool. It took some time to figure out how it could be used. There were people who were new to Wave, which need to see Wave and Gravity. This was not difficult with a small introduction. They seemed to pick up the usage really fast sand found it interesting.

We started to work on the process. We had to figure out what the business process it was that we were going to design on. There where multiply different process ideas that we was working on and how the models should be created. It will probably require some thoughts to figure out what the process vision is, and how the process is suppose to work. There should probably be written something about this before a collaboration can take place. If all participants know what the process should be around the collaboration will be easier.

After we started collaborating it went pretty smooth. It was possible to see each other changes and make corrections to the process. So Gravity did work well for the collaboration.

I found that the process model took up most of the screen, also on larger computers than my 10″. This means that people have to scroll around to find the collaboration area of the text. That was probably not an ideal place to work with process modeling.

When modeling the process it is required that the users has some modeling experience. The models can be quite difficult to use if you are not familiar with process models. The annotations to describe the process worked really well, they gave an overview of what was going on.

The resulting process is in this image, a larger can be seen on the wiki.

Since it is a demo version of Gravity there are some features which would make the tool more useful. The layout of the functions gets pretty messy; it would be nice if there was an auto layout feature. The shadow around the elements can be difficult to see how made them. The actions could only have around 15 characters, so you need to describe your process shortly. Lastly the modeling should be easier for users to do, so business users can use it.

Gravity has some great features and could be a really interesting application, if it was developed to a fully fledged product. It would promote Wave as a place where business value could be created easily. I hope there will be more tools, which can achieve the same level of collaboration with the users.

My view on productivity with Google Wave

Desk with paper
Desk with paper

The question about if Google Wave is a productive tool was raised by Robert Scoble in the blog Google Wave’s unproductive email metaphors. I have been a fan of Robert precise way to formulate stories and raise questions like this.

Scroble mentions a lot of applications, which will be much better than Google Wave for collaborating more productively. For all different kinds of collaboration he will use the best suited version. The list he mentions is absolutely correct. What I don’t like about the list is that it requires different applications for different collaborations. This means that everyone should be on friendfeed or on the Wiki. Before the participants starts collaborating, they should decide on which platform to choose. This works nice if it is some tech savvy users, how knows the ins and outs of the applications, but for everyone else it is a large hurdle to overcome. With wave it is just one platform that you need to use.

Like all other social technologies Scroble allows all his followers to contact him, using the technology which really pushes the technology to the limit. For a wave perspective this would emulate very well how a really connected person like a boss or key business person would work. With email it is easy to notify ones boss with BCC, and then the boss knows he does not have to do anything. With wave on the other hand the boss needs to be a participant in the wave, so he can see what is going on. If you could add a secret person it will probably solve this issue. But when the participants continue to collaborate, the wave will continue to get in to the inbox of the boss, and it makes it more difficult for him to find the most relevant waves. The boss will see the text being written in the inbox, which can be distracting.

There is also missing the feature with wave, about how has the next action on an item. If I need someone to decide on something, I would like to mark that he is a key person in this wave. Otherwise he will just see the wave as a continued collaboration, on something he is note involved in. With email you know if something is in your inbox, you have an action on it. A work around could be to mark the persons users as the tag, then you just should search for tag:dgraversen or tag:next-dgraversen, how you would make the context. Idealiy there would also be a part where you can write, what action you expect from him.

I hate getting chats or pings on new waves. It of cause can see that, I need to take care for that wave because the person in the other might want a reply. But when the person is not on the wave anymore it does not make sense, then I just want the pinging wave to be a normal wave. If I need to take care of a wave, it would like to be informed that there is something I need to take care of. I would probably prefer something like when I get an instant message outside of my wave client.

I’m a huge fan of the Getting Things Done method, and try to implement as much as possible in my life. This blog as been written when I was online, but it is not always the case. With Wave it is currently not possible to be offline, but does it make sense to be offline when collaborating? I don’t know how this can be solved. But I when I do writing or thinking, I don’t want to be disturbed, and just focus on the task at hand.

If not Google solves some of these issues, it will create a marked for third party solutions, which could compete on having a more productive platform.

Image by Drpoulette

A Google Wave robot explained in 5 minutes

I created the SAP Enterprise service robot, which is described in the blog. I wanted to give you an explanation on how this robot was implemented.

I have therefore created a 5 minutes screen capture, showing what is going on and what the moveable parts are. Probably 5 minutes is a little too short, but if you have anything, which you want me to explain, I will do it. I hope you find it interesting.

I’m not proud of using crafted XML documents, instead of sending SOAP documents. But it was the only way that I could find to call SOAP web services from Appengine. If you have any suggestions to how I can avoid this, please let me know.

New SAP ES Demo: Creating Service Requests

Some weeks ago I made a demo of how SAP ES could be reached from a Google Wave. This was just to show it was possible to call ES. That demo did not help in any workflow; it just showed some data to the user. I have now worked with getting a better idea for coming up with a demo, which shows how wave can be leveraged to implement a better solution. I need this demo for my Virtual Community Day presentation on Thursday the 24 of September at 16 CET.

This demo is about creating services requests for a customer. In the scenario the customer adds the robot, which displays all the equipment items the customer has. The customer then selects the item which is broken, and creates a service request on this item. When the request is created using another enterprise service, a technician is added to the wave to help the customer solve the problem. This will allow the participants to write to each other showing how things work out.

An extension of this demo, would obvious be a place where the two participants could change the status. So the task would be completed, when they have solved the problem.

This demo is also created by SAP as a Composite application (CE), but using CE will only create the request. It will not allow the participants to help fix the problem in just one place. I believe it is in this place the Wave Robots has something value adding compared to normal web applications. There still need to be some development to get a more compelling look and feel. I’m not sure what is possible to do with styling and creating tables but the view should be styled before an Enterprise ready application is created.

How this was done

As with the last demo, I have not been able to run Axis2 on Google App-engine, where robots currently have to be implemented. It seems like Axis2 is using raw sockets, which is not allowed on Appengine. I have therefore created SOAP-XML in hand and just submitted them via the URL connection. This XML I got by using SOAPUI, which is an excellent SOAP client for testing services. By using SOAPUI I could craft and test XML calls before spending time on implementing them in Java. It is also possible to use the Webservice test tool in connected to the Enterprise Repository. For some of the request it is possible to get some basic test data delivered.

When I got a response back I have used a SAX parser to handle the requests. This works great to store the information for later retrieval by the robot. It would have saved some time on this front also if the Axis2 would work. For the three calls I perform, I use three different parsing strategies. I though learned something from this, so I’m happy.

It would probably have been a good idea if someone had the oppertunity to test this on SAP PI/PO. When this was orginial written we did not have the option, so we had to wait until the Integration Regression Tool for SAP PI/PO was created to make automated tests for SAP PI/PO.

Output to the wave was pretty straight forward using the Robot apis. I only had some problems with some of the used keys between the different blips. To remember the item name, I store the item in the Memcache. That way it is easy to store data between different requests. I did have a problem with the robot, which believed that it should react to its own requests. That was not a good idea, and it created a lot of blips in the wave. So when developing robots, do not react to events performed by the robot itself or any of the robots at the domain.

The code for the robot can be found in the sap-wave repository.

Before deploying this code you self you need to change the WebserviceHelper class, and add you own username and password to the SAP ES demo systems as Basic authentication parameters.

Notice this blog is cross posted to SAP SCN.