GeneXusとは?

GeneXusとは

GeneXusは、ウルグアイ製の開発ツールであり、様々な言語・データベース・環境に対してデプロイすることができます。
GeneXus Japanはじめ、様々な開発会社により、開発・販売が行われております。Artech社から初めてGeneXusがリリースされたのが、1988年となります。
当時からProlog(プロログ)という非手続き型プログラミング言語を使用して、ユーザーが求めるプログラミングのノウハウを何十年も蓄積しているため、InputとOutputの間を予測して実現することが可能となっているのです。
今まで様々な類似製品がございましたが、ほとんど耳にしなくなってしまいました。
それには、Artechが優秀なプログラマ(GeneXus)を作り上げたからだ、と言っても過言ではございません。GeneXusを使用することにより、工数の削減が見込まれると考えられ、導入されているケースがほとんどです。

また、GeneXusは常に最新の技術を取り入れていきます。
スマートデバイスへのジェネレートや、Azurへのデプロイ機能、SAP HANA等の最新技術サポートをしつつ、あまり使われなくなった技術をサポートから外します。

バージョンアップごとに新機能が増え、技術者をサポートしております。




他の言語との違い

GeneXusを使用することで、どのようなメリットが発生するのか。
システムアーキテクトを定めるのにあたり、検討すべき内容となります。しかし、システム規模・要件等により費用対効果が大きく変わってきます。
一言で言ってしまうと、「企業のシステム内製化ツール」です。Javaをベースにして一つのシステムを構築する場合、以下の技術者が必要となります。
・Java技術者 (サーバサイドの処理)
・JavaScript技術者 (クライアントサイドの処理)
・HTML5+JQuery+CSS3 技術者 (画面の挙動の処理)
・データベース技術者 (データを蓄積する処理)

もちろん、これらを全て対応できる技術者もたくさんおりますが、技術に偏りは発生します。
それではGeneXusを使用した場合、以下の通りになります。
・GeneXus技術者 (サーバサイド・クライアント・画面・データベースの処理)

技術としてはGeneXusのみとなります。

これらに加え、セキュリティ技術・環境の技術・業務知識を設計する技術は必要となりますが、
システムを内製化する場合、既に業務知識を保有しております。

システムの構築を依頼する場合、「システム会社へシステムの構築を依頼」 Or 「業務知識がある担当者にGeneXusを教育して構築」、どちらを選択しますか?

当然、システム会社に委託したほうが品質が高いシステムが納品されますが、
それには、多大な予算と、業務知識を設計書に起こしてシステム会社へ受け渡す時間が必要となります。

GeneXusの教育は、GeneXusの技術者(コンサルティング)に助言をもらいながら、システムを構築していくと、とてもスムーズに進みます。

どのようなプロセスでシステムの構築を行ったほうが費用対効果が高いのかを考えた上で、選定するべきだと考えております。




GeneXusのサポート

言語サポート

GeneXusでサポートしている言語をGenerator(ジェネレーター)と呼んでおります。
メジャーな言語はもちろんですが、ニーズがある過去の言語、流行っている言語も取り入れられ、サポートされます。

Generator 特徴
Java シェアNo.1 言語となります
C# マイクロソフト社のサポート言語
Ruby 次期バージョンよりサポート外

DBサポート

様々なデータベースの作成からテーブルの作成、データ処理を行えます。

Database 特徴
Oracle 高機能なデータベース
SQL Server Microsoft社のデータベース
DB2 IBM社のデータベース
MySQL オープンソースのデータベース
PostgresSQL オープンソースのデータベース

環境サポート

設定を行うだけで、ビルド時にデプロイすることが可能です。

Web Server 特徴
IIS (Azur) Mirosoft社のクラウドWebサーバ(C#)
IIS Mirosoft社Webサーバ(C#)
Apache Tomcat Apache社のWebサーバ(Java)
WebSphere IBM社のWebサーバ(Java)




GeneXusの良い点

1.環境に強いシステム構築

一番の強みとして、環境に強いシステム構築が出来るという点です。
業務内容・クライアントの環境・サーバサイドの環境には絶えず変化が起こります。
これらは必然的に発生し、システムを運用する上で、考慮すべき点であり、ランニングコストの直結する問題です。

システムを構成する製品・環境

端末 名称
クライアント OS
クライアント ブラウザ(IE,Chrome)
APサーバ Apache Tomcat
APサーバ Java
APサーバ JavaFW(Struts,Spring,Play など)
DBサーバ SQLServer

これらの変わる可能性のある環境を考慮しつつ、アーキテクトを定める必要がありますが、
GeneXusを上手に使用することにより、定めた環境下では、再ビルドとテストのコストのみで納品が行えます。

この点が、ジェネレーターの一番の強みとなります。

2.技術の習得期間

GeneXusを習得する上で必要な知識が少なくて済むことは間違いありません。
進化の早いJavaScript系の技術の習得が少なくて済むだけでも習得期間が短くなります。
「RDB、DAO、Webシステム」を勉強することにより、よりGeneXusを理解することが出来ます。

しかし、GeneXusは万能な製品ではないため、お客様の要件に応じて他の言語を仕様したり、環境面を整える必要があります。
GeneXusからジェネレートされたものは一般的なシステムの成果物と同一であるため、各言語に対する基本的な知識を持つべきです。

「GeneXus = Webシステム」ではなく、「GeneXus = Webシステムの一部」と考えた方が良いと思います。

3.Webサービスの作成・連携が容易

GeneXusには「アプリケーションの統合」という機能があり、外部のWebサービスと取り込みオブジェクト化し、Callするだけで連携ができるようになります。
GeneXus自体にもWebサービスの作成機能があり、POST(Json連携、独自フォーマットなど),SOAP(XML連携)をプロパティの変更のみで作成することが出来ます。

既に存在するシステムの連携等も、APIが連携されているのであれば、容易に利用することが可能となります。

GeneXusの悪い点

1.UIが弱い

これが、一般的なシステム開発における一番のネックになります。
画面に対する要求を満たせない機能がある場合、GeneXusを使用することで出来なくなる要件が存在します。
その場合、GeneXus内に独自のJavaScriptの埋め込み、外部オブジェクトの作成・使用を行い、GeneXusの保証対象外の機能、環境の変化に弱いシステムになってしまいます。

2.PL/SQLや、ストアドプロシージャのジェネレートが行えない

業務を行う上で必要なバッチ処理(オンラインバッチ・夜間バッチ)はGeneXus作成することが出来ません。
javaのバッチを作成することは出来るのですが、パフォーマンスが落ちることもあり、DBでのプログラミングを行うことが多いです。
その場合、GeneXusのナレッジベースに蓄積している知識をPL/SQL側にも再定義する必要があり、テスト工数が増加します。

3.ジェネレート時間が長い

開発中、少し変更したオブジェクトに対してのジェネレートが長く、開発効率を下げてしまいます。
一般的な言語の場合、「コーディング→ビルド→テスト」となりますが、
GeneXusの場合、「コーディング→機能チェック→ジェネレート→ビルド→テスト」となります。

複雑な画面を作成した際に、コーディングを終えてからテストまで10分かかるのは珍しいことではありません。




GeneXusの活用

これらのGeneXusの特性を理解した上で、どのように活用するのかを言うことを考える必要がございます。
GeneXusの活用