|
|
Comments and Discussions
|
|
 |

|
Hi, Jeff:
I read through your slides and some docs about cluster and parallel computing. One month ago, I played with MPI (Message Passing Interface) for parallel computing. Basically, MPI is pretty simple in concepts, but it is the difficult to code for a real business application. MPI is written from Socket.
In regards to your GMSOCKS, I am not sure how simple it is although it is pretty similar with my SocketPro. How do you handle multiple calls from different clients and ensure that they don't block each other. Remember that client calls could be blocked if some of calls are lengthy actions. In SocketPro, I use threads and message pumps to gurantee that all of calls don't block by assigning all of lengthy actions onto different threads/message pumps.
Best regards,
Yuancai (Charlie) Ye
|
|
|
|

|
where is the document of your com library.
|
|
|
|

|
Hi,
I will provide the documentations for ClientSocket.dll and SockFile.dll. For the other two COM dlls, I will release the source code of the two. So I don't have to provide any docs for the two. The source code will tell you how to use ClientSocket.dll. In regards to the server side dll, I will also provide the docs with a few examples with source codes. You will see how easy to develop server side applications with SocketPro
Best regards,
Yuancai (Charlie) Ye
|
|
|
|

|
Hi,
You can get the doc from www.udaparts.com Thanks a lot for your interesting.
Yuancai (Charlie) Ye
|
|
|
|

|
First I really get a feeling you don't understand what DCOM/CORBA does.
DCOM/CORBA is sooooooo much more than just plain socket transfer.
1)Marshaling Data? Oh, You expecting IP address? Here we go have fun with my Picture scanned at 14000x14000 dpi.
2)Do you handle security in SockPro?
3)Do you release Interfaces at sometime???
MTU/Nagle etc.
Nagle algorithm is turned on by default. What make you think CORBA and DCOM turn it off?
>However, these technologies have one common and fundamental problem that all
> of calls between a client and a server are blocked for a returned result
> (please correct me if this is wrong). A client stays still, and has to wait
> for a while after sending a request to a server. If the request is a
> lengthy action, the client application seems to be dead to a user.
In other words you want to be asyncronously notified when action is complete?
Hmm, Chapter2 Event sinks/ConnectionPoints. Create threadpool, assign worker.. notify back.
So let's see:
>All of applications developed from this framework will has the following BIG
> BIG BIG .... advantages plus other numerous advantages:
> 1)Non-blocking/blocking, parallel computing client and server.
Same as others.
> 2)Both client and server run at the fastest speed because of Nagle algorithm.
Nope could not be that. Less overhead because you hardcoded security + object, dropped wrappers - yes.
> 3)Cross-platform data communication and cross-language development
Use CORBA.
>ware, SocketPro still runs 30% faster even though SocketPro runs in the
> blocking mode according to my experiments.
Well this could be, but if you are, like me, storing data in the database - database runs 10x slower than anything else. Is file transfer good way to test DCOM performance?
>Other advantages includes:
>Simple installation and security setup.
Just about only place I'll give you some credit. Been long time but I still remember the bruises of DCOMConfig.
|
|
|
|

|
Hi, Brian:
Thanks a lot for your input. I am glad to answer your questions. First of all, I am not professional with CORBA and Java/RMI.
1)Marshaling Data? Oh, You expecting IP address? Here we go have fun with my Picture scanned at 14000x14000 dpi.
It is your preference. I don't want to comment it.
2)Do you handle security in SocketPro?
Yes, SocketPro has a simple mechanism to handle security. A user should implement his or her own security check if needed. For your easy testing the package, I did't implement the security check, as indicated at the post. You can easily do security check either when a cilent tries to conncet to a socket application server or when a client sends you password and user id. Additionally, you can do also incorplated SSL with SocketPro. There is nothing to prevent you from using SSL and data encryption.
3)Do you release Interfaces at sometime???
The SocketPro server component is not written from DCOM or COBRA. No interfaces involved. The Client components, ClientSocket.dll, SockFile.dll, SBroker.dll and DResolver.dll, are COM objects written from ATL. You can use them from any languages on Win platforms.
4)Nagle algorithm is turned on by default. What make you think CORBA and DCOM turn it off?
I didn't say that Nagle algorithm is turned off in CORBA and DCOM. What I said that Nagle algorithm in CORBA and DCOM can't take advantage of Nagle algorithm because calls of CORBA and DCOM are internally synchronous, and not asynchronous. I am 100% sure that coalescing works in SocketPro. However, I doubt that coalescing in CORBA and DCOM does although Nagle algorithm is turned on CORBA and DCOM. If you are still not sure this, I am able to tell you to design an experiment to test what I said.
5)In other words you want to be asyncronously notified when action is complete? Hmm, Chapter2 Event sinks/ConnectionPoints. Create threadpool, assign worker.. notify back.
I know all of Event sinks/ConnectionPoints, thread pools, and work threads. It is trival but painful to create asyncronously notifications through worker thread with the price of data synchronization problem and mess in coding logical. The point is that SocketPro get notifications WITHOUT CREATING WORKER THREAD using the nature of window socket. Notifications WITHOUT CREATING WORKER THREAD saves you a lot work!!!
6)Non-blocking/blocking, parallel computing client and server.
Same as others.
I do't agree with you on this. If you use DCOM and CORBA, I bet you have to use worker threads for blocking/blocking, parallel computing either directly or indirectly. If using socket, you will never have to do so with only one exception if you are able to take advantage of WSAAsyXXXX functions. Additionally, pay attention to "All of client function calls, which lead to data movement over internet, can be switched between blocking and non-blocking modes at your will after a socket is created.". Can DCOM and CORBA do this? I bet DCOM and CORBA can't do that.
7)Both client and server run at the fastest speed because of Nagle algorithm.
Nope could not be that. Less overhead because you hardcoded security + object, dropped wrappers - yes.
I don't think you really understand what I said in the short article. Please read through the article more carefully. The SocketPro takes advantage of coalescing of Nagle algorithm, which makes SocketPro run at the fastest speed by reducing the number of data packets. If you are not good with Socket, please see the site http://tangentsoft.net/wskfaq/.
8)Cross-platform data communication and cross-language development
Use CORBA.
Like SocketPro, CORBA is one of possible selections.
I am waiting for your questions. You are welcom to give me your questions and concerns.
Yuancai (Charlie) Ye
|
|
|
|

|
I think I understand what you tried to accomplish.
Something simple to asynchronously to comunicate with. Easy to config. Object would async notify back. Object is nor loaded/nor released dynamically. Implement your own security. Request params is not typed., etc. Each server thread has one and only client.
If so then why are you comparing this to COM/DCOM?
I'll change my rating of this article also it seems many others rated it pretty poorly.
|
|
|
|

|
Hi, Brian:
Again, thanks for your input. At this time, I guess you just understand the surface of SocketPro. I would like to continue answering your questions further.
1)Something simple to asynchronously to comunicate with.
Answer: Something simple to asynchronously to comunicate with, and also simple to synchronously comunicate with. The two running modes, blocking and non-blocking, can be switchable at your will. If functions are called in the non-blocking mode, the coalescing will automatically happen through Nagle algorithm for reducing the round-trips of data over internet by default.
2)Easy to config. Object would async notify back
Answer: Right! Additionally, I think COM/DCOM object sync notify back. There is difference between the two.
3)Object is nor loaded/nor released dynamically.
Answer: Actually, the objects at the server side is dynamically created and destroyed. I can't use the words load and release.
4)Implement your own security.
Answer: This is true.
5)Request params is not typed., etc. Each server thread has one and only client.
Answer: I don't understand "Request params is not typed.", In regards to relationship between the server threads and clients, it is tough to use a few sentences to describe it clearly. In comparison to common data synchronization, the data movement syschronization over a socket is quite special. Two threads are not able to receive or send data on a socket at the same time, but one of the two may be able to receive data and the other one to send data over a socket sumultaneously. One main thread does have multiple clients associated, and one client must has one or more threads/queues to process requests. Some client calls will not create a thread/message, but some client calls will do. All of this are dynamically finished based on if a request is lengthy action or not. If a thread is in idle for a specific time, it is killed for releasing system resource. If a thread is needed, just recreate it one automatically. This is totally isolated from the client side.
6)If so then why are you comparing this to COM/DCOM?
I didn't compare this with COM, but does to DCOM. Both DCOM and SocketPro help you build up client and server applications. However, there are some difference between the two. Some of important and special SocketPro features can NOT be found in DCOM, CORBA and Others. Right?
The two attractive features are:
A. Blocking/non-blocking and parallel computing without using worker threads.
B. Batching calls through coalescing data of Nagle algorithm.
7)I'll change my rating of this article also it seems many others rated it pretty poorly.
I am confident to my work. The rates doesn't influence me very much. This happens because English is not my native languange and people doesn't really what I did.
Best regards,
Yuancai (Charlie) Ye
|
|
|
|

|
Sorry, I didnt see this post till it was too late, so I have enetered a message on the first one
mea culpa, I'd overlaid the browser session with another window, so only saw the top 1/2 of the index screen !!
Garth
|
|
|
|

|
Hi, Garth:
Thanks a lot for your input. I will update this SocketPro package when completed. I estimate that I need one or two months to complete it.
|
|
|
|
 |
|
|
General News Suggestion Question Bug Answer Joke Rant Admin
|
A set of socket libraries for writing distributed computing applications over the internet
| Type | Article |
| Licence | |
| First Posted | 2 Jan 2002 |
| Views | 130,416 |
| Bookmarked | 59 times |
|
|