Web Services Flashcards
What are Web Services?
A web service is a business-to-business (B2B) technology which makes resources available over the Internet using a standardized messaging protocol or architecture (such as REST or SOAP).
What is REST?
REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other. REST-compliant systems, often called RESTful systems, are characterized by how they are stateless and separate the concerns of client and server.
REST defines 6 architectural constraints which make a web service truly RESTful:
Uniform interface Client–server Stateless Cacheable Layered system Code on demand (optional)
Tell me some characteristics of REST?
The explicit use of HTTP to facilitate client-server communication.
The use of HTTP status codes to indicate the success or failure of request processing.
The uniform naming convention used to define the application’s endpoints.
The server that processes requests does so in a stateless manner.
The use of any one of a variety of data interchange formats (JSON, XML, etc.).
What is SOAP?
SOAP, or Simple Object Access Protocol, is a protocol designed to exchange information in the form of Web Services. It is primarily based on XML documents exchanged over HTTP, but it’s possible to transmit messages through other mediums like email and JMS.
SOAP web services are generally based on a a Web Services Description Language or WSDL, which is an XML contract that defines all the data and services offered by a given web service. The client and the server both use this contract as a basis for exchanging information and making remote procedural calls.
What is SOA?
SOA is a style of software design where services are provided to the other components by application components, through a communication protocol over a network. The basic principles of service-oriented architecture are independent of vendors, products and technologies. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online.
A service has four properties according to one of many definitions of SOA:
Services logically represents a business activity with a specified outcome
Loosely-coupled; individual services are self-contained and not dependent upon other services
Abstraction; a black box for its consumers
It may consist of other underlying services.
What is an Enterprise Service Bus?
An ESB is a middleware tool used to distribute work among connected components of an application. ESBs are designed to provide a uniform means of moving work, offering applications the ability to connect to the bus and subscribe to messages based on simple structural and business policy rules.
What is Web Service Description Language (WSDL)?
An XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services).
What is Docker?
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. The use of containers to deploy applications is called containerization.
What are the advantages of containers?
Flexible: Even the most complex applications can be containerized.
Lightweight: Containers leverage and share the host kernel, making them much more efficient in terms of system resources than virtual machines.
Portable: You can build locally, deploy to the cloud, and run anywhere.
Loosely coupled: Containers are highly self sufficient and encapsulated, allowing you to replace or upgrade one without disrupting others.
Scalable: You can increase and automatically distribute container replicas across a datacenter.
Secure: Containers apply aggressive constraints and isolations to processes without any configuration required on the part of the user.
What are microservices?
A microservice is an engineering approach focused on decomposing applications into single-function modules with well-defined interfaces which are independently deployed and operated by small teams who own the entire lifecycle of the service.
What are some features of microservices?
Separately written, deployed, scaled, and maintained.
Encapsulate business capability.
Independently replaceable and upgradable.
What is a message queue?
Message queuing allows applications to communicate by sending messages to each other. The message queue provides temporary message storage when the destination program is busy or not connected.
What is JMS?
Java Message Service (JMS) is a Java API for sending messages between two or more clients. It is an implementation to handle the producer–consumer problem. JMS is a part of the Jakarta/J2EE platform, and is a messaging standard that allows application components based on Java EE (includes Spring) to create, send, receive, and read messages. It allows the communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.
What are the types of Messaging Models?
Point-toPoint and Publisher-Subscriber