At 16:44 12/29/2004, Art Tostaine wrote:
I've told them that the web is not for this kind of stuff, it's for
customer service, inquiries, simple ordering, etc.

They've asked me to tell them why.

I've done a couple of update apps that use a web interface. There are limitations. You have to lock everything that is read for update so nobody else can get and update it concurrently. At the same time, you have to ensure that people who simply close the browser window don't leave a lock that will prevent anyone from ever accessing the data again. Some reasonable time-out needs to be established for locks, and batches need to be time-stamped so that only the last requester can update. Of course, there is requisite notification message processing that goes along with that.


Since the data transfer rate on the net is unreliable at best, you need to keep batches to the bare minimum size, but still include enough information so you can do some of the inquiry and selection stuff with DHTML or client side XML template processing. Otherwise, every request requires a separate trip to the server. It's doable, but requires compromise and some serious up-front planning.

You probably only want to return the things that have actually changed to the server. If you're returning a variable number of data elements, you need to be a little creative. You can return an XML datastream that is built on the fly in a textarea, for instance, or with IE, if you're going through a Microsoft web server middle tier, you can actually send an XML document object, which works pretty slick.

To communicate with the AS400 database server with .NET, I recommend you do not use ODBC. There's way too much overhead. ASNA has a dynamite sockets server and a tool kit to use it from any standard .NET language. It even handles connection sharing, which means that every connection doesn't require a new iSeries job. They also have their AVR.NET product, which is a complete VB-like programming language and handles the whole communication thing very transparently (really). Failing that (it's not free), you could roll your own sockets interface. I've had good success with dedicated data server application programs on the AS400 that do the database retrievals and updates, and communicate with the middle tier via a tab/CR delimited stream. It's as efficient as can be. Don't forget that if you use some form of connection sharing (highly recommended), and more than one trip to the server is needed to transfer a single transaction due to batch size, you need to lock the connection until the request is complete, or somebody else could start retrieving a different batch in the middle of the transfer process.

What about privacy? My understanding is that anyone who wants to can sniff just about anything they like. Do you care? SSL is an option. I suppose stronger encryption is possible too. I'm still a virgin in that area.

I wouldn't say it can't be done, but in order to do it properly, you need to address all of the above, and like I said, it requires some compromise of function/performance. A high speed connection to the client workstation helps too.

Pete Hall
http://www.pbhall.us



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.