フレームワーク・共通ライブラリ等について(2016/01時点)


2016/01時点のフレームワーク(以後、FWと記載)・共通ライブラリ(以後、LIBと記載)等について、まとめました。

※JavaのFW・LIB・アプリケーションサーバ(以後、APサーバと記載)等は、機能仕様が存在し、それに基づいた参照実装(以後、RIと記載)とそれ以外の実装が存在する等、他の言語とはソフトウェアの枠組みが異なりますので注意が必要です。

作成日:2016/04/25


画面系1まとめ / 画面系2まとめ / JSF実装系まとめ

JSFその他まとめ / JavaScript(以後、JSと記載)その他まとめ

DI・AOP・JTA系1まとめ / DI・AOP・JTA系2まとめ / ORM系まとめ / データ通信系1まとめ / データ通信系2まとめ

その他1まとめ / その他2まとめ

画面系1まとめ
登場時期 先行技術 名称 主要言語 関係組織等 無料使用可否 備考
1996 - ActiveX VC++等 Microsoft社 RIA向けLIB。HTML5対象外の為、衰退中。
Applet Java Sun Microsystems社(現Oracle社)
1998 Swing Swing(デスクトップ画面)のRI向けLIB。
2000 ASP.NET .net系 Microsoft社 コンポーネントベースのFW。基本的にWindowsOS向け。
2001 Struts Java オープンソース(以後、OSSと記載)(Apache系) アクションベースのFW。現在はサポート中止。後継FWはStruts2。
2003 Spring MVCフレームワーク Rod Johnson氏(現在は、Vmware社) アクションベースのFW。
2004 ASP.NET・Struts 最新機能仕様:JSF(JSR344) JCP JSF向け機能仕様。JSを意識せずに、Ajax等のタグを記載するだけで、画面を一部更新するSPAを想定したリッチな画面を作成できるUIコンポーネント、バリデータ、日付・カンマ編集等を実施するコンバータ等が付属する為、実装が容易(JSF(コンポーネントベース)←→Struts(アクションベース))。
- Ruby on Rails Ruby David Heinemeier Hansson氏 プログラム自動生成等を活用する事で、システムを簡単に作成可能なFW。
ActionScript Flex ActionScript Adobe社 RIA向けLIB。HTML5対象外の為、衰退中。

▲最上部に戻る

画面系2まとめ
登場時期 先行技術 名称 主要言語 関係組織等 無料使用可否 備考
2005 Ruby on Rails CakePHP PHP OSS PHP向けFWは、複数存在するが、デファクトスタンダードと思われるFWは、まだ存在していない。
2006 - Zend Framework Zend Technologies社
Ruby on Rails・Spring Framework・Hibernate等 Grails Groovy Vmware社 DI・ORM等やRuby on Railsのような自動生成機能を含むオールインワンFW。
Swing Swing Application Framework(JSR296) Java JCP Swing(デスクトップ画面)向け機能仕様。
2007 WebWork Struts2 Java OSS(Apache系) WebWorkをベースとした影響で、Strutsとは、かなり異なるFWとなった。
Flex AIR ActionScript Adobe社 RIA向けLIB。HTML5対象外の為、衰退中。
ActiveX Silverlight C#等 Microsoft社
Swing JavaFX Java Sun Microsystems社(現Oracle社)
2009 - AngularJS JS Google社 JSのMVC向けFW。※JSF等と競合する技術。
2010 Backbone.js Jeremy Ashkenas氏

▲最上部に戻る

JSF実装系まとめ
登場時期 先行技術 名称 主要言語 関係組織等 無料使用可否 備考
2004 JSF Mojarra(以前の呼び名は、RI) Java Sun Microsystems社(現Oracle社)等 JSFのRI向けFW。Glassfish等で、広く使用されている。
2005 MyFaces OSS(Apache系) RI以外のJSF向けFW。
2006 MyFaces ADF Oracle社

▲最上部に戻る

JSFその他まとめ
登場時期 名称 Google Trends(以後、GTと記載)シェア(単位%) 主要言語 関係組織等 無料使用可否 備考
2006 RichFaces(旧:Ajax4jsf) 9% Java OSS(Red Hat社(JBoss)) JSF追加UIコンポーネント向けLIB。
2008 PrimeFaces 87% OSS JSF追加UIコンポーネント向けLIB。JSFを使用する際には、合わせて使用される事が多い。
2009 ICEfaces 4% JSF追加UIコンポーネント向けLIB。
2014 AngularFaces 少数 JSF追加UIコンポーネント向けLIB。JSFとAngularJSを連携する目的で使用される。

▲最上部に戻る

JSその他まとめ
登場時期 関係組織等 名称 無料使用可否 備考
2004 OSS DWR JavaとJSを容易に連携するLIB。
2005 Sam Stephenson氏 prototype.js JS向けLIB。
2006 OSS jQuery JS向けLIBのファーストチョイス。
2009 Node.js サーバサイド向けLIB。※JavaEE等と競合する技術。
2012 UI Bootstrap AngularJS追加UIコンポーネント向けLIB。
2013 AngularUI AngularJS向けFW。追加UIコンポーネント向けLIBを含む。
FaceBook社 React.js JS向けLIB。

▲最上部に戻る

DIAOPJTA系1まとめ
登場時期 先行技術 名称 主要言語 関係組織等 無料使用可否 備考
1998 RMI EJB Java Sun Microsystems社(現Oracle社) 主に、分散オブジェクト・JTA・ORM・非同期処理等を想定した機能仕様。元々、分散オブジェクト技術として、発展してきた為、別サーバへのリモートコールを想定しており、その結果、クラスを何種類も作成する必要がある等、生産性が低く、更にステートフルセッションビーン等での性能面の問題もあった為、多くのAPサーバで採用されたにもかかわらず、あまり普及しなかった。
EJB WebLogic BEA Systems社(現Oracle社) RI以外のEJB準拠のAPサーバ。現在、商用のEJB向けAPサーバで最もシェアが高い。
1999 WildFly(旧:JBoss) Red Hat社(旧:JBoss社) RI以外のEJB準拠のAPサーバ。1999年当初は、EJBが使用可能なオープンソースのAPサーバがほとんどなかった為、EJBを無料で使用したいユーザの支持を集めた。2013年に、商用版APサーバと区別しやすいように、名称をJBossから、WildFlyに変更。
2000 JTA(JSR907) JCP JTA向け機能仕様。
2003 Spring Framework Rod Johnson氏(現在は、Vmware社) DI・AOP・JTA等が使用可能なFW。生産性の低いEJBに不満を持ったエンジニアが盛んに使用した事により、発展したFW。JavaEEと同様の機能やその他共通機能を保持する等、現在も機能が拡大し続けている。
2004 Spring Framework Spring.NET .net
Seasar Java OSS 日本産のDI・AOP・JTA等向けFW。開発中止(近々サポートも中止)。

▲最上部に戻る

DI・AOP・JTA系2まとめ
登場時期 先行技術 名称 主要言語 関係組織等 無料使用可否 備考
2006 EJB・Spring Framework EJB(JSR220) Java JCP EJB向け機能仕様。既存のEJB機能の他に、DI・AOP機能を導入。Spring Framework等のノウハウを取り込む事で、生産効率が向上。
EJB・JTA GlassFish Sun Microsystems社(現Oracle社) EJB・JTAのRI向けAPサーバ。
2007 Spring Framework Guice Google社 アノテーションを使用したDIのRI向けFW。
2009 Guice DI(JSR330) JCP DI向け機能仕様。
EJB(JSR220) EJB(JSR345) EJB向け機能仕様。CDI(DI・AOP)が導入された事により、役割がJTA・等非同期処理・分散オブジェクト技術の使用に特化される事が多くなる想定(今まで通りDI・AOPも使用可)。
2011 EJB(JSR330) CDI(DI・AOP)(JSR346) CDI向け機能仕様。
2013 CDI Weld Red Hat社(JBoss) CDIのRI向けLIB。JTAも使用可の為、非同期処理・分散オブジェクト技術等を使用しない場合は、Spring Frameworkのように、EJB無しでの単体使用も可。

▲最上部に戻る

ORM系まとめ
登場時期 先行技術 名称 主要言語 関係組織等 無料使用可否 備考
1996 Smalltalk TopLink Java Oracle社 最初のJavaORM向けFW。現在は、RIのEclipseLinkに統合されている。
1998 EJB Sun Microsystems社(現Oracle社) 当初は、ORM(エンティティビーン)としても使用されていたが、JavaEE7以降は、ORMについては、別機能に移譲された為、削除されている。
2000? EJB Hibernate OSS(Red Hat社系) JPA準拠したRI以外のFW。
2001 MyBatis(旧:iBATIS) Java・.net OSS 非JPAのFW。ネイティブSQLをそのまま使用する事で、DBの性能を引き出す事を想定。
2002 JDO(JSR243) Java JCP Javaのオブジェクト永続化向け機能仕様。JPAと競合する機能仕様だが、ほとんど普及していない。
2004 - ActiveRecord(Ruby on Rails) Ruby David Heinemeier Hansson氏 CRUD向け機能を容易に自動生成可なRuby向けLIB。
2006 Hibernate等 JPA1.0(JSR317) Java JCP JPA向け機能仕様。
2007 TopLink・JPA Eclipse Link OSS(Eclipse) JPAのRI向けFW。
2008 JPA Spring Data OSS(VMware社) JPA準拠のRI以外のFW。
2009 JPA2.x(JSR317JSR338) JCP JPA向け機能仕様。

▲最上部に戻る

データ通信(Webサービス等を含む)系1まとめ
先行技術 名称 主要言語 関係組織等 無料使用可否 備考
DTD XSD XML W3C XMLの論理構造定義をするスキーマ言語。XMLのデータ型・桁数、規定値等チェックも可能。又、XSDファイルから、Javaクラス等の生成も容易。
Axis Axis2 C・Java・XML OSS(Apache) SOAP通信向けFW。
- Spring WS Java・XML Rod Johnson氏(現在は、Vmware社) SOAP通信向けLIB。
XML・XSD JAXB(JSR222) JCP オブジェクトとXMLのマッピング機能向け機能仕様。
Axis2・spring ws JAX-WS(JSR224) SOAP通信向け機能仕様。
JAXB・JAX-WS Metro Oracle社 JAXB・JAX-WSのRI向けFW。

▲最上部に戻る

データ通信系2まとめ
先行技術 名称 主要言語 関係組織等 無料使用可否 備考
JSON Jackson Java・JSON OSS JSON ProcessingのRI以外のLIB。現在は、RIよりこちらの方が普及している。
JSON Processing(JSR353) JCP オブジェクトとJSONのマッピング機能向け機能仕様。
JSON Processing GlassFish JSON Oracle社 JSON ProcessingのRI向けLIB。
REST JAX-RS(JSR339) Java・HTML・XML・JSON JCP RESTful通信向け機能仕様。
JAX-RS Jersey Oracle社 JAX-RSのRI向けFW。※競合するnode.js等と同様に、JavaEEは、Java以外のAngularJS等からの接続も本インターフェース等で受け付ける想定。
RESTEasy Red Hat社 JAX-RS向けFW。
Comet WebSocket(JSR356) JCP 双方向通信向け機能仕様。HTTP以外のプロトコルを使用する事も想定されている為、HTML5仕様から、外れている。※RESTfulと競合。
WebSocket Tyrus Oracle社 WebSocketのRI向けLIB。

▲最上部に戻る

その他1まとめ
分類 名称 主要言語 関係組織等 無料使用可否 備考
バリデータ Commons Validator Java OSS(Apache系) Struts等の画面入力値等をチェックするバリデータ向けLIB。
Bean Validation(JSR349) JCP バリデータ機能向け機能仕様。
Hibernate Validator Red Hat社(JBoss) Bean ValidationのRI向けFW。
コンバータ BeanUtils OSS(Apache系) 日付・カンマ編集を実施するコンバータ等向けLIB。
Mojarra(JSF)等 Sun Microsystems社(現Oracle社) JSFには、コンバータ機能がデフォルトで付属。
バッチ Spring Batch VMware社 現時点では、jBatchのRIより普及しているFW。
jBatch(JSR352) JCP Spring Batchを参考に作成されたjBatch向け機能仕様。
jBatch jBatchのRI向けFW。
分散ファイルシステム Hadoop OSS(Apache系) Amazon S3OpenStack等のほぼ全ファイルシステムで使用可能なFW。

▲最上部に戻る

その他2まとめ
分類 関係組織等 名称 主要言語 無料使用可否 備考
汎用 OSS(GNU系) Boost C++ 様々な環境で使用されているLIB。
OSS(Apache系) Commons Java
AltJS OSS(Google系) GWT Javaユーザが容易にAjax機能等を使用可能とするLIB。
ログ出力 OSS(Apache系) Log4x 複数対応 様々な言語で広く使用されているLIB。
OSS SLF4J Java Log4jの後継LIB。様々なフレームワーク等で使用されている。
キャッシュ JCP JCache(JSR107) JCache向け機能仕様。
OSS JCache JCacheのRI向けLIBの扱いだが、まだ暫定実装の模様。JavaEE8で、確定予定。
Ehcache JCache準拠。最も普及しているJavaキャッシュ向けLIB。
Red Hat社 Infinispan(旧:JBoss Cache) JCache準拠のLIB。
OSS(Apache系) commons jcs
テンプレートエンジン Velocity プログラム自動生成等でも広く使用されているLIB。
David Heinemeier Hansson氏 ERB Ruby
Office制御 OSS(Apache系) POI Java JavaでOfficeを制御する際に広く使用されているLIB。

▲最上部に戻る