株式会社エム・アイ・エス(MIS)は、ビジネスパートナーとしてLANSAで開発したソリューションをお客様に提供しています。
株式会社エム・アイ・エス

開発支援ツールLANSA

LANSAとは

LANSAは、企業情報システムを効率的かつ短期に開発することが出来、情報システムを統合的に維持・拡張できる開発環境です。
企業情報システムは、企業のおかれている市場環境の変化に伴い常に進化し、ニーズに合せて変化していかなければなりません。IT業界でも日々新しい技術やプラットフォームが次々と生まれています。

皆様にはこのような悩みはありませんか?

このようなジレンマは多くの企業で持たれている悩みです。

この悩みを解決する方法として、今LANSAが脚光を浴びています。

システム基板を強固にします

情報システムで最も重要な資産はなにか、それは何よりもデータベースであると言えます。

現代の情報化社会において、情報がたまる場所=データベースが情報システムの要であると同時に、データベースをフルに活用することによりビジネスの成長を促進することもできるのです。

家に例えれば、データベースが「基礎」であり、プログラムが「家」そのものにあたります。どんなに美しくどんなにゴージャスな家を建てても、ちょっとした衝撃ですぐにつぶれてしまうような基礎であれば、それは価値がありません。それどころか大きなリスクとなります。

情報システムも同様で、データベースがしっかりしていれば、その上にはどんな家(=プログラム)でも建てることができます。情報システム構築の成功要因の50%はデータベースの構造にかかっているといっても言い過ぎではないでしょう。
情報システムの有益な資産は「データベース」なのです。その大切なデータベースを、LANSAはさらに強固なものとします。

LANSAのデータベースは、ただ情報を保管する箱ではありません。LANSA独自の“リポジトリ”という構造により、不正データの発生を抑制したり、自動的に関連するデータベースへの更新を行ったりと、データベース自信に“意思”を持たせることが出来るのです。
このデータベースさえあれば、プログラムをどんどん新しくすることもどんどん追加することも躊躇せず取り組めます。それが、情報システムをより強く、より強固に成長させるのです。

市場ニーズにスピーディに対応

ドラッカーの言葉を借りれば、企業の使命と目的は“顧客満足”にあります。
顧客満足を実践するには、顧客の要求に的確に応え、さらには顧客要求以上の安心と感動を与えることです。それが信頼へとつながり、企業が成長することが出来るのです。

では、情報システムで実践すべき顧客満足とは何か。それはひとえに“顧客が必要とする情報を必要なときに正確に処理できるシステム”を実践することであると考えます。
システム構築には多くの時間がかかります。ですが、この時間を極小化すれば求める結果を早く得ることが出来るようになります。それは、顧客要求を早く対応できるということです。これを実現するために、LANSAでは様々な手法により工期の短縮を実現することが出来るようになっています。

テンプレートといわれる雛形を使う方法、上記のデータベース自身に機能を付加する方法など、シンプルかつ洗練された仕組みが用意されています。

テクニカルスキルを継承します

情報システムを構築するためには、基礎的なスキルからツール特有のスキルまでありとあらゆるスキルを必要とします。

ところが、せっかくスキルを身につけてもようやく慣れたところで次の技術が生まれてくる。それがITの世界です。
一度身につけたスキルが次に使えるかどうかわからない、では、なんとももったいないことです。

LANSAでは、LANSA自身が日進月歩するIT技術を自らに取り込み、ユーザーは今まで培ったスキルを継承して新しい技術を実装できます。ようするに、せっかく努力して身につけたスキルが無駄にならずに新しい技術を使うことが出来るわけです。

また、上記のデータベースも同様なコンセプトです。重要なシステム資産であるデータベースが新しい技術に取り組むたびに作り直さなければならないのでは、資産価値が半減してしまいます。

LANSAでは、データベースはこれまでのまま、そこに新しい技術を盛り込んでシステム拡張することが出来ます。そのため、データベースは半永久的に生き続けることができるのです。

LANSAで情報システムの課題が解決できる理由

ここでは、LANSAが実現する「システム開発の課題解決」についてご説明いたします。

LANSAが実現する「システム開発の課題解決」

1.データディクショナリーがデータベースをより強固にします。

LANSAの特徴のひとつが、「データディクショナリー」です。
一般的なデータベースには「ファイル」「フィールド」「ビュー」といった、データを格納し参照するための機能が用意されています。
LANSAにももちろんそれらは有していますが、それ以上にデータベースをより強固な情報基盤として活用できる機能を備えています。
それは何のためか?目的は3つです。

  1. データベースに不正なデータを一切発生させないこと
  2. データベースの関係性を可視化し、ブラックボックス化させないこと
  3. アプリケーション開発の負荷とミスを大幅に削減すること

情報システムにおける最も重要な資産は、なんと言ってもデータベースです。
この3つの目的により、LANSAデータディクショナリーがシステム開発の課題を大きく改善できるのです。

それでは、図に示した主なデータディクショナリーの機能についてご説明します。

妥当性検査=正しい値しか入らないシステム

正しい値しか入らないシステム

情報システムが正しく機能するためには、データの正確さを高めることが必要不可欠です。データの正確さとは、「データベースに不正な値が入らないこと」を意味します。
例えば日付が適正値の範囲内でなかったり、コード№がシステム上存在しない値であったり、空白が許されない(=必須入力)はずなのにブランクのままデータが発生したりと、設計時点で予期しないデータの発生によりシステム全体がつじつまの合わない事態に陥ることが多々あります。
通常、こういった「値の検査」はプログラム側で行うことが多いのですが、それではプログラムに検査の漏れがあった場合結果的にデータベースに不正な値が発生してしまうことになります。
「妥当性検査」の機能により、データベースには“100パーセント!!絶対に!!”不正なデータを発生させないことができるのです。

トリガー=複雑な関連データベースへのデータ格納をスムーズに

複雑な関連データベースへのデータ格納をスムーズに

データベースは、システム規模が大きくなればなるほどファイルの数も多くなり、ファイルの関連も複雑化します。
また、昨今ではデータ更新のリアルタイム化が当たり前となり、一度の入力処理により関連データベースへの同時更新が必要となってきました。
多くのシステムでは、この「関連ファイルへの同時更新」をプログラムに記述し実現しているのですが、これはこれでプログラムの負荷を増大し、バグ発生の一要因ともなります。
トリガー機能は、この「関連ファイルへの同時更新」の要件をデータベースに付加させる手法です。例えば、商品が出庫されたときに在庫を引き落としますが、この「出庫した」というイベントをもとにトランザクションデータから在庫データへ自動的に在庫を更新にいってくれるわけです。いうなれば、プログラム内では在庫データに対して何のアクションもせずとも、データベースが自動的に判断して在庫データへの更新を実行してくれるということです。
情報システムはシンプルを目指すべきです。業務要件が複雑化しリアルタイム化が促進され、情報システムの難易度はどんどん高まってきています。だからこそ、プログラムは複雑化させずにシンプルに作り上げる必要があるのです。シンプルにすれば、開発者に高いスキルも要求せずにすみますし、運用中のシステム解析やシステム拡張も容易になります。

リレーション=データベースの関連性を可視化する

データベースの関連性を可視化する

近年、セキュリティ基準の高まりや安心安全の提供などの理由で、システム管理要件の増大や情報の細分化が進んでいます。そのためデータベース構造が多階層化され膨大なデータベースを構築、管理しなければならなくなっています。
データベースとは、ファイルの塊です。もちろんファイルそれぞれに意味があり、「リレーショナルデータベース」と言われるようにファイル同士の関係がきれいに整備されていなければなりません。
最初にシステム構築するときは開発者の頭の中にデータベース構造が描けていたり、ERD(Entity Relationship Diagram)などの手法によって図式化され可視化されているのは当然かと思います。ところが、年月が経過し、継ぎ足し継ぎ足しでデータベースが膨れ上がっていくととても人間の頭で関係を追える代物ではなくなってきます。
そのようなことがないように、データベース同士がどう関連付き、データベース全体像がどうなっているのかを明確化するための機能が「リレーション」です。

また、このリレーション機能は後述の「テンプレート」の際にも大きな役割を果たしてくれます。(※テンプレートについてはこちらをご覧ください。)

プログラム作成の際、テンプレートでメインとなるファイルを指定すると、自動的に関連するファイルを呼び出してくれ、プログラムで使用するフィールドを指定することが出来ます。これにより、プログラム内で関連ファイルを呼び出したり、項目を追加したりといった記述が自動で生成されるのです。プログラムのコーディング量が削減されるだけでなく、バグの発生も最小化できることになります。

仮想フィールド=ファイルに実在しないフィールドを定義できる!?

ファイルに実在しないフィールドを定義できる!?

ファイルにフィールドを追加すると当然ですが物理的に値を格納するエリアが用意されます。(本当に当たり前のことですが)
LANSAでは、それだけではなく「仮想的に」フィールドを定義することが出来ます。
あまりピンと来ない方も多いと思いますので簡単な事例を紹介しましょう。
例えば、ファイル上には[数量]と[単価]を持っているものとします。よくあるパターンです。このファイルを使って、金額リストのプログラムを作成する際、当然ですが[数量×単価]という計算を行い金額を求めた上で表示します。LANSAの仮想フィールドを使えば、この“プログラムで計算式を書く”というロジックが不要になるのです。ファイル中に[金額=数量×単価]と記述しておくだけです。これだけで、どのプログラムからこのファイルを見ても、いかにも物理的に存在しているフィールドのように“計算された金額”が取得できます。
非常に簡単な機能ですが、これだけのことでプログラムの負荷やミスが減ることはご理解いただけるのではないでしょうか。

2.LANSA言語(RDML/RDMLX)がアプリケーション開発をシンプルにします。

LANSAのもうひとつの特徴が「LANSA言語」です。
「言語」と聞くと、「難しい英語みたいなコードをたくさん書かなければならない」と警戒する方も多いかと思います。
一般的な言語においては、多少は簡略化されている場合もありますがほとんどの場合プログラマーが時間をかけてコードを記述し生成していきます。
ところが、LANSAではある一定レベルまでは自動的に言語を記述してくれるのです。ということは、プログラムを書く手間もかからなければテストをする手間もいらないということです。だから生産性が高くバグが出ないシステム開発が出来るのです。
また、プログラムで記述する「コマンド」というコンピュータに指示する命令も、他の言語に比べると非常に少ないという特徴もあります。
コマンドが少ないということは、それだけ習得しやすいという利点につながります。

プログラムとは、言語を記述し、要求どおりの結果をもたらすプロセスを描くことです。したがって、正しい結果を得ようとすれば正しく言語を書かなければならないのです。この“プロセスを正しく書く”という作業が軽減すればするほど、シンプルかつバグのない「正しいシステム」が出来上がるはずです。

ここでは図に示した主なLANSA言語の機能についてご説明します。

テンプレート=コーディング量が大幅削減、操作性が統一

テンプレートは、LANSA言語の最大のメリットを発揮する機能です。
「テンプレート」とは、日本語で言えば「雛形」。簡単なプログラムであれば、一切コーディングせずとも動くプログラムが作成できてしまいます。
仕組みは簡単、作成したいプログラムタイプにあったテンプレートを指定し、アクセスするファイルやフィールドを指定するだけで、規定したデザインでプログラムが作成されます。この時点でも十分に機能するプログラムになるのですが、さらにデザインを変更したり、コメントを加えるなどの装飾を行ってあげればより使いやすいプログラムになるでしょう。また、テンプレートだけでは組み込めないロジックを書き加えてあげればより複雑なプログラムも作成することが可能です。
多くのプログラムはテンプレートから作成し、より難易度の高いプログラムはテンプレートから作成したプログラムに手を加えてあげると、すべてを1から記述するケースに比べ何倍もの生産性が向上でき、また手書きしない分コーディングミスも極小化できます。
テンプレートから作成されたプログラムは、そのテンプレートに定義されたデザインでプログラムが出来上がります。そのためデザインがほぼ統一されることになります。ユーザーから見ると、いずれのプログラムも操作性やデザインが統一されますので、違和感なく操作できることになります。
プログラムにもいろいろなタイプがあり、「入力用」「参照用」「出力用」などそれぞれのタイプに合せたテンプレートが用意されています。また、テンプレート自体をご自身の好みに合せて作成することも出来ますので、非常に自由度が高いツールなのです。

フレームワーク

フレームワーク

上記テンプレートでも操作性について述べましたが、ユーザーにとって操作性は非常に重要な要素のひとつです。
操作方法がわかりやすいというだけで、仕事のスピードが飛躍的に向上するだけでなく、仕事の質も向上するケースも多く見受けられます。
コンピュータというだけで敷居が高いのに操作方法も難しいとなると敷居の高さは倍増します。
LANSAフレームワークを利用すれば、左図のようにすべてのアプリケーションが統一化された構成で作成され、ユーザーにとって“使いやすい”システムが実現できます。
またこれまで個々のプログラムで用意していた検索機能やリスト表示などがほぼノンプログラミングで作成できますので、開発生産性の向上にもつながります。
このフレームワークは、クライアントサーバー型アプリケーションとWebアプリケーションの双方に用意されていますので、利用環境に応じた使い分けが出来ます。

多国語変数

近年、これまで日本国内のみで事業を展開してきた多くの企業が、コスト削減や新たな市場を求め海外に進出しています。それに伴って、海外でのシステム利用ニーズが増大しています。
海外で使用するからといって、国内仕様のシステムをあらたに海外向けに開発するとなるとそこに多くのコストと時間を費やさなければなりません。LANSAでは、多国語変数の定義によりシステム仕様を大きく変更することなく、多言語への対応が可能です。

関数

プログラム開発は、先にも述べたとおりコンピュータに指示を送るため細かなことまで綿密に記述しなければなりません。
人間同士のコミュニケーションでは、もともと当人同士のバックグランドがあり互いの“暗黙の了解”の上である程度意思疎通が可能です。ところが、コンピュータはある意味何も知らない赤ん坊なので、探し方や計算の仕方などいちいち丁寧に説明する必要があるのです。
ところが、当たり前のことを毎度毎度記述していてはとても生産性など向上することは出来ません。
そこで、関数を使い「当たり前の計算」や「当たり前の変換」などを定義し、それをすべてのプログラムで共用して利用することができるようにしています。あまりユーザーには直接関係のない部分ではありますが、プログラム開発においてはこの機能が意外と役に立つものなのです。

Page Top