Flashcards in m362glossary Part 1 Deck (368):
Deliberately stop something that has started.
Aborted (transaction state)
The state a transaction is in after it has been rolled back to undo any partially completed actions of the transaction.
A component used by the security manager to check permissions belonging to classes.
The desirable properties of a transaction: atomicity, consistency, isolation and durability.
The phase in two-phase locking in which the locks are gradually acquired, and in which no locks can be released.
action (in a policy file)
In Java, the part of an entry in a policy file that describes the kinds of action that may be performed with respect to some target.
A software model in which the actions carried out by processors are central, as opposed to an object-oriented model where objects are central, or a data- oriented model where data is central.
A data structure storing information about a method call in Java that allows the method to resume after being placed on a stack.
Active (transaction state)
The state a transaction is in as soon as it has started, and in which it remains while executing.
Identifying a particular computer on the internet using either a symbolic address or a numeric address.
A network with dynamic routing and without dedicated nodes like routers and hubs, thereby allowing nodes to easily join and leave the network.
In logging, the name given to the value of a variable after an update is made.
A Java language construct that provides additional information about the class, method, variable, etc. that is being annotated. The information can be used at compile time or at runtime, typically to generate code, enforce additional constraints, or provide extra documentation. Each annotation has zero or more elements, each being a name- value pair.
A block of compiled Java (in bytecode form) that can be downloaded along with a web page and that runs within suitable browsers.
A Java program that can run independently of a browser.
A Java EE client implemented as a Java application, running on the client computer either in its own JVM or in an application client container.
application client container
A software environment for application clients that takes care of many of the routine requirements of communication, security and so on. In particular, it facilitates access from an application client to remote EJB session beans running on the server.
A domain containing less privileged (non-system domain) classes in a protection domain.
A set of classes, libraries and other software that provides a structure to help construct systems for standard types of application - for example, Apache Struts or JavaServer Faces are web application frameworks.
A kind of firewall providing a proxy service.
application object (CORBA)
A user-defined object in a CORBA application.
The ability to adapt an application to a different platform. The easier the adaptation is the more portable the application is said to be.
application programming interface (API)
An interface provided by a computer system or program library. Services specified in a computer system/library can be made available to and called on by computer programs. The software that provides the functionality described by an API is said to be an implementation of the API.
A server dedicated to running a number of applications.
application service provider (ASP)
An organisation offering access to application software run on centralised servers and accessed over the internet using a browser or specialised client software.
Software designed to carry out a function for the user, e.g. a payroll application or a word processing program (as opposed to systems software like the operating system or middleware).
application-managed entity manager
An entity manager that has to be explicitly created and closed by the application.
A code in which the encoding key is different from the decoding key, but is related to it in a non-trivial way (an example of this is public key cryptography).
See master-slave ownership.
asynchronous message passing
A form of communication in which the sending and receiving processes do not have to be at their synchronisation points at the same time. This form of message passing requires a buffer in order to store messages in the case of the receiving process not being ready to receive the message.
A strategy for replication of data, in which a replicated part is updated some time after the source database is updated.
A semantics of invocation in which the invocation will block and will either successfully receive a result or fail due to an exception, resulting in a synchronous communication.
An indivisible action - that is, either the action happens completely, or it does not happen at all. See also fine-grained and coarse-grained atomic actions.
An extremely accurate timekeeping device, based on the resonant frequency of atoms, usually of the element caesium, and on which official definitions for time units are now based.
Also known as fully synchronised objects, atomic objects are objects which have all their methods declared as synchronized. The data is fully encapsulated and there is no public access to the data fields of the object apart from through such synchronized methods.
A named item of additional data in an HTML tag. It is usually paired with a value, such as method=POST" or type="HIDDEN" where method and type are attributes of the tag and the tag respectively.
attribute (of a scope object)
A data item associated with a scope object in a servlet or JSP page.
An attribute describes the properties of an element.
A practice where potential bidders in a time-limited online auction access the auction for an item just before it closes and submit a bid that is higher than the current highest bid in the hope of securing the item before anyone else can raise their bid.
A record of the activity on a system that can be used to determine what users have done and to assist recovery in the case of an attack.
Capturing a secure record of security-related events for non-repudiation, recovery and proof of effectiveness.
The process of determining a user's or software's identity.
The process of determining what code is allowed to do, according to how it is signed, what code base it comes from or what caller it is associated with (for example, what user invoked it).
The property of a system that can be used when it is needed by an authorised user or application.
The data transfer capacity of a communications link, usually measured for digital communications in units of bits per second.
A process that does not require user interaction.
In logging, the name given to the value of a variable before an update is made.
This kind of relation can be navigated in either direction - both tables/classes in the relation point to each other.
A semaphore used to guard exclusive access to a shared resource.
The association between a name (that must be unique within a certain context) and a resource (file, service, IP address, etc.). Name services store a set of bindings and allow users to create, change and remove bindings.
A protocol for file sharing among peers (in peer-to-peer systems), where a large data file is divided into smaller parts that are distributed among the peers. The peers cooperate by sharing the parts they have received with other peers, such that eventually all peers have all the parts of the original file.
A cipher in which encryption takes place on blocks of plaintext.
A process that is unable to proceed because it is waiting for some event to occur.
When invoking methods, or calling procedures, a process is said to be blocked for the duration of the method call.
A semaphore used for the synchronisation of cooperating processes.
Sending a message to all hosts on a network; normally limited to a local network.
An attack in which possible keys are attempted until a correct one is found.
An area of memory used for communication between processes and devices, allowing the processes or devices to operate at different speeds.
The error that occurs when a buffer is assigned more data than it should hold.
An interface with the session bean methods that a client may call.
Refers to the logic that embodies business rules rather than the view/presentation or storage of data. Typically, this would be the calculations and processes appropriate for the business.
In Java EE systems, the part of the software running on the server that deals with business logic and provides the interface to the enterprise information system (database) tier.
A technique whereby a process repeatedly checks to see if a condition is true such as waiting for keyboard input or waiting for a lock to become available. See also spin lock.
The 'machine code' of the Java Virtual Machine, i.e. the result of compiling a Java program.
The part of the Java Virtual Machine that checks whether the bytecode about to be executed conforms to various requirements.
An area of high-speed memory local to the CPU holding recently accessed data.
cache manager (in a transaction processing system)
The part of the transaction processing system that organises the objects in main memory and interfaces with the persistent storage.
A technique of temporarily storing frequently accessed data in a special area to reduce the time required to gain access to the data.
cascade of aborts
The situation where a transaction has had to be aborted, and this in turn leads to many other transactions having to abort.
The relationship between an event (a cause) and its effect - for our purposes we require a notion of time in a distributed system so that the causes occur at an earlier time than their effects
cell (of a transceiver)
The area that a transceiver covers.
central processing unit (CPU)
centralised computer system
A computer system where all, or almost all, of the processing is carried out at one central location.
An organisation that issues a certificate associating a user with a cryptographic key.
A method of authorisation in which the user is presented with a question or other task whose successful completion helps to determine their identity.
A number used to check the integrity of a message.
A code, a means of encrypting plaintext.
The output of a cipher.
A buffer (data storage area) which is logically said to be circular - when a process gets to the end of the buffer, it can start again at the beginning.
A part of the Java Virtual Machine that loads classes at runtime into the Java Virtual Machine's memory. Java developers can implement their own specialised class loaders.
The fraudulent generation of clicks in order to profit from cost-per-click web pages.
A CORBA object acting in the role of a client in some operation.
An automatic process that causes the browser to reload a web page at regular intervals by including special instructions in the HTML header of the web page.
A software architecture style in which asymmetric roles are assigned to two collaborating processes. One process, the server, plays the role of a service provider which waits passively for the arrival of a request. The other, the client, issues specific requests to the server and awaits its response.
The difference in clock readings between any two hosts in a distributed system.
coarse-grained atomic action
An atomic action implemented by a sequence of fine¬grained atomic actions.
The location of code in terms of its URL.
code on demand
On a request from the client, code is transferred from the server and executed on the client, using the client's resources.
A collision occurs in a hash function when two or more inputs generate the same output.
A protocol to commit transactions. See two-phase commit (2PC) protocol.
Committed (transaction state)
The state a transaction is in after the transaction has completed successfully and all the updates to the data have been made permanent (persistent).
Common Data Representation (CDR)
A set of data types that may be used to represent types in various implementation languages in CORBA interfaces.
Common Gateway Interface (CGI)
A standard for interfacing external applications with information servers, such as HTTP or web servers. CGI programs are stored on the web server and are run by that server in response to particular HTTP requests.
Common Intermediate Language (CIL)
In .NET, the common intermediate language to which all languages are compiled - equivalent to bytecode in Java.
Common Language Infrastructure (CLI)
In .NET, the collection of technologies allowing various implementation languages to run on different platforms.
Common Language Runtime (CLR)
The .NET environment that performs the task of just¬in-time compilation of CIL to a platform-dependent code, and is also responsible for the lifecycle of .NET processes, including garbage collection.
Common Object Request Broker Architecture (CORBA)
The part of the OMG specification commonly known as CORBA, which specifies the properties an ORB must have to be CORBA compliant.
In CORBA, common services are generic services that are useful across applications and domains, including support for printing, mobile agents and internationalisation.
Common Type System (CTS)
In .NET, the CTS defines mappings to and from supported implementation languages and the Microsoft Intermediate Language (MSIL).
The process by which source code is translated into machine code in one operation.
A set of standards describing the characteristics of a type of component, governing the implementation, documentation and deployment of components. Examples of such models are the Java EE framework, EJB and CORBA.
The clients of a computer bureau pay for the computer time needed to run their business software on the bureau's computers - a similar approach to current application service providers, however this idea predates the internet so data transfer was via magnetic disks or tapes.
A system which may have a number of activities active at the same time and allows all of its active activities to make progress.
A mechanism for ensuring that a process is blocked if some condition is not fulfilled (for example, a producer process requires a buffer to be not full for it to be able to proceed).
Used in the operations of a monitor to provide conditional synchronisation.
conditionally thread-safe class
A class that requires some external synchronisation to achieve thread safety. For example, individual accesses may not need external synchronisation, but a sequence of them might.
The property of a system that ensures that data is visible only to authorised users.
Two operations A and B are said to be conflicting if, starting from some initial state, the result of executing A then B is not the same as the result of executing B then A. Also known as non-commutative operations.
A sensible state for a system as a whole (or the individual objects within the system) to be in, such that it conforms to a given specification. It usually refers to the values that are held by the variables in the system and whether these are within the range as set out by the specification.
An environment used to deploy a component, for example a Java EE or CORBA component and providing services to that component such as support for security and transactions.
container-managed entity manager
An entity manager that is implicitly created and closed by the Java EE infrastructure. By default, the entity manager automatically creates and commits transactions on method calls and returns.
A situation in which multiple threads are attempting to obtain the same resource.
A record of the condition of a process at a point in time, that is, the internal state of the process (not to be confused with process state, which is a categorisation of the process at a higher level).
The ability for hardware to detect the current environment and for software to adapt to it.
The saving of the context of one process and the loading of the context of another.
The act of performing a context switch.
An item of text that a web server may send to a client web browser as part of its response to an HTTP request. The web browser stores the cookie text, usually in a small disk file. This has many uses, such as making it easier for users to log in to a site they have visited previously or helping to maintain session information.
Multitasking that is dependent on processes voluntarily ceding way to each other from time to time.
Multithreading that is dependent on threads voluntarily ceding way to each other from time to time.
Coordinated Universal Time (UTC)
The international standard time based on atomic clocks.
In the two-phase commit protocol for distributed transactions, the process that oversees the activities of other participating processes, each of which is dealing with only part of a transaction.
In CORBA, software implementing the CORBA specification is said to be CORBA compliant.
Services that are often needed in distributed applications, such as support for naming, transactions and security. See service.
A flexible thread-coordination mechanism that makes one group of threads wait for each of N other threads to reach a certain point in their execution, with N being the initial value of the latch's counter.
A semaphore used to control access to shared resources - may be used for any number of resources.
The extent to which an application is supported in recovering from system crashes.
Security information associated with a subject, such as keys or passwords.
A sequence of instructions that access shared data.
A compiler that will allow the creation of compiled code for a platform other than the one on which the development is undertaken.
The science of decoding ciphers.
cryptographic hash function
A hash function with desirable properties for applications in security.
A cryptographic facility provided by implementers of services for Java's cryptography API, such as ciphers, message digests and digital signing.
The science of ciphering.
A user-defined JSP tag in XML format that specifies some sort of action to be carried out by the JSP page - it actually invokes some Java code from a custom tag library.
See custom action.
A thread that runs without interaction and which the JVM does not have to wait for when exiting.
Dividing the data resources of a system and storing them on several servers which are distributed. Each server is responsible for maintaining its own partition.
Duplication of data and the storing of data on one or more servers, (possibly distributed), such that multiple backup copies exist.
The amount of data that a device can handle at a time.
In computing, a structured collection of records or data that is stored in a computer so that a program can consult it to answer queries.
The implementation details of a particular database are handled by the database driver for that database.
database management system (DBMS)
The computer program used to manage and query a database.
Literally, data about data. For example, data about the vendor of the database system and data about the way the database records are stored.
A software model in which the focus is on data, and where actions are triggered as a result of data being exchanged. See also action-oriented model.
In a concurrent system, a situation in which two or more processes or devices are prevented, for all time, from continuing because each is waiting for one of the other processes, or for a resource that will never become free.
Converting ciphertext to plaintext.
Using an XML deployment descriptor file to delegate authorisation checks to a container.
A technique whereby an object automatically obtains a reference to a resource it depends on. An example is the dependency injection of entity managers into session beans by the EJB container.
The placing or installing of software on a target system so that it is ready to run. This process typically involves some configuration steps to tailor the software to the specific organisation, users, or application domain - for example, to specify location-specific information, such as a list of local users permitted to access the software, and the name of the local database.
An XML file (automatically generated by IDEs) that defines the internal structure of each Java EE module and allows the setting of a number of attributes of the module, such as transaction behaviour, security settings, etc.
A piece of hardware that can interact with a device independently of a system processor.
A piece of software used to communicate with a hardware device.
An electronic means of associating a user with a key.
An electronic means of signing a communication.
Having an electronic signature.
directed acyclic graph (DAG)
In graph theory, a graph with nodes and edges, where each edge has a definite direction (going from one node to another). The graph has no cycles, meaning that there is no path from a node that leads back to itself.
directionality (of a relation)
The attribute of a relation that states whether it is unidirectional or bidirectional.
A JSP element such as page, include or taglib that provides information to the JSP container about the page, and affects how the JSP compiler generates the servlet that implements the JSP page.
An extension to a name service that allows resources to have attributes and to find resources that match given attribute values. LDAP is a widely used directory service protocol.
A dirty read occurs if a transaction reads values that are written by another transaction that has not committed yet.
A component whose job it is to store details about services that are available on a network and respond to client requests for information about those services.
See short-term scheduler.
distributed object paradigm
An extension of the object-oriented paradigm to a distributed setting, in which local objects and remote objects are treated in the same way and have the same capabilities.
A system containing a number of distinct components at different locations, where each component is, in some sense, a computer system itself and the components are linked by a network. The system may demonstrate transparency to varying degrees.
The requirement that users can remain unaware of some of the complexities of operating in a distributed setting.
A problem-solving strategy that breaks down a problem into subproblems of the same or similar type, continuing the process until the obtained subproblems are simple enough to be solved directly.
Document Object Model (DOM)
A platform-independent XML validation standard defining how to read and manipulate an HTML or XML document as an object representing a tree data structure, and providing random access to XML elements.
document type definition (DTD)
A DTD describes valid element types for a particular type of XML document (having a particular root element) and the relationships of the elements to each other.
Domain Name Service (DNS)
An example of a name service: it looks up internet domain names and returns the corresponding IP addresses.
A set of classes with the same permissions.
CORBA services that are needed within particular application domains, such as medical or financial systems.
The absolute deviation of a clock from perfect time (in seconds or a fraction of a second).
The clock deviation per unit of time (usually per second), such as typical computer hardware clocks' drift rate of between 10-5 and 10-6 seconds per second.
A computer terminal with very little local processing power - simply a screen and keyboard together with some simple communications links.
Dynamic Invocation Interface
In CORBA, this interface allows a client to bypass a stub and interact directly with an ORB's services.
Dynamic Skeleton Interface
In CORBA, this interface allows a server to dynamically create a new interface.
A semantic markup of text, approximately equivalent to a type.
A computer system that is physically part of a larger system (often a real-time system) and may monitor or control the system of which it forms a part.
An approach to network security in which the sending and receiving nodes of a message implement encryption and decryption using a shared key.
Enterprise JavaBeans (EJB)
The component model used by Java EE. There are three kinds of component: session beans and message-driven beans encapsulate business logic, servicing requests from clients; entities encapsulate the business data.
Enterprise JavaBeans (EJB) container
The runtime infrastructure, usually part of a web server, that supports execution of EJBs.
A large organisation, such as an industrial company, a bank or a government department.
Software that runs on enterprise systems.
A computing system suitable for the requirements of an enterprise.
An instance of an entity class (see below), that is, an object that corresponds to persistent data in a relational database.
Part of the generic Java Persistence API, which allows Java programs to interact easily with relational databases. An entity class usually just holds data and may provide business logic, although the latter is usually delegated to session beans. Entity classes must be annotated with @Entity.
A runtime object that manages the lifecycle of entities, allowing them to enter or leave the persistence context, to be stored in or removed from the database.
The code that must be executed by a process prior to entering its critical region - it is designed to prevent the process from entering its critical region if another process is already in its associated critical region. An entry protocol together with its associated exit protocol should ensure mutual exclusion.
A model in which an object can generate certain events, and when such an event occurs, it publishes a notification. The notification can be picked up by the objects that subscribed to this event.
A Java thread that can be used to respond to events in GUIs.
See write lock.
The code that a process must execute immediately on completion of its critical region to ensure that other waiting processes may now enter their associated critical regions. Together, entry protocols and exit protocols are designed to ensure mutual exclusion.
Growing according to an exponential relationship; that is, according to a power of a number.
export (a remote object)
To make the remote object available so that it can accept incoming calls from clients.
extended persistence context
A persistence context that has the same lifetime as an entity manager. This is the only possible setting for application-managed entity managers.
eXtensible Markup Language (XML)
A form of semantic markup of text similar to HTML.
external synchronisation (time)
Keeping a clock accurate by regular comparisons with a more accurate external time source, such as a close approximation to UTC.
external synchronisation (threads)
Synchronisation done by the callers of methods as opposed to internally by methods themselves.
externally visible effect
Any communication that an operation may have with another process, user or storage device.
The construction of false or unauthorised information.
A method that creates objects. Typically, a factory method is a static method that hides the concrete class of the returned object: the client knows only which interface the object implements.
Failed (transaction state)
The state a transaction is in when the discovery is made that normal execution cannot proceed.
An operation that fails as soon as it detects some violation to consistency invariants. For example, iterators over pre-Java 1.5 collections throw an exception as soon as they detect that another thread is modifying the collection.
A form of atomicity, also known as all-or-nothing atomicity, which is one of the properties of a transaction. It refers to the fact that if there is some kind of failure which causes a part of the transaction not to be completed, then the entire transaction should be rolled back.
Another term for crash resilience, referring to a system's ability to create the illusion that a failure never happened.
Fairness is concerned with guaranteeing that a process will be given the chance to proceed, regardless of how other processes behave.
See thick client.
Software that runs on the client machine of a client-server system to provide a considerable degree of functionality, such as a complex user interface and significant client-side processing.
The ability of a system to respond gracefully to an unexpected hardware or software failure. By 'gracefully' we mean that if a system's operating quality decreases at all due to a failure, the decrease is proportional to the severity of the failure. This is in contrast to a naively designed system in which even a small failure can cause total breakdown.
A system that can continue normally (or perhaps with reduced functionality) after a hardware or software error has occurred.
A class of interrupt caused by hardware failure.
The cycle by which the next instruction to be executed is retrieved and completed by a CPU.
fine-grained atomic action
An atomic action implemented directly by an indivisible machine instruction.
A technology to filter internet traffic between a local and external network.
A column that uniquely refers to a record in another table.
Slicing a database into different fragments, such that each part is stored in different physical areas of storage.
fully synchronised objects
See atomic objects.
A runtime technique to free the memory occupied by objects that are no longer used. The Java Virtual Machine specification does not impose any specific garbage collection algorithm.
Data that has been associated to a physical location, e.g. the address of a restaurant is geotagged with the latitude and longitude of its location.
Global Positioning System (GPS)
A satellite system that sends continuous radio signals, thereby enabling a receiver on the Earth to compute its latitude and longitude.
A common value of the current time in a distributed system, in the sense that all hosts have perfectly synchronised clocks (an ideal that cannot be achieved).
A transaction that accesses and updates data in several databases (contrast with local transaction).
granularity of a lock
A design consideration for algorithms based on locks, regarding the size of the object that needs to be locked.
A thread that is not visible to the operating system and has to be created, scheduled and terminated by the Java Virtual Machine.
A way of harnessing the power of many computers distributed across the internet to solve problems requiring great processing power.
A collection of authenticated users.
A method invocation is suspended until a condition (i.e. guard) holds. Equivalent to condition synchronisation.
An unauthorised user of a system.
An exchange of information to establish parameters for communication.
A one-way function that maps an input to a small output.
A dynamically allocated area of memory used to store objects in the JVM.
Programs running on different computers with different operating systems, data representations and programming languages.
Middleware in which no assumptions are made about a shared language or whether all parties are running on the same platform. CORBA is a heterogeneous form of middleware.
A system implemented using more than one kind of computer, operating system or communication protocol and particularly using more than one programming language.
hidden form field
A parameter in a web form defined using an tag with the attribute value type=HIDDEN which means it is not displayed by the browser."
hierarchy of trust
The relationship in which one or more parties place trust in other parties to perform authentication.
Middleware in which all parties are assumed to be implemented in the same language and running on the same platform. For example, Remote Method Invocation is a homogeneous form of middleware, in that it assumes that the whole system runs within the Java Virtual Machine environment and that one single programming language (Java) is used throughout.
An attack using social engineering in which a name similar to another is used to try to deceive a user.
An individual component of a distributed system that has some processing capability.
The first part of an HTTP request or response preceding the body of the request or response. A response header includes information such as the number of bytes and the type of content returned, while the body typically contains web page content or other requested resource.
A secure HTTP protocol that uses encryption to protect information sent across the Web.
The class of interrupts concerned with input and output events.
An operation that can be safely repeated because execution of the operation should leave the system in the same state - for example, a database query.
A compiler for an interface definition language (IDL).
A thread-safe class whose instances never change once they have been created.
In CORBA, a database used by a server to register information about servant objects and enabling a client to access servant operations.
An object in a component such as a JSP page or a servlet that is already available for access and does not need to be explicitly declared, e.g. a request object.
The state a system as a whole, or the individual objects within it, may end up in as a result of a violation of the specification for that system.
The general technique of using an intermediate layer to facilitate communication between two parts of a system.
The property of information that it has not been altered by an attacker or otherwise corrupted.
Access of information by an unauthorised user.
Used to refer to the commands or operations (methods), including their syntax and semantics, that a software system or component provides to the clients of the system. Through the interface, the software entity presents methods for external communication, and the interface allows the entity to be internally modified without affecting the way outside entities interact with it.
The general term for descriptions of components' message-passing ability in terms of their operation names and parameters.
interface definition language (IDL)
An IDL describes the message-passing ability of components in terms of operation names and parameters and provides a layer of indirection above the component.
A database of interface information in CORBA, similar to the registry in Remote Method Invocation (RMI).
The state that a system is in while it is in the middle of executing an operation. In transaction processing it is desirable that other concurrent transactions avoid seeing the intermediate state of a given transaction.
internal synchronisation (time)
A process where a host compares its clock value with the clocks of other hosts in the same system so that all hosts can ensure they have approximately the same clock time, although this time may differ significantly from the correct (UTC) time.
internal synchronisation (threads)
Synchronisation done by methods themselves as opposed to externally by callers of methods.
Internet Inter-ORB Protocol (IIOP)
A protocol for use in inter-ORB communication in CORBA applications, and providing support for distributed communication.
Internet Protocol (IP) address
The numeric address of a device on the internet.
The property of being usable by other systems, particularly in a heterogeneous system context.
interpreted (programming language)
A programming language where source code is translated to machine code in stages rather than all at once.
A program that executes another program.
A mechanism by which a device or software can signal that an event has occurred.
A technique to allow a currently executing process to complete its execution without interruption.
A software routine responsible for managing interrupts.
interrupt rate limiting
A technique employed by hardware to prevent a flood of interrupts being created.
The condition under which more interrupts are generated than can be dealt with.
An attack preventing availability of a resource.
In a bidirectional relation between entity classes, the class that is not the owning side.
Java Naming and Directory Interface (JNDI)
An API for accessing a variety of naming and directory services from within Java programs in a vendor-independent way.
Downloadable software that can be 'plugged in' to most browsers to provide a standard and up-to-date JVM and runtime environment enabling them to run applets using current versions of Java.
Java Runtime Environment (JRE)
An implementation of the Java Virtual Machine specification, providing an environment supporting the loading and running of Java programs and support from library code.
Java Transaction API (JTA)
A standard Java interface for demarcating transactions.
Java Virtual Machine (JVM)
A virtual machine defined mainly with the execution of Java programs in mind. The Java Virtual Machine is a specification, and there are many implementations of it, optimised for different platforms or Java editions.
An object of a Java class with the following characteristics: a zero-argument constructor, getter methods for every readable property, setter methods for every writeable property, must be serialisable. JavaBeans are useful in web applications for storing, or transferring, data between servlets (and JSP pages).
An MVC application framework for use in constructing web applications.
JavaServer Pages (JSP)
A technology that facilitates creation of web pages with JavaServer Pages pages.
JavaServer Pages page (JSP page)
A web page with both static and dynamic components that can be used to dynamically generate a web page in response to an HTTP request. These JSP pages are complementary to servlets and may be more convenient for web designers as they can be created without Java programming. See also JavaServer Pages (JSP).
An API for the Java programming language that defines how a client may access a database.
A JSP page which uses only XML-style tags, hence allowing the JSP page to be manipulated and validated by XML tools.
A JSP element containing a Java expression that produces a value; this value will be displayed as part of the output (different from the JSP expression language since a JSP expression uses Java syntax directly).
JSP expression language
A language for use in JSP to write expressions that access JavaBeans components and a number of implicit objects - an alternative to using Java programming fragments.
JSP Standard Tag Library (JSTL)
A JSP tag library forming a standard part of the Java EE that contains a number of commonly used sub-libraries (such as the core library, for flow control, and libraries containing tags facilitating XML processing, internationalisation and SQL database access).
An element in a JSP page, enclosed in angle brackets, that is part of specifying the dynamic content of the page - the three main categories of JSP tag are directive, scripting and action.
JSP tag library
A collection of Java code that carries out the actions associated with JSP tags, especially custom tags, hence relieving JSP developers of much of the need for Java programming in the JSP pages. The most commonly used tag library is the JSTL
just-in-time (JIT) compilation
A technique to compile a sequence of virtual machine instructions into machine code as the sequence is being executed.
A value used to encrypt plaintext or decipher ciphertext.
The set of keys associated with a cipher.
The generation of changing keys for the encryption of data in a stream cipher.
In general, the delay between the time an activity is initiated and the time its effects are noticed. In the concrete case of networks, it is the time taken for messages to be transmitted from one host to another.
A layer of software in which implementation details are hidden and where the functionality of the layer can be invoked through a well-defined interface.
A term used to describe the behaviour of those peers in a peer-to-peer system that cause a drain on the overall system - they wish to benefit only from the system and do not participate in helping other peers.
A software system that is still required because it meets some useful purpose for an organisation. It is not considered to be replaceable and so is maintained, usually on a restricted budget.
One of several methods that are defined for all servlets to deal with initialisation, handling requests or final clean-up.
Growing according to a linear relationship, that is, by a constant factor for each fixed change in input.
An approach to network security in which each node implements encryption and decryption, each communicating pair using a different shared key.
The stage at which classes are incorporated into the runtime state of a virtual machine.
A situation where a process is continually executing an operation without getting nearer to a condition becoming true.
This property asserts that a program must make some form of progress, and not come to a halt or run indefinitely without achieving its goal. See also safety.
Balancing the load (the amount of work) in order to avoid having one component doing all the work, while other components remain idle.
loading (Java Virtual Machine)
The stage at which classes are located and checked.
local area network (LAN)
A computer network where all the hosts are physically close together, often in the same building, and normally entirely controlled by one organisation or department (in contrast to a WAN).
The clock giving a time value in a particular host in a distributed system - typically local clocks show different values from each other.
In distributed communication, an object whose methods can be invoked only by a local process.
A process that runs on the machine on which the objects it is dealing with reside.
A transaction that accesses and updates data in a single local database (contrast with global transaction).
The ability to manipulate remote objects in the same way as local ones.
A mobile system that can take advantage of satellite location services (such as GPS) to determine its location and hence adapt its behaviour depending on its physical location.
A file or object is said to be locked when processes are prevented from accessing it (usually because another client/process is accessing it). In Java, each object has a lock.
The place in which logging information is recorded. The log is stored in stable storage.
The process of recording the new value and the old value and the name of a transaction so that the persistent store can be rolled back to the previous state. A log will also contain information indicating the start of a new transaction, the number of update records and the fact that the transaction has committed. Log information must be written before the data in permanent store is changed.
The ability of a software component to change host.
A system of recording time values so as to ensure that the order of events is consistent with causality - i.e. that the cause of an event (such as sending a message) occurs at an earlier logical time than the event itself (the arrival of the message).The time values are not normally related to the actual time shown on local or external clocks.
A process scheduler that controls the admission of new processes to a system to achieve a desirable mix of runnable processes.
The part of a discovery service used by clients to ask for information about registered services. The discovery service can then enable clients to choose between various services, or it can choose a service for them.
A loosely coupled component is insulated from changes in another component due to the presence of a layer of indirection between them.
lost update problem
The situation arising when an update made by one process may be overwritten by another process (and hence lost). This occurs if uncontrolled access to a shared resource has been allowed.
Platform-dependent, CPU-specific, low-level code.
A relationship between two tables or entity classes, in which each record/entity of each table/class is related to zero or more records/entities of the other table/class. Usually, a many-to-many relation can be represented by two one-to-many relations with a third table/class.
The inverse of a one-to-many relation.
Rules for translating from a language to an interface definition language, including specification of the relationships between types in communicating idioms.
The process of taking a collection of data items and assembling them into a form (such as a byte stream) suitable for transmission in a message.
A model of communication in which one device or process (the master) has unidirectional control over other devices or processes (the slaves). For example, in a client-server system, the client is the master and the server is the slave.
Also referred to as asymmetric replication. A style of ownership of data in schemes for replication of data where data is owned by the master site, and only the master site is allowed to make updates to the data.
A process scheduler that manages the swapping of processes to and from secondary storage.
Short-term, rapidly accessed computer hardware for storing data - often, but not always, volatile (losing data if powered off), e.g. RAM.
A special instruction to make local and shared memories consistent with each other.
Loss of memory areas due to mismanagement of memory.
A specification of how and when updates to shared data have to be propagated across different memories and processes.
message authentication code (MAC)
A code used to check the integrity (and in some cases identity) of a message.
A type of EJB component that can be used to implement a message- oriented communication approach between Java EE components.
A reduced size version of a message produced by a hash function.
messaging system paradigm
A form of middleware in which messages are not sent directly from client to server, but go via the messaging system, which acts as the intermediary. The intermediary then looks after the message from that point onwards. Also known as message-oriented middleware (MOM) or the message queuing system. An example is the Java Message Service (JMS).
Data that describes other data. A relational schema is an example of metadata, and so are annotations like @Table.
Microsoft Interface Definition Language (MIDL)
The language used to describe the interface to a .NET object.
An attacker interposed between a sender and receiver in location or time.
The part of a layered distributed system that sits between the client tier and the EIS or database tier. In Java EE it may have two component tiers, the business tier and an optional web tier.
Any software acting as an intermediary between two components, for example client and server components, and particularly software that hides the heterogeneity of components by providing a common interface, thus facilitating interoperability.
An execution unit that moves, together with some code and resources, from one site to another, where it resumes execution.
Code that is transferred from one execution unit to another, where it is executed.
The use of a portable computer with a wireless network connection.
A standard internet protocol for communicating with mobile nodes.
A distributed computer system some of whose components are not fixed in their location, e.g. a mobile phone network.
mode (interface language)
A modifier for a parameter in an operation definition, such as in CORBA's interfaces, describing what may legally be done with the parameter. For example, whether the parameter may be read from, or written to.
Model 1 (web tier)
An approach to web application design in which components may include a mixture of control logic, presentation logic, and sometimes business logic.
Model 2 (web tier)
An approach to web application design which uses MVC to separate each of the control logic, presentation logic and business logic into different components.
A design pattern that structures a system using three categories of component: model, view and controller. The model is the abstraction of all the domain data in the system. The view is the visualisation of the model. The controller is the set of components that manage the communications between model and view.
Unauthorised alteration of information.
So-called Hoare monitors are data structures that provide operations which access encapsulated shared data under mutual exclusion. The concurrency mechanism implemented by the Java language, with use of a lock and synchronised methods, is said to be based on monitors.
A design of computer system in which all, or almost all, the processing is carried out at one central location, e.g. a mainframe computer.
A form of communication whereby the sender sends a message once onto a network where it can be read by many receivers who have previously registered to receive such messages.
An extension of the standard Java socket concept, used to facilitate multicast communication.
"A design of CPU chip with more than one processing unit (or 'execution core') that can improve performance by operating in parallel - the special case of two processing units is called dual-core."
An operation that involves access to several objects. Since a synchronised multi-party operation requires several locks (one for each object in the operation), the programmer should be aware of the potential for deadlock.
multiple readers, single writer
A classic problem (and solution) in the study of mutual exclusion and condition synchronisation, in which only one writer is allowed to write at a time, but multiple readers are allowed to read.
multiplicity (of a relation)
The attribute of a relation that states whether it is one-to-one, one-to-many, many-to-one or many-to-many.
A computer system with more than one CPU - this could mean anything from two CPUs to thousands of CPUs.
Execution of several tasks at the same time, whether by parallel or concurrent processing techniques.
Containing more than one thread.
multithreaded operating system
An operating system that supports multithreaded processes.
A servlet that is expected to handle concurrent requests by running multiple threads if necessary - this is the default behaviour for servlets.
An approach that ensures only one process at a time can access a shared resource.
mutual exclusion protocol
A set of rules (protocol) which, if obeyed by a number of processes that wish to access a shared resource, will enforce mutual exclusion.