+2  A: 

Architecture of programs like utorrent is simple - you have server side and client side application.

On server you have something like WebService - it get information from request, searches the file from available peers (seeders) and returns it to the leech. Client application just sends information about what part of what file client wants to get.

You should start with reading the specifications: http://en.wikipedia.org/wiki/BitTorrent_%28protocol%29

http://en.wikipedia.org/wiki/WebDAV - some alternative for the torrent tracker.

After this, write your own server side and client side, or (recommended) use already written stuff Torrent Tracker code and Torrent Client

VMAtm