【パッケージシステム】導入のメリット・デメリットを徹底解説!

仕事や生活を便利にしてくれている様々なシステム。そのシステムの中には『パッケージシステム』と呼ばれるものがあるのは、ご存知ですか?「そんなの知っているよ!」という方も多いと思いますが、本当に理解されていますか?今回は「今さら聞けない!」というパッケージシステムについて、徹底的に解説していきます。

 

パッケージシステムとは

 

すでにできているシステム

 

 

既にご存じの方も多いと思いますが、改めて再度『パッケージシステム』について確認をしたいと思います。

『パッケージシステム』とは、既に出来上がっているシステムのことを言います。既製品のことですね。

 

例えば、洋服です。

量販店で洋服を買うときには、既に出来上がっている洋服が店舗に並んでいます。

店舗にある、既に出来上がった洋服の中から、自分が気に入った洋服を買うと思います。

上記の例だと、既に出来上がっている洋服(製品)を購入します。

 

これをソフトウェアに当てはめると、既に出来上がっているシステム(ソフトウェア)を導入するということになります。

『パッケージシステム』とは、既製品ということになります。

 

独自開発システムとは

 

オーダーメイドで『0』から構築するシステム

 

 

『パッケージシステム』の対になるものが『独自開発システム』です。

これは、『パッケージシステム』とは違い、『0』からシステムを開発して、導入していくというシステムになります。

 

先ほどの洋服の例にしますと、『オーダーメイド』になります。

スーツをオーダーメイドするとしましょう。

まずは体に合ったものを作るための採寸をして、素材となる布を選びます。

スーツの型を決め、詳細を決めていきます。

その後。いよいよ制作します。

一点ものを作るので、職人の手作業になり、時間がかかります。

このようにして作られたスーツは、オーダーした人にピッタリのものとなります。

 

システムも同様に、完全オーダーメイドで、需要に合ったシステムを構築、導入することができます。

『独自開発システム』とは、需要に合わせて『0』からシステムを構築、導入していくオーダーメイドシステムのことです。

 

『パッケージ』と『独自開発』はどっちを導入すべき?

 

 

『パッケージシステム』と『独自開発システム』については、ご理解いただけたと思います。

双方のシステムに違いがあります。

実際に導入する際には、どちらのシステムを導入すると良いのでしょうか?

この項目では、その比較をしていきます。

 

簡単に比較はできない

 

 

『パッケージシステム』と、『独自開発システム』のどちらを導入すべきかは、簡単に答えは出ません。

なぜなら、どちらにも導入するにあたってのメリット、デメリットがあるからです。

『パッケージシステム』のメリット、デメリットについては、後の項目にて紹介していきます。

この項目においては、『独自開発システム』のメリット、デメリットについて紹介することで、どちらのシステムを導入すべきかが、簡単に答えが出せないということを解説していきます。

 

『独自開発システム』の最大のメリットは、必要に応じて自由にシステムを構築することができるという点です。

業務系システムでは、会社の業務に合わせたシステムを自由に構築することができます。

余分な機能がなかったり、必要な機能を使い勝手の良いインターフェイスで構築することができる点は、大きなメリットです。

 

Geekly Media ライター

Terrace Factory

2+

システム障害の「切り分け」とは!一次、二次の違いは?分かりやすく解説します!

ITによるサービスが一般的になった現代では、システム障害がつきものです。これら問題を解決するための作業が「切り分け」です。システム障害の原因には、ヒューマンエラーから、システムにある根本的な問題まで幅広くあります。そこで今回は、システム障害における「切り分け」について、一次と二次の切り分けの違いを交えながら解説します。

 

システム障害における「切り分け」とは

 

システム障害において大切なことは「障害切り分け」です。システム障害を解決するために、障害時の操作や環境を正確に把握し、障害が起こった根本的な原因を特定する必要があります。

例えば、インターネットに繋がらなくなったという障害ならば、以下のような原因を想定します。

 

・PCのネットワークドライバ(ソフトウェア)の問題

・PCへ新たにインストールしたソフトウェアの問題

・PCのLANポートの故障

・LANケーブルの断裂

・ルーターとケーブルの接続問題

・ルーターの物理的な破損

・ルーターのファームウェアの不具合

・プロバイダーへの料金支払い確認

 

などです。

ネットワークへの接続障害ひとつ取っても、環境やオペレーションに依存した原因が無数に存在します。システム障害における「切り分け」では、これら原因のどれに該当し、どのように解決へ導くかが最大の業務になります。

 

システム障害時の「一次切り分け」と「二次切り分け」の違い

 

システム障害の問題切り分けには「一次切り分け」と「二次切り分け」があります。これらはどちらも障害の原因を特定するものですが、それぞれの切り分けには重視するポイントに違いがあります。

 

一次切り分けは障害対応のはじめの一歩

 

 

一次切り分けは、障害の原因特定における最初のアクションであり、問題を正確に把握するための最も重要な役割とも言えます。

システム障害が起きた際、それがシステムに潜在的に潜む障害なのか、あるいはオペレーションミスなどのヒューマンエラーなのかを切り分ける必要があります。

この大まかな切り分けは、今後の問題解決方法にとって最も重要な判断となり、万が一原因を取り違えてしまえば、対応の手戻りが起こってしまうのです。

システム障害は、システムを利用するユーザーにとっては業務を止めてしまうほど致命的ですので、出来る限り迅速にシステムの回復へ導かなければなりません

一次切り分けに必要な情報には大きく以下の2つがあります。

 

・システム障害が起こる前に行ったオペレーションの把握

・システム障害が起こった後に行ったオペレーションの把握

 

これら情報を正確に聞き出すことが、システム障害の正確な一次切り分けに繋がります。

 

二次切り分けは専門的な障害対応

 

 

二次切り分けを行う段階では、ほとんどの場合オペレーションミスなどのヒューマンエラーは取り除かれている状態です。ですので、基本的にはソフトウェアやハードウェアの専門的な情報による問題切り分けとなります。

例えばネットワーク障害であれば、ネットワーク機器自体の不具合であるのか、あるいはファームウェア自体に不具合があるのかを切り分ける必要があります。二次切り分けは、システム障害を根本的な解決へ導くことが重要な使命なのです。

 

一次切り分けに必要なスキル

 

具体的な障害を正確にヒアリングするコミュニケーションスキル

 

 

一次切り分けに最も必要なスキルは、障害を正確にヒアリングするコミュニケーションスキルです。システム障害が起きた際に、事象をヒアリングすることは比較的容易ですが、障害が起きた際に行った前後の操作や、現状の障害範囲を詳細にヒアリングするには、ユーザーとのコミュニケーションが大切です。

システム障害を早く解決するために、ユーザーが焦っている場合も多いので、その状態から様々な事象をヒアリングしなければなりません。

冷静に且つユーザーに寄り添った口調でシステム障害の詳細をヒアリングするためには、コミュニケーション能力が不可欠なのです。

 

Geekly Media ライター

佐久森

2+

APIについて徹底解説!気になるWeb APIとの違いから実際の使い方まで分かりやすく説明します。

近年、実際に運用を想定したプログラミングを行う上で外す事が出来ないのがAPIの導入です。しかしAPIもプログラムの作り手が正しく理解していなければ、その効率を上手く引き出す事が出来ないばかりか思わぬ落とし穴に落ちてしまいます。今回は特によく聞くWebAPIとの違いや実際のAPIの使い方を解説していきます。

 

APIとは?

 

 

APIはApplication Programming Interface(アプリケーション プログラム インターフェース)の略称です。プログラムとソフトウェアを繋ぐ物という意味合いで使われる事が多いIT用語です。

少し噛み砕いた言い方をするととあるソフトウェアの機能の一部を公開して他の人でも利用出来るようにした物という言い方をする事が出来ます。

APIの機能自体はより深く追求していけば再現は可能である場合がほとんどですが、それには膨大な時間がかかり、プログラムもより複雑になっていきます。

APIを利用する事で該当するプログラムを簡略化でき、より見やすく使いやすいサービスを提供しやすくなります。

 

WebAPIとの違いは?

 

 

近年APIというとWebAPIと広義ではほぼ同義のように使われています。しかしより細かく分類するとAPIという分野の中の1つの括りがWebAPIという括りです。

APIはあくまでもプログラムとソフトウェアを繋ぐ物であるのでライセンス制であるなど一般には公開されていない物、またWebを介さない導入なども含めています。

例えばパソコンの機能自体を動作させるWindowsAPIなどはWeb上で動作するわけではない為、APIではありますがWebAPIには含まれません。

しかしWebAPIはより汎用的に一般的な人でも使えるようになっていてWeb上で公開され、Web上で動作しているのが明確な違いでもあります。

またプログラム言語的にはAPIは利用の際にAPI側の言語に合わせた設計をする必要がある場合もあるのに対し、WebAPIの場合はWebAPIと異なる言語でも使用出来るようになっている場合がほとんどです。

 

利用者にとっても身近な存在と言えるWebAPI

 

 

プログラムをする側にとっての説明は言葉にすると難しいですが利用者の視点に立ってみるとWebAPIの方がより身近なサービスで利用されている事が分かります。

例えば近年一般にも浸透し普及しているSNSとの連携機能をもたせる事は一番分かりやすいWebAPIの使用例です。ログイン機能や写真の共有などは今では多くのWebサービスに取り入れられています。

ログインを求める際にSNSのアカウントでもログインしておくようにするにはそのSNSを運営する会社が提供するWebAPIを利用する必要があります。

 

APIを利用するメリット

 

開発の効率化・開発コストの大幅な削減

 

 

APIの利用の大きなメリットの1つが開発の効率化にあります。全てのプログラムを1から作ると相応の時間がかかりますがAPIを利用する事でAPIを使用する部分のプログラムをする必要がなくなります。

開発が効率化出来るという事はその分、開発コストを抑える事にも繋がります。APIの種類にもよりますが無料で公開されているものも多いので利用を続ける事によるコストもありません。

また開発が効率的に行えれば残りの時間でよりサービスを便利にしたり、別の開発を行ったりと幅広い対応が出来るようになります。

 

セキュリティ面の向上

 

 

大手のサービスのAPIを使ったログイン機能の実装などの利用方法は自社でログイン機能を作るよりもセキュリティ面でも利用者の安心感が高くなります。

もちろんAPIでの他サービスで入力した情報の利用には利用者に許可を求める必要があります。

 

利用者にとっても便利

 

 

APIの導入は利用者にとってもメリットが大きいです。

特に色々なサービスで利用されるログイン機能はAPIを導入して他のサービスなどでも入力した情報を取得してくれるのであれば利便性が上がり結果的にサービスを利用する人の増加にも繋がります。

また使い勝手がサービスによって変わらない事で利用者が新しく覚える事を軽減させる事が出来るのもAPIを導入した際のメリットとなり、継続利用の可能性を高める事にも繋がります。

 

APIを公開するメリットは?

 

 

もちろんAPIを公開する側にもメリットはあります。APIを利用してもらえるだけで自社のサービスを知ってもらう機会が増えますし、使用データの総量を増やす事ができます。

使用データが増えればそれだけ細かい分析が行えるのでより利用者にとって有効な新たなサービスを提供出来るようにもなります。

また類似のサービスが増える事でより特化した物や汎用性に優れたサービスが増え、結果的にサービス全体の利用者が増える事を狙うという意味合いもあります。

 

APIを使うのに必要な知識

 

 

本格的なプログラムの知識が無くなても、最低限のHTMLやCSSの知識を有していれば利用出来るWebAPIもあります。

WebAPIの利用は簡単な物であれば最低限のHTMLやCSSの知識があれば本格的なプログラムの知識が無くなても利用出来る物もあります。

APIの多くは利用方法や条件を記した仕様書も同時に配布しているのでそれらを読んで理解出来るだけの知識があればその仕様書に従って埋め込むだけで動作するAPIも存在しています。

しかしそのAPIを利用してさらなるサービスへと発展させていく場合にはよりプログラム的な知識が必要になります。

特にAPIの中には特定の言語での利用が利用条件になっている場合もあるのでそうなってくるとその言語の知識は必須といえます。

またAPIの配信する形式にもいくつかの方式があるのでそれらの方式に対しての導入方法なども抑えておく必要があります。

APIを利用する際にはまず必要な条件や知識を確認した上で導入するのがおすすめです。

 

Geekly Media ライター

Lotus0

9+

【IT】VBAについて徹底解説!マクロとの違いから多言語への応用性まで幅広くご紹介します!

Office製品を深く利用していくと目にする機会が多くなるのがVBAです。特にマクロを使い始めると頻繁に目にする事になる事からその違いが分からないという人も多いのではないでしょうか?今回はVBAについて、マクロとの違いからVBAの活用方法、VBAをこれから習得する事のメリット・デメリットなどを紹介していきます。

 

VBAとは?

 

 

VBAとはVisual Basic fot Applicationsの略称で、2つの物を指しています。

1つはマイクロソフト社が提供するOfficeソフトで動く拡張機能の1つで、簡易的なプログラムで処理を自動化する機能の事です。

2つにその機能を動かすプログラム言語を指してVBAという場合もあります。officeを使いこなすにはこのVBAを覚えるのが一番てっとり早い方法です。

元々はVisual Basicという立派なプログラム言語が使われていましたが、Visual Basicの習得は1つのプログラミング言語を覚える事になるので非常に大変で、officeを使いこなすのに高いハードルとなっていました。

その為VBAはVisual Basicを簡易化する事で入り口の敷居を下げる事を目的に制作されています。

 

VBAで行うのに向いている作業

 

 

VBAは一定の操作を連続して行うような単純作業、ファイルを跨いだデータの取得を行う際などに非常に向いています。

さらに複数の単純作業を1つのVBAで実行する事も可能で、データを取得して並べ替えるなども簡単に行う事ができます。

1度この作業を登録出来てしまえば2度目以降同様の作業を行う必要がなくなります。

 

VBAとマクロとの違いは何?

 

マクロとは?

 

 

VBAとセットで聞く機会が多いのがマクロです。VBAとセットで聞く場合のマクロとは事前に登録した操作を1ボタンで実行してくれるofiice製品に搭載された機能の事です。

マクロという言葉自体はoffice製品以外でも利用される場合も多く、11つのプログラムをどのような順番で実行するかを記した物と説明されます。

プログラムというと難しく感じますが、1度左クリックした時の処理もパソコンに置いては立派な1つのプログラムです。

普段使っているアプリの多くも内部では様々なマクロが登録されているのです。

 

VBAとマクロの違い!

 

 

VBAとマクロの説明を見ると益々その違いが分からないという人もいるのではないでしょうか?実はVBAとマクロはoffice製品においてはほぼ同じ役割を果たしているのです。

Office製品にはマクロを登録しておく機能が標準で搭載されています。この機能は実際にした操作を覚えさせる事で2度目以降その操作を自動で行ってくれる物です。

Office製品がこの「覚える」作業をする為にはマクロをプログラムに置き換える必要があります。この時のプログラムに使われている言語がVBAなのです。

つまりofficeに搭載されているマクロ機能はプログラム言語であるVBAを実際に操作を行う事で入力している機能なのです。

 

VBAを習得すればより高度な操作が出来るように!

 

 

Office製品のマクロ機能はプログラム言語を学ぶ事なく使う事が出来るので非常に便利な機能ですが、1つ問題があります。

それは1度操作を完璧に実行する必要があるという事です。間違った操作をしてしまうとその操作も登録されてしまいます。

間違った操作をした物をそのまま利用しているとその時は出来ているように見えても大事なデータが消えてしまったり、動作が重くなったりと不具合が出てしまったりする可能性もあります。

短い操作であればマクロ機能の方が素早く登録できますが、長くなり複雑になればなるほどVBAで直接プログラムを打ち込んだ方が早くなります。

操作1つ1つでマクロ化する事ももちろん可能ですがそれではせっかくマクロ化しても少ししか作業の効率を上げる事が出来ません。

さらに1度は実際に操作する必要があるマクロ機能では到底操作が出来ないような複数ファイルに渡った操作なども出来るのがVBAの大きな魅力の1つです。

 

VBAのメリットとデメリット

 

VBAのメリット

 

 

行う操作が複雑になればなるほど作業スピードが大きく異なるのがVBAの魅力です。機械的に動作するのでしっかりとしたプログラムを作れれば間違いが起きる事も絶対的にあり得ません。

間違いが起こらないという事は制作する時間はもちろん、間違いをチェックする時間も短縮出来るのでトータルすればかなりの作業量を削減する事ができます。

またVBAの実行自体は1ボタンで実行するようにする事も可能なので、操作をする人のスキルが異なっても大差ないスピードで作業をする事が可能なのも大きなメリットと言えます。

 

VBAのデメリット

 

 

簡易化されているといってもVBAも立派なプログラミング言語の1つです。しっかりと使えるようになるレベルになるまでにはそれなりに時間がかかるのは1つのデメリットといえます。

特に複雑な処理をさせたい、仕事で使えるレベルで習得したいという場合には相応の時間がかかります。プログラムの世界では別々では動作するプログラムが組み合わせるだけで動作しなくなるなんて事も頻繁に起こります。

もちろん習得期間中の中途半端な状態のものは仕事では使えないのでその間は他の時間を使って習得する勉強をしなければいけませんし、中途半端な状態では仕事では評価されません。

またVBAを使う前提としてある程度officeソフトに対しての知識も持っておく必要があります。officeソフトは標準で多くの機能を搭載しているのでそれらの機能をわざわざVBAで作ったでは意味がありません。

 

VBAを使えばAndroidの多言語対応も出来ちゃう!

 

 

VBAは簡易化されているとはいえ立派なプログラミング言語なのでVBAの知識を応用する事で様々なデータを作り出す事が可能です。

その中でも最近頻繁に行われているのが多言語対応ファイルの生成です。最近のアプリは言語ファイルを生成するだけで多言語対応出来る場合が多く、手軽に作れるVBAなら準備の手間が少ないと言われています。

VBA自体が登場してから長く、プログラミング言語全体で見れば利用されている場面は限定的ですが、使える場面では他の言語よりも圧倒的に使いやすい言語です。

特にスピードを求める必要がない場面ではその簡易性から十分に選択肢に入ります。

 

Geekly Media ライター

Lotus0

7+

オープンソースって何?ソースの公開によるメリットは?代表的な例とともにわかりやすく解説!

オープンソースという用語は知っていても、具体的なイメージをつかめている、あるいは明確に説明ができるという人は少ないのではないでしょうか。そこで今回は、そもそもオープンソースとは何なのか、そしてソースコードを公開することのメリットや、それを利用する際のメリットとデメリットについて、具体例を交えながら解説します。

 

オープンソースって何?

 

オープンソースとは、ソースコードの全てが公開されているソフトウェアのことです。英語表記では「Open Source Software」と表現され、「OSS」と略されます。

ブログサービスなどを利用しているユーザーにとって一番身近なオープンソースは、CMS(コンテンツマネジメントシステム)のWordPressではないでしょうか。また、ITインフラを担う人たちにとって身近なオープンソースはOSのLinuxですね。CentOSなどが無償で利用できるのも、そのベースとなるLinuxがオープンソースだからです。

逆に、オープンソースではないソフトウェアと言えば、MicrosoftのWindowsやOfficeなどが代表的です。これらはソフトウェアのライセンスを有償で利用することになりますし、利用しているソフトウェアのソースコードに手を加えることはできません。

オープンソースであるか否かは、ソースコードを自由に変更できるか否かで判断できます

 

ソースコードを公開するメリット

 

それでは、オープンソースとしてソースコードを公開することにはどのようなメリットがあるのでしょうか。まずは、ソースコードを公開するメリットについて見ていきましょう。

 

技術の高さをアピールできる

 

 

IT技術と生活の結びつきが強くなるにつれて、高度なITサービスを実現するためのソフトウェアが必要になります。例えばIoTが実生活に普及すると、それに関連するソフトウェアは必須です。

ソフトウェアを開発した場合、ライセンスを有料で配布することはできますが、同時に様々な企業や技術者が開発するソフトウェアが競合するでしょう。

ここで、ソフトウェアをオープンソースとして公開し、それが優れたソフトウェアであると認められた場合はどうでしょうか。そのソフトウェアに賛同するコミュニティーが、より洗練されたソースコードを完成させていくでしょう。

そして、ソースコードをオープンソース化した個人や企業は、その分野における先駆者として、技術の高さや着想を高く評価されることとなるのです。

評価は、その分野の技術が世の中に広まるにつれて価値を増していくでしょう。これがソースコードを公開するメリットのひとつとなるのです。

 

特定の技術者に依存しない

 

 

企業が開発するソフトウェアを、オープンソース化するメリットには、特定の技術者に依存することなく開発を進められる点にもあります。

企業内でソフトウェアを開発する際の、特定の技術者に依存した開発手法は危険であり不安定です。それは、技術者がその企業で働き続ける保証がないからです。

万が一、その技術者が退職をした場合、効率的なソフトウェア開発を続けられなくなる可能性がありますし、最悪の場合、改修さえままならない状況となってしまいます。

一方、ソフトウェアをオープンソース化することで、コミュニティーによる開発が進められるため、ソースコードは洗練されますし、誰かが開発を辞めても、コミュニティーという存在がソフトウェアを支えていくという期待が持てます

 

オープンソースソフトウェアもライセンスで守られている

 

 

ソフトウェアをオープンソース化することは、ソースコードを公開することですが、それによってソフトウェア自体の権利を全て放棄するということではありません。

オープンソースソフトウェアは、ソフトウェア自体を自由に変更し再配布も可能ですが、著作権者の表示をするコピーレフト型のライセンスに守られているのです。

これにより、開発したソフトウェアのソースコードを公開しても誰が作ったプログラムなのかを主張することができます

オープンソース化した後にソフトウェアが高評価を得れば、それがメリットとなりますし、著作権を保ったまま特定の技術者に依存しない開発を続けることが可能となるのです。

 

オープンソースを利用するメリット

 

次に、オープンソースを利用するメリットを見ていきましょう。

 

無償で使える

 

 

オープンソースソフトウェアの最大の魅力は無償で利用できることです。企業のオウンドメディアや個人ブログにも広く利用されているWordPressもまた、オープンソースソフトウェアですので、ソフトウェア自体は無料で利用しています。

例えば、個人的にWebサーバーを立て、ブログを運用する場合にも、サーバー機器やインターネットの基本料金はかかりますが、それ以外は全て無料で構築することが可能です。

OSにはLinuxを利用し、Linux上でWebサーバーを稼働させます。サーバーにWordPressをインストールすることで、無償で世界にブログを公開することができるのです。

 

ソースコードを自由に変更し再配布できる

 

 

オープンソースソフトウェアのソースコードは、ある程度自由に変更することが可能です。オープンソースを基盤として、利用目的に合ったソフトウェアを構築することができるのです。

ソフトウェアの基盤はできていますので、あとは用途に合わせた見た目や仕組みに作り変えることで、一からソフトウェアを開発するよりも圧倒的なコストの削減に繋がります

ただし、前述したようにコピーレフトに準じたライセンスについては十分に注意する必要があり、著作権に対するコピーレフトにも様々な種類がありますので、利用するソフトウェアごとに確認する必要があります。

 

オープンソースを利用するデメリット

 

オープンソースを利用することはメリットだけではありません。ライセンスが無償であるが故のデメリットも存在します。

 

Geekly Media ライター

佐久森

9+

『ブロックチェーン』のメリット・デメリットを徹底解説!その仕組みや未来像までわかりやすく解説します!

2017年に価格が高騰し話題になったビットコインやアルトコインですが、これら暗号資産を支えるシステムがブロックチェーン技術です。今回は、ブロックチェーンにはどのような利用価値があるのか、その仕組みを理解しながらメリットやデメリット、そしてブロックチェーンの未来像をわかりやすく解説します。

 

ブロックチェーンの概要

 

ブロックチェーン技術は、ビットコンシステムと共に登場しました。ビットコインシステムが動作するインフラがブロックチェーンです。

また、その他のアルトコインもブロックチェーン上で動作します。ブロックチェーンの上にはビットコインや、イーサリアムを筆頭とするアルトコインのプラットフォームが構築されます。※リップルだけはブロックチェーン技術を使用していません。

ビットコインやアルトコインの取引内容が記録されたブロックを基として、次のブロックが作られていきます。これまでに作られたブロック、現在のブロック、そして次に作られるブロックは全て関連しており、この関連性をチェーンと表現するため、ブロックチェーンと呼ばれます

ブロックチェーンに一度記録されたデータは改ざんすることができないため、取引履歴の信頼性についてはこれ以上のシステムが存在しません。

取引を意味するものは、暗号資産のトレードはもちろん、コインの送受信など、ブロックチェーン上で発生したトランザクション全般を指します。

 

ブロックチェーンはシステム基盤

 

 

ブロックチェーンはデータ記録をするための新しいシステム基盤です。

これまでは、データの保存をDBに行っていました。しかし、DBの内容については不正改ざんの余地がありますよね。root権限を奪われてしまうと、簡単に改ざんができます。

しかし、ブロックチェーン上のデータはそもそもの考え方が違うため、過去のデータを改ざんする手段が無いのです。

改ざんできるとすれば、トランザクションがブロックチェーンに記録される前に改ざんする必要がありますし、それができるのはコンセンサスアルゴリズムの中でもPoWだけです。

ビットコインやアルトコインは、あくまでもユーザーの資産です。人の資産に対して改ざんや不正が起こることは絶対に許されませんよね。

取引データは確実に、だれであっても手を加えることがあってはなりません。それを実現するのが、過去の取引データ改ざんが不可能なブロックチェーン技術なのです。

そして、ブロックチェーンは信頼してデータを記録できるシステム基盤であると言えるのです。

※暗号資産関連でニュースになった数々の事件は、ブロックチェーン技術を否定する内容では一切ありません。

 

ブロックチェーンの仕組み

 

ブロックチェーンは、ブロックチェーン技術を利用したプラットフォームがあって成り立ちます。

代表的なものはもちろんビットコインですね。ビットコインは日本円とBTCをトレードすることで、日本円の価値に相当するBTCというコインを買います。

この「トレード」というトランザクション(取引)が発生した瞬間から、初めてブロックチェーンへの記録作業が始まります

トランザクションは取引をチェックするマイナーたちが、不正や改ざんが無いことを”承認“した後、初めてブロックチェーンに記録され、この瞬間取引が成立したことなるのです。

また、取引の承認作業は、世界中でマイニングに参加している者の中から、より早く承認作業終えたマイナーに報酬が入る仕組みになっています。報酬を得ることが目的のマイナーたちは、トランザクション(取引)が発生した瞬間一斉に承認競争を始めるのです。

ブロックチェーンを利用したシステム上では、トランザクション(取引)を発生させる利用者と、それを承認するマイナーが存在し、最終的に正しいと承認されたデータがブロックチェーン上に記録されるという仕組みで成り立っています。

 

ブロックチェーンのメリット

 

それでは、ブロックチェーンのメリットを見ていきましょう。

 

過去のブロックを改ざんできない

 

 

ブロックチェーンにおいての最大のメリットは、過去のデータに対する不正なデータ改ざんができないということです。

承認された全ての取引はブロックに記録されます。また、承認作業では一つ前の記録にあるデータを基に、取引データとして正しいことを承認し、次のブロックへ記録することで、連続性のあるブロック(ブロックチェーン)が生成されるのです。

ブロックに連続性がある場合、どこか一つのデータを改ざんすることはほぼ不可能です。連続性を持たせているチェーン上のデータは、前後全ての連続性を改ざんしなければならず、チェーンの全てを改ざんすることは事実上不可能なのです。

 

P2Pでの取引が可能になる

 

 

どのようなデータでも、DBサーバーに格納して取引をする場合には、必ず管理者などの中央集権が必要でした。

しかし、ブロックチェーンならば仲介者は必要なく、ブロックチェーン上に接続していればP2PPeer to Peer)での取引が可能となるのです。

ブロックチェーン上で取引をすることで、個人の取引は全てブロックチェーンに記録されるため、不正や改ざんの心配はありません。中央の管理者がいなくても、直接の取引に信頼性があるということなのです。

これは、暗号資産などのコイン取引に限ったことではなく、デジタル化できるデータの全てに適用できるメリットと言えるでしょう。

 

ブロックチェーンのデメリット

 

それでは次に、ブロックチェーンのデメリットを見ていきましょう。

 

ユーザーが理解にくい

 

 

パソコンやインターネットが普及した時も同じでしたが、ブロックチェーン技術も一般的なユーザーに理解しにくい概念です。

パソコンは直感的に操作ができたため、比較的早く利用者が増えました。しかしインターネットの仕組みを理解して利用している人は少ないはずです。

ブロックチェーン技術はおそらく、インターネットと同じように無意識に利用するレベルに持っていく必要があるほど、イメージしにくい技術でもあります。

ブロックチェーン技術とある程度深く関わる場合には、比較的高いITリテラシーが必要になるでしょう。

 

Geekly Media ライター

佐久森

12+

AWSについて徹底解説!導入によるメリット・デメリット含めて分かりやすく解説します!

AWSでは多くの幅広いサービスを提供しているため、大まかなイメージすら掴みにくいという声をよく耳にします。便利そうだけど何から始めて良いか分からない、と言うのが正直なところでしょう。そこで今回は、AWSの概要を交えながら、導入によるメリットとデメリットを含めて分かりやすく解説します。

 

AWSの概要

 

AWSとは「Amazon Web Services」の略称で、Amazonが提供するクラウドコンピューティングサービスです。AWSには、利用できるサービスだけでも19ものカテゴリーに分かれており、それらサービスを世界190カ国以上で展開しています。

基本的には、各サービスのインフラだけを提供していますので、利用する際にはユーザー自らが構築・運用・保守を行う必要があります

とはいえ、クラウドコンピューティングに必要なリソースは全てAWSが提供してくれますので、ユーザーはサービスに必要な機能を選択するだけで、効率的なシステム構築が実現できるのです。

 

イメージしやすいAWSの活用シーン

 

Webサイトの作成

 

 

クラウドコンピューティングで最もイメージしやすいのがWebサイトです。Webサイト構築サービスを提供するレンタルサーバーは多く存在しますが、そのほとんどは月額料金によるリソースのレンタルです。また、初期費用が必要な場合も多く、Webサイト運用後のアクセス数などをあらかじめ予測し、プランを選択する必要があります。

しかしAWSでは、利用開始後のアクセス数や負荷に応じてリソースを調整することができ、月の利用料金は従量課金制ですので、リソースをそれほど使わない利用開始直後の時期に高額の固定料金を支払う必要はありません。

また、AWSは初期費用も不要ですので、使わなければ基本的にコストがほぼかかりません

 

クラウドストレージ

 

 

近年、社内ファイルサーバーなどのストレージもクラウド化が主流となっています。利用されるサービスは様々ですが、もちろんAWSでもクラウドストレージサービスが存在します。

ストレージを利用する人数やファイルサイズによっては、月額プランのクラウドストレージサービスではオーバースペックになるケースが多くみられます。

AWSの従量課金による拡張性は、クラウドストレージの利用が一番イメージしやすいかもしれません。

利用人数や保存ファイルサイズが増加すると、ストレージの残容量を気にしなければなりませんが、AWSのクラウドストレージサービスであればそのような心配は皆無です。

また、セキュリティ認証においても信頼性のあるプラットフォームを実現していますし、データの複製(バックアップ)を自動で行い分散管理することで、万が一災害が起こった場合のデータに対する耐久性を確保しています。

 

開発環境

 

 

AWSでは、ソフトウェア開発環境も提供しています。本来、サーバーなどのハードウェアから準備をしなければいけませんが、AWSを利用することでそれらの準備は必要なく、更に以下のような様々なOS環境も自由に構築することが可能です。

 

・Redhat Enterprise Linux

・SUSE Linux

・Amazon Linux

・Windows

・CentOS

 

など。

サーバー機器のハードウェア購入や機器納品までの期間を気にすることなく、必要な開発環境を効率的に構築することが可能なのです。

 

運用管理支援

 

 

AWSではマネージドクラウドポータルとして、情報システムの管理機能をクラウドサービスとして提供しています。AWSが提供するサービスならば、情報システム担当者(社内インフラ担当者)も管理・運用が効率的に行えるということですね。

また、バックアップも自動化されているので、いざという時のロールバックにも手間取ることはないでしょう。

 

AWSを導入するメリット

 

用途や利用タイミングの自由度が高い

 

 

AWSでは、多くの用途に合わせたクラウドコンピューティングを提供しています。また、サービスを導入したいタイミングですぐに利用開始できるというメリットがあります。

例えば、ファイルサーバー利用に対する要求がある場合、通常はハードウェアの選定・購入・納品・設定といった工程を要しますが、AWSならばアカウント登録をして、必要なサービスをGUIによって選択するだけで運用を開始できます。

これまで導入から運用までに時間を要していたITサービス全般について、時間やコスト面を含め効率的に導入することができるのです。

 

費用は利用したリソースへの従量課金

 

 

AWSが提供するほとんどのサービスが従量課金制となっているため、コストは基本的には利用したリソース分のみです。ですので、新しく導入するITサービスに対して、大幅なコストカットが見込めるということです。

 

Geekly Media ライター

佐久森

14+

【Linux】シェルってなに?!その内容から具体的な役割・機能まで徹底解説!

Linuxにおけるシェルとは、Linuxの核となるカーネルへ要求を伝達するプログラムです。そして、ユーザーとLinuxOSを繋ぐインターフェイスの役割を果たしています。今回は、Linuxを知る上で必ず理解しておかなければならない「シェル(shell)」について、その具体的な役割や機能を徹底解説します。

 

シェルってなに?!

 

Linuxを扱う技術者にとって、シェル(shell)は基本知識です。

逆に、シェル(shell)を理解することである程度自由にLinuxを使いこなすことができるようになります。

 

Linuxのカーネルとユーザーを繋ぐインターフェイス

 

 

シェルは、LinuxOSの核となるカーネルとユーザーを繋ぐインターフェイスといった関係性です。

Linuxのカーネルという心臓部は、LinuxOSを支える多数のプログラムによって構成されています。ユーザーはこれらプログラムの集合体に、必要な動きを要求することで、Linuxを”コンピューター“として利用しているのです。

ユーザーによる要求はまずシェルが受け取ります。シェルは受け取った要求を翻訳してカーネルに渡します。そしてカーネルは、シェルから受け取った翻訳済みの要求を実行するわけです。

シェルは、カーネルを包む「殻」のようなポジションであることから、英単語の「shell」、つまりシェルと呼ばれているのです。

 

シェルスクリプトは要求コマンドのかたまり

 

 

一般的に「シェルを使える」という技術は、「シェルスクリプトを書くことができる」という意味で使われます。

シェルに対するコマンドを理解し、一連の要求をコマンドで組み立てることができるということです。

そして、組み立てられたコマンドのひとかたまりを「シェルスクリプト」と言います。シェルスクリプトは一種のプログラミングです。

コマンドの羅列はもちろん、以下のような条件分岐やループ文など利用できます。

 

・if文

・for文

・while文

・case文

 

これらを駆使して、Linux運用におけるバッチ処理などを操るシェルスクリプトをプログラミングすることが可能なのです。

 

シェルスクリプトの種類

 

 

ユーザーがシェルへ送るコマンドのかたまりをシェルスクリプトと言いますが、シェルスクリプトにも以下を代表する様々な種類が存在します。

 

・sh:Bourne shell

・bash:Bourne-Again shell

・csh:C shell

・ksh:Koran shell

 

などです。

Linuxでは基本的に「sh」や「bashを利用する人が多いのではないでしょうか。

 

shBourne shellBシェル)

 

sh (Bourne shell/Bシェル)は、AT&Tベル研究所のスティーブン・ボーン氏が1977年に開発したシェルで、コマンド名を「sh」としています。

Bシェルとも呼ばれており、現在では標準的なシェルプログラムとして広く使用されているシェルです。

コンパイルを不要とし、シェルスクリプトには変数などが利用できるようになったものBシェル(Bourne shell)が初めてです。

それまでのシェルに比べるとプログラミング要素を多く取り入れており、シェルスクリプトを組みやすくなったシェルでもあります。

 

bashBourne-Again shell

 

bash(Bourne-Again shell)は、sh(Bourne shell/Bシェル)をベースに様々な機能が拡張されたシェルです。Linuxでもbashが多く使われています。

bashはもちろんsh(Bourne shell/Bシェル)と互換性がありますが、更に複雑なシェルスクリプトを組むことが可能です。

 

シェルの具体的な役割と機能

 

シェルの役割と機能のイメージは掴めたと思いますので、ここでは、より具体的な例を見ていきましょう。

 

シェルの役割と機能の具体的な動き

 

 

シェルの役割は、ユーザーの要求をカーネルに伝えることでした。ユーザーは基本的に、ターミナルからLinuxに接続し、コマンドを入力することでLinuxを操作します。

ターミナルとは、CUIコマンドを受け付けるための画面で、イメージとしては“ハッカーが使う黒い画面”ですね。

例えば、今現在ユーザーが見ているディレクトリである「カレントディレクトリ」を確認する要求を、具体的な動作と順番で整理すると次のようになります。

 

1.ユーザーがPC上でターミナルを開く

2.ターミナル上で「pwd」コマンドを入力

3.エンターキーで決定

4.「pwd」コマンドがシェルに渡される

5.シェルが「pwd」コマンドの意味を「カレントディレクトリの表示要求」と解釈する

6.シェルは「カレントディレクトリの表示要求」をカーネルに伝える

7.カーネルは「カレントディレクトリ」をシェルに伝える

8.カーネルから教えてもらった「カレントディレクトリ」をシェルがターミナルに表示する

9.ユーザーはターミナルに表示されたカレントディレクトリを確認する

 

一つの要求コマンドでは、簡単にイメージするだけでもこれだけの動作が行われており、その中でもシェルは、ユーザーとカーネルの間で重要な役割を果たしているのが分かりますね。

 

Geekly Media ライター

佐久森

11+

CSIRTとは!サイバーセキュリティのためには必要?基礎知識から徹底解説します!

皆様はCSIRTという単語を聞いた事はありますか?パソコンやインターネットを使用する上で、サイバー攻撃や不正アクセスなどの脅威は、切っても切り離せない問題です。そんな脅威に対して有効的なのが「CSIRT」の設置です。昨今注目されているサイバーセキュリティ。今回はそんなCSIRTに関して、基礎知識から徹底解説をしていきます!

 

CSIRTとは

 

 

概要

 

CSIRTは、「Computer Security Incident Response Team」という言葉の、英単語の頭文字をつないだ略語で、直訳するとコンピュータセキュリティ事件対応チームという意味になります。読み方としては、シーサート、または、シーエスアイアールティーと呼称されることが多いです。

また、一般的にはCSIRTという略語が用いられることが多いですが、「Cyber Incident Response Team」という言葉を略した、CIRTという略称も用いられることもありますので、参考情報として伝えておきます。

読み方が判明したところで続けて、CSIRTがどういうものか、直訳の内容と照らし合わせて説明させていただきます。簡単にまとめると、コンピュータセキュリティ(Computer Security)に関する事件や問題(Incident)の対応をする組織(Response Team)といった意味になります。

 

補足説明

 

直訳の内容だけでも、大まかなイメージは掴めたかもしれませんが、もう少し理解を深めるために少し補足をさせていただきます。

コンピュータセキュリティに関する事件や問題というのは、具体的な事例で言うと、サイバー攻撃情報漏洩不正アクセス等のことを指しています。ですので、上記で挙げたような問題の対応を行う、チーム・部署・組織・機能等のことを総称した呼称が、CSIRTとなります。

 

CSIRTの歴史

 

 

最初に設置されたのは1988年

 

上の概要説明の内容だけを見ると、IT関連の単語という点もあり、結構最近の話かと思われがちですが、CSIRTの歴史は意外と古いです。

1988年にアメリカで流行したマルウェア「モリスワーム」の対策を行うために、カーネギーメロン大学内でチームが結成され対策を行ったのが、CSIRTの起源と言われています。この頃からすでにマルウェアの脅威が存在していたのは少し驚きですね。

その活動をキッカケに世界各国でも同様の活動が行われるようになり、各国の事例に関する情報収集や共有を行うための組織「FIRST」が1990年に設立され、今に至る、といった経緯になっています。その流れはもちろん日本も例外ではなく、1996年に、「JPCERT/CC」という組織が発足され、2001年頃からCSIRTの普及活動を積極的に進めています。

 

主な組織例や担当業務

 

 

よく用いられる組織例は3種類

 

CSIRTの組織例としては、正式に決まった形というものは存在しません。ですが、よく用いられる形として、下記の3種類のパターンのいずれかの形が採用されることが多いので、そちらについても確認をしてみましょう。

 

独立した部署として実施

組織の内部で独立した部署を設立しCSIRTを設置する方法です。

 

複数の部署を横断して実施

組織の内部に存在する複数の部署から横断的にCSIRTを設置する方法です。

 

個人単位で実施

部署やチームといった形式に捕らわれず、個人単位で協力してCSIRTを設置する方法です。概要説明にて組織やチームという単語が多く出てきたので、意外に思われるかもしれませんが、個人単位で実施するというのも、主な方法の一つとして数えられます。

 

担当業務は大きく分けると6タイプ

 

 

CSIRTは担当する業務やターゲットによって、大きく6種類のタイプに分類することができますので、こちらも確認しておきましょう。

 

Internal CSIRT

自分の組織やその顧客に関するインシデントに対応する業務で、組織内シーサートとも呼ばれます。企業で行う一般的なCSIRTはここに分類されることが多いです。

 

National CSIRT

国や地域に関連したインシデントに対する問い合わせ等の業務が該当し、国際連携シーサートとも呼ばれます。JPCERT/CCもこちらに分類されます。

 

Coordination Center

多様なCSIRTやインシデント対応の連携や調整を行う業務になります。読み方はコーディネーションセンターで、上で挙げたJPCERT/CCやCERT/CCもこちらに分類されます。また、協力関係にあるグループや企業間の連携を行うこともあります。

 

Analysis Center

分析センターとも呼ばれ、インシデントの傾向やマルウェアの攻撃痕を分析したり、マルウェアの解析を行う、といった業務が該当します。必要に応じて、マルウェアの攻撃に対する注意喚起を行うのもこちらの業務です。

 

Vendor Team

自社で提供している製品の脆弱性に対応するためのパッチ作成や注意喚起等を行います。読み方はベンダーチームです。

 

Incident Response Provider

こちらの名称は、インシデントレスポンスプロバイダと読みます。セキュリティベンダーやセキュリティオペレーションセンターといった、組織内におけるCSIRT機能の一部を有償で請け負うプロバイダー業務のことを指します。

 

分類に関しては以上の説明となります。もしかしたら、察しのいい方は気付かれたかもしれませんが、上で記載してあるJPCERT/CCの様に、複数のタイプを受け持つことも珍しいことではありませんので、そちらも情報として覚えておきましょう。

 

Geekly Media ライター

クラウドマン

4+

【徹底比較!】CG vs CAD!両者の違いからできることまで分かりやすく解説します!

CGもCADもクリエイティブな製作現場でよく使われると思いますが、このCGとCADの違いを理解していました?どちらもコンピューターを使用して製作されるため、具体的な違いまでは理解していないという方も多くいるのではと思います。本記事では、このCGとCADの違いやそれぞれのツールで出来ることを分かりやすく説明します。

 

CGとは

 

 

CGはComputer Graficsの略で、コンピューター(Computer)を使用して製図(Grafics)したり加工したりした製作物のことを指します。CGと聞くと、複雑な製作物を思い描く方もいるかと思いますが、パソコン上で画像に何らかの加工をしただけでもCGを利用したことになります。

CGはイラストや画像、ゲームのキャラクターなどを平面で描いた2DCGと映画やアニメなど奥行きを持たせた3DCGの2つが有り、漫画やアニメ、CMなどの製作に使用されるのはもちろんのこと、現代アートなど様々な分野で使用されるため、主にデザイン業界で働く人が使用しています。

 

CADとは

 

 

CADはComputer Aided Designの略で、その名の通りコンピューター(Computer)を使用したデザイン(Design)の支援ツール(Aided)のことを指します

CADは従来の手書きの設計図をそのままコンピューター上で使用することができる2DCADと建築物や立体的なプロダクトなどをコンピューター上で設計できる3DCADが有り、建築物やプロダクト製作の現場において、図面や設計書を作成するために使用されます。

 

CGとCADの違い

 

 

CGCADで大きく違う点は、製作物の目的です。

CGは主に人に見せることで完結する製作物のために使用されます。そのため、見た目へのこだわりが強く、受け手がどのような印象を受けるかということが重要になりますが、CADは主に実際のプロダクトを開発するための設計図として使用されます。そのため細部の寸法や実際にそれを実現できるかという現実性の部分の重要視し、受け手が正確な情報を受け取ることが出来るかという点が重要になります。

 

そのためCGで作成した製作物を実際にプロダクトとして落とし込もうと思った場合に正確な寸法が合わなかったり中身のデータが足りなかったり等のエラーが起こります。逆に製作物でプレゼンテーションをする場合はCADの正確さよりも、CGを使用した視覚的なPRの方が好まれる場合が有ります。

つまりCGCADもコンピューター上で使用するが、CGは視覚的な印象が重要で、CADは中身の正確な寸尺が重要という点で違いが有ります

 

CGで出来ること

 

イラストやデザイン作成

 

 

CGと聞いて一番身近な存在は恐らく二次元のCG技術を利用して製作された製作物であると思います。例えばPhotoshopやIllustratorを使用して作成した画像やロゴは全てCG技術を利用して手を加えた状態です。

これを利用してウェブサイトやゲームのデザインを行なうこともできますし、アニメや漫画のデザインを行うことも可能になっています。宮崎駿氏の映画なども基本的には手書きで製作されていますが、色を塗ったり加工したりといった点においてはCG技術を使用しています。

 

アニメや映画作成

 

 

三次元のCGを使用した製作物の多くに映画やアニメの製作が挙げられます。映画にCGが使われたのは1982年が最初で、「トロン」という映画が製作されました。2010年にウォルトディズニー社がリメイク作品を出しているので、映画を見たという方も多くいるのではないでしょうか。

また、CGを使用して作成されたアニメーションやゲームなども多く存在します。映画自体を全てCGで製作した「トイ・ストーリー」はもはや知らないという人の方が珍しい程有名ですし、メタルギアソリッドやファイナルファンタジーシリーズなど多くのゲームでCGを利用した加工を行なっています。

 

このように多くの動画製作現場では、3Dを使用した動画が作成されています。これは、CGを使用すると、1秒間に24コマ以上のフレームを簡単に作り出すことが出来たり、現実には存在しないような物を作り出すことが出来るからです。

 

プレゼンテーション用の製作

 

 

CGはプレゼンテーションのためにも頻繁に使用されます。建築予定の建物や商品のPRをイメージすると分かりやすいと思いますが、建築予定のマンションを建築の知識が無い人にPRする場合、まずは綺麗な見た目や色合い、奥行きなどを視覚的に理解させるようなプレゼン資料を作成する必要があります。

そういった場合にCGを用いることで開発途中でも受け手に明確なイメージをさせることができるため、商品の購入や説得に大きな有用性があります。

 

Geekly Media ライター

とげみ

10+