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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

3005閲覧

Python: クライアントサーバアプリケーションの構築、クライアント側をブラウザ以外のGUIを達成する構成を教えてください

saya24

総合スコア247

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/03/11 13:09

当方Pythonの初心者用参考書を読み終えたばかりの者です。

クライアントサーバアプリケーションの構築となると、クライアント側のUIをブラウザとした記事・書籍をよく目にしますが、
今回 Tkinterを駆使したようなGUIをクライアント側のUIとしたC/S型にチャレンジしたいと考えています。

しかし、それが どういったシステム構成・手続きから達成されるのだろうか?と不明な点ばかりで、頭を悩ましています。
何をキーワードにインターネット上の記事、もしくは書籍を探せば良いのだろう という状況なのです。

キーワード・参考になるURLだけでも教えて頂けたらありがたいです。

クライアント側がブラウザであれば サーバ側のサービス提供はWebサーバ(裏にCGI)が担う、という想像をしたのですが
クライアント側がGUIであった場合、サーバ側=アプリケーションサーバ?!は どういったサービスを提供して クライアント側と疎通を図るのだろう?
Python以外にTomCatみたいなものが必要なのだろうか?と首をかしげています。

サーバはWindowsServer2016、接続クラインアント端末はWindows10のX台??

別業務システムのデータベースに繋げるためには相応のミドルウェア(プロバイダ)が必要となりますが、各クライアント端末にソレをいちいちセットアップしていられない、ということからC/S型を思いついています。

(クライアント側UIを GUIにする=ブラウザではない 方針は C/S側の手法として未経験な分野にチャレンジしたい、というところが大きいです...)

ご見解頂けたら幸いです、何卒よろしくお願い申し上げます!

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

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

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

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

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

guest

回答3

0

クライアント側がブラウザ以外のクライアントサーバアプリケーションというのは、Web アプリが普及する前はそれが普通でしたし、今でもたくさんあります。スマホアプリと呼ばれるものの多くはそれですね。
近年になって変わった点としては、クライアントとサーバ間の通信手段や内容が、以前はより密結合で RCP や XML を使っていた(今も使われてるは思いますが)のが、今では Web に合わせて疎結合の JSON(または Protocol Buffers などの単純なシリアライザ)でいいじゃん、ってことになったことでしょうか。
というわけで、私の偏見かもしれませんが、重厚壮大(かつベンダーロックイン)なミドルウェアはもう流行らないと思います。たぶんまだそういう書籍は残ってるでしょうけど。

設計方針としては、リアルタイム性を要求されないものであれば、サーバー側は REST API として作って(普通に python でできるはず)、クライアントからは HTTP(S) でつないで JSON をやりとりする、という単純な作りで十分だと思います。
そもそも、初心者さんがなぜ「未経験な分野にチャレンジしたい」のかよく分かりません。大きな野望を抱くのもいいですが、まず普通のことを普通にできるようになることが大切ではないでしょうか。

投稿2020/03/11 19:07

編集2020/03/11 20:56
hoshi-takanori

総合スコア7901

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

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

saya24

2020/03/12 01:10

hoshi-takanoriさん、ご親切なご説明をありがとうございます。 難易度さえ分からない状態での質問でしたが、「野望」と記載頂いている状況から察すると 初心者には相応に高い壁ということなのでしょうかね。サーバに何をセットアップすれば良いのかも分からないので、自分は初心者という認識なのです... ネットへの検索は REST API というのがキーワードになるのですかね
hoshi-takanori

2020/03/12 01:30

「野望」はちょっと言い過ぎたかもしれません。むしろ、Web やスマホの方が制約が多く、難しい面もあります。それでも、書籍やネットの資料は Web やスマホの方が多いので、情報が少ないという意味で大変ではないかと思いました。単純なアプリならサーバーもクライアントも python で書けるので、サーバーやクライアントの仕組みを学ぶ上では、むしろその方がいいのかもしれませんね。
guest

0

ベストアンサー

サーバー側は、RESTful アプリケーションとして実装するの一般的かと思います。

Google で「python restful」「python APIサーバー」のようなキーワードで検索すれば、解説サイトが出てくると思います。

また、クライアント側は、Requests という RESTful API でデータをやり取りするための便利なモジュールがあり、実装はそれほど難しくないと思います。

投稿2020/03/12 05:04

nskydiving

総合スコア6500

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

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

saya24

2020/03/13 03:02

キーワードのご提供ありがとうございます。是非にチャレンジしてみたくなりました、助かります!
guest

0

かなり古い記事ですが以下が参考になると思います。
考え方は現在も同じです。

(@IT)ビジネス・アプリケーションの論理3層構造

私の様なじじいが「クライアントサーバアプリケーション」から連想すると
上記記事の「C/S型」を思い浮かべてしまいます :-|

現在ではこの記事の「スマート・クライアント型」が一般的です。
ビジネスロジック層の出入り口を決めておけば(プロトコルはhttp(s)、I/FはREST,SOAP etc...)
UI層をWebにしようがクライアントアプリケーションにしようが
特に困ることはない。(Web版、アプリ版同時利用可として作成することもできる)
ビジネスロジック層から先はphp, java servlet, Python, .NET, etc...
何で作成しても問題ないです。

投稿2020/03/12 01:47

Y.H.

総合スコア7918

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

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

saya24

2020/03/13 03:05

記事のご紹介をありがとうございました。今から読んで週末にチャレンジ、という感じですね。恥を忍んで聞いてよかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問