Windchill System Administrator's Guide
Windchill System Administrator's Guide
Windchill System Administrator's Guide
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
system to be considered available. This process could be viewed as a <strong>Windchill</strong><br />
daemon since it must be running at all times.<br />
Running more than one server VM is not a requirement of the Java architecture.<br />
<strong>Windchill</strong> implements this architecture for reasons of reliability and scalability.<br />
Allowing for multiple method servers reduces the risk of a single VM being<br />
unable to fully use high-performance multiprocessor hardware when contention<br />
for shared resources within a single VM becomes a limiting factor. By allowing<br />
multiple processes, the system itself can scale beyond the capacity of the<br />
individual VMs to handle high transaction rates.<br />
For example, if a given type II (native method) JDBC driver implementation<br />
began to show synchronization bottlenecks at some number of concurrent DB<br />
transaction threads, a second method server could double the system's capacity for<br />
concurrent transactions.<br />
This architectural feature also addresses reliability because the method servers,<br />
unlike the server manager, will execute customized Java code developed by non-<br />
<strong>Windchill</strong> programmers. Although the Java VM provides a very reliable, threadsafe<br />
environment, which makes it difficult for errant code to affect other threads,<br />
instability can be introduced in the form of memory consumption or resource<br />
deadlocks. Further, method servers may use native (non-Java) libraries for<br />
database interfaces or other application-specific interfaces. These native libraries<br />
can contain bugs that introduce instability into an entire VM. By keeping the<br />
<strong>Windchill</strong> system daemon (server manager) and instances of method servers in<br />
separate VMs, individual method servers can terminate without making the<br />
<strong>Windchill</strong> system unavailable or losing user validation information.<br />
Performance concerns are addressed by minimizing the interprocess<br />
communication required between the method servers and the server manager, and<br />
between clients and the server manager. After clients use the server manager to<br />
bind to a method server once, they call that method server directly. If that method<br />
server later becomes unavailable (terminates), automatic exception handling<br />
transparently rebinds the client to a new one.<br />
RMI Bootstrap Registry<br />
<strong>Windchill</strong> Java clients use Java RMI to communicate with <strong>Windchill</strong> servers. To<br />
use RMI, a client must first obtain a reference to a remote object on which it can<br />
invoke methods. The Java RMI runtime initiates this operation by using the<br />
concept of a bootstrap registry object, which clients have a built-in ability to<br />
construct. This allows them to invoke lookup operations on the registry and<br />
receive other, references to remote objects.<br />
To reduce the complexity of the system as well as reduce the number of network<br />
connections between clients and servers, <strong>Windchill</strong> runs its own registry object in<br />
the server manager, using a configurable port number. The only object registered<br />
in this registry is the local server manager implementation. Other Java RMI<br />
applications do not share this registry, and <strong>Windchill</strong> does not depend on any<br />
registry that other Java RMI applications may be using.<br />
<strong>Windchill</strong> Runtime Environment A-11