A lot of people seem confused by your architecture. It might help if you provided a complete (but high-level) description of the architecture of the system in a single email.
On Wed, May 16, 2012 at 12:47 PM, Eugène Ngontang <sympav...@gmail.com>wrote: > No i'm not inventing a server. > The application has a centrilzed server (module server installed on a > dedicated host > ). > The dispatches tasks to remote clients (the client module is installed on > each client host) and receives informations from clients about taks state. > > How would you like me to describe or call my app components? > What is not clear for you in my architecture description? > How would you call my server module? > And i'm not saying the database is installed on the same machine as the > server, even if it could be. > But only the server can access database directly. > > If you like so, What i call server could stand for a central task > supervisor. > > Thanks for attention Jani. > Le 16 mai 2012 12:01, "Jani Tiainen" <rede...@gmail.com> a écrit : > > Hi, >> >> Like I said, it all depends what you have and what is the goal. >> >> You keep constantly talking about magical "server" that talks with the >> database. Is this server already existing piece of infrastructure that some >> programs already use and you like to hook up with that? >> >> Or is this server something that you just invented in lack of better >> knowledge? >> >> You talk about state changes (in example you give a task). Must those >> changes be reflected in "real time" between arbitrary clients? Or is it >> sufficient that client sees changes at some later point? >> >> >> >> 16.5.2012 3:30, Eugène Ngontang kirjoitti: >> >>> Hi Jani! >>> >>> Now you can understand what i meant, but I'm not just try to mec things >>> complicated. >>> >>> I'm not talking here about my technical implementation, but i'm >>> describing the needs/contraints, and my app architecture to you. >>> >>> - The remote clients are at the heart of the software system, since >>> data stored in the database are destined to them (the server push each >>> information to the corresponding host) >>> - When a client starts, it trys to establish a connection with the >>> server, and if succeed, it retrieves its informations from the server. >>> The server then send back informations conerning the host executing the >>> client (the way server retrieves informations from the data base manager >>> doesn't matter here, it's a technical purpose) >>> - When a task state changes, it has to notify the server by sending a >>> packet through the network. The GUI (web browser) has then to display >>> the new state. >>> - When a user of the software wants to create a new task on a host, it >>> uses the GUI for the purpose, and the information has to be sent to the >>> remote corresponding client/host for processing. >>> >>> Tell in my place, what logic would you adopt. I would like idea from you >>> guys in this case, before go on a first definitive choice. >>> >>> I can see web sockets solves so much problems for developpers, and i'm >>> still looking if it could help achieve correctly what I want to. The >>> problem of IE < 10 for the instance is not so important. >>> >>> Now also, can you try to advise me the best way for serving file using >>> python-Django (apache, unicorn, ..)? >>> >>> Thanks again. >>> >>> 2012/5/15 Jani Tiainen <rede...@gmail.com <mailto:rede...@gmail.com>> >>> >>> Hi, >>> >>> Now it starts to make "sense". >>> >>> I just wonder why are you trying to build something so extremely >>> complicated? >>> >>> What is the rationale behind to have additional middleware layer >>> between web ui and the server backend? >>> >>> Wouldn't it be sufficient to have architecture like: >>> >>> Browser <-> django middleware <-> remote backend >>> >>> Communication between django middle ware and remote backend should >>> be built on top of some messaging system, like celery + rabbitmq >>> which gives you quite standard asyncronous communication between >>> django middleware and remote backend. Of course you might need to >>> write some adapters on remote side but that's part of the job. >>> >>> Only real problem is that if you need to push changes to browser >>> side. There doesn't exists any really good ways to do that. HTML5 >>> was supposed to bring websockets to overcome the problem. One big >>> problem is that only from IE series only IE 10 supports it. All >>> others, FF, Chrome, Safari has had it for a good while. >>> >>> There exists also alternative workarounds like Comet, BOSH, push and >>> few others. >>> >>> So let >>> 15.5.2012 2:18, Eugčne Ngontang kirjoitti: >>> >>> Hi Jani! >>> >>> I haven't seen the last statements of your post, whre you say >>> I'm not >>> really clear and that i'm building a non-http GUI using Django. >>> >>> >>> OK let's stay on the rendering issue only, and specify things >>> simply. >>> This is a simple description of the architecture I want to set up >>> : >>> >>> - A Client (not a user interface). Client here means a module >>> which is >>> installed in a remote computer and communicate with the server >>> via socket. >>> >>> - A server listening from several remote client (Here i'm not >>> talking >>> yet about http request), and receive informatons from them. In >>> fact >>> client must be doing actions and send informations about their >>> actions >>> to the server. In the oder hand data to be processed by each >>> client is >>> pushed/dispatched by the server. >>> >>> - And admin (not Django Admin, but admin in the sens of my app), >>> destined to be the module allowing use of the application. Then >>> the >>> Admin module is part of the server and will proviede a GUI for >>> manipulating data in the data base. It's in this GUI that users >>> of the >>> application will enter their request, by filling a form or >>> clicking a >>> link for exemple. And data from the GUI could be stored in the >>> data >>> base, while being send to the remote clients (not to be >>> displayed by the >>> client, but to be processed). In the same way, informations >>> comming from >>> those clients to the server have to be diplayed in the GUI. >>> >>> With a graphical GUI, The server could have a reference to an >>> object >>> representing my GUI, and it will be done. >>> But I choose a web GUI for view and administration. It's where >>> Django comes. >>> >>> And my problem is to make my server being running a network >>> thread, >>> receiving data from the GUI(web browser) and sending >>> informations update >>> to the GUI (for web page content). >>> >>> This is really my issue. If all the actions of my server >>> depended on my >>> GUI request (http request), I could do what I like behind when >>> handling >>> a http request, but while managing http:8080 connexions, the >>> application >>> is running another process/thread on another TCP/UDP port. >>> >>> And yes I want a web GUI. >>> >>> Is why I'm looking the best way to achieve that. We can exclude >>> Django >>> web server, as it will not be used in production for the >>> application >>> deployment. >>> >>> Hope now it's clear for you, and more for the other users. >>> >>> Thanks! >>> >>> 2012/5/13 Jani Tiainen <rede...@gmail.com >>> <mailto:rede...@gmail.com> <mailto:rede...@gmail.com >>> <mailto:rede...@gmail.com>>> >>> >>> >>> Hi, >>> >>> There is several ways to achieve what you maybe want to do. >>> One of >>> the simplest way is separate frontend (your userinterface) and >>> server backend. You can build your Django application as a >>> service >>> (xml-rpc, json-rpc, restful). That would give you advantage to >>> choose whatever frontend you like. Of course it would add >>> some overhead. >>> >>> On Sun, May 13, 2012 at 1:14 PM, Eugene NGONTANG >>> <sympav...@gmail.com <mailto:sympav...@gmail.com> >>> <mailto:sympav...@gmail.com <mailto:sympav...@gmail.com>>> wrote: >>> >>> Hi! >>> >>> I'm a python developper, but new in django. >>> >>> I'm devolopping a multi clients-server application. >>> >>> The server and the clients are communicating via >>> sockets, The server >>> receive somme states from clients, and display them in >>> the User >>> interface. >>> In the other hand, the server has to send a >>> message(packet) to the >>> client when an event occurs in the GUI, and data are >>> stored in a >>> database. >>> >>> >>> Note that Django is mainly built for web (HTTP protocol based) >>> applications. In such an environment you run two different >>> things: >>> your GUI (usually browser) that is totally ignorant of >>> server side >>> (Django). Then you send request to some URL, Django routes it >>> to >>> some view and view produces again next output to be >>> displayed in GUI >>> (browser again). One of the common functions in the view is >>> database >>> manipulation. >>> >>> Then I choose to make a web interface where data could >>> be viewed and >>> manipulated. And I discovered Django, which fit all my >>> needs. I >>> tested >>> and liked the framework. >>> >>> My questions are: >>> - Can I override the djando admin methods so that i can >>> not only >>> customized my views and html page, but also manipulate >>> objects in >>> database, so that i can do another action when catching >>> an event in >>> the GUi. >>> For example, taking the django admin tutorial, I would >>> like to >>> do and >>> action like sending a message the user choose "add a >>> poll". How >>> can I >>> do those things? Cause I noticed that method that alter >>> data in data >>> base are part of django admin module and cannot be >>> overriden >>> >>> >>> You shouldn't "fight against admin". If something cannot be >>> done in >>> the admin you usually get a way with writing your own stuff. >>> >>> - To achieve what I want, i would like to run my server >>> engine >>> and my >>> django admin in two separated threads. How do i run my >>> admin >>> module in >>> a thread? Cause till now i'm using the command line >>> "python >>> manage.py >>> runserver >>> >>> >>> Again your GUI would run "somewhere" (it's not relevant) and >>> it's >>> not concern of Django. It's architecture is designed to be >>> share >>> nothing - which means that you can run several >>> threads/processes of >>> your applications - And those threads/processes are not aware >>> of >>> other existence. And it doesn't matter. >>> >>> - I also tried to overide tables name, and foreign keys >>> names. Could >>> you guys provide me a true life example? >>> >>> >>> Err.. Override what and where? And how you tried to do that? >>> >>> - And now in the production step, I would like you guys >>> to tell me >>> what to choose for serving files. I would like to with >>> your >>> experience >>> what's better between running a unicorn server or apache >>> with >>> mod_wsgi >>> >>> I don't know if i'm clear, but i hope. In brief I'd like >>> to use the >>> django framework features to design my Gui like i want, >>> customize >>> interactions between the gui and the backend, and choose >>> a good web >>> server for the production. >>> >>> >>> No you're definitely not clear. My interpretation is that >>> you want >>> to build (non-http based) GUI using Django as backend >>> server. Even >>> Django isn't exactly designed for such a work it still can >>> do it. >>> >>> If it was something else try to split your questions in >>> smaller >>> fragments, perferably with more clearly specified use cases, >>> workflows and samples of the code. >>> >>> Thank you for advance >>> >>> -- >>> You received this message because you are subscribed to >>> the >>> Google Groups "Django users" group. >>> To post to this group, send email to >>> django-users@googlegroups.com <mailto:django-users@** >>> googlegroups.com <django-users@googlegroups.com>> >>> <mailto:django-users@__googleg**roups.com<http://googlegroups.com> >>> >>> <mailto:django-users@**googlegroups.com<django-users@googlegroups.com> >>> >>. >>> >>> To unsubscribe from this group, send email to >>> >>> django-users+unsubscribe@__goo**glegroups.com<http://googlegroups.com> >>> >>> <mailto:django-users%**2bunsubscr...@googlegroups.com<django-users%252bunsubscr...@googlegroups.com> >>> **> >>> >>> <mailto:django-users%__**2bunsubscr...@googlegroups.com<django-users%25__2bunsubscr...@googlegroups.com> >>> >>> <mailto:django-users%**252Bunsubscribe@googlegroups.**com<django-users%25252bunsubscr...@googlegroups.com> >>> >__>. >>> >>> For more options, visit this group at >>> >>> http://groups.google.com/__**group/django-users?hl=en<http://groups.google.com/__group/django-users?hl=en> >>> >>> <http://groups.google.com/**group/django-users?hl=en<http://groups.google.com/group/django-users?hl=en> >>> >. >>> >>> >>> >>> >>> -- >>> Jani Tiainen >>> >>> - Well planned is half done, and a half done has been >>> sufficient >>> before... >>> >>> -- >>> You received this message because you are subscribed to the >>> Google >>> Groups "Django users" group. >>> To post to this group, send email to >>> django-users@googlegroups.com <mailto:django-users@** >>> googlegroups.com <django-users@googlegroups.com>> >>> <mailto:django-users@__googleg**roups.com<http://googlegroups.com> >>> >>> <mailto:django-users@**googlegroups.com<django-users@googlegroups.com> >>> >>. >>> >>> To unsubscribe from this group, send email to >>> >>> django-users+unsubscribe@__goo**glegroups.com<http://googlegroups.com> >>> >>> <mailto:django-users%**2bunsubscr...@googlegroups.com<django-users%252bunsubscr...@googlegroups.com> >>> **> >>> >>> <mailto:django-users%__**2bunsubscr...@googlegroups.com<django-users%25__2bunsubscr...@googlegroups.com> >>> >>> <mailto:django-users%**252Bunsubscribe@googlegroups.**com<django-users%25252bunsubscr...@googlegroups.com> >>> >__>. >>> >>> For more options, visit this group at >>> >>> http://groups.google.com/__**group/django-users?hl=en<http://groups.google.com/__group/django-users?hl=en> >>> >>> <http://groups.google.com/**group/django-users?hl=en<http://groups.google.com/group/django-users?hl=en> >>> >. >>> >>> >>> >>> >>> -- >>> ngont...@epitech.net <mailto:ngont...@epitech.net> >>> <mailto:ngont...@epitech.net <mailto:ngont...@epitech.net>> >>> sympav...@gmail.com <mailto:sympav...@gmail.com> >>> <mailto:sympav...@gmail.com <mailto:sympav...@gmail.com>> >>> ------------------------------**__----------------------------** >>> -- >>> /*Aux hommes il faut un chef, et au*//* chef il faut des hommes!*/ >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django users" group. >>> To post to this group, send email to >>> django-users@googlegroups.com >>> >>> <mailto:django-users@**googlegroups.com<django-users@googlegroups.com> >>> >. >>> To unsubscribe from this group, send email to >>> >>> django-users+unsubscribe@__goo**glegroups.com<http://googlegroups.com> >>> >>> <mailto:django-users%**2bunsubscr...@googlegroups.com<django-users%252bunsubscr...@googlegroups.com> >>> **>. >>> For more options, visit this group at >>> >>> http://groups.google.com/__**group/django-users?hl=en<http://groups.google.com/__group/django-users?hl=en> >>> >>> <http://groups.google.com/**group/django-users?hl=en<http://groups.google.com/group/django-users?hl=en> >>> >. >>> >>> >>> >>> -- >>> Jani Tiainen >>> >>> - Well planned is half done and a half done has been sufficient >>> before... >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django users" group. >>> To post to this group, send email to django-users@googlegroups.com >>> <mailto:django-users@**googlegroups.com<django-users@googlegroups.com> >>> >. >>> To unsubscribe from this group, send email to >>> django-users+unsubscribe@__goo**glegroups.com<http://googlegroups.com> >>> >>> <mailto:django-users%**2bunsubscr...@googlegroups.com<django-users%252bunsubscr...@googlegroups.com> >>> **>. >>> For more options, visit this group at >>> >>> http://groups.google.com/__**group/django-users?hl=en<http://groups.google.com/__group/django-users?hl=en> >>> >>> <http://groups.google.com/**group/django-users?hl=en<http://groups.google.com/group/django-users?hl=en> >>> >. >>> >>> >>> >>> >>> -- >>> ngont...@epitech.net <mailto:ngont...@epitech.net> >>> sympav...@gmail.com <mailto:sympav...@gmail.com> >>> ------------------------------**------------------------------ >>> /*Aux hommes il faut un chef, et au*//* chef il faut des hommes!*/ >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django users" group. >>> To post to this group, send email to django-users@googlegroups.com. >>> To unsubscribe from this group, send email to >>> django-users+unsubscribe@**googlegroups.com<django-users%2bunsubscr...@googlegroups.com> >>> . >>> For more options, visit this group at >>> http://groups.google.com/**group/django-users?hl=en<http://groups.google.com/group/django-users?hl=en> >>> . >>> >> >> >> -- >> Jani Tiainen >> >> - Well planned is half done and a half done has been sufficient before... >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To post to this group, send email to django-users@googlegroups.com. >> To unsubscribe from this group, send email to django-users+unsubscribe@** >> googlegroups.com <django-users%2bunsubscr...@googlegroups.com>. >> For more options, visit this group at http://groups.google.com/** >> group/django-users?hl=en<http://groups.google.com/group/django-users?hl=en> >> . >> >> -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > -- Marcin Tustin Tel: 07773 787 105 -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.