Thu, 28 Feb 2013 21:46:37 +0100
Introduce production changes, mention online lecture URL, and
integrate quick meme according to suggestion from Mike ELIAS.
michael@10 | 1 | LDAP integration in Android |
michael@10 | 2 | Type: Lecture/presentation |
michael@10 | 3 | Category: Engineering/development |
michael@10 | 4 | Topic: Networking/Internals/Implementation choices |
michael@10 | 5 | Audience: Mobile users, |
michael@10 | 6 | software engineers, |
michael@10 | 7 | network engineers |
michael@10 | 8 | Duration: 45 minute presentation |
michael@10 | 9 | |
michael@10 | 10 | Author and Speaker |
michael@10 | 11 | ------------------ |
michael@10 | 12 | Michael Schloh von Bennewitz |
michael@10 | 13 | Software Engineer, Europalab Networks |
michael@10 | 14 | web: http://michael.schloh.com/ |
michael@10 | 15 | email: michael@schloh.com |
michael@10 | 16 | isdn: +49(89)44239885 |
michael@10 | 17 | voip: sips:michael@schloh.com |
michael@10 | 18 | xmpp: MSvB |
michael@10 | 19 | |
michael@10 | 20 | Biography |
michael@10 | 21 | --------- |
michael@10 | 22 | Michael Schloh von Bennewitz is a computer scientist specializing in |
michael@10 | 23 | network software, mobile computing, and client server design. He speaks |
michael@10 | 24 | at technical events every year. In the past, he has given lectures on |
michael@10 | 25 | object oriented design, technical writing, network protocols, mobile |
michael@10 | 26 | OSs, MeeGo development, LDAP integration strategies, and the Qt library |
michael@10 | 27 | build process. His speaking style is humorous, using gestures and good |
michael@10 | 28 | eye contact. He walks about the room and writes presentations in SVG |
michael@10 | 29 | or HTML5. |
michael@10 | 30 | |
michael@10 | 31 | Abstract |
michael@10 | 32 | -------- |
michael@10 | 33 | The lightweight directory access protocol (LDAP) is implemented in |
michael@10 | 34 | almost all IP hardphones as well as being prevelent in email clients. |
michael@10 | 35 | Although Active Directory users of Windows technology typically use LDAP |
michael@10 | 36 | for authentication, a number of directory relevant use cases lead to the |
michael@10 | 37 | question 'Why do so few mobile operating systems integrate LDAP client |
michael@10 | 38 | logic?' |
michael@10 | 39 | |
michael@10 | 40 | The presentation begins by defining and explaining the LDAP protocol. |
michael@10 | 41 | Reference is made to some well known client and server implementations |
michael@10 | 42 | as well as reviewing a hello world example application in ten minutes. |
michael@10 | 43 | A comparison is drawn to SQL, a similar technology which most have more |
michael@10 | 44 | experience with. Use cases are explored and judged for their value to |
michael@10 | 45 | the linux mobile ecosystem and Android OS in particular. |
michael@10 | 46 | |
michael@10 | 47 | In past presentations, audiences have put their own use cases |
michael@10 | 48 | forward and compared LDAP directory concepts with corresponding SQL |
michael@10 | 49 | alternatives. |
michael@10 | 50 | |
michael@10 | 51 | The audience consists of regular android users as well as software |
michael@10 | 52 | and network engineers familiar with LDAP, SQL, or neither one. |
michael@10 | 53 | Attendants expect clearly defined LDAP use cases, abstract concepts, |
michael@10 | 54 | concrete definitions, and a well explained hello world LDAP example |
michael@10 | 55 | implementation given live. |
michael@10 | 56 | |
michael@10 | 57 | It is likely that what attendants take home is not what they thought |
michael@10 | 58 | about before. Many have little or no exposure to directory services |
michael@10 | 59 | and will rejoice in learning about LDAP and how easy it is to integrate |
michael@10 | 60 | and administer. The Linux community stands to benefit greatly from a |
michael@10 | 61 | reenergized collective effort at integrating LDAP wherever a strong case |
michael@10 | 62 | for directory service exists. Hello Android, meet LDAP. |
michael@10 | 63 | |
michael@10 | 64 | The following text is a lecture outline. |
michael@10 | 65 | |
michael@10 | 66 | Main chapters (20 minutes) |
michael@10 | 67 | -------------------------- |
michael@10 | 68 | Concepts |
michael@10 | 69 | Directory |
michael@10 | 70 | Access |
michael@10 | 71 | Protocol |
michael@10 | 72 | LDAP |
michael@10 | 73 | Offspring |
michael@10 | 74 | Active directory |
michael@10 | 75 | Comparisons |
michael@10 | 76 | SQL |
michael@10 | 77 | Client storage |
michael@10 | 78 | |
michael@10 | 79 | Business use cases |
michael@10 | 80 | Legacy directories |
michael@10 | 81 | Network configuration |
michael@10 | 82 | Security or license sensitive |
michael@10 | 83 | |
michael@10 | 84 | General use cases |
michael@10 | 85 | Authentication |
michael@10 | 86 | Contacts integration |
michael@10 | 87 | Noncontacts customized |
michael@10 | 88 | Certificate storage |
michael@10 | 89 | SQL competition |
michael@10 | 90 | |
michael@10 | 91 | Platform provision |
michael@10 | 92 | Synchronization |
michael@10 | 93 | Read-optimized lookups |
michael@10 | 94 | Little network penalty |
michael@10 | 95 | Standardized protocol |
michael@10 | 96 | Network bound |
michael@10 | 97 | |
michael@10 | 98 | Platform architecture |
michael@10 | 99 | What Android API provides |
michael@10 | 100 | What Android market offers |
michael@10 | 101 | What 3rd party APIs offer |
michael@10 | 102 | Compatibility concerns |
michael@10 | 103 | |
michael@10 | 104 | Implementations |
michael@10 | 105 | Server-side relevance |
michael@10 | 106 | Client SDKs |
michael@10 | 107 | Apache [1] |
michael@10 | 108 | OpenDS [2] |
michael@10 | 109 | UnboundID [3] |
michael@10 | 110 | Novell [4] |
michael@10 | 111 | Mozilla [5] |
michael@10 | 112 | Netscape (renamed Mozilla) |
michael@10 | 113 | Oracle JNDI [6] (not available) |
michael@10 | 114 | JavaScript (not much) |
michael@10 | 115 | |
michael@10 | 116 | Demonstration (15 minutes) |
michael@10 | 117 | -------------------------- |
michael@10 | 118 | Download and installation of LDAP client SDK |
michael@10 | 119 | Development of Hello LDAP five line application |
michael@10 | 120 | Build, package, install, and test app |
michael@10 | 121 | Review of selected business use case |
michael@10 | 122 | |
michael@10 | 123 | Questions (10 minutes) |
michael@10 | 124 | ---------------------- |
michael@10 | 125 | Anticipated questions |
michael@10 | 126 | Why not just use a (Static|SQL|Lync|other) directory in business? |
michael@10 | 127 | What are the disadvantages of SQL or ODBC for similar applications? |
michael@10 | 128 | How relevant are directory services other than just for contacts? |
michael@10 | 129 | Why would a business not use whatever apps are already in the market? |
michael@10 | 130 | Why not depend on a social network for directory services? |
michael@10 | 131 | |
michael@10 | 132 | Relevant jokes about... |
michael@10 | 133 | ----------------------- |
michael@10 | 134 | Android and Linux |
michael@10 | 135 | Directories and legacy apps |
michael@10 | 136 | |
michael@10 | 137 | Glossary |
michael@10 | 138 | -------- |
michael@10 | 139 | Directory |
michael@10 | 140 | Access |
michael@10 | 141 | Protocol |
michael@10 | 142 | Lightweight Directory Access Protocol (LDAP) |
michael@10 | 143 | Active Directory (AD) |
michael@10 | 144 | Application Programming Interface (API) |
michael@10 | 145 | Software Development Kit (SDK) |
michael@10 | 146 | Structured Query Language (SQL) |
michael@10 | 147 | Open Database Connectivity (ODBC) |
michael@10 | 148 | American National Standards Institute (ANSI) |
michael@10 | 149 | International Organization for Standards (ISO) |
michael@10 | 150 | Internet Engineering Task Force (IETF) |
michael@10 | 151 | Request for Comments (RFC) |
michael@10 | 152 | |
michael@10 | 153 | Errata |
michael@10 | 154 | ------ |
michael@10 | 155 | Errata here. |
michael@10 | 156 | |
michael@10 | 157 | Lecture materials |
michael@10 | 158 | ----------------- |
michael@10 | 159 | This lecture is developed on a public source code revision management |
michael@10 | 160 | system [7]. It is (or will be) published on a public file server [8]. |
michael@10 | 161 | |
michael@10 | 162 | Technical requirements |
michael@10 | 163 | ---------------------- |
michael@10 | 164 | A WLAN connection (for remote slide advancement,) internet connectivity |
michael@10 | 165 | (for demonstration purposes,) and a whiteboard (to sketch diagrams) are |
michael@10 | 166 | needed for this presentation. |
michael@10 | 167 | |
michael@10 | 168 | Links and notes |
michael@10 | 169 | --------------- |
michael@10 | 170 | [1] http://directory.apache.org/ |
michael@10 | 171 | [2] http://www.opends.org/ |
michael@10 | 172 | [3] http://www.unboundid.com/products/ldap-sdk/ |
michael@10 | 173 | [4] http://www.novell.com/developer/ndk/ldap_classes_for_java.html |
michael@10 | 174 | [5] https://wiki.mozilla.org/Directory |
michael@10 | 175 | [6] http://www.oracle.com/technetwork/java/jndi/ |
michael@10 | 176 | [7] http://scm.europalab.com/lectures/ |
michael@10 | 177 | [8] ftp://ftp.europalab.com/pub/doc/lect/ |