In general, Canadian patents treat software as any other invention; if it falls within the definition of an invention, and you can show utility, novelty and non-obviousness, you can acquire protection. The requirement for attachment to a physical process is trivial to circumvent for an experienced patent agent.
Obviousness is normally considered one of the big issues in software patents. Sanofi is the leading case on determining obviousness. Its got a succinct 4 point test that people like to gravitate towards centered on how to apply the 'obvious to try' standard, but the case also states that obvious to try isn't the only acceptable standard and that the determination should be industry specific.
Its against many large players' interests to bring litigation in this type of climate because of fear that courts will find that the software industry has a higher bar than most industries where satisfying obviousness is concerned.
N.B. one of the most common defenses to being charged with infringement is to show that the patent is invalid, so enforcement proceedings are risky.