Unix Programming - Help with "Concurrent Network Server" Design

This is Interesting: Free IT Magazines  
Home > Archive > Unix Programming > December 2005 > Help with "Concurrent Network Server" Design





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Help with "Concurrent Network Server" Design
animesh@neolinuxsolutions.com

2005-12-25, 7:47 am

Hi All,

I have a lexical analyzer in flex/bison associated with a lot of custom
C function calls linking to external programs which uses quite a lot of
global variables and data structures. The program is quite complex and
does a lot of Natural Language Processing. The program needs to
initialize a few databases from files every time it launches and needs
to load them in the memory.

I am currently thinking of a design where I could run the program as a
"Concurrent Network Server" and connect to it each time I want to
process some text input. There are the following problems: 1. Since I
use global variables (which cannot be avoided) I need to make sure that
for each new connection, I need to initialize all these global
variables and data structures.
2. Due to the above reason I probably need a new process Image for
every new connection. I have tried using fork but sometimes the global
variables are not properly initialized. Another problem I believe is
that I would very soon finish the fork limit for the OS, since there
are hundreds of subsequent connections.

I need to know the perfect "Concurrent Network Server" design for the
above problem. I am currenlty using Debian GNU/Linux with Kernel 2.4.18
as my primary development machine (I know this is ancient, but there
are other programs which run only with GCC 2.95). I have also ported
the program and not the experimental Network code to FreeBSD
6.0-RELEASE.

I am not much of a OS and Network programming Guy, but am quite
comfortable with C Porgramming and Data Structures. I would really
appreciate if anybody could help me out.

Thanks in Advance,
Animesh

Markus Elfring

2005-12-25, 5:50 pm

> I am currently thinking of a design where I could run the program as a
> "Concurrent Network Server" and connect to it each time I want to
> process some text input. There are the following problems: 1. Since I
> use global variables (which cannot be avoided) I need to make sure that
> for each new connection, I need to initialize all these global
> variables and data structures.


Would you like to minimize your globals to improve your software architecture?
Are there any chances that they can be packaged into separate structures?


> I am not much of a OS and Network programming Guy, but am quite
> comfortable with C Porgramming and Data Structures. I would really
> appreciate if anybody could help me out.


Do you get useful ideas from the following information sources?
- http://en.wikipedia.org/wiki/CORBA
- http://en.wikipedia.org/wiki/Thread...uter_science%29
- http://en.wikipedia.org/wiki/SPlint
- http://www.swig.org/compare.html

Regards,
Markus


Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com