Open APIs

 View Only
  • 1.  What is the difference between an API and SOA

    Posted Sep 27, 2017 01:34

    There are a lot of What is the difference between... questions out there but I couldn't find this one.

    Wikipedia says this about an API
    An application programming interface (API) is a source code-based specification intended to be used as an interface by software components to communicate with each other. 

    And this about SOA

    SOA also generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA-based services. 
    Aren't both technologies where you present services to other services?
    Could someone expand on this?

    Aren't both technologies where you present services to other services?
    Could someone expand on this?

    Thank you



    ------------------------------
    Saanvi iamsaanvig@gmail.com
    Saanvi S
    ------------------------------


  • 2.  RE: What is the difference between an API and SOA

    Posted Sep 28, 2017 02:00
    Edited by Andrew Larmour Oct 01, 2017 19:28
    For both APIs and SOA, there are general definitions and there are what they have come to be accepted as meaning in the market.

    SOA : Service Oriented Architecture - is all about breaking systems down to services so that they can be pieced back together in new and innovative ways. These services could be provided by monolithic applications or they could be provided by single function application capabilities. They could be implemented in any language, on any platform and interfaced by any protocol. The interfaces could be file based, CORBA, Web Services, REST, XML/HTTP, Message Queue. In practice however, the term SOA is often interpreted as meaning Web Services based and therefore the primary interfaces would be SOAP over HTTP or Message Queue. The Enterprise Service bus (ESB) is often held up as a mandatory part of SOA, and I would say that generally, an ESB does form the backbone of a SOA however, it's not a compulsory component as you could still have a SOA with lots of point to point call of services. Doing SOA that way however will mean you miss out on much of the business value of SOA.

    API : Application Programme Interface - describes any programmatic interface to an application.  That interface could be using Web Services, REST, IIOP, etc. The term API has more recently come to be synonymous with MicroServices architecture which is all about using REST based APIs to interact with other systems rather than the broad range of protocols that it traditionally represented.

    I don't see SOA and APIs as competing with either the proper or the market definitions. I do however see SOA and MicroServices Architecture and being rivals even though (if you look at the proper definitions) MicroServices Architecture is a specific type of SOA that uses lighter weight interfaces (APIs) to communicate.

    ------------------------------
    Andrew Larmour
    DGIT
    ------------------------------