code: @SuppressWarnings("unchecked")
  	public <I> I getRemoteInstance(String implementationURL, Class<? super I> interfaceClass) {
  		Params.notNull(implementationURL, "Implementation URL");
  		Params.notNull(interfaceClass, "Interface class");
  		// at this point we know that interface class is a super of returned instance class so is safe to suppress warning
  		return (I) Proxy.newProxyInstance(interfaceClass.getClassLoader(), new Class<?>[] { interfaceClass }, new HttpRmiTransactionHandler(implementationURL));
  	}
docs: Create a new Java Proxy instance for a remote class implementing requested interface. In order to create a remote class
  instance one should know the URL of the context where the remote class is deployed. Also need to know service provider
  interface - see {@link js.net.client} package description, <em>Remote Service Client</em> section.
  
  @param implementationURL the URL of remote implementation,
  @param interfaceClass remote class interface.
  @param <I> instance type.
  @return newly created Java Proxy instance.
  @throws IllegalArgumentException if <code>implementationURL</code> is null or empty.
  @throws IllegalArgumentException if <code>interfaceClass</code> is null.