Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I would define anything that responds to remote request a server program, which then would make the system that runs that program a server. =)


A more interesting definition is that a server is something that is asymmetric from a client. Things that are peer to peer which are symmetric to each other are something special.


Not really. Each peer is running a client and server and the only difference is the role of each node in a given transaction.


While you can frame peer-to-peer interactions as as a series of server-client interactions with servers and clients swapping roles... you shouldn't. It's a different paradigm with different implications.

Individual transactions might be usefully described as server-client, but the overall system is not server based. So...serverless.


In all cases, one node must send the first packet. The node sending the packet is the client, and the destination of the packet is the server.

Also, the internet is a peer-to-peer system. But "peer-to-peer" is an abstract paradigm, because ultimately, (a) two peers need to know about each other, and (b) one peer needs to initiate every transaction.

I realize we're just arguing semantics here, and I'm not sure what point I'm trying to make, but it's an interesting discussion nonetheless...


> In all cases, one node must send the first packet. The node sending the packet is the client, and the destination of the packet is the server.

I'm pretty sure you are just making up new definitions. It's kinda like saying that whoever says the first word in class is the teacher and the rest are student.

The fact is that both peers send packets and the first packet isn't particularly significant, except from a stateful connection or firewall perspective.


Well, let’s breakout Wikipedia [0]

> Clients therefore initiate communication sessions with servers which await incoming requests.

> Both client-server and master-slave are regarded as sub-categories of distributed peer-to-peer systems.

[0] https://en.m.wikipedia.org/wiki/Client–server_model


> Clients therefore initiate communication sessions with servers which await incoming requests.

Dogs walk on four feet, therefore anything that walks on four feet is a dog?

> Both client-server and master-slave are regarded as sub-categories of distributed peer-to-peer systems.

Dogs are canids, that doesn't mean all canids are dogs.

The client-server model really entails more than having one party that sends a packet before the other. Some illuminating details and a shallow comparison to the peer-to-peer architecture can be found in the article you linked.


By this definition, nothing that communicates with another process can be called serverless.


That definition is wrong.


There are two separate meanings of the term server.

1) An application which runs on a network and services clients 2) A dedicated computer which runs server applications.


Serverless as 3) An application which run on a network and communicate with others on an equal status, you cannot distinguish one node from the others based on the source code or the logic it is running. In a sense even amazon serverless platform is not server less but it is server lite.


What definition would you use?


Some that doesn't make a Bittorrent client or a Bitcoin node a server.


But both of those are servers?


No, both of these are peer to peer applications


.. which have client and server parts of the protocol, that can be separately disabled. The fact that same piece of software can run on in client mode and in server mode is irrelevant.

In bittorrent example, the seeders are pure servers, and those cheating aps which only connect to seeds are pure clients. Yes, many trackers actively try to detect and discourage pure clients, but this is not enforced by the protocol itself.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: