Điều gì đang xảy ra trong thế giới của các công nghệ phía máy chủ liên quan đến sự bùng nổ ứng dụng di động?


12

Với việc các công nghệ di động ngày càng trở nên phổ biến, điều gì đang xảy ra ở phía máy chủ với hầu hết các ứng dụng này khi chúng cần liên lạc với mặt sau?

Tôi đã quen với thế giới công nghệ từ 10 năm trước khi hầu hết các tài nguyên được truy cập bằng cách yêu cầu một trang web động mà phía sau nhìn thấy đã sử dụng ngôn ngữ phía máy chủ để lấy thông tin cần thiết từ cơ sở dữ liệu quan hệ.

Đây vẫn là trường hợp, và nếu không, những thay đổi lớn là gì?


Rất nhiều ứng dụng nhỏ hơn dựa vào Google App Engine :).
MrFox

Câu trả lời:


7

Từ đỉnh đầu của tôi:

  1. Sử dụng dịch vụ web thay vì truy cập trực tiếp vào DB từ máy khách.
  2. REST thay vì SOAP. SOAP dường như quá nặng đối với giao tiếp di động với phụ trợ. REST sử dụng JSON đơn giản hơn nhiều để thiết lập và sử dụng. Đặc biệt nếu bạn sử dụng các công nghệ khác nhau trên máy khách và máy chủ.
  3. Tập trung vào nhiều lượt xem cho các trang web. Một cho máy tính để bàn và một cho điện thoại di động. Sẽ dễ dàng nếu ai đó sử dụng MVC, nhưng nó vẫn còn khá nhiều vấn đề.

Có lẽ có nhiều hơn. Các ứng dụng di động hầu hết được coi là máy khách bình thường, tiêu thụ dữ liệu và hiển thị chúng.


6

Công nghệ

  • API RESTful sử dụng JSON làm tuần tự hóa - API tương tự được sử dụng bởi các ứng dụng gốc, ứng dụng lai và ứng dụng web di động. Ngay cả trong các trường hợp trước đây, các mẫu phía máy khách thường được sử dụng (xem ví dụ tuyệt vời trong "Rời khỏi các tệp tin bụi: chuyển LinkedIn sang các mẫu phía máy khách của Dust.js" )

  • Các máy chủ nhẹ, không đồng bộ (hướng sự kiện) - không còn Apache trước ngã ba. Nginx, node.js, Twisted, Tornado, v.v ... hiện đang được sử dụng.

  • OAuth / đăng nhập xã hội - Người dùng mong muốn không phải đăng ký tài khoản cho từng ứng dụng riêng lẻ. Do đó, hầu hết các ứng dụng cho phép đăng nhập bằng FB, TW và các nhà cung cấp khác. Đối với FB, cả Android và iOS đều cung cấp tùy chọn Đăng nhập một lần .

Những điều cần cân nhắc

  • Mạng di động có độ trễ rất cao;
  • Đó là bình thường cho khách hàng để mất kết nối;
  • Việc khách hàng thay đổi IP trong phiên là điều bình thường;
  • Điện thoại di động không nơi nào mạnh bằng máy tính để bàn / máy tính xách tay;

4

REST là một nửa câu chuyện. Điều thú vị hơn các giao thức có trọng lượng nhẹ hơn trên dây là các máy chủ và ngăn xếp ứng dụng web có trọng lượng nhẹ hơn - các yêu cầu quy mô lớn cho các datagram nhỏ so với HTML được hiển thị tương đối dày có nghĩa là bạn có các yêu cầu khác nhau. Vài ví dụ:

  • node.js có lẽ là ví dụ điển hình cho việc này. Hầu hết mọi người đều bị treo trên tính năng javascript trên máy chủ, nhưng đó là một cá trích đỏ - tuyệt vời cho những đứa trẻ không thể tiến xa hơn js nhưng điều đó không quan trọng. Phần thực sự tiện lợi là bản chất không đồng bộ làm cho nó có quy mô hoàn toàn, đặc biệt là trong khi phục vụ các dịch vụ RESTful nhỏ, sắc nét. Một số ngăn xếp khác có điểm tương đồng sẽ được xoắn cho python hoặc manos de mono cho .NET.

  • nginx sử dụng rất nhiều IO (libuv) tương tự mà node.js thực hiện và nó đang dọn sạch thị trường máy chủ trong một số vòng tròn. Tập trung hơn nhiều so với apache và cực kỳ nhanh.

  • Các ngăn xếp máy chủ mỏng đang xuất hiện trong các môi trường mà theo truyền thống có các khung dày tạo ra nhiều giả định. IE, trong ruby, bạn đã có sinatra để đối trọng. Trong python bạn đã có bình [và những người khác] để đối trọng django. Trong .NET, bạn đã có WebAPI để đối trọng với MVC và WebForms. Tất cả các ngăn xếp tôi đã đề cập là rất, rất mỏng và tập trung nhiều hơn vào việc phục vụ các datagram và không phải các trang web. Không ai trong số những người tôi đề cập có các loại khuôn mẫu và ORM mà người ta mong đợi từ một ngăn xếp web điển hình ngày nay.

Tất cả những gì đã nói, thường xuyên hơn không phải ai đó đang phục vụ ứng dụng di động của họ bằng cách hack ứng dụng web phía máy chủ 10 năm hiện tại để phục vụ json trên một điểm cuối HTTP khác. Thế giới không thay đổi nhiều - quản lý vẫn sẽ đi khập khiễng trên 2 bánh xe và một chiếc bánh rán nếu họ nghĩ rằng họ có thể thoát khỏi nó.


1

Đây vẫn là trường hợp, và nếu không, những thay đổi lớn là gì?

Tôi nghĩ rằng vẫn còn các ứng dụng sử dụng kiến ​​trúc phía máy chủ hoặc máy khách-máy chủ được đề cập. Tuy nhiên, trong những năm gần đây, có một bước tiến lớn đối với SOA (Kiến trúc hướng dịch vụ) . Do đó, giao tiếp thông qua các dịch vụ bảo mật sẽ mở ra các khả năng mới cho tất cả các ứng dụng khách và truy cập / tái sử dụng các dịch vụ kinh doanh phụ trợ cùng một lúc.

Với các thị trường mới nổi của thiết bị di động và máy tính bảng, việc sử dụng các dịch vụ HTTP như một kênh liên lạc quan trọng để cung cấp dịch vụ mở rộng cho các ứng dụng khách càng trở nên quan trọng hơn .


1

Hầu hết các back-end hiện nay đều hỗ trợ JSON và REST chứ không chỉ SOAP. Ngoài ra, không có nhiều sự khác biệt giữa ứng dụng web và ứng dụng di động. Tôi nghĩ rằng hầu hết các thách thức cho các ứng dụng di động đều nằm ở mặt trước (cách phù hợp nhất với thông tin trên màn hình nhỏ hơn). Một số ứng dụng đang bắt đầu tận dụng các khả năng của thiết bị di động (như báo cáo vị trí), nhưng đó là ở cả hai đầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.