For naming convention please read the official convention.
Manager - As the name suggest which manages things in your code like EntityManager, it manages Entities, TransactionManager - It manages transaction. So you can have something called as SecurityManager which manages which Algo to use for encryption e.t.c
Controller - Again name speaks a lot, controls how what needs to be done, or how things to be done. For e.g. ActionController - takes care of what to do on receiving user action event
Service - Consider it something like postalService, a task performed by someone on a general note, you can make use of it.
Packaging code needs lots of thinking, your application packaging should always align to the business model which it is catering to.
Along with business model then you need to think if the feature is very much at heart of the application so you will move it to the core, say if the feature is for talking to other application you would like to move it under integration and so on.