Recommended Wireless Application Architecture?

Posted on 2007-07-30
Last Modified: 2013-12-17
I am looking for suggested sources (internet or books)  for further information and technologies that should be considered for a new project that we have undertaken:

We have been asked to develop an inspection application that will allow wireless PCs to share and update test information in a central database.  Our customer would like the application to be designed to handle short term disconnections from the wireless network and allow the inpection PCs to continue to operate from buffered information previously received from the central database.  Test results will be buffered in the wireless PC until the wireless network connection is re-established.  Once the connection is re-established, test results will be processed by the central database.

Design criteria:
1) Central database is MS SQL 2005
2) Development platform is .NET (c# is desired)
3) client application to be web based
4) Wireless PCs are XP Pro based
5) Approximately 12 wireless PCs

Question by:tegronakron
    LVL 37

    Expert Comment

    The generally accepted architecture here is to assume asynchronous queued writes to the database via the command pattern (bundled into unit of works) and using versioning to detect conflict (both of these patterns as well as a discussion can be found in PofEAA by Fowler).

    The big questions in dealing with this are...

    1) Is data access localized or must the master database be synchronized? i.e. are they dealing with 20 sets of test results or does everyone need access to everything
    2) Is the data primarily being inserted or updated? A follow up to this is are there invariants between the inserts. Generally inserting data is much easier than updating as inserts tend to not have versioning conflicts.
    3) In the case of a versioning conflict what is the "expected" behavior?

    This architecture allows long term isolation but with longer term isolation runs the risk of more conflicts ... One could combine this with a persistent middle manned observer (or similar pattern) on the server side which would allow subscriptions to data on the server side so the application would automatically receive any necesary changes as a push from the server. i.e. user a updates test 12345, user b is subscribed to test 12345 so the change gets pushed to user b at the next point user b is available.



    Expert Comment



    Take a look at ADO.Net for your data transport between web client and database. The DataSet class in ado is designed to support disconnected data, specfic to your needs.

    LVL 37

    Accepted Solution

    if you like using ADO.NET dont just use the dataset, MS is aware of theshortcomings of that methodlogy and have as such added "synchronization services"

    personally I still prefer the command pattern as I can do things that this cant do but using sync services is a faster path



    Featured Post

    How your wiki can always stay up-to-date

    Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
    - Increase transparency
    - Onboard new hires faster
    - Access from mobile/offline

    Join & Write a Comment

    In this article I will describe the Copy Database Wizard method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
    This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
    This video teaches viewers how to create their own website using cPanel and Wordpress. Tutorial walks users through how to set up their own domain name from tools like Domain Registrar, Hosting Account, and Wordpress. More specifically, the order in…
    Use Wufoo, an online form creation tool, to make powerful forms. Learn how to selectively show certain fields based on user input using rules to gather relevant information and data from your forms. The rules feature provides you with an opportunity…

    745 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    16 Experts available now in Live!

    Get 1:1 Help Now