With everyone talking about Web 2.0, I was looking at what is the next generation for the Enterprise space, and how far are we from there. My view is that we are on the verge of the third generation of Enterprise software – the first being mainframes, second was three tier client Server and the third one still not here. A lot of people considered the web versions of 3-tier C/S as the next generation or Software as a Service as 3rd Gen, I view those more as 2.5 Gen. The generations have a lot in similarity to the wireless industry in that you can get a lot of the promise of 3rd gen with 2.5 gen, but to do it right the underling infrastructure needs to shift to the new architectures.
I will try to take this week to discuss my views of this next generation of enterprise software. As a general framework I looked at the following four layers in the stack: Store, Compute, Messaging, Presentation; yet I am happy to hear from you guys about any layer I have missed of great importance. More importantly than the layers (which I have talked about many times in the past) I am interested in the experience resulting from the right mix of those components
With that in mind, Gen 1 was about storage on tape, computing on mainframe, communicating proprietary internal networks, consumed through green screens. We all learned how to optimize because all resources were scarce and problems we were solving were bigger than the compute platform was really capable to deal with comfortably. In Gen 2 we moved to the dominance of Hard disks abstracted through a relational data store; The computer platform got distributed and abstracted by an open operating system, TCP/IP network stack and messaging queues on top, Finally a GUI which over time got the Windows interface into the user’s muscle memory.
What is coming in the 3rd generation? Well, my first approximation shows that we are moving away from single model for each layer, and into a combination of remote and local solutions for each of the layers. In a sense we are getting more domain specific and optimizing for usage instead of for unified architecture. My current thinking revolves around the following:
- Storage moves to some combination of Network Storage (think S3) in combination with in-memory stores
- Compute will be disrupted on the server by cloud computing (which is an evolution to higher level of distributed than C/S) together with local grids as represented by appliances.
- Networks will move from packets to events – in a sense sending business objects around, with the network aware of the content and able to route them using local enterprise bus that understand the relationships between roles and resources using rules.
- Finally on the client side we will see smarter browsing – able to scale up the experience and fit the experience to the user and the content. At the same time, mobile clients with higher fidelity of experience but lower level of resources (screen and keyboard) will overtake the role of the desktop as the dominant platforms for user interaction.
A much more interesting question in my mind is what meaningful new experiences do you get from these innovations when they come together. What is E3G going to solve that the previous generations could not address. I am going to start digging into that question over the next few blogs.
In the mean time, if you think that I missed something fundamental up to here in these layers – shout!