Here
is an interesting post by Jeremy Chone in Bits and Buzz on Enterprise Web vs Consumer Web [2.0]: Top Six
Differences.
I was struck by this comment on one differences and thought of similar things we've seen in the field. Especially the fifth factor. Here it is in Jeremy’s words.
"5)
Integration (Loose vs Strict) ... In the consumer space, application
integration happens very organically. Application providers (e.g., Twitter) or
application container providers (i.e., Facebook) define
interfaces with which
everybody can integrate. The result is that thousands if not hundreds of
thousands of applications will potentially integrate with some of these
interfaces. Consequently, interfaces tend to be simpler, lighter (e.g., REST), and
often even client-centric (e.g., OpenSocial and iGoogle). In other words,
consumer application integration is about breadth rather than depth. In
the enterprise space, on the other hand, application integration has to be
thoughtfully designed and managed and often has an impact in all layers of the
application (i.e., presentation, logic, and data). Heavy and expensive
technology, such as ETL, SOA, JMS, and Portal, are often an effective way to
establish strong integration between applications."
Many
of the current enterprise application efforts have been influenced by the
consumer web (and you can call it 3rd party services, Cloud, SaaS, what have you). However, success
depends on recognizing the challenges and differences, as much as the opportunities and
similarities. Much of the consumer web involves preparing for the unknown
such as traffic volumes, as well as integration from multiple and unanticipated
applications that you may not have control over, or be able to enforce an expected service level on.
While more is often known about the architecture in the enterprise world, the level complexity can go way up due to much deeper layers of system-to-system interaction. There is also less tolerance for lapses in performance and data integrity. This is where the edge between Consumer Web and enterprise applications gets particularly jagged, and where we are seeing the most innovation.
For instance, the need for software testing to be truly stateful and asynchronous as you cross over the edge between the enterprise and consumer web is a necessary thing (and quite a mouthful) -- if we are going to consume the best of both in our distributed apps.
How do you validate a transaction, if the response may move around among several third parties and decision points, and maintain its state when (and if) an appropriate response occurs? This kind of leap is going to take a lot of automation and innovation to allow the two to achieve scale.

Comments