Settings

Theme

Are we going back to Client Server technology

1 points by kapso 14 years ago · 3 comments · 2 min read


I was just reading about Parse, a new startup on Techcrunch. There's kinvey that is doing similar stuff. While the idea is cool and definitely brings speed to creating mobile apps. But I feel we are going back to client server, except this time the client is Mobile. For now they are offering APIs or SDKs which let you store data in the backend without ever building a backend yourself. My guess is they are using key-value data stores that enables dynamic creation of data and attributes. They also offer APIs that let you build a query to fetch the data.

The problem with this approach is i.e not owning backend piece, soon your app will need some kind of backend business logic and not just data storage/access APIs. And when this logic is needed you will be left with no choice but to build this on the client, you mobile phone. So if you building for multiple mobile platforms you will have to replicate this business logic across all clients. Not very efficient in terms of cost, developer resources and time. This is exactly the reason why client server technology failed and could never scale.

While this may still work for apps (games may be) that are light on backend-logic, I feel there will be some duplicate work that will still be done if you develop across multiple mobile platforms.

Not sure how other folks feel about this.

aphyr 14 years ago

This is exactly the reason why client server technology failed and could never scale.

He said, on the internet.

  • kapsoOP 14 years ago

    Yea try scaling a legacy client server application. And you will know why its dead.

    • aphyr 14 years ago

      Depending on your definition of legacy, your argument is either incorrect or invalid.

      Case 0: Legacy means "unscalable". Argument cannot be used to evaluate the scalability of client-server models.

      Case 1: Legacy means "old or crufty". Successfully scaled legacy client-server software includes SMTP, IRC, NTP, NNTP, HTTP, MySQL, Oracle, etc, and to some extent, IP itself. Not to mention in-house systems like credit-card processing.

      Client-server architectures are immensely popular, perfectly capable of scaling to high volumes, and used widely because they are easy to reason about and secure.

      Indeed, if you've spent any time working on distributed systems, you might realize that scaling fully connected or peer-to-peer systems tends be harder than client-server. Take a look, for example, at the horrifying complexity of distributed agreement protocols like Paxos.

      I'm guessing your statement is due not to horrifying stupidity, but some sort of confusion over what constitutes "client server software". Perhaps http://en.wikipedia.org/wiki/Client%E2%80%93server_model would be helpful.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection