現在の日本企業はどの業種においても深刻な人手不足に悩まされています。
少子高齢化が深刻化し、優秀な人材の確保はどの企業においても取り組まなければいけない問題です。
そんな中で事業の一部を海外の企業に委託するオフショア開発が注目を浴びています。オフショア開発は以前から欧米諸国で行われていた方法で、物価の安い発展途上国に業務を委託してコスト削減と人材の確保をするのです。
日本でもかなり前から行われおり以前は製造業が主でしたが、ここ最近ではインターネットの普及と急速なデジタル化の影響で、システム開発・アプリケーション開発などのIT業界ではオフショア開発は欠かせないものとなり、これからも増えていくと考えられています。
そこでオフショア開発でのデータベース・API設計の内容について今回はご紹介したいと思います。
データベースの役割
データベースとは特定のテーマに沿ってデータを集めて効率的に管理し、整理して使いやすい形にしたものを言います。
データベースは文字通りデータの基礎や土台となるもので、データベースを使ってデータを管理するといくつかのメリットがあります。
・複数のデータをまとめて管理できる
・目的のデータを簡単に探すことができる
・編集して使うことが出来る
などが挙げられます。データベースは複数のアプリケーションやユーザーによって共有利用されているデータ集合体で、DBMSと呼ばれるデータベース管理システムによって管理し操作します。DBMSはコンピューター上で大量のデータを自動的に整理してくれます。
たとえば登録している企業のカスタマーセンターに電話すると、氏名や会員番号などを聞かれ、この時に念のために生年月日も聞かせてくださいと言われることもあります。それはつまりその企業の社内データベースにアクセスして確認していることになります。
現在使われているDBMCには「階層型データベース」「ネットーワーク型データベース」「リレーショナル型データベース」の3つあり、主に使われているのは、「リレーショナル型データベース」です。
リレーショナル型データベースは表と列によって構成された表形式のテーブルのデータ集合のテーブル同士を関連付けます。
マイクロソフトのofficeに入っているAccessはリレーショナル型データベースにあたります。
APIとは何か?
APIとは(Application Programming Interface )の事で、簡単に言うとソフトウエアを共有する仕組みのことです。
インターフェイスとは「何かと何かを繋ぐもの」という意味やその境界面のことを指し、APIとはソフトウェアとプログラムやアプリケーション同士を繋ぐもので、APIを使えばプログラム(ソフトウェア)の機能を他のプログラムでも利用できるようになるのです。
簡単な例で言うと、InstagramはFacebookAPIを使っているのでFacebookのアカウントですぐに利用することができます。
最初にInstagramにログインするときに「Facebookとへのアクセスを許可しますか」と言う表示が出るのは、FacebookAPIを使ってログインしているからです。Facebookだけではなく、GoogleやTwitterといった多くの企業がAPIを公開しているため、最新の情報を入手しやすいのです。
API の中でも近年主流になっているのが「WebAPI」で、Web上でアプリケーションとアプリケーションを繋ぎデータのやり取りをおこないます。APIの利用方法はAPIを提供している企業の専用サイトへアクセスして、連携したいアプリケーション情報を登録します。
登録が完了すると「APIキー」と「シークレット」を取得します。
APIキーはIDを指し、シークレットはパスワードを指しますのでAPIを利用するには必ず必要なり、セキュリティに注意して管理してください。そして取得したAPIキーとシークレットをアプリケーションに設定すると、外部から勝手に利用されることがなくなり、これでAPIを使う準備完了です。
Web APIの効果
近年ではWebAPIが主流になっていることは先ほどお話しましたが、企業においてもAPIを活用することができます。
たとえばTwitterAPIではTwitter上に投稿された情報をもとに分析をおこなうことが出来るサービスや機能を企業で自社開発しなくても、twitter上で投稿機能を使って簡単に投稿できるようになり、企業のマーケティングでも大いに役立てると思います。
またAPIを導入すると、他のアプリケーションの機能を自身のアプリケーションに取り込みアプリケーション間の機能を共有したり連携したりできます。また新しいサービスを開発するには時間やコストがかかってしまいますが、APIを利用すると、共通する機能はAPIを提供する側のアプリを利用できるので、開発にかかるコスト削減にもつながります。
中小企業や起業したばかりのベンチャー企業にとっては非常に大きなメリットのあるシステムです。
またAPIを提供する企業側にもAPIを公開することで他社との連携が容易になることでメリットになります。
APIは便利な機能だけではなく導入にも簡単におこなえるように作られています。WebAPIの場合はコードを入力するだけで簡単に使用できるものもあり、html言語が使える人であれば、WebページにAPIを埋め込むことが出来ます。APIを効果的に利用することでアプリケーションの製作コストを抑えながら高い品質とセキュリティを担保にしたサービスが実現できると言うわけです。
オフショアでのデータベース・API設計する際に気を付けたいこと
オフショアでデータベース・API設計をおこなう際に気を付けたいことがあります。
まずデータベース設計の手順にはいくつかの原則があり、それをベースに設計しなければなりません。
・データの情報の重複を少なくするために、情報が主題ごとのテーブルに分割されていなくてはなりません。
・必要に応じてテーブル内での必要な情報を結合できるようにAccessに情報を提供できる。
・情報が正確であるかを保証されている
・データ処理とレポート作成のニーズに対応している
データベースの設計は情報の正確さと完全性が重要です。
データベース設計のプロセスは、下記のとおりです。
データベースの目的を決定➡情報の整理➡情報を分割➡情報の項目を列に変える➡主キーを指定➡テーブルリレーションシップを決定➡設計・調整➡正規化ルールを適用する
データベース設計において、必要な情報を使いやすくするため、表の大きさやそれぞれの表をどのように結合させるか、実際の運用が始まるとデータ保存のためにどれくらいの容量が必要なのかを計算したりします。
次のAPI設計をする際に気を付けたいことがいくつかあります。
まずURLを設計するときにURLをモデル型(ユーザー、商品)かアクション型(購入する、出席する)かを決める必要があり、どちらを採用するにしても明確な基準が必要になります。RESTfulの原則に従うようにすると、コントローラーの機能を分離してソースコードの可能性も高まります。
オフショアでデータベース・API設計をおこなう場合は相手に明確な目的を伝えて、こちらの意図をしっかりと理解してもらう必要があります。
日本国内での慢性的な人手不足の影響で多くの日本企業でもオフショア開発を利用されるようになりました。
しかし日本とは言葉も文化や習慣も違うことから品質の問題や、育てた現地エンジニアの定職率の低さに苦戦している企業も多いようです。また近年のデジタル化やスマートフォンの普及でアプリケーション開発やシステム開発の需要が多くなり、IT業界でのオフショア開発への依存率は高くなってきています。しかし将来的なことを考えるとオフショア開発で海外の優秀な人材を確保しながら、日本政府が日本人エンジニア育成の政策を打ち出さなければいけないと思います。