Transient (computer programming)
In computer programming, transient is a property of any element in the system that is temporary. The term applies to transient applications, i.e. software for the end-user which is displayed with a transient application posture; transient data, which is discarded after it is no longer needed by the computation; and transient code which are subroutines or software components that are loaded in the system only for a fraction of the total run time.
Examples of applications of the term are described below.
In the Java programming language,
transient is a keyword used as a field modifier. When a field is declared transient, it would not be serialized even if the class to which it belongs is serialized. In Java, methods, classes and interfaces cannot be declared as transient.
In Hibernate and other persistence systems, transient describes an object that has been instantiated, but is not associated with a Hibernate session, i. e. the object resides in memory but is not being persisted.
In the X Window System, a window is said to be transient for another window if it belongs to that other window and may not outlast it: a dialog box, such as an alert message, is a common example. This should not be confused with a window containing another window: contained windows lie entirely within their parents, but transients are separate windows which can generally be moved freely around the screen. Transient windows may be treated specially by the window manager, and unlike top-level windows (which can require user placement, as in twm), must never require any user interaction on appearing.
Transient also refers to a module that, once loaded into main memory, is expected to remain in memory for a short time. Today, the term is rarely used, and may be obsolete. The term Overlay is commonly used instead, and refer to a program module that is brought to memory when it is needed by the running program and then replaced with another when it is no longer needed, so a program had lower memory requirements. Program modules were written to allow different modules to share the same memory region and the main program itself was responsible of exchanging modules between disk and memory as necessary.
In the mid-to-late 1960s, mainframe computers, such as the IBM System/360, had memory sizes from 8 KB to 512 KB. In order to conserve memory, transients were small modules that supported a specific task, and were swapped in and out of memory. The operating system for the 360 had two areas reserved for transients that supported input/output operations. These were referred to as the “logical transient area,” and the “physical transient area.” If an application program, for example, needed to use the printer, transients that supported printing were brought into the transient areas. If an application needed to use tape drives, transients that supported tape drive access were brought into the transient areas.
At the level of message passing, transient communication means the way by which the messages are not saved into a buffer to wait for its deliver at the message receiver. The messages will be delivered only if both the systems (sender and receiver) are running. If the receiver is not running at the send time, the message will be discarded, because it has not been stored into intermediate buffers.
- Discover the secrets of the Java Serialization API - article from Sun
- For more detail go to: Jboss.org
- "ICCCM - Client to Window Manager Communication". Tronche.com. Retrieved 2014-03-20.
- William Stallings, Sistemas Operativos, 5th edition (2005), Page 311