michael@10: Directory Services in Mobile Applications michael@10: Type: Lecture/presentation michael@10: Category: Systems/business michael@10: Topic: Networking/Internals/Implementation choices michael@10: Audience: Android application developers michael@10: Duration: 30 minute presentation michael@10: michael@10: Author and Speaker michael@10: ------------------ michael@10: Michael Schloh von Bennewitz michael@10: Software Engineer, Europalab Networks michael@10: web: http://michael.schloh.com/ michael@10: email: michael@schloh.com michael@10: isdn: +49(89)44239885 michael@10: voip: sips:michael@schloh.com michael@10: xmpp: MSvB michael@10: michael@10: Biography michael@10: --------- michael@10: Michael Schloh von Bennewitz is a computer scientist specializing in michael@10: network software, mobile computing, and client server design. He speaks michael@10: at technical events every year. In the past, he has given lectures on michael@10: object oriented design, technical writing, network protocols, mobile michael@10: OSs, MeeGo development, LDAP integration strategies, and the Qt library michael@10: build process. His speaking style is humorous, using gestures and good michael@10: eye contact. He walks about the room and writes presentations in SVG or michael@10: HTML5. michael@10: michael@10: Abstract michael@10: -------- michael@10: Given that LDAP development efforts have been few and weak, a number of michael@10: directory relevant use cases lead to the question 'Why do so few mobile michael@10: operating systems integrate directory client logic?' michael@10: michael@10: This lecture begins by explaining concepts and presenting history and michael@10: background of directory services relating to a typical Android business michael@10: user. michael@10: michael@10: Consideration of business and general use cases prove the value of LDAP michael@10: in mobile applications integrated into the Android OS or as stand alone michael@10: apps. A comparison is drawn to what use cases SQL covers. michael@10: michael@10: Advancing into the topic of what Android could provide as a platform, michael@10: business development scenarios are discussed and what advantages michael@10: integrating directory services bring. michael@10: michael@10: A technical view is given of the Android platform architecture. Third michael@10: party implementations of applications and development SDKs are michael@10: considered. michael@10: michael@10: A demonstration of developing an Android application using a well known michael@10: LDAP Java SDK is concluded with a review of a selected business use michael@10: case and consideration of how one would hypothetically procede. michael@10: michael@10: The audience consists of developers familiar with client server design michael@10: and maybe SQL, LDAP, or other directory and database technology. michael@10: michael@10: Attendants expect clearly defined directory use cases, abstract michael@10: concepts, concrete definitions, and a well explained hello world michael@10: LDAP development example. The Android community stands to benefit michael@10: from a collective effort at integrating LDAP wherever a strong case michael@10: for directory service exists. michael@10: michael@10: The following text is a lecture outline. michael@10: michael@10: Main chapters (15 minutes) michael@10: -------------------------- michael@10: Concepts michael@10: Directory michael@10: Access michael@10: Protocol michael@10: LDAP michael@10: Offspring michael@10: Active directory michael@10: Comparisons michael@10: SQL michael@10: Client storage michael@10: michael@10: Business use cases michael@10: Legacy directories michael@10: Network configuration michael@10: Security or license sensitive michael@10: michael@10: General use cases michael@10: Authentication michael@10: Contacts integration michael@10: Noncontacts customized michael@10: Certificate storage michael@10: SQL competition michael@10: michael@10: Platform provision michael@10: Synchronization michael@10: Read-optimized lookups michael@10: Little network penalty michael@10: Standardized protocol michael@10: Network bound michael@10: michael@10: Platform architecture michael@10: What Android API provides michael@10: What Android market offers michael@10: What 3rd party APIs offer michael@10: Compatibility concerns michael@10: michael@10: Implementations michael@10: Server-side relevance michael@10: Client SDKs michael@10: Apache [3] michael@10: OpenDS [4] michael@10: UnboundID [5] michael@10: Novell [7] michael@10: Mozilla [8] michael@10: Netscape (renamed Mozilla) michael@10: Oracle JNDI [8] (not available) michael@10: JavaScript (not much) michael@10: michael@10: Demonstration (10 minutes) michael@10: -------------------------- michael@10: Download and installation of LDAP client SDK michael@10: Development of Hello LDAP five line application michael@10: Build, package, install, and test app michael@10: Review of selected business use case michael@10: michael@10: Questions (5 minutes) michael@10: --------------------- michael@10: Anticipated questions michael@10: Why not just use a (Static|SQL|Lync|other) directory in business? michael@10: What are the disadvantages of SQL or ODBC for similar applications? michael@10: How relevant are directory services other than just for contacts? michael@10: Why would a business not use whatever apps are already in the market? michael@10: Why not depend on a social network for directory services? michael@10: michael@10: Relevant jokes about... michael@10: ----------------------- michael@10: Android and Linux michael@10: Directories and legacy apps michael@10: michael@10: Glossary michael@10: -------- michael@10: Directory michael@10: Access michael@10: Protocol michael@10: Lightweight Directory Access Protocol (LDAP) michael@10: Active Directory (AD) michael@10: Application Programming Interface (API) michael@10: Software Development Kit (SDK) michael@10: Structured Query Language (SQL) michael@10: Open Database Connectivity (ODBC) michael@10: American National Standards Institute (ANSI) michael@10: International Organization for Standards (ISO) michael@10: Internet Engineering Task Force (IETF) michael@10: Request for Comments (RFC) michael@10: michael@10: Errata michael@10: ------ michael@10: Errata here. michael@10: michael@10: Lecture materials michael@10: ----------------- michael@10: This lecture is developed on a public source code revision management michael@10: system [7]. It is (or will be) published on a public file server [8]. michael@10: michael@10: Technical requirements michael@10: ---------------------- michael@10: A WLAN connection (for remote slide advancement,) internet connectivity michael@10: (for demonstration purposes,) and a whiteboard (to sketch diagrams) are michael@10: needed for this presentation. michael@10: michael@10: Links and notes michael@10: --------------- michael@10: [1] http://directory.apache.org/ michael@10: [2] http://www.opends.org/ michael@10: [3] http://www.unboundid.com/products/ldap-sdk/ michael@10: [4] http://www.novell.com/developer/ndk/ldap_classes_for_java.html michael@10: [5] https://wiki.mozilla.org/Directory michael@10: [6] http://www.oracle.com/technetwork/java/jndi/ michael@10: [7] http://scm.europalab.com/lectures/ michael@10: [8] ftp://ftp.europalab.com/pub/doc/lect/