Nowadays, many enterprises are in constant transformation. Acquisitions, fusions and spin off are the order of the day, making it necessary to adopt new systems and applications characterized by high scalability and an easy maintenance.
In order to attain these objectives, it is necessary to use a flexible and correct approach in all phases (analysis, design, development, deployement and integration), subdividing the responsibility for the system in various layers. This division in various layers allows the problems to be broken down into different areas of competence.
Moreover, the SOA (which is based on innovative technologies like Webservices and Web 2.0) must be enabled in the framework of new systems and applications, in such a way that these have a low coupling and a greater capacity of integration and interoperability.
The most common layers of an Enterprise application are the following:
Presentation
The presentation layer deals with the users’ interaction with the system. The main responsibility of this layer is to put the information into visual form for the user and, in turn, to interpret the commands of the user which will interact with the other layers of the system. (GUI)
Business Logic/Domain
On this layer are implemented the domains’ application logic, which includes all the necessary functionalities, such as algorithmic functions on streams opened by the Presentation or Persistence/Integration layer.
Persistence/Integration/Service
The responsibilities of these layers consist in the gestion of the persistence of the system (through DBMS, LDAP, file system etc.) and in the integration and communication with the legacy system present in the Enterprise (through Transaction Monitors, Messaging Systems, WebServices). This integration is usually referred to as EAI.

