Publishing Engine Programmer's Guide > Arbortext Publishing Engine and its Components > Technical Overview of Arbortext Publishing Engine > Internal Components of Arbortext Publishing Engine
  
Internal Components of Arbortext Publishing Engine
Arbortext Publishing Engine consists of two major components, the Arbortext PE Request Manager and a collection of Arbortext PE sub-processes. As described earlier, the Arbortext PE Request Manager is a Java servlet; it receives HTTP requests from the servlet container in which it runs and returns a response for each request. Internally, it consists of a number of components that cooperate in processing each request. The Arbortext PE Request Manager is designed to be extensible; users can write custom components that take part in the request-handling process. Such components are called Dynamic Components.
The Arbortext PE Request Manager and its Dynamic Components have little or no knowledge of XML technologies. To import, publish, export, and otherwise manipulate XML documents, the Arbortext PE Request Manager uses separate programs called Arbortext PE sub-processes. Each Arbortext PE sub-process runs in a separate process. The Arbortext PE Request Manager maintains a pool of Arbortext PE sub-processes that are idle, ready to work on its behalf. When, in the course of processing a request, the Arbortext PE Request Manager determines that it needs some document-manipulation function performed, it allocates an Arbortext PE sub-process to do so and waits for the Arbortext PE sub-process to complete its work.
Like the Arbortext PE Request Manager, an Arbortext PE sub-process can be customized. Users can write Arbortext Publishing Engine applications in several languages. These applications run in Arbortext PE sub-processes just as Dynamic Components run in the Arbortext PE Request Manager.