JReport Server can run in standalone mode directly as it is installed out of the box or can run as a Windows Service or as a WAR file running in any standard servlet container such as provided by Tomcat, JBoss, WebSphere, WebLogic, and so on. The customers application and users then access the JReport Server across the net either via RMI to servlets from Java application code or JSP page, or via HTTP requests with a URL that directly call JReport's servlets and JSP pages.
This is a common configuration for accessing JReport functionality for small applications. JReport Server is installed in a servlet container, ready to handle requests. The client machine can be simply a browser or be a full web application. It requests JReport functionality by using URLs to JReport servlets and JReport JSP pages running in the JReport Servlet Container. This is the enjoinment when you run JReport Server from the JRServer command line or build a jreport.war and and deploy it to an application server to run in it's own container.
When JReport is embedded into an existing application it is usually run in a separate JVM or a separate server machine. JReport runs as a back end server handling requests coming from the web application server's front end. JReport Servers' JSP pages are moved to the front end machine into the same servlet container or JVM as the application code. The front end web application's Java code runs with version of the Java API that are stubs providing seamless access to the back end methods using RMI (Remote Method Invocation) to call the real Java methods in the JReport Server in the other JVM.