Have you ever wondered how the information gets into the application installed in your mobile device, how it is updated, and how it is synchronized with your account in the web application on the desktop? If you think that this is a case of miracle then it is time to know the truth.

How is it possible to comprise the database of 1000GB (no current mobile device can handle such an amount of space) into an application weighting 50KB? Impossible?

Let’s take a real example. The database of the famous Facebook equals to 25TB and is stored on several servers. In other words, it can be translated as if the Facebook DB could be stored in about 3200 USB flash cards with capacity of 8GB (a standard size of your photo camera flash card). Only imagine this amount! And on the opposite end, we can see your mobile application for this social media that is only about 7MB.

So, what are the options of communication between your mobile device and a remote storage?

In fact, there are several ways how to do this.

Here are several possible variants among which to choose depending on the business goals.

1. Direct Connection(telnet/ssh)

The mobile application directly connects to the server database to get respond. To ensure the confidentiality the SSH or another encryption type can be used.

Features:

  • Direct connection using standard telnet/ssh;
  • User verification via simple login/password;
  • UI commands converted to server commands.

Advantages:

  • Simple;
  • No additional costs on developing of the back-end applications;
  • No additional costs on maintaining of the additional hardware.

Disadvantages:

      - No scalability;
      - Can’t have access to external servers or databases (cloud access);
    - Has the only functionality of the standard telnet/ssh protocol.

2. Server-side application(socket)

The mobile application directly connects to the server -side
application that is in simple words a software program running on a
remote server.

Features:

      • Direct connection to a server-side application;
      • User verification via simple/secure login/password;
    • UI commands converted to server application commands.

Advantages:

  • Direct connection;
  • Can use external resources (servers, databases) using in-app connection from the server side;
  • No additional costs on maintaining of the additional hardware.

Disadvantages:

- Scaling is possible, but is time and effort consumable;

- More complex and has no built-in possibilities for using in a cloud infrastructure;

- Require developing of the back end application;

- Back end application should be placed on the controllable server.

3. Web application(HTTP传送数据报可以是http数据或者JSON、XML。最常用这种!!!)

The mobile application can communicate with the same web application to get information from it.



Features:

• Using of a web services via specialized API;

• User verification via simple/secure login/password;

• UI commands converted to API requests.

Advantages:

  • Using of REST API;
  • Easy to develop the client side;
  • Can use external resources (servers, databases) using connection from the server side;
  • No additional costs on maintaining of the additional hardware;
  • Back end part can be placed on the controllable server, or on a dedicated one;
  • Easily scalable.

Disadvantages:

- More complex.

* Note: Require developing of the back end web application and API services

4. Cloud Integration( SOAP??)

With Cloud Infrastructure as a Service, your organization actually
receives a private cloud that is quite similar to the classic
understanding of clouds but is used only for your company purposes and
has better security.

Features:

• Connect to a cloud using it’s services (API);

• User verification via simple/secure login/password;

• UI commands converted to cloud API commands.

Advantages:

  • Using of REST API;
  • Easy to develop the client side;
  • Can use external resources (servers, databases) using cloud services;
  • Can access all of the services provided in a cloud;
  • Can gain access to every computer in a cloud according to user permissions;
  • Extremely scalable;
  • Extremely reliable and solid.

Disadvantages:

- Very complex

- Require developing of a cloud services;

- Require maintaining of a cloud hardware;

- Time and cost consumable.

Shh! Don’t tell anybody! We just have opened you a secret of where
the information that got into your smartphones and tablets was stored in
reality. With no cables, no surgical manipulation, and no pigeon
express. It has been again all about high technologies.

As reported by world IT statistics and experts, the mobile industry
is on the rise and promises to continue evolving for several further
years at least. There are still many open challenges and a big space for
extension in mobile application development including the storage and
security spheres, but, hopefully, IT guys will amaze us with something
new :)

mobile app 与server通信的四种方式的更多相关文章

  1. Android跨进程通信的四种方式

    由于android系统中应用程序之间不能共享内存.因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些.在android SDK中提供了4种用于跨进程通讯的方式.这4种方式正好对应于andro ...

  2. 关于Fragment与Fragment、Activity通信的四种方式

    一直想总结一下Fragment与Fragment.Activity通信的问题,今天有时间一共总结了三种,权当抛砖引玉,如果大家还有更好的方式来实现Fragment和Fragment.Activity的 ...

  3. MSSQL Server数据库的四种连接方法和sql连接字符串

    MSSQL Server数据库的四种连接方法和sql连接字符串 分类: [ 03 ] C#(131) [ 07 ] SQL Server(68) [ 01 ] .NET(189) 今天用SQL Ser ...

  4. .net(C#数据库访问) Mysql,Sql server,Sqlite,Access四种数据库的连接方式

    便签记录Mysql,Sql server,Sqlite,Access四种数据库的简单连接方式 //using MySql.Data.MySqlClient; #region 执行简单SQL语句,使用M ...

  5. SQL server分页的四种方法

    SQL server分页的四种方法 1.三重循环: 2.利用max(主键); 3.利用row_number关键字: 4.offset/fetch next关键字 方法一:三重循环思路  先取前20页, ...

  6. iOS 登陆的实现四种方式

    iOS 登陆的实现四种方式 一. 网页加载: http://www.cnblogs.com/tekkaman/archive/2013/02/21/2920218.ht ml [iOS登陆的实现] A ...

  7. .net core 2.x - 缓存的四种方式

    其实这些微软docs都有现成的,但是现在的人想对浮躁些,去看的不会太多,所以这里就再记录下 ,大家一起懒一起浮躁,呵呵. 0.基础知识 通过减少生成内容所需的工作,缓存可以显著提高应用的性能和可伸缩性 ...

  8. 【Java EE 学习 80 下】【调用WebService服务的四种方式】【WebService中的注解】

    不考虑第三方框架,如果只使用JDK提供的API,那么可以使用三种方式调用WebService服务:另外还可以使用Ajax调用WebService服务. 预备工作:开启WebService服务,使用jd ...

  9. android 定位的四种方式

    [原文]  开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面总结了一下网络中现有对于介绍android定位的4种方式,希望对大家有帮助: android 定 ...

随机推荐

  1. OPA-Gatekeeper实验:对特定用户的更新时间窗口做限制

    实验目的 OPA-Gatekeeper可以在Kubernetes 中,通过策略来实现一些额外的管理.安全方面的限制,例如:限制特定用户在 Namespace 中的行为权限 本次实验将在test命名空间 ...

  2. 十本你不容错过的Docker入门到精通书籍推荐

    前言: 最近有许多小伙伴私信让我推荐几本关于Docker学习的书籍,今天花了一下午的时间在网上查阅了一些资料和结合自己平时工作中的一些学习参考资料书籍写下了这篇文章.注意以下书籍都是十分优秀的Dock ...

  3. Redis 源码简洁剖析 02 - SDS 字符串

    C 语言的字符串函数 C 语言 string 函数,在 C 语言中可以使用 char* 字符数组实现字符串,C 语言标准库 string.h 中也定义了多种字符串操作函数. 字符串使用广泛,需要满足: ...

  4. 当 dotnet-monitor 遇上 Prometheus, 是种什么样的体验?

    对于开发和运维人员来说, 监控大屏很棒, 让我们来做一个 Dashboard 吧! 大家可能听说过一些 CLI 诊断工具, 比如 dotnet-counters,dotnet-dump 和 dotne ...

  5. Kruskal 重构树小记

    其实也不是多难的知识点吧--学了一个中午+半个下午就把它学会了(做过那道 jxd 作业 CF571D 的应该比较好理解) Kruskal 重构树大概就是在正常 Kruskal 的时候,对于两个需要连边 ...

  6. Codeforces 1519F - Chests and Keys(暴搜+以网络流为状态的 dp)

    Codeforces 题目传送门 & 洛谷题目传送门 难度终于出来了--又独立切掉一道 *3200,凯信(所以我已经独立切掉三道 *3200 了?) 首先考虑我们已经知道了每个宝箱上有哪些锁, ...

  7. Vue 中使用 extent 开发loading等全局 组件

    Vue 中使用 extend 开发组件 简介:再开发过程中那面会遇到自定义 loading alert 等全局组件,这里我们可以使用 vue 中的extend 来帮助我们完成 一个简单extend例子 ...

  8. 【豆科基因组】豇豆Cowpea,Vigna unguiculata [L.] Walp.基因组2019PJ

    目录 来源 结果 基因组大小估计 采用stitching方法组装 修改豇豆染色体编号 基因注释和重复DNA 豇豆遗传多样性 SNP和INDEL Vu03 上 4.2-Mb 染色体倒位的鉴定 与其他暖季 ...

  9. Excel-转换单元格格式的函数或“方法”汇总

    14.转换单元格格式的函数或"方法"汇总 =value(单元格)  #转换为数值 =A1&""                   #转换A1为文本 = ...

  10. C#点击按钮添加标签

    <asp:Button ID="button1" runat="server" Text="创建" onclick="But ...