たけてぃーの開発ブログ

エンジニア視点からWebサービスについて考える

エンジニア視点から見るWebサービスの全体像

こんにちは、たけてぃーです。ここ1年webサービスを作ったり案を練ったり勉強したりしたことを踏まえて現在のWebサービスの形についての記事を書いていこうと思います。

目的

技術的な視点でWebサービスの全体の設計を大雑把に解説考察することにより、全体像を非エンジニアにも理解してもらう。

WebAPIの役割と重要性について理解してもらう。

現在と過去のWebサービスの形

過去、現在のWebサービスの形は下図のようになっています。

f:id:bararararatty:20160526213700p:plain

用語解説

  • DB・・・データベース(個人情報などデータを格納する場所)

  • WebAPI・・・特定のURLに値とともにアクセスするとデータベースから必要なデータを取ってきてそれをクライアント(ユーザー側)にそのデータを送信する。

  • PC・・・パソコンのアプリケーション

  • Browser・・・InternetExploreやChromeといったブラウザのこと

  • Developer・・・WebAPIを利用する外部の開発者

  • Phone・・・スマートフォンのネイティブアプリケーション

  • Analyze・・・データ解析

  • WebSite・・・静的webサイト

過去

  • ブラウザからWebサイトにアクセスして、WebサイトはDBと一体になっていて必要になり次第DBからデータを引っ張ってくる。

  • ある程度DBにデータが溜まったら、そのデータを解析してWebサイトに反映させたりマーケティングに活かしたりする。

現在

  • DBからデータを引っ張ってくるための玄関口としてWebAPIを用意する。

  • WebAPIからデータを引っ張ってきてフロントエンド(Webサイト)を構築する。

  • WebAPIを多種多様なプラットフォーム(例:PC,SmartPhone)から叩けるよう(データを引っ張ってくる)にし、ネイティブアプリを作る。

  • WebAPIを叩き(データを引っ張ってくる)、DBにあるデータを解析してマーケティングに活かす。

現在のWebサービスの中核にあるものは「WebAPI」である

WebAPIとはDBからデータを引っ張ってくるための玄関口であり、上図のように様々なプラットフォームからアクセスすることができます。これにより、汎用度もあがり、また開発の仕事の分担も楽になります。

WebAPIのメリット

  • WebAPIを作ることによって多種多様なプラットフォームからアクセスできるようになり、サービスの拡張がしやすくなる。

  • WebAPIを外部に公開することによって、外部の開発者が使えるようになり、宣伝にもなり、またそのサービスに新たな価値が見出される可能性がある。

  • サーバーサイドとそれ以外を分けることにより、仕事の分担が楽になる。

  • WebAPIはバージョン管理ができるので、古いものと競合せずに新しいものが作れる。

  • 処理が分けられてるのでバグが起きた時に特定しやすい。

WebAPIのデメリット

  • 大勢の目前に晒されるのでセキュリティに細心の注意が必要になるし、エンジニアの能力も必要になってくる。

  • ブラウザやスマホからWebAPIを叩く(データを引っ張ってくる)時の通信の処理を書く分、エンジニアの能力が必要になってくる。

結論

WebAPIを使うことによって多少のデメリットがあるものの、開発面でもマーケティング面でも非常に多くのメリットがある。

最後に

これは自分が今まで学んできたことなので正しいとは限りません。多くの批判コメントが来ることを望んでいます。