Distributed Architectures Service Oriented Architecture Component Based Software Architecture 2
3
4
Increasing nature of distributed systems Heterogeneity of systems and computing environments Dynamics of Operating Systems Transparency of communication details SOA is independent of any specific technology e . g . W e b Se r vi ces 5
6
7
A service is a business functionality that is well-defined, self-contained, Independent from other services, and published and available to be used via a standard programming interface. Service orientation is a particular strategy for separating concerns and dividing a system into components. Its fundamental characteristic is that every component provides a distinct service that can be used by multiple consumers. 8
Service-Oriented Architecture (SOA) is an architectural style. Applications built using an SOA style deliver functionality as services that can be used or reused when building applications or integrating within the enterprise. Standardizes interactions of services Services can be reused by other applications 9
Simple Object Access Protocol (SOAP) Web Service Definition Language (WSDL) 10
A service can only be used if potential clients are aware of its existence, and have information about how to use it. This is achieved through service description. A service description contains at least the name of the service, the location of the service, and the data exchange requirements. 11
Imagine that several areas of banking applications will deal with the current balance of an existing customer. More than often, the “get current balance” functionality is repeated in various applications within a banking environment. This gives rise to a redundant programming scenario. The focus should be toward finding this sort of common, reusable functionality and implement it as a service, so that all banking applications can reuse the service as and when necessary. 12
An online travel agency system It consists of four existing web services: airline reservation, car rental, hotel reservation, and attraction reservation. 13
Service reusability Easier maintenance / update Platform independent Reliability (because error in one service would not corrupt the whole programme rather debugging would be easy) Availability (based on SLA -Service Level Agreements ) Lower total cost of ownership Loose coupling communication over the internet must not lead to a blocked system. Service contract A service contract is a communications agreement, and specifies the details of the service that the service provider is performing Composability 14
Component-based software architecture divides a problem into sub-problems each associated with component partitions. E.g. Student information System (Qalam – Components: Attendance, Course Enrolment, Results, Finance etc.) The interfaces of the components play important roles in the component-based design. The main motivation behind component-based design is component reusability . Make use of existing reusable commercial off-the-shelf (COTS) components or ones developed in-house 17
18
19
Source code Classes – one or more, possibly related Executable code Object code Other files Ima g es , t e xt, indices 20
Lollipop and Socket Notations with arrow indicating the dependency E. g . Ima g e Input Ima g e P r oc e s s ing Ima g e Ou t put 21
Figure: This component's inner structure is composed of other components 22
A component model is a definition of standards for component implementation, documentation and deployment Examples of component models EJB model (Enterprise Java Beans) .NET model Corba Component Model The component model specifies how interfaces should be defined 23
24
Reusability of components. Independent development of components by different groups in parallel. Many OO design tools can also be used for component-based software development. 25 Adaptation of components is an issue (Source code availability vs. Closed source) Few component-oriented dedicated design tools are available. (Generic tool like UML is available)