# About Derby's Frameworks

A framework is the environment in which Derby runs. The framework in which you run Derby affects how you run applications against Derby.

The frameworks directory contains subdirectories for each framework with supporting files. Depending on the framework, the subdirectory includes:

- bin Subdirectory
  All subdirectories in this directory contain a bin subdirectory that has scripts that serve as examples of how to run some of the basic Derby tools and utilities tailored for the particular framework. For server frameworks, start and stop scripts are also provided.
  To use the scripts for a particular framework, modify the scripts as necessary and put that framework's bin subdirectory first in your path.

For an easy-to-follow example of how to run an application in the two frameworks, see the simple example in the demos directory if your distribution includes it.

For more information about frameworks, see Getting Started with Derby.

## Embedded Framework

An embedded framework is the most basic framework. Derby runs embedded in a Java application. When the application loads the local JDBC driver, it starts up the Derby engine. When the application shuts down, it shuts down the Derby engine. Only a single application can access a database at one time.

The bin subdirectory in frameworks/embedded contains scripts for running some of the Derby tools in an embedded environment. For working in an embedded environment, put the frameworks/embedded/bin subdirectory first in your path.

## Server Framework

A server framework is a continuously running Java application that allows multiple, remote JDBC applications to connect to Derby.

- The Derby Network Server framework

### Derby Network Server

The Derby Network Server is a server framework that comes with Derby. The Derby Network Server works with the DB2 JCC JDBC driver; please read the Derby documentation on the differences between this driver and the embedded driver.

- The subdirectories in this directory contain scripts that serve as examples for how to run Derby tools and utilities as client applications to Derby running inside the Derby Network Server framework. It also contains scripts for starting up the framework.