1章スマホから見える世界の裏側にあるもの
スマホとアプリとSNS
ほら、近所の双子猫の写真。双子なのに黒と白なんだよ
わぁ、カワイイ。私のスマホに送ってよー
いいよー。……あれ? 写真一枚なのにやけに時間かかるな……
ギガ使い過ぎなんじゃないの?
そんなことないよ。こんなに近くで送ってるんだから、すぐに届くと思うんだけどなー
スマホ同士が近くても、すぐに届くとは限らないよ!
わぁ、ビックリした!!
近所に住んでるITエンジニアのお兄さんだ。おはよーございまーす
スマホのアプリには「裏」がある
送信方法にもよるけど、SNSを使って写真を送る場合、いったんスマホからインターネット上のサーバーに送られて、そこから届くから、場合によっては時間がかかることもあるんだ
インターネットのサーバー? 何それ?
簡単にいうと、スマホのSNSアプリの「裏」にあるものかな……
SNSアプリの裏? 知らないうちに高額課金されてるとか?
そういうこともありえないとはいえないけど、そういう裏じゃなくてだね……
スマホのアプリを使うと、世界中のあらゆる場所の地図や天気を調べたり、単語の意味を調べたり、遠く離れた友人にメッセージを送ったりすることができます。それに、たくさんの動画を見ることもできますね。だからといって、スマホの中に世界地図や辞書や動画のデータがすべて入っているわけではありません。また、友だちとやりとりするメッセージも、スマホ同士が直接通信して届くわけではありません。
それらは「スマホの裏に存在する何か」から送られてくるものなのです。
このテキストでは「裏に存在する何か」を説明していきます。
スマホとアプリ
「裏」の説明をする前に、「スマホ」と「アプリ」とは何かを、簡単に定義しておこう
スマホこと「スマートフォン」は、通話機能を持つ小さなコンピューターです。前世代のケータイ(携帯電話、フィーチャーフォン、ガラケーとも呼びます)が電話にコンピューターを搭載したものだったのに対し、スマートフォンはパソコンを小型化して電話機能を載せたものといえます。
「コンピューター付き電話」と「電話付きコンピューター」って同じじゃないの?
でも実際に使ってみると全然違うよね。ITに限らず、世の中には「主体がどっちか」で大きく変わることはたくさんある。スマホは電話よりパソコンに近い存在なんだ
アプリこと「アプリケーションソフトウェア」は、コンピューター上で動くプログラムのことです。「地図」や「天気予報」「ゲーム」「SNS」といった何らかの機能をユーザーに提供します。ちなみに、「ソフトウェア」はコンピューターの機械部分を意味する「ハードウェア」の対義語で、「プログラム」と同じ意味です。
アプリなどのプログラムは、コンピューターに対して「音楽を鳴らせ」とか「カメラで撮影しろ」とかの指示を出す命令の集まりだ。スマホもパソコンもプログラムがないと動かない
スマホのアプリの多くはプログラム単体でなく、「スマホの裏に存在する何か」と情報をやりとりしながら仕事をしています。そのため、電波が届かない場所に行くと、多くのアプリが使えなくなってしまいます。
電波が届かなくてもカメラアプリで写真は撮れるよね
カメラとかゲームのアプリは使えるけど、SNSアプリみたいに使えなくなるものは多いよ
スマホもパソコンもコンピューター
最近はスマホは使っているけど、パソコンは触ったこともないという人も多いかもしれません。ただ、どちらも同じコンピューターで、基本的なしくみは同じです。コンピューターは次のような部品で構成されています
- 記憶装置(メインメモリ、ストレージ、SSD、ハードディスク)
- 制御装置・演算装置(プロセッサ、CPU)
- 入力装置(タッチパネルのセンサー部分、マウス、キーボード、カメラ、通信装置)
- 出力装置(タッチパネルのディスプレイ部分、ディスプレイ、スピーカー、通信装置)
記憶装置にはプログラムが記憶されており、制御装置・演算装置はプログラムの命令を1つずつ読み込んで処理します(①)。次に制御装置・演算装置は読み込んだ命令を解釈し、入力装置や出力装置に指示していきます。入力装置は命令に従って、外部からの入力データを受け取り(②)処理します。次に、処理した結果を出力装置に出力します(③)。
スマホとパソコンの違いは、タッチパネルの代わりにマウスとキーボードを使うぐらいです。
SNSアプリの裏側を見てみよう
それでは「裏に存在する何か」について大ざっぱに説明してみよう。次の図は、何を表しているかわかるかな?
青い鳥がたくさんいて、移動している……。もしかして「焼き鳥屋のアプリ」?
おしい! 答えはTwitterのサービス構成図だ
全然おしくないし……
Twitter(ツイッター)は200文字程度の「つぶやき」を共有するSNS(ソーシャルネットワーキングサービス)です。スマホから投稿されたつぶやきは、通信キャリアの基地局を通じてインターネットに送られ、Twitter社のサーバーコンピューターに集められます。ユーザーがTwitterアプリを開くと、フォローした人のつぶやきがTwitter社のサーバーコンピューターからスマホアプリに向けて送信され、読むことができます。
こんな流れでTwitterというサービスは動いているんだけど、わかったかな?
つぶやきとフォローはわかるけど、基地局とインターネットは名前を聞いたことがあるなーぐらい。サーバーっていうのは何?
サーバーについてはあとで改めて説明するけど、サービスを提供するコンピューターのことをいうんだ
次は他のサービスの構成図を見てみましょう。これは何だかわかりますか?
「YouTubeのサーバー」って書いてあるじゃん。YouTubeでしょ!
YouTube(ユーチューブ)は、Google社が運営する動画共有サービスです。世界中の人が投稿した動画をいつでも見たいときに見ることができ、テレビに代わる次世代の映像メディアとして注目を集めています。スマホから投稿されたYouTubeの動画は、インターネットを通じてGoogle社のYouTube用サーバーコンピューターに集められます。そして、YouTubeのアプリやWebサイトで動画を選ぶと、動画のデータがインターネットを経由して送り出され、スマホの中で再生されます。
でも、さっきのTwitterの図とほとんど同じね。つぶやきが動画になっただけ?
いいところに気が付いたね。TwitterもYouTubeも、みんなから投稿されたデータを集めて公開するサービスだ。だから構成も似ているんだ
最後の図を見てください。これは何だかわかりますか?
はい、今度はLINEだよね。もうバレバレだって!
LINEはチャット&無料通話サービスです。一人でつぶやくTwitterと異なり、LINEはチャットする相手を選んでからメッセージを投稿します。投稿されたメッセージは、インターネットを通じてLINE社のサーバーコンピューターに集められます。LINE社のサーバーはチャットの相手に通知を送り、相手はスマホアプリを開いてメッセージを読むことができます。
TwitterとYouTubeとLINEの構成がほとんど一緒? LINEは使い方が結構違うけど……
確かにLINEは友だち同士でチャットするサービスだから、Twitterみたいに全世界に配信されることはないよね。ただ、それはメッセージの配信先を制限しているからであって、構成はそんなに変わらないんだ
いったんサーバーに全部のメッセージを集めてから、配るのは同じってことか
それだと、間違って友だちじゃない人にメッセージを送っちゃいそうだよね
そんなことが起きたら大変だね。メッセージを送るのはサーバーの中のプログラムの仕事だから、プログラムに間違いがなければ大丈夫だよ
スマホやアプリの裏にあるものを学ぼう
スマホのアプリの裏に、サーバーとかインターネットとかいろいろなものがあることはわかったかな?
何となくね。ホントに何となくいろいろあるのはわかった
限りなく「わからない」に近い……
だよね。それじゃあ、いくつかのパートに分けて説明していくことにしよう
2章 クライアントアプリの世界
最初に説明するのは、みんなに一番身近なスマホの中の話です。スマホのクライアントアプリとはどんなもので、どうやって作るのかを説明します。
3章 サーバーの世界
スマホから送られて来たデータは、サーバーというコンピューターに集められます。この章ではサーバーがどんなものなのかを説明します。
4章 サーバー用アプリの世界
サーバーに集まってきたデータをどのように記憶して、どのように加工し、送り出すのかを決めるのは、サーバーにインストールされたプログラムです。ここではサーバー用のプログラム(アプリ)がどのように仕事をするのかを説明します。
5章 ネットワークの世界
スマホからサーバーにデータが届くのは、スマホとサーバーの間にネットワーク(コンピューターネットワーク)があるからです。4G/5GやWi-Fi、インターネットなどもネットワークの一部といえます。5章では、ネットワークのさまざまな技術や仕組みを見ていきましょう。
6章 クラウドの世界
最後に説明するクラウドは、インターネットを前提とした新しいスタイルのコンピューター技術です。新しいといっても、すでにサービスの多くがクラウドを利用しており、欠かせない存在となっています。
うわー、6章もあるの。長いなー
途中でわけわかんなくなりそう
まぁ、なるべく短く簡単に説明するよ。みんなが毎日使っているスマホとも関係する話だから、覚えておくときっと得するよ