SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Kaleidox
The Action Language for Cloud Application
2019年6⽉14⽇
Everfoth CTO
浅海智晴
⾃⼰紹介
• 1985年富⼠通(株)⼊社
• UNIXワークステーション/サーバーのOS、分散基盤、Web基盤の開発に従事
• 2001年9⽉に独⽴
• Java, XML, UMLを中⼼に活動
• 2005年4⽉より2008年3⽉まで
• 稚内北星学園⼤学東京サテライト校教授
• UML/Java向けの開発⽅法論
• 2012年9⽉にEverforthに参画
• 現在
• (株) Everforth CTO
• OSS
• SmartDoc
• Relaxer
• SimpleModeler
• 著作
• 上流⼯程UMLモデリング (⽇経BP)
• マインドマップではじめるモデリング講座 (翔泳社)
• Relaxer Java/XMLによるWeb開発 (ピアソン)
• XML SmartDoc公式リファレンスマニュアル (ピアソン)
• ぼくらのScala (Softbank Creative)
著作
App / Web
最適なUXを実現するアプリ/Webサイトを高速開発
Prefer Cloud Platformならオムニチャネル、パーソナライズといったCRO施策を実践するアプリ、Webサイトを高速に開発できます。
また、APIを自由に利用したカスタマイズも際限なくできるので、自社の顧客が求めるニーズを捉えたオリジナルかつ最高のUXを提供することができます。
Communication
メール/PUSHを統合配信
チャットにも対応
Prefer Cloud Platformのメッセー
ジング機能では、メール/PUSH/独
自メッセージを統合配信できます。
ターゲティング機能を利用して、セ
グメントした顧客に最適な情報を最
適な方法で提供することができ、
LTVの向上が図れます。
配信は、メール/PUSHともに100
万通/時間で高速配信が可能です。
また、チャット機能を利用すれば、
ロイヤルカスタマーに対してより丁
寧で密な対応が可能です。
Analytics
APIログを正規化して格納
統合的な分析を手軽に実現
Prefer Cloud Platformでは、API
レベルのログをすべて正規化し保
管しています。これにより、アプ
リ、Webサイト、店舗、メールな
ど顧客体験のあらゆるタッチポイ
ントを統合的に分析ができます。
LTVにおけるKPIをレポート表示す
るだけでなく、BIを用いた分析も
手軽に実現できるようBI向けの専
用DBも用意しています。
アプリ/Webサイトで利用するため
のLike数、Follow数などの集計も
汎用的な基盤で用意されています。
Data Coordination
オムニチャネルに不可欠なデータ連携を手軽に実現
Prefer Cloud Platformでは、オムニチャネル施策を進めるときに常に課題となるデータ
連携を容易にすべく、会員、商品、在庫など主立ったデータの連携フォーマットを揃えて
います。定義されたフォーマットでファイルを送るだけでオムニチャネルが実現します。
Optimization MA
LTV向上に直結する最適化をテクノロジーで自動化
PUSHをアクセス頻度に合わせてフィルタリングする、顧客をセグメントし最適なコンテン
ツ一覧を表示する、最適なタイミングでメッセージを配信する、などLTV向上に不可欠な施
策をPrefer Cloud Platformの独自テクノロジーが自動化して実施します。
Customer Relationship Optimization
Application Cloud Platform
CROACP
Webサイト
• Prefer Cloud Platform
• https://prefer.cl/
• Modegramming Styleブログ
• https://modegramming.blogspot.com/
• SlideShare
• https://www.slideshare.net/asami224/presentations
• GitHub
• https://github.com/asami/kaleidox
• https://github.com/asami/smartdox
• https://github.com/asami/simplemodeler
• https://github.com/asami/relaxer
• https://github.com/asami/xmlsmartdoc
クラウド時代のモデル駆動開発
Vision
• ビジネスアイデアをサクッとシステム化
Goal
• クラウドアプリケーション向けモデル駆動開発を離陸させる
• モデル駆動と連携するCloud Application Platform
• Prefer Cloud Platform(Everforth)で実現
• モデルコンパイラ/インタープリター
• 静的構造モデル (データモデル)、状態機械モデル、ルールモデル
• SimpleModeler
• ⽂書モデル管理
• ⾃然⾔語とオブジェクトモデルとの連携
• ⽤語集、バリデーション
• Smartdox
• アクション⾔語
• Kaleidox
• モデル駆動と連携するWebフレームワーク
• Arcadia
• 開発⽅法論
• SimpleModeling
Backgrounds
• モデリング不在開発
• 画⾯駆動開発 (WireFrame + Web開発)
• 要件定義不⾜で様々な問題
• 成り⾏きアーキテクチャ
• 移植/横展開開発
• ⾮機能要件
• モデリング技術の機能不全
• Lost technology
• プログラミングとの連携不全
• Cloud Application
• 要件が複雑化 (⼤規模、即応性、⾮同期、分散)
• CQRS, Event Sourcing, Reactive Streams
• Orchestration
Needs
• Cloud Application Platform
• Prefer Cloud Platform (Everforth)
• ⾏列演算
• 分散データ演算
• ⾒える化
• Logging
• 各種Metrics
• Chart
• Reactive Streams
• AI
• IoT
Seeds
• Java/Scala Best Practice
• ⼊出⼒ (ETL)
• Regular expression
• XML, JSON
• JXPath
• Expression Language
• ScriptEngine
• Logging
• 時間処理
• Camel
• Spark
• Object-Functional Programming (OFP)
• Reactive Steams
• EIP (Enterprise Integration Patterns)
Solution
• 伝票指向アーキテクチャ
• http://tanakakoichi9230.hatenablog.com/entry/20190122/1548160252?fb
clid=IwAR15D6_U0JrKWlUYzazHiElSysj3_Oq8reBkjuwnnLh-
zgS4KT6rjvqa73c
• Action Language
• Record/Table Oriented
• Reactive Streams
• Model-Based
• DDD
• Rule
• Pipeline-Orienged Programming
• EIP (Enterprise-Integration Patterns)
• Reactive streams
• Monadic programming
モデル駆動開発
[資料] Modeling体系の拡張
• OFP (Object-Functional Programming)
• OFAD (Object-Functional Analysis and Design)
• Functional Reactive Programming
• Reactive Streams
• EIP (Enterprise Integration Patterns)
• DDD (Domain-Driven Design)
• Rule
• Functional
• AI
• Feedback loop
• CQRS
• Derived model
• Dynamic behavior
Action Languageの要件
Products
Kaleidox
Kaleidox Concept
• Lisp + Unix Shell + COBOL + Forth
• Modegramming + Literature programming + Object-
Functional Programming
• Action Language
• モデル駆動開発
• Executable UML
• Record/Table Oriented
• Glue Programming
• Pipeline Programming
• Application Framework
Solutions
• ⽇々の開発作業の中で複数の⽤途をワンストップで解決
• Cloud Application Platformとシームレスな連携
Use Cases
• 作業⽤シェル
• Modegrammerʼs workbench
• Test driver
• Web application logic
• Reactive stream logic
• REST service logic
• Shell command
• Model Compiler/Interpreter
• Application Framework
Kaleidox REPL
kaleidox> (+ 1 2)
3
kaleidox> + 1 2
3
kaleidox> 1
1
kaleidox> 2
2
kaleidox> +
3
kaleidox> https://www.tetsudo.com/traffic/
<html lang="ja"><head>n<meta charset="UTF-8"/>n<meta content="IE=edge" ht...
kaleidox> table-make
Table(Vector(Record(Vector(Field('会社・エリア名,SingleValue(東海道新幹線),MetaData(No...
kaleidox>
Kaleidoxプログラム
* env
db.default.driver="org.h2.Driver"
db.default.url="jdbc:h2:mem:"
* voucher
** user
#+caption: 特性⼀覧
| 特性 | 名前 | 型 | 多重度 | ラベル |
|------+------+--------+--------+---------|
| 属性 | id | int | 1 | User ID |
| 属性 | name | string | 1 | 名前 |
| 属性 | age | int | ? | 年齢 |
* main
(store-query 'user nil)
Usage : Reference Architectures
まとめ
• クラウド時代のモデル駆動開発のミッシングリングを埋める
キーテクノロジーはアクション⾔語(?)
• アクション⾔語としてKaleidoxを開発中
• 興味のある⽅はブログやGitHubをウォッチしてみてください
• https://modegramming.blogspot.com/
• https://github.com/asami/kaleidox

Weitere ähnliche Inhalte

Ähnlich wie Kaleidox

Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingTomoharu ASAMI
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Tomoharu ASAMI
 
最近のWeb関連技術の動向あれこれ
最近のWeb関連技術の動向あれこれ最近のWeb関連技術の動向あれこれ
最近のWeb関連技術の動向あれこれdsuke Takaoka
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門VirtualTech Japan Inc.
 
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】Tomoharu ASAMI
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介Akira Tanaka
 
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】Tomoharu ASAMI
 
これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2
これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2
これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2智治 長沢
 
これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値
これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値
これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値ricksoftKK
 
DOO-005_裏 Inside Azure ~OSS 視点で理解する、Azure のテクノロジ & アーキテクチャ~
DOO-005_裏 Inside Azure ~OSS 視点で理解する、Azure のテクノロジ & アーキテクチャ~DOO-005_裏 Inside Azure ~OSS 視点で理解する、Azure のテクノロジ & アーキテクチャ~
DOO-005_裏 Inside Azure ~OSS 視点で理解する、Azure のテクノロジ & アーキテクチャ~decode2016
 
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugSAKURUG co.
 
機械学習基盤として活用するAutonomous Database
機械学習基盤として活用するAutonomous Database機械学習基盤として活用するAutonomous Database
機械学習基盤として活用するAutonomous DatabaseKenichi Sonoda
 
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へオブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へEverforth Co., Ltd.
 
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...オラクルエンジニア通信
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要かHiromasa Oka
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説Daisuke Nishino
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話Daisuke Hiraoka
 

Ähnlich wie Kaleidox (20)

Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
 
Oracle APEX概要
Oracle APEX概要Oracle APEX概要
Oracle APEX概要
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
 
最近のWeb関連技術の動向あれこれ
最近のWeb関連技術の動向あれこれ最近のWeb関連技術の動向あれこれ
最近のWeb関連技術の動向あれこれ
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
設計/ドメイン設計(4) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第26回】
 
これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2
これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2
これからのソフトウェア開発におけるプロジェクト管理の展望 Episode 2
 
これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値
これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値
これからのソフトウェア開発でのプロジェクト管理の展望 ~アトラシアン製品の価値
 
DOO-005_裏 Inside Azure ~OSS 視点で理解する、Azure のテクノロジ & アーキテクチャ~
DOO-005_裏 Inside Azure ~OSS 視点で理解する、Azure のテクノロジ & アーキテクチャ~DOO-005_裏 Inside Azure ~OSS 視点で理解する、Azure のテクノロジ & アーキテクチャ~
DOO-005_裏 Inside Azure ~OSS 視点で理解する、Azure のテクノロジ & アーキテクチャ~
 
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurug
 
機械学習基盤として活用するAutonomous Database
機械学習基盤として活用するAutonomous Database機械学習基盤として活用するAutonomous Database
機械学習基盤として活用するAutonomous Database
 
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へオブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ
 
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
[Modern Cloud Day Tokyo 2019] Oracle Functions = サーバーレス × Dockerコンテナ:AWS Lamb...
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
 

Mehr von Tomoharu ASAMI

テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】Tomoharu ASAMI
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】Tomoharu ASAMI
 
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】Tomoharu ASAMI
 
設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】
設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】
設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】Tomoharu ASAMI
 
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】Tomoharu ASAMI
 
設計/ドメイン設計(5) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第27回】
設計/ドメイン設計(5) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第27回】設計/ドメイン設計(5) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第27回】
設計/ドメイン設計(5) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第27回】Tomoharu ASAMI
 
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】Tomoharu ASAMI
 
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】Tomoharu ASAMI
 
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】Tomoharu ASAMI
 
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】Tomoharu ASAMI
 
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】Tomoharu ASAMI
 
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】Tomoharu ASAMI
 
設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第18回】
設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第18回】設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第18回】
設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第18回】Tomoharu ASAMI
 
分析/イベント駆動 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第17回】
分析/イベント駆動 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第17回】分析/イベント駆動 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第17回】
分析/イベント駆動 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第17回】Tomoharu ASAMI
 
分析/コンポーネント分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第16回】
分析/コンポーネント分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第16回】分析/コンポーネント分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第16回】
分析/コンポーネント分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第16回】Tomoharu ASAMI
 
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】Tomoharu ASAMI
 
要求/シナリオ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第14回】
要求/シナリオ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第14回】要求/シナリオ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第14回】
要求/シナリオ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第14回】Tomoharu ASAMI
 
要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】
要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】
要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】Tomoharu ASAMI
 
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】Tomoharu ASAMI
 
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】Tomoharu ASAMI
 

Mehr von Tomoharu ASAMI (20)

テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
 
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
 
設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】
設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】
設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】
 
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
設計/原理 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第28回】
 
設計/ドメイン設計(5) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第27回】
設計/ドメイン設計(5) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第27回】設計/ドメイン設計(5) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第27回】
設計/ドメイン設計(5) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第27回】
 
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
 
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
設計/ドメイン設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第24回】
 
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
設計/ドメイン設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第23回】
 
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
設計/コンポーネント設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第22回】
 
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
 
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
設計/コンポーネント設計(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第20回】
 
設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第18回】
設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第18回】設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第18回】
設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第18回】
 
分析/イベント駆動 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第17回】
分析/イベント駆動 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第17回】分析/イベント駆動 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第17回】
分析/イベント駆動 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第17回】
 
分析/コンポーネント分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第16回】
分析/コンポーネント分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第16回】分析/コンポーネント分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第16回】
分析/コンポーネント分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第16回】
 
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
 
要求/シナリオ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第14回】
要求/シナリオ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第14回】要求/シナリオ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第14回】
要求/シナリオ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第14回】
 
要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】
要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】
要求/ユースケース 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第13回】
 
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
 
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
ビジネス・モデリング 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第11回】
 

Kaleidox

  • 1. Kaleidox The Action Language for Cloud Application 2019年6⽉14⽇ Everfoth CTO 浅海智晴
  • 2. ⾃⼰紹介 • 1985年富⼠通(株)⼊社 • UNIXワークステーション/サーバーのOS、分散基盤、Web基盤の開発に従事 • 2001年9⽉に独⽴ • Java, XML, UMLを中⼼に活動 • 2005年4⽉より2008年3⽉まで • 稚内北星学園⼤学東京サテライト校教授 • UML/Java向けの開発⽅法論 • 2012年9⽉にEverforthに参画 • 現在 • (株) Everforth CTO • OSS • SmartDoc • Relaxer • SimpleModeler • 著作 • 上流⼯程UMLモデリング (⽇経BP) • マインドマップではじめるモデリング講座 (翔泳社) • Relaxer Java/XMLによるWeb開発 (ピアソン) • XML SmartDoc公式リファレンスマニュアル (ピアソン) • ぼくらのScala (Softbank Creative)
  • 4. App / Web 最適なUXを実現するアプリ/Webサイトを高速開発 Prefer Cloud Platformならオムニチャネル、パーソナライズといったCRO施策を実践するアプリ、Webサイトを高速に開発できます。 また、APIを自由に利用したカスタマイズも際限なくできるので、自社の顧客が求めるニーズを捉えたオリジナルかつ最高のUXを提供することができます。 Communication メール/PUSHを統合配信 チャットにも対応 Prefer Cloud Platformのメッセー ジング機能では、メール/PUSH/独 自メッセージを統合配信できます。 ターゲティング機能を利用して、セ グメントした顧客に最適な情報を最 適な方法で提供することができ、 LTVの向上が図れます。 配信は、メール/PUSHともに100 万通/時間で高速配信が可能です。 また、チャット機能を利用すれば、 ロイヤルカスタマーに対してより丁 寧で密な対応が可能です。 Analytics APIログを正規化して格納 統合的な分析を手軽に実現 Prefer Cloud Platformでは、API レベルのログをすべて正規化し保 管しています。これにより、アプ リ、Webサイト、店舗、メールな ど顧客体験のあらゆるタッチポイ ントを統合的に分析ができます。 LTVにおけるKPIをレポート表示す るだけでなく、BIを用いた分析も 手軽に実現できるようBI向けの専 用DBも用意しています。 アプリ/Webサイトで利用するため のLike数、Follow数などの集計も 汎用的な基盤で用意されています。 Data Coordination オムニチャネルに不可欠なデータ連携を手軽に実現 Prefer Cloud Platformでは、オムニチャネル施策を進めるときに常に課題となるデータ 連携を容易にすべく、会員、商品、在庫など主立ったデータの連携フォーマットを揃えて います。定義されたフォーマットでファイルを送るだけでオムニチャネルが実現します。 Optimization MA LTV向上に直結する最適化をテクノロジーで自動化 PUSHをアクセス頻度に合わせてフィルタリングする、顧客をセグメントし最適なコンテン ツ一覧を表示する、最適なタイミングでメッセージを配信する、などLTV向上に不可欠な施 策をPrefer Cloud Platformの独自テクノロジーが自動化して実施します。 Customer Relationship Optimization Application Cloud Platform CROACP
  • 5. Webサイト • Prefer Cloud Platform • https://prefer.cl/ • Modegramming Styleブログ • https://modegramming.blogspot.com/ • SlideShare • https://www.slideshare.net/asami224/presentations • GitHub • https://github.com/asami/kaleidox • https://github.com/asami/smartdox • https://github.com/asami/simplemodeler • https://github.com/asami/relaxer • https://github.com/asami/xmlsmartdoc
  • 8. Goal • クラウドアプリケーション向けモデル駆動開発を離陸させる • モデル駆動と連携するCloud Application Platform • Prefer Cloud Platform(Everforth)で実現 • モデルコンパイラ/インタープリター • 静的構造モデル (データモデル)、状態機械モデル、ルールモデル • SimpleModeler • ⽂書モデル管理 • ⾃然⾔語とオブジェクトモデルとの連携 • ⽤語集、バリデーション • Smartdox • アクション⾔語 • Kaleidox • モデル駆動と連携するWebフレームワーク • Arcadia • 開発⽅法論 • SimpleModeling
  • 9. Backgrounds • モデリング不在開発 • 画⾯駆動開発 (WireFrame + Web開発) • 要件定義不⾜で様々な問題 • 成り⾏きアーキテクチャ • 移植/横展開開発 • ⾮機能要件 • モデリング技術の機能不全 • Lost technology • プログラミングとの連携不全 • Cloud Application • 要件が複雑化 (⼤規模、即応性、⾮同期、分散) • CQRS, Event Sourcing, Reactive Streams • Orchestration
  • 10. Needs • Cloud Application Platform • Prefer Cloud Platform (Everforth) • ⾏列演算 • 分散データ演算 • ⾒える化 • Logging • 各種Metrics • Chart • Reactive Streams • AI • IoT
  • 11. Seeds • Java/Scala Best Practice • ⼊出⼒ (ETL) • Regular expression • XML, JSON • JXPath • Expression Language • ScriptEngine • Logging • 時間処理 • Camel • Spark • Object-Functional Programming (OFP) • Reactive Steams • EIP (Enterprise Integration Patterns)
  • 12. Solution • 伝票指向アーキテクチャ • http://tanakakoichi9230.hatenablog.com/entry/20190122/1548160252?fb clid=IwAR15D6_U0JrKWlUYzazHiElSysj3_Oq8reBkjuwnnLh- zgS4KT6rjvqa73c • Action Language • Record/Table Oriented • Reactive Streams • Model-Based • DDD • Rule • Pipeline-Orienged Programming • EIP (Enterprise-Integration Patterns) • Reactive streams • Monadic programming
  • 14. [資料] Modeling体系の拡張 • OFP (Object-Functional Programming) • OFAD (Object-Functional Analysis and Design) • Functional Reactive Programming • Reactive Streams • EIP (Enterprise Integration Patterns) • DDD (Domain-Driven Design) • Rule • Functional • AI • Feedback loop • CQRS • Derived model • Dynamic behavior
  • 18. Kaleidox Concept • Lisp + Unix Shell + COBOL + Forth • Modegramming + Literature programming + Object- Functional Programming • Action Language • モデル駆動開発 • Executable UML • Record/Table Oriented • Glue Programming • Pipeline Programming • Application Framework
  • 20. Use Cases • 作業⽤シェル • Modegrammerʼs workbench • Test driver • Web application logic • Reactive stream logic • REST service logic • Shell command • Model Compiler/Interpreter • Application Framework
  • 21. Kaleidox REPL kaleidox> (+ 1 2) 3 kaleidox> + 1 2 3 kaleidox> 1 1 kaleidox> 2 2 kaleidox> + 3 kaleidox> https://www.tetsudo.com/traffic/ <html lang="ja"><head>n<meta charset="UTF-8"/>n<meta content="IE=edge" ht... kaleidox> table-make Table(Vector(Record(Vector(Field('会社・エリア名,SingleValue(東海道新幹線),MetaData(No... kaleidox>
  • 22. Kaleidoxプログラム * env db.default.driver="org.h2.Driver" db.default.url="jdbc:h2:mem:" * voucher ** user #+caption: 特性⼀覧 | 特性 | 名前 | 型 | 多重度 | ラベル | |------+------+--------+--------+---------| | 属性 | id | int | 1 | User ID | | 属性 | name | string | 1 | 名前 | | 属性 | age | int | ? | 年齢 | * main (store-query 'user nil)
  • 23. Usage : Reference Architectures
  • 24. まとめ • クラウド時代のモデル駆動開発のミッシングリングを埋める キーテクノロジーはアクション⾔語(?) • アクション⾔語としてKaleidoxを開発中 • 興味のある⽅はブログやGitHubをウォッチしてみてください • https://modegramming.blogspot.com/ • https://github.com/asami/kaleidox