Tuesday 28 August 2007

สุดเจ๋ง WebCream เปลี่ยนจาก Java Swing ให้เป็น AJAX RIA (Desktop to Web Application)

WebCream
เวลาเราเขียน Client Application ด้วย Java Swing หรือ AWT เคยอยากที่จะให้มันสามารถรันอยู่บน browser กันบ้างไหมครับ วันนี้มี Software ตัวนึงที่ทำให้สิ่งที่กำลังคิดอยู่นี้เป็นจริงขึ้นมา Software ตัวนั้นมีชื่อว่า WebCream

WebCream คือเป็นตัวแปลง Java Swing หรือ AWT application ของเราให้เป็นภาษา HTML โดยใช้เทคนิคของ Ajax เข้ามาช่วยทำให้ดูแล้วเหมือน Client Application ที่เราเขียนถูกรันอยู่บน browser โดยที่ไม่คิดว่ามันคือ web application เลย ซึ่งเจ้า WebCream จะแปลง gui ทุกตัวที่สร้างโดยใช้ Java Swing หรือ AWT ให้เป็นภาษา HTML ทั้งหมด และ business logic ทั้งหมดที่เราเขียนไว้ก็ จะถูกแปลงให้สามารถทำงานอยู่บนเว็บได้ด้วยเช่นกัน ซึ่งคุณสมบัติเด่นๆของ WebCream มีดังนี้ครับ

  • เราไม่ต้องมีความรู้ HTML/CSS/DHTML/JavaScript ก็สามารถใช้ WebCream ได้
  • สนับสนุน HTML4.0, Cascading Style Sheets 2, DHTML, JavaScript1.2
  • ทำงานร่วมกันได้กับหลาย browsers
  • ไม่ต้อง install Java Plugin หรือ Java WebStart และเครื่อง client ที่จะรันก็ไม่ต้อง support Java ด้วย
  • แสดงผล Java, Swing, Applet ในรูปแบบภาษา HTML
  • ยอมให้มีการปรับปรุงแต่งเติมเมื่อเราแปลงเป็น HTML แล้ว เช่น สี, ตัวอักษร
  • การใช้งานทรัพยากร thread และ memory ถูกปรับปรุงให้ดีขึ้น
  • มีการรองรับ JDK1.2, 1.3 และ 1.4
  • มีการรองรับ dynamic events และ listeners เช่น ActionListener, ItemListener
  • สามารถทำ Dynamic cluster ให้ JVM เพื่อประสิทธิภาพที่ดีขึ้น
ยังไม่หมดนะครับตามไปอ่านกันได้ที่ WebCream Feature อืมอยากที่เห็นว่าความสามารถของ WebCream ไม่ธรรมดาเลยทีเดียวถ้าจะพูดมากไปกว่านี้เดี๋ยวหาว่าโม้แน่ๆ เข้าไปดู demo ได้ที่นี่ครับ WebCream Demo
ถ้าอยากลองเล่นเข้าไป download ได้ที่นี่ WebCream Download เลยครับแต่ต้องทำการลงทะเบียนก่อนนะครับ

WebCream SwingSet 2WebCream Choose ColorWebCream JTable

4 comments:

NUL said...

สุดเจ๋งจริงๆ

Kim said...

ไม่เจ๋งอย่างเดียว ก็คือมันไม่ฟรีต้องเสีย license

Anonymous said...

ดูจาก architecture แล้วไม่น่าจะ scale ได้ดีนะครับ นอกจากตัว emulator มันจะเขียนมาได้ดีมากๆ

การเอา Swing แปลงเป็น AJAX โดยตรงจะได้ข้อดีตรงที่ไม่ต้องเรียนรู้ toolkit ตัวใหม่

แต่ Swing เองถูกออกแบบมาให้รองรับความซับซ้อนมากกว่า แล้วการที่ใช้ WebCream อยู่บนพื้นฐาน Swing ทำให้มันสืบทอดความซับซ้อนนั้นมาอย่างไม่จำเป็นหรือเปล่า?

โอเคถ้ามี Swing app อยู่แล้วต้องการ Port ไปเป็น AJAX ก็ดีไป อาจจะไม่ต้องคอนฟิกมาก แต่ถ้าต้องเขียน Swing app ใหม่เพื่อแปลง ดูไม่คุ้มค่าเลยนะครับ เสียความ richness ของ UI ไปอีกต่างหาก

ส่วนตัวคิดว่าวิธีของ GWT เรียบง่ายกว่า ออกแบบเพื่อแปลงเป็น AJAX โดยตรงกว่า แม้จะต้องเสียเวลาเรียนรู้ Toolkit มันก็เถอะ

Kim said...

เห็นด้วยกับคุณ dean4j
ถึงแม้ว่าว่า webcream จะคุยว่าสามารถ migrate จาก swing มาเป็น ajax ได้ทั้งหมดก็ตาม แต่ผมก็ยังมีข้อกังขาคือ

1. ประเด็นเรื่องการเข้าถึง file รวมถึงการใช้งาน FileDialogBox จะย้ายมาบน Web อีท่าไหน ?

2. ประเด็นเรื่อง security ที่ธรรมชาติของ web app ถูกตัดความสามารถหลาย ๆ อย่างออกไป เมื่อเปลี่ยนเป็น ajax จะมายังไง หรือว่า generate security policy ตามมาด้วย ?

3. หนีไม่พ้นที่เราต้องตามมาแก้ไข code บน ajax อีกรอบ, แล้วสิ่งที่ webcream convert มาให้ ง่ายต่อการ customized ต่ออีกรอบ ?

ส่วน GWT น่าสนใจครับ
Google ทำ POC ให้ดูทั้ง gmail และ google reader และที่จะตามมาอีกหลายตัว

ถึงแม้ยังไม่เคยเอามาใช้ทำงานจริง แต่ความอุ่นใจต่างกันลิบ