Application Architecture

February 12, 2008

The application architecture we see today in many of the web apps is based on a few frameworks(Spring+Hibernate+presentation) and on a set of patterns. This has basically become a best practice in the field. It is the referance architecture of web apps as we know it today. Below you can see a detailed description of such an application :

The diagram presents the layers of the application and the frameworks used to construct it. We can see there are two types of tasks at hand. The first is the wiring and gluing of all the frameworks together into a coherent application. The second (green) is the actual implementation(ie coding) . We are coding only the business domain in which we are doing the project. Practically there are three types of implementation artifacts at hand :

  • Business Screens – driving the user through the business forms.
  • Business Behaviour – the services which implement the business rules.
  • Business Data – The entities which comprise the business model.

When considering an alternative for on-premise environments it is important to review all the benefits a platform as a service offers and to verify they deliver a comparable quality of service in all the IT domains. Specifically for development, we need to understand if the abstractions and agility we can implement using the above architecture is available with such a platform. A rigid, limiting or inexpressive environment is a true barrier to entry.

Below you can see a detailed description of the software architecture a platform should offer as an application architecture template to its customers – developers in order to truly compete with the on premise rich set of features and abstractions :

In fact this architecture includes additional features not available today with spring which extend the issue of development and operations. It also provides a higher view of the application as a part of a larger application portfolio – not just a stand alone app. The presentation layer is not addressed at this diagram.

In my next post I will address the role of an application in the enterprise and how it fits into the “BIG PICTURE”.


February 5, 2008

In my last post I discussed the InSideOut metaphor of Enterprise IT Infrastructure.  Making the Enterprise the number one player which all ISVs attend to and not the other way around.(ISVs building their product with no reference to their client overall needs). We are talking about the container that intelligently hosts components and systems. What is missing in today’s IT which will make this vision a reality?

  • Move all Data Center resources to Grid and Utility and provide unlimited resources and performance.(Virtual Enterprise)
  • Adopt a more Holistic approach, a top-down, end to end view of the IT Lifecycle.(IT Life-Cycle Management)
  • Provide a Platform that creates one connected controlled environment.(Strategy, Development, Operations and Data)
  • Provide it as a SaaS service.(plug-and-play)
  • Provide Service Oriented Event Driven Architecture.(Organic Real Time)
  • Create open APIs enabling Agility and Innovation.(3rd party)
  • Subscription approach, Hosting model, Managed services.(Lower TCO)

Is there a name for such a monster? Well, actually there is : A level 3 Platform.Marc Andreessen describes in his blog the three different platforms which exist today and explains the difference. It is important to note that not all the attributes mentioned above appear in his description. These are differentiating attributes for such a platform.

In my next posts I will review what is a level 3 platform and address the differences between Ning,Force and MashupFactory.