1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ldapint/andldapbld.txt Fri Jan 13 19:15:33 2012 +0100 1.3 @@ -0,0 +1,177 @@ 1.4 +LDAP integration in Android 1.5 +Type: Lecture/presentation 1.6 +Category: Engineering/development 1.7 +Topic: Networking/Internals/Implementation choices 1.8 +Audience: Mobile users, 1.9 + software engineers, 1.10 + network engineers 1.11 +Duration: 45 minute presentation 1.12 + 1.13 +Author and Speaker 1.14 +------------------ 1.15 +Michael Schloh von Bennewitz 1.16 +Software Engineer, Europalab Networks 1.17 +web: http://michael.schloh.com/ 1.18 +email: michael@schloh.com 1.19 +isdn: +49(89)44239885 1.20 +voip: sips:michael@schloh.com 1.21 +xmpp: MSvB 1.22 + 1.23 +Biography 1.24 +--------- 1.25 +Michael Schloh von Bennewitz is a computer scientist specializing in 1.26 +network software, mobile computing, and client server design. He speaks 1.27 +at technical events every year. In the past, he has given lectures on 1.28 +object oriented design, technical writing, network protocols, mobile 1.29 +OSs, MeeGo development, LDAP integration strategies, and the Qt library 1.30 +build process. His speaking style is humorous, using gestures and good 1.31 +eye contact. He walks about the room and writes presentations in SVG 1.32 +or HTML5. 1.33 + 1.34 +Abstract 1.35 +-------- 1.36 +The lightweight directory access protocol (LDAP) is implemented in 1.37 +almost all IP hardphones as well as being prevelent in email clients. 1.38 +Although Active Directory users of Windows technology typically use LDAP 1.39 +for authentication, a number of directory relevant use cases lead to the 1.40 +question 'Why do so few mobile operating systems integrate LDAP client 1.41 +logic?' 1.42 + 1.43 +The presentation begins by defining and explaining the LDAP protocol. 1.44 +Reference is made to some well known client and server implementations 1.45 +as well as reviewing a hello world example application in ten minutes. 1.46 +A comparison is drawn to SQL, a similar technology which most have more 1.47 +experience with. Use cases are explored and judged for their value to 1.48 +the linux mobile ecosystem and Android OS in particular. 1.49 + 1.50 +In past presentations, audiences have put their own use cases 1.51 +forward and compared LDAP directory concepts with corresponding SQL 1.52 +alternatives. 1.53 + 1.54 +The audience consists of regular android users as well as software 1.55 +and network engineers familiar with LDAP, SQL, or neither one. 1.56 +Attendants expect clearly defined LDAP use cases, abstract concepts, 1.57 +concrete definitions, and a well explained hello world LDAP example 1.58 +implementation given live. 1.59 + 1.60 +It is likely that what attendants take home is not what they thought 1.61 +about before. Many have little or no exposure to directory services 1.62 +and will rejoice in learning about LDAP and how easy it is to integrate 1.63 +and administer. The Linux community stands to benefit greatly from a 1.64 +reenergized collective effort at integrating LDAP wherever a strong case 1.65 +for directory service exists. Hello Android, meet LDAP. 1.66 + 1.67 +The following text is a lecture outline. 1.68 + 1.69 +Main chapters (20 minutes) 1.70 +-------------------------- 1.71 + Concepts 1.72 + Directory 1.73 + Access 1.74 + Protocol 1.75 + LDAP 1.76 + Offspring 1.77 + Active directory 1.78 + Comparisons 1.79 + SQL 1.80 + Client storage 1.81 + 1.82 + Business use cases 1.83 + Legacy directories 1.84 + Network configuration 1.85 + Security or license sensitive 1.86 + 1.87 + General use cases 1.88 + Authentication 1.89 + Contacts integration 1.90 + Noncontacts customized 1.91 + Certificate storage 1.92 + SQL competition 1.93 + 1.94 + Platform provision 1.95 + Synchronization 1.96 + Read-optimized lookups 1.97 + Little network penalty 1.98 + Standardized protocol 1.99 + Network bound 1.100 + 1.101 + Platform architecture 1.102 + What Android API provides 1.103 + What Android market offers 1.104 + What 3rd party APIs offer 1.105 + Compatibility concerns 1.106 + 1.107 + Implementations 1.108 + Server-side relevance 1.109 + Client SDKs 1.110 + Apache [1] 1.111 + OpenDS [2] 1.112 + UnboundID [3] 1.113 + Novell [4] 1.114 + Mozilla [5] 1.115 + Netscape (renamed Mozilla) 1.116 + Oracle JNDI [6] (not available) 1.117 + JavaScript (not much) 1.118 + 1.119 +Demonstration (15 minutes) 1.120 +-------------------------- 1.121 + Download and installation of LDAP client SDK 1.122 + Development of Hello LDAP five line application 1.123 + Build, package, install, and test app 1.124 + Review of selected business use case 1.125 + 1.126 +Questions (10 minutes) 1.127 +---------------------- 1.128 + Anticipated questions 1.129 + Why not just use a (Static|SQL|Lync|other) directory in business? 1.130 + What are the disadvantages of SQL or ODBC for similar applications? 1.131 + How relevant are directory services other than just for contacts? 1.132 + Why would a business not use whatever apps are already in the market? 1.133 + Why not depend on a social network for directory services? 1.134 + 1.135 +Relevant jokes about... 1.136 +----------------------- 1.137 + Android and Linux 1.138 + Directories and legacy apps 1.139 + 1.140 +Glossary 1.141 +-------- 1.142 + Directory 1.143 + Access 1.144 + Protocol 1.145 + Lightweight Directory Access Protocol (LDAP) 1.146 + Active Directory (AD) 1.147 + Application Programming Interface (API) 1.148 + Software Development Kit (SDK) 1.149 + Structured Query Language (SQL) 1.150 + Open Database Connectivity (ODBC) 1.151 + American National Standards Institute (ANSI) 1.152 + International Organization for Standards (ISO) 1.153 + Internet Engineering Task Force (IETF) 1.154 + Request for Comments (RFC) 1.155 + 1.156 +Errata 1.157 +------ 1.158 + Errata here. 1.159 + 1.160 +Lecture materials 1.161 +----------------- 1.162 +This lecture is developed on a public source code revision management 1.163 +system [7]. It is (or will be) published on a public file server [8]. 1.164 + 1.165 +Technical requirements 1.166 +---------------------- 1.167 +A WLAN connection (for remote slide advancement,) internet connectivity 1.168 +(for demonstration purposes,) and a whiteboard (to sketch diagrams) are 1.169 +needed for this presentation. 1.170 + 1.171 +Links and notes 1.172 +--------------- 1.173 + [1] http://directory.apache.org/ 1.174 + [2] http://www.opends.org/ 1.175 + [3] http://www.unboundid.com/products/ldap-sdk/ 1.176 + [4] http://www.novell.com/developer/ndk/ldap_classes_for_java.html 1.177 + [5] https://wiki.mozilla.org/Directory 1.178 + [6] http://www.oracle.com/technetwork/java/jndi/ 1.179 + [7] http://scm.europalab.com/lectures/ 1.180 + [8] ftp://ftp.europalab.com/pub/doc/lect/