研究・業務絡みで行ったシステム開発
- 2015年: 電子メールの宛先数に基づく流量抑制 Milter ソフト: 送信者メールアドレス単位で宛先数を集計します。送信数は少ないけど1通当たりの宛先数が多いとメールサーバが最終的に処理するメール数は その宛先数に送信数を掛けた値になります。例えば、1通当たり宛先数150通のメールが短期間に1000通一斉送信されたら、最終的に処理されるメール数は
一気に 1000 x 150 = 15万通となりメールサーバは過負荷になります。これではサービスの安定性がぐらつきかねないので作りました。
- 2015年: 演習室端末利用状況調査システム再開発: 演習室の更新に伴う機器更新により、その構成が変更されました。ということで、新しい構成に合わせてシステム側も仕様変更です。 一番大きな変更は
Windows 端末に組み込むオリジナルの常駐ソフトをプログラミング言語を変更して1から綺麗に組み直したことです。今までは、その常駐ソフトは最初の開発者である教員が用いた
Visual C++ 2008 により開発されていました、今回は Visual C# 2013 要するに .NET Framework で開発されました。その教員は定年によりいなくなったことと、更新された
Windows に その常駐ソフトのためだけに古いライブラリを組込むことによる演習室システムの保守コスト上昇が懸念されたからです。Visual
C# は時代の新しい言語のためか、開発効率が向上しています。
- 2014年: SMTP認証付メール送信抑制 Milter ソフト: SMTP認証付で大量のメール送信を行った場合に その認証したユーザーのみに送信抑制を発動します。Milter ですので、sendmail
および Postfix で使用可能です。
- 2013年: 非Web系ネットワークサービスのシングルサイン化の試み: Shibboleth認証とIMAP認証を連携させることを試みています。ポータルサイトで一度認証成功すると、メールサーバはパスワード不要でのメール購読を許可します。うちにあるPHP版ウェブメーラーを用いて実験しています。
- 2013年: 端末申請書管理のオンライン化の拡張: 2012年に開発した管理ソフトウェアを実験運用させてみて、2つ注文がきました。DNSサーバとの連動&複数人同時管理です。設置申請書にはIPアドレス&ホスト名が記述されています。そこで、「申請書の端末情報とDNS情報と同期させれば
DNS管理を兼用できるので便利だろう」となりました。DNS情報のリモートによる複数人同時編集は、失敗するとネットワークサービスへの影響が大きいことから、慎重に扱っています。
複数人同時管理は、管理可能なIPアドレス範囲を設定できるようにして、担当外の端末を編集できないようにしました。
- 2012年: 端末申請書管理のオンライン化 (試作): 私の所属する部局では、管理下のネットワークへの端末設置には申請を求めています。台数が数千台規模になっており、極少数の教職員がオフラインで管理することは難しくなってきています。ということで、データベース&Web
でオンライン化です。まずは、今までのデータをSQLで管理できるようにデータ変換を行い、必要最小限のインターフェース開発です。
- 2012年: PHP版ウェブメーラー再開発: 最近のHTML規格の取り込みです。古いWebブラウザとの互換性を維持しながらの開発なので、過激なことは控えています。
- 2010年: PHP版ウェブメーラー再開発: 教職員用メールサービスの外注化に伴い、メールシステムの仕様に中規模な仕様変更が生じました。それに対応するために、PHP版ウェブメーラーも一部作り直しです。再開発に際しては、一部の古いウェブブラウザは対応外となりました。
利用者による送信者メールアドレスの入力ミスを防止するため、送信者メールアドレスは統合認証システムから自動取得されます。 さらに、統合認証システムの情報を元に、アクセスするメールサーバをウェブメーラー内部で自動的に切替えるようにしました。
これにより、それまで教職員用と学生用とに個別運用していたのを、一つに統合できるようにしました。
- 2010年: 演習室端末利用状況調査システム: 演習室の利用状況を調査するソフトの再々開発です。演習室の各端末の利用者を集計します。一部授業では、このシステムは学生さん達の出席確認用に使われて
います。数年前に追加した多重ログイン防止機能は継続です。今回の多重ログイン防止機能は、先にログインした端末を強制ログアウトさせます。オリジナル
は、強制シャットダウンでした。MRTGを用いて、利用状況の時系列をグラフ表示させてもいます。演習室システムの大幅な仕様変更&規模拡大、そして既存
コードの保守コスト増大により、事実上一から作り直しました。 将来の拡張や仕様変更は予め想定しているのですが、どこかの時点でやり直しになるのは避けがたいようです。
- 2008年: メールサービス管理用で小さいのをいくつか作りました。
- 2007年: PHP版ウェブメーラー再開発: オリジナルであるPerl版ウェブメーラーの保守が極めて困難になったことから、実験的要素をカットして、実用に耐えるようにしました。 メールソフトとしての機能的は必要最小限に押えています。
研究要素は全くなく、確実に動作することを重視した実用品です。 主な仕様変更点は、アドレス帳&個人設定の置き場所をリモートホスト上の各ユーザのホームディレクトリに変更したことです。理由は、LDAPサーバの取扱
が変更になって情報の書き込みができなくなったことと、ユーザの退職&卒業に伴う個人情報消去のコストを下げるため、です。ホームディレクトリを削除する
だけで、ウェブメーラーのアドレス帳&個人設定も消えます。
- 2004年: PHP版ウェブメーラー 開発: 「各サーバ上でローカルに管理されている個人情報のLDAPへの統合」を実験するために PHP + OpenLDAP + PostgreSQL
の組み合わせで ウェブメーラーを 1から作り直しました。文字コードを 実験として UTF-8 に設定して本格的な多国語化を実現しています。個人が有する署名やアドレス帳等を
LDAPサーバで管理させるため、ウェブメーラー自体は純粋にメールの読み書きを行うフロントエンドソフトウェアになっています。
- 2003年: 多国語版ウェブメーラー 開発: ウェブメーラーを多国語版にしました。正確にはプログラムコードと表示メッセージを完全分離して、各言語用に表示メッセージテーブルを用意しました。今のところ日本語と英語のみです。
- 2003年: 演習室利用状況調査ソフト再開発: 上記制御ソフトの機能を利用して演習室の利用状況を集計します。結果はWebブラウザと携帯電話上に表示されます。Perl + PHP4 で作りました。
- 2003年: 演習室用PC制御ソフト Linux版 仕上げ: 演習室にある200台以上のPCに対して、リモートシャットダウン等の遠隔操作を可能にするソフトです。オリジナルは教授が開発した Windows版で、卒業研究として学生さんに開発させたLinux版を
私が後を引き受けました。C言語で作られています。
- 2002年 - 2003年: Webmailer 改良: Webブラウザ上で電子メールの読み書きを行うソフトの改良です。オリジナルは学生さんが作りました。その学生さんが卒業してしまい保守が不可能になったので、私が後を引き受けました。元々は Linux上で Perl + PHP3で動いていたのを、FreeBSD上で Perl + PHP4 で動くようして、各種バグ取りを行いました。文字化け対策でかなり時間を食ってしまいました。
- 2002年: DNSデータ管理ソフト 改良: サブドメイン管理方法の改良や各種バグ取りを行いました。
- 2000年: プリント制御システム開発: ユーザー毎の印刷枚数を集計して、一定枚数以上の印刷を止めるものです。CとCシェルで作りました。Solaris上で動きます。
- 2001年: DNSデータ管理ソフト Solaris版, FreeBSD版 開発: Webブラウザ上でDNSデータを管理するソフトです。 C および Perl で作りました。サブドメイン数21, 登録台数2000台以上のDNSデータを手動で管理するのは、どこか無理があります。おかげでとっても便利です。当大学におけるプライマリーDNSサーバにおけるDNSデータは、これにより管理されています。
- 1998年 - 1999年: Chidamberメトリクス計量プログラム開発: オブジェクト指向プログラム用の複雑さを計量するものです。MS-ACCESSを用いて、プログラムの構造をDB化しています。クエリのプログラミングをこれで覚えました。
- 1992年 - 1993年: C言語プログラムの構造表示プログラム開発: NeXTのGUIを用いてC言語プログラムの構造を表示するものです。私は、オブジェクト指向ソフトウェア開発をこのNeXTで習得しました。