Your SlideShare is downloading. ×
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
2012 keynote-2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2012 keynote-2

74

Published on

フォーディー・デベロッパー・カンファレンス in 東京秋葉原 …

フォーディー・デベロッパー・カンファレンス in 東京秋葉原
Part 3(2012年)

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
74
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ソースツールキット
  • 2. ソースツールキット 新しいコマンドテーマ (カテゴリー)
  • 3. METHOD METHOD METHOD METHOD METHOD METHOD METHOD METHOD METHOD METHOD GET PATHS RESOLVE PATH Get path GET NAMES GET NAMES FORM GET PATHS FORM GET MODIFICATION DA SET ACCESS MODE GET FOLDERS OPEN PATH ソースツールキット 新しいコマンドテーマ (カテゴリー)
  • 4. ソースツールキット •メソッド
  • 5. ソースツールキット • メソッド ‣ 全タイプ
  • 6. ソースツールキット • メソッド ‣ 全タイプ プロジェクトメソッド フォームメソッド オブジェクトメソッド トリガ データベースメソッド
  • 7. ソースツールキット • メソッド ‣ 全タイプ ‣ Get/Set
  • 8. ソースツールキット • メソッド ‣ 全タイプ ‣ Get/Set ‣ パス
  • 9. ソースツールキット • メソッド ‣ 全タイプ ‣ Get/Set ‣ パス "[Invoices]/input_form/save" "[trigger]/Invoices” "[databasemethod]/onSystemEvent"
  • 10. ソースツールキット •メソッド •コンテキスト
  • 11. ソースツールキット •メソッド コンテキスト ‣ フォルダ •
  • 12. ソースツールキット •メソッド コンテキスト ‣ フォルダ • ‣ フォーム名
  • 13. ソースツールキット •メソッド コンテキスト ‣ フォルダ • ‣ フォーム名 ‣ フィルタリング
  • 14. ソースツールキット •メソッド •コンテキスト
  • 15. ソースツールキット •メソッド •コンテキスト •コメント
  • 16. ソースツールキット •メソッド •コンテキスト •コメント 属性 •
  • 17. ソースツールキット •メソッド •コンテキスト •コメント 属性 •
  • 18. ソースツールキット •メソッド •コンテキスト •コメント 属性 • •*
  • 19. ソースツールキット •メソッド •コンテキスト •コメント 属性 • •*
  • 20. ソースツールキット •メソッド •コンテキスト •コメント 属性 • •* ! リモートモード でもOK!!
  • 21. ソースコードの取り出し • ソースツールキッド
  • 22. ソースコードの取り出し • ソースツールキッド • 任意のバージョンコントロールシステム
  • 23. ソースコードの取り出し • ソースツールキッド • 任意のバージョンコントロールシステム • バージョン管理 vs 履歴
  • 24. ソースツールキット 望み通りの開発ツールが設計できます。
  • 25. ソースツールキット 望み通りの 素晴らしい 開発ツールが設計できます。
  • 26. 新しいWebサーバー
  • 27. 新しいWebサーバー ベンチマーク
  • 28. _ _ _ 一 ど い , て 体 っ ? な の う る 新しいWebサーバー ベンチマーク な 驚異 的! !! い れ v13 Webサーバーは 超高速! ら じ 信 反 違 ド ー ピ ス ディ 15% ス 2月 カウ 1日 ン まで ト
  • 29. 新しいWebサーバー v12 vs v13
  • 30. 新しいWebサーバー v12 vs v13 (リクエスト/秒) 41 v12
  • 31. 新しいWebサーバー v12 vs v13 (リクエスト/秒) 169 41 v12 x4! v13
  • 32. 新しいWebサーバー
  • 33. 新しいWebサーバー モダンなデザイン
  • 34. 新しいWebサーバー モダンなデザイン • Unicode • Carbon 不使用 • プリエムプティブ • IPV6 • RFC準拠 •...
  • 35. Webサーバー再開発計画
  • 36. Webサーバー再開発計画 自作の強み •無駄を省いて高出力 •自由にチューニング •一体型
  • 37. Webサーバー再開発計画 必要に応えるものに •簡単 設定
 簡単 管理
 簡単 運用 •パフォーマンス重視
  • 38. ネットワークレイヤー
  • 39. ネットワークレイヤー Mac IPX AppleTalk
  • 40. ネットワークレイヤー Mac / Windows IPX AppleTalk TCP/IP
  • 41. ネットワークレイヤー Mac / Windows SSL IPX AppleTalk TCP/IP
  • 42. ネットワークレイヤー Mac / Windows SSL IPX AppleTalk TCP/IP
  • 43. ネットワークレイヤー • 機能の絞り込み: ‣ TCP/IP Mac / Windows ‣ POSIXソケット • • 保守の容易性 エラー処理 SSL IPX AppleTalk TCP/IP
  • 44. ネットワークレイヤー • 機能の絞り込み: ‣ TCP/IP ‣ POSIXソケット • エラー処理 • 保守の容易性 TCP/IP POSIXソケット
  • 45. 速度の追求
  • 46. 速度の追求 • 圧縮 ‣ gzip, 自動
  • 47. 速度の追求 • 圧縮 ‣ gzip, 自動 • キャッシュ
  • 48. 速度の追求 • 圧縮 ‣ gzip, 自動 • キャッシュ • プリエンムティブ
  • 49. v12 CPU Webサーバー CPU CPU CPU
  • 50. v12 CPU Webサーバー CPU CPU CPU
  • 51. v12 CPU Webサーバー CPU CPU CPU
  • 52. v13 CPU Webサーバー CPU CPU CPU
  • 53. v13 CPU Webサーバー CPU CPU CPU
  • 54. v13 CPU Webサーバー CPU CPU CPU
  • 55. リクエスト
  • 56. リクエスト
  • 57. リクエスト 解析 スタティック キャッシュのチェック (圧縮) 結果を送信 プリエムティブスレッド
  • 58. リクエスト 解析 スタティック ダイナミック キャッシュのチェック (圧縮) コオペラティブスレッドの プールに転送 完了するまで停止 結果を送信 プリエムティブスレッド
  • 59. v12 vs v13 ベンチマーク
  • 60. 新しいWebサーバー v12 vs v13 169 x4! 41 v12 v13
  • 61. 新しいWebサーバー v12 vs v13 スタティックページ 169 x4! 41 v12 v13 2 コア リクエスト/秒
  • 62. 新しいWebサーバー v12 vs v13 スタティックページ リクエスト/秒 169 x4! 41 v12 v13 2 コア v13 4 コア
  • 63. 新しいWebサーバー v12 vs v13 スタティックページ リクエスト/秒 482 x12! 169 x4! 41 v12 v13 2 コア v13 4 コア
  • 64. スタティック 対 ダイナミック
  • 65. スタティック 対 ダイナミック • スタティックリクエスト: スピード重視
  • 66. スタティック 対 ダイナミック • スタティックリクエスト: スピード重視 • テンプレート
  • 67. スタティック 対 ダイナミック • スタティックリクエスト: スピード重視 • テンプレート • PROCESS HTML TAGS
  • 68. スタティック 対 ダイナミック • スタティックリクエスト: スピード重視 • テンプレート • PROCESS HTML TAGS
  • 69. スタティック 対 ダイナミック • スタティックリクエスト: スピード重視 • テンプレート • PROCESS 4D TAGS
  • 70. コマンド
  • 71. コマンド • WEB get body parts count • WEB GET BODY PART
  • 72. 新しいWebサーバー まだまだ続く
  • 73. If($1="/cart@") GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if End if
  • 74. If($1="/cart@") GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if End if C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) ! $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 75. If($1="/cart@") GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if End if
  • 76. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if End if $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 77. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") web_DoNewSession End if End if $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 78. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") web_DoNewSession End if End if $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 79. If($1="/cart@") GET HTTP HEADER $idx:= If ($idx>0) T_sessionID:= End if If(T_sessionID="") web_DoNewSession End if End if C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) ! $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 80. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER web_DoNewSession $idx:= If ($idx>0) T_sessionID:= $L_custID:=web_L_CustIDFromQueryStr ($T_url) End if QUERY([Customers];[Customers]ID=$L_custID) If(T_sessionID="") CREATE RECORD([Orders]) web_DoNewSession [Orders]CustomerID:=$L_custID End if SAVE End if RECORD([Orders]) ! CREATE RECORD([Sessions])    //  UUIDは⾃自動的に発⾏行行される   SelectionsToSession ! SAVE RECORD([Sessions]) !    //  このセッションIDでクッキーをセット   T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 81. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER web_DoNewSession $idx:= If ($idx>0) T_sessionID:= $L_custID:=web_L_CustIDFromQueryStr ($T_url) End if QUERY([Customers];[Customers]ID=$L_custID) If(T_sessionID="") CREATE RECORD([Orders]) web_DoNewSession [Orders]CustomerID:=$L_custID End if SAVE End if RECORD([Orders]) ! CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession ! SAVE RECORD([Sessions]) ! // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 82. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER web_DoNewSession $idx:= If ($idx>0) T_sessionID:= $L_custID:=web_L_CustIDFromQueryStr ($T_url) End if QUERY([Customers];[Customers]ID=$L_custID) If(T_sessionID="") CREATE RECORD([Orders]) web_DoNewSession [Orders]CustomerID:=$L_custID End if SAVE End if RECORD([Orders]) ! CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession ! SAVE RECORD([Sessions])number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record ! LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... // LONGINT($rL_recNums;0) ARRAYSet a cookie with this session UID T_sessionID:=[Sessions]SessionUID VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*) $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 83. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") web_DoNewSession End if End if $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if
  • 84. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") ! web_DoNewSession End if ! ! End if $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession SAVE RECORD([Sessions]) // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... ARRAY LONGINT($rL_recNums;0) VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*)
  • 85. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") ! web_DoNewSession End if ! ! Case of : ($1="cart_addTo") Web_AddToCart($1) ! : (...その他...) ! End case End if $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession SAVE RECORD([Sessions]) // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... ARRAY LONGINT($rL_recNums;0) VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*)
  • 86. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") ! web_DoNewSession End if ! ! Case of : ($1="cart_addTo") Web_AddToCart($1) ! : (...その他...) ! End case End if $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession SAVE RECORD([Sessions]) // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... ARRAY LONGINT($rL_recNums;0) VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*)
  • 87. If($1="/cart@") GET HTTP HEADER $idx:= If ($idx>0) T_sessionID:= End if If(T_sessionID="") web_DoNewSession End if Case of : ($1="cart_addTo") Web_AddToCart ! : (...other cases...) ! End case End if C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) ! $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) ! ! ! CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession SAVE RECORD([Sessions]) // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... ARRAY LONGINT($rL_recNums;0) VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*)
  • 88. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) Web_AddToCart If($1="/cart@") ! GET HTTP HEADER $T_url:=$1 $idx:= $L_productID:=web_L_ProductIDFromQueryStr ($T_url) If ($idx>0) ARRAY LONGINT($rL_recNums;0) T_sessionID:= LONGINT End if ARRAY FROM SELECTION([OrderLines];$rL_recNums) ! If(T_sessionID="") ! CREATE RECORD([OrderLines]) web_DoNewSession [OrderLines]OrderID:=[Orders]ID End if ! ! [OrderLines]ProductID:=$L_productID Case of SAVE($1="cart_addTo") : RECORD([OrderLines]) APPEND TO ARRAY($rL_recNums;Record number([OrderLines])) Web_AddToCart ! CREATE SELECTION FROM ARRAY([OrderLines];$rL_recNums) : (...other cases...) ! SET BLOB End case SIZE([Sessions]Content;0) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... End if LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*) SAVE RECORD([Sessions]) ! ARRAY TEXT($rT_names;0) RELATE ONE SELECTION([OrderLines];[Products]) SELECTION TO ARRAY([Products]Name;$rT_names) .  .  .  カートの内容を更更新  .  .  . $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession SAVE RECORD([Sessions]) // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... ARRAY LONGINT($rL_recNums;0) VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*)
  • 89. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") ! web_DoNewSession End if ! ! Case of : ($1="cart_addTo") Web_AddToCart($1) ! : (...その他...) ! End case End if $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession SAVE RECORD([Sessions]) // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... ARRAY LONGINT($rL_recNums;0) VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*)
  • 90. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") ! web_DoNewSession End if ! ! Case of : ($1="cart_addTo") Web_AddToCart($1) ! : (...その他...) ! ! End case End if ! ! $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession SAVE RECORD([Sessions]) // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... ARRAY LONGINT($rL_recNums;0) VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*) $T_url:=$1 $L_productID:=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums;0) LONGINT ARRAY FROM SELECTION([OrderLines];$rL_recNums) CREATE RECORD([OrderLines]) [OrderLines]OrderID:=[Orders]ID [OrderLines]ProductID:=$L_productID SAVE RECORD([OrderLines]) APPEND TO ARRAY($rL_recNums;Record number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines];$rL_recNums) SET BLOB SIZE([Sessions]Content;0) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*) SAVE RECORD([Sessions]) ! ARRAY TEXT($rT_names;0) RELATE ONE SELECTION([OrderLines];[Products]) SELECTION TO ARRAY([Products]Name;$rT_names) . . . return the result . . .
  • 91. C_TEXT($1;$value) C_TEXT($0) C_LONGINT($L_pos1;$L_pos2) If($1="/cart@") ! GET HTTP HEADER($headers;$values) $idx:=Find in array($headers;"cookie") If ($idx>0) T_sessionID:=web_GetSessionCookie ($values{$idx}) End if If(T_sessionID="") ! web_DoNewSession End if ! ! Case of : ($1="cart_addTo") Web_AddToCart($1) ! : (...その他...) ! ! End case End if ! ! $value:=$1 $L_pos1:=Position("MYCOOKIE=";$value) If ($L_pos1>0) $L_pos2:=Position(";";$value;$L_pos1+1) If ($L_pos2>0) $0:=Substring($value;$L_pos1+11;$L_pos2-$L_pos1-1) Else $0:=Substring($value;$L_pos1+1) End if $0:=s_CleanupWebStr($0) End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) CREATE RECORD([Sessions]) // UUID is automatically generated SelectionsToSession SAVE RECORD([Sessions]) // Set a cookie with this session UID T_sessionID:=[Sessions]SessionUID $T_header:="Set-Cookie: MYCOOKIE="+ T_sessionID SET HTTP HEADER($T_header) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... ARRAY LONGINT($rL_recNums;0) VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*) $T_url:=$1 $L_productID:=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums;0) LONGINT ARRAY FROM SELECTION([OrderLines];$rL_recNums) CREATE RECORD([OrderLines]) [OrderLines]OrderID:=[Orders]ID [OrderLines]ProductID:=$L_productID SAVE RECORD([OrderLines]) APPEND TO ARRAY($rL_recNums;Record number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines];$rL_recNums) SET BLOB SIZE([Sessions]Content;0) LONGINT TO BLOB(Record number([Customers]);[Sessions]Content;... LONGINT TO BLOB(Record number([Orders]);[Sessions]Content;... VARIABLE TO BLOB($rL_recNums;[Sessions]Content;*) SAVE RECORD([Sessions]) ! ARRAY TEXT($rT_names;0) RELATE ONE SELECTION([OrderLines];[Products]) SELECTION TO ARRAY([Products]Name;$rT_names) . . . return the result . . .
  • 92. If($1="/cart@") If(T_sessionID#WEB Get current session ID) web_DoNewSession End if Case of : ($1="cart_addTo") Web_AddToCart($1) ! : (...その他...)   ! End case End if $L_custID:=web_L_CustIDFromQueryStr ($T_url) QUERY([Customers];[Customers]ID=$L_custID) CREATE RECORD([Orders]) [Orders]CustomerID:=$L_custID SAVE RECORD([Orders]) $T_url:=$1 $L_productID:=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums;0) LONGINT ARRAY FROM SELECTION([OrderLines];$rL_recNums) ! CREATE RECORD([OrderLines]) [OrderLines]OrderID:=[Orders]ID [OrderLines]ProductID:=$L_productID SAVE RECORD([OrderLines]) APPEND TO ARRAY($rL_recNums;Record number([OrderLines])) ! ! CREATE SELECTION FROM ARRAY([OrderLines];$rL_recNums) ARRAY TEXT($rT_names;0) SELECTION TO ARRAY([Products]Name;$rT_names) . . . return the result . . .
  • 93. セッション管理
  • 94. セッション管理 • 自動処理 • 各種設定 • WEB GET/SET OPTION • • Webserver • Webserver • Webserver • Webserver 微調整も Keep session inactive session timeout Max sessions Session cookie name • WEB CLOSE SESSION • データベースメソッド On Web Session Suspend
  • 95. v13 新しいWebサーバー • モダンでスタイリッシュ • 簡単 ∼セットアップから運用まで∼ • パフォーマンス重視 • セッション管理
  • 96. 新しいWebサーバー
  • 97. とにかくスゴイ!
  • 98. HTTP クライアント
  • 99. HTTP クライアント
  • 100. HTTP クライアント •HTTP Get
  • 101. HTTP クライアント •HTTP Get $resp:=HTTP Get($url;$result)
  • 102. HTTP クライアント •HTTP Get
  • 103. HTTP クライアント •HTTP •HTTP Get Request
  • 104. HTTP クライアント •HTTP •HTTP Get Request DELETE GET HEAD OPTIONS POST PUT TRACE
  • 105. HTTP クライアント •HTTP •HTTP •HTTP Get Request GET/SET OPTION
  • 106. HTTP クライアント •HTTP Get •HTTP Request •HTTP GET/SET OPTION •認証,プロキシ(システム設定)
  • 107. HTTP クライアント デモンストレーション
  • 108. HTTP クライアント
  • 109. HTTP クライアント とっても簡単!
  • 110. HTTP クライアント
  • 111. 新しいWebサーバー HTTP クライアント

×