[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/phpgwapi/doc/xmlrpc/ -> gw_interface.lyx (source)

   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


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7