I have done some investigation around SOA and Component Based Architecture, and it seems one of the key differences is that a service should be independently deployable.
If I have services that are jar files, and these jar files don’t start living until they are deployed as part of a larger application’s ear file – is this really SOA? I.e. these service are jar files that cannot be deployed as independent services that can run independently of the ear file.
A service is an independent unit in terms of deployment but also versioning, scaling and data. The API (whether it is HTTP, messaging, events etc.)is “published” and public which many times comes with implication on security, backward compatibility etc.
In any event,I don’t think it matters what you call them or even if you have an SOA or not. The point is to get an architecture that will serve your current needs and will enable you to evolve it when future needs will arise