IBM is poised to unleash its revamped mobile strategy with a full suite of tools aimed at providing enterprise developers with an end-to-end system for collaboration, development and management for mobile applications. IBM is putting the full weight of its history, tools and computing clout behind its mobile strategy. The company's comprehensive framework has the potential to be one of the most powerful end-to-end development environments available.
We have been studying what IBM is doing in the mobile realm for the last week as the company readies the push of its IBM Mobile Technology Preview. IBM is not going to push its tools and frameworks onto developers in one large product vertical but rather is taking an iterative, pragmatic approach to solving many of the mobile dilemmas that face enterprise developers today. We also interviewed Leigh Williamson, a Distinguished Engineer at IBM and a member of the CTO Team for mobile software strategy development. Check out the transcript of our conversation below.
What the Mobile Technology Preview Consists Of
Take a look at three applications that show well what IBM is doing in mobile application development: Lotus Sametime, Lotus Traveler and IBM Cognos Mobile. IBM is working to give developers the tools to create cross-platform apps for both the major native frameworks as well as the mobile Web.
The biggest goals for IBM are helping enterprise developers with life-cycle management over the course of a project. That starts from the seed of an idea to management between separate groups that are collaborating on the project to running the tiers that fundamentally make an application. That includes the code on the device itself, the middleware layers that tie to company servers or the cloud and the file hosting from the source.
One of the biggest problems that enterprise developers face is coordinating the runtime of an enterprise-based app with all of these moving parts. That includes accessing data from a cloud or server silo or moving content from that will work well on mobile devices.
The IBM Mobile Technology Preview has a variety of features and functions. Some of those will be released as individual products while others will be integrated as features into other products. Others are just concepts at this point that will not be released at all.
Take a look at some of what IBM is set to offer from the company's Mobile Technology Preview download page.
- Application Management: An application centric management infrastructure that provides basic support for central control over the mobile applications and allows developers to better tune their applications for central management.
- Location Based Security: Security support has been expanded to include location based & continuous authentication features.
- Notifications: A RESTful notification service and a client side notification library enables enterprise logic to post notifications to one or more target devices.
- Application Server Runtime:The WebSphere Liberty Profile of the WebSphere Application Server 8.5 Alpha is provided as an application server runtime environment to run the server side samples and services.
There are more features in the IBM Mobile Technology Preview included that are not listed here. Check out IBM's download page for more information.
Below is the transcript of our conversation with Leigh Williamson. He refers to IBM's mobile strategy and suite of functions as the "IBM Mobile Platform" several times. That is not technically the name, but rather the IBM Mobile Technology Preview, as mentioned above.
What Are IBM's Goals In Mobile in 2012?
We look at mobile applications and the mobile environment as the significant next generation of information technology. We have these generational shifts that occur every dozen to 15 years and it is pretty clear that mobile constitutes a major generational shift. There are a couple of unique characteristics that personify this new generation in IT, certainly the pervasiveness of very powerful computing that is now available to everybody just walking around with it in their pockets. The way in which end users, human beings, are interacting with that computing power has taken a bit of a shift since the PC, desktop Web application kind of generation. We are looking to enable our customers to be able to, in a cost effective way, develop mobile versions of their business applications and to also support the underlying business infrastructure which is increasingly defined by software rather than by just by hardware as has been the case for a lot of computing infrastructure in the past.
A little-known secret is that IBM is actually involved in many of the carrier networks and the software that enables them; cell towers and various other aspects of the underlying mobile and mobile data infrastructure. They are also looking to play a significant part in enterprises whose target audiences are accessing the Internet and accessing their business with this new generation of mobile devices.
So, along those lines, in a broad sense we are developing out what we like to call the IBM Mobile Platform. That is a combination of elements that IBM is in a unique position to deliver with a great amount of capability. You may be familiar, IBM has many different areas of focus in our software group. We have the area that I spend a lot of my time in that works on the development tools and methodology. We have areas that deal with the middleware and application run-time support. We have areas that deal with information management and areas that deal with collaborative services and areas that deal with security and systems management. All of those areas apply in the mobile space. So, we are creating this umbrella that brings together all of those different capabilities under the terminology of the IBM Mobile Platform and this will enable us to offer an integrated offering that might be called middleware that not only supports the code that runs on the mobile devices but also the code that those mobile clients interact with to connect to backend business services.
So, there is also a need to be able to manage the mobile devices but the applications that are running on the mobile devices. That is part of the mobile platform as well. From my particular perspective, contributing to the mobile platform is the notion of tools and development methodologies that specifically apply to teams that are developing mobile apps.
What Are These Tools That IBM Is Developing?
The development around mobile applications has certain similarities to software development in general and it also has certain unique qualities. In the area of software development that is the same as other kinds of software, we certainly have a strong portfolio of strong development projects like life-cycle support. We call that CLM, our life-cycle management capabilities, the capabilities for things like change management, project management, source code control, team collaboration, test management. All of those kinds of generic software capabilities. We look at that as an important underlying foundation for enterprise development even when the teams are using it for mobile application projects.
Into that foundational level of developmental project support and the integration platform that is the basis for that full life-cycle management, we plug in mobile specific tools and capabilities for the stages of the life-cycle that have unique mobile requirements. As and example, if you are dealing with the composition of requirements and the management of requirements for a mobile development project, that functionality is not really unique to mobile. The same requirements and demand composition that you would use for software in general would apply to mobile in general. But, if you are dealing with code construction, then you are looking at tools and best practices that are very specific to mobile and that is where we plug in our mobile specific tools into the overall project.
Areas like the code construction, areas like the testing of mobile software and areas like security analysis for the applications that are mobile, those are areas where we plug in unique mobile-specific capabilities.
Another unique aspect to our solution is that if you look at some of the challenges around mobile applications development and deployment for enterprises, a lot of the key challenges are things like the need to be able to develop a mobile application that can be supported on multiple, different mobile devices in the fragmented market place that exists. Another requirement is the need to be able to manage and control the update and maintenance of the mobile application once it has been deployed out into production and people have installed it in very large numbers on their mobile devices. There are challenges that involve the development tools but require more than just the [standard] development tools. By that I mean some run-time code that supports the ability to deliver the solution. As a specific example, the challenge around the ability to create a mobile application that can be supported on multiple different mobile devices requires not only the development tools that allow you to create the code in that particular programming model but supporting run-time that exposes a single programming model on all the different mobile devices.
That is why the IBM Mobile Platform is such an important part of the strategy because it allows us to support not only the development tools but the matching run-time that is aligned with the solution.
With A Glut Of Companies Providing Tools and Support, How Does IBM Differentiate?
So, there is a couple of very unique aspects of our approach. One is that we are targeted at enterprises and enterprise business applications in the aspect that I am discussing. In such we understand that enterprise software development involves many different people who are playing many different roles in the overall project. In order for those teams, those development teams of diverse people to be able to be effective and to deliver on these very aggressive schedules that are common in mobile apps, it is crucial that the tools they use in all of their roles are well integrated and to be able to exchange and link the data between the different roles. Also to be able to facilitate collaboration among the different people in the project. That is one of the areas that we major in, that we have put a lot of investment in. It is more applicable in the mobile space than perhaps other types of software development.
The notion of a full project life-cycle approach to development as opposed to focusing narrowly on how do I create the source code for this mobile application, we are focused not only on that but the whole end-to-end project and enabling an enterprise development team to participate fully in that mobile project for all the different roles involved and have then work together and integrated.
That is one aspect, another aspect that I had mentioned before is the tight association between the mobile specific tools and best practices and supporting run-time. And supporting management and security infrastructure. Again, we are not just looking to write some code in a particular language but we are looking at how the end result can be secured and deployed and maintained when it is out into production and managed and so these are all very important aspects. We hear that they are very important, certainly, from our enterprise customers and that is why we claim a more unique focus for us.
Mobile Development Cycles Have Sped Up Considerably In The Last Few Years, Describe The Average Production Cycle
Yeah, absolutely. What we are seeing and this is not only with our external customers but also our internal projects that are producing mobile apps for some of our own products, the delivery expectations are perhaps and order of magnitude more aggressive for mobile. What we are finding with some of our customers is that this is causing them to now consider agile methods of iterative software delivery where they weren't as motivated to change their development process to a more agile approach than previously. So, that is why our development tools and methodologies underlying collaborative management solution is based and very much supports iterative, agile methods and is why we think it is a good fit for mobile in particular.
I've seen everything from four-to-six weeks to four-to-six months depending on the content and the circumstances of the project.
In Terms Of Iterative, How Does IBM Support Updating of Mobile Software Applications?
There are two aspects of that challenge for mobile apps. It is a little bit unique. Especially for enterprise business mobile applications, they are really multi-tier applications. You have the code that runs on the mobile device and you also have the code that runs on a middle-tier server and there may even be code that runs all the way back, deep in the data center or someplace, maybe on the mainframe or something. All of that code taken together across those different tiers is really what makes up the mobile application even though the end user interacts with it on the mobile device. So, the deployment methodologies and timeframes for all of those different tiers are actually somewhat different. In particular, the code that runs on the mobile device, especially if it is a consumer-facing mobile app, you have an app store that is sitting in between the enterprise and its target end customer. Updates to the code that is at least natively installed on the device have to go through that app store and be put out for the end user to pull down and update their version of the application at their decision.
This is causing a lot of concern for the enterprise because it is representing a potential loss of control over that portion of the application, that soft of end-user/client part of the application. Especially if there is a security flaw discovered in that part of the business application and the enterprise is motivated considerably to make sure that all end users move to the latest version of the app as soon as possible. So, that is an area of concern. There are solutions available that allow enterprises to gain more control despite the fact that they have to put the update out through an app store. It is still possible to ensure through certain technique that the end user of the application is forced to go back to the app store and get the latest version of the app to get the fixes if they want to continue to use the application.
The App Store Model Has Significantly Changed the Way Software Is Deployed, Does That Make It Easier On Enterprises Or Create A Logistical Nightmare?
The thing about the app stores are a couple of different things. One is the ability of the end user to search and locate the app that they need and conversely, the ability of the enterprise to get their presence out there and make and audience aware that they have an application, they have value to offer in certain areas for certain tasks. That comes with that sort of middle man that certainly comes with a challenge in the maintenance and control aspect but that is the trade-off that people are willing to make to get their apps out there.
The other thing about the app store that is significant is the whole social network aspect to it related to ratings and rankings of applications. It gives teams that develop really excellent solution the ability to sort of advertise that their application is highly rated and recommended to other users.
We have an internal [app store] that we have been using for many years now based on an asset repository solution and part of the IBM Mobile Platform that we are in the process of rolling out will include that kind of capability. It is not going to be the very first thing that comes out but as that platform is evolved and delivered, that will be a part of it. It will be a private app store, it wouldn't be that we were thinking of creating another iTunes or Android Marketplace type of app store, that is not what I am talking about. It would be enterprise-based, the same way that we use it to manage and provide vetted control and distribution of [all kinds of applications, mobile or otherwise}.
One of the things that I probably didn't spend enough time talking on that I wanted to point out is that the mobile app space is certainly a very hot area. Enterprises are rushing to get into that area now and of course we are quite focused on serving their needs but we also have very significant business in a little bit more quiet area of the mobile infrastructure or ecosystem and that involves development solutions for vendors that are creating the mobile devices and the network providers that are offering up network services and the helping make the cellular data infrastructure efficient and so forth. We have a pretty good and deep presence in those areas which gives us a pretty good understanding of the overall architecture of mobile solutions and where the apps fit into that.