サーバサイド JavaScript の 歴史と未来 Shibuya.js Technical Talk #2 竹迫 良範.

Slides:



Advertisements
Similar presentations
Copyright © Ariel Networks, Inc. AJAX 勉強会 アリエル・ネットワーク株式会社.
Advertisements

© 2005 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます prototype.js と Perl で Ajax 株式会社はてな 伊藤 直也
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
「図書管理」のための Webアプリケーション開発 -Apache/Tomcat/MySQL/Java on Windows XP-
BBT大学 Ruby on Rails開発環境セットアップマニュアル
Windows Workflow Foundation of .NET Framework 3.0
ASP入門 - Windows 2000 Server 活用 -.
IIS 4.0で開発をするコツ Webアプリケーション構築.
PHP AV(Audio Visual) 拡張 クライアントサイド PHP アプリケーションPHP
プログラミング言語ADP 大藤雄久.
ZKプラグインで、Grailsの Viewをリッチに楽しく
第3回参考文献発表 PHP言語 岩永逸平.
情報理工学部 情報システム工学科 3年 H 井奈波 和也
ハルビン絵葉書コレクションシステムの再構築と機能追加 -サーバ側:PHPとMySQLを用いて
業務システム開発用フレームワーク TERASOLUNA Framework for .NET
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
オレポータビリティ 日本Rubyの会 青木 峰郎.
Java I 第2回 (4/18)
WebDAVでOpenOffice.org の文章を共有する
UNIX Life KMSF M2 saburo.
名古屋大学大学院人間情報学研究科 物質生命情報学専攻 情報処理論講座 原 崇
WebサービスII (第10回) 2007年11月28日 植田龍男.
ケータイキット for Smarty のご紹介
JavaServlet&JSP入門 01K0018 中村太一.
Webアプリケーション.
第4回 個人の動画配信補足のためのWeb構築
Microsoft .NET 入門 Silverlight のための 福井コンピュータ株式会社 小島 富治雄
佐賀大学 理工学部知能情報システム学科 講師 大月 美佳
卒研:データベースチーム 第4回 DOMを使った処理
クロスワードゲームの 作り方を学ぼう/やってみよう ‐ボードゲームの動作機構‐
Piggy Bank: Experience the Semantic Web Inside Your Web Browser
Silverlight とは.
JavaScript Language Update
MSBuild 色々出来るよ 2011/04/02 お だ.
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.
業務システム開発用フレームワーク TERASOLUNA Framework for .NET
WebサービスII (第8回) 2007年11月14日 植田龍男.
ビューとコントローラ.
HTTPプロトコルとJSP (1) データベース論 第3回.
HTTPプロトコル J2EE I 第7回 /
PHPの基礎と開発手法 Based on PHP5
サーバー立ち上げ記 2009/5/23
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
第8章 Web技術とセキュリティ   岡本 好未.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
2017年度 情報技術マップ調査 ITディレクトリの構成とSI要素技術
Windows Azure (CTP) 触ってみた
職務経歴書・スキルシート (職種:職種を記載してください).
Javaによる Webアプリケーション入門 第2回
JAVAについて 高橋 雅哉.
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
Windows Azure (CTP) 触ってみた
<前提条件> iSeriesSite ワークフロー 実行環境 構成イメージ
データベース設計 第7回 実用データベースの運用例 クライアント=サーバシステム(1)
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
Webページに動きを持たせるJavascript言語について 例題のプログラムを通して体験的に理解することとします。
JSPの基本 データベース論 第2回.
平成30年度 情報技術マップ調査 ITディレクトリの構成とSI要素技術
JSPの基本 J2EE I (データベース論) 第8回 /
ネットワークプロトコル.
第2回 Webサーバ.
MSG시스템 팀 2006年5月26日 株式会社 데굴데굴 開発部 開発G 아무개.
Microsoft Office Project Server 2007
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

サーバサイド JavaScript の 歴史と未来 Shibuya.js Technical Talk #2 竹迫 良範

# /06/30 2 前回の shibuya.js#1 の振り返り 最後に生き残るのは JavaScript かもな JavaScript のこれまでの 10 年とこれからの 10 年 これまでの 10 年でクライアントサイドを征覇した これからの 10 年でどこまで領域を広げるか eto さん基調講演

# /06/30 3 クライアントサイドは制覇した

# /06/30 4 昔:サーバサイドのプログラミング言語 JavaScript Ruby Perl PHP Java サーバサイド (Webサーバ) クライアントサイド (ブラウザ)

# /06/30 5 今:サーバサイド言語で JavaScript 生成 JavaScript Ruby Perl PHP Java サーバサイド (Webサーバ) クライアントサイド (ブラウザ) RJS とか GWT J2S 本居宣長の方法

# /06/30 6 未来: JavaScript で全部書く! Ruby Perl PHP Java サーバサイド (Webサーバ) クライアントサイド (ブラウザ) JavaScript 夏目漱石の方法

# /06/30 7 これからの時代は サーバサイド JavaScript

これまでの サーバサイド JavaScript 商用プロダクト編

# /06/30 9 サーバサイド JavaScript の有名どころ Microsoft IIS ASP (Active Server Page) VBScript / PerlScript / Jscript … LiveWire JavaScript から発展 Netscape Enterprise Server iPlanet Sun Java System Web server BroadVision One-To-One Enterprise いろいろ

# /06/30 10

# /06/30 11 DreamArts ひびき ® シリーズ

# /06/30 12 DreamArts ひびき ® シリーズ サーバサイド JavaScript を採用 パッケージ製品である「ひびき」に対する 顧客要望別プラグインを JavaScript で記述 JavaScript 処理系 Rhino + Velocity (Java)

# /06/30 13 DreamArts ひびき ® シリーズ プラグインで可能なこと API を利用した内部データへのアクセス JDBC コネクションプールによる DB アクセス 製品で提供されている拡張ポイントを利用して 製品仕様を変更する トランザクション内のフックにより 他のシステムとのデータリアルタイム連携 製品内に保持しているデータのグラフ化

# /06/30 14 DreamArts ひびき ® シリーズ サンプルプログラム function service(request, response) { var hibikidb = Hibiki.getDatabaseSession(); var isdb = Hibiki.getDatabaseSession('isdb'); if (hibikidb == null || isdb == null) { log.fatal("Failed to check my DB server!"); return sendError(response); } var f = new java.io.File(Hibiki.getDataDirectory() + "/health-check.dat"); if (!f.exists()) { log.fatal("Failed to check my file server!"); return sendError(response); } return "/success.vm"; } /* * ロードバランサから監視する場合のヘルスチェックリスナーサンプル * 正常に稼働している場合には、 /success.vm の内容が送信される。 * データベースおよびファイルのどちらかに異常がある場合には、 * HTTP ステータスコード 500 を返して終了する。 - sendError() */

# /06/30 15 INSUITE® セキュリティアダプタ

# /06/30 16 INSUITE® セキュリティアダプタ サーバサイド JavaScript を採用 Apache2 の挙動を JavaScript でコントロール mod_perl や mod_python などと同じ Apache2 の各種ハンドラを JavaScript で記述 LDAP 認証やリバースプロキシ、 SSL 証明書の 取り扱いなどの組み込みオブジェクトを用意 JavaScript 処理系 SpiderMonkey + Apache2

# /06/30 17 INSUITE® セキュリティアダプタ サンプルプログラム SSL 以外でリクエストされた場合に SSL にリダイレクトする Apache.translateName = function { if (request.uri.match("^/images/(.*)")) decline(); if (request.uri.match("^/i/(.*)") || request.uri.match("^/_/(.*)")) decline(); redirect(" + request.hostname + request.uri); } $ cat redirect_to_https.js

未踏ソフトウェア編 サーバサイド JavaScript の実装

# /06/

# /06/30 20

# /06/30 21

# /06/30 22 Mayaa – JavaServer Templates

# /06/30 23 Mayaa の位置づけ a

Java 系オープンソースの サーバサイド JavaScript いくつか紹介

# /06/30 25 Sarugau JS (さるごー JS ) サーバサイド DHTML エンジン Java 上で動作する JavaScript と DI コンテナを 使ったプレゼンテーション層用のフレームワーク JavaScript 処理系 Rhino (Java) サーバサイド DHTML Rhino のラップドファクトリ機構を利用 ブラウザの innerHTML, style などの DOM 拡張

# /06/30 26 Sarugau JS (さるごー JS )

# /06/30 27 firecat – JavaScript WebServer 処理系 W3C Jigsaw (HTTP) + FESI (ECMAScript) ライセンス LGPL

# /06/30 28 firecat – JavaScript WebServer サンプルプログラム <% var msg = " あなたの IP アドレスは "; var remote_ip = request.getRemoteAddr(); msg = msg + remote_ip; %>

# /06/30 29 その他 mod_gcj / Rhinola Rhino + GCJ4.0 + Apache mod_gcj Helma - Javascript Web Application Framework Rhino + Jetty Helma License version 2.0

今年の新たな動き JSAN 関連

# /06/30 31

# /06/30 32 Oku Cybozu Labs サーバサイドで JavaScript の単体テスト JSAN の Test.Simple を Windows Scripting Host (WSH) に移植 Test-Simple-WSH.patch runtests.js Windows のコマンドプロンプトで JavaScript ライブラリのテストが動く > cscript.exe runtests.js testsrc.js

# /06/30 33 Oku Cybozu Labs JSAN-ASP.patch ASP で JSAN を使うパッチ (2006/3/24) JSAN.use("Digest.MD5", ":all"); Response.write(md5Hex("hello"));

# /06/30 34 これからの時代は サーバサイド JavaScript

プロジェクト AJAJA (仮称) 本日初公開

# /06/30 36 プロジェクト AJAJA (仮称) AJAJA Asynchronous JavaScript and JavaScript/ASP 最初の動機(構想) ブラウザ上で動く JavaScript と、ウェブサーバで動く JavaScript とを相互に通信させることで、 JavaScript のみによる Ajax なシステムを作れるようにしてみよう 開発者 西田圭介さん (+アルファギークな仲間達) フリープログラマ OpenCOBOL の開発者 Gonzui の開発者でもある 某商用 VPN ソフトウェアの開発者

# /06/30 37 プロジェクト AJAJA (仮称) オープンソースな JavaScript/ASP の実装 IIS の記法がそのまま使える(過去の資産の継 承) 処理系 SpiderMonkey CGI で提供 /usr/bin/asp_js コマンド SQLite3 標準サポート use('SQLite'); db = new SQLite('sample.db');

# /06/30 38 サンプルプログラム hello.asp <% var hello = "Hello world"; %>

# /06/30 39 実行処理系のベンチマーク JS は SpiderMonkey を DEBUG モードでビルド JS(OPT=1)は SpiderMonkey を BUILD_OPT=1 でビルド CPU: Pentium 4 3GHz OS: RHEL4 Update 3 (Linux )

プロジェクト AJAJA (仮称) JavaScript/ASP デモ

# /06/30 41 [ ソース ]

# /06/30 42 デモ製作: halt さん JavaScript/ASP demo – Simple BBS

# /06/30 43 Yet Another Demo

ただいま空前の素数ブーム LL Ring キミならどう書く 2.0 前哨戦 Round 1 お題「 100 までの整数から素数を列挙せよ」

# /06/30 45 Brainf*ck で 100 までの素数を列挙してみるテスト

# /06/30 46

# /06/30 47

# /06/30 48 function BF(str){ this.code = []; this.output = []; this.input = []; this.data = []; this.pc = this.sp = 0; this.debug = 0; this.step = function(){ var op = bf.code[this.pc]; if (bf.debug){ document.writeln([op, bf.sp, bf.pc].join(",")); } switch (op) { case '<' : bf.sp--; break; case '>' : bf.sp++; break; case '+' : if(!bf.data[bf.sp]) bf.data[bf.sp] = 0; bf.data[bf.sp]++ ; break; case '-' : if(!bf.data[bf.sp]) bf.data[bf.sp] = 0; bf.data[bf.sp]--; break; case '.' : bf.output.push(bf.data[bf.sp]) ; break; case ',' : bf.data[bf.sp] = bf.input.shift() ; break; case '[' : if (bf.data[bf.sp]) break; nest = 1; while(nest){ bf.pc++; nest += bf.code[bf.pc] == '[' ? +1 : bf.code[bf.pc] == ']' ? -1 : 0; } break; case ']' : nest = 1; while(nest){ bf.pc--; nest -= bf.code[bf.pc] == '[' ? +1 : bf.code[bf.pc] == ']' ? -1 : 0; }; bf.pc--; break; }; bf.pc++; }

# /06/30 49 Brainf*ck への応用./Brainfuck.js function BF(str) の定義./demo.asp クライアントサイド サーバサイド

# /06/30 50 サーバ / クライアントで.js を共有 有名な JavaScript ライブラリをサーバサイド でも prototype.js MotchiKit JSAN モジュール JavaScript ライブラリをみんなで share Validation ロジックの共通化 フォームの入力値のチェック 数値、文字列の長さ DRY の原則( Don’t Repeat Yourself )

ToDo やりたい事

# /06/30 52 ToDo Apache モジュール欲しい 最初に作ったのは mod_aspjs だが路線変更 スレッドまわりとか GC とかきちんと ライブラリの充実 サーバサイドの JSAN モジュール SSI -> SSJ Extension 業務で使えるテンプレートエンジン サーバサイドで DHTML DOM 操作、 innerHTML のサポートとか …

# /06/ 近日公開予定

# /06/30 54 共同開発者 募集中 (svn公開します)

サーバサイド JavaScript の 歴史と未来 ご清聴ありがとうございました