Time is important and the software development in the business require speed and options. Thus need not reinventing the wheel and utilize the available assets to save time and effort.
coming back to the old programming languages you must code every single function, after that it developed to enable defining functions and call it back in another place to save time and effort from write the code again, then the programming language become object oriented to easily define relations and image the reality, then the application it self become an object that we can talk to it throw APIs. Now we are talking about connecting applications to create new application as one entity with existence recipe of independence for each application what is called Service Oriented Architecture SOA.
Service Oriented Architecture (SOA)
Is an architecture pattern that enable to build software as services and connect them to represent one entity. However this is useful to benefit from the independent for each software. For example build an ERP that consist of many modules like sales, accounting, warehouse, CRM and others can be designed to let each module works as stand alone application and when it connected it become an ERP.
For sure the design granularity could be smaller, for example we can chunk the warehouse module for three software services like users, inventory management, and order management and connect this services to be warehouse management application.
This actually depends on designers and engineers whom design the software to decide which level of granularity to build the application, therefore the cost is increasing when we increase the services but it reduce the cost of rebuild it from scratch as we can reuse this services in another place insisted of rebuild it ! for example we can use the users application (create, authorize, manager) services in more than application. However applying SOA require professional designers and engineers and need enough time to implement the design.
There is many charts and schemes describes SOA, but its not a fixed pattern its a general concept that we can apply before implement the software. For the technical part we can follow and blog talk about how to create web services and connect it together. All we need to do after the design part is to create services that can work independent and connect it together to represent one entity in the user interface.
Have good time,
to the next blog.