Client/server applications boomed in the 90s and many companies have a considerable amount of data hosted in now obsolete technologies.
Using CASEs (Computer Aided Software Environments) was then enhanced by speedy and particularly rich human–computer interfaces, a novelty compared to screens that only displayed text.
As they helped create easy screen layouts, IDEs have often been used as specification tools on external applications made at the consumers’ request. To meet changing requirements, these applications grew incrementally until they became critical. But most of the time, these changes did not affect the application base.
Client/server applications use event-driven, often permissive programming languages, with an increasing number of cases where processes are triggered. The late event-driven programming standards explain why duplicating processes, instead of making them efficient to improve and secure upgrades and maintenance, is quite common.
Access to data is also usually managed in a scattered way with queries all over the code, which makes it a tricky thing to change the data model.
Nowadays, client/server systems are a concern to IT executives because they are limited in many ways ,due to technical constraints and limitations of a client/server architecture:
- Client/server 4GLs are or will soon no longer be maintained
- Compilers do not fully support 64-bits applications
- Client/server architectures use procedure-oriented programming languages or, at best, object-oriented languages
- The native architecture is process-oriented whereas enterprise architecture implementation requires a service-oriented architecture (SOA)
- Native features do not include web-enabling capacities,
- Poor connection with applications on mobile terminals
- No interoperability with the new architectures, which makes it difficult for customers and partners to access the applications
- Remote access to the applications and implementation issues
- Reliability and maintenance costs are difficult to control
- Lack of skills, especially due to new architectures leading to loss of technical and functional skills
- The increased amount of managed data can have an impact on performance