When I opened my call for a Shared Global Integration Model, I expected some folks to say “we don’t need that.” What I didn’t expect was the argument that standards are somehow a bad idea.
It’s hard to consider an argument against standards with a straight face. A basic tenet of the modern age has been to reduce variation to increase quality. This is a cornerstone of W Edwards Deming’s work. Without standards, the quality revolution that lifted Japan to an economic superpower would not have been possible.
Standards in technology are not new. You can get access to information on ANSI Standards dating back to 1978 at the Charles Babbage Institute. We use standards in nearly every aspect of computing, from the ASCII (1963) and Unicode (1991) character sets to the TCP/IP protocol (1973) to the USB bus (1996) on our systems. We use MPEG standards to store to share audio and video on our DVD drives. Even the electricity coming from the wall outlets is delivered according to a standard.
So the notion that simply creating a standard constrains creativity rings hollow to me.
Sir Tim Berners-Lee, the father of the World Wide Web, has been speaking about standards for a very long time. I direct you to a keynote address he gave at the 3GSM Conference in February of 2007.
He first spoke about open platforms being “built to enable, not to control.” He continued:
“So what else does it take to make an open Internet platform?
What does it take?
It takes, mainly, common standards. The innovation of the WWW was possible because the standards for TCP/IP were already implemented in an interoperable way all over the planet, in advance of the innovation. TCP/IP wasn’t designed with networked hypertext in mind. But it wasn’t designed to prohibit it either — it was and is an open platform.
Web 2.0 community Web sites, eBay, and Flickr are possible because the Web standards, in turn, were widely implemented in an interoperable way, before those innovations. The same for the wikis, like Wikipedia, and blogs, and so on. The Web is a huge platform for innovation because of those standards. Any new genre of communication, any new social networking idea, immediately can gain the value of unexpected re-use by people across the world.
There is a very important difference in attitude between a foundation technology and — well — let’s call it a ceiling technology. A foundation technology is designed to enable innovation, to be the base which will support other even more powerful things to come. A ceiling technology is not. It is designed to provide a value, and for its provider to cash in and cash out. Proprietary music download systems are ceiling technologies to the extent that the technologists design to be also being the only store in town, rather than creating an open market. Though putting a lid on further innovation, they are still providing a service, and making sure they profit from it.
Ceiling technologies are the end of the road for innovation.
When you want to make a foundation technology, you need to look ahead. You need to put aside the short term return on investment questions and look at the long term.”
I am not going to pretend that I am of the same stature as Sir Tim Berners-Lee. I stand in his shadow.
But with respect to his sentiment, I agree. He is correct. It is the creation of a foundational standard that empowers and builds innovation. Business software lacks that foundational standard.
The obstacles that inhibit rapid innovation in business software, of the same scale and scope as the web itself… these obstacles are artificial. One-off integration mechanisms and transaction-only integration standards are obstacles. They are ceiling technologies, designed to prevent innovation and lock each customer into a single vendor.
That must end. The Software + Services trend requires it. It is time to end the necessity of “vendor-lock-in through unique integration” by standardizing not only “one potential interface” as the Open Applications Group has done with OAGIS, but to go the next step and create a uniform standard model that unifies the platform for business software.
In this new standard, each system is constrained in its scope, but not in its features or abilities. This creates the standard “plug” that allows a new system to be built and for it to plug in to an existing infrastructure.
This simple notion, to define the system boundaries along with the integration messages, allowing independent software vendors to create a single solution that will, through SIMPLE and INEXPENSIVE configuration, integrate WIDELY with HUNDREDS of other business software products, whether as an installed system or an Internet-available service.
Two SaaS providers can easily compete with Microsoft and Oracle and one another, and customers benefit from the inevitable competition on reliability, price, quality, and features.
I am a mere customer in this pawn-game. But as a customer, I call for the “big guys” to step up, sign up, and build for a future that will not only risk the precious “lock-in” model, but will, more importantly, secure the future for the companies that lead the way.
PingBack from http://wikipedia.blogspace4you.info/?p=12938
Nick:
I apologize for kind of reposting the same thing but I still don’t see what you mean by
>> This simple notion, to define the system boundaries along with the integration messages, allowing independent software vendors to create a single solution that will, through SIMPLE and INEXPENSIVE configuration, integrate WIDELY with HUNDREDS of other business software products, whether as an installed system or an Internet-available service.
Could you provide an example? It does not mean that I disagree with the emergence of such standard, I am just investigating the necessary conditions for it to happen. If someone wanted to define a USB standard in 1965, probably no one would have been listening to him/her.
I also would like to reiterate, maybe using AWS as an example, that "storage" services are very reusable. You can use S3 for a lot of different applications. Using the same train of thought, I believe that "systems of record" where the content of information entities is stored (and not there state) would be very reusable. If you allow the factoring of the business logic in terms of content management and state management you can start creating a series of reusable layers:
– systems of record
– resource lifecycles reuse systems of record
– human tasks
– processes reuse resource lifecycles and human tasks
JJ-
Hi JJ,
I am working on a paper that explains this.
I am NOT talking about utility services or hosted infrastructure. You can build any solution out of them. That’s cool, but honestly, I don’t see end users using AWS. I see them using CRM and ERP and GL/AP/AR and HR solutions. Those solutions can use infrastructure services to their heart’s content.
That won’t change the fact that it is not possible, today, for a company to build a CRM service that can be easily and readily integrated with someone elses ERP service. This is a service-provider problem, but if we make it easy for customers to buy, but hard for providers to build, we won’t get anywhere.
Here’s the use case.
Contoso hardware chain owns six stores in the Chicago area. They employ about 120 people. They have purchased an online payroll and HR solution from "Freespy". Right now, Freespy has a simple Account’s payable module that allows the payment of employee expenses. They use it sometimes.
Up to today, they have been keeping their accounting information in a system that their accountant uses, and he hand-keys information into the payroll system every week.
They decide to move to an online financials service offered by "Smartwinder solutions."
a) how do they get the information from their accounting system to Smartwinder’s system.
b) how do they integrate Smartwinder’s financial system with Freespy’s HR and payroll system? How to configure Freespy so that it will send expense information to Smartwinder instead of using its own accounts payable module?
Solution: both Smartwinder and Freespy have signed on to a standard that defines the boundaries of systems and the mechanisms for ‘edge configuration.’ Contoso installs a simple bit of open source software at their headquarters that provides endpoints for both Smartwinder and Freespy to talk to. That software sends messages to both services to create the message channels and set up the correct subscriptions.
The accountant calls up the company that makes the financial software and downloads a module to integrate to the same framework. Using that adapter, the open source framework tells the accounting system to pass information to Smartwinder. The company can now decommission the old accounting package.
When the Smartwinder system needs to send a message dealing with financial accounts for payroll, it sends the message to the Contoso server, which forwards it to Freespy.
Now, two years passes by, and Contoso discovers that a new service available from Flixit Solutions offers a better HR solution than Freespy. The same framework can handle the transition, allowing information to move from Freespy to Flixit and deconfiguring Freespy. Freespy will automatically recognize that the messaging relationship has changed and the cost drops to a maintenance level until Contoso is sure that they like Flixit.
The reason we cannot do this today is that Flixit cannot write their own system to automatically connect to both Freespy and Smartwinder, not because they cannot use the transactions, but because they do not know what functionality they must provide in order to play. Does Smartwinder provide all of the financials? What if the Flixit system is really good at GL and AP but not AR? Can Contoso configure the components so that they buy AR from Smartwinder but GL and AP from Flixit?
This framework will allow that to occur.
Does that help?
— Nick
Nick,
I have been working in integration for quite some time and in particular with OAGIS. The real problem as I see it is with semantics. The OAGIS specifications have gone a long way towards creating roughly right messages but the detailed use is left to the imagination of the integration and information architects. The end result of a plug-n-play architecture where standard components (e.g. HR, AP, GL) exchange standard messages is still a long way off. Conceptually I think it is there, but as they say the devil’s in the details.
Regards,
Kurt
Hi Kurt,
You confirmed what I know about OAGIS. Thanks for that.
I agree that the goal of a ‘plug and play architecture is a long way off.’ But it will remain a long way off as long as we choose not to pursue it.
I think it is time to pursue it.
— N
Hi Nick,
As you know, I’m a big fan of your thinking and I appreciate the pressure you put on architects and designers out there to up the ante and build higher quality ‘business’ systems. I agree with you that it is time to standardise system interface standards to raise the quality and unleash businesses to enjoy a plug-n-play business sytem architecture to enable them.
To that point, one of the challenges I see around building business system interface standards to improve the quality of business sytems is the existence of a common (dare I say ‘standard’) understanding of the business problem. Without that, I wonder how easy it will be to identify business system interfaces at the right granularity, flexibility design rigor, underlying real-time vs batch transports, integration patterns, etc.
OAGIS is very interesting but how do we know they are correct for a SaaS business? Can we assume they should be the refernce standard for any business problem?
We know we require architectural integrity that include associations to business process flow, data flow and information architecture. These are teh basic ingredients a system architect uses to identify and define business system interfaces.
Do you think that in order to identify business system interfaces we must first have a standard of the business problem itself? If ‘yes’, then we might have several busines system interface standards based on different market verticals, customer segments or some narrow market niche. Thoughts?
Hi Gabriel,
I will be done with my paper this weekend and I will send you a copy. With a little scrubbing, I will submit it to the Architecture Journal for publication.
In there, I outline three layers of business capabilities: differentiation, industry specific, and supporting.
The standards I am calling for apply ONLY to the supporting business capabilities. That is where the only cross-industry partitioning will apply.
working back out from the center, we get to industry specific capabilities. Then each industry will surround their supporting capabilities with their own industry specific partitioning.
And then, on the edge, each business within its industry, will differentiate.
I do not expect to start with differentiation-layer stuff. That would be nut. I am starting from the supporting capabilities only.
Make sense?
— Nick
I took a good bit of my paper (referenced in my reply to Gabriel) and posted it as a follow-on to this posting. There I describe the types of business capabilities and the target for my call for standardization.
Gentle reader, if you have gotten this far, and you are still confounded by what I am asking for, please read the followup post.
— Nick