Ajax Simplifications in Spring 3.0

February 17th, 2010

แปลและย่อมาจากจาก Ajax Simplifications in Spring 3.0
Spring and Ajax Overview
จุดประสงค์สำหรับ Entry นี้คือการสาธิตการทำงานแบบ Aynchronous ระหว่าง JavaScript (jQuery, Dojo) และ SpringMVC 3.0 เพื่อให้เห็นความสามารถใหม่ใน Spring3 เนื่องก่อนหน้านี้ Spring เองไม่มีฟีเจอร์ในเรื่องของ
การทำงาน Ajax Remoting ในตัวมันเองทำให้ต้องเลี่ยงไปใช้ไลบารี่เช่น DWR เข้ามาช่วยแต่ช่วงหลังๆการส่งข้อมูลแบบ RESTful-JSON เป็นที่นิยมมากขึ้นทำให้ Spring3 ได้เตรียมความพร้อมในเรืองนี้มาให้เลย โดย Spring3
สามารถทำการสร้าง response ที่เป็น JSON ได้นอกจากนี้ยังสามารถ Bind JSON Parameter กลับมาเป็น Java Object ได้ด้วยเลยซึ่งจะแสดงให้เห็นตัวอย่างในส่วนต่อไปของเนื้อหา

MVC Ajax Sample
ตัวอย่าง ที่จะใช้ใน Entry นี้นั้นสามารถ export ได้จาก https://src.springframework.org/svn/spring-samples/mvc-ajax/trunk/ โดยหลังจากได้ sourcecode มาแล้วเราสามารถลอง deploy และลองเล่นได้เลยครับโดยสามารถ pack
เป็น WAR แล้วค่อยนำไป deploy ได้เลยหรือจะใช้บริการ Embeded Jetty ก็สามารถทำได้ด้วยการเพิ่ม plugin เข้าไปใน pom.xml ดังนี้ครับ

    <build>
        <plugins>
            <plugin>
                <groupid>org.mortbay.jetty</groupid>
                <artifactid>maven-jetty-plugin</artifactid>
            </plugin>
	...
	...
	...
       </plugins>

หลังจากเพิ่ม pluging แลัวเราก็พิมพ์ mvn jetty:run ได้เลยครับ
Read more…

case study , ,

Basic 1: Java ,Maven และ Eclipse

February 2nd, 2010

Basic 1: Java ,Maven และ Eclipse (Basic Series)

1. เตรียม Java environment
สามารถ download ได้จาก http://java.sun.com/javase/downloads/index_jdk5.jsp
จากนั้น ก็ setup  JAVA_HOME  (D:\Java\jdk1.6.0_17)
เพิ่ม path ให้ชี้ไปที่  %JAVA_HOME%\bin

จากนั้น ก็เทส C:\>java –version

2. เตรียม Maven
สามารถ download ได้จาก  http://maven.apache.org/download.html
จากนั้น setup  M2_HOME (D:\java\apache-maven-2.2.1)
เพิ่ม path ให้ชี้ไปที่ %M2_HOME%\bin

จากนั้น ก็เทส C:\>mvn –version

2.1 ต่อมาต้องจัดการ configure ที่ Maven ก่อน แก้ settings.xml อยู่ใน D:\java\apache-maven-2.2.1\conf
set > local repository ให้ชี้ไปที่ <localRepository>C:/java/.m2/repository</localRepository> ซึ่ง ไฟล์ทุกอย่างที่ ใช้ Maven จัดการจะถูกเก็บไว้ในนี้
Read more…

tutorial series , , ,

An introduction to the Enterprise Service Bus (ESB)

February 1st, 2010

ตั้งใจจะแปลเรื่อง Federated ESB แต่นึกออกว่าน่าจะเริ่มจากการรู้จัก ESB ก่อนโดยคิดว่าเอกสารของ IBM ดูจะอธิบายเรื่อง ESB ได้ดีที่สุดดังนั้นจึงขอแปลและย่อมาจากเอกสารนี้ SOA programming model for implementing Web services, Part 4: An introduction to the IBM Enterprise Service Bus

Introduction to ESB

ก่อนอื่นเราต้องทำความรู้จักกับ ESB ก่อนโดยที่ ESB เป็น architectural pattern ที่มีไว้เพื่อรองรับการทำ virtualization และ management ระหว่างการโต้ตอบระหว่างผู้เกี่ยวข้องในระบบ โดยที่ตัวมันเองจะเตรียมวิธีการเชื่อมต่อระหว่าง provider และ consumer
โดยที่การเชื่อมต่อที่เตรียมไว้นั้นจะมีให้หลากหลายวิธีมากแม้กระทั่งวิธีการแปลงวิธีการสื่อสารของสองทางที่ไม่ได้ตรงกันเลยมันก็สามารถแปลงให้ตรงกันได้ อย่างไรก็ตาม Architecture นี้สามารถถูก implement ได้จากหลายๆ middleware technology

What is an ESB?

สำหรับ ESB pattern แล้วการเรียกใช้บริการต่างๆของ consumer จะไม่ถูกเรียกโดยตรงไปที่ provider แต่กระบวนการเรียกใช้จะถูกกระทำผ่าน BUS ซึ่ง BUS นั้นจะเตรียมบริการสำหรับการ manage และ virtualize ตัว service ไว้ให้โดยที่เราสามารถสรุปหน้าที่หรือความสามารถหลักของ ESB ไว้ได้สี่ข้อด้วยกันคือ

  • Location and identity: การที่ผู้ที่มีส่วนร่วมในระบบไม่มีความจำเป็นจะต้องรู้ถึงที่ตั้งหรือที่อยู่ที่แท้จริงของคนอื่นที่อยู่ในระบบ ยกตัวอย่างเช่น consumer ไม่จำเป็นจะต้องรู้เลยว่ามีการไปเรียกใช้งานที่ฝั่ง provider กี่ที่และ provide ก็สามารถที่จะถอด service ออกไป ณ เวลาใดก็ได้โดยที่ไม่มีการรบกวนระบบโดยรวม
  • Interaction protocol: ระบบทั้งหมดไม่จำเป็นที่จะต้องสื่อสารกันผ่านโปรโตคอลเดียวกันเสมอ
  • Interface: Requester และ Provider ไม่จำเป็นต้องมี common interface โดยที่ ESB จะทำหน้าที่จัดให้ทั้งสองฟากสามารถคุยกันได้ด้วยการเปลี่ยน protocol ให้ทั้งสองฝั่งเรียบร้อย
  • Qualities of (Interaction) Service (QoS): ระบบต่างๆที่มีส่วนร่วมสามารถประกาศความต้องการที่เกี่ยวกับ Qos ไว้ได้เช่น performance, reliability, authorization, สำหรับการส่ง request และรายละเอีดยดของ service interact เช่น encryption/decryption ของเนื้อหา, การตรวจสอบหรือแม้กระทั้งวิธีการจัดการเรื่องเส้นทางของ request (เช่นการกำหนดวิธีการให้บริการที่แปรผันตาม load ของ service เพื่อให้เกิดความสมดุล) ซึ่งข้อกำหนดเหล่านี้จะเป็นส่วนเติมเต็มให้กับ service ต่างๆในแง่ของความสมบูรณ์ของข้อมูลเพื่อลดปัญหาเรื่องของการเข้าใจผิดระหว่าง consumer และ provider

Read more…

general information ,

Lightweight SOAs ทางเลือกของอนาคต

January 28th, 2010

แปลและย่อมาจาก MS Architecture Journal : Lightweight SOAs: Exploring Patterns and Principles of a New Generationof SOA Solutions

Introduction
ตลอดหลายปีที่ผ่านมาหลายคนเฝ้ามองและตั้งคำถามว่าเพราะอะไรถึงทำให้วิธีการสร้าง Service Oriented (SOA) ด้วยวิธีการแบบดั้งเดิมถึงไม่สามารประสบความสำเร็จในเรื่องของการเพิ่มคุณค่าทางธุรกิจและตอบสนองความต้องการทางธุรกิจได้อย่างรวดเร็ว เหมือนกับตอนที่มันถูกสร้างขึ้น เนื่องจากโจทย์สองข้อนี้ถือเป็นหัวใจหลักในการนำเสนอเรื่องของ SOA เข้ามาในองค์กร ในบทความนี้เราจะมาพิจรณาถึงจุดต่างๆในสถาปัตยกรรมของมันที่เป็นปัจจัยให้เราไม่สามารถทำ SOA ได้สำเร็จได้ไม่ว่าจะเป็น ความซับซ้อนของ SOAP, WS-* หรือ Enterprise Service Bus เอง หลังจากนั้นเราจะนำเสนอสถาปัตยกรรมทางเลือกที่ดูยืดหยุ่นกว่า ไม่ซับซ้อนมาก อย่าง REST และ Web-Oriented Architecture

SOA: Architecting Without Constraints
SOA ถือเป็นเสาหลักของ distributed system ในช่วงหลายปีที่ผ่านมาโดยที่หัวใจหลักของ SOA คือความสามารถในการตอบสนองของฝั่ง IT ที่มีต่อการเปลี่ยนแปลงทางธุรกิจอย่างรวดเร็วในปัจจุบันด้วยการนำเสนอแนวคิดของการสร้างเซอร์วิสใหม่ๆจากการประกอบเอาเซอร์วิสอินเทอร์เฟสหลักที่ถูกเตรียมไว้แล้ว ซึ่งเซอร์วิสหลักเหล่านั้นจะถูกนำกลับมาใช้ได้บ่อยมากทำให้ระยะเวลาในการสร้างเซอร์วิสใหม่ลดลงไปอย่างมาก แต่ข้อเสียหลักๆของ traditional SOA คือมันไม่มี Constraints หรือข้อกำหนดหลักว่าการทำ SOA ต้องประกอบไปด้วยคุณลักษณะอะไรบ้างซึ่งถือว่าเป็นข้อเสียหลักของมันเลยเพราะทุกคนก็จะตีความและทำกันไปแบบไร้ทิศทาง สำหรับปัจจุบัน SOA นั้น ถ้าเราพิจรณาจากวิธีการทางสถาปัตยกรรมจะพบว่าการได้มาซึ่งวิธีการทำงานแบบในลักษณะนี้นั้น SOA แบบดั้งเดิมจำเป็นต้องมีคุณลักษณะพื้นฐานดังนี้

  • ต้องมีการยกระดับให้ SOAP และ WSDL ให้เป็นอินเทอร์เฟสหลักสำหรับการเชื่อมต่อกับเซอร์วิสต่าง
  • ใช้มาตรฐานตระกูล WS-* เข้ามารับมือกับการทำงานระดับ mission-critical
  • ติดตั้ง ESB เพื่อใช้สำหรับซ่อนการทำงานที่ซับซ้อนของการเชื่อมต่อเซอร์วิสและการประสานงานข้ามแพลทฟอร์มและโปรโตคอล
  • ใช้ Integration Server เข้ามาช่วยในเรื่องของการจำลอง complex business process
  • ใช้ SOA-governance tool เข้ามาช่วยในเรื่องของการจัดการและบริหารภาพรวมทั้งหมดของ SOA
  • ซึ่งดูจากลิสท์แล้วเรายังเห็นว่ามันดูเรียบง่าย และเมื่อเราร่างภาพออกมาเราจะได้โครงสร้างของ SOA ออกมาคร่าวๆดังภาพ

Read more…

general information , ,