Successful enterprise are all about business agility and able to introduce new products and services in the market. All this business agility coupled with reduced IT overheads means, the enterprise need to find better ways to improve and transform their enterprise systems.

The advent of Cloud, Social, Mobile and Consumerization of IT means enterprises applications need to be adapt to the changing environment. Today, every enterprise is looking to fulfill the following demands

Adopt cloud for their enterprise applications (whether private / public / hybrid is a matter of enterprise priorities)

Replace or retire in-house enterprise applications ( where applicable) in favor of the equivalent SaaS applications

Expose enterprise data for third party consumption

Make the enterprise functionality available over variety of channels (web, mobile) - Consumerization

Make the systems available 24X7 to meet the ever growing business demands

The Enterprise application patterns for creating applications – Portals, CMS, SOA, Centralized DB’s are not functionally capable or geared to meet the new business demands. The enterprise needs to adopt the newer application patterns that are coming out of the consumer web world. Some of the patterns emerging out of new generation consumer web applications that can be applied for enterprise applications

Partition by Function – Divide the functionality by usage patterns or resource consumption. The functionality can be exposed using RESTful or Web services. This functional grouping will help in achieving optimization at the resource level. This helps to scale individual functional groups based on their resource characteristics (High CPU, More RAM, High I/O). This pattern organizes the enterprise platform around services which in turn provides agility. Things can be done in parallel because the output is a service. This allows fast time to market. Helps create an infrastructure that allows services to be built very fast.

Segregate the providers and Consumers – Instead of building large monolithic applications, segregate the functionality providers versus consumers. The enterprise should have separate teams – one that deal with the functionality provider and other that consume the functionality. The functionality is exposed via simple API’s having standard versioned interfaces

Enterprise need to start integrating with SaaS vendors that can provide the required apps for the consumption of the enterprise users. At times, the integration might need to be handled at the API levels specifically for authentication/authorization.

Enterprise applications specially that are consumer facing can also be hosted in public clouds.

Enterprise need to integrate services that handle data coming in or going out from public cloud / SaaS vendors to their data centers.

Munish is the Founder and Chief Contributor at Tech Spot. I have extensive experience in Technology Architecture, Solution Engineering and IT operations Management. I cover areas related to Performance Engineering, Cloud, Open Source and Portals.
Check out my other blog on
Akka - a concurrent programming framework
-
Akka Essentials
and my github repository
here