go to http://oracle.in.th

Tuesday, August 18, 2009

JavaScript Server Page

มันเป็นการรวมความสามารถของ JavaScript และ Java เข้าไว้ด้วยกัน พยายามให้เราเขียนโค้ดง่ายๆ ด้วย syntax JavaScript แต่ทำงานได้อย่างมีประสิทธิภาพแบบ Java โดย JSSP มันเป็น runtime lib ที่สร้าง web page ผ่านทางภาษา JavaScript ที่รันอยู่บน servlet container เช่น Tomcat, JBoss เป็นต้น

เราไม่จำเป็นต้องเข้าใจภาษา Java มันเหมือนกับพวกภาษา PHP, ASP และ JSP เป้าหมายของมันคือสร้าง web application ที่ง่ายแต่มีประสิทธิภาพ และปริมาณโค้ดที่น้อยเพื่อลดความซับซ้อนของโด้ดให้น้อยที่สุด เราสามารถเข้าถึงฐานข้อมูล หรือ java class ได้ผ่านทางโดยตัว JSSP เสมือนกับ RMI

JSSP แบ่งออกเป็น 2 component หลักๆ
  • JSSP web component เป็นส่วนที่ใช้รัน JavaScript บนฝั่ง Server
  • JSSQL component สร้างเพื่อให้ JSSP ใช้ sql query ในการเข้าถึงฐานข้อมูลได้ โดยมันปรับปรุงมาจาก Mozilla Rhino
ข้อดีของการใช้ JavaScript
  • Function language
  • Dynamic language
  • Easy เขียนง่าย
  • Interpreted language เป็นภาษาที่ interpret ไม่จำเป็นต้องผ่านการ compile ก่อนถึงใช้งานได้
  • Dynamic properties สามารถเพิ่มลด attribute, function ได้ในขณะรันไทม์
  • Reuseability ง่ายและยืดหยุ่นในการสืบทอดฟังช์ชั่นที่มีอยู่แล้ว
  • XML ง่ายในการเขียนโปรแกรมจัดการกับเอกสาร xml
ข้อดีของ JSSP
  • Embedded SQL เพิ่มความนสามารถในการติดต่อฐานข้อมูล เข้าไปโดยเราสามารถเขียน sql เพื่อ query ข้อมูลมาแสดงผลได้โดยข้างในมันจะติดต่อฐานข้อมูลผ่านทาง JDBC ให้เอง
  • AJAX รองรับการทำงานแบบ ajax
  • I18N รองรับการทำงานที่ใช้หลายภาษาได้
  • Dervish เป็นเทคโนโลยีที่ใช้สื่อสารกับทางฝั่งเซิร์ฟเวอร์โดยซ่อนการทำงานไว้เบื่อหลัง ช่วยให้เราสามารถเรียกใช้ออปเจคต่างๆ ที่ประกาศไว้ฝั่งเซิร์ฟเวอร์ได้
  • Easy deployment ทุกครั้งที่มีการเปลี่ยนแปลงโค้ด เราไม่จำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์ช่วยลดเวลาที่ไม่จำเป็นออกไป
    Library support มี api รองรับที่เพียงพอต่อการใช้งาน
ข้อจำกัดของ JSSP
JSSP มันไม่ใช่ Framework ดังนั้นคุณจะเห็นโค้ดปนไปด้วยลอจิกทางฝั่งธุรกิจ + โค้ดทางฝั่งแสดงผล มันจึงไม่เหมาะกับแอพพลิเคชันที่มีขนาดใหญ่ๆ แต่มันเหมาะกับแอพพลิเคชันขนาดเล็กถึงขนาดกลางมากกว่า
นอกจากนี้มันยังไม่มีไลบารี่ที่จำเป็นอีกบางอย่าง เช่นการเข้าถึงไฟล์ หรือการเข้าถึง network (คาดว่าน่าจะมาในรุ่นถัดๆ ไป) แต่เราสามารถใช้ Java ไลบารี่ช่วยทำงานในส่วนนี้ไปก่อนได้
และถึงแม้ syntax ของ JSSP จะถูกเขียนด้วยภาษา JavaScript แต่ด้วยความที่มันทำงานบนฝั่งเซิร์ฟเวอร์จึงไม่สามารถใช้งานออปเจคที่ทำงานบนฝั่งไคลแอนด์ได้เช่นออปเจค window หรือ document

ตัวอย่างสวัสดีชาวโลก
<html>
<body>
<% out.print("Hello World!"); %>
</body>
</html>

ตัวอย่างการเข้าถึงฐานข้อมูล
<%
var stmt = connection.SELECT * FROM Employees WHERE Name = ?Name?;
stmt.Name = "Jack";
var rset = stmt.run();
while (rset.next()) {
// do something with the result
}
%>
ด้วยความที่มัน implement ได้ค่อนข้างง่ายจึงมี workflow ของญี่ปุ่นตัวหนึ่งหยิบไปใช้สนใจลองเข้าไปดูได้ intra-mart

ปล. แนวคิดอย่าง JSSP ไม่ใช่เรื่องใหม่แต่อย่างใด แต่มันเป็นสิ่งที่ผมอาจจะต้องหยิบมาใช้เลยมาแชร์ให้รู้กันว่ามันคืออะไร ไว้ถ้ามีเวลาจะมาเขียนต่อว่าที่ JSSP คุยไว้ ใช้งานจริงแล้วเป็นอย่างไร..

อ้างอิง:
ข้อเขียนนี้ช่วยฉัน:  

1 comment:

Kim said...

น่าสนใจดีครับ
ผมเลยไปสืบประวัติของผู้พัฒนา JSSP มาอีก

เจ้าของ project นี้คือนาย Leo Meyer
เป็นนักพัฒนาชาวเยอรมัน
นี่เป็น home page ของเค้าครับ
http://www.leomeyer.de

idea ของเค้าดี แต่ถ้าอยากให้เป็นที่นิยมแพร่หลายมากกว่านี้
ต้องลุ้นให้ Apache Foundation หรือ SpringSource ก็ได้ มาหนุนหลังให้อีกที แล้ว project นี้จะเป็นที่น่าจับตาทีเดียว

Post a Comment