For ASIC mining you are likely to need variable difficulty (or at least high enough diff for your ASIC), and one of the following: Stratum, GBT, or getwork with rollntime.
Some pools support all 3 mining protocols and you can choose.
The current situation:
- Stratum: uses the least bandwidth
- GBT (getblocktemplate): uses more bandwidth but has the potential to catch pool ops doing something nasty - such detection is not implemented yet by any miners, though
- getwork with rollntime: the old way of mining. Uses more bandwidth than Stratum with no gain. This protocol will likely die with time.
Note that getwork without rollntime is not an option, you'd be hammering the server with requests. Same thing with difficulty 1 mining.