Services are required in every development. Their usage is increasing over time. Isolation, scaling, etc. are some of the major objectives behind their use. Automating the creation/maintenance of common used services is crucial to assure quality and reduce development time.
Services are used to avoid exposing the application database and/or its logic, to define how the application must be used and as a mechanism for application evolution. For example:
- Define how modules of the same application should interact with each other
Sometimes modules are required to be installed separately. If a module is not installed or even implemented by another provider the interaction must be clearly defined.
- Three layer architecture
Services are the base for a three layer architecture. They hide the underlying database architecture and enable development of highly scalable applications.
- Mobile applications development
Mobile applications usually need to move faster among GeneXus and SDK versions than backend ones.
Using services that access the backend application lets the mobile ones evolve without the need to move the backend too.
|