安卓、苹果和鸿蒙的数据互通及不互通原理,我这样理解对不对
说起数据互通,可能大多数用过两种手机的朋友们都遇到过,尤其是喜欢玩游戏的朋友们,用苹果手机的你,往往和用安卓手机的小伙伴同事们玩不到一起,最大的原因是因为游戏开发商数据不能互通造成的,所以为了能和小伙伴们玩到一起,经常会再买一个安卓手机备用。当问起原因的时候,大多数公司会将这些问题一股脑的推给技术人员,说技术不容许之类的话语,但事实真的如此吗?下面由我从各方面为大家一一道来。
技术分析:
很多人都喜欢玩手机用电脑,但实际上对手机电脑本身并不了解,所以会出现一些误区,尤其是关于今天的话题这一方面的。我从用自己在开发过程中了解的一些情况给大家讲述一下我的理论和观点。
通常情况下,我们一般将一个软件大致分为两种架构,一种是B/S架构,一种是C/S架构。
说通俗点,B/S架构就是我们经常用的浏览器中的客户端和服务器两部分组成,这种结构的好处就是我们只要有一个浏览器就行,不用下载专门的客户端,而且跨平台能力比较强,因为现在不论什么设备,都会有浏览器的存在。而它的运作方式就是将所有资源都是从服务器中获取到的,然后提供我们使用,表面上,我们在用浏览器上经常做各种操作,但实际上浏览器只是表面功夫,你做的所有操作都是在和服务器发生互动。因为有资源的加载,所以在使用过程中经常会因为资源过大,出现导致加载失败的情况。
C/S架构是也很容易理解,说白了就是用客户端加上服务器形成的一个架构,而这里的客户端就是我们手机中常用APP、游戏,电脑中的软件等,是一个根据平台的不同制作出样子相同,类型相同,但是不能同时用在用一个系统中软件。这里的系统就是我们经常谈的安卓、苹果、Windows系统、Linux等,这样一说,大家应该都明白了,这些系统使用的开发程序的语言是互不相同,所以在开发软件的时候,要根据这些不同的语言而开发呼应系统的软件。那么比起B/S架构,就需要花费很多精力了。所以这也是为什么开发一个小程序、web等很便宜,但是开发一个安卓系统和苹果系统就会价格翻倍。
服务器组
了解架构后我们再来说说我们关心的数据问题,从上面两个模式中发现,他们都有一个共同点,那就是需要服务器。在现在网络技术发达的今天,服务器才是一个软件最核心的地方。网站、小程序等离了服务器,那什么都不会显示,而app等离开服务器就只能下干巴巴的视图界面,当然单机除外。(单机的概念就是自身就是一个整体,不需要借助其他的软件来运行)所以服务器就是这一闭环中的大脑,统筹其他软件。但是服务器自身并不具备数据储存,它只是将数据取出来进行处理后发送给客户端,指令客户端改怎么运行,那么数据在哪里呢?
大家可能都听过一个术语叫做:数据库吧,是的,我们的数据一般都会储存在数据库之中,而数据库又分为很多种,体量较大的Oracle和SQL service 数据库,比较轻量的MySQL数据库,还有手机上常备SQLLITE数据库等等,都是用来储存数据的,但是我们会根据数据储存的量和需要处理的能力上,会选怎不同的数据库。
服务器与数据库
这么看来服务器统筹浏览器和移动端中软件,而数据库又提供数据给服务器,我们就可以简单明了的知道,App,网站等它们的数据都来自于一个数据库,而开发人员会根据用户的实际情况进行分析和抽象,并且归之为用户表,并在表里写上年龄、名字等属性。而我们在注册的时候,服务器就会把我们的信息统一写到这一个表中,那么只要有需求,就可以将数据拿出来,发给需要的功能,例如登录。所以这么看来,我们的个人信息就全部来自于一张表,这些数据都是在一个区域中,所以说数据本身就是互通的。但是为什么很多游戏数据不互通?
为什么游戏数据不互通,听我给大家分析,理论上,一个数据库表示可以无限大的,但是很重要的一点,数据库表无限大,那么查询数据呢,数据库在查询时虽然会通过各种方式进行自动查询,但是出不了规则限制,如果数据库表真的无限大,那么意味着我执行一次查询是不是永远查不到头呢。而客户端和服务器又存在着长连接,所以在查询过程中等待的时间就会无限长。所以数据库表并不能让它无限长。那么,为了保证数据能够迅速进入使用,就必须缩短数据库表的长度来保证服务器快速获得数据并进行处理,处理过后再交给App等,那么数据表缩短,那多出来的用户怎么办,我们只好多建几张表来储存,所以数据就会分开了。
但是很多大公司的游戏都可以做到数据互通。这是什么原因,首先,数据库表缩短了,那么意味着本来1000万人能够一起玩的游戏,只能1万人一起玩了,所以还有999人怎么办呢,于是就出现了新的技术和概念,分布式:简单的说就是将以前一台计算机做的事,通过特殊的方式交给其他999台计算机来做。这样,将数据库分表,通过多台计算机的共通处理,是不是就快了很多,而且解决了数据不能放在一起的难题。这样数据是互通了,但是需要的服务器是不是也就多了,为了让所有玩家能够到在一个区玩,作为游戏公司就要花费99倍的资金来购置服务器,请相关技术大牛来做这些,而且游戏不一定能火,火了充的钱还不一定能够填的上购买服务器的价格,游戏公司为什么要做呢。所以即便是网易公司的阴阳师,在早期的时候并没用数据互通服,而是后来才加上的。
结论:
数据互通是可以实现的,技术上并不是难题。不互通的原因之一就是成本高,维护费用高,总不能让游戏开发公司一直亏钱运行吧。
结论:服务平台的渠道费用分成不一样,导致两个平台中游戏收益容易产生分歧,所以最好的办法就是将两个系统的数据不互通,所以这是数据不互通的理由之二,你觉得我说的对吗。