Sie sind hier

Sticky Logging

The content of this page is subject to change, due to major changes in the prototype.

The new version (July 2009) of the prototype (including the scenario sources) can be downloaded here.

To run the new version of the prototype you can still follow the installation instruction below. However, the new version uses sesame as RDF-store.

Sticky Logging Prototype

A first prototype can be downloaded here:

Sticky Logging Library Source - This file contains the source of a first prototype implementation of the sticky logging mechanism. The sticky logging library is designed to be used together with JBoss 4.2. To download JBoss 4.2 and for installation instruction, please visit jboss.org. The sticky logging library requires Jena and libraries Jena depends on to be installed. To download Jena and for further instructions how to install Jena, please visit jena.sourceforge.net.

Scenario Source - This file contains the source files of two Web services and a client application. The client calls an operation of the first Web service, which calls an operation of the second Web service. At both calls the name of the customer is transferred to the called Web service and the transfer is logged. The Web services need to be deployed on a JBoss 4.2 application server. The sticky logging makes use of so called Message Handlers of JBoss. This needs to be configured in the standard-jaxws-endpoint-config.xml (click to download an example file). Because of JBoss, the Web services require JDK 1.5. The rest of the prototype may be compiled with JDK 1.6. (Some of the files of the prototype have been created automatically be means of wsimport).

If you have questions, remarks, suggestions or problems, do not hesitate to contact me:  Dr. Christoph Ringelstein

Installation details:

If you are using Eclipse, put the standard-jaxws-endpoint-config.xml file in the WebContent/META-INF folder of the Web Services. Configure the JBoss Server as follows:

Run dialog->Generic Server

1) Add the JBoss Server

2) ->Arguments:

  • Program arguments: -c default
  • VM arguments: -Dprogram.name=run.bat -Djava.endorsed.dirs="PATHTOJBOSS/bin/../lib/endorsed" -Xms128m -Xmx512m
  •  use run.sh instead run.bat, if you are running linux, etc
  •  Working directory: "PATHTOJABOSS/bin"

3) ->Classpath

  • Bootstrap Entries add external jar "PAHTTOJBOSS/client/jaxb-api.jar"
  • User Entries add external jar "PAHTTOJBOSS/run.jar" and add projexts "SLogging" and "SLog"

To run the prototype with your JBoss server, you may need to add the following .jar files to "PAHTTOJBOSS/lib/endorsed":
 commons-logging.jar
 jaxb-api.jar
 jboss-jaxrpc.jar
 jboss-jaxws.jar
 jboss-saaj.jar
 jena.jar
 log4j.jar
 serializer.jar
 xalan.jar
 xercesImpl.jar

An example eclipse project of the prototype is work in progress and will be published soon.

Sticky Logging Ontology

The Sticky Logging Ontology is an ontology defining basic concepts for semantic logging in distributed workflows. In the following we introduce the classes defined in the Sticky Logging Ontology:

DataInstance

The class DataInstance represents an instance of a piece of data that is processed by a distributed workflow. The class has the following properties:

Property Value
hasUUID A UUID [1] that clearly identifies the data instance.
isPrimary A xsd:boolean that indicates if the data instance is the primary instance of a piece of data. If not the data instance is a copy of another instance.
isCopyOf An URI referring to the data instance this data instance is a copy of.
hasCopy An URI referring to all data instances that are copies of this data instance.

The following example depicts the specification of a data instance:

:dataInstance1  rdf:type      sl:DataInstance
   :dataInstance1  sl:hasUUID    "a26f4580-39d9-11dc-a3fa-..."
   :dataInstance1  sl:isPrimary  "true"

 

Action

The Action class describes actions performed on data instances. The class has the following properties:

Property Value
isOfKind An URI referring to the kind (see below) of the action.
hasPurpose An URI referring to an ontology concept defining the purpose (see below) of the action.
performedOnDataInstance An URI referring to the data instance the action is performed on.
hasSequentialNumber An xsd:integer value specifying the sequential number of this action. The number is increased by 1 with each action performed. The first action has the sequential number 1.
hasTimeStamp A xsd:dateTime value specifying the point of time when the action is performed. The time must be given in UTC.

The following example depicts the logging of a performed action:

 

:action1  rdf:type                    sl:action
   :action1  sl:performedOnDataInstance  :dataInstance1 
   :action1  sl:hasSequentialNumber      "1"
   :action1  sl:isOfKind                 sl:CopyAction
   :action1  sl:hasPurpose               dofd:DeliverOrder

 

LogEntry

Log entries are represented by means of the class LogEntry that has the following properties:

Property Value
hasUUID An UUID [1] that clearly identifies the log entry.
logsAction An URI referring to the action logged by means of the log entry.
hasSequentialNumber An xsd:integer value specifying the sequential number of this log entry. The number is increased by 1 with each recorded log entry. The first log entry has the sequential number 1.
hasTimeStamp A xsd:dateTime value specifying the point of time when the log entry is created. The time must be given in UTC.

The following listing depicts the log entry recording the above-performed action:

:logEntry1  rdf:type                sl:LogEntry
   :logEntry1  sl:hasUUID              "cf2f30c0-39c1-11dc-80ae-..."
   :logEntry1  sl:logsAction           :action1
   :logEntry1  sl:hasSequentialNumber  "1"

 

Entity

The Entity class represents an entity recording log entries. The entity can be an organisation or a natural person.

Property Value
hasName A xsd:string value containing the legal name of the entity.
hasAddress A foaf:address value specifying the legal address of the entity.
hasLogged An URI referring to the log entries recorded by the entity.
hasPGPCertificate An URI referring to the PGP certificate of the entity.
Signature A xsd:string value containing the signature of the entity. The signature has to sign everything logged by the entity. This also includes the RDF triples used for the identification of the entity (only the triple containing the signature is not signed). To sign the triples the approach of Carroll presented in [2] is used.
hasTimeStamp A xsd:dateTime value specifying the point of time when the entity entry is created. The time must be given in UTC.

The following example depicts the identification of an entity:

 

:entity1  rdf:type              sl:Entity
   :entity1  sl:hasName            "Universität Koblenz-Landau"
   :entity1  sl:isLogging          :logEntry1
   :entity1  sl:hasPGPCertificate  "http://isweb.uni-koblenz.de/examplecert.asc"
   :entity1  sl:Signature          "HrdSDFc..."

 

Kinds of Actions

The sticky logging ontology distinguishes between various kinds of actions that are performed on data instances. In the following an overview is given:

 

Kind of Action Description
UseAction The class UseAction represents the read action performed on a data instance to process the data.
CopyAction The class CopyAction represents the read action performed on a data instance to create a copy of the data instance.
CreateAction The class CreateAction represents the write action performed to create a new data instance.
ChangeAction The class ChangeAction represents the write action performed to change the data contained in an instance.
DeleteAction The class DeleteAction represents the write action performed to delete an existing data instance.

 

Purposes of Actions

To specify purposes of actions performed on data instances, concepts defined in domain ontologies are used. The domain ontologies extend the upper ontology of action purposes. The definition of the upper ontology is ongoing work. As soon as the ontology is defined it will be published here.

Literature

[1] Carroll, J. J.: Signing RDF Graphs. In: D. Fensel et al. (Eds.): The SemanticWeb - ISWC 2003, LNCS 2870, pp. 369-384, Springer, Berlin, Heildelberg (2003)

[2] Leach, P., Mealling, M., and Salz, R.: RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace. Internet Engineering Task Force. http://www.ietf.org/rfc/rfc4122.txt (July 2007) (2005)

 

Publications

2007

Ringelstein2007PIS
Ringelstein, Christoph (2007): Protokollierung in service-orientierten Architekturen. In: Datenschutz und Datensicherheit. Bd. 31. Nr. 10.

 

Ringelstein2007LID
Ringelstein, Christoph; Staab, Steffen (2007): Logging in Distributed Workflows. In: Proceedings of the Workshop on Privacy Enforcement and Accountability with Semantics. Busan, South-Korea: