miyako keisuke
宮古 啓介
software development tools for business applications
ビジネスアプリケーションのためのソフトウェア開発ツール
historique
沿革
historique
沿革
ABCBase est Créée par Laurent Ribardière
リバルディエールがファイル管理ソフトを作成(当時学生)
Analyse Conseils Informations est établie
ACI社設立(現4D)
ACIUS est établie
米国支社設立(Guy Kawasaki CEO)
'84
'85
'87
'99 4D Japon est établie
日本法人設立
historique
沿革
ABCBase est Créée par Laurent Ribardière
リバルディエールがファイル管理ソフトを作成(当時学生)
Analyse Conseils Informations est établie
ACI社設立(現4D)
ACIUS est établie
米国支社設立(Guy Kawasaki CEO)
'84
'85
'87
'99 4D Japon est établie
日本法人設立
'85 '15
4D
estannée
初
代
リ
リ
ー
ス
ServeurW
ebintégré
統
合
H
TTPサ
ー
バ
ー
M
ultiplateform
e
W
indow
s対
応
'97'95'89
Utilisationm
ultipostes
ク
ラ
イ
ア
ン
ト
/サ
ー
バ
ー
'03
W
ebServices
X
M
L
'13'07
GestionSVG
SV
G
'10
SupportPHP
PH
P
IntégrationdeW
ebKit
JavaScriptObjetsstructurésJSON
JSO
N
historique
沿革
ABCBase est Créée par Laurent Ribardière
リバルディエールがファイル管理ソフトを作成(当時学生)
Analyse Conseils Informations est établie
ACI社設立(現4D)
ACIUS est établie
米国支社設立(Guy Kawasaki CEO)
'84
'85
'87
'99 4D Japon est établie
日本法人設立
'85 '15
4D
estannée
初
代
リ
リ
ー
ス
ServeurW
ebintégré
統
合
H
TTPサ
ー
バ
ー
M
ultiplateform
e
W
indow
s対
応
'97'95'89
Utilisationm
ultipostes
ク
ラ
イ
ア
ン
ト
/サ
ー
バ
ー
'03
W
ebServices
X
M
L
'13'07
GestionSVG
SV
G
'10
SupportPHP
PH
P
IntégrationdeW
ebKit
JavaScriptObjetsstructurésJSON
JSO
N
プロフィール
• 主力商品は30年のロングセラー
• ビジネスアプリケーション開発ツール
évolution
変遷
'85 '15'97'95'89 '03 '13'07 '10
4D
estannée
初
代
リ
リ
ー
ス
ServeurW
ebintégré
統
合
H
TTPサ
ー
バ
ー
M
ultiplateform
e
W
indow
s対
応
Utilisationm
ultipostes
ク
ラ
イ
ア
ン
ト
/サ
ー
バ
ー
W
ebServices
X
M
L
GestionSVG
SV
G
SupportPHP
PH
P
IntégrationdeW
ebKit
JavaScriptObjetsstructurésJSON
JSO
N
初期 v1 (1985) ~ v6.8 (2001)
• マウス主体の簡単な操作体系
• データベース設計・入出力画面・帳票作成
• 便利な各種ツール
• ラベル・レポート・グラフ・読み込み・書き出し
• わかりやすいプログラミング言語
• 手続き型メソッド・直感的なクエリコマンド
évolution
変遷
'85 '15'97'95'89 '03 '13'07 '10
4D
estannée
初
代
リ
リ
ー
ス
ServeurW
ebintégré
統
合
H
TTPサ
ー
バ
ー
M
ultiplateform
e
W
indow
s対
応
Utilisationm
ultipostes
ク
ラ
イ
ア
ン
ト
/サ
ー
バ
ー
W
ebServices
X
M
L
GestionSVG
SV
G
SupportPHP
PH
P
IntégrationdeW
ebKit
JavaScriptObjetsstructurésJSON
JSO
N
évolution
変遷
'85 '15'97'95'89 '03 '13'07 '10
4D
estannée
初
代
リ
リ
ー
ス
ServeurW
ebintégré
統
合
H
TTPサ
ー
バ
ー
M
ultiplateform
e
W
indow
s対
応
Utilisationm
ultipostes
ク
ラ
イ
ア
ン
ト
/サ
ー
バ
ー
W
ebServices
X
M
L
GestionSVG
SV
G
SupportPHP
PH
P
IntégrationdeW
ebKit
JavaScriptObjetsstructurésJSON
JSO
N
évolution
変遷
'85 '15'97'95'89 '03 '13'07 '10
4D
estannée
初
代
リ
リ
ー
ス
ServeurW
ebintégré
統
合
H
TTPサ
ー
バ
ー
M
ultiplateform
e
W
indow
s対
応
Utilisationm
ultipostes
ク
ラ
イ
ア
ン
ト
/サ
ー
バ
ー
W
ebServices
X
M
L
GestionSVG
SV
G
SupportPHP
PH
P
IntégrationdeW
ebKit
JavaScriptObjetsstructurésJSON
JSO
N
現在 v2003 (2003) ~ v15 (2015)
• マウス主体の簡単な操作体系
• コンセプト実証・試作品・動作検証
• 外部技術を活用するための各種ツール
• XML・SVG・PHP・JavaScript・JSON
• 汎用的なプログラミング言語
• 細分化されたコマンド群・コンポーネント構造
évolution
変遷
'85 '15'97'95'89 '03 '13'07 '10
4D
estannée
初
代
リ
リ
ー
ス
ServeurW
ebintégré
統
合
H
TTPサ
ー
バ
ー
M
ultiplateform
e
W
indow
s対
応
Utilisationm
ultipostes
ク
ラ
イ
ア
ン
ト
/サ
ー
バ
ー
W
ebServices
X
M
L
GestionSVG
SV
G
SupportPHP
PH
P
IntégrationdeW
ebKit
JavaScriptObjetsstructurésJSON
JSO
N
évolution
変遷
'85 '15'97'95'89 '03 '13'07 '10
4D
estannée
初
代
リ
リ
ー
ス
ServeurW
ebintégré
統
合
H
TTPサ
ー
バ
ー
M
ultiplateform
e
W
indow
s対
応
Utilisationm
ultipostes
ク
ラ
イ
ア
ン
ト
/サ
ー
バ
ー
W
ebServices
X
M
L
GestionSVG
SV
G
SupportPHP
PH
P
IntégrationdeW
ebKit
JavaScriptObjetsstructurésJSON
JSO
N
昭和60年
• FileMakerと同年発売
• Macintoshプラットフォームで発展
comparaison
FileMakerとの比較
FileMaker 4D
クロスプラットフォーム ● ●
グラフィカルユーザーインターフェース ● ●
リレーショナルデータベース ● ●
手頃なライセンス費用 ● ●
リアルタイムに設計を変更・追加できること ● ●
comparaison
FileMakerとの比較
FileMaker 4D
クロスプラットフォーム ● ●
グラフィカルユーザーインターフェース ● ●
リレーショナルデータベース ● ●
手頃なライセンス費用 ● ●
リアルタイムに設計を変更・追加できること ● ●
モバイルクライアント ●
画面作成を支援するテーマ/テンプレート ●
トランザクショナルデータベース ●
本格的なプログラミング環境 ●
comparaison
FileMakerとの比較
comparaison
FileMakerとの比較
従来のデータベースシステム
•フロントエンド
• .NET, Java, Visual Basic, Cocoa, etc
•バックエンド
• SQL Server, PostgreSQL,Oracle Database
FileMaker/4D
•即時的なフロントエンド
• マウス操作でユーザーインターフェース作成
•統合されたバックエンド
• マウス操作でデータベース設計
comparaison
FileMakerとの比較
従来のデータベースシステム
•フロントエンド
• .NET, Java, Visual Basic, Cocoa, etc
•バックエンド
• SQL Server, PostgreSQL,Oracle Database
FileMaker
• ウィザートやテンプレートで画面を作成する
• スクリプト言語で処理を組み立てる
4D
• 画面や帳票はひとつずつ自作する
• プログラミング言語で処理を記述する
FileMaker/4D
•即時的なフロントエンド
• マウス操作でユーザーインターフェース作成
•統合されたバックエンド
• マウス操作でデータベース設計
comparaison
FileMakerとの比較
従来のデータベースシステム
•フロントエンド
• .NET, Java, Visual Basic, Cocoa, etc
•バックエンド
• SQL Server, PostgreSQL,Oracle Database
FileMaker
• ウィザートやテンプレートで画面を作成する
• スクリプト言語で処理を組み立てる
4D
• 画面や帳票はひとつずつ自作する
• プログラミング言語で処理を記述する
FileMaker/4D
•即時的なフロントエンド
• マウス操作でユーザーインターフェース作成
•統合されたバックエンド
• マウス操作でデータベース設計
4D
• 平易な操作で完了するのは大枠のみ
• 試作・実証と実装で異なる方法論
• プログラミングは必須(手作り感大)
FileMaker
• 徹底的にガイドされた開発環境
• 環境が提供する表現力の枠内でデザイン
• プログラミングは不要
particuliers
特徴
particuliers
特徴
ユーザー
一般
デベロッパー
開発者
パワーユーザー
上級者
particuliers
特徴
ユーザー
一般
デベロッパー
開発者
パワーユーザー
上級者
particuliers
特徴
ユーザー
一般
デベロッパー
開発者
パワーユーザー
上級者
典型的な4Dデベロッパーは『コンピューター好きの社員』出身。
4Dを始めてから本格的なプログラミングを習得した人が多い。
particuliers
特徴
ユーザー
一般
デベロッパー
開発者
パワーユーザー
上級者
典型的な4Dデベロッパーは『コンピューター好きの社員』出身。
4Dを始めてから本格的なプログラミングを習得した人が多い。
particuliers
特徴
particuliers
特徴
// リストフォームメソッド
Si (Evenement formulaire=Sur affichage corps)_
Si (Numero de ligne affichee%2=0)_
// 偶数行は白地に黒
OBJET FIXER COULEURS RVB([Table_1]Field_1;-1;0x00FFFFFF)_
Sinon_
// 奇数行は明るい青地に黒
OBJET FIXER COULEURS RVB([Table_1]Field_1;-1;0x00E0E0FF)_
Fin de si_
Fin de si_
フランス語でコードを記述
// リストフォームメソッド
Si (Evenement formulaire=Sur affichage corps)_
Si (Numero de ligne affichee%2=0)_
// 偶数行は白地に黒
OBJET FIXER COULEURS RVB([Table_1]Field_1;-1;0x00FFFFFF)_
Sinon_
// 奇数行は明るい青地に黒
OBJET FIXER COULEURS RVB([Table_1]Field_1;-1;0x00E0E0FF)_
Fin de si_
Fin de si_
particuliers
特徴
// リストフォームメソッド
If (Form event=On Display Detail)_
If (Displayed line number%2=0)_
// 偶数行は白地に黒
OBJECT SET RGB COLORS([Table_1]Field_1;-1;0x00FFFFFF)_
Else_
// 奇数行は明るい青地に黒
OBJECT SET RGB COLORS([Table_1]Field_1;-1;0x00E0E0FF)_
End if _
End if _
フランス語でコードを記述フランス語でコードを記述しなくても良い
particuliers
特徴
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
容量 (4D Server/4D Developer Professional)
• テーブル: 32,767
• フィールド: 32,767/テーブル
• レコード: 1,000,000,000/テーブル
データ型
• テキスト: 日本語形態素解析
• ピクチャー: IPTCキーワード
• オブジェクト: JSON Key-Value Pair
particuliers
特徴
日本語全文検索
particuliers
特徴
日本語全文検索
MECAB 和布蕪
• 概要: 形態素解析エンジン (http://ja.wikipedia.org/wiki/MeCab)
• バージョン: 0.996
• 辞書: jumandic 7.0-20130310/utf-8
particuliers
特徴
日本語全文検索
MECAB 和布蕪
• 概要: 形態素解析エンジン (http://ja.wikipedia.org/wiki/MeCab)
• バージョン: 0.996
• 辞書: jumandic 7.0-20130310/utf-8
1 テキストを形態素/品詞に分解
• 名詞/動詞/形容詞…キーワード
• 助詞/記号, etc…除外
• 接頭辞/接尾辞…文脈で判断
2 特定の接頭辞を連結
• 名詞接頭辞グループ
3 特定の接尾辞を連結
• 名詞接尾辞
• 動詞接尾辞
• 形容詞接尾辞
4 日本語キーワードインデックス作成
• 高速全文検索
particuliers
特徴
pos-id type sub-type
2
指示詞
副詞形態指示詞
3 名詞形態指示詞
4 連体詞形態指示詞
5
助詞
格助詞
6 終助詞
7 接続助詞
8 副助詞
9 助動詞
23
特殊
括弧始
24 括弧終
25 記号
26 句点
27 空白
28 読点
29 判定詞
12 接頭辞 ナ形容詞接頭辞
日本語全文検索
particuliers
特徴
pos-id type sub-type
31
名詞
サ変名詞
32 形式名詞
33 固有名詞
34 時相名詞
39 普通名詞
40 副詞的名詞
pos-id type sub-type
14
接頭辞
名詞接頭辞
12 ナ形容詞接頭辞
+
お隣の元アイドルが再デビュー
日本語全文検索
particuliers
特徴
pos-id type sub-type
2
指示詞
副詞形態指示詞
3 名詞形態指示詞
4 連体詞形態指示詞
5
助詞
格助詞
6 終助詞
7 接続助詞
8 副助詞
9 助動詞
23
特殊
括弧始
24 括弧終
25 記号
26 句点
27 空白
28 読点
29 判定詞
pos-id type sub-type
15
接尾辞
形容詞性述語接尾辞
16 形容詞性名詞接尾辞
17 動詞性接尾辞
19 名詞性特殊接尾辞
+
怒りっぽい人は友達ができにくいよ
今日限りで辞めさせていただきます。
pos-id type sub-type
17 接尾辞 動詞性接尾辞
22 動詞
pos-id type sub-type
9 助動詞
+
それはできません
日本語全文検索
particuliers
特徴
日本語全文検索
particuliers
特徴
日本語全文検索
テキストをキーワードに分解
GET TEXT KEYWORDS("見た目どおりに優れたコンピュータです。";$words)
particuliers
特徴
日本語
見た目
どおり
優れた
コンピュータ
英語
見
た
目
ど
お
り
に
優
れ
た
コンピュータ
で
す
ニュートラル
見た目どおりに優れたコンピュータです
日本語全文検索
テキストをキーワードに分解
GET TEXT KEYWORDS("見た目どおりに優れたコンピュータです。";$words)
particuliers
特徴
日本語
見た目
どおり
優れた
コンピュータ
英語
見
た
目
ど
お
り
に
優
れ
た
コンピュータ
で
す
ニュートラル
見た目どおりに優れたコンピュータです
日本語全文検索
demonstration
テキストをキーワードに分解
GET TEXT KEYWORDS("見た目どおりに優れたコンピュータです。";$words)
particuliers
特徴
ピクチャキーワード検索
particuliers
特徴
ピクチャキーワード検索
XMP ISO: Extensible Metadata Platform
• 概要: 電子文書内の情報 TIFF, EXIF, GPS, IPTC*
• インデックス: IPTC/keywords * 国際新聞電気通信評議会
• 形式: JPEG, TIFF
particuliers
特徴
ピクチャキーワード検索
XMP ISO: Extensible Metadata Platform
• 概要: 電子文書内の情報 TIFF, EXIF, GPS, IPTC*
• インデックス: IPTC/keywords * 国際新聞電気通信評議会
• 形式: JPEG, TIFF
キーワードで画像を検索
QUERY([Photo];[Photo]image;%;"子猫")
particuliers
特徴
ピクチャキーワード検索
XMP ISO: Extensible Metadata Platform
• 概要: 電子文書内の情報 TIFF, EXIF, GPS, IPTC*
• インデックス: IPTC/keywords * 国際新聞電気通信評議会
• 形式: JPEG, TIFF
キーワードで画像を検索
QUERY([Photo];[Photo]image;%;"子猫")
particuliers
特徴
オブジェクト属性値検索
particuliers
特徴
オブジェクト属性値検索
JSON JavaScript Object Notation
• 概要: JavaScriptオブジェクトの表記法を応用したデータ形式
• インデックス: Key-Value Pair
• 型: object, array, string, number, bool, null
particuliers
特徴
オブジェクト属性値検索
JSON JavaScript Object Notation
• 概要: JavaScriptオブジェクトの表記法を応用したデータ形式
• インデックス: Key-Value Pair
• 型: object, array, string, number, bool, null
ドット記法で属性を検索
QUERY BY ATTRIBUTE([Customer];[Customer]salesInfo;"lineItem[].qty";>;3)
particuliers
特徴
オブジェクト属性値検索
JSON JavaScript Object Notation
• 概要: JavaScriptオブジェクトの表記法を応用したデータ形式
• インデックス: Key-Value Pair
• 型: object, array, string, number, bool, null
{ "number" : "37584",
"customerID" : "1690",
"customerName" : "Bruce Wayne",
"subtotal" : 708350.00,
"salesTax" : 63751.50,
"total" : 772101.50,
"lineItem" : [ {"qty":4, "desc":"Cape", "price":699.00},
{"qty":6, "desc":"Cowl", "price":1195.00},
{"qty":3, "desc":"Boots", "price":395.00},
{"qty":1, "desc":"Batwing", "price":697199.00}
]
}
ドット記法で属性を検索
QUERY BY ATTRIBUTE([Customer];[Customer]salesInfo;"lineItem[].qty";>;3)
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
テキスト ボタングリッド
フィールド
グループボックス
変数
階層リスト
リストボックス
コンボボックス
ポップアップメニュー
階層ポップアップメニュー
ピクチャポップアップメニュー
ボタン
透明ボタン
ピクチャボタン
線
ラジオボタン
チェックボックス
進 インジケーター
ダイアル
ルーラー
四角
楕円
格子
スプリッター
タブコントロール
サブフォーム
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
テキスト ボタングリッド
フィールド
グループボックス
変数
階層リスト
リストボックス
コンボボックス
ポップアップメニュー
階層ポップアップメニュー
ピクチャポップアップメニュー
ボタン
透明ボタン
ピクチャボタン
線
ラジオボタン
チェックボックス
進 インジケーター
ダイアル
ルーラー
四角
楕円
格子
スプリッター
タブコントロール
サブフォーム
標準フォームオブジェクト
• データにバインドされたウィジェット
• ドラッグ/ドロップで配置
• チェックボックスで設定
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
テキスト ボタングリッド
フィールド
グループボックス
変数
階層リスト
リストボックス
コンボボックス
ポップアップメニュー
階層ポップアップメニュー
ピクチャポップアップメニュー
ボタン
透明ボタン
ピクチャボタン
線
ラジオボタン
チェックボックス
進 インジケーター
ダイアル
ルーラー
四角
楕円
格子
スプリッター
タブコントロール
サブフォーム
標準フォームオブジェクト
• データにバインドされたウィジェット
• ドラッグ/ドロップで配置
• チェックボックスで設定
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
テキスト
フィールド
変数
リストボックス
ポップアップメニュー
ボタン
ラジオボタン
チェックボックス
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
1. レイアウト
2. 設定
3. テスト
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
1. レイアウト
2. 設定
3. テスト
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
1. レイアウト
2. 設定
3. テスト
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
1. レイアウト
2. 設定
3. テスト
demonstration
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
QUERY([Table_1];[Table_1]ID=1)
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
QUERY([Table_1];[Table_1]ID=1)
コマンド名
区切り
パラメーター
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
QUERY([Table_1];[Table_1]ID=1)
コマンド名
区切り
パラメーター
$t:=Current time
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
QUERY([Table_1];[Table_1]ID=1)
コマンド名
区切り
パラメーター
$t:=Current time
関数名戻り値
代入
particuliers
特徴
QUERY([Table_1];[Table_1]ID=1)
$t:=Current time
4D LANGUAGE
particuliers
特徴
QUERY([Table_1];[Table_1]ID=1)
$t:=Current time
4D LANGUAGE
SQL
SELECT * FROM TABLE_1 INTO…
XML
DOM Parse XML source
Regular Expression
Match regex
PHP
PHP Execute
JavaScript
WA Evaluate javascript
SVG
SVG EXPORT TO PICTURE
JSON
JSON Stringify
SOAP
WEB SERVICE CALL
HTTP
HTTP Request
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
• リレーショナル
• トランザクショナル
• インデックス: テキスト/ピクチャ/オブジェクト
• マルチスレッド* 4D Server
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
• リレーショナル
• トランザクショナル
• インデックス: テキスト/ピクチャ/オブジェクト
• マルチスレッド* 4D Server
• データバインディング
• SVG
• WebKit
particuliers
特徴
データベースエンジン
グラフィカルユーザーインターフェース
プログラミング言語
• リレーショナル
• トランザクショナル
• インデックス: テキスト/ピクチャ/オブジェクト
• マルチスレッド* 4D Server
• データバインディング
• SVG
• WebKit
• 4D+α
exemples
デモンストレーション
base de données
データベースエンジン
demonstration
états
レポート
demonstration
GUI
グラフィカルユーザーインターフェース
demonstration
SVG
démo
IPTC: キーワードで画像を検索
demonstration
GUI
グラフィカルユーザーインターフェース
demonstration
JavaScript
démo
JavaScript: Google Mapsを表示する
demonstration
démo
C: QRコードを作成
C_TEXT($data)
C_PICTURE($picture)
$version:=1
$size:=3
$margin:=2
$dpi:=96
$picture:=QRCODE ("www.4D.com";
QR Format SVG;
QR Mode Unicode;
QR Correction Level L;
$version;$size;$margin;$dpi;$data)
demonstration
démo
C: HTMLをPDFに変換
demonstration
démo
JSON: ツイートのデータベース
demonstration
démo
モバイル
demonstration
réseau social
SNS
https://www.facebook.com/4DJAPAN
miyako kmiyako
miyako keisuke
宮古 啓介

初心者からプロフェッショナルまで~データベース開発ソフト4Dの魅力を徹底紹介~