Web Services
Tags: backend, webdev, beginners, programming
Published: 2023-05-17 16:57:25

Testing and processes in web service are still much more complex with advancements in technology. The tech giants have raised the bar by addressing the need for application development, and its scale from the likes of Amazon, Google, Facebook, and Microsoft is exactly what makes web services possible. 

Understanding how web service works, and what it takes to bring these processes to life. You will get to know in this article.

## Table of Contents
{%- # TOC start (generated with https://github.com/derlin/bitdowntoc) -%}

- [What are web services](#what-are-web-services)
- [How The Web Service Works](#how-the-web-service-works)
- [Different Types of Web Services ](#different-types-of-web-services)
- [SOAP(Simple Object Access Protocol)](#soapsimple-object-access-protocol)
- [REST(Representational State Transfer)](#restrepresentational-state-transfer)
- [WSDL(Web Service Description Language)](#wsdlweb-service-description-language)
- [The Difference Between Web Services and Web API](#the-difference-between-web-services-and-web-api)
- [Conclusion](#conclusion)

{%- # TOC end -%}

## What are web services
A web service is a service software that is available on the internet either private or public networks, which uses a standardized messaging protocol to communicate with different computer systems. It makes peer-to-peer communication easier and not platform specific. The web service uses a standardized XML messaging system and JSON to transfer machine-processable file format through HTTP.

## How The Web Service Works
A client invokes a series of web services by sending an XML message(request) to the server and then waiting for a corresponding response in the same format which hosts the web services. These requests are made possible through RPC(Remote Procedure Calls), RPC calls to methods are hosted by a web service. For example, Google provides a cloud platform that runs apps, host site, and store data via cloud.google.com. The programming language with the likes of Golang, Python, and more would have the ability to communicate with the web service.
It is more like a road between two endpoints where messages are transferred smoothly, and two individual programmable entities communicate with each other through API(Application programmable interface).

## Different Types of Web Services 
These are prominent ones that have evolved:

**UDDI(Universal Description Discovery and Integration):** UDDI is an XML-based(Extensible Markup Language) standard for publishing, detailing, and recovery of information about web services. It's mainly an internal registry for businesses globally. This includes XML schema for SOAP messages that define a set of documents to describe the business and service information. Before you can publish your business entity and web service to a public registry, you must first register the business entity with a UDDI registry. UDDI registries come in two forms, public and private registries. Both comply with the same specifications. A public registry is a collection of peer directories that contain information about businesses and services, while a private registry enables you to publish and test your internal business application in a secure, private environment.


**XML-RPC(Remote procedure call):**
XML-RPC is one of the simplest and foolproof XML protocols to exchange data between a wide variety of devices on a network. It's a remote procedure call that uses HTTP as the transport and XML as the encoding. Rpc gives developers a mechanism for defining interfaces that can be called over a network. The interface can be as simple as a function call or as complex as a large API.


**SOAP(Simple Object Access Protocol):**
SOAP is an XML-based protocol for accessing data and documents over HTTP or SMTP(Simple Mail Transfer Protocol). It has some specifications that could be used across all applications. Exchanging data between applications is crucial in today's world, but data exchange between these heterogeneous applications would be complex. SOAP was designed to work with XML over HTTP and has some sort of specification that could be used across all applications.


**REST(Representational State Transfer):**
REST is a web standard-based architecture that uses HTTP protocol. It defines a set of methods to build a web API (Application Programming Interface) due to its simplicity and client fondly nature. The main benefit of REST is statelessness, which means does not store any information about the client, instead, every request contains information for the server to process its request. 
Objects in REST are always manipulated from the URL(Uniform Resources Identifier)/IDs and payloads are used to send and return information that is too large to be handled as a parameter. The payload is of a variety of different forms including XML, JSON, and HTML.


**WSDL(Web Service Description Language):** WDDI Is an XML-based interface description language that tells the client application the functionality offered by a web service. WSDL description of a web service that provides a machine-processable description of how the service can be called structure to return parameters it's expected. It specifies the method of the service and the location of the service with the following elements types, messages, port type, and binding.

## The Difference Between Web Services and Web API
Both web service and web API are modern software architectures, that are mistaken for each other which makes it difficult to distinguish.
We talked about web services at the beginning of this article.
A web API is a protocol that allows applications to communicate with different applications that can be exposed through local files, such as (.H file in C/C++ program and .go in Golang to allow two local application)ons to communicate with each other and it doesn't require a network to communicate with a single device.
With the explanation above it comes down to that a web service is a protocol and standard use for exchanging data between systems or applications, it must be accessed through the internet, whereas web API is a software interface that allows two applications to interact with each other over the Internet.

## Conclusion
Web services and web API makes the Internet more accessible than ever before through different medium, with the help of tech giants companies advancing the web service and more accessible over the Internet, though it's still complex. But is rapidly growing over time.

If you're looking to improve your knowledge or you want to explore web services it is advised you dive in and enjoy the world of web services.