JavaRush /Java Blog /Random-JA /サーバー。ダミー向け教育プログラム

サーバー。ダミー向け教育プログラム

Random-JA グループに公開済み
以下に、Panopto の開発者 Kannan Chandrasegaran による記事「The non-techie's guide toservers」の翻訳を適応させて掲載します。この記事は、アプリケーションとサーバーのサーバー側の概念にあまり慣れていない初心者を対象としていることに注意してください。 サーバー。 ダミー向け教育プログラム - 1

オフィスライフから

IT 企業で「非技術者」になるのは難しいことです。信じてください。マーケティング担当者、営業マネージャー、会計士など、それは問題ではありませんが、技術に精通した同僚に遭遇することがあります。彼らはプログラマーかもしれないし、システム管理者かもしれない...いずれにせよ、「非技術者」は脳の重要な部分を切断されたように感じている。あるいは、人類以外の知的生命体が存在する未知の惑星に着陸した。または…
サーバー。 ダミー向け教育プログラム - 2
もちろん、すべてがうまく終わることもあります。たとえば、フロントエンドの女の子が廊下を歩いています。問題の前兆は何もありません。彼女は左に向かっており、あなたは右に向かっています。そしてできるだけ早く…いいえ、今回はそんなことは起こりませんでした。あなたはすでに彼女と一緒にテーブルに座っていて、気まずい沈黙を乗り越えようとして、こう尋ねます。「それで…具体的には何をしているのですか?」彼女は何かを言い始めますが、あなたは彼女が何を言っているのかすぐには理解できません。ユーザー インターフェイス、アプリケーション、そして - そう、Facebook は Web サイトです。この言葉はよく知られているようです。ええ、ボタンやメニューがあります... あなたはどういうわけか彼女の仕事の複雑さを理解し、彼女の別れにうなずき、そしてあなたの道は大きなオフィスの廊下で分岐します。
サーバー。 ダミー向け教育プログラム - 3
しかし、遅かれ早かれ、あなたはそれほど幸運ではありません。サーバー エンジニアに出会うことになるでしょう。またはバックエンド開発者。これからどのようなジャングルに身を置くことになるのか分からず、あなたは素朴に同じ質問をしますが、その答えはアブラカダブラです。たくさんの外来語を聞くと、次のような考えが頭の中を駆け巡ります。「API とは何かと聞くのは礼儀正しいでしょうか?」、「私たちはいつも "データベース" を使いますよね?」、「このジェイソンは一体誰ですか?」 「(JSON)??」。あなたのエンジニアの友人はあなたにサーバーについて話そうとしていますが、専門用語だらけの彼のスピーチをあなたが理解するのがどれほど難しいかを理解していません。おそらく「サーバー」という言葉を聞いたことがあるでしょうが、非常にさまざまな文脈で使用されているため、その意味を理解するのは困難です。さて、この用語を理解してみましょう。

不思議な方向へ転がる

一般の人 (つまり、プログラマや管理者ではない人) がアプリケーションを使用するとき、彼が目にするのはインターフェイス、つまり、明らかな (ほとんどの場合) アクションに反応する画像だけです。実際、ユーザーが通常「アプリケーション」として理解しているのは、そのフロントエンド、つまり、ユーザーが対話するフロント部分、ラッパーです。しかし、ユーザーはその内部、つまりアプリケーションが動作する仕組みについてはほとんど知りません。たとえば、Whatsapp や Viber 経由で私にメッセージを送ったとします。あなたのスマホから私の宛にメッセージが届いているようです。このプロセスを詳しく見てみましょう。私の携帯電話の電源がオフのときにメッセージを送信し、その後自分でスマートフォンの電源をオフにしたとします。それで、私は携帯電話の電源を入れましたが、同時に電話は機能しませんでしたが、それでもメッセージを受信しました。何かが足りないようです! これは、私たちが見逃していた「何か」、つまりバックエンドまたはサーバーです。
サーバー。 ダミー向け教育プログラム - 4
プログラマーがフロントエンドとバックエンドについて話すとき、それは通常、アプリケーションのユーザー部分をプログラム ロジックから分離することを意味します。したがって、フロントエンドはアプリケーションのインターフェイス部分であり、バックエンドはアプリケーションのサーバー部分です。

サーバー

基本的に、サーバーはコンピューティング マシンであり、インターネットに接続され、常に電源が入っているコンピューターです。
サーバーの 2 つの主なタスクは、データの保存と通信です。
サーバー。 ダミー向け教育プログラム - 5
Whatsapp または Viber 経由でメッセージを送信すると、スマートフォン上のアプリケーションがメッセージをサーバーに送信し、そこに保存されます。私のスマートフォンにインストールされている Viber がサーバーに接続すると、保存されているすべてのメッセージが送信されます。
サーバーはアプリケーションを実行する「ベースステーション」です。
アプリケーションは情報を必要とする場合、サーバーに接続します。アプリケーションがアプリケーションの別のユーザーと通信する必要がある場合、通信を許可するのはサーバーです。サーバー、バックエンド、API という用語は、多くの場合同じ意味で使用されます。

ストレージまたはデータストレージシステム

サーバーの主なタスクはデータの保存です。これには、写真、ビデオ、ドキュメントなどのファイルが含まれます。サーバーはそれらをコンピューター上のフォルダーと同様の構造化された方法で保存するため、アプリケーションからアクセスできます。情報もサーバーに保存されます。すべてのアプリケーションには、その動作に重要な情報が含まれています。
サーバー。 ダミー向け教育プログラム - 6
この情報は一連のテーブルとして表示できます。たとえば、認証を行うために、アプリケーションはユーザーとそのパスワードに関する情報を保存する必要があります。アプリケーションをレストラン ガイドにすることもできます。この場合、サーバーには各レストランに関する情報が保存されます。サーバーは、情報自体に加えて、データ間の関係も記録します。たとえば、ユーザーがスマートフォンのアプリケーションでレストランを好きになると、サーバーはレストランとユーザーの間のこのつながりを記憶します。
サーバー。 ダミー向け教育プログラム - 7
これにより、多くの質問に答えることができます。例えば:
  • 何人のユーザーがこのレストランを気に入っていますか?
  • このユーザーはどのレストランが好きですか?
  • 一度に複数のユーザーを魅了する料理は何ですか?
情報とデータ間の関係はデータベース(DB) に保管されます。データベースには多くの種類がありますが、それらはすべて次のとおりです。
  • 情報を保存できる
  • データ間の関係を保存できる
  • 情報の要求を受信し、要求に応じて単一のデータまたは一連のデータとして応答できます。
データベースにはさまざまな種類があり、それぞれに独自の長所と短所があります。SQL、MySQL、MongoDB、CouchDB、Redis などの用語を聞いた場合は、データベースのことを話していることがわかります。

交流

サーバーの主なタスクは、アプリケーションおよび他のサーバーとの対話です。
サーバー。 ダミー向け教育プログラム - 8
多くのアプリケーション タスクでは、サーバーとの対話が必要です。たとえば、ユーザーが何かを検索している場合、検索クエリがサーバーに送信され、そこから結果が得られます。ユーザーが別のユーザーにメッセージを送信すると、メッセージはまずサーバーに到着します。そして、そこから別のユーザーのアプリケーションに送信されます。多くの場合、送信通知の形式で送信されます。アプリケーションがサーバーと対話できるようにサーバーが提供するインターフェースは、通常APIと呼ばれます。一部のインターフェイス機能は、サイト上の検索や承認など、エンドポイントに関連付けることができます。初心者にとって、このやり取りは奇妙に見えるかもしれません。最も一般的な相互運用形式は、JSON と XML の 2 つです。
サーバー。 ダミー向け教育プログラム - 9
左側がXML、右側がJSON 一見すると読みにくそうな形式です。サーバーはラップトップやスマートフォンなどの単なるコンピューターであることを理解することが重要です。携帯電話のアプリは、音声、テキスト、音声認識、または画面上のタッチを介してユーザー入力を受け入れます。アプリケーションはこの情報を処理し、画面上に画像の形式で回答を提供します。スマートフォンは人と対話するコンピュータであるため、人にとって都合の良い形で入力と出力が提供されます。サーバーは、他のコンピュータとのみ対話するコンピュータです。人は、フォント サイズ、テキストの色、書式設定などのおかげで情報を認識します。しかし、これはコンピュータにとっては何の意味もありません。
サーバー間の対話は、他のコンピュータにとって解析および理解が容易な形式で行われます。

サーバーアプリケーション

携帯電話上で実行されるアプリを作成したい場合は、サーバー上で実行されるアプリも必要になります。サーバーサイド アプリケーションはサーバーサイド プログラミング言語とフレームワークを使用して作成されます。一般的なオプションはJavaRuby on RailsNode.jsPHPASP.NETです。
サーバー。 ダミー向け教育プログラム - 10
API はサーバーの「ドア」であり、アプリケーションは API をノックすることを知っていると言えます。データベースにはすべての情報が保存されます。そしてサーバー アプリケーションは、すべてを接続する「頭脳」です。API 経由で送信されるリクエストを受信して​​応答し、データベースに情報を追加および取得し、意思決定を行います。たとえば、ユーザー アプリケーションがログイン情報を送信すると、リクエストは API 経由で送信され、正しいログイン情報がデータベースに保存されます。サーバー アプリケーションのタスクは、それらを比較し、API を使用してアプリケーションに応じて応答することです。

ハードウェア

サーバー。 ダミー向け教育プログラム - 11
「サーバー」という言葉を聞くと、閉め切った部屋の中に照明が点滅するキャビネットを想像する人が多いでしょう。おそらく、この絵を完成させるために欠けているのは、天井から降りてきて何かを盗むトム・クルーズだけでしょう。多くの大企業は、独自のサーバーとデータ センター全体 (キャビネットがちらつく巨大な部屋) を所有しています。Facebook と Google は世界中に何百ものサーバーを持っています。何百万ものユーザーがいる大規模なサービスを実行する場合、独自のサーバーを実行する方が大幅にコストが安くなり、パフォーマンスも向上します。多くの開発者は、独自のサーバーを維持する代わりに、クラウド サービスを使用します。Amazon Web Services、Azure、Digital Ocean などのサービスは、「仮想サーバー」を使用する機能を提供します。これらのサービスはハードウェアを所有および保守し、開発者はサーバー アプリケーションをハードウェアにロードするだけです。一部のサービス プロバイダーはバックエンドをサービスとして提供しており、バックエンド アプリケーションを自分で作成しなくてもシンプルなバックエンドを使用できます。

すべてのアプリケーションにバックエンドが必要ですか?

あなたが使い慣れているほとんどのアプリには、おそらくバックエンド コンポーネントが含まれています。もちろん、サーバー部分のないプログラムも見つけることができます。たとえば、いくつかの生産性向上アプリです。アプリケーションにバックエンドがあるかどうかを確認する簡単な方法は次のようになります。
機内モードに切り替えても、アプリは引き続き動作しますか?
答えが「いいえ」の場合、アプリケーションには間違いなくバックエンド サーバーがあることを意味します。
サーバー。 ダミー向け教育プログラム - 12
アプリケーションのバックエンドが何であるかについて理解できたと思います。たぶん、次に同僚のプログラマーに会ったとき、彼らが話していることを理解できるだけでなく、会話の中で「ジェイソン」を使うこともできるでしょう。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION