Let’s talk nuts and bolts today. APIs.. If you think about any PDM / PLM implementation, the question about API is one of the most important. Why so? Because you know – it is near to impossible to get all done out of the box and via configuration. Even if marketing advertised and sales promised, you will have to have something to be done behind the scene using this magic word API.
The topic of openness comes very often these days. I’ve been posting about openness about a year ago – PLM and New Openness. Notable news around PLM Openness is coming these days around so-called “Codex of PLM Openness” introduced by ProSTEP iViP. Navigate to the following link and you discover that majority of PLM vendors, including big-three-PLM (Dassault, PTC and Siemens PLM) are committed. Yesterday, during the opening session of annual Siemens PLM user conference – PLM World 2012 in Las Vegas, the topic of PLM Openness came into many conversations and even was captured by Siemens PLM blog.
Enterprise Systems and APIs
Enterprise systems have long history of API development. If you spent enough time in your life with databases and enterprise business you probably remember horrible stories of proprietary databases, move to SQL, hope of XML, believe in SOA / Web Services latest dreams about REST APIs. Last week, I came to a very interesting blog trilogy from CloudAve blog about enterprise architecture, APIs and more called – Simple Service Enterprise part 1, part 2, part 3. It is a bit long, but I recommend you to have a read. The following picture was resonating to my thoughts related to PLM implementations and APIs:
Here is my favorite passage that I’d apply to product lifecycle management and many other enterprise implementations:
…the fundamentals of information interchange: exposing business functionality, currently encapsulated in the back-end, to the outside world via services. These services are a one-to-one translation to back-end functions, which are one-to-one translations to business process steps themselves: the smallest level of business transaction.
Implementations, API and Open Data
Here is the idea how I see the future of open APIs. PLM system(s) is holding hostage of data and responsible for a set of process and transactions. Since PLM system cannot live in a vacuum, the interaction of PLM system with other systems in the enterprise (including various B2C and B2C services) is driven by processes. In order to have a productive API, you need to expose these processes using an appropriate level of granularity, including semantics of data (in this context, thinking about resources seems to me as an appropriate way). Having such a level semantically-resource-oriented-APIs can provide an easy and open way to interact with PLM system to build the most effective services.
What is my conclusion? To build a good API is a very complicated task. To make Open API is even harder. I can see a potential in exposing both semantics of data and related system functions in a way allowing me to use it and accomplish processes automatically. I think, web and REST give us a bit promise. The responsibility of vendors is to develop an appropriate level of granularity to make it usable. Just my thoughts…
Picture is courtesy of CloudAve.