Here are a few but "not comprehensive" differences between OC4J in a standalone configuration, and OC4J in an Oracle Application Server configuration.
[For comprehensive information, please refer to the "Introduction to OC4J" chapter in the "OC4J configuration and administration Guide"
Properties of OC4J in a Standalone configuration
1) Minimal set of components including J2EE and web services.
2) Comes with EM for administration
3) Can also be configured througth ant tasks or admin_client.jar
4) Available as a single zip file.
5) No backup, restore or disaster recovery capabilities
6) Comes with a builtin OC4J web server
7) Can be started using oc4j script or through oc4j.jar.
for e.g. to startup the standalone oc4j instance,
use oc4j -start or java -jar oc4j.jar.
To shutdown, use oc4j -shutdown or java -jar admin_client.jar <args>. or java -jar <admin.jar> <options>
Properties of OC4J in an Oracle Application Server configuration
1) one or more OC4J Instances in an OAS cluster.
2) Comes with EM for admiinistration
3) Comes with a full fledged HTTP Server
4) Comes with opmn for starting/stopping/monitoring components like oc4j, http server.
5) comes with ONS for managing communication between components in the app server.
6) Allows for load balancing across group of OC4J Instances in a cluster. [communication between objects in the cluter is provided through ONS]
7) Can be administered through
a) EM
b) ant tasks
c) admin_client.jar
d) admin.jar
8) Backup, restore and disaster recovery capabilities available
9) web communications managed through OHS as the front-end listener. OHS passes incoming HTTP requests to mod_oc4j module, that dispatches the request to the approrpaite OC4J Instance using AJP at a configured port.