Skip to content

The base of all modern Software as a Service

Software Service

There is a base of all modern Software as a Service. All modern applications, platforms and applications stand on the shoulders of several big and widespread protocols. Let me tell you first, a little bit of history and ways of architecting software.

Socket & HTTP 

All big Platforms, Frameworks, Services and Applications stand on the shoulders of these two basic points. On socket layer stand many 3rd party services that need finest optimizations – to the byte and the iron. On the HTTP stand everything else – the biggest majority.  

API variations

The way APIs are exposed on HTTP evolved over the years.

WSDL

The oldest way is WSDL. They are XML based – with good Definition of the methods, the input and the output parameters. Many tools are available – that generate a lot of code based on that definition.  

REST

Representational State Transfer is a protocol and approach to organizing actions based on the HTTP Methods.

RPCs, gRPC, JSON-RPC

RPC and the evolution – gRPC are the evolution of calling a well hided through APIs – server code – from the client code. Java Programming Language has the RMI. It is not currently popular in my view. Somehow similar is the JMS. Google made an implementation for JavaScript to Java – GWT.  

GraphQL 

GraphQL is another abstraction where the query over the data is wrapped in a Query Language. The backend could decide the sources. 

CLIs

Many platforms offer functionalities – exposed with Command Line Interface. This is very important for Server Side Applications that don’t have Windowed User Interfaces. This – in some sense limits an App or a Service only for hardcore Developers or System Administrators.

SDKs

To open a Service, Platform or Framework to a wider Developer public, a Provider of some functionality should provide Software Development Kits and APIs – for all major programming languages. If they are open source and examples exist, this could be very delightful. 

The Modern SaaS

All Cloud Platforms integrate many of their modules via Services, exposed over some protocols & layers. The good ones offer even SDKs – for the big and popular languages. The excellent software providers offer even user interface that expose the gluing of different services with a User Interface. I’ve tried this with the newer variations of my Generator App and I’ve seen similar approach by other companies. The tricky party is – the User Interface (or any other easily consumable endpoint) to be only the finishing touch. This will bring reusability to the Moon.

Leave a Reply

Your email address will not be published.