[ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
1 #LyX 1.1 created this file. For more info see http://www.lyx.org/ 2 \lyxformat 218 3 \textclass docbook 4 \language english 5 \inputencoding auto 6 \fontscheme default 7 \graphics default 8 \paperfontsize default 9 \spacing single 10 \papersize Default 11 \paperpackage a4 12 \use_geometry 0 13 \use_amsmath 0 14 \paperorientation portrait 15 \secnumdepth 3 16 \tocdepth 3 17 \paragraph_separation indent 18 \defskip medskip 19 \quotes_language english 20 \quotes_times 2 21 \papercolumns 1 22 \papersides 1 23 \paperpagestyle default 24 25 \layout Title 26 27 Proposal for a Common Groupware Interface Standard 28 \layout Author 29 30 (C) 2001-2004 Miles Lott <milos@groupwhere.org> 31 \layout Date 32 33 September 13, 2001 and December 29, 2003 34 \layout Standard 35 36 37 \begin_inset LatexCommand \tableofcontents{} 38 39 \end_inset 40 41 42 \layout Section 43 44 Scope 45 \layout Standard 46 47 As many different opensource and freesoftware groupware systems are being 48 developed, the full realization of the dream of a connected world should 49 be prefaced by an agreement to interoperate. 50 There are limited ways in which cooperation with these and commercial groupware 51 systems may be achecived, the majority if not all of which were derived 52 via the establishment of open standards. 53 These might include email (POP3/IMAP), contacts(LDAP,vcard), or scheduling(ical 54 /vcal). 55 It is felt that while these have proven themselves to be very useful, they 56 are insufficient to satisfy the real needs of a typical business environment. 57 \layout Standard 58 59 This document hopes to provide a reasonable, if limited, recommendation 60 for a set of standardized methods to be used for groupware services interaction. 61 More specifically, it hopes to address the need for such a standard as 62 well as to spur discussion about the common service names and methods themselve 63 s. 64 \layout Standard 65 66 Examples will be given for implementations in XML-RPC, since this standard 67 is relatively fixed and open. 68 \layout Standard 69 70 This document does not provide recommendations for the underlying access 71 control system which would allow or deny a particular action. 72 \layout Standard 73 74 Also not discussed here is login and authorization to be used for initial 75 access to a service provider. 76 \layout Section 77 78 The Services 79 \layout Subsection 80 81 Overview 82 \layout Standard 83 84 There are a few common services types that will be needed for minimum useability 85 of a groupware server or application. 86 They are: 87 \layout Itemize 88 89 Contacts 90 \layout Itemize 91 92 Schedule 93 \layout Itemize 94 95 Notes 96 \layout Itemize 97 98 Todo 99 \layout Standard 100 101 These services are represented already in places such as existing groupware 102 client-server applications and also in the PalmOS basic-4 buttons and applicati 103 ons. 104 Different systems may have different names for these services internally, 105 e.g. 106 Contacts - addresses, addressbook, people, Schedule - calendar, agenda, 107 meetings. 108 \layout Standard 109 110 Within each of these services are some common methods that would be called 111 to store, retreive, or update data: 112 \layout Itemize 113 114 read_list 115 \layout Itemize 116 117 read 118 \layout Itemize 119 120 save 121 \layout Itemize 122 123 delete 124 \layout Subsection 125 126 Detail 127 \layout Subsubsection 128 129 Contacts 130 \layout Standard 131 132 The concept of contacts may encompass local addressbooks, LDAP, and lists 133 stored in other media. 134 The purpose of the contacts service is not to duplicate or attempt to replace 135 these. 136 In some respects, it might do just that. 137 But its goal is more so to provide a common and shareable way for the other 138 core services to create, edit, and read a common user and address list. 139 All of the other services may use the contact service to obtain record 140 owner information to be used in access control. 141 They would also use them when it is required to share this data, as with 142 a meeting where other local and non-local users will be invited to attend. 143 \layout Standard 144 145 Contacts may include the local installed user base, users on other cooperative 146 servers, or email addresses used for limited cooperation with other groupware 147 services that are not compliant with this service scheme or implementations 148 thereof. 149 It could also include individuals using web-based or local ISP email services. 150 The scope of this document, however, is to define the service with regard 151 to the common methods to be used for server-server and client-server communicat 152 ions: 153 \layout Itemize 154 155 read_list 156 \layout Standard 157 158 This method is used to list contacts, with or without limits, filters, or 159 search criteria. 160 In this way it can be used for simple lists or to search for contact records 161 and their identifiers. 162 The optional search criteria includes: 163 \layout Enumerate 164 165 start - Start at this identifier (integer: default 0) 166 \layout Enumerate 167 168 limit - Limit to this number of records returned(integer: unlimited by default) 169 \layout Enumerate 170 171 fieldlist - limit to showing only these fields (array: default to identifier, 172 owner identifier, possibly firstname and lastname) 173 \layout Enumerate 174 175 filter - Show records that are public or private only, or other system-specific 176 filters, e.g group or company(string: default '') 177 \layout Enumerate 178 179 query - Search internal fieldlist for a value (string: default '') 180 \layout Standard 181 182 The return for this method includes: 183 \layout Enumerate 184 185 count of number of records returned(integer) 186 \layout Enumerate 187 188 array consisting of: array: identifier => (array: fieldlist key => value 189 pairs) 190 \layout Itemize 191 192 read 193 \layout Standard 194 195 Once the identifier for a single contact record is known, the contact may 196 be read for more detail using this method. 197 This takes two parameters: 198 \layout Enumerate 199 200 identifier - (integer: no default) 201 \layout Enumerate 202 203 fieldlist - limit to showing only these fields (array: default to identifier, 204 owner identifier, possibly firstname and lastname) 205 \layout Standard 206 207 And returns: 208 \layout Enumerate 209 210 array consisting of: array: identifier => (array: fieldlist key => value 211 pairs) 212 \layout Itemize 213 214 save 215 \layout Standard 216 217 This is a method used to save an existing record or create a new one. 218 If the identifier for an existing record is not passed, a new entry will 219 be created. 220 \layout Itemize 221 222 delete 223 \layout Standard 224 225 This will allow deletion of a record by passing its identifier. 226 \layout Subsubsection 227 228 Schedule 229 \layout Subsubsection 230 231 Notes 232 \layout Subsubsection 233 234 Todo 235 \layout Subsection 236 237 Examples in XML-RPC 238 \layout Standard 239 240 Query the contacts service for read_list, using only start and limit to 241 grab the first 5 records, starting with identifier 1. 242 Additionally, return only the firstname and lastname fields n_given and 243 n_family (firstname and lastname in pseudo vcard format): 244 \layout Code 245 246 <methodCall> 247 \layout Code 248 249 <methodName>service.contacts.read_list</methodName> 250 \layout Code 251 252 <params> 253 \layout Code 254 255 <param> 256 \layout Code 257 258 <value><struct> 259 \layout Code 260 261 <member><name>start</name> 262 \layout Code 263 264 <value><string>1</string></value> 265 \layout Code 266 267 </member> 268 \layout Code 269 270 <member><name>limit</name> 271 \layout Code 272 273 <value><string>5</string></value> 274 \layout Code 275 276 </member> 277 \layout Code 278 279 <member><name>fields</name> 280 \layout Code 281 282 <value><struct> 283 \layout Code 284 285 <member><name>n_given</name> 286 \layout Code 287 288 <value><string>n_given</string></value> 289 \layout Code 290 291 </member> 292 \layout Code 293 294 <member><name>n_family</name> 295 \layout Code 296 297 <value><string>n_family</string></value> 298 \layout Code 299 300 </member> 301 \layout Code 302 303 </struct></value> 304 \layout Code 305 306 </member> 307 \layout Code 308 309 <member><name>query</name> 310 \layout Code 311 312 <value><string></string></value> 313 \layout Code 314 315 </member> 316 \layout Code 317 318 <member><name>filter</name> 319 \layout Code 320 321 <value><string></string></value> 322 \layout Code 323 324 </member> 325 \layout Code 326 327 </struct></value> 328 \layout Code 329 330 </param> 331 \layout Code 332 333 </params> 334 \layout Code 335 336 </methodCall> 337 \layout Section 338 339 Conclusion 340 \layout Standard 341 342 This document outlined the following services and methods: 343 \layout Subsection 344 345 Contacts: 346 \layout Itemize 347 348 service.contacts.read_list([search criteria]) 349 \layout Itemize 350 351 service.contacts.read(identifier,[fieldlist]) 352 \layout Itemize 353 354 service.contacts.save(fields) 355 \layout Itemize 356 357 service.contacts.delete(identifier) 358 \layout Subsection 359 360 Schedule: 361 \layout Itemize 362 363 service.schedule.read_list([search criteria]) 364 \layout Itemize 365 366 service.schedule.read(identifier,[fieldlist]) 367 \layout Itemize 368 369 service.schedule.save(fields) 370 \layout Itemize 371 372 service.schedule.delete(identifier) 373 \layout Subsection 374 375 Notes: 376 \layout Itemize 377 378 service.notes.read_list([search criteria]) 379 \layout Itemize 380 381 service.notes.read(identifier,[fieldlist]) 382 \layout Itemize 383 384 service.notes.save(fields) 385 \layout Itemize 386 387 service.notes.delete(identifier) 388 \layout Subsection 389 390 Todo: 391 \layout Itemize 392 393 service.todo.read_list(search criteria) 394 \layout Itemize 395 396 service.todo.read(identifer,[fieldlist]) 397 \layout Itemize 398 399 service.todo.save(fields) 400 \layout Itemize 401 402 service.todo.delete(identifier) 403 \the_end
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |