Please enable JavaScript.
Coggle requires JavaScript to display documents.
SOA (Principles (Modular (services should be modular and loosely coupled,…
SOA
Principles
Modular
services should be modular and loosely coupled, this gives them the property of being reusable and combinable.
Services are meant to be mixed and matched
In object oriented programming, loose coupling is achieved by only exposing the relevant elements of a class or component to its client. In service oriented architecture, requests are made by passing communication to the service in a way that aligns with its interface
Composable
services can and should be used in combination to create usable applications or other services. In order to be composable the services must be modular
Using services in combination is like composing objects in an object oriented programming paradigm. Just like objects can be combined to provide the desired behavior so too can services in SOA
-
Self-describing
a service should describe how to interact with it. In other words, it describes its own interface. This includes what input it takes and what output it gives
Using WSDL, which stands for web services description language.
Self-Advertising
in order to say service, potential clients must know what is available
Distributed applications using web services have standards like UDDI, which stands for Universal Description, Discovery and Integration to connect service providers with potential service requesters.
http
Format
-
-
-
Message body
may be an HTML document, JSON, encoded parameters, etc.
Hypertext is a document embedded with hyperlinks, which, when clicked, will take you to the intended document or resource.
HTTP is a protocol that dictates how information, including hypertext, is transferred across the internet.
HTTP is built on top of another protocol called the Transmission Control Protocol, or TCP.
TCP allows for reliable, ordered, connection-oriented communication. These desirable properties have resulted in HTTP relying on TCP connections. Specifically, this means that HTTP messages are sent and received through TCP ports.
When your browser accesses a URI that starts with HTTP, a connection between your web browser and a web server is opened on TCP port 80,
URL-Encoding
HTTP limits the characters used in URIs, request queries, and request bodies to be ASCII.
Special or unsafe characters, like space or Unicode, require you to encode these characters. Usually, unsafe characters are replaced with a percent sign, followed by their two digit hexadecimal digit encoding.
-
-
Javascript
JavaScript is an interpreted language where the web browser interprets the JavaScript code at run-time. You can think of embedded JavaScript as a series of commands that are executed by the web browser when it loads the HTML document
-
A service, as opposed to a component, is external to the software requesting it and often remote, either in another server in the company or somewhere out there on the Internet
Service-oriented architecture is all about how to build, use and combine services.
See 'SOAInRealLife'
Instead of building large software suites that do everything, service-oriented architecture is all about achieving your software goals by building and using services and designing an architecture that supports their use.
Architechure
layer as a collection of components that work together toward a common purpose. We use layers to identify hierarchies in the system and to restrict how layers interact with each other. Components in a layer only interact with components in their own layer or adjacent layers and they may do so only through interfaces provided by each component. Generally, lower layers provide services to the layers above them. More complex systems often require more layers to help logically separate the components. The downside of adding additional layers is that performance suffers due to the increase in communication required between the layers
Remote Procedure Call
middleware is a type of architecture used to facilitate communications of services available and requests for these services between two applications that are operating on environmentally different systems
RPC, is the basis for modern day middleware using network technologies
is the basis for middleware systems used for certain web services. RPC was designed specifically as a middleware component for networked systems and has been extended to improve its flexibility and usability.
As the name implies, a remote procedure call allows clients to invoke procedures that are implemented on a server
-
RPC was originally designed to be synchronous. During a remote procedure call, the client component will pause its execution while we wait for a response. This is also known as blocking since the client cannot perform any other task until the server returns a result
-
We use a component known as middleware, which manages the communication between heterogeneous components by providing a common interface to all the clients and servers. This architecture resembles the mediator design pattern
See image
As systems move towards n-tier architectures, middleware needs to be able to encapsulate more functionalities, from business logic and distribution of client requests to being involved in handling authentication and authorization.
is a paradigm or an approach, for designing/developing/deploying and maintain a software system that is based on distributed resources and assets.