質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

1回答

1753閲覧

サーバアプリケーションとは?

rihitoban

総合スコア25

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2021/08/28 13:09

3分間ネットワーキングのNo.43で「サーバアプリケーション」という用語が出てきました。以下にその説明を引用します。

なんらかの通信サービスを行うためのアプリケーションのこと。

例えばWebサイトの公開やメールの転送などを行う。
Webサーバや、メールサーバというのは、これらのアプリケーションを実行してサービスを行うコンピュータのことを指す。

この説明だとよくわからなかったのですが、「サーバアプリケーション」というのはどのようなものなのでしょうか。ブラウザなどのWebアプリケーションのことを言っているのでしょうか。また、調べたところ、「アプリケーションサーバ」がヒットしたのですが、これとは違うものなのでしょうか。

一般的に「Webサーバ、Webアプリケーションサーバ、データベース」の3層構成が有名だと思うのですが、これの「Webアプリケーションサーバ」が上の引用文でいうところの「Webサーバや、メールサーバ」にあたるのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/08/28 13:21

決まった定義があるわけではなく、サーバーで動くアプリケーション全てと言っても良いと思いますが? 質問者さんが参考にしているサイトは見てませんが、「サーバアプリケーション」=「なんらかの通信サービスを行うためのアプリケーションのこと」とか書てあったとすると、そのサイトの記事を書いた人の定義がそうだというだけのような気がします。 (ネットの情報は玉石混交です。石ならまだしも毒が混じってることもあります。参考にしているサイトがそうだと言っているわけではありませんが)
rihitoban

2021/08/28 13:27

ありがとうございます。もう少しちゃんと読んだところ、Webサーバやメールサーバがあってそのサーバの中でアプリケーションとして処理を実行するものとしてサーバアプリケーションが説明されていました。
takasima20

2021/08/28 13:56

単に初心者がなじみのある言葉として「アプリケーション」を使ってるだけかな。 「プログラム」じゃニュアンスが伝わらないと思った?
guest

回答1

0

ベストアンサー

まず、大体の場面で言えるところですが、専門用語(のように見えるもの)に厳密性を求めない方が良いです。
日本語だと漢字熟語や外来語のカタカナ語でものものしく見えるかも知れませんが、オリジナルの英語で見たら、単なる日常用語の繋ぎ合わせに過ぎません。
なので、その用語の指す意味は、その言葉が持つ普通の意味の範囲内で、文脈や話者の意識に応じて変わってくると見た方が良いです。
※そうは言っても、「この用語ならこのことを指す」というのが大体決まるような用語もあります。それぞれです。

では本題の「『サーバアプリケーション』というのはどのようなものなのでしょうか」という疑問ですが、まず単純に「『サーバ』としての役割を持つ『アプリケーション(ソフトウェア)』」です。
それぞれのパーツとしては、

  • サーバ
    システムを「機能を提供するもの」と「享受するもの」とに分離する考え方・構成法 ( クライアント・サーバシステム ) で捉えた時の、「提供するもの」の方を指す言葉
    ※Webならば、URLに応じたコンテンツを要求するブラウザやそれを動かすPCがクライアントで、コンテンツを送信してくるApacheやNginxといったWebサーバソフトウェア、あるいはそういったソフトを動かすコンピュータ群がサーバになります。
  • アプリケーション(ソフトウェア)
    特定の目的を実現するために開発されたソフトウェア
    …どんなソフトウェアでも目的はあるんじゃないの? と不思議に思われるかも知れませんが、そこは他のソフトの縁の下の力持ちとして、それ自身明確な利用目的が言いづらいOSと対比する意味で「特定の目的」と言ってると思ってください。

で、件のページで言っている「Webサーバ」「メールサーバ」としての機能を実現するためのソフトウェア ( 前者はApacheやNginx等、後者はPostfix等 ) のことを「サーバアプリケーション」と呼ぶことは十分にあります。
ただ、ここらへんのシステムはもう枠組みや実現すべき機能がある程度固まっているので ( とは言え設定等で幾らでもカスタマイズする余地はありますが )、あまり「特定の目的」という見方はされず、どちらかと言うと「アプリケーション」ではなく、「縁の下の力持ち」とまでは行かないまでも、中間的な位置づけの「ミドルウェア」と呼ばれることの方が多いとは思います。
とは言え、これは用語を使う人の意識によって変わる問題なので、文脈を無視して判断すると危険です。

一方で、「一般的に『Webサーバ、Webアプリケーションサーバ、データベース』の3層構成が有名だと思うのですが」で出てくる3種類のサーバは、当初単純な「URLに応じて決まったコンテンツを提供するだけ」だったWebシステムが、外部プログラムとの連携機能を得て複雑化したために、ソフトウェア・ハードウェア的に役割を細分化して出てきたものです。( といっても「データベース」は昔からあったものですが )
つまり、

  • Webサーバ
    システム全体の中で、クライアント(ブラウザ等)からのリクエストを受け、コンテンツを返す部分を担当する、狭い意味での「Webとしての機能」を担当するサーバ
  • Webアプリケーションサーバ
    提供するコンテンツの動的生成、ビジネスロジックの実現や他システムとの連携 ( 例えばネットショップなら在庫管理、注文管理、決済等々のビジネスロジックを捌く必要があります ) という「サイトの目的を実現するコアの部分」を担当するサーバ
  • データベースサーバ
    データの蓄積・整理、検索、統計といったデータ管理を担当するサーバ

こういった感じの役割分担です。

最後に改めて「『サーバアプリケーション』というのはどのようなものなのでしょうか」という質問に立ち戻りますが、今時アプリケーション開発するシステムってWebが大半でしょうから、大抵の場面で上の「Webアプリケーションサーバ」としてのアプリケーションソフトウェアを指すことが多いだろうと思います。
ただ、繰り返しになりますが、これは文脈や話者の意識に左右されるものですので、あくまで「何かの『サーバ』機能を提供する『アプリケーション』なんだな」とあっさり捉えておいて、詳細は場面に応じてよく考えましょう、と注意していただければと思います。

投稿2021/08/28 14:49

編集2021/08/28 15:28
angel_p_57

総合スコア1681

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rihitoban

2021/09/01 04:08

ありがとうございます。まだ知識が浅いので、それぞれの用語について厳密に意味を自分の中で定義しないとよくわからなくなってしまうもので申し訳ないです。徐々にですが、知識をつけていって理解できるようになっていきたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問