Shuttlecraft are short range craft used on starships and space stations to ferry people from place to place where the transporter is either a poor or impossible choice. It also allows for personnel to move around without tasking an entire starship to accompany them, such as when crew members have a transfer or family emergency. They have limited warp and are mainly intended to stay close to their mothership. Think of them as the lighters that old style sailing vessels had. Good for short trips or just two for a long one. They are also barely armed, often with just a phaser array and no photon torpedoes.

Runabouts, on the other hand, are designed to be much more hardy. They can sustain Warp 5, pack a couple of phaser arrays and occasionally stock a couple of torpedoes. They are intended to operate on their own for extended missions and are employed mainly on spacestations. They can hold quite a number of people on short or extended trips. They are also larger in length than the shuttles.

We see shuttles mainly in the Next Gen, used for dignitary transport, crew swaps and a few detached missions.

The runabouts were used a lot during Deep Space Nine where they were used in Dominion space and quite frequently in combat. 

When to use a runabout or a shuttle in a mission?
I have an app that runs on GlassFish 3.x. It communicates to a remote server over https. In my cacerts file I've added the server certs. In my keystore.jks I added the private key the company running the remote server issued me. This works great on Glassfish 2.x, however on 3.x they remote server keeps complaining that the key I have is invalid.

If I remove the key from the keystore I get the same error. It's as if it's not even loading the key, which has got me wondering how does the app / container know which key I need

My connection code looks like this:

public class SSLSocket {

private static Logger logger = LoggerFactory.getLogger(SSLSocket.class);
private ConnectionProperties connectionProperties;

public TuSSLSocket(ConnectionProperties connectionProperties) {
    this.connectionProperties = connectionProperties;
}

public SSLSocket getSSLSocket() throws Exception{
    SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
    SSLSocket socket = (SSLSocket) factory.createSocket(connectionProperties.getHost(), connectionProperties.getPort());
    socket.setSoTimeout(90000);

    return socket;
}

}


I set the Host and Port accordingly, but no where do I say go look for this alias in the keystore. So... how does the app know what alias to grab?
