04.12.2012 Views

Windchill System Administrator's Guide

Windchill System Administrator's Guide

Windchill System Administrator's Guide

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!