Service Oriented Architecture.pdf
Document Details
Uploaded by saleemonline
Tags
Full Transcript
Service Oriented Architecture SOA Service-oriented architecture (SOA) is a way of designing software applications as a collection of loosely coupled services. These services are self-contained units that perform specific tasks and communicate with each other over a network. Services are organized in...
Service Oriented Architecture SOA Service-oriented architecture (SOA) is a way of designing software applications as a collection of loosely coupled services. These services are self-contained units that perform specific tasks and communicate with each other over a network. Services are organized into business services: Software functionality is broken down into independent units called services. These services can be accessed over a network and can be executed independently. Services use public standards: Communication between services follows common industry standards, which ensures that everything works together smoothly regardless of the underlying software or hardware being used. Characteristics of SOA 1.Quality of service, security and performance are specified: This means that agreements are set up beforehand to define the level of service that users can expect, including security measures and how well the system will perform. 2.Software infrastructure is responsible for managing: The underlying software that supports SOA is responsible for managing all the services. This frees up individual services from needing to worry about these details. 3.Services are cataloged and discoverable: Services are listed and organized in a way that makes them easy to find. This makes it simpler to reuse services in different applications. 4.Data are cataloged and discoverable: Just like services, data is organized in a way that makes it easy to find and reuse. 5.Protocols use only industry standards: Services communicate with each other using common industry standards. This ensures that everything works together smoothly, regardless of the specific software or hardware being used. What service does? A service is a reusable component that changes business data from one state to another. Reusable components are self-contained units of software that can be used in multiple applications. This saves developers time and effort, as they don't need to rewrite the same code over and over again. Business data is any information that an organization uses to run its business. This can include things like customer data, product data, and financial data. In essence, a service is a piece of software that takes some business data, performs an operation on it, and then outputs the data in a different state. For example, a service might calculate a discount on a product price, or it might check a customer's credit card information. Data Services Open Grid Services Architecture (OGSA). OGSA is a set of standards that define how services can be discovered, managed, and used in a distributed computing environment. The diagram shows five categories of data services: Discovery Services: These services allow users to find data services that meet their needs. Imagine a library card catalog, but for data services. Management Services: These services are responsible for creating, registering, and monitoring data services. Think of a department in charge of creating and overseeing all the services offered by a library. Collaboration Services: These services allow data services to share data and functionality with each other. Imagine two departments in a library working together to share resources and expertise. Interoperability Services: These services ensure that data services can communicate with each other, even if they are developed on different platforms. This is like having a common language that allows everyone in a library to understand each other. Semantic Services: These services describe the meaning of data to make it easier for applications to find and use the data they need. Think of a library using a Dewey Decimal Classification system to categorize and label books. By following these standards, organizations can create data services that are interoperable, reusable, and scalable. Data interoperability policies These policies are in place to ensure that data can be exchanged and used effectively between different systems. Here's a breakdown of each policy: Data are an enterprise resource: This policy treats data as a valuable asset of the organization, similar to physical resources like equipment or buildings. Single-point entry of unique data: This policy ensures that data is entered into the system only once and in a consistent format. This helps to avoid errors and inconsistencies. Enterprise certification of all data definitions: This policy standardizes how data is defined across the organization. This ensures that everyone understands the meaning of the data. Data stewardship defines data custodians: This policy assigns responsibility for the accuracy and quality of data to specific individuals or teams. Data custodians are accountable for ensuring that their data is accurate, complete, and up-to-date. Zero defects at point of entry: This policy aims for perfect data entry from the start. This minimizes the need for data correction later on. Data aggregates from source data, not reports: This policy states that data should be collected directly from its source whenever possible. This avoids errors that can be introduced when data is summarized or manipulated in reports. Data and services development principles according to an enterprise Here are the principles listed: Data, services and applications belong to the Enterprise: This means that the data, services, and applications created are considered property of the company and should be managed and secured accordingly. Information is a strategic asset: This principle highlights the importance of information for the organization's success. Data can be a valuable asset that can be used to gain a competitive advantage. Data and applications cannot be coupled to each other: This principle says that data and applications should be designed independently. This allows for greater flexibility and makes it easier to modify or update one without affecting the other. Interfaces must be independent of implementation: This principle ensures that applications can interact with services through well-defined interfaces, regardless of how the services are implemented underneath. This promotes loose coupling. Data must be visible outside of the applications: This principle states that data should be accessible to authorized users and applications, even if it's not directly used by a specific application. This allows for better data sharing and utilization. Semantics and syntax is defined by a community of interest: This principle says that the meaning and structure of data should be defined by a group of people who have a shared interest in using the data. This helps to ensure that the data is understood and used consistently. Data must be understandable and trusted: This principle emphasizes the importance of data quality. Data should be accurate, complete, and reliable to be useful for decision-making. Organization of computing services Computing services are divided into four departments: Computing Facilities: This department is responsible for the physical infrastructure that supports computing services, such as servers, storage devices, and network equipment. Resource Planning: This department is responsible for planning and managing the resources that are used by computing services, such as CPU, memory, and storage. Control & Quality: This department is responsible for ensuring that computing services meet the needs of users and that they are delivered in a reliable and secure manner. Configuration Services: This department is responsible for provisioning and configuring computing services for users. Financial Management: This department is responsible for the financial aspects of computing services, such as budgeting, costing, and billing. Benefits of well organized computing service Improved efficiency: By centralizing the management of computing services, organizations can improve efficiency and reduce costs. Increased reliability: A well-organized computing services department can help to ensure that computing services are reliable and available to users when they need them. Enhanced security: A well-organized computing services department can help to improve the security of computing services by implementing appropriate security controls. Better scalability: A well-organized computing services department can help to ensure that computing services can be easily scaled up or down to meet the needs of the organization.