Integration with Other Applications > Info*Engine Adapters > JNDI Adapter Guide > Info*Engine Architecture > Interacting with Info*Engine > External Custom Java Applications
  
External Custom Java Applications
By coding a custom application in Java, you can have quick and easy access to Info*Engine without the added complexity of a web server. By using the API defined in the SAK, you can execute Info*Engine webjects, tasks, and other Info*Engine code in the Java Virtual Machine (JVM) where the application resides.
The following diagram shows the SAK and adapter classes being used in the application to access data in a remote database.
Within a Java application, you also have the flexibility of executing Info*Engine tasks that are maintained outside of the application. An Info*Engine task consists of a set of webjects and surrounding code that supports the processing of the webjects. These tasks can then be processed either in the JVM of any Info*Engine server or in the JVM of the application.
The following diagram shows the Info*Engine components that are used when an application executes a task in an Info*Engine server. In this case the application requests that a task be executed in the server that accesses data in a remote database.