Re: Offline scenario with low bandwith
From: Darren Shaffer (darrenshaffer_at_discussions.microsoft.com)
Date: 01/26/05
- Next message: GTDriver: "How to create a Database in SQL Server CE???"
- Previous message: Darren Shaffer: "Re: drop table column"
- In reply to: Steve B.: "Offline scenario with low bandwith"
- Next in thread: Steve B.: "Re: Offline scenario with low bandwith"
- Reply: Steve B.: "Re: Offline scenario with low bandwith"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 25 Jan 2005 17:02:15 -0700
Steve,
The idea of replicating a 40-60MB database across GPRS is not going to
perform well, regardless of your choice of RDA, Merge, or a custom
web-services-based
replication strategy. GPRS today has about a 40kbps bandwidth and this is
simply
too much data for that bandwidth. Here are some suggestions for you:
1. figure out how to deploy the initial (very large) SQL CE database to
your mobile
users pre-loaded with reference/static data. In most systems, this type of
data is the bulk
of what needs to be on device anyway. You can create your .SDF file once
loaded in this manner, include it as Content in your Visual Studio project,
and deploy it
along with your application to your users via CAB files or on memory cards.
2. create a web service on IIS that exposes methods to update the central
server
with datasets or diffgrams sent from the mobile users. only send what you
must over
GPRS to the central server. you'll have to manage conflicts yourself, but
two tips to
minimize these conflicts - 1) use GUIDs for everything unique across mobile
users and
2) try to architect in such a way that you can do "deletes" and "inserts"
rather than "updates"
on the central server. don't be intimidated by building your own web
services replication
strategy - it's not as big as it sounds and gives you very fine-grained
control over every aspect of
the data replication.
3. delete data that has been successfully sent to the central server from
the local devices
(if it is no longer needed on device). be sure to compact your SQL CE
database at frequent intervals
to reclaim unused space and re-calculate index statistics (improving
performance).
When Microsoft built a mobile client for their CRM product, they used a
hybrid approach
involving RDA and web services to address this issue. A case study
explaining that architecture
is available at: http://www.only4gurus.com/v3/download.asp?ID=5511 and more
detailed
coverage in an Oct 2004 .Net Developer's Journal article that covers it (you
must be
a subscribed to obtain it).
Darren Shaffer
Principal Architect
Connected Innovation
"Steve B." <steve_beauge@com.msn.Swap.dotcom.and.msn> wrote in message
news:41f6585c$0$20324$626a14ce@news.free.fr...
> Hello,
>
> I'm working on an application that will be based on Pocket PC devices for
> clients, and an office server.
>
> The central server will hold all data, and mobile users need to hold their
> own data and product catalog (up to 60 MB).
> When a user type something, it should be stored locally, and periodically,
> the updates need to be applied to the main system, while new products and
> chaged products are grabbed.
>
> I'm prototyping SQL CE to reach my goal, but I have some difficulties to
> understant the architecture. Here it is what I suppose :
>
> The main server runs IIS 6.0, SQL Server 2000 and SQL CE agent (configured
> and working).
> The mobile device run SQL Server CE.
>
> The application (written in C#) works directly in the local SQL Ce DB.
> When the network is available (typically when the user connect its device
> to a GPRS network), the Remote Data Access object uploads changed data
> (push), then drop table and download the entire table (pull).
>
> This process is not acceptable because of the heavy data that require to
> transit on network (actually the 40 MB).
>
> So I wonder if I missed something.
>
> 1. Is it possible to pull only required data instead of pulling the whole
> table (i.e. changed tables, deleted tables and insterted tables since the
> last sync)?
> 2. Where are located conflicted rows ?
> 3. How whould you do to reach my goal ?
>
> Hope that you'll help in getting answers.
>
> Thanks,
> Steve
>
- Next message: GTDriver: "How to create a Database in SQL Server CE???"
- Previous message: Darren Shaffer: "Re: drop table column"
- In reply to: Steve B.: "Offline scenario with low bandwith"
- Next in thread: Steve B.: "Re: Offline scenario with low bandwith"
- Reply: Steve B.: "Re: Offline scenario with low bandwith"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|