m362glossary Part 1 Flashcards

(368 cards)

1
Q

abort

A

Deliberately stop something that has started.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Aborted (transaction state)

A

The state a transaction is in after it has been rolled back to undo any partially completed actions of the transaction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

access controller

A

A component used by the security manager to check permissions belonging to classes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

ACID properties

A

The desirable properties of a transaction: atomicity, consistency, isolation and durability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

acquire phase

A

The phase in two-phase locking in which the locks are gradually acquired, and in which no locks can be released.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

action (in a policy file)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

action-oriented model

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

activation frames

A

A data structure storing information about a method call in Java that allows the method to resume after being placed on a stack.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Active (transaction state)

A

The state a transaction is in as soon as it has started, and in which it remains while executing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

addressing

A

Identifying a particular computer on the internet using either a symbolic address or a numeric address.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

ad-hoc network

A

A network with dynamic routing and without dedicated nodes like routers and hubs, thereby allowing nodes to easily join and leave the network.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

after image

A

In logging, the name given to the value of a variable after an update is made.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

annotation

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

applet

A

A block of compiled Java (in bytecode form) that can be downloaded along with a web page and that runs within suitable browsers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

application (Java)

A

A Java program that can run independently of a browser.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

application client

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

application client container

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

application domain

A

A domain containing less privileged (non-system domain) classes in a protection domain.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

application framework

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

application gateway

A

A kind of firewall providing a proxy service.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

application object (CORBA)

A

A user-defined object in a CORBA application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

application portability

A

The ability to adapt an application to a different platform. The easier the adaptation is the more portable the application is said to be.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

application programming interface (API)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

application server

A

A server dedicated to running a number of applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
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.
26
application 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).
27
application-managed entity manager
An entity manager that has to be explicitly created and closed by the application.
28
asymmetric cryptography
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).
29
asymmetric replication
See master-slave ownership.
30
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.
31
asynchronous replication
A strategy for replication of data, in which a replicated part is updated some time after the source database is updated.
32
at-most-once
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.
33
atomic action
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.
34
atomic clock
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.
35
atomic objects
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.
36
attribute (HTML)
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.
37
attribute (of a scope object)
A data item associated with a scope object in a servlet or JSP page.
38
attribute (XML)
An attribute describes the properties of an element.
39
auction sniping
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.
40
audit log
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.
41
auditing
Capturing a secure record of security-related events for non-repudiation, recovery and proof of effectiveness.
42
authentication
The process of determining a user's or software's identity.
43
authorisation
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).
44
availability
The property of a system that can be used when it is needed by an authorised user or application.
45
bandwidth
The data transfer capacity of a communications link, usually measured for digital communications in units of bits per second.
46
batch process
A process that does not require user interaction.
47
before image
In logging, the name given to the value of a variable before an update is made.
48
bidirectional relation
This kind of relation can be navigated in either direction - both tables/classes in the relation point to each other.
49
binary semaphore
A semaphore used to guard exclusive access to a shared resource.
50
binding
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.
51
BitTorrent protocol
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.
52
block cipher
A cipher in which encryption takes place on blocks of plaintext.
53
blocked process
A process that is unable to proceed because it is waiting for some event to occur.
54
blocking
When invoking methods, or calling procedures, a process is said to be blocked for the duration of the method call.
55
blocking semaphore
A semaphore used for the synchronisation of cooperating processes.
56
broadcasting
Sending a message to all hosts on a network; normally limited to a local network.
57
brute-force attack
An attack in which possible keys are attempted until a correct one is found.
58
buffer
An area of memory used for communication between processes and devices, allowing the processes or devices to operate at different speeds.
59
buffer overflow
The error that occurs when a buffer is assigned more data than it should hold.
60
business interface
An interface with the session bean methods that a client may call.
61
business logic
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.
62
business tier
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.
63
busy-waiting
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.
64
bytecode
The 'machine code' of the Java Virtual Machine, i.e. the result of compiling a Java program.
65
bytecode verifier
The part of the Java Virtual Machine that checks whether the bytecode about to be executed conforms to various requirements.
66
cache
An area of high-speed memory local to the CPU holding recently accessed data.
67
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.
68
caching
A technique of temporarily storing frequently accessed data in a special area to reduce the time required to gain access to the data.
69
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.
70
causality
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
71
cell (of a transceiver)
The area that a transceiver covers.
72
central processing unit (CPU)
See processor.
73
centralised computer system
A computer system where all, or almost all, of the processing is carried out at one central location.
74
certifying authority
An organisation that issues a certificate associating a user with a cryptographic key.
75
challenge
A method of authorisation in which the user is presented with a question or other task whose successful completion helps to determine their identity.
76
checksum
A number used to check the integrity of a message.
77
cipher
A code, a means of encrypting plaintext.
78
ciphertext
The output of a cipher.
79
circular buffer
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.
80
class loader
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.
81
click fraud
The fraudulent generation of clicks in order to profit from cost-per-click web pages.
82
client (CORBA)
A CORBA object acting in the role of a client in some operation.
83
client polling
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.
84
client-server
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.
85
clock skew
The difference in clock readings between any two hosts in a distributed system.
86
coarse-grained atomic action
An atomic action implemented by a sequence of fine¬grained atomic actions.
87
code base
The location of code in terms of its URL.
88
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.
89
collision
A collision occurs in a hash function when two or more inputs generate the same output.
90
commit protocol
A protocol to commit transactions. See two-phase commit (2PC) protocol.
91
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).
92
Common Data Representation (CDR)
A set of data types that may be used to represent types in various implementation languages in CORBA interfaces.
93
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.
94
Common Intermediate Language (CIL)
In .NET, the common intermediate language to which all languages are compiled - equivalent to bytecode in Java.
95
Common Language Infrastructure (CLI)
In .NET, the collection of technologies allowing various implementation languages to run on different platforms.
96
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.
97
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.
98
common service
In CORBA, common services are generic services that are useful across applications and domains, including support for printing, mobile agents and internationalisation.
99
Common Type System (CTS)
In .NET, the CTS defines mappings to and from supported implementation languages and the Microsoft Intermediate Language (MSIL).
100
compilation
The process by which source code is translated into machine code in one operation.
101
component model
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.
102
computer bureau
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.
103
concurrent system
A system which may have a number of activities active at the same time and allows all of its active activities to make progress.
104
condition synchronisation
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).
105
condition variables
Used in the operations of a monitor to provide conditional synchronisation.
106
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.
107
confidentiality
The property of a system that ensures that data is visible only to authorised users.
108
conflicting operations
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.
109
consistent state
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.
110
container
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.
111
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.
112
contention
A situation in which multiple threads are attempting to obtain the same resource.
113
context
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).
114
context awareness
The ability for hardware to detect the current environment and for software to adapt to it.
115
context switch
The saving of the context of one process and the loading of the context of another.
116
context switching
The act of performing a context switch.
117
cookie
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.
118
cooperative multitasking
Multitasking that is dependent on processes voluntarily ceding way to each other from time to time.
119
cooperative multithreading
Multithreading that is dependent on threads voluntarily ceding way to each other from time to time.
120
Coordinated Universal Time (UTC)
The international standard time based on atomic clocks.
121
coordinator
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.
122
CORBA compliant
In CORBA, software implementing the CORBA specification is said to be CORBA compliant.
123
CORBA services
Services that are often needed in distributed applications, such as support for naming, transactions and security. See service.
124
countdown latch
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.
125
counting semaphore
A semaphore used to control access to shared resources - may be used for any number of resources.
126
crash resilience
The extent to which an application is supported in recovering from system crashes.
127
credentials
Security information associated with a subject, such as keys or passwords.
128
critical region
A sequence of instructions that access shared data.
129
cross-compiler
A compiler that will allow the creation of compiled code for a platform other than the one on which the development is undertaken.
130
cryptanalysis
The science of decoding ciphers.
131
cryptographic hash function
A hash function with desirable properties for applications in security.
132
cryptographic service
A cryptographic facility provided by implementers of services for Java's cryptography API, such as ciphers, message digests and digital signing.
133
cryptography
The science of ciphering.
134
custom action
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.
135
custom tag
See custom action.
136
daemon thread
A thread that runs without interaction and which the JVM does not have to wait for when exiting.
137
data partitioning
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.
138
data replication
Duplication of data and the storing of data on one or more servers, (possibly distributed), such that multiple backup copies exist.
139
data width
The amount of data that a device can handle at a time.
140
database
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.
141
database driver
The implementation details of a particular database are handled by the database driver for that database.
142
database management system (DBMS)
The computer program used to manage and query a database.
143
database metadata
Literally, data about data. For example, data about the vendor of the database system and data about the way the database records are stored.
144
data-oriented model
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.
145
deadlock
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.
146
deciphering
Converting ciphertext to plaintext.
147
declarative security
Using an XML deployment descriptor file to delegate authorisation checks to a container.
148
decryption
See deciphering.
149
dependency injection
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.
150
deployment
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.
151
deployment descriptor
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.
152
device controller
A piece of hardware that can interact with a device independently of a system processor.
153
device driver
A piece of software used to communicate with a hardware device.
154
digital certificate
An electronic means of associating a user with a key.
155
digital signature
An electronic means of signing a communication.
156
digitally signed
Having an electronic signature.
157
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.
158
directionality (of a relation)
The attribute of a relation that states whether it is unidirectional or bidirectional.
159
directive tag
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.
160
directory service
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.
161
dirty read
A dirty read occurs if a transaction reads values that are written by another transaction that has not committed yet.
162
discovery service
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.
163
dispatcher
See short-term scheduler.
164
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.
165
distributed system
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.
166
distribution transparent
The requirement that users can remain unaware of some of the complexities of operating in a distributed setting.
167
divide-and-conquer strategy
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.
168
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.
169
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.
170
Domain Name Service (DNS)
An example of a name service: it looks up internet domain names and returns the corresponding IP addresses.
171
domain
A set of classes with the same permissions.
172
domain service
CORBA services that are needed within particular application domains, such as medical or financial systems.
173
drift
The absolute deviation of a clock from perfect time (in seconds or a fraction of a second).
174
drift rate
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.
175
dumb terminal
A computer terminal with very little local processing power - simply a screen and keyboard together with some simple communications links.
176
Dynamic Invocation Interface
In CORBA, this interface allows a client to bypass a stub and interact directly with an ORB's services.
177
Dynamic Skeleton Interface
In CORBA, this interface allows a server to dynamically create a new interface.
178
element (XML)
A semantic markup of text, approximately equivalent to a type.
179
embedded system
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.
180
end-to-end encryption
An approach to network security in which the sending and receiving nodes of a message implement encryption and decryption using a shared key.
181
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.
182
Enterprise JavaBeans (EJB) container
The runtime infrastructure, usually part of a web server, that supports execution of EJBs.
183
enterprise
A large organisation, such as an industrial company, a bank or a government department.
184
enterprise software
Software that runs on enterprise systems.
185
enterprise system
A computing system suitable for the requirements of an enterprise.
186
entity
An instance of an entity class (see below), that is, an object that corresponds to persistent data in a relational database.
187
entity class
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.
188
entity manager
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.
189
entry protocol
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.
190
event/notification model
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.
191
event-dispatching thread
A Java thread that can be used to respond to events in GUIs.
192
exclusive lock
See write lock.
193
exit protocol
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.
194
exponential
Growing according to an exponential relationship; that is, according to a power of a number.
195
export (a remote object)
To make the remote object available so that it can accept incoming calls from clients.
196
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.
197
eXtensible Markup Language (XML)
A form of semantic markup of text similar to HTML.
198
external synchronisation (time)
Keeping a clock accurate by regular comparisons with a more accurate external time source, such as a close approximation to UTC.
199
external synchronisation (threads)
Synchronisation done by the callers of methods as opposed to internally by methods themselves.
200
externally visible effect
Any communication that an operation may have with another process, user or storage device.
201
fabrication (security)
The construction of false or unauthorised information.
202
factory method
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.
203
Failed (transaction state)
The state a transaction is in when the discovery is made that normal execution cannot proceed.
204
fail-fast operation
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.
205
failure atomicity
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.
206
failure transparency
Another term for crash resilience, referring to a system's ability to create the illusion that a failure never happened.
207
fairness
Fairness is concerned with guaranteeing that a process will be given the chance to proceed, regardless of how other processes behave.
208
fat client
See thick client.
209
fat 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.
210
fault tolerance
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.
211
fault-tolerant system
A system that can continue normally (or perhaps with reduced functionality) after a hardware or software error has occurred.
212
faults (interrupts)
A class of interrupt caused by hardware failure.
213
fetch-execute cycle
The cycle by which the next instruction to be executed is retrieved and completed by a CPU.
214
fine-grained atomic action
An atomic action implemented directly by an indivisible machine instruction.
215
firewall
A technology to filter internet traffic between a local and external network.
216
foreign key
A column that uniquely refers to a record in another table.
217
fragmentation
Slicing a database into different fragments, such that each part is stored in different physical areas of storage.
218
fully synchronised objects
See atomic objects.
219
garbage collection
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.
220
geotagged information
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.
221
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.
222
global time
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).
223
global transaction
A transaction that accesses and updates data in several databases (contrast with local transaction).
224
granularity of a lock
A design consideration for algorithms based on locks, regarding the size of the object that needs to be locked.
225
green thread
A thread that is not visible to the operating system and has to be created, scheduled and terminated by the Java Virtual Machine.
226
grid computing
A way of harnessing the power of many computers distributed across the internet to solve problems requiring great processing power.
227
group (security)
A collection of authenticated users.
228
guarded suspension
A method invocation is suspended until a condition (i.e. guard) holds. Equivalent to condition synchronisation.
229
hacker
An unauthorised user of a system.
230
handshake
An exchange of information to establish parameters for communication.
231
hash function
A one-way function that maps an input to a small output.
232
heap
A dynamically allocated area of memory used to store objects in the JVM.
233
heterogeneity
Programs running on different computers with different operating systems, data representations and programming languages.
234
heterogeneous middleware
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.
235
heterogeneous system
A system implemented using more than one kind of computer, operating system or communication protocol and particularly using more than one programming language.
236
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."
237
hierarchy of trust
The relationship in which one or more parties place trust in other parties to perform authentication.
238
homogeneous middleware
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.
239
homograph attack
An attack using social engineering in which a name similar to another is used to try to deceive a user.
240
host
An individual component of a distributed system that has some processing capability.
241
HTTP header
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.
242
HTTPS
A secure HTTP protocol that uses encryption to protect information sent across the Web.
243
I/O interrupts
The class of interrupts concerned with input and output events.
244
idempotent operation
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.
245
identification
See authentication.
246
IDL compiler
A compiler for an interface definition language (IDL).
247
immutable class
A thread-safe class whose instances never change once they have been created.
248
implementation repository
In CORBA, a database used by a server to register information about servant objects and enabling a client to access servant operations.
249
implicit object
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.
250
inconsistent state
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.
251
indirection
The general technique of using an intermediate layer to facilitate communication between two parts of a system.
252
integrity
The property of information that it has not been altered by an attacker or otherwise corrupted.
253
interception
Access of information by an unauthorised user.
254
interface (component/system)
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.
255
interface (CORBA)
The general term for descriptions of components' message-passing ability in terms of their operation names and parameters.
256
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.
257
interface repository
A database of interface information in CORBA, similar to the registry in Remote Method Invocation (RMI).
258
intermediate state
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.
259
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.
260
internal synchronisation (threads)
Synchronisation done by methods themselves as opposed to externally by callers of methods.
261
Internet Inter-ORB Protocol (IIOP)
A protocol for use in inter-ORB communication in CORBA applications, and providing support for distributed communication.
262
Internet Protocol (IP) address
The numeric address of a device on the internet.
263
interoperability
The property of being usable by other systems, particularly in a heterogeneous system context.
264
interpreted (programming language)
A programming language where source code is translated to machine code in stages rather than all at once.
265
interpreter
A program that executes another program.
266
interrupt
A mechanism by which a device or software can signal that an event has occurred.
267
interrupt disabling
A technique to allow a currently executing process to complete its execution without interruption.
268
interrupt handler
A software routine responsible for managing interrupts.
269
interrupt rate limiting
A technique employed by hardware to prevent a flood of interrupts being created.
270
interrupt storm
The condition under which more interrupts are generated than can be dealt with.
271
interruption (security)
An attack preventing availability of a resource.
272
inverse side
In a bidirectional relation between entity classes, the class that is not the owning side.
273
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.
274
Java Plug-in
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.
275
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.
276
Java Transaction API (JTA)
A standard Java interface for demarcating transactions.
277
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.
278
JavaBean
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).
279
JavaServer Faces
An MVC application framework for use in constructing web applications.
280
JavaServer Pages (JSP)
A technology that facilitates creation of web pages with JavaServer Pages pages.
281
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).
282
JDBC
An API for the Java programming language that defines how a client may access a database.
283
JSP document
A JSP page which uses only XML-style tags, hence allowing the JSP page to be manipulated and validated by XML tools.
284
JSP expression
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).
285
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.
286
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).
287
JSP tag
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.
288
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
289
just-in-time (JIT) compilation
A technique to compile a sequence of virtual machine instructions into machine code as the sequence is being executed.
290
key (cryptography)
A value used to encrypt plaintext or decipher ciphertext.
291
key space
The set of keys associated with a cipher.
292
key stream
The generation of changing keys for the encryption of data in a stream cipher.
293
latency
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.
294
layer
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.
295
leeching
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.
296
legacy system
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.
297
lifecycle method
One of several methods that are defined for all servlets to deal with initialisation, handling requests or final clean-up.
298
lightweight process
See thread.
299
linear
Growing according to a linear relationship, that is, by a constant factor for each fixed change in input.
300
link encryption
An approach to network security in which each node implements encryption and decryption, each communicating pair using a different shared key.
301
linking
The stage at which classes are incorporated into the runtime state of a virtual machine.
302
livelock
A situation where a process is continually executing an operation without getting nearer to a condition becoming true.
303
liveness
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.
304
load balancing
Balancing the load (the amount of work) in order to avoid having one component doing all the work, while other components remain idle.
305
loading (Java Virtual Machine)
The stage at which classes are located and checked.
306
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).
307
local clock
The clock giving a time value in a particular host in a distributed system - typically local clocks show different values from each other.
308
local object
In distributed communication, an object whose methods can be invoked only by a local process.
309
local process
A process that runs on the machine on which the objects it is dealing with reside.
310
local transaction
A transaction that accesses and updates data in a single local database (contrast with global transaction).
311
location transparency
The ability to manipulate remote objects in the same way as local ones.
312
location-aware system
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.
313
lock
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.
314
log
The place in which logging information is recorded. The log is stored in stable storage.
315
logging
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.
316
logical mobility
The ability of a software component to change host.
317
logical time
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.
318
long-term scheduler
A process scheduler that controls the admission of new processes to a system to achieve a desirable mix of runnable processes.
319
lookup service
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.
320
loose coupling
A loosely coupled component is insulated from changes in another component due to the presence of a layer of indirection between them.
321
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.
322
machine code
Platform-dependent, CPU-specific, low-level code.
323
many-to-many relation
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.
324
many-to-one relation
The inverse of a one-to-many relation.
325
mapping
Rules for translating from a language to an interface definition language, including specification of the relationships between types in communicating idioms.
326
marshalling
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.
327
master-slave model
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.
328
master-slave ownership
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.
329
medium-term scheduler
A process scheduler that manages the swapping of processes to and from secondary storage.
330
memory
Short-term, rapidly accessed computer hardware for storing data - often, but not always, volatile (losing data if powered off), e.g. RAM.
331
memory barrier
A special instruction to make local and shared memories consistent with each other.
332
memory leak
Loss of memory areas due to mismanagement of memory.
333
memory model
A specification of how and when updates to shared data have to be propagated across different memories and processes.
334
message authentication code (MAC)
A code used to check the integrity (and in some cases identity) of a message.
335
message bean
A type of EJB component that can be used to implement a message- oriented communication approach between Java EE components.
336
message digest
A reduced size version of a message produced by a hash function.
337
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).
338
metadata
Data that describes other data. A relational schema is an example of metadata, and so are annotations like @Table.
339
Microsoft Interface Definition Language (MIDL)
The language used to describe the interface to a .NET object.
340
middle person
An attacker interposed between a sender and receiver in location or time.
341
middle tier
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.
342
middleware
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.
343
mobile agent
An execution unit that moves, together with some code and resources, from one site to another, where it resumes execution.
344
mobile code
Code that is transferred from one execution unit to another, where it is executed.
345
mobile computing
The use of a portable computer with a wireless network connection.
346
Mobile IP
A standard internet protocol for communicating with mobile nodes.
347
mobile system
A distributed computer system some of whose components are not fixed in their location, e.g. a mobile phone network.
348
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.
349
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.
350
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.
351
model-view-controller (MVC)
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.
352
modification (security)
Unauthorised alteration of information.
353
monitors
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.
354
monolithic architecture
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.
355
multicast
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.
356
multicast socket
An extension of the standard Java socket concept, used to facilitate multicast communication.
357
multi-core
"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."
358
multi-party operation
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.
359
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.
360
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.
361
multiprocessor
A computer system with more than one CPU - this could mean anything from two CPUs to thousands of CPUs.
362
multitasking
Execution of several tasks at the same time, whether by parallel or concurrent processing techniques.
363
multithreaded
Containing more than one thread.
364
multithreaded operating system
An operating system that supports multithreaded processes.
365
multithreaded servlet
A servlet that is expected to handle concurrent requests by running multiple threads if necessary - this is the default behaviour for servlets.
366
mutual exclusion
An approach that ensures only one process at a time can access a shared resource.
367
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.
368
name (or naming) service
A facility that binds names to resources (web servers, printers, databases, etc.) so that clients can locate resources by name instead of having to know their exact location. The RMI registry is an example of a name service, with resources being Java objects.