CSE 532 TERM PAPER Architecting Service-Oriented Systems Harithan R velagala
What is SOA? • First what is a service? A service is a reusable component which transforms business data. It is self contained. • SOA is nothing but a software architecture model. • It is also a method of design, deployment, management of applications and infrastructure over a distributed network.
What makes SOA better ? • Can create new business applications faster • Reusability is achieved • Logic duplication is reduced • Deriving new functionality from existing services in real time. • SOA defines the interface in terms of protocols and functionality rather than an API
What drives the SOA? • The most important are the Architecture principles of SOA. 1.Standardization Of contract 2.Loose coupling. 3.Reusability. 4.Composability. 5.Discoverability. These are defined on services.
Standardized service contract • The services should followa communications agreement , which is defined by the service agreement document. The service should know how its output is utilized All the services should be able to exchange messages in the same format Services should use the contract to express their purpose and capabilities.
Loose coupling • Services maintain a relationship that would minimize the dependencies • Services are aware of the existance of other services
Reusability • Services which contain a logic can be considered as reusable enterprise resources. • Each reusable component has a specific function and can be accessed concurrently
Composability • This ensures that services are able to form multiple and complex compositions • Composability is mainly achieved by identification of services and their interfacing
Discoverability • Every service has a communicative metadata • The services are identified using this meta data and new services can be created after identification of the useful services.
On using SOA • Interoperability and modifiability of a systrem can be achieved • Adopting SOA may some times effect the quality attributes that might be importatant to the consumers . • There can be slight degrade in performance in some applications.
Conclusions • SOA is an architectural style of developing and using distributed systems. • SOA is appropriate in some situations and completly unnecessary in other situations, so it should be applied only if necessary . • SOA cannot be applied at instances where memory and processing are limited for example the embedded systems.
Conclusions • SOA increases the complexity of a system , but decreases the effort when changes in a system are frequent. • Duplication of logic is reduced when SOA is applied. • SOA is recommended only when the modifications and changes in a system are imminent.