電子政府における実装規約の役割(1):考え方は法律と同じ

本ブログでもご紹介した『IC・ID カードの相互運用可能性」技術セミナー』は、大変勉強になるものでした。当日の資料は、NPO日本ネットワークセキュリティ協会のサイトで公開されています。

一見すると技術者向けのセミナーのようですが、「より良い電子政府・電子申請」を考える上での大切なヒントをたくさん頂きました。

セミナーでは、「IC・ID カードの相互運用可能性の向上に係る基礎調査」をテーマにして、様々な提言がなされていました。

その中で、相互運用可能性を確保するための支援環境として、
・実装規約
・参照実装
・テスト環境
・認定制度

の4つが有効であるとされていました。

この4点セット。実は、電子政府・電子申請サービスの利便性や安全性を高める上でも、非常に有効なのです。

今回は、「実装規約」を中心として、電子政府における役割とその効果を考えてみたいと思います。

●実装って?

まずは、「実装」について確認しておきましょう。

IT用語辞典 e-Wordsによると、

実装(インプリメント、インプリメンテーション)とは、

「ハードウエアやソフトウェアに新しい機能や仕様、部品などを組み込むこと。また、実際にその機能を組み込む際の手法も意味する。」

とあります。さらに詳しく見ると、

・システム構築を「設計」と「開発」に分けた場合の「開発」段階にあたる
・設計段階で決定された「仕様」を元に機能を組み込んでいく「作業」となる

続けて、

・「同じ仕様書から作成されたプログラム同士の間に相互運用性がない」といった事態が発生することがある
・「同じ仕様に基づいていながら実際の動作が製品ごとに微妙に異なっている」状態が「実装の違い」である

とあります。

『これって、各省庁でバラバラに乱立した電子申請システムのことじゃないの?』

と思った人は、なかなかの電子政府マニアでございます

この問題については、後で詳しく触れることにしましょう。

関連>>社団法人 エレクトロニクス実装学会実装(Wikipedia)

●実装規約って?

ISO/IEC 10536 準拠非接触 ICカード実装規約書(ニューメディア開発協会)』によると、

「実装規約とは、国際標準規格に準拠した製品等の互換性、相互運用性を確保するために、国際標準規格を補足すべき規格・規約をいう。」

とあります。

つまり、同じ仕様(国際標準規格)であっても、いざ「実装」の作業をしていくと、みんな好き勝手バラバラに(個性的に)開発してしまうので、出来上がった製品(システム、ソフトウェアなど)が互換性や相互運用性の低いものとなってしまう可能性が高い。

こうなると困るのが利用者です。極端に言えば、電化製品ごとにコンセントの形が違うようなもので、使いにくいのなんのって。。

ですから、仕様(国際標準規格)だけじゃなくて、「実装」についても共通のルールを作り、このルールをみんなが守って「実装」するようになれば、出来上がる製品の互換性や相互運用性を確保できるんじゃないのかな。

この「実装について、みんなが守るべき共通ルール」が、「実装規約」というわけです。

この「実装規約」でポイントとなるのが、「互換性、相互運用性を確保するため」という目的です。

「実装規約」が有効に機能するためには、

1 「互換性、相互運用性」を確保する必要があり(必要性)
2 「互換性、相互運用性」を確保するに十分な内容であり(質)
3 みんな(大多数の開発者)が賛同して守ってくれる(実行性)

といった条件を満たしている必要があると思います。

「参照実装」にも触れておきましょう。

参照実装(RI:Reference Implementation、リファレンス実装)は、簡単に言うと、「仕様を実際に実装した場合の例示:実装例」です。

「実装規約(共通ルール)」に加えて、「参照実装(見本)」があることで、より具体的なイメージを持って開発することができます。

関連>>リファレンス実装(Wikipedia)XML暗号標準のリファレンス実装(PDF:情報処理推進機構)

また、「フレームワーク」と言われるものもあります。

「アプリケーションの雛型(ひながた)」とも言われるように、アプリケーションソフトの開発に必要な共通機能を提供してくれるので、開発にかかる手間を少なくしてくれます。

下記の用語解説にあるように、具体的なソフトウェアだけでなく、汎用的に適用できるプログラムの設計モデルや典型的な処理パターンなどを含めてフレームワークと呼ぶ場合には、「参照実装」を含めることもあります。

関連>>フレームワークとは(IT用語辞典 e-Words)アプリケーションフレームワーク(Wikipedia)

全体的な流れを整理すると、

1 仕様の設計 → 「開発」段階へ
2 仕様の「実装」
・実装規約、参照実装、フレームワークなどを活用
3 実装後の「テスト」
・テスト環境があると便利
4 完成 → 認定、運用開始、評価など

かなり要約してありますが、大体このような流れです。

●法律の分野にも「実装規約」がある?

「実装規約」と同じような考え方が、実は法律の分野でも存在します。

それが、「法律」と「命令」の関係です。

法律:
・国会が制定する
・基本的な内容について定める
・改正するのが大変

命令(政省令など):
・国の行政機関(府省)が制定する
・詳細について定める
・「法律」よりは改正しやすい

「法令」という言葉がありますが、これは「法律」と「命令」が合体したものなんですね。

例えば、「建設業の許可申請」をする場合、

法律:建設業法

命令:建設業法施行規則、建設業法施行令

「法律」で許可を受けるための条件などを定め、「命令」で具体的な申請方法(添付書類や申請書の様式)を定めています。

ところが、困ったことに行政手続の実務では「法律」や「命令」以外に、かなりの影響力を持つ別のルールが存在します。

それが、「通達」や「要綱」などの行政における内部命令・規定です。

「法令」に従って、実際に行政事務を行っていると、法令の解釈や運用について迷ってしまうことがあります。

そんな時は、上の役所から、具体的な解釈や運用をどうすれば良いか示してもらいます。

例:国(通達) → 自治体(事務の執行)

これが「通達」と言われるもので、個々の通達をまとめたものが「要綱(事務要綱、手続要綱など)」と呼ばれたりします。

以前は、「要綱」が「内部規定」として公開されず、「法令に従って申請しても許可を受けられない」といった行政手続の不透明さが問題になっていましたが、インターネットの普及もあり、最近では公開が進み閲覧しやすくなりました。

関連>>京都府民意見提出手続要綱及び考え方東村山市監査事務要綱

「要綱」は、行政職員にとっては「便利な実務マニュアル」みたいなものです。難しい「法律」や「命令」を知らなくても、「要綱」に従っていれば実務をこなせるので、行政事務の効率化に少なからず貢献しているわけです。

これに対して、国民(申請者)向けのマニュアルもあります。

それが「申請者向けの手引き」であり、小冊子やパンフレットのような形で提供されています。

関連>>信書便事業に関する申請等の手引(総務省)宅地建物取引業免許申請等の手引き(東京都都市整備局)

「法令」や「要綱」は、行政・法律用語で書いてあるので、一般の人が読むとよくわからない。。

そこで、申請に関するポイントをわかりやすく説明して、実際の書き方や記入例なども明示してくれる「申請者向けの手引き」が作られ、「法令」や「要綱」に詳しくない国民でも申請できる、というわけです。

例えると、「基本仕様や実装規約を詳しく知らなくても、開発の作業はできる」という感じでしょうか。

ですから、ある行政手続の業務を電子化・最適化したいと思った場合、「法律」や「命令」を見るだけでは不十分で、「要綱:行政実務の視点」や「申請者向けの手引き:国民の視点」なども精査する必要があります。

これらを「実装規約」等に当てはめると

・申請者:開発者
・建設業の許可申請:製品
・建設業法:基本仕様
・建設業法施行規則等:実装規約
・申請者向けの手引き:参照実装、フレームワーク
・許可が下りる:製品の認定を受ける

と言う感じでしょうか。

このように、ITと法律は、全く異なる分野のようで、実は考え方や手法に共通するものが多いのです。

次回は、国の電子申請における実装規約とそのあり方について触れたいと思います。

関連>>電子政府における実装規約の役割(2):「開発者の視点」で民間サービスとの連携を強化