第4回Open INTRA-MART勉強会oss.intra-mart.org › study_meeting › 2009-05-19 ›...

Post on 07-Jul-2020

0 views 0 download

Transcript of 第4回Open INTRA-MART勉強会oss.intra-mart.org › study_meeting › 2009-05-19 ›...

第4回Open INTRA-MART勉強会

Google App EngineでServer Side JavaScript

じこしょうかい

名前

榎本

潤(えのもと

じゅん)

所属

Open INTRA-MART

株式会社イントラマートCSI

Open INTARA-MARTとは

Open INTRA-MARTとは

「技術者が楽しく」をモットーとしたコミュニティです!

http://oss.intra-mart.org/

irc: oss.intra-mart.org:6667 #imart

ml: open-im-dev@intra-mart.org

Google App Engine

Google App Engine

Googleの提供するWebアプリケーション実行環境

Googleのインフラ上で自作のWebアプリが実行可能

負荷分散とかスケーリングとかはGoogleがやってくれる

ローカル開発環境も提供されてる

今のところPythonとJavaが使える

制限もあるファイルの保存が出来ない

Socketが開けない

スレッドが生成できない

JNIも利用できない

Server Side JavaScript

Server Side JavaScript

いろいろある。10gen, Acre, Apache Sling, AppJet, Aptana

Jaxer, ASP, Axiom Stack, Cocoon, Flowscript

CouchDB. DovetailDb, ESXX, Ejscript, EditMe, GLUEscript, Helma, Object Publisher, Jack

jsext, jslibs, JSSP, im-jssp, JuiceScript, Junction, Livelink, WCM, Presentation, Server, mod_jd, Myna, Javascript Application Server, NOTEX, OpenMocha, Persevere, Phobos, POW, Rhino in Sprint, Rhinola, Server Side Execution(SSX), Server Side JavaScript, Torino, Whitebeam, wxJavaScript, v8cgi

参考: http://en.wikipedia.org/wiki/Server-side_JavaScript

そういえば昔cauchoも持ってたよねcom.caucho.es.*

im-jssp framework

im-jssp frameworkとは

Server Side JavaScript Frameworkです

javaで出来てます

Application Server上で動きますResin, Tomcat, Jboss, Geronimo, Weblogic, WebSphere…

シンプルなアーキテクチャ

html + js

im-jsspの良い所

習得が早い!

サーバとクライアントで同じ言語が利用可能

実はServletコンテナさえあれば動く

winstone, SDLoader

im-jsspのあれな所

サーバ側の処理Script言語で書いてなんか意味あんの?

おぶじぇくとしこうじゃないから!

自由に書け過ぎて可読性があれな事も

ルールがないと大人数で作れば作るほど…

他人のコードがわからん、まったくわからん

Javaで書いた方が早くない?

静的型付け言語の方が確実でない?

こまけぇことたぁいいんだよ!

うごかしまーす

あると便利なもの

Eclipsehttp://www.eclipse.org/

Google Plugin

for Eclipsehttp://dl.google.com/eclipse/plugin/3.4

無いと困るもの

Googleのアカウント

GAE/Jの申請

JavaScriptへの愛

つくる

プロジェクトを作る

im-jssp on GAE/J用のライブラリを置く。

http://oss.intra-mart.org/hudson/

はろう世界

var $message;

function init(request){

$message = “hello”

+ request.name;

}

はろう世界

<html>

<head>

<title></title>

</head>

<body>

<imart type=“string”

value=$message />

</body>

</html>

ろーかるで試す

Server Side <-> Client Side

function sayHello(name){

return ‘hello ‘

+ name;

}

<imart type=“jsspRpc”

name=“sample”

page=“sample”

/>

<input type=“button”

onclick=“alert(sample.sayHello(‘world’));”

/>

GAEにでぷろい

GAEにでぷろい

GAE上にアプリケーションつくる

appengine-web.xmlにデプロイ先を書く

Googleであそぶ

ぐぅぐるが提供してるAPI

Google Accounts

Memcache

URL Fetch

Mail

Image

Datastore

Datastore: JDO

JDOとはなんぞや

Java

Data Object

Javaのおぶじぇくとを永続化する為の仕様

これを使うと、こまけぇことはおいといて GoogleのBigTableってDBにデータを保存できる

永続化するEntityはjavaで.

Enhancerを使ってenhanceしないと駄目。

ここだけjavaを書くんです…

.java .class .class

javac enhancer

それでもjavascriptをあいしてる。

だからのこりはjavascriptでかく。

var emp

= JDO.select(“select

from foo.Employee”).getSingleResult();

JDO.select(“select

from foo.Employee”).eachRow(function(row, index){

doSomething(row);});

JDO.transaction(function(pm)){var emp

= new Packages.foo.Employee();

emp.name

= “enomoto

san desuyo.”;

pm.makePersistent(emp);

}

javascriptとjavaはシームレスに繋がる

var calendar = java.util.Calendar.instance;

var emp

= new Packages.foo.Employee();

jsからjavaのAPIがそのままつかえる。

どうしてもjsじゃむりならjavaつかう。

全てJavaで書けばええやんという意見は 受け付けない。

でも

JDOつかってとうろく、せんたく

かんたん!

こんなのがかんたんにつくれた。

Javascriptでうぃきをつくった。

全部で10じかんくらい

うぃき

http://im-jssp-wiki.appspot.com

うぃき

なまえぼしゅうちゅう

javascriptが好きならjsspやりませぬか。

こみったも募集中!

ご清聴有難う御座いました