SparkはJava向けのオープンソースアプリケーションフレームワークです。Java以外にもScala、Pythonなど様々なプログラミング言語のAPIが用意されています。この記事ではSparkを理解するために初心者でも分かる特徴、アノテーション、基礎知識などを簡単に解説していきます。
SparkとはJavaに活用されるマテイ・ザハリア(Matei Zaharia)氏によって開発されたオープンソースアプリケーションフレームワークです。RubyのSinatraフレームワークにインスパイアされて誕生したものであり非常に軽量なマイクロフレームワークです。SparkはLambda式とstaticメソッドを活用し手軽に実装することが出来ます。その他の特徴として『小規模な開発に向いている』『JVMを最大限に活用出来る』などが挙げられます。
SinatraとはRubyに活用されるブレイク・ミゼラニー(Blake Mizerany)氏によって開発されたオープンソースのオブジェクト指向Webアプリケーションフレームワークです。2007年に誕生し『最小限の労力でRubyでWebアプリケーションをすばやく作成するためのDSL』を掲げております。特徴として軽量フレームワークと言われており、提供している機能が必要最低限で小規模なウェブサイトの構築に向いております。またRuby on Railsとは対となる考え方で作成されているというのも特徴の一つです。Sinatraは世界的にも名だたる企業や団体に採用されており代表的なところではアップルBBC、LinkedeIn、スタンフォード大学、RedHatなどが挙げられます。
JavaとはOracle社が開発・提供するオブジェクト指向のプログラミング言語です。1995年にサン・マイクロシステムズ(後にOracle社が買収)のジェームス・ゴブリン氏によって開発されリリースとなりました。プログラミング言語の発展に大きな影響をもたらしたC言語を元に開発されたことでも有名です。当時、最も人気を集めていたC言語はオブジェクト指向ではありませんでした。Javaの登場によってオブジェクト指向が主流の時代が訪れたと言われております。
Javaのキャッチコピーは「Write once, run anywhere」で直訳すると「一度書けば、どこでも実行できる」という意味があります。このことからも分かるようにJavaの特徴は『オブジェクト指向の先駆者』で『どこでも動く』ということらが挙げられます。世界中で最もポピュラーで多くのWebアプリケーションで採用されていることで知られております。
Sparkの特徴を見ていきましょう。
Sprakはマイクロフレームワークという特徴があります。迅速な開発のために構築されたため、シンプルで表現力豊かな仕様となっております。必要最低限の機能で構成され非常に軽量であることから小中規模のアプリ開発に向いております。
SparkはJVMを最大限に活用できるという特徴があります。JVMとはJavaプログラムを実行するために必要な仮想マシンです。マイクロフレームワークには軽量化の代償としてJVMを活かしきれないという課題がありました。しかしSparkではJVMの強みを最大限に活かしつつ開発を実行することができます。
SparkはLambda式とstaticメソッドを活用しているという特徴があります。これらを利用することによりWebアプリケーションをとても手軽に開発できるという利点があります。
Sparkt以外のJavaによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
Spring BootとはJavaで活用されるWebアプリ開発を迅速かつ効率的にする仕組みを備えたフレームワークです。ベースとなるSpring Frameworkの集合体となった機能を使いやすくするためのものとして誕生しました。Spring Bootの特徴は『XML設定ファイルが不要』 『Webコンテナをjarファイルに含められる』 『STSと相性が良い』などが挙げられます。
Spring Bootの公式サイトはこちら>>
Spring Bootの特徴、アノテーションなどの基礎知識について解説された記事はこちら>>
StrutsとはJavaに活用されるクレイグ・マクラナハン (Craig McClanahan)氏によって開発されたオープンソースアプリケーションフレームワークです。Javaにおけるフレームワークの中で最も知名度が高いのではないでしょうか。StrutsはMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴は画面とデータベースの開発を分離し、モジュール単位での開発を実現させたことにあります。主なStritsの種類(バージョン)としてStruts、Struts2が挙げられます。
JSF(Java Server Faces)とは、Javaに活用されるOracle社によって開発されたWebアプリケーションフレームワークです。Strutsと同様にMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴はWebアプリケーションのユーザインターフェースの作成のために活用され、コンポーネントベースで開発するものとなっております。JSFの仕様はJavaEE(Java Platform, Enterprise Edition)の一部として取り込まれています。
Sparkを理解するために初心者でも分かる特徴などの基礎知識を簡単に解説させていただきました。Sparkを一言で表すと『Java向けでSinatraマイクロフレームワーク』です。特徴として『マイクロフレームワーク』『小規模な開発に向いている』『JVMを最大限に活用出来る』などが挙げられます。Sparkについてこの記事に記載されている最低限の内容は理解をしておくようにしましょう。