Presentation is loading. Please wait.

Presentation is loading. Please wait.

JA-SIG Summer 2006 – New Directions in PersonDirectory Services Presenters: Andrew Wills Darren Kraker New Directions.

Similar presentations


Presentation on theme: "JA-SIG Summer 2006 – New Directions in PersonDirectory Services Presenters: Andrew Wills Darren Kraker New Directions."— Presentation transcript:

1 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Presenters: Andrew Wills drew@unicon.net Darren Kraker dkraker@calpoly.edu New Directions in PersonDirectory Services: Lessons Learned from my.calpoly.edu JA-SIG Summer Conference 2006

2 JA-SIG Summer 2006 – New Directions in PersonDirectory Services California Polytechnic University San Luis Obispo 100 Years Old 20,000 Students uPortal adoption since Sept 2001 “Learn by Doing”: technical and professional curricula.

3 JA-SIG Summer 2006 – New Directions in PersonDirectory Services UNICON Our Vision: To be recognized as the leading independent provider of portal and learning technologies to the Educational market. Corporate Profile Over 100 employees Over 2 million users have experienced Unicon solutions Focus is Higher Education Technologies Enterprise Collaborative Portals Learning Management Web Content Management Content and Assessment Authoring and Delivery software Open source involvement Leading commercial supporter of uPortal Sakai Commercial Affiliate

4 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Unicon Services Academus / Sakai Sakai / uPortal Implementation Planning Session Project Planning and Assessment Installation Configuration Branding Training Optional Services Software Development Application Hosting System Upgrades Academus Implementation Planning Session Project Planning and Assessment Installation Configuration Branding Training Optional Services Software Development Application Hosting System Upgrades uPortal Sakai Implementation Planning Session Project Planning and Assessment Installation Configuration Branding Training Optional Services Software Development Application Hosting System Upgrades

5 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Introduction

6 JA-SIG Summer 2006 – New Directions in PersonDirectory Services PersonDirs.xml to personDirectory.xml Originally person attribute technology was a part of the uPortal Framework uPortal 2.5 introduced the new technology by copy & paste uPortal 2.6 is expected to include the stand- alone version by Java archive (jar) Stand-alone project began October 2005

7 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Stand-Alone JA-SIG Project Housed and managed in JA-SIG CVS cvs -d:pserver:anonymous@developer.ja- sig.org:2401/home/cvs/jasig co PersonDirectory More information is accumulating at the JA- SIG wiki http://www.ja-sig.org/wiki/display/UPC/Person+Directory Spearheaded by Eric Dalquist & Andrew Petro

8 JA-SIG Summer 2006 – New Directions in PersonDirectory Services PersonDirectory JA-SIG Project Goals Reasons for the new technology More Powerful (greater sum of features) More Flexible (use the features you want) More Maintainable (bug fixes are less complicated & risky) More Extensible (much easier to add technology that covers unanticipated scenarios)

9 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Agenda Cal Poly person attribute scenarios Tour of the new person attribute technology Conceptual background for the new technology Cal Poly solution & contributions

10 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Cal Poly Person Attribute Scenarios

11 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Cal Poly Person Attribute Scenarios User Base Students Faculty (incl. some emeritus) Staff (incl. some emeritus) Applicants (2 flavors) Data Sources for Person Attributes LDAP eComs RDBMS Data Warehouse RDBMS Algorithm(s)

12 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Applicant Users Introduction to the portal begins as early as an applicant or prospective student An applicant’s role changes as part of the admissions process Prospect Applicant Conditionally Admitted Admitted Matriculated Student

13 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Cal Poly Person Attribute Scenarios Special Challenges Not all data sources apply to all users Some data sources key off of things other than username Application timeline and status determines layout content Status must be “evaluated” at login Applicants may apply for multiple terms Applicants who are enrolled must be transitioned to new attribute scenarios and data sources

14 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Tour of the new Person Attribute API

15 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Interface IPersonAttributeDao interface is the central type of PersonDirectory Methods Map getUserAttributes(final Map seed) Map getUserAttributes(final String uid) Set getPossibleUserAttributeNames() Interface Driven PersonDirectory features are completely open- ended because clients can provide custom implementations and configure the portal to use them via Spring IoC

16 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Implementations List uPortal 2.5.x AbstractDefaultQueryPersonAttributeDao CachingPersonAttributeDaoImpl CascadingPersonAttributeDao EchoPersonAttributeDaoImpl JdbcPersonAttributeDaoImpl LdapPersonAttributeDaoImpl LegacyPersonAttributeDao MergingPersonAttributeDaoImpl StubPersonAttributeDao

17 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Implementations List PersonDirectory (stand-alone JA-SIG project) AbstractDefaultAttributePersonAttributeDao AbstractAggregatingDefaultQueryPersonAttributeDao AbstractQueryPersonAttributeDao AbstractJdbcPersonAttributeDao StubPersonAttributeDao EchoPersonAttributeDaoImpl CachingPersonAttributeDaoImpl CascadingPersonAttributeDao MergingPersonAttributeDaoImpl LdapPersonAttributeDaoImpl SingleRowJdbcPersonAttributeDao MultiRowJdbcPersonAttributeDao

18 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy

19 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy AbstractDefaultAttributePersonAttributeDao All original implementations of IPersonAttributeDao extend from AbstractDefaultAttributePersonAttributeDao except StubPersonAttributeDao (used in testing) Provides a final implementation for getUserAttributes(String uid) that associates the specified uid with a single, configureable attribute name This implementation then invokes the getUserAttributes(Map seed) overload (viz. implemented on a subclass) using the Map it created You can configure the default attribute name by calling setDefaultAttributeName(String name), presumably in the Spring configuration file If you don't explicitly set it, the "default" default is username

20 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy AbstractAggregatingDefaultQueryPersonAttri buteDao Implements common elements of attribute aggregation, leaving specialized details to subclasses Subclasses add value to the aggregation process by implementing getAttributesFromDao(), which they are required to do since it is an abstract method on this class Subclasses CascadingPersonAttributeDao MergingPersonAttributeDaoImpl

21 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy AbstractQueryPersonAttributeDao Implements some validity checking & mashaling associated with querying a data source with multiple inputs Subclasses add value by implementing getUserAttributesIfNeeded(), which they are required to do since it is an abstract method on this class Subclasses LdapPersonAttributeDaoImpl AbstractJdbcPersonAttributeDao

22 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy AbstractJdbcPersonAttributeDao Implements common elements of obtaining person attributes from an RDBMS data source Subclasses must implements two abstract methods getAttributeQuery() [provide an appropriate implementation of AbstractPersonAttributeMappingQuery] parseAttributeMapFromResults() [convert the query results to mapped user attributes] Subclasses SingleRowJdbcPersonAttributeDao MultiRowJdbcPersonAttributeDao

23 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy StubPersonAttributeDao Always returns the same Map of values Used primarily in writing unit tests EchoPersonAttributeDaoImpl Returns the seed Map that was passed in as an argument Useful for unit testing and in concert with CascadingPersonAttributeDao

24 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy CachingPersonAttributeDaoImpl Caches results generated by a nested IPersonAttributeDao implementation Cache size and duration can be managed in the properties/whirlycache.xml configuration file Can be highly effective at improving performance, particularly in a DLM/PAGS portal

25 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy CascadingPersonAttributeDao Combines aggregation with a seed that grows with the results provided by each IPersonAttributeDao instance in the chain This approach allows a later instance to rely on information from an earlier instance to obtain its data Merging rules can be configured to handle situations where different implementations return values for the same attribute (default merging strategy is replacement) Use EchoPersonAttributeDaoImpl as the first instance to include the original seed in the results

26 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy MergingPersonAttributeDaoImpl Aggregates results from nested implementations by invoking each with the original seed Offers the same merging rule configuration options as CascadingPersonAttributeDao (though default is combining) LdapPersonAttributeDaoImpl Obtains person attributes from a directory (LDAP) data source Details of connecting to and querying LDAP are configurable (Server/Query/BaseDN/Timeout) You must explicitly specify the set of LDAP entry/person attribute mappings

27 JA-SIG Summer 2006 – New Directions in PersonDirectory Services IPersonAttributeDao Type Hierarchy SingleRowJdbcPersonAttributeDao Obtains person attribute information from an RDBMS data source Throws an exception if more than one record is returned for the specified query You must explicitly specify the set of column name/person attribute mappings MultiRowJdbcPersonAttributeDao Obtains person attribute information from an RDBMS data source Support multi-values person attributes (viz. more than one record) You must explicitly specify the set of column name/person attribute mappings

28 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Conceptual Background for the new Technology

29 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Conceptual Background Two key technologies/patterns… Nested Enclosure Spring Dependency Injection

30 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Nested Enclosure Overview Wrap or "nest" one object with a particular contract inside another that implements the same contract. Allows you to combine the desirable characteristics of different implementations in mix- and-match fashion Design for nested enclosure by representing your central contract as an interface or abstract class One implementation adds value to another by enclosing it IPersonAttributeDao is the central contract in the case of PersonDirectory

31 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Nested Enclosure Several implementations of IPersonAttributeDao were written to "enclose" other instances CachingPersonAttributeDaoImpl CascadingPersonAttributeDao MergingPersonAttributeDaoImpl EchoPersonAttributeDaoImpl was written (in large part) to be enclosed

32 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Spring Dependency Injection Used by uPortal for many areas of system configuration, including person directory services Allows you to describe dependencies between Java objects in XML format When dependencies change, simply change the XML (no need for a new build) The Spring Framework does the heavy lifting of instantiating and associating the beans you define

33 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Cal Poly Solution & Contributions

34 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Cal Poly Solution Using new Technology

35 JA-SIG Summer 2006 – New Directions in PersonDirectory Services

36

37 Cal Poly Solution & Contributions RegexGatewayPersonAttributeDao Allows a nested DAO instance to operate if an existing attribute matches a specified pattern May key off of any existing attribute (not just username) Implements pattern matching via String.matches(pattern) Works with attribute values of String String[] List If any value matches the pattern, the enclosed DAO is processed

38 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Cal Poly Solution & Contributions DeclaredRulePersonAttributeDao evaluates person directory information based on configurable rules or algorithm(s) Rules may be chained, though the present implementation applies at most one rule Applies the first rule that "triggers“ AttributeRule Interface that defines the contract for rules Members appliesTo(Map) evaluate(Map) getPossibleUserAttributeNames()

39 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Cal Poly Solution & Contributions SimpleAttributeRule Only existing implementation of AttributeRule Sets the value of an attribute when a seed value matches a pattern You specify Comparison attribute Pattern Target attribute Value Implements pattern matching via String.matches(pattern) Works with attribute values of String String[] List If any value matches the pattern, the rule triggers Current implementation overwrites existing value(s) (viz. no configurable collision strategy)

40 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Cal Poly Solution & Contributions

41 JA-SIG Summer 2006 – New Directions in PersonDirectory Services Questions?


Download ppt "JA-SIG Summer 2006 – New Directions in PersonDirectory Services Presenters: Andrew Wills Darren Kraker New Directions."

Similar presentations


Ads by Google