有限会社ユニバーサル・シェル・プログラミング研究所

有限会社ユニバーサル・シェル・プログラミング研究所
© USP Lab. 2016
1
会社紹介(企業概要)
■企業概要
会社名
本社所在地
設立
役員
事業内容
:
:
:
:
:
有限会社ユニバーサル・シェル・プログラミング研究所
東京都港区
2005年4月
代表取締役所長
當仲 寛哲
ユニケージライセンスの販売、教育・出版事業、SI事業
■代表:當仲 寛哲(とうなか のぶあき)
略歴
講演実績
▼ USP研究所
: 1990年
1992年
2000年
2005年
: 2010年
2011年
2013年
東京大学卒業
株式会社ダイエー入社
流通科学大学非常勤講師(~2002年)
USP研究所を設立
Google Tech Talksにて講演
Agile Japan2011にて基調講演
MIT CRIBB
(Computing Resources in Boston and Beyond)にて講演
2014年 ビジネスブレークスルー(大前研一氏主催)ITライブ出演
ロゴの由来
ブライアン・カーニハン先生と
2014年 Googleオフィスにて
つくばい
当研究所のロゴマークは、京都の龍安寺にある蹲踞をモチーフとしています。
これは、水戸黄門こと徳川光圀が寄進したものと言われ、そこには「吾唯足知」(われた
だたるをしる)と刻まれています。
私たちUSP研究所は、「足るを知る者は貧しくても心は豊かであり、足るを知らぬ者は、
豊かと言えども心は貧しい」という禅の精神を伝えたこの“言葉”を掲げ、
知足の精神をもって、IT社会の適正な発展の一助を担いたいと願っています。
© USP Lab. 2016
2
USP研究所のミッションとユニケージ開発
USP研究所は
ITを活用して自社のビジネスを自ら主導するお客様のために
ユニケージ開発手法の研究・教育・事業をおこなっています。
研
教
究
事
育・普 及
業
ユニケージ開発手法とは UNIXの基本だけを使った極めてシンプルな仕組み
OS
データ
ソフトウェア
UNIX系OS (プログラム言語なしで様々な処理が可能)
テキストファイル
独自コマンドを用いたシェルスクリプト
(シェルコマンドは、ライトウェイト言語の源流と言えるインタプリタ)
やすい
コストが安い
プログラムが易しい
© USP Lab. 2016
はやい
開発期間が短い
処理が速い
やわら
かい
業務にあわせて
改変しやすい
3
ユニケージ開発手法によるシステム開発の特長
技術特長
導入メリット
短工期
短い
プログラム
お作法に
よる統制
保守
しやすい
ホワイト
ボックス
移植が
容易
UNIXの
基本に忠実
継続利用
が可能
高速処理
© USP Lab. 2016
開ンプ
発スロ
はがグ
弊でラ
社きム
がまの
サす習
ポ。得
ー が
ト 容
・ 易
教 で
育 自
い 社
た 開
し 発
ま ・
す メ
。 ン
テ
ナ
ビジネス現場からくる迅速な開発
要求にスピード感を持って対応で
きます。
従来ベンダーの開発に比べ、開
発・保守運用コストが格段に安く
できます。
パッケージのカスタマイズに比べ、
業務に合わせたシステム開発・改
変がしやすいです。
ビッグデータのバッチ処理・検索
を高速かつローコストに実現しま
す。
4
ユニケージ開発の例(早い、易しい)
総延長が長い順に、順位、会社名、総延長、車両数、駅数を出力しよう。
[元データ]
[出力結果]
ファイル名:OHTE_SHITETSU
# 1:会社名 2:本社所在地 3:設立年月日(yyyymmdd) 4:総延長(km) 5:車両数(両) 6:駅数
東武鉄道(東武) 東京都墨田区
西武鉄道(西武) 埼玉県所沢市
京成電鉄(京成) 千葉県市川市
京王電鉄(京王) 東京都多摩市
東京急行電鉄(東急) 東京都渋谷区
京浜急行電鉄(京急) 東京都港区
...
18971101 463.3 1962 203
19120507 179.8 1282 92
19090630 153.8 602 69
19480601 84.7
843 69
19220902 104.9 1204 98
19480601 87.0 782 73
1
2
3
4
5
6
7
8
近畿日本鉄道(近鉄)
東武鉄道(東武)
名古屋鉄道(名鉄)
東京地下鉄(東京メトロ)
西武鉄道(西武)
南海電気鉄道(南海)
京成電鉄(京成)
阪急電鉄(阪急)
Input
508.1
463.3
444.2
192.1
179.8
154.8
153.8
144.1
1,948
1,962
1,056
2,773
1,282
710
602
1,315
294
203
275
179
92
99
69
89
Output
[シェルスクリプトの内容] (ユニケージコマンド self, msort, juni, comma, keta )
#!/bin/bash
cat OHTE_SHITETSU
self 1 4 5 6
msort key=2nr
juni
comma 4
keta 2 -24 5 5 5
© USP Lab. 2016
|
|
|
|
|
・・・>フィールドの抽出 (左から1,4,5,6番目のフィールドを選択)
・・・>ソート上記の2番目(4)から2番目をn=数字r=逆ソート(降順)
・・・>順位番号をつける
・・・>4番目のデーターフィールド(車両数)にはカンマ付ける
・・・>桁揃え、2番目(会社名)を左詰め24文字、それ以降の総延長、
車両数、駅数は5桁ごと右寄せにする
5
COBOL vs ユニケージ:プログラム比較
売掛伝票消込処理(UTDE514)の一部を抜粋
COBOLのソースコード (サムアップとマッチング)
62行
000699
000700
000701
000702
000703
000704
000705
000706
000707
000708
000709
000710
000711
000712
000713
000714
000715
000716
000717
000718
000725
000726
000727
000728
000729
000730
000731
000732
000733
000734
000735
000736
000737
000738
000739
000740
000741
000742
000743
000744
000745
000746
000747
000748
000749
000750
000751
000752
000753
000754
000755
000756
000757
000758
000759
000760
000761
000762
000763
000764
000765
000766
1
2
2
2
2
3
2
3
2
2
2
1
1
1
1
1
1
1
2
2
2
2
2
3
2
3
2
2
2
2
2
2
2
2
1
2
2
2
2
1
© USP Lab. 2016
00254 ******************************************************************UTDE514
00255 *
DETAIL
*UTDE514
00256 ******************************************************************UTDE514
00257 2000-DETAIL
SECTION.
UTDE514
00258 *
UTDE514
00259
IF KEY-NEW-01
NOT = KEY-OLD-01
CL**4 212 219
00260
IF SC1
NOT = 1
CL**4 244
00261 *
売掛伝票のOPEN/CLOSE判定
CL*10
00262
COMPUTE W-CHK-AMT = TD463-CUST-PYMT OF W-TAIHI
CL*10 145 203 148
00263
+ W-CLEAR-AMT
CL*10 141
00264
IF W-CHK-AMT
= TD463-CUST-SALES-AMOUNT
CL*10 145 202
00265
OF W-TAIHI
CL*10 148
00266
MOVE '1'
TO W-CLEAR-FLG
CL*10 139
00267
ELSE
CL*10
00268
MOVE ZERO
TO W-CLEAR-FLG
CL*10 IMP 139
00269
END-IF
CL**8
00270 *
売掛伝票テーブル読込
CL**8
00271
PERFORM 7000-UTD000B-READ
CL**9 881
00272 *
売掛伝票テーブル更新
CL**8
00273
PERFORM 7100-UTD000B-UPDATE
CL**9 928
00280
END-IF
UTDE514
00281 *
キー退避、金額集計項目クリア
CL**6
00282
MOVE KEY-NEW
TO KEY-OLD
UTDE514 211 218
00283
MOVE DB0F-CUST-CLEAR-AMT
OF INPUT-AREA1
CL**6 94 64
00284
TO W-CLEAR-AMT
CL**6 141
00285
W-PYMT-CLEAR-AMT
CL**8 143
00286 *
売掛伝票消込データの退避
CL**6
00287
MOVE INPUT-AREA1
TO W-TAIHI
CL**5 64 148
00288
ELSE
UTDE514
00289
IF KEY-NEW NOT = KEY-OLD
CL**5 211 218
00290 *
売掛伝票のOPEN/CLOSE判定
CL**8
00291
COMPUTE W-CHK-AMT =
CL**6 145
00292
TD463-CUST-PYMT OF W-TAIHI
CL*10 203 148
00293
+ W-CLEAR-AMT
CL**6 141
00294
IF W-CHK-AMT
= TD463-CUST-SALES-AMOUNT
CL**6 145 202
00295
OF W-TAIHI
CL*10 148
00296
MOVE '1'
TO W-CLEAR-FLG
CL**6 139
00297
ELSE
CL**6
00298
MOVE ZERO TO W-CLEAR-FLG
CL**6 IMP 139
00299
END-IF
CL**6
00300 *
売掛伝票消込テーブル登録
CL**6
00301
PERFORM 7400-UTD000K-INSERT
CL**9 1063
00302 *
キー退避、金額集計項目クリア
CL**8
00303
MOVE KEY-NEW
TO KEY-OLD
CL**8 211 218
00304
MOVE DB0F-CUST-CLEAR-AMT OF INPUT-AREA1
CL**8 94 64
00305
TO W-PYMT-CLEAR-AMT
CL**8 143
00306
COMPUTE W-CLEAR-AMT = W-CLEAR-AMT
CL**8 141 141
00307
+ DB0F-CUST-CLEAR-AMT OF INPUT-AREA1
CL**8 94 64
00308 *
売掛伝票消込データの退避
CL**9
00309
MOVE INPUT-AREA1
TO W-TAIHI
CL**9 64 148
00310
ELSE
CL**8
00311
COMPUTE W-CLEAR-AMT = W-CLEAR-AMT
CL**8 141 141
00312
+ DB0F-CUST-CLEAR-AMT OF INPUT-AREA1
CL**8 94 64
00313
COMPUTE W-PYMT-CLEAR-AMT = W-PYMT-CLEAR-AMT
CL**8 143 143
00314
+ DB0F-CUST-CLEAR-AMT OF INPUT-AREA1
CL**8 94 64
00315
END-IF
CL**8
00316
END-IF
CL**8
00317 * 売掛伝票消込データを読込
CL**8
00318
PERFORM 8000-READ.
UTDE514 1130
00319 *
UTDE514
00320 2000-EXT.
UTDE514
00321
EXIT.
UTDE514
ユニケージのソースコード (サムアップとマッチング)
########################################################
# UTDE514 売掛伝票消込処理
########################################################
# UTDE510で作成した「売掛伝票消込データ」をチェックし、「売掛伝票テーブル」を更新する
tagself 現法コード 売掛先コード インボイス番号 インボイス日付 消込金額(顧客通貨) $cykd/510-514-ok |
tagmsort key=現法コード@売掛先コード@インボイス番号@インボイス日付
|
tagsm2 現法コード インボイス日付 消込金額(顧客通貨) 消込金額(顧客通貨)
|
tagcjoin1 +ng key=現法コード@売掛先コード@インボイス番号@インボイス日付 - $datd/URIKAKEDENPYO
8行
> $tmp-uriden-ok 2> $tmp-uriden-ng
ファイル単位の一括処理においてサムアップ
コマンドとマッチングコマンドを適用
行単位のループ処理においてサムアップと
マッチングのアルゴリズムをコードする
キー項目を指定して、指定事項をサムアップ
キー項目を指定して、2つのデータセットを結合
6
システム構築の期間とコストのイメージ
(人月)
一般的
な開発
 SE
 PG
 運用
工数単価比
(ウォーターフォール型)
トータル
コスト
40%に
圧縮
工数単価比
工数単価比
工数単価比
工数単価比
要件定義
設計
開発
テスト
(期間)
<リリース>
(人月)
ユニ
ケージ
松
竹
梅
期間
30%に
短縮
工数単価比
工数単価比
・トッパ工程
:全体の俯瞰 + 肝となる部分の開発
・データ基盤構築:社内データの分かりやすい整理
・アプリ開発
:お作法に従ったコンパクトなアプリ開発
工数単価比
工数単価比
内製メンバー(お客様)
トッパ工程
本開発
(データ基盤構築)
© USP Lab. 2016
(期間)
(アプリ開発) <デビュー>
7
ユニケージの適応分野と導入される理由
ユニケージ適応分野
・情報系システム構築
・DWHシステムの置き換え
・超高速BI
・超高速ログ解析
・超高速バッチ処理
・超高速ETLツール
(Extract/Transform/Load)
・基幹系システムの構築
・その他
ほとんどのデータ処理システムに
使えます。
ユニケージが導入される理由
・システム開発費用が従来型より1/4のコストで構築できる
システムコストの削減
© USP Lab. 2016
・データー処理が高速で処理できる
・大容量データ処理が速い
・ユニケージシステム開発の習得が容易
・普通のHWで基幹系・DWH系のシステムが構築できる
・システムの柔軟性が高い(システムの追加・変更が容易)
・ 運用コストも従来型の数分の1になる
8
ユニケージ採用企業の導入経緯
業種
会社名
エネルギー 東京電力
適用領域
導入の経緯と効果
テレコム 某携帯キャリア
スマートメーターの
・データ変換(ETL)
・電気使用量計算
携帯端末のログ分析
・現場が試行→ボトムアップで導入
・高速処理とコストパフォーマンスを評価
⇒ スマートメーターのデータ活用による新サービス提供
・大量データの処理方法を試行錯誤
・DBレスで高速処理を評価
⇒ 紛失携帯の探索サービスを強化、顧客サービス品質向上
製造
川重岐阜エンジ
ニアリング
製図情報分析
・情シでは捉えられないニーズ/分析アイデア
・分析方法を模索しながらシステム化
⇒ 出図までの期間短縮
医療
医用工学研究所
大学病院の医療費採 ・パッケージに存在しない機能
算管理
・スピードとコストを評価し、入札
・2人で短期開発
⇒ 他病院にも展開し比較分析可能に
宅配サービスの請求 ・2年間の基幹システム再構築のリリース3カ月前に速度問題
書作成バッチ
→1カ月で問題部分を置換え
⇒ 新基盤のリリースで新サービス提供
流通/小売 コープネット事
業連合
アパレル ワールド
CRM
サービス 某ぐるめサイト
検索ログ分析
© USP Lab. 2016
・パッケージで存在しない機能
⇒ ブランド統合→顧客カード・サービス統合
⇒ 複数ブランドをわたる商品提案
・多様かつ構造が変化するログデータの分析を試行錯誤
⇒ 顧客サービス品質向上
⇒ 新事業開発
9
ユニケージ採用企業
三菱東京UFJ銀行
でんさい、電手の帳票作成・検索システム
日本酒類販売
オープンCOBOLバッチ処理の
マイグレーション
良品計画
マーチャンダイジングシステム
本部-店舗間のコミュニケーションシステム
ウエルシアホールディングス
基幹システムのダウンサイジングと企業合併対応
KDDI
ARPU (携帯電話の収益性指標) の分析
システム開発
東急ハンズ
Web商品カタログ、プロモーション管理システム
などの店舗情報システム
サンエー
基幹システムのリプレース
三省堂書店
「クラブ三省堂」の会員購買分析システム
田中商事 (バラエティ雑貨の「Space TANAKA」)
情報系システムのマイグレーション
花王
ASP型研修施設予約システム
全日空商事
各空港店舗の売上分析システムのマイグレーション
再春館製薬所様
あきゅらいず
内製化による通販サイトの構築
販売実績集計システム
営業支援(購買履歴、営業活動)システム
阪急オアシス
ホールディングス統合DWH構築
成城石井
時間帯別販売分析・指示システム、
商品マスタ管理システム
イオンフォレスト(THE BODY SHOP)
ロッテリア
基幹システムのダウンサイジング(在庫管理・原価
計算・販売管理・物流・経理・店舗マスタなど)
日本農業新聞
過去5年16万記事(写真を含む)の完全全文検索
システム、市況情報サービスシステム
流通経済研究所
データ分析サービス用ツール「マーケターズ・デスク」
BIツール
© USP Lab. 2016
10
ユニケージ開発手法
製品ラインナップ
標準
usp Tukubai
クラスタ
usp BOA
統計
usp STAT
ユニケージ開発手法でOS標準のコマンドと組み合わせて使用する
USP研究所製のコマンドセットです。OS標準のコマンドセットでは不足している機能を
補ったり、プログラムを短く書くための工夫がなされています。高速処理も特長です。
ユニケージ開発手法でクラスタシステムを開発するためのコマンドセットです。
MapReduceなどの特別なプログラミングは不要。クラスタコマンドを使用して通常通り
スクリプトを記述するだけで、並列処理が実現します。
ユニケージ開発手法で統計解析処理を行うためのコマンドセットです。
データ分析言語「R」と同様の約80種類の基本的な統計手法をコマンド化。
usp Tukubaiと組み合わせてデータクレンジングからレポーティングの一連の処理を、
1つのスクリプトで高速実行できます。
個人向け
Personal
Tukubai
お試し
Open
usp Tukubai
© USP Lab. 2016
個人向けの、非商用・期間限定「usp Tukubai」です。
企業向けのコマンドセット「usp Tukubai」を、個人での独習用に安価でご提供しています。
Windows版、Mac版、Ubuntu版、CentOS版があります。
usp Tukubai の機能をPythonで実装したオープンソース版コマンド群です。
usp Tukubai でどんなことができるかを体験していただくために、フリーダウンロードで
ご提供しています。
11
ユニケージパートナー企業と海外進出
 日本
・開発パートナー企業:16社*
・認定ユニケージエンジニア数:378名*
<開発パートナー>
㈱エイチ・エル・シー
㈱ATGS
㈱SJI
㈱エム・アイ・ティ システム開発
㈱エムワン・コンサルティング
㈱エルアイン
㈱科学情報システムズ
GENCO OLIVEOIL㈱
再春館システム㈱
佐伯ITコンサルタンシー㈱
㈱新東京計算
鈴与シンワート㈱
㈱日本情報開発
日本NonStopイノベーション㈱
ハンズラボ㈱
メモリーハウス㈱
© USP Lab. 2016
<販売代理店>
アイ・ティー・サービス㈱
イージェネラ㈱
㈱医用工学研究所
㈱ATGS
㈱エム・アイ・ティ システム開発
㈱科学情報システムズ
サインポスト㈱
㈱Cスタジオ
㈱新東京計算
日本インサイトテクノロジー㈱
㈱日本情報開発
メモリーハウス㈱
2015年 海外代理店(USP Europe、USP NA)と提携
 ヨーロッパ
・ポルトガル DELTA Coffee 社へ導入
・ポルトガルの銀行、スペインの銀行、スイスの公共機
関での採用検討が進行中
 北米
・カナダ Deloitteでの採用決定
・公益企業での採用検討が進行中
 アジア・オセアニア
・2014年より 新モンゴル高等専門学校にユニケージ
技術情報・書籍を提供、UNIX技術の授業に採用
・2016年 Myanmar Gateway Glocal社とビジネス協業
とIT人材育成の覚書調印
*2016年10月時点。
認定エンジニアは技能検定合格者累計
12
研究活動
■早稲田大学理工学術院・山名早人教授とともに、最新鋭マルチコアマシンに大手流通企業の
協力のもと、同社のプログラムとデータを移植し、効率的な稼動環境に関する共同研究
<情処研報、Vol.2007,No.17,pp233-238,Hokke2007(2007.3.12)>で論文「マルチコアプロセッサ上における
シェルスプリクト高速化手法」を発表
■NEDO(独立行政法人 新エネルギー・産業技術総合開発機構)
「平成21年度第2回イノベーション推進事業」として「パイプライン計算機とユニケージによる
高速情報処理技術の実用化」研究
■東京大学大学院総合文化研究科 玉井研究室とシステム文化に関する共同研究
■東京大学情報理工学系研究科 江﨑研究室が設立したTクラウド研究会に参画
■慶応義塾大学環境情報学部 大岩研究室と日本語プログラミングの研究に協力
■名古屋大学大学院工学研究科 河口信夫研究室 震災時のデータ集約アプリケーション開発研究へ協力
■名古屋大学と位置情報サービス研究機構(Lisra)の研究に参画
■WIDEプロジェクト
2012夏期ボードメンバー合宿で「USP developing method」を発表
UNIXの基本機能を追究し、大規模企業システムに適用した手法として評価される
■東京農工大学 石井一夫特任教授
・シェルスクリプトによる生物化学用のデータ解析手法の開発およびデータ解析システムの構築に
関する共同研究(2014~2015)
・シェルスクリプトによる新規機械学習、予測分析システムの開発に関する共同研究(2016)
■マサチューセッツ工科大学(MIT)スローンマネジメントスクール
・ユニケージ開発手法によるビッグデータ分析に関する共同研究(2015)
・ユニケージ開発手法を例としてテクノロジーの普及・拡散を分析する共同研究(2016)
■金沢大学
電子教材の開発運用手法を適用した、ユニケージ開発手法の広範な展開方法に関する共同研究
© USP Lab. 2016
13
教育活動
■ユニケージ開発手法教育講座 http://www.usp-lab.com/LECTURE/CGI/LECTURE.CGI
ユニケージ開発手法を習得するための講座を定期的に開催しています。
□前提知識のフォローアップ講座
1.ユニケージのためのUNIX入門編
2.ユニケージのためのweb入門編
□ユニケージ開発手法基礎技術講座
1.ユニケージ基礎(前・後編)
2.Webアプリケーション編
3.バッチ処理編
4.ユニケージお作法編
5.ユニケージ開発環境セットアップ編
6.システム運用・管理編
7.速習:SQLからの移行編
8.ユニケージによる統計編
■ユニケージ開発手法 技能検定 http://www.usp-lab.com/exam.html
ユニケージエンジニアとしての知識量・問題解決能力を検定する試験です。
2級:シェルスクリプトとWeb技術を組み合わせたWebアプリ開発が出来る
1級:ユニケージを用いたシステムを一人で開発・構築できる
特級:実務経験に基づき、業務に合わせたユニケージシステムを提案・構築でき、プロジェクトをリードできる
© USP Lab. 2016
14
普及活動
■コミュニティ運営
・USP友の会:シェルスクリプトファンのためのコミュニティ活動
・TechLION:著名なエンジニアを招いたITトークライブ
・UEC(usp engineers’community):ユニケージエンジニア向けのサイト運営
■出版活動
・ソフトウェア開発の名著の復刊、及び
・ユニケージ開発手法など、IT関連書籍の発行
・月刊シェルスクリプトマガジン発行
■社外団体への参加
・NPO法人ビジネスシステムイニシアティブ協会(BSIA) 副理事長
・一般社団法人持続可能なモノづくり・人づくり支援協会(ESD21) 理事
・超高速開発コミュニティ 幹事
・US.Peace FARM に協賛:農業体験会、野菜頒布会、シェフズテーブルなどを実施
© USP Lab. 2016
15
本資料に関するお問い合わせは以下までお願い致します。
[email protected]
© USP Lab. 2016
16