Basically the idea of SOFEA is, we should stop do downloading from the server side, and send this responsibility to client side.
Propose removing all the logical presentation of the service side, and move these logical to Java Script and to client side.
Because with the SOA (Service Oriented Architecture) maturity and browsers evolution, we can change some ways that we work in the front-end side, and utilize more the client machine.
This architecture style is precisely to application web in SOA and Cloud environments.
It is intended to revolution that was brought from SOA on back-end to the front-end.
We treat all communication server with web service by way of REST or SOAP for example, is possible the server-side to focus just in business, and being exposed in format of service.
SOFEA can be synonym of Single Page Application, and should not be confused with Framework or implementation, is style architecture.
What is Single page Application (SPA) in this story?
Why should we underuse the client side and overload the server side?
Why not balance this load?
Is is possible to improve the user experience with these techniques?
Why just now appears SOFEA?
Because the Java Script engines to browser and AJAX toolkit has a great development in recent years.
The client-side frameworks had a great evolution as well.
Simplicity in client-side.
More heterogeneous team.
Mobile client are growing every day.
In the picture below it is possible to see where living the older web frameworks.
Life cycle in the older architectures.
SOFEA life cycle:
Where the components living in SOFEA?
Some frameworks that implements Single Page Application are:
Scalability, because service has less work, and just process the business logic.
Better user response, low latency, because after app download, just data travels.
Organized programming model,it is possible have a team just for client-side and other to server-side
Interoperability, easy integration with many platforms, clients doesn't matters for the service language
Higher ROI, is possible reuse more services
This architecture style impulse the web 2.0, this is the one of the many techniques, movements, culture that offers a new perspective to client-side, so, is important to know them instead of just use and choose the fashion frameworks.