JTAG is a standarised protocol just by many manufacturers of uC's FPGA's and other logic chips.
If you're unfamiliar with JTAG, then start by reading a bit about JTAG itself to build up a bit of background.
https://en.wikipedia.org/wiki/JTAG"External links" on the wikipedia page llinks to further tutorials.
The JTAG protocol itself is standarised, but the way a programmer that uses it communicates with a PC is not.
A long time ago I built an "Altera Byte Blaster". Back then it was a TTL chip on a breadboard with wires to the LPT port.
There are many manufacturers of programmers that use JTAG, lots of them are proprietary, but open source variants also come to mind.
"Black magic probe" pops up in my mind, but I have no experience with it.
ST sells ST-Link which does JTAG.