Full text: XVIIIth Congress (Part B4)

  
on the way toward consistent large-scale object 
orientation. But we are also in this transitory stage. The XX 
framework itself belongs to proper object orientation, it can 
address proper objects distributed over a network, but it is 
also suited to control independent server modules 
designed as ComponentWare. 
2.3 Distributed Objects and Hybrid Components 
XX consists of three application-independent components: 
a GUI-component (UX), a graphics-component (GX) and a 
communication- and  system-controlling (supervisor) 
component (SX). All these are written in C++. Existing 
applications or modules (mainly in FORTRAN 77) act as 
"server components” running within separate processes. 
The connection between these server components and 
UX/GX is established by so called agents. These are 
application specific components written in C++. 
The general structure of an application built around XX is 
as follows: 
  
| <--> UX,GX 
Main <--> SX | 
| <--> agents <--> server components 
< C++ > <---- hybrid ----> 
A user action (e.g. a mouse click at some button "ISO") 
results in a message sent by UX to the ISO-specific agent 
which delegates the necessary computation task to the 
relevant server component(s). In a similar way, agents 
communicate among themselves by sending/receiving 
messages, thus composing the product (e.g. some view) 
as requested by the user and as corresponding to the 
current stage of processing. 
Message-passing is controlled by the module SX, and it is 
performed by means provided by it. Message passing is 
asynchronous, so that intensive computation will not block 
the user-interface. 
Message passing is built upon an Object Request Broker 
(ORB) which conforms to the CORBA 2.0 standard of the 
Object Management Group (OMG), an orginazation who's 
aims are the standardization and adoption of object 
technology (all leading companies have joined this group). 
Using an ORB allows for distribution of components on 
different machines in heterogeneous environments. The 
commercially available ORB libraries ORBIX and 
ORBELINE have been tested to build two versions of SX. 
SX supervises the integrity of the running system and 
takes care of proper handling of any failures in it. One of 
its means to do so is to continuously supervise the proper 
closing of message loops. 
2.4 Graphical User Interface 
On the one hand, in the spirit of object orientation, users 
should communicate with the objects visible to them 
directly, and this communication should reflect the state of 
the objects. On the other hand, however, "development, 
and sometimes fashion, do not stand still, ..., further 
changes are following in rapid sequence, considering, e.g., 
the exploding importance of multimedia technology. It is, 
therefore, imperative to separate the GUI from the classes 
to be controlled by it. There is an interface necessary, 
somewhat similar to the resource file statements as 
originally formulated by IBM for the PM. Interpreting such 
statements, the [component UX] can compose the 
graphical user interface to appear on the screen in using 
the latest cross-platform development tools and libraries. 
This way, the user interface can be kept to correspond, 
though with severe compromise, to the fashion of the time" 
[Mo92]. The most recent event to proove this point is the 
appearence of WINDOWS 95 with a new GUI: such 
changes should not enforce re-writing too much code in 
large applications such as SCOP. 
To create a solution for this dilemma took (and still takes), 
indeed, a major sacrifice of capacity in research and in 
programming by this institute. One is forced to be critical of 
the current state of software technology not providing 
proper solutions in this general-purpose realm. (A detailed 
analysis of this dilemma, and an elegant concept for a 
world-wide solution is given in [Co95]). Standards for GUI 
interfacing are plainly missing. 
Here, a very short outlay of our solution follows, useful to 
any thoughtful user of SCOP (or of any other system) 
under XX: 
- The Main module, when started by the user (or by 
some other application) starts the supervisor 
component (SX) of the XX frame, and transmits to it 
the description of the main GUI window of the 
application. 
- SX starts the user interface component UX, and 
transfers to it the description of the main window. 
- UX interprets (at run-time) the description of the main 
window, displays it on the screen, and waits for user 
action(s). 
- According to the user actions, UX sends messages via 
SX to the agents concerned (known to it from the 
description it received from Main). If not yet running, 
SX starts the corresponding agent(s), and passes the 
message(s) to them. 
- In many cases, agents are going to send to UX 
descriptions for subLevels of user communication, e.g. 
to collect parameter or other entries from the user; 
these are then interpreted and displayed by it. - In other 
cases, the agents will compose services of the hybrid 
server modules to products as requested by the user. 
For this, SX will start the corresponding server 
component(s), send it(them) some control information 
(e.g. directives to existing SCOP modules, performing 
the task in the background, running in batch mode). 
- Graphics produced will be sent by the agent(s) to the 
GX component of XX (see below). Error messages, 
summaries etc. will be displayed by means provided by 
UX. 
The rest can be guessed from the above, we hope. 
Specifications for the user interface are written as uxDL 
("user interface Definition Language) statements. uxDL i$ 
570 
International Archives of Photogrammetry and Remote Sensing. Vol. XXXI, Part B4. Vienna 1996 
  
spe 
of 
indi 
fun 
‘nul 
etc. 
adc 
ton 
uxL 
anc 
me: 
in t 
UX 
kee 
The 
doir 
plat 
Dis| 
as | 
plat 
app 
The 
stat 
Stat 
stat 
stat 
func 
data 
man 
disp 
obje 
WIN 
type 
natu 
will ¢ 
to be 
othe 
douk 
the « 
Switc 
This 
they 
itself 
creat 
"runr 
amoi 
meni 
the c 
capa 
choic 
Shac 
as ot 
comp 
state 
(a wii 
in mc 
there 
The «
	        
Waiting...

Note to user

Dear user,

In response to current developments in the web technology used by the Goobi viewer, the software no longer supports your browser.

Please use one of the following browsers to display this page correctly.

Thank you.