JSR168 is the standard API for developing portlets. Basically, it's the API.
WSRP is Web Services for Remote Portlets. It allows a portal server to provide a portlet to a client, even though the portlet may be hosted on a separate server, or even a different type of portal server (BEA, WebSphere,
JBoss). Web Services are used to take content from a remote portal server, and make it look like it's available to the local server.
Essentially, the client should never know. So, you could have a client attaching toa portal server that actually pulls in content from other portal servers, all through WSRP. The actual portlets would likely be coded using JSR168.
-Cameron McKenzie