m362glossary Part 1 Flashcards Preview

M362 glossary > m362glossary Part 1 > Flashcards

Flashcards in m362glossary Part 1 Deck (368):
1

abort

Deliberately stop something that has started.

2

Aborted (transaction state)

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

3

access controller

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

4

ACID properties

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

5

acquire phase

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

6

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.

7

action-oriented model

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.

8

activation frames

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

9

Active (transaction state)

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

10

addressing

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

11

ad-hoc network

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

12

after image

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

13

annotation

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.

14

applet

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

15

application (Java)

A Java program that can run independently of a browser.

16

application client

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.

17

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.

18

application domain

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

19

application framework

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.

20

application gateway

A kind of firewall providing a proxy service.

21

application object (CORBA)

A user-defined object in a CORBA application.

22

application portability

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

23

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.

24

application server

A server dedicated to running a number of applications.

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.