Top Banner
ソースツールキット
112

2012 keynote-2

Jun 19, 2015

Download

Technology

kmiyako

フォーディー・デベロッパー・カンファレンス in 東京秋葉原
Part 3(2012年)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2012 keynote-2

ソースツールキット

ソースツールキット

新しいコマンドテーマ (カテゴリー)

ソースツールキットMETHOD GET PATHS METHOD RESOLVE PATH METHOD Get path METHOD GET NAMES METHOD GET NAMES FORM METHOD GET PATHS FORM METHOD GET MODIFICATION DATE METHOD SET ACCESS MODE METHOD GET FOLDERS METHOD OPEN PATH

新しいコマンドテーマ (カテゴリー)

ソースツールキットbullメソッド

ソースツールキット全タイプbullメソッド

ソースツールキット全タイプbullメソッド プロジェクトメソッド

フォームメソッド オブジェクトメソッド トリガ データベースメソッド

ソースツールキット全タイプ

GetSetbullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 2: 2012 keynote-2

ソースツールキット

新しいコマンドテーマ (カテゴリー)

ソースツールキットMETHOD GET PATHS METHOD RESOLVE PATH METHOD Get path METHOD GET NAMES METHOD GET NAMES FORM METHOD GET PATHS FORM METHOD GET MODIFICATION DATE METHOD SET ACCESS MODE METHOD GET FOLDERS METHOD OPEN PATH

新しいコマンドテーマ (カテゴリー)

ソースツールキットbullメソッド

ソースツールキット全タイプbullメソッド

ソースツールキット全タイプbullメソッド プロジェクトメソッド

フォームメソッド オブジェクトメソッド トリガ データベースメソッド

ソースツールキット全タイプ

GetSetbullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 3: 2012 keynote-2

ソースツールキットMETHOD GET PATHS METHOD RESOLVE PATH METHOD Get path METHOD GET NAMES METHOD GET NAMES FORM METHOD GET PATHS FORM METHOD GET MODIFICATION DATE METHOD SET ACCESS MODE METHOD GET FOLDERS METHOD OPEN PATH

新しいコマンドテーマ (カテゴリー)

ソースツールキットbullメソッド

ソースツールキット全タイプbullメソッド

ソースツールキット全タイプbullメソッド プロジェクトメソッド

フォームメソッド オブジェクトメソッド トリガ データベースメソッド

ソースツールキット全タイプ

GetSetbullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 4: 2012 keynote-2

ソースツールキットbullメソッド

ソースツールキット全タイプbullメソッド

ソースツールキット全タイプbullメソッド プロジェクトメソッド

フォームメソッド オブジェクトメソッド トリガ データベースメソッド

ソースツールキット全タイプ

GetSetbullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 5: 2012 keynote-2

ソースツールキット全タイプbullメソッド

ソースツールキット全タイプbullメソッド プロジェクトメソッド

フォームメソッド オブジェクトメソッド トリガ データベースメソッド

ソースツールキット全タイプ

GetSetbullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 6: 2012 keynote-2

ソースツールキット全タイプbullメソッド プロジェクトメソッド

フォームメソッド オブジェクトメソッド トリガ データベースメソッド

ソースツールキット全タイプ

GetSetbullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 7: 2012 keynote-2

ソースツールキット全タイプ

GetSetbullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 8: 2012 keynote-2

ソースツールキット全タイプ

GetSet

パス

bullメソッド

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 9: 2012 keynote-2

ソースツールキット全タイプ

GetSet

パス

bullメソッド

[Invoices]input_formsave[trigger]Invoicesrdquo[databasemethod]onSystemEvent

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 10: 2012 keynote-2

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 11: 2012 keynote-2

ソースツールキット

bullコンテキスト フォルダ

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 12: 2012 keynote-2

ソースツールキット

bullコンテキスト フォルダ

フォーム名

bullメソッド

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 13: 2012 keynote-2

ソースツールキット

bullコンテキスト フォルダ

フォーム名

フィルタリング

bullメソッド

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 14: 2012 keynote-2

ソースツールキット

bullコンテキストbullメソッド

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 15: 2012 keynote-2

ソースツールキット

bullコメントbullコンテキストbullメソッド

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 16: 2012 keynote-2

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 17: 2012 keynote-2

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 18: 2012 keynote-2

ソースツールキットbullメソッドbullコンテキストbullコメントbull属性bull

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 19: 2012 keynote-2

ソースツールキット

bullコンテキストbullコメントbull属性

bullメソッド

bull

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 20: 2012 keynote-2

ソースツールキット

bullコンテキストbullコメントbull属性

リモートモード でもOK

bullメソッド

bull

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 21: 2012 keynote-2

ソースコードの取り出しbullソースツールキッド

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 22: 2012 keynote-2

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 23: 2012 keynote-2

ソースコードの取り出しbullソースツールキッド

bull任意のバージョンコントロールシステム

bullバージョン管理 vs 履歴

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 24: 2012 keynote-2

ソースツールキット望み通りの開発ツールが設計できます

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 25: 2012 keynote-2

ソースツールキット望み通りの 開発ツールが設計できます素晴らしい

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 26: 2012 keynote-2

新しいWebサーバー

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 27: 2012 keynote-2

新しいWebサーバーベンチマーク

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 28: 2012 keynote-2

v13 Webサーバーは

新しいWebサーバーベンチマーク

驚異的

信じられない

____

体ど

うなってい

るの

15ディスカウント2月1日まで

超高速

スピード違反

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 29: 2012 keynote-2

新しいWebサーバーv12 vs v13

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 30: 2012 keynote-2

新しいWebサーバーv12 vs v13

v12

41

(リクエスト秒)

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 31: 2012 keynote-2

新しいWebサーバーv12 vs v13

v12 v13

41

169(リクエスト秒)

x4

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 32: 2012 keynote-2

新しいWebサーバー

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 33: 2012 keynote-2

新しいWebサーバーモダンなデザイン

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 34: 2012 keynote-2

新しいWebサーバー

bullUnicodebull Carbon 不使用bull プリエムプティブbull IPV6bull RFC準拠bull

モダンなデザイン

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 35: 2012 keynote-2

Webサーバー再開発計画

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 36: 2012 keynote-2

bull無駄を省いて高出力 bull自由にチューニング bull一体型

自作の強み

Webサーバー再開発計画

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 37: 2012 keynote-2

bull簡単 設定簡単 管理簡単 運用

bullパフォーマンス重視

必要に応えるものに

Webサーバー再開発計画

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 38: 2012 keynote-2

ネットワークレイヤー

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 39: 2012 keynote-2

ネットワークレイヤー

IPX AppleTalk

Mac

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 40: 2012 keynote-2

ネットワークレイヤー

TCPIPIPX AppleTalk

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 41: 2012 keynote-2

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 42: 2012 keynote-2

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤー

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 43: 2012 keynote-2

TCPIPIPX AppleTalk

SSL

Mac Windows

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 44: 2012 keynote-2

ネットワークレイヤーbull機能の絞り込み TCPIP

POSIXソケット

bullエラー処理 bull保守の容易性

POSIXソケット

TCPIP

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 45: 2012 keynote-2

速度の追求

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 46: 2012 keynote-2

速度の追求bull圧縮 gzip 自動

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 47: 2012 keynote-2

速度の追求bull圧縮 gzip 自動

bullキャッシュ

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 48: 2012 keynote-2

速度の追求bull圧縮 gzip 自動

bullキャッシュbullプリエンムティブ

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 49: 2012 keynote-2

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 50: 2012 keynote-2

Webサーバー

CPU CPUCPU CPU

v12

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 51: 2012 keynote-2

Webサーバー

CPU CPUCPU CPU

v12

CPU

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 52: 2012 keynote-2

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 53: 2012 keynote-2

Webサーバー

CPU CPUCPU CPU

v13

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 54: 2012 keynote-2

Webサーバー

CPU CPUCPU CPU

v13

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 55: 2012 keynote-2

リクエスト

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 56: 2012 keynote-2

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 57: 2012 keynote-2

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 58: 2012 keynote-2

解析

スタティック

キャッシュのチェック (圧縮)

結果を送信

プリエムティブスレッド

リクエスト

ダイナミック

コオペラティブスレッドのプールに転送

完了するまで停止

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 59: 2012 keynote-2

v12 vs v13 ベンチマーク

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 60: 2012 keynote-2

新しいWebサーバー

v12 v13

41

169

x4

v12 vs v13

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 61: 2012 keynote-2

新しいWebサーバー

v12 v13

41

169

x4

2 コア

v12 vs v13スタティックページ リクエスト秒

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 62: 2012 keynote-2

新しいWebサーバー

v12 v13

41

169

x4

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 63: 2012 keynote-2

新しいWebサーバー

v12 v13

41

169

x4

482

x12

2 コアv13

v12 vs v13スタティックページ リクエスト秒

4 コア

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 64: 2012 keynote-2

スタティック 対 ダイナミック

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 65: 2012 keynote-2

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 66: 2012 keynote-2

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 67: 2012 keynote-2

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 68: 2012 keynote-2

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS HTML TAGS

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 69: 2012 keynote-2

スタティック 対 ダイナミック

bullスタティックリクエスト スピード重視

bullテンプレート

bullPROCESS 4D TAGS

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 70: 2012 keynote-2

コマンド

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 71: 2012 keynote-2

コマンドbullWEB get body parts count

bullWEB GET BODY PART

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 72: 2012 keynote-2

新しいWebサーバー

まだまだ続く

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 73: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 74: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0) $L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 75: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

End if End if

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 76: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 77: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 78: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 79: 2012 keynote-2

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 80: 2012 keynote-2

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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は自動的に発行行される SelectionsToSession SAVE RECORD([Sessions]) このセッションIDでクッキーをセット T_sessionID=[Sessions]SessionUID $T_header=Set-Cookie MYCOOKIE=+ T_sessionID SET HTTP HEADER($T_header)

web_DoNewSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 81: 2012 keynote-2

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

SelectionsToSession

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 82: 2012 keynote-2

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifEnd if

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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)

web_DoNewSession

LONGINT TO BLOB(Record number([Customers])[Sessions]Content LONGINT TO BLOB(Record number([Orders])[Sessions]Content ARRAY LONGINT($rL_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

SelectionsToSession

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 83: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 84: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) T_sessionID=web_GetSessionCookie ($values$idx)

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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 85: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 86: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 87: 2012 keynote-2

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 88: 2012 keynote-2

If($1=cart) GET HTTP HEADER$idx=If ($idxgt0) T_sessionID=

End ifIf(T_sessionID=) web_DoNewSession

End ifCase 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_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) カートの内容を更更新

Web_AddToCart

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 89: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 90: 2012 keynote-2

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 91: 2012 keynote-2

C_TEXT($1$value) C_TEXT($0) C_LONGINT($L_pos1$L_pos2) $value=$1 $L_pos1=Position(MYCOOKIE=$value) If ($L_pos1gt0)

$L_pos2=Position($value$L_pos1+1) If ($L_pos2gt0) $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_recNums0) VARIABLE TO BLOB($rL_recNums[Sessions]Content)

$T_url=$1 $L_productID=web_L_ProductIDFromQueryStr ($T_url) ARRAY LONGINT($rL_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) SET BLOB SIZE([Sessions]Content0) 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_names0) RELATE ONE SELECTION([OrderLines][Products]) SELECTION TO ARRAY([Products]Name$rT_names) return the result

If($1=cart) GET HTTP HEADER($headers$values) $idx=Find in array($headerscookie) If ($idxgt0) 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

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 92: 2012 keynote-2

If($1=cart) If(T_sessionIDWEB 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_recNums0) 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_recNumsRecord number([OrderLines])) CREATE SELECTION FROM ARRAY([OrderLines]$rL_recNums) ARRAY TEXT($rT_names0) SELECTION TO ARRAY([Products]Name$rT_names) return the result

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 93: 2012 keynote-2

セッション管理

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 94: 2012 keynote-2

セッション管理bull自動処理bull各種設定 bull WEB GETSET OPTION bull Webserver Keep session bull Webserver inactive session timeout bull Webserver Max sessions bull Webserver Session cookie name

bull微調整も bull WEB CLOSE SESSION bull データベースメソッド On Web Session Suspend

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 95: 2012 keynote-2

v13 新しいWebサーバーbullモダンでスタイリッシュ bull簡単 ~セットアップから運用まで~ bullパフォーマンス重視 bullセッション管理

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 96: 2012 keynote-2

新しいWebサーバー

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 97: 2012 keynote-2

とにかくスゴイ

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 98: 2012 keynote-2

HTTP クライアント

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 99: 2012 keynote-2

HTTP クライアント

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 100: 2012 keynote-2

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 101: 2012 keynote-2

HTTP クライアントbullHTTP Get

$resp=HTTP Get($url$result)

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 102: 2012 keynote-2

HTTP クライアントbullHTTP Get

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 103: 2012 keynote-2

HTTP クライアントbullHTTP Get

bullHTTP Request

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 104: 2012 keynote-2

HTTP クライアントbullHTTP Get

bullHTTP Request DELETE13GET13HEAD13OPTIONS13POST13PUT13TRACE

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 105: 2012 keynote-2

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 106: 2012 keynote-2

HTTP クライアントbullHTTP Get

bullHTTP Request

bullHTTP GETSET OPTION

bull認証プロキシ(システム設定)

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 107: 2012 keynote-2

HTTP クライアント

デモンストレーション

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 108: 2012 keynote-2

HTTP クライアント

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 109: 2012 keynote-2

HTTP クライアントとっても簡単

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 110: 2012 keynote-2

HTTP クライアント

HTTP クライアント

新しいWebサーバー

Page 111: 2012 keynote-2

HTTP クライアント

新しいWebサーバー