Google Web www.viacomp.net
  Object Oriented Technology & Services


 

Object Oriented Technology & Services

In the last 10 years, object orientated techniques have changed the way we program. Object oriented class libraries have dramatically simplified GUI programming, allowing programmers to develop sophisticated systems with much less effort. Because today's superior GUIs allow users to manage much more complexity, many software systems have extremely complicated data models, which take full advantage of the rich semantics of object oriented programming languages. POET allows the developer to use a program's class design as the schema for the database, and stores objects and their relationships in the databases. It also provides full database functionality for these objects.

Relational databases, designed in the 1970s, originated in a time of much simpler programs and less rich data models. Today's object oriented programs are pushing the relational model beyond its design limits. Relational databases have only one data structure, the two dimensional table, which makes it difficult to express the complex relationships found in modern applications.

POET products reduce the time and cost of creating complex applications and enable the rapid development of next generation applications that are difficult or impossible to build using traditional database management technologies.

Object Oriented Databases

ODMG is the standards committee for object databases. Almost all commercial vendors who have real object databases are ODMG members -- this site has a complete list of member companies.

Learn more about ODBMS at www.odbmsfacts.com

University/research projects:

The source code for these systems is available via anonymous ftp. There are lots more that I have not listed here -- I know that the ones I have listed are pretty good, and really are object oriented databases. I don't know about all the others.

SHORE has been used to create a GIS system called Paradise.


Object relational databases

Object relational databases are similar to object databases, but they use a different approach: instead of adding database functionality to objects, they extend SQL to make it more object oriented. They do not give you integration with the objects you use in your OO programming languages.

University/research projects:

Postgres is the predecessor of Illustra, and is available in source code. There is also lots of tech documentation on this system.

One of the most interesting things available on this site is the query optimizer for Postgres. Like most modern query optimizers, it is rule based and easily modified. Their query optimizer is written in LISP.


Distributed objects and ORBs

OMG is the standards committee for CORBA. For more information on CORBA, see the Iona home page.

PostModern Computing has written an ORB in JAVA. You can download this from their web site.


Database researchers and research groups:

These groups are doing interesting database research. They are not all object oriented or object relational. Alas, these links keep changing on me, so some of them may be out of date.

Industry research groups:

IBM's Starburst query optimizer seems to be well regarded. For references on Starburst, look at this.

University research groups, individual researchers:

Akmal's home page has been very popular in the ODBMS community. It includes information on benchmarking.

There is also a searchable bibliography for database-related papers.

Michael Ley also has a Bibliography Server on Database Systems and Logic Programming which contains, among other things, a bibliography on the Volcano query optimizer.

The University of Wisconsin has created the oo7 benchmark for object databases.


The C++ programming language

The C++ Standard is available online in .PDF format. This draft is from the April working papers. The September working papers are available in .HTML format. You can find them here.

A good starting point for C++ resources is available on Yahoo's C++ reference page. If you are new to the C++ programming language, you may want to take a look at the C++ FAQ.


STL

Hewlett-Packard's official STL ftp directory contains the original implementation of STL, which is free, fascinating, and buggy. Want something reliable? Take a look at the ObjectSpace STL<ToolKit>, a commercial product which is much better tested, and runs on lots of platforms.

Rogue Wave has implemented STL as part of its Standard C++ Library. You might want to take a look at this program excerpt for an excellent example of how STL can simplify programming.

There are two useful tutorials for STL. D.R.Musser's STL Tutorial gives lots of links to other information and is well written. Mumit's STL Newbie Tutorial has lots of useful examples, and shows you how to avoid some common problems.


Object oriented design

Here are some good starting points for info on OO design. Conspicuously absent is a good design patterns web site. I have looked at several patterns sites, but haven't found one I like yet. There must be one out there, so please let me know where it is!

Design freaks may also enjoy looking at the design of Fresco, a large project which uses the Design Patterns approach.


Cool web technology

The web seems to be driving a lot of the most interesting new ideas in computer science. Suddenly, you easily can make information available to the whole world, and the web has become a huge network of loosely related content. The challenge is to organize it, to coordinate it, to make it searchable, to create active objects. I believe that object oriented databases can play an important role in this.

For general technical information on the web, my favorite starting place is The Web Developer's Virtual Library. This is the place to look for info on CGI interfaces, the HTML language, programming tools, etc. Of course, another important starting point is the NetScape home page which changes constantly and always has cool stuff. (How can one company produce so many good things? And it all works!)

Java is an object oriented programming language for the web. Java syntax looks a lot like C++, but the type system is not as ugly, and it does not have pointers. Java lets you develop small Applets, which are programs which can be easily downloaded and validated to ensure that they do not contain viruses. Your web browser can execute these programs if it supports Java. Don't confuse Java with JavaScript, which is simply a new name for NetScape's LiveScript. JavaScript is not object oriented, but it is becoming an industry standard, so it is also worth knowing about. In some ways, JavaScript is to Java as C++ is to C. The two languages have similar type systems. Conveniently, Java has metainformation for objects and classes, has a type system that is very similar to C++, and has a similar syntax for class declarations.

Lotus and IBM have created the InterNotes Web Publisher, which lets you create an interactive web site by converting Notes documents, forms, views, and attachments into HTML. The workflow aspects of this product are extremely interesting -- it lets you use Lotus Notes to coordinate and collect web information from many sources throughout your organization, then translates the documents and views into a series of HTML pages. But work groups on the web are hot these days, and Lotus has strong competition in Collabra.

The Excite Center has a NetScape plugin which lets you use OLE controls as though they were Applets. Their web site has some really cool demos.

EBT (Electronic Books Technology) is a company that specializes in SGML and HTML technologies. They have developed DynaWeb, a web server which not only performs full text searches, but maintains the structure of the document in the results. For instance, a search might return the names of books. If you select a book, you can see which chapters contained hits. To see this in action, look at Novell's publications server, which uses DynaWeb. I find this much more useful than the search results provided by most web search engines. When you use this, think about it from a database standpoint. POET is going to be supporting full text search, and we are doing a project which involves SGML import for a client, so the technologies used for DynaWeb may not be that far




  2005 Productos y Servicios Electronicos y de Computacion S.A.