Friday, June 1, 2007

Service Oriented Architecture



Click on the above image to enlarge.

Description:
SOA builds on top of the 3TA and addresses its shortcomings. SOA looks at the IT infrastructure as a set of services and applications. Services implement some kind of functionality and are used by applications and other services. Services communicate between each other and with applications by exchanging XML documents. SOA applications correspond to the 3TA presentation layer, while SOA services correspond to the 3TA business logic and data layers. In SOA all the complexity of the system is encapsulated in coarse grained services and applications are kept extremely simple. The main concern of applications is to display XML data they get from services and to send XML data to services based on user input.
SOA introduces three additional requirements over 3TA:

- Completely separating the presentation layer from the other layers.
- Breaking down the other layers by coarse grained functionality to make services.
- Having the services communicate with each other and with applications by exchanging XML documents (typically using web services).

Disadvantages of SOA:
- SOA results in the addition of XML layers introducing XML parsing and composition, applications could run slower and require more processing power, increasing costs.
- Increases the coupling between a service provider and a consumer and makes switching service providers more difficult.
- SOA is merely an obvious evolution of currently well-deployed architectures (open interfaces, etc).

Tuesday, May 1, 2007

3-tier Architecture:




Click on the above image to expand.

Description:
3TA is a logical separation between the presentation layer, the business logic layer, and the database layer. For instance, on the Java platform, the presentation layer could be implemented with , the business layer with session EJB, and the data layer with Hibernate. It is important here to note that the 3TA introduces only a logical separation between layers.3TA can be seen as an implementation of the divide and conquer strategy for the use of the application architect, as it lets him think of his application in term of layers.

Advantages of the 3-Tier Architecture:

- Distinctly separates business logic and presentation logic. This implies better understanding.
- Changes limited to well defined components.
- Enables cross-platform application design
- Effective network performance compared to 2-tier.
- High scalability
- Has a DB independent database tier
- Suites medium to large scale applications

Disadvantages of the 3-Tier Architecture:
- Hard to integrate with other 3TA applications.

Usage of the 3-Tier Architecture:

Traditionally used when building web applications.

Java Software Architecture

Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software ArchitectureJava Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture Java Software Architecture