How would you allow mulitple people to access and edit a form at the same time? Basically I want to program a form that exist on a network drive that can be edited in real time by many people.
Thanks.
-Will
Program accessible to many users at once.
Started by williamevanl, Mar 17 2010 06:54 AM
13 replies to this topic
#1
Posted 17 March 2010 - 06:54 AM
|
|
|
#2
Posted 17 March 2010 - 07:30 AM
That's not trivial, and the way you'd have to do it is by sending every individual keystroke to the server, which would then edit the form and send that edit to each of it's clients for that form, including the user to wrote the keystroke. This is a similar system to what Google Wave does, which works, but is also terribly slow.
Wow I changed my sig!
#3
Posted 17 March 2010 - 08:26 AM
Hmm, is that the only way to do it? I know the new office allows multiple users to access the same spreadsheet at the same time.
We currently all fight over an excel spreadsheet and I figured there must be a better way.
We currently all fight over an excel spreadsheet and I figured there must be a better way.
#4
Posted 17 March 2010 - 09:52 AM
You may want to look at gobby or AbiWord, as they both have this type of functionality.
#5
Posted 17 March 2010 - 11:25 AM
^Thanks but there's a lot more to it than that. I would also like to automate certain things with this form so that when people edit objects within the form certain tasks are carried out automatically. I think a whole program will need to be written to accomodate these needs.
I actually plan to write it in c# if at all possible.
I actually plan to write it in c# if at all possible.
#6
Posted 17 March 2010 - 04:23 PM
You mean like adding smart-quotes, etc?
#7
Posted 18 March 2010 - 09:10 AM
It's not possible to do this. After all, it's not conceptually viable to edit the same text field using two people, no matter how advanced a technology you throw at it. There isn't an alien civilization that can do it, and we can't either. Think about it: 5 cursurs editing one "name" field. You need to think about read-only access and locking when editing. These concepts can be easily realized using databases that have built-in functionality for this kind of access and are multi-user oriented, right out of the box (or download package).
If you think it's feasible to edit text fields or such things with multiple users at once, you run into contention problems, that, if you were to eliminate them form the software, they would become human organizational problems: Fred is trying to change a field to "Apple" whereas Ginger requires it to be "Orange" at the same time. Whoever types faster gets to enter their data? But then the other comes back to have the "last word". Then they start beating each other's brains in and whoever has a better weapon now "is right".
A better approach is to have policies on who gets to do what (security) and use locking.
If you have 2 fields that need to correlate and user 1 edits field 1 and user 2 edits field 2, we're going to have problems, especially when, even if the software instantly updates the screen, neither user looks up to see the other user editing the other field.
Say you have an order system and the price of an Apple is $1 and an Orange is $2, but someone swapped them. Lots of complains start flooding in and now 2 users, both on the phone with a complainant, set out to correct the problem. User 1 decides that she's going to swap the names, but user 2 would rather swap the prices. User 1 sets the thing that costs $1 to an Apple and user 2 sets the Orange to $2, at the same time. They hit enter without looking, and it's committed. They're both satisfied the record is now correct.
Now, the Apple will be $2 again. You now have 2 records showing Apple: $2 and Apple $2.
Table start:
Apple: $2
Orange: $1
User 1 Edit:
Apple: $2
Apple: $1
User 2 Edit:
Apple: $2
Apple: $2
Both users then proceed to the other record, where they will be making the same mistake resulting in:
Orange:$1
Apple:$2
Now all records are wrong.
This can be prevented using record locking. After user 1 starts to edit a record, user 2 gets a message "sorry, you can't edit this record, it's being locked by another user. Please wait until the record is done being edited." The system would then automatically refresh the record before user 2 would be put in edit mode and the user would see that what he's trying to do wasn't right.
Many a book has been written on this. Even though it may seem like a good idea to have everybody be the boss at the same time, it really isn't. A point though is to have fine granularity locking so that everyone can edit the file at the same time, but the elements in it or independently locked.
If you think it's feasible to edit text fields or such things with multiple users at once, you run into contention problems, that, if you were to eliminate them form the software, they would become human organizational problems: Fred is trying to change a field to "Apple" whereas Ginger requires it to be "Orange" at the same time. Whoever types faster gets to enter their data? But then the other comes back to have the "last word". Then they start beating each other's brains in and whoever has a better weapon now "is right".
A better approach is to have policies on who gets to do what (security) and use locking.
If you have 2 fields that need to correlate and user 1 edits field 1 and user 2 edits field 2, we're going to have problems, especially when, even if the software instantly updates the screen, neither user looks up to see the other user editing the other field.
Say you have an order system and the price of an Apple is $1 and an Orange is $2, but someone swapped them. Lots of complains start flooding in and now 2 users, both on the phone with a complainant, set out to correct the problem. User 1 decides that she's going to swap the names, but user 2 would rather swap the prices. User 1 sets the thing that costs $1 to an Apple and user 2 sets the Orange to $2, at the same time. They hit enter without looking, and it's committed. They're both satisfied the record is now correct.
Now, the Apple will be $2 again. You now have 2 records showing Apple: $2 and Apple $2.
Table start:
Apple: $2
Orange: $1
User 1 Edit:
Apple: $2
Apple: $1
User 2 Edit:
Apple: $2
Apple: $2
Both users then proceed to the other record, where they will be making the same mistake resulting in:
Orange:$1
Apple:$2
Now all records are wrong.
This can be prevented using record locking. After user 1 starts to edit a record, user 2 gets a message "sorry, you can't edit this record, it's being locked by another user. Please wait until the record is done being edited." The system would then automatically refresh the record before user 2 would be put in edit mode and the user would see that what he's trying to do wasn't right.
Many a book has been written on this. Even though it may seem like a good idea to have everybody be the boss at the same time, it really isn't. A point though is to have fine granularity locking so that everyone can edit the file at the same time, but the elements in it or independently locked.
#8
Posted 18 March 2010 - 02:04 PM
Firebird_38 said:
It's not possible to do this. After all, it's not conceptually viable to edit the same text field using two people, no matter how advanced a technology you throw at it. There isn't an alien civilization that can do it, and we can't either.
To be honest, it'd pretty ridiculous that you just speculated on alien software technology and what it can't do. Actually it's very ridiculous.
#9
Posted 18 March 2010 - 04:04 PM
No it it'd not pretty rediculous (it would not pretty rediculous). Don't comment on my grammar lest you insult yourself. In any case, I regularly use alien software (alienware) and it's no better than the bulky crap from MS. Besides, if something is impossible, then it's impossible anywhere and for everyone and everything. If something is possible somewhere for somewhere or something, it's not impossible. Hence I know and it's not rediculous. Besides, alien software doesn't do a good job with anything, aliens are non-existent after all.
Point proven.
Point proven.
#10
Posted 18 March 2010 - 04:14 PM
There are several programs based on this idea. The reality is that there has to be a "master" computer. It will process editing requests in the order they are received.
#11
Posted 18 March 2010 - 04:31 PM
It's indeed trivial to make a computer with 2 mice attached and 2 cursors on the screen, or maybe have 2 screens. One blue cursor, one red one, you know which is yours. But you can't drive a car with 2 steering wheels and 2 people. You can't control (type in) one edit box with 2 people. It's quite easy to make a car with 2 steering wheels. Trivial stuff. Yes, over a network, lag becomes a technical issue. We can solve that. But we can't solve that 2 people cannot steer the same car. They just don't agree. Contention.
#12
Posted 18 March 2010 - 06:00 PM
Firebird_38 said:
No it it'd not pretty rediculous (it would not pretty rediculous). Don't comment on my grammar lest you insult yourself. In any case, I regularly use alien software (alienware) and it's no better than the bulky crap from MS. Besides, if something is impossible, then it's impossible anywhere and for everyone and everything. If something is possible somewhere for somewhere or something, it's not impossible. Hence I know and it's not rediculous. Besides, alien software doesn't do a good job with anything, aliens are non-existent after all.
Point proven.
Point proven.
What is wrong with you? I didn't comment on your grammar buddy. Do you know what grammar is? And did you just compare alien technology to alienware? Oh God.
Alien's are non-existent? And your background in what field has given you the knowledge to make this comment?
You don't know what you're talking about.


Sign In
Create Account


Back to top









