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.
The way APIs are exposed on HTTP evolved over the years.
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.
Representational State Transfer is a protocol and approach to organizing actions based on the HTTP Methods.
RPCs, gRPC, JSON-RPC
GraphQL is another abstraction where the query over the data is wrapped in a Query Language. The backend could decide the sources.
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.
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.