Developing and managing software components in an ontology-based application server

  • Authors:
  • Daniel Oberle;Andreas Eberhart;Steffen Staab;Raphael Volz

  • Affiliations:
  • University of Karlsruhe, Germany;University of Karlsruhe, Germany;University of Karlsruhe, Germany;University of Karlsruhe, Germany

  • Venue:
  • Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware
  • Year:
  • 2004

Quantified Score

Hi-index 0.02

Visualization

Abstract

Application servers provide many functionalities commonly needed in the development of a complex distributed application. So far, the functionalities have mostly been developed and managed with the help of administration tools and corresponding configuration files, recently in XML. Though this constitutes a very flexible way of developing and administrating a distributed application, e.g. an application server with its components, the disadvantage is that the conceptual model underlying the different configurations is only implicit. Hence, its bits and pieces are difficult to retrieve, survey, check for validity and maintain. To remedy such problems, we here present an ontology-based approach to support the development and administration of software components in an application server. The ontology captures properties of, relationships between and behaviors of the components that are required for development and administration purposes. The ontology is an explicit conceptual model with formal logic-based semantics. Therefore its descriptions of components may be queried, may foresight required actions, e.g. preloading of indirectly required components, or may be checked to avoid inconsistent system configurations -- during development as well as during run time. Thus, the ontology-based approach retains the original flexibility in configuring and running the application server, but it adds new capabilities for the developer and user of the system. The proposed scheme has been prototypically implemented in KAON SERVER, an application server running components that support a range of various semantic technologies -- thus applying semantic technologies to itself.