Top message
The message at the top is a great way of informing users and works towards error prevention. As I understand you're question, it is not however an alternative to validation. Validation still needs to happen.
Asterisks
(Red) Asterisks are well known by users (they are a convention). But when you have a large form, all those asterisks (especially when they are red), can make the form ugly. A great alternative for this, when most inputs are required and just some are optional, is to add "(optional)" to the labels of all optional inputs.
Inline validation
Inline validation is great for inputs like email addresses where you check the input when the input loses focus. (blur()
function in JS).
In your case some inputs might not be selected (get focus) at all, because users will just skip them. You can't inline validate these.
An option might be when an input gets focus, to check if any inputs that are above the selected input are empty.
But I don't think this is a valid option, because users don't always fill in forms top to bottom. Most will, but not all. Especially in the example form you displayed in your question. Rolename and keywords might be hard for users to fill in. Their location for example might be easiest for them to fill in so they'll first do that. This will light up the three inputs above it.
So, the only way left is to trigger validation when the submit button is clicked.
I personally validate with Javascript before I send it through to the PHP action to handle the form. This way the page won't be reloaded or you won't leave the page and you can be sure all entered information won't be lost.
So in short, a combination of visual cues like the message, an asterisk or optional label and validation is best.