Q:

Use of Selenium Server in Protractor

I have studied about Selenium WebDriver and Protractor architecture and I tried to compare the architectures. What I have understood so far is, Protractor is a NodeJs application that under the hood uses javascript wrapper of Selenium WebDriver i.e. WebDriverJs, mainly focussed for angular applications; but it can also be used to non-angular applications.  
While studying Selenium WebDriver, I kind of grasped that Selenium Standalone Server is not always needed. It only comes in picture when the test is written in different machine and commands for browser is executed in a different machine. So, if we are writing test scripts in our machine and we are going to use browser from the same machine, then the Selenium WebDriver is enough which communicates natively with browser drivers without needing of Selenium Server.
For the protractor, it says that mostly we need to use 'Selenium Server'. I don't know the reason for it. I don't know the role of Selenium Server in clarity.
If anyone could light me on this topic it would be very helpful.

A:

It depends which browsers your going to test on. You can at the moment only directConnect with Chrome and Firefox.
see docs here
directConnect basically means you don't need a selenium server to execute the browser commands for you.
However if you need to lets say run your tests against Internet Explorer, Edge, Safari you'll need a Selenium Server for that.
There is also the performance consideration when you run multiple capabilities. When you have a dedicated machine that only runs the selenium server you can offload all the heavylifting to that machine.
Furthermore there are more and more seleniumServer Providers who will give you the freedom of picking and choosing the browsers you want to test against. (Browserstack, Saucelabs)
Also it gives more options for running the test for exmaple with flags such as highlightDelay.

