Alpha Video Training
Results 1 to 8 of 8

Thread: File-Server vs. Client/Server Tutorial

  1. #1
    Member
    Real Name
    Marc King
    Join Date
    Dec 2002
    Location
    California
    Posts
    702

    Default File-Server vs. Client/Server Tutorial


    Just for the curious


    http://www.qview.com/support/version4/faq0009.htm



    Cheers

    Marc
    www.a5solutions.com

  2. #2
    Member Mike Konoff's Avatar
    Real Name
    Mike Konoff
    Join Date
    Apr 2000
    Location
    Illinois
    Posts
    746

    Default RE: File-Server vs. Client/Server Tutorial

    Hey Marc...helpful. Thank you.
    Mike

  3. #3
    "Certified" Alphaholic
    Real Name
    Peter Wayne
    Join Date
    Apr 2000
    Posts
    1,728

    Default RE: File-Server vs. Client/Server Tutorial

    At the risk of adding to confusion, I'd like to put the essence of client-server into a form that should be familiar to Alpha Five users.
    Imagine that I have a single-user system, and I have a an invoice report called as follows:

    preview_report("Overdue Invoices","date()-invoice_date>90 .and. balance_due>5")

    This report will print all invoices with balances of 5 dollars or more that are more than 90 days outstanding.

    On a single-user system, this report will look at my invoice table and examine every single invoice in deciding which ones to include in the report. Perhaps only 2% of the invoices are more than 90 days overdue, but all the invoices have to be examined.

    Now I move to a networked setup. The invoice table is maintained on a file server someplace, and I am sitting at my workstation, hitting the same button to prepare the report.

    The same process happens--the report generator has to look at every single record in the table. The entire invoice table is sent by the fileserver over the network to my workstation, and my workstation does the work of examining each record. In essence, my workstation has no idea that the table is not local.

    Now let's move to a client-server environment. I want, again, to run the same report. This time when I press the button to run the report, the report filter is sent to the server, which is now an intelligent server. The server interprets the filter and looks locally at the table and does the record selection for me. It then sends me only the invoices that are 90 days overdue. This is more work for the server but less work for the workstation.

    There are other advantages to most client-server environments besides a reduction in network traffic. The updating of records and indexes is also done by the server, instead of by each individual workstation. When a workstation adds a record, it does so by sending the new record to the server with a request to add it to the table. Another way of looking at it is that the server thinks of itself as a standalone computer, answering requests to file data and retrieve data. If a workstation goes down when it has Alpha Five open it doesn't affect the server in the slightest, since the workstation doesn't have any files open on the server.

    Coming back to A5v6, I have no inside information on how Alpha Software will implement client-server, but Alpha has a long history of simplifying complicated technology. I would imagine that most applications will not need any reworking. Having said that, I am sure that it would be possible to improve the performance of client-server applications by attention to the structure of the application, but the rules are probably going to be the same as those that apply to current multiuser networked applications: keep your sets small, open only the tables you need for the task at hand, pay attention to work flow, etc.

    Feel free to criticize or add to this, since I'm not an expert!
    - Peter Wayne

  4. #4
    Ray Fernandez
    Guest

    Default RE: File-Server vs. Client/Server Tutorial

    Hi Peter,

    "The server interprets the filter and looks locally at the table and does the record selection for me. It then sends me only the invoices that are 90 days overdue. This is more work for the server but less work for the workstation."

    That's the key, the query is performed at the server level and only the rows that you need are transferred.

    Peter, one of the hardest things I needed to overcome when I've started client-server programming was that you don't need to deal with the entire record set.

    After all how many row/ records can a human being edit at one time. When you need a table count, you don't need to transfer all the rows to your local workstation and have all that traffic court across the wire. Just ask the server and the only piece of information to you get back it the table count.

    Sincerely,
    RF-ARS-Motorola

  5. #5
    Ray Fernandez
    Guest

    Default RE: File-Server vs. Client/Server Tutorial

    Marc,

    I was lucky enough to keep this documentation that I used when I've first started client-server programing. This documentation is pretty much over kill and deals with advanced client-server techniques. I've always kept this as a reference.

    Again this is pretty much over kill and just too much information that the average user doesn't need, but it really goes into details for those who are interested.

    Sincerely,
    RF-ARS-Motorola

  6. #6
    "Certified" Alphaholic
    Real Name
    Raymond Lyons
    Join Date
    Apr 2000
    Location
    Carlsbad, CA
    Posts
    2,143

    Default RE: File-Server vs. Client/Server Tutorial

    Peter,

    Thank you for your example. It helps, or at least it did for me, without getting into a lot of confusion about terminology.

    I usually do not deal with large networks (I mean a huge number of users) or with terribly large tables, so network traffic has not yet become a major concern with most of my applications.

    You wrote: " There are other advantages to most client-server environments besides a reduction in network traffic. The updating of records and indexes is also done by the server, instead of by each individual workstation. When a workstation adds a record, it does so by sending the new record to the server with a request to add it to the table."

    You don't explicitly say it, but my understanding is that since only the server can add or update a record (row, jamdang or whatever!), all my record/table locking problems can at least theoretically be over (if I do everything according some hoyle or another).

    Some users will think, gee, my v5 network apps do not have record locking issues, so why does Ray have so many problems in that regard? One reason (there may be others) is that most of my apps deal mostly with imported data. Users update data but rarely do they enter new data. Plus it is not uncommon for 2 or more users to be using the same record at the same time, or for a user to need to run an update that includes a record that someone else is in the middle of changing. Now, in v5 there are imperfect ways of dealing with some of this. But if under client/server (or flang/danger) the workstations do not directly do anything to a table/record, then if the server does it's job correctly, my understanding is that my record/table locking woes are over.

    That is the main reason I am looking forward to A5v6. It would also be nice if the table structure were such that a field that is sometimes 100 characters long does not require 100 characters worth of bandwidth (bigbangwidth?) when it is empty. But that is nothing compared to record locking issues I run into.

    Ray Lyons

  7. #7
    Steve Dentler
    Guest

    Default RE: File-Server vs. Client/Server Tutorial

    There’s little question that the world is heading to client-server technology; in fact Bill Gates has stated his intended goal of making MSSQL the desktop standard. I wouldn’t bet against him. But not applications are improved by client-server technology. Remember, you lose the advantages of Distributed Processing. If, say, you had an app that had many small tables where a number of users were constantly accessing the data and performing multiple queries; it may prove more efficient to run it against a file server engine thusly taking the load off the server to do all the work. It’s hard for me to imagine such an app, but it should not be dismissed. And while I’m not sure of the speed of MySQL, MSSQL is a dog. Oracle runs rings around it.

    Notwithstanding, MSSQL is slowly becoming the standard…not surprising with MS buying the top names in accounting software and dropping all other platforms except MSSQL. And accounting software is by far the dominant factor in software sales in the US and even influences other sales of software.

    Does client-server mean you can ignore record-locking when designing an app. No, it doesn’t. Client-server can resolve certain issues, you change a record and release the record; I change the record and release it. The engine can make that change successfully even if neither record had been committed to the DB. But most all other record-locking issues must still be handled in your code as it should be. However, a big advantage of client-server is Transaction Processing: the ability to handle Commit and Rollback. Transaction processing can “undo” prior changes when a change operation fails somewhere within the operation. In reality, it doesn’t really undo the change but simply never applies the change from a transaction file. The Codebase Client-Server engine supports Commit and Rollback. And of course, Client-Server makes it much more possible to get your app to a wider user base. Personally, I think A5V6 is going to be an incredible product and I can’t for its rollout.


  8. #8
    Ray Fernandez
    Guest

    Default RE: File-Server vs. Client/Server Tutorial

    Steve,

    I have absolutely nothing personal against you. The only reason I even responded was because people were little bit confused about Alpha 6.

    People at Alpha will be the first to admit that their terminology could use some refreshing at times is quite confusing; we've had this conversation before years ago on this board.

    As people helped me when I first started, I intend to return the favor. And forgive me if I have mastered and to program in client/server.

    But if terms are not fully understood this will lead to confusion. People don't really care what you call this or that as long as what they are using works. But, I do find when trying to learn something new or try to understand it, got to get the meaning down straight.

    Would it shock you to learn the term front-end and back-end was use by Richard Rabins on this board in describing Alpha 6, and I am very sorry to disappoint you, but the rest of the world has accepted this and now Alpha is trying to incorporate this into their product to increase its value to its consumers.

    It's hard for me to just sit back when you make comments like these:

    "And while I’m not sure of the speed of MySQL, MSSQL is a dog. Oracle runs rings around it." - third party tests, having nothing to do with Microsoft shows MSSQL slightly faster, but then again Oracle will come out with their test show Oracle slightly faster - the difference is always an nanoseconds - unless your Mr. Data from Star Track - who cares.

    "Does client-server mean you can ignore record-locking when designing an app. No, it doesn’t. Client-server can resolve certain issues, you change a record and release the record; I change the record and release it." - there is no release of record in a Client Server System and depending on your cursor types there is no record locking.

    I can't wait for the release of version 6, I'm extremely curious how certain issues are going to be resolved. I still support a few of my friends still using Alpha products.

    I hope I have not done anything personally to upset you this was never my intention, but anything I say I can and will be able to back it up with overwhelming proof.

    Respectfully;
    RF-ARS-Motorola

Similar Threads

  1. Update Server and Client
    By spain246 in forum Alpha Five Version 5
    Replies: 4
    Last Post: 09-13-2005, 05:03 AM
  2. Client / Server
    By P Sabourn in forum Alpha Five Version 6
    Replies: 8
    Last Post: 08-28-2005, 05:19 PM
  3. client server configuration over the web
    By tojo in forum Alpha Five Version 6
    Replies: 5
    Last Post: 08-15-2004, 10:04 PM
  4. A5v5 Client Server ???
    By Anthony Tampone in forum Announcements
    Replies: 1
    Last Post: 08-02-2001, 09:47 AM
  5. Client/server?
    By Mike Doty in forum Alpha Five Version 4
    Replies: 3
    Last Post: 05-16-2001, 07:30 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •