Fakultät für Informatik TU München - Fakultät für Informatik
Lehrstuhl III: Datenbanksysteme
Technische Universität München
Home  |  Personen  |  Forschung  |  Lehre  |  Sonstiges  | 



Query Plan Distribution and Execution

As mentioned before, ObjectGlobe was implemented in Java for two reasons: portability and security. In this section we will describe how we utilized Java's features to achieve extensibility and query operator mobility without compromising security. We will also describe ObjectGlobe's monitor concept for controlling the progress of distributed query plans.

Distributing Query Evaluation Plans

Query plans are distributed in a straightforward way using the host annotations of the iterators in the plan. Every cycle provider loads the code of the external operators with a specialized ObjectGlobe class loader (OGClassLoader); the URL of the code is given in the codeBase annotation. If a cycle provider requires that the code is signed (authenticated), then the OGClassLoader will check the signature of the code. Furthermore, all communication paths are established by (built-in) send and receive iterators. If desired (i.e., specified in the annotations of the plan), an SSL (Secure Sockets Layer) connection is established. SSL [FKK96]1 is a de-facto standard for providing privacy and reliability of network communication by encrypting network traffic and checking the data integrity using Message Authentication Codes (MAC). Also, the SSL protocol can carry out the authentication of both ObjectGlobe communication partners via certificates. Finally, authorization is carried out by the individual providers when a query is instantiated. If a provider restricts the use of its resources, the authentication information of the user will be part of the plan (again, as part of an annotation). Two possible authentication schemas are supported. Parts of a plan can be signed and carry the corresponding certificate. Another way of authenticating clients, which is still in use by many providers, is password-based. In this case the corresponding sub-plan is annotated with the encrypted password.

Extensibility

To integrate an external function, a function provider must implement a simple predefined interface. To implement an iterator, for example, open, next, close, and reopen methods must be implemented following the iterator model described in [Gra93]. The interface of other external functions (e.g., transformers such as thumbnail) is simpler; these external functions are wrapped by generic (built-in) ObjectGlobe iterators.

In the following we briefly describe the open method for iterators, since it has a special requirement. The open method returns an object of a class named TypeSpec. Such an object describes the type of the tuples which will be produced with every call of the next method. Type specifications are also recorded in the lookup service; just like authorization information, however, the type specifications recorded in the lookup service might be outdated or incomplete. Based on these (runtime) TypeSpecs polymorphic functions can be constructed. Furthermore, it is possible to compute the union of two collections that have different attributes; for example, two hotel data sources on the Internet (e.g., www.HotelBook.com and www.HotelGuide.com) might have slightly different attributes and it is nevertheless possible in ObjectGlobe to ask a select * query that retrieves all attributes from both sources.



Footnotes

...[FKK96]1
There is also the standardized TLS (Transport Layer Security) protocol [DA99] of the Internet Engineering Task Force (IETF) which is quite similar to the current SSL 3.0 protocol.
Lehrstuhl für Datenbanksysteme
Letzte Änderung: 25.05.2005 um 14:34:37
Title