We would like to convert a multilingual, 'legacy' Unix, character based
application to a client-server application using wxPython for the client code.
Any suggestions how we can minimize updating client software when screens or
editing rules change?
We also, have a lot of client-server interaction (mainly getting and/or validating
records (in the form of dictionaries) from database tables) and would like to have
minimal delay times.
We think the https based protocol will address the different security hurdles.
What do you suggest we use for the server side Linux based environment?
We would like to convert a multilingual, 'legacy' Unix, character based
application to a client-server application using wxPython for the client code.
Any suggestions how we can minimize updating client software when screens or
editing rules change?
Use XRC for the layout and such for the forms and download the XRC data and some Python code to go along with it (field validations, event handlers and such) from the server when the program needs it. If it checks for updated versions of the forms/code then it can either download the new ones and use them as they are updated, or just use a set from its cache.
···
--
Robin Dunn
Software Craftsman http://wxPython.org Java give you jitters? Relax with wxPython!
Write server code that downloads modules to the client (modules in form of
compiled pyc files). Have the client connect and request modules first.
My app tracks module versions in a db table with timestamps. As long as the
time settings between server and client aren't that far off you'll get the
latest module. Also use XRC files for the screens. If you have a login screen
for the server make that a different xrc, or hardcode it. The you can
download modules and xrc files to the client. Whenever you change something
in the application the client will automatically download the latest version
and install it.
Tip: you will have to modify the __import__ to actually load .pyc files. It
will always look for a py and if none is existing it will throw an error.
The modules should contain the code to handle and verify the input.
To transfer data you maybe want to combine sql results into large dicts.
I figured out that the protocol overhead has a lot of impact on performance.
So my app now downloads things like preset values for one dialog in one large
request instead of a request for each control (i.e. a combobox). Generally
larger chunks are faster to transmitt than a lot of small ones - depending on
the server software and protocol used (I use twisted perspective broker
www.twistedmatrix.com)
If you have information that is more or less static you could cache the
information on the client using pickle to store the result dict on the local
drive. I use that for zipcodes etc - they hardly change. Also use a timestamp
to see if you need to reload the cached data.
Hopefully that helps
UC
···
On Thursday 24 July 2003 05:19 am, Andrew wrote:
We would like to convert a multilingual, 'legacy' Unix, character based
application to a client-server application using wxPython for the client
code.
Any suggestions how we can minimize updating client software when screens
or editing rules change?
We also, have a lot of client-server interaction (mainly getting and/or
validating records (in the form of dictionaries) from database tables) and
would like to have minimal delay times.
We think the https based protocol will address the different security
hurdles. What do you suggest we use for the server side Linux based
environment?
Thanks,
-Andrew
---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-users-unsubscribe@lists.wxwindows.org
For additional commands, e-mail: wxPython-users-help@lists.wxwindows.org
--
UC
--
Open Source Solutions 4U, LLC 2570 Fleetwood Drive
Phone: +1 650 872 2425 San Bruno, CA 94066
Cell: +1 650 302 2405 United States
Fax: +1 650 872 2417
In order to handle the issue of timestamps differing between server and
client, you can also set the timestamp of the downloaded file to the
timestamp on the server, not the current time on the client. That way
the next time you ask for the file, the timestamps match.
···
On Sat, 2003-07-26 at 00:04, Uwe C. Schroeder wrote:
Write server code that downloads modules to the client (modules in form of
compiled pyc files). Have the client connect and request modules first.
My app tracks module versions in a db table with timestamps. As long as the
time settings between server and client aren't that far off you'll get the
latest module. Also use XRC files for the screens. If you have a login screen
for the server make that a different xrc, or hardcode it. The you can
download modules and xrc files to the client. Whenever you change something
in the application the client will automatically download the latest version
and install it.
Tip: you will have to modify the __import__ to actually load .pyc files. It
will always look for a py and if none is existing it will throw an error.
The modules should contain the code to handle and verify the input.
To transfer data you maybe want to combine sql results into large dicts.
I figured out that the protocol overhead has a lot of impact on performance.
So my app now downloads things like preset values for one dialog in one large
request instead of a request for each control (i.e. a combobox). Generally
larger chunks are faster to transmitt than a lot of small ones - depending on
the server software and protocol used (I use twisted perspective broker
www.twistedmatrix.com)
If you have information that is more or less static you could cache the
information on the client using pickle to store the result dict on the local
drive. I use that for zipcodes etc - they hardly change. Also use a timestamp
to see if you need to reload the cached data.
Hopefully that helps
UC
On Thursday 24 July 2003 05:19 am, Andrew wrote:
> We would like to convert a multilingual, 'legacy' Unix, character based
> application to a client-server application using wxPython for the client
> code.
>
> Any suggestions how we can minimize updating client software when screens
> or editing rules change?
> We also, have a lot of client-server interaction (mainly getting and/or
> validating records (in the form of dictionaries) from database tables) and
> would like to have minimal delay times.
> We think the https based protocol will address the different security
> hurdles. What do you suggest we use for the server side Linux based
> environment?
>
> Thanks,
>
> -Andrew
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wxPython-users-unsubscribe@lists.wxwindows.org
> For additional commands, e-mail: wxPython-users-help@lists.wxwindows.org