CorbaWeb: A Generic Object Navigator
Philippe Merle
Christophe Gransart
Jean-Marc Geib
Laboratoire d'Informatique Fondamentale de Lille - URA CNRS 369
Université de Lille 1, Bat M3
59655 Villeneuve d'Ascq Cedex - France
Phone: (33) 20 43 47 21
Fax: (33) 20 43 65 66
Email: {merle, gransart, geib}@lifl.fr
WWW and Objects
- WWW is the "killer application" of the 1990s
A user-friendly uniform interface to access any distributed resource
- WWW can be seen as an Object-Oriented Operating System:
- A uniform naming with the Uniform Resource Locators
- Persistent objects implemented via http daemons and their host file systems
- An invocation meta-protocol
through HTTP and a set of basic operations (GET, POST, ...)
- Extensibility via the Common Gateway Interface protocol
- But
- A same single "object interface" for all Web document resources
- Other non standard Web resources are accessed by specific CGI programs
- Then
- WWW needs a Uniform Object-Oriented Model to support
new kinds of resources
CorbaWeb Overview
CORBA as a Uniform Object-Oriented Model
- Web resources are implemented by CORBA objects
CorbaWeb Environment
- Integration between WWW and CORBA worlds
- A generic gateway between WWW server side and CORBA objects
- Representation, navigation and invocation on any CORBA object
even if they are not designed for WWW
Main features
- Object-Oriented Programming from CORBA
- Hypermedia navigation from the WWW
Common Object Request Broker Architecture
- A unified architecture for distributed application integration
using object technologies (OMG)
- Interoperability (hardware and software)
- Component portability and reusability
- A client/server object-oriented middleware
- A component description language (IDL)
- ORB, an open support: multi-languages, several object adapters
- A dynamic environment:
- Interface Repository to discover IDL definitions modelized by objects
- Dynamic Invocation Interface to dynamically invoke object operations
OMG-IDL
Reuse of Current Technologies
Object-Oriented Programming from CORBA
- The Interface Definition Language to specify Web resources
- The Common Object Request Broker Architecture to support Web resources modelized by objects
Hypermedia Navigation from the WWW
- Web browsers as a single uniform user interface to navigate through objects
- The Uniform Resource Locators to access objects and to apply operations on them
- The HyperText Markup Language to describe the object state and
generate Graphical User Interfaces on objects
Current Implementation
- CGI in Web servers as a gateway between the Web and objects
CorbaWeb Architecture
- Scripts are written in CorbaScript language
- CorbaWeb Repository contains meta information
- Meta scripts allow invocation, navigation and representation of any object
CorbaScript: A New CGI Language
Computer Example
Design a prime service for WWW
- Design IDL Interface (computer example)
- Implement the object server
- Construct an HTML page with forms
- Program the CGI to use the service
Step 3: Construct an HTML Page with Forms
Step 4: Program the CGI Script with CorbaScript
#! /usr1/bin/cwsh
echo "Content-Type: text/html\n\n<HTML>\n"
$computer := computer(my_computer:computerSvr:blanche)
if $QUERY_STRING = "is_prime" then ... invokes computer and displays result ... end
if $QUERY_STRING = "prime_numbers" then
$result := $computer.prime_numbers($number)
echo "The prime numbers less than the number " , $number , " are\n<P>\n"
echo $result
end
if $QUERY_STRING = "decompose" then ... invokes computer and displays result ... end
echo "</HTML>\n"
From Scripts to Meta Scripts
- CorbaScript allows any operation invocation on any CORBA object
- The problem:
- integration of a new service requires to program a new CGI script
- integration of millions of object types requires a plethora of CGI scripts
- The solution: the meta scripts
- Definition of generic actions on CORBA objects
- These scripts take parameters like object references or scripts
- They apply meta operations on these parameters such as
an object browsing or a script execution
- Scripts and meta scripts are written with CorbaScript language
Meta Scripts
Exec Meta Script
- Allows a user to invoke operations on any object from a Web browser
- Takes a script as parameter and executes it
Interface Meta Script
- Generates an HTML document representing object IDL interface
- Takes an object reference as parameter
- Accesses the Interface Repository to retrieve all
operations and attributes of the object interface
- Automatically generates forms for each operation or attribute
When an operation takes parameters, it generates HTML input text fields
- The action of each form refers to the Exec meta script
Interface Meta Script Example
Invocation of "Prime numbers less than ..."
Result:
HTML Representations of IDL Values
View Meta Script
- The meta script View represents the object state according to a user's profile
- Takes two parameters: an object reference and a user's profile (1)
- It retrieves from the CorbaWeb Repository the appropriate view script according to the object type and the profile (2)
- It executes the retrieved script (3)
- As a result (4), the retrieved view script:
- calls IDL features to read the object state
- generates an HTML document presenting the object state
A French Hospital Information System
- Only described by IDL interfaces
- Implemented with C++ or database
Browsing the Hospital Object
Browsing the Radiology Department
Browsing a Checkup Instance
Browsing an X-ray Instance
Conclusion
CorbaScript:
- An interpreted scripting language
- Built upon the Dynamic Invocation Interface and the Interface Repository
- Access every service described with IDL
CorbaWeb:
- Integration of WWW and Corba worlds (via a generic gateway)
- New WWW services designed with objects
- Meta scripts
- Apply meta operations on objects (Interface, Exec, View meta scripts)
- VRML documents could be generated by a VRML meta script
to navigate in 3D objects
- WWW + CorbaWeb + Corba = A Generic Object Navigator
- Current implementation on Orbix 2.0