I'm not very clear on what we are trying to acheive with the separation of services from applications. There seems to be several issues involved:
- The separation of ui from functionality so that the underlying api can be presented to the user in several flexible ways.
- How re-usable code should be factored into packages that don't require the clients packages to depend on unnecessary stuff.
- How to seperate code which is considered core from non-core code.
- How to divide the administration responsibilities between different classes of user.
- Whether a package is a singleton package or can be mounted multiple times.
It's not clear to me what, in the context of these issues, is implied by being a service or an application.
Specifically I want to address the issue of ui separation but to avoid hijacking this TIP I'll post it as a separate one.