In a sense, Derby is always an embedded product. You can embed it in an application in which users access the database from a single Java Virtual Machine (JVM), or you can embed it in a server framework (an application that allows users from different JVMs to connect to Derby simultaneously).
When Derby is embedded in an application, the local JDBC driver calls the local Derby database.
When Derby is embedded in a server framework, the server framework's connectivity software provides data to multiple client JDBC applications over a network or the Internet.
For local or remote multi-user connectivity (multiple users who access Derby from different JVMs), use the Derby Network Server. If you require features that are not included in the Network Server, you can embed the basic Derby product in another server framework.