บทความที่ได้รับความนิยม

แสดงบทความที่มีป้ายกำกับ Development แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Development แสดงบทความทั้งหมด

Load Balancing






อธิบายการทำงานของระบบ
จากเครื่อง Client ทำการร้องขอไปยัง WebServer โดยมี ScripLoadBalance ทํา การ redirect ไปยัง Server ที่มีการเข้าใช้บริการน้อยที่สุดสามารถตรวจเช็คได้จาก Database ที่มีการเก็บข้อมูลมาจาก Server 1, 2, n...แบบ Real Time

อุปกรณ์
1. Computer Server   จำนวน 2 เครื่อง
2. Computer Test   จำนวน 2 เครื่อง
3. Web Server Load Balance   จำนวน 1 เครื่อง
4. Switch   จำนวน 1 เครื่อง

ขั้นตอนการทำเว็บเซิฟเวอร์
1. คลิกที่ Start > Setting > Control Panel
2. ดับเบิ้ลคลิกที่ Add or Remove Program
3. คลิกที่ Add/Remove Windows Components
4. คลิกเลือกที่ Internet Information Services (IIS)
5. คลิกปุ่ม Next> เพื่อเริ่มติดตั้ง
6.กรณีระบบถามหาตัวติดตั้ง WindowsXP ให้คลิกปุ่มOKแล้วทำการ Browse หาแผ่น CD
 ติดตั้ง Windows XP ห้อง i386
7. คลิกปุ่ม Open, OK
8.ระบบบจะทำ การติดตั้ง IIS ดังรูป
9. คลิกปุ่ม Finish

การปรับแต่ง IIS
1. ทําการคลิกขวาที่ไอคอน My Computer > Manage
2. คลิกที่ Services and Applications > Internet Information Services > Web Sites > Default Web Site
3. เริ่มปรับแต่งโดยการคลิกขวาที่ Default Web Site > Properties
4. แท็บ WebSite
• Description : ระบุชื่อเว็บไซต์ที่ต้องการเช่น www.ftim.kmutnb.ac.th
• IP Address : เลือก IP Address ที่ต้องการใช้เรียกเว็บไซต์ (หากต้องการให้เรียกได้ทุก IP ก็ เลือกเป็น All Unassigned)
• TCP Port : พอร์ตในการเรียกใช้เว็บไซต์ เลือกเป็น 80 กรณ๊ใช้ port 80 การเรียกเว็บไซต์ไม่จําเป็นต้องอ้างอิงพอร์ต เช่น http://192.168.1.5 (เบื้องหลัง เป็น http://192.168.1.5:80) กรณีต้องการเปลี่ยนพอร์ตอาทิ เปลย่ีนเป็น พอร์ต 81 ตอนเรียกเว็บก็เรียกเป็น http://192.168.1.5:81
5.แท็บ Home Directory
LocalPath : พาทที่ต้องการเก็บเว็บไซต์ปกตจิะเป็น Inetpub\wwwroot
[ ] Script source access : ต้องการให้มองเห็นสคริปต์ไฟล์
/ ] Read : อ่านไฟล์ได้
[ ] Write : เขียนทับไฟล์ได้
[ ] Directory browsing : ต้องการให้สามารถมองเห็นข้อมูลในไดเร็กทอรีได้
/ ] Log visits : มีการเก็บล็อกไฟล์ไว้
/ ] Index this resource : มีการเรียกหาไฟล์ index
6.แท็บ Document
เพิ่มไฟล์ Home Page หรือ ไฟล์หน้าแรกที่ต้องการเรียกใช้งานโดยการคลิกที่ปุ่ม Add
index.html > ภาษา HTML
index.shtml > ภาษา SHTML
index.asp > ภาษา ASP
index.aspx > ภาษา ASP.NET
ในการใช้งานจริงๆให้เพิ่มเฉพาะภาษาที่เราใช้งานในระบบเท่าน้ัน
เช่น กรณีใช้ภาษา ASP ก็ให้เพิ่ม index.html,index.asp
7. เมื่อปรับทุกส่วนเสร็จแล้วให้คลิกที่ปุ่ม OK
8. ทำการ Stop และ Start IIS 1 รอบ
9. เสร็จสิ้นการปรับแต่ง IIS

Mobile :: "สวิตช์ไฟ" ไร้สาย


          ในงาน CES 2013 ที่จะเริ่มในสัปดาห์นี้ เบลคิน (Belkin) เตรียมประกาศเปิดตัว WeMo Ligh Switch "สวิตช์ไฟ"ที่เชื่อมต่อไร้สายกับอินเทอร์เน็ต เพื่อให้ผู้ใช้สามารถสั่งควบคุมการเปิดปิดจากที่ใดก็ได้ผ่านแอพฯบนสามาร์ทโฟน Android ของคุณ...เจ๋งอ่ะ
         ต่อไปหากคุณลืมเปิดไฟตอนออกจากสำนักงานในยามค่ำคืน คุณไม่ต้องกลับมาที่ออฟฟิศ เพื่อจัดการเรื่องดังกล่าว เพียงแค่หยิบมือถือ หรือแท็บเล็ต Android สั่งรันแอพฯ แล้วเลือกหลอดไฟที่ต้องการเปิดให้ส่องสว่าง หรือปิดบางดวงที่ไม่จำเป็น เพียงแค่นี้ก็เรียบร้อยแล้ว หรือในกรณีที่คุณต้องกลับบ้านดึก แต่ต้องการเปิดไฟที่บ้านให้สว่างไว้ เพื่อความปลอดภัย ก็สามารถทำได้เช่นกัน นอกจากจะ WeMo จะให้คุณสามารถเปิดปิดไฟจากที่ไหนก็ได้แล้ว มันยังมีออปชันใหัคุณตั้งเวลาการเปิดปิดได้อีกด้วย (ไม่ใช่แค่เตือนเท่านั้น) คราวนี้เวลาไปเที่ยว หรือไม่อยู่บ้านหลายวัน ก็เพียงแค่สั่งให้สวิตช์ไฟอัจฉริยะ Belkin WeMo จัดการเปิดปิด
ไฟตามที่กำหนดได้อย่างง่ายดาย 

           ก่อนหน้านี้ WeMo ของ Belkin จะสนับสนุนการทำงานร่วมกับอุปกรณ์ iOS เท่านั้น แต่ล่าสุด ทางบริษัทได้เพิ่มการสนับสนุนอุปกรณ์ Android เข้าไปด้วยแล้ว โดยจะเปิดตัวสวิตช์ไฟอัฉริยะดังกล่าวในงาน CES 2013 ที่ลาสเวกัส คาดว่า ผลิตภัณฑ์ดังกล่าวจะเปิดตัวในช่วงปลายปีนี้ อืม...แม้แต่สวิตช์ไฟยังต้องฉลาดให้ทันกับอุปกรณ์อื่นๆ เลยนะเนีย ไม่งั้นตกเทรนด์

Extreme Programming (XP) คืออะไร

Extreme Programming (XP)


                 เป็นกระบวนการพัฒนาซอฟต์แวร์แบบ agile (lightweight)XP มี practices ที่น่าสนใจเช่น strong customer orientation, planning game , very short release, test-first coding, etc 



XP มีจุดอ่อนคือ

  • ทำการ maintenance ยาก
  • เกิด error-prone
  • ปัญหาการมีตัวแทนลูกค้าหลายคน
  • ปัญหาที่เกิดจากการทำ release อย่างรวดเร็ว
  • automated test case XP ไม่ใช้เทคนิคต่อไปนี้
  • IEEE 830 and Requirements specification Document
  • Requirements as the basis for software plans
  • Function Point Analysis (COCOMO)
  • Code first
  • UML
  • Allocated requirements
  • Waterfall model

XP vs. Capability Maturity Model (CMM)

          CMM มี 5 level ใน level 2 เรียกว่า Repeatable มี 6 KPAs หนึ่งในนั้นคือเรื่อง Requirements Management จุดอ่อนสำคัญของวิธี XP คือไม่ทำ documentation of requirements ดังนั้นจึงทำให้เกิดปัญหาดังนี้
  • written specification are missing or perfunctory (การเขียน specification ผิดพลาดหรือไม่สนใจที่จะเขียน)
  • Maintenance costs are usually well above average (ค่าใช้จ่ายในการ maintenance สูงกว่าที่เฉลี่ยไว้)
  • Litigation probability is alarming high (เกิดการฟ้องร้องคดีสูงจนน่าตกใจ)
ซึ่งมีผลกับ maintenance มากที่สุดทั้ง continuous maintenance และ discrete maintenance ดังนั้นวิธีการ XP ไม่ถูกยอมรับใน CMM/CMMI จึงมีการ modify XP โดยการจัดการ Requirement คือการทำ stories, onsite customer และ continuous integration ทำให้ modify XP ถูกยอมรับใน CMM/CMMI ใน level 2

XP vs. Sommerville-Sawyer model

Sommerville-Sawyer model มี 3 ระดับ คือ Defined Level – มากกว่า 85 point , Repeatable Level – มากกว่า 55 point แต่น้อยกว่า 85 point , Initial Level – น้อยกว่า 55 point มี 66 practice XP ถูกประเมินได้เพียง 31 point ถูกจัดอยู่ใน Initial Level เป็นระดับที่มีความเสี่ยงมากที่สุด ซึ่งมีเพียง 7 basic practices of Sommerville-Sawyer model เท่านั้นที่สนับสนุน XP เต็ม ๆ ดังนั้นจึงมีการ modify XP เมื่อทำการประเมินใหม่แล้วได้ point สูงขึ้นเป็น 78 point อยู่ใน Repeatable Level ทำให้ modify XP ถูกยอมรับใน Sommerville-Sawyer model ใน level 2

Reconciling XP with document requirements

               บุคคลที่สำคัญที่สุดใน Modify XP คือ XP tester/analyst เป็นบุคคลที่ทำการวิเคราะห์สำหรับ requirement document and requirement management จากเดิม XP ไม่มีการทำ requirement document ดังนั้นจึงไม่ถูกยอมรับใน CMM และ Sommerville-Sawyer model ดังนั้นจึงพัฒนาเป็น Modify XP ซึ่งมีการทำ Requirements โดย XP tester/analyst และ Programmer ยังคงมองว่า Modify XP ยังเป็น Lightweight เหมือน XP เดิม Multiple customer representatives เดิม XP มองว่ามีเพียง customer representative แค่คนเดียว แต่ในความเป็นจริงไม่สามารถมองอย่างนั้นได้ ดังนั้นจึงมีการปรับปรุงตามแนวทาง Sommerville and Sawyer เพื่อให้สามารถพิจารณา many customer representatives  ได้ดังนี้

Identify and consult system stakeholders

  • Collect requirements from multiple viewpoints
  • Be sensitive to organizational and political considerations
  • Plan for conflicts and conflict resolution
  • The tester/anayst answers programmer’s questions
  • The tester/anayst has every contact with the customer representatives
  • The customer representatives participated in a modified Planning Game

Modified Planning Game ในหลายๆ customer representatives จะมี senior customer 1 คน โดยจะมีบทบาทหลักคือลดความขัดแย้งกันระหว่าง customer representatives และเป็นไปได้ที่ senior customer จะไม่มี domain knowledge แต่ customer representatives มี และ มีเวลาในการโต้แย้งรายละเอียดของระบบที่จะสร้าง ในการปรับปรุง Planning Game จะได้ผลคล้ายกับ Planning Game เดิม คือมี 3 ระยะ ดังนี้

  • first move เป็นของธุรกิจ ตัวอย่าง customer representatives ทำ story cards
  • second move ถูกทำโดย Development ซึ่ง developer ประมาณ effort in Ideal Engineering Time และ ประเมินความเสี่ยงที่เกิดขึ้นในแต่ละ story อาจใช้วิธี Delphi method
  • third move ตัดสินใจในเรื่องขอบเขต เช่น งบประมาณและเวลา
Modifying the XP Lifecycle XP เดิมมีมุมมองการวางแผนใช้เวลาสั้นที่สุดคือไม่เกิน 2 เดือน ต่อ 1 release แต่มีปัญหาคือในการที่ใช้เวลาน้อยนั้นทำให้เกิดความเข้าใจที่ผิดได้ ดังนั้นจึงเสนอให้มีการปรับปรุง XP Life cycle และแนะนำให้ใช้ Requirement Engineering Phase ในตอนเริ่มต้น Project โดย phase นี้ใช้เวลาไม่นาน และมีการทำต่างๆ ดังนี้
  • Collect the use scenarios
  • Assess system feasibility
  • Identify system stakeholders
  • Roughly describe the system’s operating environment
  • Look for main domain constraints
  • Prototype poorly understood requirements

Conclusions

ใน paper นี้ เสนอการปรับปรุง 3 วิธีให้กับ XP methodology
  • การเขียนเอกสาร Requirement ที่จัดการโดย tester/analyst
  • ปรับปรุง planning game ตาม customer representatives หลายคน ( XP เดิมมี customer representative คนเดียว)
  • Requirement Engineering Phase ตอนเริ่มต้นของ Project จัดการ wide perspective ของระบบที่จะพัฒนาต่อไป จากประสบการณ์แสดงให้เห็นถึงการแก้ไขอย่างง่ายและผลลัพธ์ methodology เกือบจะ lightweight เท่ากับ XP เดิม
ตัวชี้ที่สำคัญของการพัฒนาคือการเพิ่มขึ้นของจำนวน Sommerville-Sawyer point ถ้าองค์กรใช้ XP เดิมจะได้ 31 point ของ basic practices และจะเป็นประเภท Initial หลังจากพัฒนาโดยการปรับปรุงได้ถึง 78 point ใน basic practices และอยู่ในประเภท Repeatable ซึ่งเป็นตัวชี้ที่ดีในการพิจารณา

Agile คืออะไร


Agile คืออะไร

สำหรับใครที่ยังไม่แน่ใจว่า Agile คืออะไรแล้วมันจะช่วยให้เราทำงานได้ดีขึ้นยังไง ลองใช้เวลาที่หน้านี่ซักนิดเพื่อทำความเข้าใจใน Agile และเรียนรู้แนวคิดและแนวทางปฏิบัติของ Aglie

Agile Software Development
เรามาเริ่มกันที่พื้นฐานก่อนดีกว่า Agile ไม่ใช่โปรแกรมหรือขั้นตอนการพัฒนาซอฟแวร์ แต่เป็น
แนวคิดในการพัฒนาซอฟแวร์ที่คำนึงถึงความพึงพอใจของลูกค้าสูงสุด โดยอาศัยการประสานงานและร่วมมือระหว่างลูกค้าและกลุ่มผู้พัฒนาอย่างใกล้ชิด ร่วมทั้งอ้าแขนรับความต้องการที่เปลี่ยนแปลง เพื่อผลิตซอฟแวร์ที่ตรงความต้องการของลูกค้าอย่างแท้จริง


Agile Manifesto (English version)


Manifesto เป็นคำศัพท์ที่คนไทยไม่ได้ใช้บ่อยนัก เอาเป็นว่ามันคือแนวคิดหลักของ Agile ที่ให้ความสำคัญกับสิ่งเหล่านี้

การประสานงานและทำงานร่วมกันระหว่างบุคคลในกลุ่มนักพัฒนา มากกว่า การใช้เครื่องมือหรือ Process ในการสื่อสารภายในทีม

           กล่าวง่ายๆคือเน้นการพูดคุยกันระหว่างนักพัฒนามากกว่าการใช้ Process หรือเครื่องมือในการสื่อสาร ตัวอย่างเช่น การรายงาน Bug ของ Tester ไปยัง Developer ควรมีการพูดคุยทำความเข้าใจถึงปัญหาที่เกิดระหว่าง Tester และ Developer ประกอบกับการใช้ Bug tracking tool เพราะการพูดคุยจะทำให้ Developer เข้าใจปัญหาได้อย่างรวดเร็วและสามารถแก้ไขได้อย่างถูกต้อง นอกจากนี้ยังเน้นความเป็้นทีมและความรับผิดชอบส่วนบุคคลที่มีที่มีต่อทีม โดยทุกคนภายในทีมควรให้เกียรติซึ่งกันและกันและร่วมรับผิดชอบต่อโปรเจกต์
การสร้างซอฟแวร์ที่สามารถใช้งานได้ มากกว่า การผลิตเอกสารที่มากเกินความจำเป็นในการอธิบายการทำงานของซอฟแวร์

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

           สัญญาที่ทำระหว่างบริษัทผลิตซอฟแวร์และลูกค้าเป็นการระบุความต้องการของลูกค้าโดยใช้ข้อมูลของสิ่งแวดล้อม ณ เวลาที่ทำสัญญา แต่การผลิตซอฟแวร์ั้นั้นใช้เวลาและการเปลี่ยนแปลงเกิดขึ้นได้ตลอดเวลา ดังนั้นความร่วมมือจากลูกค้าเป็นสิ่งสำคัญที่จะทำให้ซอฟแวร์ที่ผลิตมีความถูกต้องตามความต้องการของลูกค้าในเวลาปัจจุบัน ถ้าหากขาดความร่วมมือจากลูกค้าซอฟแวร์ที่ผลิตขึ้นก็จะเป็นซอฟแวร์ที่ตอบสนองความต้องการในอดีต ณ เวลาที่ทำสัญญา แต่ไม่แน่ว่าจะใช้ได้เมื่อถึงกำหนดส่งซอฟแวร์จริง การให้ลูกค้ามีส่วนร่วมในการพัฒนาซอฟแวร์ยังมีผลทางด้านความสัมพันธ์และความไว้วางใจของลูกค้า เพราะลูกค้าจะได้รับรู้ถึงความคืบหน้าและปัญหาระหว่างการพัฒนาอย่างใกล้ชิด
การตอบสนองต่อการเปลี่ยนแปลง มากกว่า การดำเนินงานตามแผนงานที่ว่างไว้ล่วงหน้าซึ่งไม่คำนึงถึงการเปลี่ยนแปลง 

           เมื่อความต้องการเปลี่ยน นักพัฒนาควรจะยอมรับกับการเปลี่ยนแปลงและตอบสนองต่อการเปลี่ยนแปลง ไม่ควรยึดติดกับแผนงานที่ว่างไว้ล่วงหน้าในระยะเวลานาน เพราะการดำเนินการตามแผนงานจะส่งผลให้ซอฟแวร์ที่ผลิตไม่สามารถใช้งานได้ในที่สุด การเปลี่ยนแปลงที่เกิดขึ้นควรจะมีการถ่ายทอดภายในกลุ่มนักพัฒนาและลูกค้า เพื่อร่วมการตัดสินใจในการปรับเปลี่ยนแผนงานให้สอดคล้องต่อการเปลี่ยนแปลงและตอบสนองความต้องการของลูกค้า

              อย่างที่เราได้กล่าวไว้แล้วว่า Agile เป็นเพียงคอนเซปต์ที่ไม่ได้ระบุขั้นตอนการปฏิบัติไว้ชัดเจน ดังนั้นผู้ที่ต้องการนำ Agile ไปใช้ในการพัฒนาซอฟแวร์จึงต้องศึกษาวิถีปฏิบัติ (Methodology) ซึ่งกำหนดขั้นตอนและวิธีการปฏิบัติที่สอดคล้องต่อแนวคิด Agile


          ในปัจจุบันมีวิถีปฏิบัติอยู่หลายแบบเช่น Scrum, Acceptance Test Driven Development และอื่นๆอีกมากมาย ซึ่งผู้อ่านสามารถหาข้อมูลได้ที่นี่เช่นกัน

วัตถุประสงค์ของ Agile

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

2. ให้ทำงานโดยยึดที่ผลผลิตหรือ software เป็นหลัก เช่น เดิมเน้นเอกสารแต่ Agile ไม่
คำนึงถึงมากนัก แต่จะให้ความสำคัญที่ว่าเรามี s/w หรือของส่งให้ลูกค้าได้ตรงตามความต้องการหรือไม่

3. ให้ความสำคัญเรื่องของการติดต่อสื่อสาร เช่น เดิมมีสัญญาหรือ contact กันแต่ Agile ไม่สนใจ ให้มองที่ความสัมพันธ์ระหว่างผู้พัฒนาและลูกค้า

4. ยอมรับความเปลี่ยนแปลง เช่น เดิมต้องวางแผนให้ครบเป็นอย่างดี และทำตามแผน(Gantt chart) ให้ได้ แต่ Agile ไม่ต้องทำตามแผนแต่เน้นการสนองความเปลี่ยนแปลงที่เกิดขึ้นได้

ถ้าเรามีโปรเจคเก่าที่สามารถต่อเนื่องได้ ดังนั้นแสดงว่าเรามี Asset เดิมเพื่อมาตั้งต้นทำโปรเจคใหม่ เพราะฉะนั้นงานใหม่เราก็สามารถนำ Asset มาส่งมอบไปก่อนก็ได้





Agile Manifesto: http://agilemanifesto.org