The concept of web services is perfect for mobile architects – synchronous or asynchronous access to data and services supplied by a distant machine much more powerful than the one in your pocket.
The adoption of mobile web services has been less impressive than some might have expected, but I’m not too surprised. It’s an architectural shift, and such shifts are not accomplished without a whole bunch of committee meetings and Power Point decks. And, at least in the enterprise space where I’ve spent most of my career, these architectural shifts tend to occur silently over years, then become an “overnight success” when the shift gets exposed publicly.
For example, a
couple years back I talked to
Manhattan Associate’s CTO Ken Shipp about their use of web services. (Manhattan does supply chain planning and execution.) At the time, he indicated their products “have a service-oriented architecture and have most of the infrastructure in place to support web services…” but basically their customers didn’t care about and weren’t ready to consume web services. He got ahead of the curve, built new interfaces using web services, used the interfaces for internal integration projects, and waited for the coming demand.
And here’s where it starts to get interesting for mobile developers. One of the basic services logistics companies like Manhattan need to manage is the assignment of unique IDs. For years that meant a different ID for blue size 12 shoes than for the red size 9’s. (Logistics types call this class ID and they used
UPC codes to mark items.) But more refined logistics control enabled by the
Electronic Product Code means companies like Manhattan need to assign a different ID to each pair of blue size 12’s they ship, whether they ship them from company-owned warehouses in Singapore, Los Angeles, or Rotterdam, or from contract facilities in Sydney. (That would be item-level tracking – and the complexity of the problem sky-rockets.)
Perfect job for a web service, and while
their SOA was built primarily for fixed-station consumption, it’s perfect for mobile application developers.
I see the same process throughout the logistics space. Earlier this year I talked to Rick Veague, CTO of
IFS, who noted “Three years ago, most people knew what [web services] were. Two years ago we did a little web services work. Last year, 90% of the interfaces we integrated for our customers were built on web services, with about 60% facing other interfaces in the enterprise, 30% outside the enterprise. This coming year, outward facing interfaces will grow.”
The tools that IFS provides their integrators (third-party and IT departments) give you an idea where things are going. The core of the
IFS software suite is Foundation 1, and it includes an Interface Browser and IFS Developer Studio. A typical integration effort begins by an architect using the Browser to find the interface that exposes the data or other service required. If the browser indicates the exact interface desired is not yet available as a web service, the designer can launch IFS Developer Studio from the point in the browser nearest to the desired data. IFS Developer studio is then used to browse other data and service primitives that exist in the IFS Foundation, but are not exposed as web services; when the primitives are identified IFS Developer Studio automatically generates the code required to expose and secure the service and creates the
WSDL file that defines the service.
So that brings us to mobile development tools…
If you’re targeting S60 Platform and building apps
with Carbide.vs and Microsoft Visual Studio, Nokia just released an
SDK plug-in that converts a WSDL file into C++ proxy classes.
If you’re working on Series 80 Platform, then you’ve been able to get the
same functionality since last August.
… and market opportunity.
IMO the best opportunity for mobile developers lies in those situations where a single interface can serve both mobile and non-mobile interactions. I’ve already talked about the enterprise space, since that’s the space I know best.
The area of personalization also offers possibilities. If I want to personalize my device(s) to identify myself with my World Cup team or my favorite artist, why can’t a single web service customize my mobile and my desktop?
Or how about a game that persists across platforms – letting me access game state from my mobile or my desk?