Given by Geoffrey C. Fox, Wojtek Furmanski at NHSE Review Argonne on September 30 97. Foils prepared September 29, 97
Outside Index
Summary of Material
This analyses the "Repository in a Box" or RIB and compares with related web-linked database technologies and the attractions of future CORBA approach |
1. RIB Overview |
2. BIDM by RIG |
3. Possible Next Steps |
4. The Basic Web-linked database models and Other commercial Web-Database products and companies |
5. Example: MOREplus |
6. Software as a Shrink wrapped box or executing code |
7. Flexible RIB Development Strategy |
8. Java/CORBA based Object Web |
9. CORBA Trader - Overview |
10. CORBA Trader - Features |
11. Merging RIB with CORBA Trader |
12. Advantages of CORBA Solution |
13. Some Possible Next Steps |
14. Technical Implementation Issues |
Outside Index Summary of Material
Geoffrey Fox, Wojtek Furmanski |
Syracuse University |
NPAC |
111 College Place Syracuse NY 13244 4100 |
3154432163 |
This analyses the "Repository in a Box" or RIB and compares with related web-linked database technologies and the attractions of future CORBA approach |
1. RIB Overview |
2. BIDM by RIG |
3. Possible Next Steps |
4. The Basic Web-linked database models and Other commercial Web-Database products and companies |
5. Example: MOREplus |
6. Software as a Shrink wrapped box or executing code |
7. Flexible RIB Development Strategy |
8. Java/CORBA based Object Web |
9. CORBA Trader - Overview |
10. CORBA Trader - Features |
11. Merging RIB with CORBA Trader |
12. Advantages of CORBA Solution |
13. Some Possible Next Steps |
14. Technical Implementation Issues |
RIB (Repository in a Box) is a Web software toolkit for setting up and maintaining software repositories. |
Base features of RIB include:
|
RIB is based on IEEE standard 1420.1, the Basic Interoperability Data Model (BIDM), developed by Reuse Library interoperability Group (RIG) |
RIB is a CGI/Perl package set, including the following components: |
Data-Dumper, IO, MD5, libnet, libwww-perl - a collection of standard Perl5 modules for CGI programming, available at the Comprehensive Perl Archive Network (CPAN) at http://www.perl.org/CPAN/CPAN.html |
Isearch/Isite package, available from Center for Network Information, Discovery and Retrieval (CNIDR)at http://www.cnidr.org/ir/isite.html |
Basic RIB package (~6K lines of Perl) developed as part of the NHSE/RIB project and available at http://www.nhse.org/RIB/ |
Reuse Library Interoperability Group (RIG) develops standards for the interoperation of software reuse libraries. |
RIG is chaired by Jim Moore from MITRE and includes some 20 organizations affiliated with DoD, NASA, NIST, software industry (IBM, Fidelity)and one university (NetLib group at University of Tennessee) |
BIDM offers an object-oriented representation of software repositories in terms of Assets, Elements, Libraries, and Organizations objects. |
Software packages or individual routines are represented by Asset objects. |
Assets are created by Organizations, are composed of Elements (typically files) and are located in Libraries. |
Assets are described by a set of (textual string) attributes such as: |
Name, Abstract, Cost, DateOfInformation, Domain, Keywords, Language,Restrictions, SecurityClassification, TargetEnvironment, UniqueID,Version, VersionDate. |
Specific implementations (such as NHSE RIB) can extend RIB classes and contribute new custom attributes. |
RIG specifies also two possible formats for the Web bindings of the BIDM:
|
Meta-files describing individual assets or the whole catalogs(via HTML or SGML formats) can be linked or moved between individual repositories, thereby supporting interoperability.
|
Note that the RIB is "just" a federation of relational databases with a rather simple database structure (a few tables)
|
Current RIB offers adequate solution for the current software repository needs of the HPCC community and the package is in fact used by a growing number of software libraries in the HPCC area such as HPC-Netlib, PTlib, and CSIR. |
To broaden the RIB customer base, one would need to improve the underlying software infrastructure, which is currently based on somewhat dated Web'95 technologies. |
Required improvements include: concurrency control, RDBMS based persistency support, electronic licensing, file/package/repository mirroring and mobility,remote execution support etc. |
Continue current development of a public domain code |
Start including currently available commercial Web-linked database packages
|
Identify and be consistent with new emergent Web industry standards of relevance for software repositories (such as CORBA Trader Service within the emerging Object Web)
|
PERL CGI scripts accessing files in file system (RIB) |
CGI stub accessing Oracle with PL/SQL or directly with oraperl
|
Java Interfaces JDBC 2 or 3 tier (can access free MSQL or "expensive" Oracle)
|
CORBA emerging possibility in the future
|
Client Web Server Database Server |
Traditional approach: C or Perl CGI |
Program invoking RDBMS |
JDBC (Java Data Base Connection) Has 2 tier (no Web server) |
or 3 tier Architecture |
JDBC is set of standard Java Methods to access any database |
"drivers" map generic methods to particular database |
Java code can be at Client (2 tier) Server(3 tier) |
or even on the database (Oracle's Java replacement for PL/SQL) |
One example of using existing commercial solution, recently evaluated by NHSE,is the MOREplus package from MountainNet, Inc. |
MOREplus is commercial version of MORE (Multimedia-Oriented Reuse Environment) software by Johnson Space Center and University of Houston, Clear Lake. |
MOREplus offers support for building repositories of high value information assets (such as software, best practice descriptions, metrics data etc.) |
There are several similarities between the overall organization and user interface in RIB and MOREplus packages. |
Differences include:
|
Cold Fusion http://www.allaire.com/ |
HahtSite http://www.haht.com/ |
NetDynamics http://www.w3spider.com/ |
WebObjects http://software.apple.com/webobjects/ |
TalentSoft Web+ http://www.TalentSoft.com/ |
Speedware Autobann http://www.speedware.com |
PowerSoft's IDK http://www.powersoft.com |
WebBase http://www.webbase.com |
SQLweb http://www.sqlweb.com |
MOREplus is one of many products in the area of Web-Database interfaces. |
It was naturally selected by NHSE for evaluation due to similarity of end-user interfaces in RIB and MOREplus but Web-Database interface to the current RIB can be constructed using many other commercial products. |
On-line Database Magazine lists at http://www.dbmsmag.com/buyguide.html some 900 companies/products in the area of Web/Database interfaces! |
We believe one could easily find many more affordable products than MOREplus. |
We also note that RDBMS systems become truly affordable these days:
|
One can look at software as a "book object" labeled by Author Abstract etc. ---- this is current RIB as a catalog
|
Or one can look at it as a "program object" with methods that can be accessed remotely and both produces answers given data (maybe limited by network performance!) but also provides better re-use through method level documentation
|
Note that Javabeans (with BeanInfo as "book/catalog") and framework/introspection for "program" object) illustrate both these ideas |
In the CORBA model, software is published as a collection of object services, conforming to well-defined interfaces stored in repositories, implementable in a variety of programming languages, and remotely accessible from a variety of platforms and client languages. |
Note that to be precise, only languages that have IDL binding/compiler support can be used directly in CORBA but their list grows and currently includes:
|
Many HPCC packages are not object-oriented but CORBA supports C to IDL bindings which allows to wrap and publish non-object software as a collection of remote objects.
|
CORBA allows one to promote existing Fortran/HPF/C++/MPI etc codes to become well documented components to be used in modern object ComponentWare system |
We suggest that CORBA based repackaging of NHSE HPCC libraries would broaden substantially the market acceptance of this software.
|
So in reviewing future directions for RIB we find a strategy involving the combination of two approaches |
Firstly we need to update technology implementation of RIB while we add requested functionality's
|
This RIB technology evolution will be performed in context of an architecture that incorporates future changes coming from commercial software industry and from growing use of distributed object (CORBA) technology. |
Note OSTP is about to start a new "Advanced Distributed Learning" ADL initiative based on distributed objects
|
Web software industry, led by an alliance of IBM, Netscape, Oracle and Sun, is now developing new object based infrastructure for Internet and Intranet,typically referred to as the "Object Web" and integrating:
|
Object Web will probably bring soon the associated software repository, catalog/yellow page and trading services. |
We suggest that NHSE should study these new technologies (most notably, CORBA Trading Service to be described) in making decisions on the next steps of the RIB evolution. |
Indeed, CORBA is already a de facto industry standard for distributed computing as developed by an open consortium (OMG) of some 700 companies |
We discuss here one Object Web repository technology - CORBA Trading Service - recently published by OMG as one of the (fifteen)Common CORBA Services. |
CORBA Trader or Trading Service acts as a yellow page service for CORBA objects, allowing publishers to advertise their services and customers to shop for the best, most adequate implementations of required functionality's. |
Early implementations of the Trader Service have started to appear on the ORB market. |
By the end of '97, most major ORB vendors (DEC, IBM, Sun, HP, IONA, Expertsoft, ICL, Visigenic) will offer Trader Service support. |
CORBA Trading is most useful for genuine distributed object based services but it can be also naturally adapted to non-object-oriented software, e.g. C libraries, by building suitable object wrappers.
|
Such wrappers require additional effort from the software publisher side but it will pay off in the long run. |
CORBA will enable object orientation in terms of a thin veneer wrapper around the non-object legacy software.
|
Service publishers submit 'offers' to the Trader. |
Each offer includes the service type, a set of properties (which are service type dependent), and a handle to the object class, representing the advertised service. |
Service consumers/subscribers search for objects that match their requirements using a 'constraint language'.
|
The Default constraint language specifies queries in terms of the service properties, connected/related via the standard set of mathematical, boolean and set-theoretical unary or binary operators. |
Traders from various CORBA domains can be linked to form Federations. |
The resulting direct acyclic Trading Graphs are searched automatically in a way transparent to the customer who contacts only the local Trader. |
Some traders in the Federation can be represented by their proxies which allows one to bring external/custom repository models to the Trader. |
The Trader returns a list of object references that resolve the query submitted by the consumer
|
OMG does not specify service types or the associated properties for CORBA Traders. |
Such domain specific trading dictionaries must be developed by the domain specific communities. |
RIG BIDM and NHSE RIB can be viewed as such an domain activity in particular software catalog object areas and currently for non-object software. |
RIG objects, the associated Assets terminology and prototype implementations such as RIB can be naturally imported into CORBA Trading Service either directly or via the proxy mechanisms. |
The natural place for such a merger is the family of vertical CORBA facilities -
|
Advantage of the CORBA based solution for the software repository proposed here stems for the powerful general purpose infrastructure offered by CORBA Services. |
Missing features of the current RIB such as:
|
are naturally addressed by the base CORBA mechanisms and services, already specified by OMG and rapidly emerging on the ORB market. |
Current ORB products are still rather expensive but the rapid onset of the Object Web will drive down the prices in the CORBA software domain down and one can expect free implementations of CORBA to appear soon as well. |
Looking more into the future, new more advanced distributed computing capabilities of relevance to software repositories are in the OMG standardization pipeline and to become part of CORBA3. These include:
|
Too early to deploy CORBA but now is a good time to start some experiments -- develop standards, evolve RIB development with futures in mind
|
NPAC is already involved in building Java/CORBA based Object Web infrastructure. |
We expect our Java based WORB (Web Object Request Broker) together with selected services (including Trader) to be available by the early `98. |
One could use NPAC WORB or similar system as an experimental platform to investigate merging RIB with CORBA Trading Services. |
Natural steps in this process would include:
|
In such a prototype of dynamic HPCC software repository, all software would be published as a collection of object services, searchable via RIB model based CORBA Trader tools. |
Objects identified by Traders would be immediately accessible for remote execution from any client platform and programming language. |
We note that in distributed simulation field, DMSO is already following such a route in the recent HLA/RTI based effort to enforce interoperability between all simulator systems. |
The first generation, domain specific implementation of HLA/RTI is being tested by the simulation community while DMSO is developing the next generation spec together with OMG as a vertical CORBA facility for the 'distributed simulation' domain. |
One needs two things to bring a language X to the CORBA world:
|
a) includes decisions on how to represent language specific data structures such as ints, floats or doubles of various sizes, arrays, strings etc. in terms of the corresponding universal IDL data structures. |
b) is a simple pre-compiler which reads IDL and writes client stubs or/and server skeletons in language X (to be then linked with ORB libraries and compiled using X language compiler - the final result is a CORBA server for X language objects). |
a) is being done by proposals responding to OMG RFPs. If there is community interest in some new CORBA capability, one should write a letter of intent to OMG and they respond with an RFP.
|
There is only one final proposal signed by lots of companies. |
This proposal gets then an OMG stamp on it and becomes a standard spec. |
b) is part of ORB products i.e. done by companies for profit or developed as public domain system. |
One can use a Language X frontend (like our HPF frontend) to automate linkage of X routines to CORBA methods |