SlideShare uma empresa Scribd logo
1 de 32
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
hifiveで実現する
エンタープライズHTML5システム開発
技術本部 システム研究開発センター
イノベーティブアプリケーション研究部
hifive アーキテクト 三淵 喬
2017/12/06
HTML5 Enterprise Application Conference 2017
~ HTML5で実現する業務アプリケーションのモダン化&マルチデバイス化 ~
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
自己紹介
2
 三淵 喬(みつぶち たかし)
 新日鉄住金ソリューションズ株式会社
技術本部 システム研究開発センター 所属
 技術領域
 クライアントサイド:HTML5, CSS3, ES6
 サーバーサイド:JAVA, C++14
 CI:Jenkins, Karma, Gradle, Gulp
 hifive チーム アーキテクト
 hifive開発(データグリッド)、案件支援、教育対応
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
本日のゴール
3
 モダンなWeb技術を利用した業務システム開発
クライアントサイドの 3つ の課題
それらに対する解決策
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
モダンな業務Webシステム
4
業務システムへの期待
 見やすいUIで計画を確認
 UI上で直接編集
 システムが自動的に実行
作業効率
・迷わない、間違えない
学習コスト
・学習が簡単に
モダンな業務Webシステムでは
実際に期待に応えられるようになってきた
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
モダンな業務Webシステムの例(1)
5
 ネットワーク設定自動化システム HANAITA
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
モダンな業務Webシステムの例(1)
6
 ネットワーク設定自動化システム HANAITA
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
モダンな業務Webシステムの例(2)
7
 現場作業者の安全見守り支援
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
本日のゴール
8
 モダンなWeb技術を利用した業務システム開発
クライアントサイドの 3つ の課題
それらに対する解決策
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
表現力/パフォーマンスの向上~複雑性への対応
9
2008
2014
W3CからHTML5の初期草案発表(iPhone3G 日本発売の年)
HTML5が正式勧告
・グラデーション、角丸、影表現(CSS3)
・動画再生、図形描画(<video>, <canvas>, SVG)
・3D(WebGL)
・双方向通信(WebSocket, Server-Sent Events, WebRTC)
・位置情報(Geolocation)
・「Web Components」仕様群
・ES20xx、altJS
・Sass, Less
互換性向上、表現力・通信機能向上
モジュール化技術
アプリケーション
プラットフォームとしての
足回りの強化
個別機能の追加・強化
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
最新の Web 技術
10
Payment Request API
Service Worker
Progressive Web Apps
Web Bluetooth
WebUSB
WebVR API
WebGL
File API
Web Workers
Web MIDI API
WebRTC
Speech Recognition API
Speech Synthesis API
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 11
継続的・漸進的進化
Webの世界は
「継続的に、少しずつ変わる」
が常識に
「継続的な変化に対応し続けられる」
仕組みが必要
「ブラウザはIE8限定、画面サイズは1024x768固定」
「HTML5対応ブラウザに対応、
PC・タブレットを含むマルチデバイスに対応」
という時代から…
という時代へ
仕様も、実装も
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
業務システム開発の一般的特徴
12
 IT戦略全体の課題
 IT投資における「維持費用」の抑制⇒攻めの投資への転換
 “SMAC”や”IoT”など新興発展技術群への対応
 多数のシステムに対する開発~運用全般にわたる統制
– 情報漏えい他セキュリティリスクへの対応も
 開発
 多人数での役割分担(PM、SE、プログラマ、デザイナ)
 分散チーム開発(個々人のスキルも様々)
 外部システムとの接続
 スモールスタート、スパイラル・アジャイル的開発スタイル
も増えている
 運用・保守
 業務の変更に伴って改造されてゆく
 数年~10年以上使われる
– 開発(保守)に携わるメンバーが途中で変わっていくことも多い
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
クライアントのリッチ化に伴う課題
13
要件定義 設計 実装 テスト 運用・保守
実現可能性 互換性
開発環境
生産性向上
アジャイル
自動化アーキテクチャ
見積り
人材教育/調達
体制 実機動作検証
セキュリティ
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
クライアントサイドの 3つ の課題
14
① 多人数開発での役割分担
② 機能性とパフォーマンス
③ 長期にわたる運用保守
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
本日のゴール
15
 モダンなWeb技術を利用した業務システム開発
クライアントサイドの 3つ の課題
それらに対する解決策
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
「ハイファイブ」
16
企業Webシステムのための
開発プラットフォーム
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
hifiveとは
17
 次世代Web標準(HTML5/JavaScript/CSS)を活用した
企業Webシステム開発のためのプラットフォーム
 2012年4月にver.1.0を公開
 弊社初の自社開発オープンソース
 ライセンス:Apache License, Version 2.0
– 商用システムに適用可
 ターゲット:企業情報システム
 コンセプト
– 使い始めるための敷居を低く
– Webの標準的な仕組みから逸脱しない
– 開発のサイクルをトータルにサポート
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
hifiveのスコープ
18
DBサーバ
ブラウザ
(クライアント)
http://www.htmlhifive.com/quiz/
にアクセス
データ取得
データ返却表示するページを返却
アプリケーションの中心を司り、
必要な情報の処理、DBからデータ
の取得、ブラウザへ画面の返却など
を行う
言語:Java, C#, C++, Perl etc.
データを格納する
画面の表示、レイアウト、
ユーザからの処理の受付などを行う
言語:HTML, CSS, JavaScript
ブラウザ上で動作するクライアントプログラムの開発をサポート
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
開発プラットフォームとしての整備
19
コアフレームワーク
支援ツール
ガイド/ドキュメント業務向け
ライブラリ
(ブラウザ) HTML(DOM) JavaScript CSS
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 20
サ
ー
バ
ー
(
デ
ー
タ
と
業
務
ロ
ジ
ッ
ク
)
「3つの軸」で問題を分割
クライアント
データ層
① 多人数開発での役割分担
コンポーネント軸
画面スタック軸
データ軸
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 21
コンポーネント分割の例
※ 背景を公開用に差し替えております
ドラッグ
拡縮
分割
スクロール
土台となる
機能を準備
① 多人数開発での役割分担
1F 2F
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 22
グラフ構造
データグリッド
業務システムでよく使われる
大量データの可視化部品など
実装難度の高いUI部品を提供
※一部コンポーネントは開発中
ドローイング
チャート
② 機能性とパフォーマンス
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
高パフォーマンスの秘密
23
実際に見えている範囲
(ここだけを描画)
本来描画すべき
領域全体
描画すべきオブジェクトの
位置計算等をJavaScript
エンジンの中に閉じて行う
画面に実際に表示される
範囲のみを描画する
(スクロールして
可視範囲外に外れた
オブジェクトは外す)
データ数
描
画
時
間
現実的に一度に”表示”
すべき量は上限がある
ので論理データ数が
多くなっても扱える
(高速化イメージ)
② 機能性とパフォーマンス
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
マルチデバイス/ブラウザ対応
Webアプリテスト自動化支援ツール
24
• Seleniumベース
• スクリーンショット比較で
“見た目”のテストを自動化
• オープンソースとして提供
③ 長期にわたる運用保守
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
UIテストが必要
25
目視確認だと
細かい表示内容の変化を見落とし
がち
だけど…
③ 長期にわたる運用保守
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
全ての対応ブラウザで必要
26
Internet Explorer 11 mobile SafariGoogle Chrome
同じ内容のテストを
ブラウザ・デバイスの数繰り返す
のは大変
スマデバの
テストは特に
負担大
しかし…
③ 長期にわたる運用保守
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
テスト自動化を阻む課題
27
 自動化環境やスクリプトの作成・保守コスト大
 「ブラウザ間の差異」に対応するために、同じテストに対して
ブラウザ毎に個別のスクリプトを書く場合も
 UIテストは自動化しづらい
 「画面が正しく表示されること」をどう定義・記述するか?
 レイアウトの確認は目視で行う?→ボトルネック化
スクリプト作成・
保守コスト大
ブラウザ個別の
スクリプトが必要
レイアウトの
確認は目視
driver.get(baseUrl +
"/myVideoRental/FrontController");
driver.findElement(By.name("shop_id
")).clear();
driver.findElement(By.name("shop_id
")).sendKeys("01");
driver.findElement(By.id("DisplayMen
uLogic")).click();
assertEquals("貸出・返却メ
ニュー画面", driver.getTitle());
実施 結果確認準備
driver.get(bas
eUrl +
"/myVideoRen
tal/FrontContr
driver.get(bas
eUrl +
"/myVideoRen
tal/FrontContr
③ 長期にわたる運用保守
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
記述を簡略化
Pitaliumによる解決策
実施 結果確認
スクリプト作成・
保守コスト大
ブラウザ個別の
スクリプトが必要
レイアウトの
確認は目視
準備
driver.get(baseUrl +
"/myVideoRental/FrontController");
driver.findElement(By.name("shop_id
")).clear();
driver.findElement(By.name("shop_id
")).sendKeys("01");
driver.findElement(By.id("DisplayMen
uLogic")).click();
assertEquals("貸出・返却メ
ニュー画面", driver.getTitle());
ワンソース 自動判定
28
driver.get(bas
eUrl +
"/myVideoRen
tal/FrontContr
driver.get(bas
eUrl +
"/myVideoRen
tal/FrontContr
③ 長期にわたる運用保守
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
Pitalium のデモ
29
③ 長期にわたる運用保守
 Pitalium 動作デモ動画
 https://youtu.be/02c8kLBP-Vs
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
まとめ
30
多人数開発での
役割分担
長期にわたる
運用保守
機能性と
パフォーマンス
3つの軸で分割
業務向け
ライブラリ
UI自動テスト
サ
ー
バ
ー
(
デ
ー
タ
と
業
務
ロ
ジ
ッ
ク
)
クライアント
データ層
コンポーネント軸
画面スタック軸
データ軸
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 31
www.htmlhifive.com
Twitter: https://twitter.com/htmlhifive
Facebook: https://www.facebook.com/htmlhifive
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
商標について
32
 NS Solutions、NS(ロゴ)、NSSOLは、
新日鉄住金ソリューションズ株式会社の登録商標です。
 hifive、hifive(ロゴ)、Pitalium、Pitalium(ロゴ)は、
新日鉄住金ソリューションズ株式会社の登録商標です。
 HANAITA、HANAITA(ロゴ)は
新日鉄住金ソリューションズ株式会社の登録商標です。
 Windows、Internet Explorerは、米国 Microsoft Corporation の
米国およびその他の国における登録商標です。
 JAVAは、米国ORACLE Corp.の登録商標です。
 HTML5 Logo by W3C.
 その他本文記載の会社名及び製品名は、
それぞれ各社の商標又は登録商標です。

Mais conteúdo relacionado

Mais procurados

JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)
Osamu Shimoda
 

Mais procurados (20)

OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
 
そろそろ(おまえらの)DevOpsについて一言いっておくか
そろそろ(おまえらの)DevOpsについて一言いっておくかそろそろ(おまえらの)DevOpsについて一言いっておくか
そろそろ(おまえらの)DevOpsについて一言いっておくか
 
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る【17-D-1】今どきのアーキテクチャを現場の立場で斬る
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
 
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
 
JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)
 
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
 
『従来のウォーターフォールのやり方にアジャイルのやり方を適用しようとしたら猛反対されたけど、適用するためにやったこと』
『従来のウォーターフォールのやり方にアジャイルのやり方を適用しようとしたら猛反対されたけど、適用するためにやったこと』『従来のウォーターフォールのやり方にアジャイルのやり方を適用しようとしたら猛反対されたけど、適用するためにやったこと』
『従来のウォーターフォールのやり方にアジャイルのやり方を適用しようとしたら猛反対されたけど、適用するためにやったこと』
 
Agile japan2016 a 2 ricksoft
Agile japan2016 a 2 ricksoftAgile japan2016 a 2 ricksoft
Agile japan2016 a 2 ricksoft
 
Visual Studio Team Services 新機能使い倒し
Visual Studio Team Services 新機能使い倒しVisual Studio Team Services 新機能使い倒し
Visual Studio Team Services 新機能使い倒し
 
新入社員が多い中で効果的なレビューを行うための方法 レビューの準備からフィードバックまでの工夫
新入社員が多い中で効果的なレビューを行うための方法 レビューの準備からフィードバックまでの工夫新入社員が多い中で効果的なレビューを行うための方法 レビューの準備からフィードバックまでの工夫
新入社員が多い中で効果的なレビューを行うための方法 レビューの準備からフィードバックまでの工夫
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた
 
Visual Studio Onlineで実践するDevOps手法
Visual Studio Onlineで実践するDevOps手法Visual Studio Onlineで実践するDevOps手法
Visual Studio Onlineで実践するDevOps手法
 
少ないコストでプロジェクトマネジメントをうまくやるやり方
少ないコストでプロジェクトマネジメントをうまくやるやり方少ないコストでプロジェクトマネジメントをうまくやるやり方
少ないコストでプロジェクトマネジメントをうまくやるやり方
 
エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例
 
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )
 
Bambooによる継続的デリバリー
Bambooによる継続的デリバリーBambooによる継続的デリバリー
Bambooによる継続的デリバリー
 
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
 
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
 
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
 
Atlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augjAtlassian Summit US 2017 #augj
Atlassian Summit US 2017 #augj
 

Semelhante a hifiveで実現するエンタープライズHTML5システム開発

[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
AINOW
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
裕貴 荒井
 
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!デベロッパーネットワーク
 
ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1
Satoshi Ueno
 

Semelhante a hifiveで実現するエンタープライズHTML5システム開発 (20)

Hinemos ver.6.0 エンタープライズ対応ソリューション紹介 ~ SAP、Oracle Exadata、IBMzSystems ~
Hinemos ver.6.0 エンタープライズ対応ソリューション紹介 ~ SAP、Oracle Exadata、IBMzSystems ~Hinemos ver.6.0 エンタープライズ対応ソリューション紹介 ~ SAP、Oracle Exadata、IBMzSystems ~
Hinemos ver.6.0 エンタープライズ対応ソリューション紹介 ~ SAP、Oracle Exadata、IBMzSystems ~
 
モダンWeb開発ワークショップ
モダンWeb開発ワークショップモダンWeb開発ワークショップ
モダンWeb開発ワークショップ
 
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
 
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
(2017.6.2) Azure HDInsightで実現するスケーラブル分析環境
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
 
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったかエンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
 
Apache Hadoopを利用したビッグデータ分析基盤
Apache Hadoopを利用したビッグデータ分析基盤Apache Hadoopを利用したビッグデータ分析基盤
Apache Hadoopを利用したビッグデータ分析基盤
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
(2017.9.7) Neo4jご紹介
(2017.9.7) Neo4jご紹介(2017.9.7) Neo4jご紹介
(2017.9.7) Neo4jご紹介
 
AWSでの金融系システム構築・運用勘所
AWSでの金融系システム構築・運用勘所AWSでの金融系システム構築・運用勘所
AWSでの金融系システム構築・運用勘所
 
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
 
自チームのLychee redmine活用例
自チームのLychee redmine活用例自チームのLychee redmine活用例
自チームのLychee redmine活用例
 
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
Yahoo!プロモーション広告のビックデータ基盤を支える技術と今後の展望
 
ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1
 
20170922_5_スポーツマンの夢を実現するスタートアップ、株式会社スプライザの活動紹介
20170922_5_スポーツマンの夢を実現するスタートアップ、株式会社スプライザの活動紹介20170922_5_スポーツマンの夢を実現するスタートアップ、株式会社スプライザの活動紹介
20170922_5_スポーツマンの夢を実現するスタートアップ、株式会社スプライザの活動紹介
 
Red Hat Forum 2014 IBM session
Red Hat Forum 2014 IBM sessionRed Hat Forum 2014 IBM session
Red Hat Forum 2014 IBM session
 
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
[db tech showcase OSS 2017] A14: IoT時代のデータストア--躍進するNoSQL、拡張するRDB by OSSコンソーシア...
 
Cloud Foundry Summit 2017 Recap
Cloud Foundry Summit 2017 RecapCloud Foundry Summit 2017 Recap
Cloud Foundry Summit 2017 Recap
 

Último

Último (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

hifiveで実現するエンタープライズHTML5システム開発

  • 1. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. hifiveで実現する エンタープライズHTML5システム開発 技術本部 システム研究開発センター イノベーティブアプリケーション研究部 hifive アーキテクト 三淵 喬 2017/12/06 HTML5 Enterprise Application Conference 2017 ~ HTML5で実現する業務アプリケーションのモダン化&マルチデバイス化 ~
  • 2. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 自己紹介 2  三淵 喬(みつぶち たかし)  新日鉄住金ソリューションズ株式会社 技術本部 システム研究開発センター 所属  技術領域  クライアントサイド:HTML5, CSS3, ES6  サーバーサイド:JAVA, C++14  CI:Jenkins, Karma, Gradle, Gulp  hifive チーム アーキテクト  hifive開発(データグリッド)、案件支援、教育対応
  • 3. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 本日のゴール 3  モダンなWeb技術を利用した業務システム開発 クライアントサイドの 3つ の課題 それらに対する解決策
  • 4. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. モダンな業務Webシステム 4 業務システムへの期待  見やすいUIで計画を確認  UI上で直接編集  システムが自動的に実行 作業効率 ・迷わない、間違えない 学習コスト ・学習が簡単に モダンな業務Webシステムでは 実際に期待に応えられるようになってきた
  • 5. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. モダンな業務Webシステムの例(1) 5  ネットワーク設定自動化システム HANAITA
  • 6. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. モダンな業務Webシステムの例(1) 6  ネットワーク設定自動化システム HANAITA
  • 7. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. モダンな業務Webシステムの例(2) 7  現場作業者の安全見守り支援
  • 8. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 本日のゴール 8  モダンなWeb技術を利用した業務システム開発 クライアントサイドの 3つ の課題 それらに対する解決策
  • 9. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 表現力/パフォーマンスの向上~複雑性への対応 9 2008 2014 W3CからHTML5の初期草案発表(iPhone3G 日本発売の年) HTML5が正式勧告 ・グラデーション、角丸、影表現(CSS3) ・動画再生、図形描画(<video>, <canvas>, SVG) ・3D(WebGL) ・双方向通信(WebSocket, Server-Sent Events, WebRTC) ・位置情報(Geolocation) ・「Web Components」仕様群 ・ES20xx、altJS ・Sass, Less 互換性向上、表現力・通信機能向上 モジュール化技術 アプリケーション プラットフォームとしての 足回りの強化 個別機能の追加・強化
  • 10. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 最新の Web 技術 10 Payment Request API Service Worker Progressive Web Apps Web Bluetooth WebUSB WebVR API WebGL File API Web Workers Web MIDI API WebRTC Speech Recognition API Speech Synthesis API
  • 11. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 11 継続的・漸進的進化 Webの世界は 「継続的に、少しずつ変わる」 が常識に 「継続的な変化に対応し続けられる」 仕組みが必要 「ブラウザはIE8限定、画面サイズは1024x768固定」 「HTML5対応ブラウザに対応、 PC・タブレットを含むマルチデバイスに対応」 という時代から… という時代へ 仕様も、実装も
  • 12. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 業務システム開発の一般的特徴 12  IT戦略全体の課題  IT投資における「維持費用」の抑制⇒攻めの投資への転換  “SMAC”や”IoT”など新興発展技術群への対応  多数のシステムに対する開発~運用全般にわたる統制 – 情報漏えい他セキュリティリスクへの対応も  開発  多人数での役割分担(PM、SE、プログラマ、デザイナ)  分散チーム開発(個々人のスキルも様々)  外部システムとの接続  スモールスタート、スパイラル・アジャイル的開発スタイル も増えている  運用・保守  業務の変更に伴って改造されてゆく  数年~10年以上使われる – 開発(保守)に携わるメンバーが途中で変わっていくことも多い
  • 13. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. クライアントのリッチ化に伴う課題 13 要件定義 設計 実装 テスト 運用・保守 実現可能性 互換性 開発環境 生産性向上 アジャイル 自動化アーキテクチャ 見積り 人材教育/調達 体制 実機動作検証 セキュリティ
  • 14. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. クライアントサイドの 3つ の課題 14 ① 多人数開発での役割分担 ② 機能性とパフォーマンス ③ 長期にわたる運用保守
  • 15. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 本日のゴール 15  モダンなWeb技術を利用した業務システム開発 クライアントサイドの 3つ の課題 それらに対する解決策
  • 16. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 「ハイファイブ」 16 企業Webシステムのための 開発プラットフォーム
  • 17. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. hifiveとは 17  次世代Web標準(HTML5/JavaScript/CSS)を活用した 企業Webシステム開発のためのプラットフォーム  2012年4月にver.1.0を公開  弊社初の自社開発オープンソース  ライセンス:Apache License, Version 2.0 – 商用システムに適用可  ターゲット:企業情報システム  コンセプト – 使い始めるための敷居を低く – Webの標準的な仕組みから逸脱しない – 開発のサイクルをトータルにサポート
  • 18. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. hifiveのスコープ 18 DBサーバ ブラウザ (クライアント) http://www.htmlhifive.com/quiz/ にアクセス データ取得 データ返却表示するページを返却 アプリケーションの中心を司り、 必要な情報の処理、DBからデータ の取得、ブラウザへ画面の返却など を行う 言語:Java, C#, C++, Perl etc. データを格納する 画面の表示、レイアウト、 ユーザからの処理の受付などを行う 言語:HTML, CSS, JavaScript ブラウザ上で動作するクライアントプログラムの開発をサポート
  • 19. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 開発プラットフォームとしての整備 19 コアフレームワーク 支援ツール ガイド/ドキュメント業務向け ライブラリ (ブラウザ) HTML(DOM) JavaScript CSS
  • 20. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 20 サ ー バ ー ( デ ー タ と 業 務 ロ ジ ッ ク ) 「3つの軸」で問題を分割 クライアント データ層 ① 多人数開発での役割分担 コンポーネント軸 画面スタック軸 データ軸
  • 21. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 21 コンポーネント分割の例 ※ 背景を公開用に差し替えております ドラッグ 拡縮 分割 スクロール 土台となる 機能を準備 ① 多人数開発での役割分担 1F 2F
  • 22. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 22 グラフ構造 データグリッド 業務システムでよく使われる 大量データの可視化部品など 実装難度の高いUI部品を提供 ※一部コンポーネントは開発中 ドローイング チャート ② 機能性とパフォーマンス
  • 23. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 高パフォーマンスの秘密 23 実際に見えている範囲 (ここだけを描画) 本来描画すべき 領域全体 描画すべきオブジェクトの 位置計算等をJavaScript エンジンの中に閉じて行う 画面に実際に表示される 範囲のみを描画する (スクロールして 可視範囲外に外れた オブジェクトは外す) データ数 描 画 時 間 現実的に一度に”表示” すべき量は上限がある ので論理データ数が 多くなっても扱える (高速化イメージ) ② 機能性とパフォーマンス
  • 24. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. マルチデバイス/ブラウザ対応 Webアプリテスト自動化支援ツール 24 • Seleniumベース • スクリーンショット比較で “見た目”のテストを自動化 • オープンソースとして提供 ③ 長期にわたる運用保守
  • 25. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. UIテストが必要 25 目視確認だと 細かい表示内容の変化を見落とし がち だけど… ③ 長期にわたる運用保守
  • 26. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 全ての対応ブラウザで必要 26 Internet Explorer 11 mobile SafariGoogle Chrome 同じ内容のテストを ブラウザ・デバイスの数繰り返す のは大変 スマデバの テストは特に 負担大 しかし… ③ 長期にわたる運用保守
  • 27. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. テスト自動化を阻む課題 27  自動化環境やスクリプトの作成・保守コスト大  「ブラウザ間の差異」に対応するために、同じテストに対して ブラウザ毎に個別のスクリプトを書く場合も  UIテストは自動化しづらい  「画面が正しく表示されること」をどう定義・記述するか?  レイアウトの確認は目視で行う?→ボトルネック化 スクリプト作成・ 保守コスト大 ブラウザ個別の スクリプトが必要 レイアウトの 確認は目視 driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop_id ")).clear(); driver.findElement(By.name("shop_id ")).sendKeys("01"); driver.findElement(By.id("DisplayMen uLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); 実施 結果確認準備 driver.get(bas eUrl + "/myVideoRen tal/FrontContr driver.get(bas eUrl + "/myVideoRen tal/FrontContr ③ 長期にわたる運用保守
  • 28. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 記述を簡略化 Pitaliumによる解決策 実施 結果確認 スクリプト作成・ 保守コスト大 ブラウザ個別の スクリプトが必要 レイアウトの 確認は目視 準備 driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop_id ")).clear(); driver.findElement(By.name("shop_id ")).sendKeys("01"); driver.findElement(By.id("DisplayMen uLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); ワンソース 自動判定 28 driver.get(bas eUrl + "/myVideoRen tal/FrontContr driver.get(bas eUrl + "/myVideoRen tal/FrontContr ③ 長期にわたる運用保守
  • 29. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. Pitalium のデモ 29 ③ 長期にわたる運用保守  Pitalium 動作デモ動画  https://youtu.be/02c8kLBP-Vs
  • 30. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. まとめ 30 多人数開発での 役割分担 長期にわたる 運用保守 機能性と パフォーマンス 3つの軸で分割 業務向け ライブラリ UI自動テスト サ ー バ ー ( デ ー タ と 業 務 ロ ジ ッ ク ) クライアント データ層 コンポーネント軸 画面スタック軸 データ軸
  • 31. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 31 www.htmlhifive.com Twitter: https://twitter.com/htmlhifive Facebook: https://www.facebook.com/htmlhifive
  • 32. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 商標について 32  NS Solutions、NS(ロゴ)、NSSOLは、 新日鉄住金ソリューションズ株式会社の登録商標です。  hifive、hifive(ロゴ)、Pitalium、Pitalium(ロゴ)は、 新日鉄住金ソリューションズ株式会社の登録商標です。  HANAITA、HANAITA(ロゴ)は 新日鉄住金ソリューションズ株式会社の登録商標です。  Windows、Internet Explorerは、米国 Microsoft Corporation の 米国およびその他の国における登録商標です。  JAVAは、米国ORACLE Corp.の登録商標です。  HTML5 Logo by W3C.  その他本文記載の会社名及び製品名は、 それぞれ各社の商標又は登録商標です。