J2EE Enterprise Software Platforms
Home Infrastructure Development Environment Architecture

The last few decades have seen significant growth in software development efficiencies. Despite this trend, developers still spend way too much time doing mundane tasks and re-inventing the wheel. I want to capture the tools and best practices for building enterprise software platforms with a bias towards J2EE and open source.


I am Chandika Mendis, the Associate Chief Software Architect of Virtusa. Virtusa thrives on its productization methodology to create and consolidate technology assets into Organization Specific Platforms (OSP). So what is the distinction between an OSP and traditional monolithic frameworks touted by major consulting organizations? OSP's are built from within rather than without, fully leveraging customers' existing investments and best practices and considering the cusomers' current context and future change drivers. This is also why the devil is in the details when it comes to building OSP's - there is hardly one right option for many of the elements required for an enterprise platform. This situation is exacerbated when it comes to J2EE as the options are indeed vast.

These pages contain my personal point of view and are not meant to represent any official stance of Virtusa, although they are fully motivated by the productization idea. For me, there are several key drivers to put up these pages:

  1. The learning curve for J2EE is too steep in terms of knowledge of the various options, best practices, design patterns that are required to do "real" production work. It should be possible to simplify and optimize this learning process by using the correct resources. I capture these resources under the framework of an enterprise platform definition.
  2. Enterprise architectures SHOULD allow programmers to concentrate on the business logic rather than infrastructure elements. Many of the existing frameworks including J2EE, Struts and the like are lousy in this context because they impose their own framework restrictions and constraints on what should have otherwise been pure business components. There are two ways around this - Inversion of Control containers (PicoContainer, Spring framework) or sophisticated code generation techniques. I want to use these pages to explore practical code generation techniques as they should be part of any decent platform that improves development efficiencies.
  3. Many enterprises keep re-inventing the wheel for aspects such as persistence, security, workflow, deployment etc. when there are great open source/off the shelf components or well-known best practices. I want to use these pages to capture these commonalities from my own experience with enterprise systems. I believe it's high time such features got standardized and productized into a "reliable and value added enterprise software stack". Reference meta-architectures are a great means of capturing such a stack.

An Enterprise Platform Definition, for me can be broken down into three primary areas.

3 Enterprise Architecture
Enterprise Web Application Meta-Architecture
2 Development and Team Enviornment
Team environment and development tools foundation
1 Infrastructure

Operating Systems, Databases, Application Servers, Integration and SOA foundation.

 

 

Find the Lowest Calling Card rates available on the web!

 !   Java News

©2004 Chandika N. Mendis  
Hosted by www.Geocities.ws

1