This figure illustrates Oracle JDBC driver architecture. The Thin driver communicates from a client to an Oracle9i database through Java sockets, communicating with the SQL engine and PL/SQL engine in the database. The OCI driver communicates from a client to the SQL and PL/SQL engines through the client-side OCI C library. The server-side internal driver is located within an Oracle9i database and communicates directly to that database through the KPRB C library. The server-side Thin driver has similar functionality to the client-side Thin driver, being used to communicate from one Oracle server to another.