Presentation is loading. Please wait.

Presentation is loading. Please wait.

LDAP Integration into ReL Clay Smalley Paulo Alcantara.

Similar presentations


Presentation on theme: "LDAP Integration into ReL Clay Smalley Paulo Alcantara."— Presentation transcript:

1 LDAP Integration into ReL Clay Smalley Paulo Alcantara

2 LDAP Basics Lightweight Directory Access Protocol (LDAP) “is an application protocol for accessing and maintaining distributed directory information” Directory Services are often hierarchical in structure, specified by a server configured schema Integrated Functions in ReL: Add, Delete, Modify Added LDAP Data Interexchange Format (LDIF) processing in ReL

3 LDAP Data Interchange Format (LDIF) Plain Text data format used for LDAP directory requests and updates ldapstart dn: uid=personid13,ou=PERSONT,dc=example,dc=com changetype: add firstname: Suzie lastname: Smith zipcode: _|10000+2000+300+40+5|_ ldapend Unique IdentifierClass Type Python Expression NEWLINE is too greedy

4 ReL Components Python.g SPARQLDoer.java PyTuple.java ------------ parseSIM() ------------- parseLDAP() AST Runtime Stack SIMHelper.java Visitor SQLVisitor.java jSQLParser Interpreter Oracle DBMS jSIMParser CodeCompiler.java The Python grammar was changed to include LDAP statements. SPARQLDoer was updated to support selecting and deleting integer values (fixed bugs) parseLDAP parses LDAP statements from PyTuple and produces and passes AS information to LDAPHelper. LDAPHelper produces appropriate SPARQL statements for the LDAP statements which are sent to SPARQLDoer. LDAPHelper.java

5 Python.g Modifications Python.g was modified to recognize LDAP statements Embedded Python expressions are recognized where appropriate, distiguished with _|PyExpression|_ format ldap_add: ldapType=LDAP_ADD { $ldap_stmt::temp = $ldapType.text; $ldap_stmt::strings.add($ldap_stmt::temp); $ldap_stmt::temp="";} NEWLINE (name=(NAME|OBJECTCLASS) COLON (ldapexpr| (ldapWord=ldap_word { $ldap_stmt::temp = $ldapWord.text;})) NEWLINE { $ldap_stmt::temp = $name.text + ":" + $ldap_stmt::temp; $ldap_stmt::strings.add($ldap_stmt::temp); $ldap_stmt::temp="";} )+ ;

6 PyTuple Modificatoins Modifications based off how PyTuple accepts SIM statements and the parseSIM() method PyTuple was modified to accept LDAP statements Called parseLDAP method to produce and pass abstract syntax to LDAPHelper class

7 LDAPHelper Based on the SIMHelper model LDAPHelper takes the abstract syntax and interfaces with SPARQLDoer to do the conversion to SPARQL Calls necessary methods in SPARQLDoer to conduct the execution of database commands

8 SPARQLDoer Modifications Noticed issues selecting when modifying/deleting items SPARQLDoer’s created queries did not properly add the type when modifying/deleting entries, causing issues when modifying/deleting anything other than strings Example: how does SPARQL interpret "42"^^xsd:integer v.s. “42” v.s. 42 in a WHERE clause Added type determination syntax to certain parts of SPARQLDoer

9 Demo & Next Steps dist/bin/jython tests/LDAPDemo.py Creation of a jLDAPParser and LDAPVisitor to mimic what jSQLParser and SQLVisitor does


Download ppt "LDAP Integration into ReL Clay Smalley Paulo Alcantara."

Similar presentations


Ads by Google