Answer the question
In order to leave comments, you need to log in
What technologies are used for mathematics. information processing, received. from a user on the server?
I want to write a service that will process on the server the information received from the user from the mobile application and transfer the results to the mobile application.
With a mobile application that will provide input from the user and transfer it to the server, everything is clear - I learned the basics of java and now I'm learning programming for android. I can already see that this will not be a problem. Well, I read a bit of sql.
It will be necessary to:
1) receive the sent information
2) process this information on the server
3) transfer the results of the user back to the mobile application
a) A lot of mathematical calculations are planned in information processing.
b) I hope that over time many users will come to the service.
Conditions a) and b) imply that the server must be fast.
My question is: what programming languages and technologies do I need to learn in order to implement such a server?
Answer the question
In order to leave comments, you need to log in
You have an ordinary classical task, I don’t see anything special. Php might be fine if you know it or like it. You can also use another language like python without any problems. The main thing is that for each request a separate thread is generated, because they will use all available cores in the server and you don't even have to think about it.
So single threaded node.js wouldn't advise.
Well, then study Java, or python as a server. In my opinion python is even more preferable. It has all sorts of good libraries like numpy and scipy (for strong math). True, Java is no worse in this respect, but "more verbose".
Use an ordinary python or java web server as a send/receive. For proper use, some implementation of the comet technique will do. Here is an article on the topic - javascript.ru/ajax/comet/server-patterns
And in general, almost everything is suitable for your task on the server side, starting from erlang and ending with go with nodejs. Even php will be in place (probably).
It is not very clear what exactly you mean by the concept of "processing the information received."
In general, it is useful for you to read about the REST API - purely as an approach to building an interaction interface.
In what language it to do - generally it is secondary.
In the enterprise, according to statistics, java is popular, in the web php, ruby, python (perhaps in that order). All other languages have a noticeably smaller community.
There are no fundamental differences in terms of development complexity, so if you have a project of one person, choose the language that is more familiar to you and go ahead.
Not all mathematics can be calculated in "real" time, especially in limited hardware, you must understand this.
The meaning in the phrase "The server must work quickly" is slightly less than zero. Do you have each calculation constant in terms of resource consumption? Or is the complexity linear? Maybe exponential?
Until you understand this, there is no point in talking about "speed".
In any case, for such a task, I would use the following scheme:
1. The client sends the task to the server
2. The server registers the task, gives the client its number, puts the task itself in the queue
3. The client saves the task data with the number received from the server marked "in progress "
4. Workers (working separately from the main web server process) pull jobs from the queue and perform directly mathematical calculations. Having received the result, they write it to the database, send it to the device from which the task was received, push a notification.
On what to implement - it does not really matter, with any PL you will have to spend approximately the same amount of time.
Thank you everyone, especially Dmitry Entelis and Alexander Marchenko.
Decided to stick with PHP and already ordered the book.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question