Commonly, in 2.0 shops of few people:
Client-side -> "frontend"
Server-side -> "backend"
You're right that when the server-side gets nontrivial you need to stratify the architecture and the role definitions for the participants. At that point, "backend" means a just what you describe, and the business logic implementors are building what I'd call the middle-tier; it is seldom more than ORM retrieval, formatting and validation.
When you start involving ETL, algos, complex "systems" programming, deep integration with external vendors then you leave this paradigm and start having "real" backend devs.
Agreed. In my mind "front end" is HTML, JSP, CSS, JS/AJAX, Design, browser compatibility, etc... "Back end" is business logic/code development (Java in my case).
You're right that when the server-side gets nontrivial you need to stratify the architecture and the role definitions for the participants. At that point, "backend" means a just what you describe, and the business logic implementors are building what I'd call the middle-tier; it is seldom more than ORM retrieval, formatting and validation.
When you start involving ETL, algos, complex "systems" programming, deep integration with external vendors then you leave this paradigm and start having "real" backend devs.