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