至急 高校情報Iこの写真なのですが、クライアントサーバ型についての説明のオレンジで引いた2つの部分って矛盾してませんか?集中管理できる=負荷が中央のコンピュータに集中するかのになぜそれぞれの端末で負荷を分散できるということになるのですか?

1件の回答

回答を書く

1151303

2026-06-19 04:30

+ フォロー

Geminiさん(無料版)に聞いてみました。

Me)

webサーバなどで、ある処理をクライアント側でさせるかサーバ側でさせるかの設計はどのように行いますか、クライアントサイドJavaなんかだと何ができますか?

Gemini)

Webシステムの設計において、処理を「クライアント側(ブラウザ)」で行うか「サーバ側」で行うかの判断は、ユーザー体験(UX)とセキュリティ、そして運用コストのバランスで決まります。

現在のトレンドや設計判断の基準、そして「クライアントサイドJava(および現代の代替技術)」で何ができるかを解説します。

---

## 1. クライアント側 vs サーバ側の設計基準

どちらで処理を行うべきか判断する際、以下の3つの観点を検討します。



判定基準テーブル

| 項目 | クライアント側 (Frontend) | サーバ側 (Backend) |

| 主な目的 | 高速な応答、直感的なUI操作 | データの安全な管理、重い計算 |

| セキュリティ | 低い(ソースコードが丸見え) | 高い(機密情報を隠蔽できる) |

| データ操作 | 一時的な表示用データの加工 | DBへの保存、一貫性の保持 |

| リソース | ユーザーの端末性能に依存 | サーバのスペックに依存 |



設計の基本的な考え方

* 「入力バリデーション(チェック)」は両方でやる: UXのためにクライアント側で即座にエラーを出し、不正データ防止のためにサーバ側でもう一度厳密にチェックします。

* 機密情報は必ずサーバ側: 料金計算のロジックや個人情報の照合など、ユーザーに改ざんされてはいけない処理は100%サーバ側です。

* 描画の柔軟性はクライアント側: グラフの動的な変化や、スクロールに応じたコンテンツ読み込みなどはクライアント側が適しています。

---

## 2. クライアントサイドJavaでできること

「クライアントサイドJava」という言葉には、歴史的なものと現代的なものの2つの側面があります。



① かつての主流:Java Applet(現在は廃止)

かつては「Java Applet」として、ブラウザ上でJavaを動かす仕組みがありましたが、セキュリティ上の脆弱性が多く、現在は主要なブラウザでサポートされていません。 ② 現代の選択肢:WebAssembly (Wasm) と TeaVM

現代において「Javaの資産やスキルをクライアント側で活かしたい」場合、Javaコードをブラウザが理解できる形式(JavaScriptやWebAssembly)に変換する技術が使われます。

* TeaVM / GWT (google Web Toolkit): Javaで書いたコードをJavaScriptにコンパイルします。

* CheerpJ: JavaのバイトコードをWebAssemblyに変換し、ブラウザ上でフルスタックのJava環境をシミュレートします。



これらを使ってできること:

* 複雑なロジックの再利用: サーバ側で使っている複雑な計算アルゴリズム(Java製)を、そのままブラウザ上でも動かす。

* レガシー資産のWeb化: 昔作ったSwingなどのデスクトップアプリを、大きな改修なしにブラウザで表示する。

* 高度な画像・音声処理: JavaScriptよりも高速な処理が期待できるWebAssemblyとしてJavaを実行し、ブラウザ上でのリッチな体験を実現する。

---

## 3. 現代的な設計の構成図

現在のWeb開発では、Javaはサーバ側(API)に徹し、クライアント側はJavaScript(React/Vueなど)や、必要に応じてWebAssemblyを使うのが一般的です。

Me)

上記は、Webサーバの例ですが、ほかにもDBサーバとかサーバによってもいろいろです。クラサバといってもすべてをサーバでやっているわけではありません。

が、説明が舌足らずでよくないとは思います。

スルーでお願いしています。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有