IDM@UMU.SE Presentation by Roland Hedberg at EuroCamp@Cork 2009 - - PowerPoint PPT Presentation

idm umu se
SMART_READER_LITE
LIVE PREVIEW

IDM@UMU.SE Presentation by Roland Hedberg at EuroCamp@Cork 2009 - - PowerPoint PPT Presentation

IDM@UMU.SE Presentation by Roland Hedberg at EuroCamp@Cork 2009 Tuesday, May 19, 2009 SOME FACTS ABOUT UMU Founded in 1965 ~30.000 students (of which 10.000 on distance) ~4.000 employees ~2.000 courses ~50 departments ~50 other units


slide-1
SLIDE 1

IDM@UMU.SE

Presentation by Roland Hedberg at EuroCamp@Cork 2009

Tuesday, May 19, 2009

slide-2
SLIDE 2

SOME FACTS ABOUT UMU

Founded in 1965 ~30.000 students (of which 10.000 on distance) ~4.000 employees ~2.000 courses ~50 departments ~50 other units

Tuesday, May 19, 2009

slide-3
SLIDE 3

GOAL OF THE IDM SYSTEM

We assume that in the future all our systems will be accessable to all our users

★ We have to know who our users are

What they can do with the systems are then based on what they are.

★ The information about our users MUST be accurate Tuesday, May 19, 2009

slide-4
SLIDE 4

REQUIREMENTS

Must support initial population of ~40,000 users, and support growth. Must allow for fluid population, including fluctuating numbers of traditional classifications such as faculty and student, and non- traditional such as guests, affiliates, and federated partners. Must support end-to-end propagation of identity changes in real- time, or near real-time, to ensure consistent and correct access at all times. Must support long-term retention of identity history. Should support zero-downtime configurations to support dependent services.

Tuesday, May 19, 2009

slide-5
SLIDE 5

HISTORY OF OUR IDM

2002 Q3 Started working on the first version 2004 Q1 Put into production 2006 Started working on version 2 together with two

  • ther Swedish universities.

We will start the transition from OM to OM2 Q3 2009

Tuesday, May 19, 2009

slide-6
SLIDE 6

PRESENT IMPLEMENTATION

Student Information System (LADOK) LDAP

KdB

HR-system (PRIMULA) MAIL Adminstrative Interface (Dirigenten)

IDdB

WS

Tuesday, May 19, 2009

slide-7
SLIDE 7

NEXT VERSION

Based on the OpenMetadir project http://www.openmetadir.org/

Tuesday, May 19, 2009

slide-8
SLIDE 8

WHAT IT’S ALL ABOUT

Event message Receiver Sender Event message

Tuesday, May 19, 2009

slide-9
SLIDE 9

IMPEDANCE MATCHING

Event message Receiver Sender Event message

Tuesday, May 19, 2009

slide-10
SLIDE 10

WE WHERE ALL IN THE SAME BOAT

LADOK Personal System Administrativt gränssnitt LDAP AD

Tuesday, May 19, 2009

slide-11
SLIDE 11

PICK AND CHOSE

Student information system HR- System Administrative interface LDAP AD

RDF / XML RDF / XML RDF / XML Func1 Func2 Func3 Func4 Func5 Func6

X

RDF / XML

Y Repo

Tuesday, May 19, 2009

slide-12
SLIDE 12

BASIC ARCHITECTURE

Message syntax - RDF/XML Message description language - OWL Model based architecture Transport agnostic DNS/NAPTR/HTTP for dynamic resolving

Tuesday, May 19, 2009

slide-13
SLIDE 13

IMPLEMENTATION

In Python

Some in Perl by Stockholm University

Perl - The only language that looks the same before and after RSA encryption.

  • Keith Bostic

PHP is a minor evil perpetrated and created by incompetent amateurs, whereas Perl is a great and insidious evil, perpetrated by skilled but perverted professionals.

  • Jon Ribbens

Uses RDF/XML as transport syntax

XML is like violence - if it doesn’t solve your problems, you are not using enough of it.

  • Unknown

HTTP/HTTPS as transport protocol

Tuesday, May 19, 2009

slide-14
SLIDE 14

NECESSERY STEPS FOR ADDING A NEW PRODUCER/CONSUMER

  • 1. If there is nothing appropriate available, you have to

create an ontology.

  • 2. ‘Compile’ Python modules from the ontology

definition.

  • 3. Use those modules to do data marshalling

Tuesday, May 19, 2009

slide-15
SLIDE 15

SPECIFYING THE ONTOLOGY

Protége => Any UML tool

Tuesday, May 19, 2009

slide-16
SLIDE 16

ADD EVENT

>>> import om2api >>> import pyom.ontology.prim_4 as prim >>> nexthop = “http://localhost:2003/” >>> sender = “test@liu.se” >>> receiver = [“recv@liu.se”] >>> om =

  • m2api.OM2(nexthop=nexthop,sender=sender,receiver=receiver,)

>>> p = prim.UserPerson() >>> p.about = “urn:mace:liu.se:om2:metadir:employee-id#rical37” >>> p[“surName”] = “Callerberg” >>> p[“givenName”] = “Ricke” >>> p[“uid”] = “rical37” >>> om.addObject(p):

Tuesday, May 19, 2009

slide-17
SLIDE 17

READ OBJECT

>>> import om2api >>> neorepo = "http://localhost:8084/neorepo/" >>> ontology = ["pyom.ontology.prim_4"] >>> om = om2api.OM2(neorepo=neorepo,ontology=ontology) >>> o = om.getObject(“urn:mac:umu.se:ed:uid#rohe0002”) >>> print o.type rdflib.URIRef('http://www.openmetadir.org/om2/ prim-4.owl#UserPerson') >>> print o[“surName”] “Hedberg”

Tuesday, May 19, 2009

slide-18
SLIDE 18

IDM@UMU (KK3)

LADOK PRIMULA GroupGUI adminGUI

  • rgGUI

Neo OidSrv AD LDAP INFOGLUE WS Srv

Tuesday, May 19, 2009

slide-19
SLIDE 19

PYOM NODE

DISPATCHER

Receiver HTTP SOAP LINE Router Spocp Resolver DNS Sender HTTP Simple Pattern Retry Static XMPP LINE SMTP LDAP SPOCP Transformer LDAPMT Logger RELP

Tuesday, May 19, 2009

slide-20
SLIDE 20

SYSTEM GRAPH

neorepo@umu.se

Listener port=8084

Repo

Sender

distributor@umu.se

Listener port=8086 Router Forwarder Resolver Sender Sender path=/Users/rolandh/incoming

synch@umu.se

Listener port=8082 Router Synchronizer Resolver Sender Sender path=/Users/roland/incoming/err

igtransf@umu.se

Listener port=8087 Router Transformer umupyom.transform.ig Resolver Sender Sender path=/Users/rolandh/incoming REST url=https://server-utv1.cms.info.umu.se/infoglueCMS/services/Om2Servlet

Tuesday, May 19, 2009

slide-21
SLIDE 21

LESSONS LEARNED (1)

Search all the parks in all your cities; you'll find no statues of committees.

  • David Ogilvy

We reject: kings, presidents, and voting. We believe in: rough consensus and running code

  • David Clark

Tuesday, May 19, 2009

slide-22
SLIDE 22

LESSONS LEARNED (2)

First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack.

  • George Carrette

Tuesday, May 19, 2009

slide-23
SLIDE 23

LESSONS LEARNED (3)

It always takes longer than you expect, even when you take into account Hofstadter’s Law.

  • Hofstadter’s Law

Tuesday, May 19, 2009

slide-24
SLIDE 24

LESSONS LEARNED (4)

If you don't know where you are going, any road will get you there.

  • Lewis Carrol

Tuesday, May 19, 2009

slide-25
SLIDE 25

LESSONS LEARNED (5)

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil

  • C. A. R. Hoare

Tuesday, May 19, 2009

slide-26
SLIDE 26

LESSONS LEARNED (6)

Those who dare to fail miserably can achieve greatly.

  • John Fitzgerald Kennedy

Tuesday, May 19, 2009

slide-27
SLIDE 27

LESSONS LEARNED (7)

If history repeats itself, and the unexpected always happens, how incapable must Man be of learning from experience.

  • George Bernard Shaw

Tuesday, May 19, 2009

slide-28
SLIDE 28

MY FAVOURITE

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

  • Brian W. Kernighan

Tuesday, May 19, 2009