Directory DB Approaches

  • Hi folks,

    I'm interested in your opinion concerning a good approach to the
    following problem:

    A database of related customer records and their purchases.
    It needs to be accessed by 2..10 clients simultaneously.
    It should leverage Address Book, allowing for shared contacts that are
    common to the organization, while the individual user of the account
    can also have their personal, non-shared contacts in their addressbook.
    Ideally, i could also utilize CoreData.

    Some approaches that I'm in the process of reading about:
    - Using an Open Directory server to store the shared contacts,
    accessible via Addressbook through the LDAP connector.  But what about
    the related tables that wouldn't be in the LDAP directory (purchases,
    transactions etc), how would they synchronize?
    - Using Sync Services.  The documentation seems to imply that it's for
    syncing one person's data with multiple devices and does so via .Mac
    for remote machines, but someone wrote a Google Calendar <-> iCal sync
    that doesn't seem to require .Mac (or maybe it does).  If Sync
    Services requires everyone to hve the same .Mac account, that woudn't
    work.
    - Design my own implementation of a customer database, and then use
    the cocoa Address Book functions to synchronize the local addressbook
    with my customer database.  Still, how then might the multiple local
    storages be synchronized among client workstations?

    Thanks for any insights, or redirects to FAQs or whatever might have
    some additional leads to follow.

    Woody
  • > - Using an Open Directory server to store the shared contacts,
    > accessible via Addressbook through the LDAP connector.  But what about
    > the related tables that wouldn't be in the LDAP directory (purchases,
    > transactions etc), how would they synchronize?

      I'm not sure whether this would be a good technology for your
    purposes or not, but that discussion is far off-topic for the
    Cocoa-dev list.

    > - Using Sync Services.  The documentation seems to imply that it's for
    > syncing one person's data with multiple devices and does so via .Mac
    > for remote machines, but someone wrote a Google Calendar <-> iCal sync
    > that doesn't seem to require .Mac (or maybe it does).  If Sync
    > Services requires everyone to hve the same .Mac account, that woudn't
    > work.

      Synchronizing would be necessary every time you make a change to
    avoid having to spend large amounts of time resolving conflicts, etc.
    It grows worse if suddenly it's more than 2-10 people using the
    system.

      Even forgetting that, it's built (currently) for .Mac so basing a
    mission-critical production application's design on something for
    which it was not designed is a potential disaster waiting to happen.

      Possible? Sure. A good idea? Well ... let's call this Plan Z.

    > - Design my own implementation of a customer database, and then use
    > the cocoa Address Book functions to synchronize the local addressbook
    > with my customer database.  Still, how then might the multiple local
    > storages be synchronized among client workstations?

      I hate to say it, but this is your best bet. If you use a MySQL or
    PostgreSQL database (there are Cocoa frameworks for both, though
    MySQL's licensing is ridiculous for commercial applications), you
    could use that as the central store. Database servers really are quite
    good at that whole "sharing transactional data" thing. ;-)

      As to "how to synchronize", that's an incredibly broad question, a
    clear answer to which you're unlikely to receive as you've asked it.
    Best to read all you can about the AddressBook framework and your
    database of choice (and the docs for whichever framework/classes you
    use to connect), then ask direct, pointed questions about that which
    you don't understand.

    --
    I.S.
  • Please take a look at http://www.addressbookserver.com where you will
    find ABxLDAP (AddressBook -> LDAP) and Address Book Server
    (AddressBook <-> DB).

    Looking forward to hear from you
    Alex

    On 17 Dec 2007, at 14:57, gotWoody wrote:

    > Hi folks,
    >
    > I'm interested in your opinion concerning a good approach to the
    > following problem:
    >
    > A database of related customer records and their purchases.
    > It needs to be accessed by 2..10 clients simultaneously.
    > It should leverage Address Book, allowing for shared contacts that
    > are common to the organization, while the individual user of the
    > account can also have their personal, non-shared contacts in their
    > addressbook.
    > Ideally, i could also utilize CoreData.
    >
    > Some approaches that I'm in the process of reading about:
    > - Using an Open Directory server to store the shared contacts,
    > accessible via Addressbook through the LDAP connector.  But what
    > about the related tables that wouldn't be in the LDAP directory
    > (purchases, transactions etc), how would they synchronize?
    > - Using Sync Services.  The documentation seems to imply that it's
    > for syncing one person's data with multiple devices and does so
    > via .Mac for remote machines, but someone wrote a Google Calendar <-
    >> iCal sync that doesn't seem to require .Mac (or maybe it does).
    > If Sync Services requires everyone to hve the same .Mac account,
    > that woudn't work.
    > - Design my own implementation of a customer database, and then use
    > the cocoa Address Book functions to synchronize the local
    > addressbook with my customer database.  Still, how then might the
    > multiple local storages be synchronized among client workstations?
    >
    > Thanks for any insights, or redirects to FAQs or whatever might have
    > some additional leads to follow.
    >
    > Woody
previous month december 2007 next month
MTWTFSS
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Go to today