クライアントは、米国を代表するbusiness intelligence(BI)ツールプロバイダーの1社です。同社のBIツールは、世界の大手企業でも利用されています。事業拡大に伴い、各プロダクションラインが共通して利用できる汎用プラットフォームの必要性が高まっていました。
このデータ分析ツールプラットフォームには、センサー、機械、データベースなど多様なソースからデータを収集する機能が求められました。さらに、それらのデータを分析し、クライアントの生産プロセス改善に役立つインサイトを提供する必要もありました。
HDWEBSOFTは、このプラットフォーム開発に携われることを非常に楽しみにしていました。私たちは、このソリューションがクライアントの事業運営のあり方を大きく変える可能性を持っていると考えています。
当社の Platform Development もご覧ください。
機能
- Data Hub: 同じクエリフォームを使って複数のデータベースへ問い合わせできる橋渡し機能です。これにより、ユーザーはデータ形式の違いを強く意識せず、さまざまなデータソースへアクセスできます。
- Visualization Builder: データソースからグラフ、チャート、マップなど多様な可視化を構築できるツールです。用意されたテンプレートを使うことも、独自の可視化を作ることもできます。
- Visualization Management: 可視化の閲覧、編集、削除を行える管理ツールです。フォルダを作成して整理することもできます。
- Dashboard Builder: 管理済みの可視化を組み合わせてダッシュボードを構築できる機能です。重要な可視化を1ページへまとめて表示し、ユーザー要件に合わせて柔軟に調整できます。
技術
このプラットフォームは、複数技術を組み合わせて複雑なシステムを構築するHDWEBSOFTの力を示すものです。採用した主な技術は次のとおりです。
- バックエンドに.NETを採用: .NETを使ってプラットフォームのバックエンドを構築しました。.NETは高性能かつ拡張性の高いアプリケーションを実装できる強力なフレームワークです。
- フロントエンドにAngular v1とjQueryを採用: Angular 1は動的でインタラクティブなWebアプリケーション構築に適しており、jQueryはDOM操作や機能追加に活用しました。
- HighChartsやD3などのJavaScript可視化ライブラリ: これらを使って、見やすくインタラクティブなチャートを実装しました。
- データバインディングやデータサンプリングなどのデータサイエンス理論: プラットフォーム内で利用する前にデータを前処理し、クリーンで正確な状態に整えました。
- テスト駆動開発(TDD)アプローチ: 早い段階でユニットテストを書き、品質を確保しながらバグを早期に発見・修正しました。
このプラットフォームは、多様な技術を用いて複雑かつ高品質なシステムを構築できることを示しています。私たちは、この経験を活かして他のクライアントにも同様の価値を提供できると確信しています。
課題
- 未成熟な技術の採用: このプラットフォームは、Angular 1とjQueryという、UIフレームワーク革命の初期段階にあった技術上に構築されました。後継技術に置き換えられていることからも分かるように、当時は機能面・安定性の面で不確実さがありました。
- データベースごとのクエリや構文の違い: 各データベースには固有のクエリ仕様や文法があります。そのため、あらゆるデータベースへ対応できる統合プラットフォームを作るのは難しく、各バージョンとの互換性確保も課題でした。
ソリューション
- 複雑なUIとjQuery/Angular 1の性能のバランスを取る: ユーザーインターフェースの複雑さと、使用ライブラリの能力とのトレードオフを慎重に検討しました。その結果、よりシンプルで、ライブラリ特性に合ったUIを採用しました。
- Angular 1向けの良いコード構造を設計: 明確なコード構造を用意することで、保守性・更新性を高め、バグの発見と修正もしやすくしました。
- データベースクエリに対するバランスの取れた解決策: それぞれのクエリ差異を分析し、機能、性能、保守性の観点から最適な判断を行いました。ユーザー要件を満たしながら、効率的で維持しやすい仕組みにしています。
ビジネス成果
- 難易度の高い技術課題を多数解決: たとえば、異なるデータベースクエリ構文間の互換性問題を解消しました。これにより、信頼性が高く、使いやすいプラットフォームを実現しました。
- クライアントのBIプロダクションで実運用: このプラットフォームは実際にクライアントのBI環境で利用され、多様なデータソースから情報を収集・分析し、生産プロセス改善に役立つインサイト提供を支えています。