วันพุธที่ 22 มีนาคม พ.ศ. 2560

SOA คืออะไร

SOA คืออะไร

Service-oriented architecture
SOA คือ การสร้างและพัฒนา ซอฟต์แวร์โดยใช้แนวคิดของ โครงสร้างของธุรกิจสมัยใหม่ ซึ่งมาจากแนวคิดที่ได้รับอิทธิพลมาจาก แนวคิดแบบ "รูปแบบ เป็นผลมาจาก การใช้งาน" (form follows function)
SOA คือ ชุดของซอฟต์แวร์หนึ่งๆ ที่ถูกออกแบบให้มีลักษณะที่ยืดหยุ่นต่อการใช้งานโดยจะปฏิบัติหน้าที่อยู่ระหว่างเฟส ของการพัฒนาระบบ (systems development) กับ การควบรวมการประมวลผล (integration in computing) ระบบใดๆ ที่ถูกออกแบบบนพื้นฐานของ SOA นั้น จะประกอบไปด้วยชุดของการปฏิบัติงานที่ทำหน้าที่เป็นตัวควบรวมการให้บริการ ซึ่งสามารถถูกนำมาใช้ได้กับระบบต่างๆที่หลากหลาย หรือ ระบบที่ถูกแบ่งแยกออกตาม หน่วยงานองค์กร หรือ ธุรกิจที่แตกต่างกัน
SOA ยังเป็นผู้จัดหาการให้บริการต่างๆให้กับผู้บริโภค เช่น web-based applications ที่ให้บริการในรูปแบบของ SOA-based services ตัวอย่างเช่น หน่วยงาน หรือ แผนกต่างๆที่ถูกแบ่งแยกภายในองค์กร สามารถนำ SOA service มาประยุกต์ใช้ร่วมกัน โดยระบบจะควบรวมการปฏิบัติแม้แต่ภาษาในการพัฒนาโปรแกรมที่แตกต่างกันแต่ละแผนก ดังนั้น หน่วยงานย่อยต่างๆ จึงถูกเรียกว่า Client จะได้รับผลประโยชน์ในการใช้งานและเข้าถึงระบบได้อย่างสะดวก และ เป็นที่เข้าใจง่ายยิ่งขึ้น ดังนั้น XML จึงเข้ามามีบทบาท เป็นตัวทำหน้าที่เป็น interface ให้กับ ระบบ SOA service SOA ทำหน้าที่ รวบรวม แอปพลิเคชันต่างๆ ที่ถูกพัฒนาในภาษาที่ต่างกัน ที่อยู่ภายในองค์กรเดียวกัน ด้วยวิธีการ Web-based environment และสามารถนำมาประยุกต์ใช้งานได้กับแพลทฟอร์มที่หลากหลายด้วย ในการติดต่อระหว่างหน่วยงาน แทนที่จะใช้ API ในระบบ SOA ออกแบบหน้าจอ interfaceที่ทำงานด้วย Protocols และ functionality ประเด็นสำคัญคือ การใช้งานของระบบ SOA นั้นจะร้องขอ "loose coupling of services" ด้วย Operating systems และ เทคโนโลยีอื่นที่สนับสนุนการปฏิบัติงานของแอปพลิเคชันเหล่านั้น SOA แบ่งฟังก์ชันออกเป็น หน่วยหรือ units หรือ การให้บริการ service อย่างชัดเจน ซึ่งผู้พัฒนาสามารถเข้าถึงได้ทางเครือข่ายในกรณีที่อนุญาตให้ผู้ใช้ สามารถใช้งาน ในการเพิ่มเติม หรือ นำข้อมูลกลับมาใช้ ในแอปพลิเคชันนั้นๆ
การให้บริการ และการสื่อสารกันระหว่างผู้ใช้ ด้วยวิธีการ ส่งต่อข้อมูลในลักษณะที่ถูกกำหนด และ สามารถใช้งานร่วมกันได้ ในลักษณะความร่วมมือในกิจกรรมการให้บริการหนึ่งๆหรือ มากกว่าก็ได้
SOA เห็นได้อย่างชัดเจนในรูปแบบหนึ่งของการทำงานในลักษณะ distributed computing และ modular programming ที่มีลักษณะเช่นเดียวกันกับ mashups, SaaS, และ Cloud Computing เหล่านี้เป็น ลูกหลานที่เกิดจากแนวคิดของ SOA

อ้างอิงจาก
https://th.wikipedia.org/wiki/Service-oriented_architecture

วันพฤหัสบดีที่ 16 มีนาคม พ.ศ. 2560

SaaS คืออะไร ทำงานอย่างไร

SaaS คืออะไร
SaaS (Software As A Service) คือ
SaaS หมายถึง ซอฟต์แวร์แอปพลิเคชั่นที่ให้บริการผ่านอินเทอร์เนตเป็นเว็บแอปพลิเคชั่น โดยผู้ใช้งานสามารถเรียกใช้บริการได้ตามต้องการตลอด 24 ชั่วโมง ยกเว้นช่วงเวลาที่ระบบชำรุดหรือ Down
ผู้ใช้บริการไม่ต้องดูแลรักษาระบบเอง ทำให้สะดวกในการใช้งานเพียงแค่เชื่อมต่ออินเทอร์เนตก็เข้าถึงบริการได้แล้ว

SaaS เป็นหนึ่งในสามของกลุ่ม cloud computing เรื่องอื่นๆ คือ Infrastructure As A Service (IaaS) และ Platform As A Service (PaaS)
ข้อดีของการใช้ SaaS
• เป็นตัวเลือกที่เข้าถึงง่าย
• โปรแกรม Saas สามารถเข้าถึงด้วยคอมพิวเตอร์ทุกแบบ หรือทุกๆ อุปกรณ์ได้ตลอดเวลา ได้ทุกที่ เพราะคนส่วมใหญ่จะคุ้นเคยกับการใช้งานอินเตอร์เนตดีอยู่แล้วทำให้ไมจำเป็นต้องใช้เวลาเรียนรู้การใช้งานอะไรมากมาย
• ต้นทุนต่ำ
• โปรแกรม Saas ไม่ต้องมีค่าธรรมเนียมในการขออนุญาตใช้งานนั่นหมายความว่าเริ่มต้นด้วยต้นทุนที่ต่ำได้ มี Saas provider (ผู้ให้บริการ Saas) คอยจัดการเรื่องระบบ IT infrastructure ให้ นั่นหมายความว่าใช้ต้นทุนทางด้าน IT ที่ต่ำกว่าทั้งสำหรับฮาร์ดแวร์ (Hardware), ซอฟแวร์ และคนดูแลระบบทั้ง
• ในการคิดค่าบริการโดยทั่วไปจะคิดค่าบริการในรูปแบบ pay-as-you-go (จ่ายตามการใช้งานจริง) ซึ่งเป็นส่วนช่วยให้ค่าใช้จ่ายในการใช้บริการต่ำ หรือหากจะจ่ายค่าบริการรายเดือนรายปีก็มีเช่นกัน ซึ่งจะมีค่าบริการที่แน่นอนและยังบริหารงบประมาณได้สะดวกกว่า ในหลายๆ รายจะมีส่วนลดเพิ่มเติมหากจ่ายค่าบริการล่วงหน้าระยะยาวเป็นรายปี, ราย 3 ปี หากมั่นใจว่าต้องใช้บริการนานๆ การจ่ายรายปีก็เป็นอีกทางเลือกในการลดค่าใช้จ่ายในการใช้บริการเช่นกัน
• อัพเกรดได้สะดวกและง่าย
• เพราะ Saas provider นั้นเป็นผู้จัดการในเรื่องอัพเดทและอัพเกรดโดยที่ผู้ใช้บริการไม่ต้องดาวน์โหลดหรือ Install เอง รวมทั้ง Saas ยังช่วยจัดการเรื่องความสามารถในการใช้งานบริการให้ใช้งานได้ตลอดเวลาหรือเกือบตลอดเวลา โดยผู้ใช้บริการก็ไม่ต้องสนใจเรื่องบฮาร์ดแวร์, ซอฟแวร์ และ bandwidth จากปริมาณใช้งานที่เพิ่มขึ้น
• รวมเข้ากับระบบอื่นได้ดี
• ผู้ให้บริการ SaaS นั้นจะยอมให้ปรับแต่งปริมาณต่างๆ ได้ตามที่ผู้ซื้อต้องการ และยังมีให้บริการ API ให้กับผู้ใช้บริการเพื่อรวมเข้ากับระบบเดิมของผู้ใช้บริการได้อย่างแนบเนียน
• รองรับการใช้งานปริมาณมาก
• การให้บริการผ่าน Cloud สามารถรองรับการใช้งานปริมาณสูงมากๆ ได้ ตามที่ผู้ใช้บริการเลือก option การใช้บริการเอาไว้
ข้อเสียของการใช้ SaaS
• ข้อมูลอยู่กับผู้ให้บริการ
• ถือเป็นหนึ่งความเสี่ยงทางข้อมูล เพราะข้อมูลการใช้งานในเว็บแอปพลิเคชั่นนั้น จะถูกเก็บอยู่กับผู้ให้บริการ SaaS ซึ่งการใช้บริการเราควรศึกษานโยบายการเก็บข้อมูลของเรา รวมไปถึงการบังคับใช้ของนโยบายที่เขียนไว้ต้องไว้ใจได้ หากเลือกใช้ผู้ให้บริการรายใหญ่ก็ช่วยลดความเสี่ยงลงไปได้ เพราะถือว่ามีความน่าเชื่อถือในระดับนึง
• เวอร์ชันใหม่กระทบถึงผู้ใช้บริการทุกราย
• ในการให้บริการ SaaS นั้นจะเป็นการใช้ source code ชุดเดียวกัน เมื่อมีการปรับปรุงเปลี่ยนแปลง จะทำให้เกิดผลกระทบกับผู้ใช้งานทุกราย

อ้างอิง
http://blog.bossturteam.com/saas-คืออะไร-software-service/

วันพุธที่ 15 มีนาคม พ.ศ. 2560

Pentaho ทำงานอย่างไร

Pentaho ทำงานอย่างไร

Pentaho Open Source BI
Pentaho BI Suite
Pentaho ซึ่งมีฟังก์ชั่นการใช้งานต่างครบครัน ไม่ว่าจะเป็น Data Integration, Reporting, Ad-hoc Query, Analysis, Dashboard หรือแม้แต่ Data Mining ดังนั้น Pentaho จึงเป็นอีกหนึ่งทางเลือกที่คุ้มค่าในการเลือกเพื่อมาพัฒนาระบบ DWH&BI Pentaho รวบรวมโปรแกรมต่างๆทางด้าน BI เข้าด้วยกันเพื่อทำงานร่วมกันเป็น Solution ทางด้าน BI โดยสามารถแบ่งเป็นส่วนประกอบหลักได้ 6 ส่วนคือ
1. Platform
2. Reporting
3. Ad-hoc Query
4. Analysis
5. Dashboard
6. Data Integration

1. Plateform

Solution Engine เป็นหัวใจหลัก Pentaho Platform ทำหน้าที่อ่านและสั่ง process (Action Sequences) ของ BI ต่างๆ ให้ทำงาน ตัวอย่างเช่น Reporting, Analysis, Dashboard

Solution Repository ทำหน้าที่เก็บ template, query, report, business rule, process, style sheet และ action sequence ซึ่งเก็บอยู่ใน Database ที่เรียกว่า Solution Database

Runtime Engine ทำหน้าที่อ่าน resource ต่างๆ ไม่ว่าจะเป็น query, report, business rule, process, style sheet และ action sequence จาก Solution Repository มาเพื่อประมวลผลแล้วทำการบันทึกข้อมูลการประมวลผลลงในส่วนของ Auditing ซึ่งตัว Runtime Engine ก็คือ BI Virtual Machine เป็น environment สำหรับประมวลผลตัว Action Sequence

BI Components คือ ส่วนประกอบหลักที่ถูกเรียกใช้งานและถูกควบคุมการทำงานผ่าน Action Sequence โดย BI Component พื้นฐานที่ติดมากับ Pentaho BI Platform ได้แก่ reporting, charting, OLAP, ETL, dashboard, workflow, scripting เป็นต้น นอกจากนี้เรายังสามารถนำ Component อื่นๆ ที่เขียนขึ้นเองหรือของ Third Party เข้ามาใช้ต่อพ่วงกับ Pentaho BI Platform ได้อีก อย่างเช่น email, print

API คือส่วนของ Application Programming Interface ที่ถูกออกแบบมาในลักษณะ SOA (Service Oriented Architecture) ทำให้ง่ายแก่การเรียกใช้ เพียง 5 บรรทัดของ java code ก็สามารถเรียกใช้ HTTP, JMS, SOAP, AJAX, POJOs, BPEL ผ่าน Action Sequence ได้

User Interface คือส่วนที่ใช้แสดงผลให้กับผู้ใช้งานโดย โดยสร้างการแสดงผลมาจาก html ซึ่งสามารถแปลงมาจาก XML และยังสามารถใช้งาน AJAX, Single Sign on และ Security ร่วมกับ User Interface ได้

Client คือส่วนที่ผู้ใช้งานสามารถเรียกประมวลผล Action Sequence, Workflow, ESB, SOA ได้เป็นต้น โดยสามารถเป็นได้ทั้งแบบ Remote หรือ Local การเรียกใช้งานก็สามารถเรียกผ่าน Web Browser หรือจะเรียกผ่าน Application ที่เขียนขึ้นมาเองก็ได้

Configuration ใช้กำหนดชื่อ Component ที่ต้องการเรียกใช้ พร้อมทั้งกำหนดค่าพารามิเตอร์มาตรฐานในการเรียกใช้ไว้ในส่วนของ Configuration

ความสามารถของ Platform ประกอบด้วย
- รองรับมาตรฐาน Java 100%
- เชื่อมต่อกับ Data Source, Portal และ Application ต่างๆ ผ่านมาตรฐานเปิด (Open Standard)
- เชื่อมต่อกับโปรแกรมตั้งเวลา (Scheduling) การตรวจสอบรหัสผู้ใช้งานเพื่อเข้าระบบ (Authentication) และสิทธิ์การใช้งานของแต่ละรหัสผู้ใช้งาน (Authorization)
- รองรับการปรับแต่ง Application โดยใช้ APIs, web services หรือทำการแก้ไข template, business rules หรือแม้แต่ source code
- ออกแบบโดยเน้น workflow-base จึงช่วยให้สามารถแก้ไขระบบตามความต้องการได้
- มีการบันทึก log การเข้าใช้งานของผู้ใช้งานแต่ละคน ทำให้สามารถติดตามการใช้งานของผู้ใช้งานแต่ละคนได้
2. Reporting
Pentaho Reporting ช่วยให้ผู้ใช้งานสามารถเข้าถึงข้อมูลในรายงานตาม Layout ที่กำหนด (Static Report) ได้หลายรูปแบบทั้งในรูปแบบของ PDF, Excel, RTF, Text File ซึ่งรายงานดังกล่าวสามารถจัดส่งถึงผู้ใช้งานผ่านทาง web portal, email หรือแม้แต่ใน application ต่างๆ
ความสามารถของ Reporting ประกอบด้วย
• รองรับมาตรฐาน Java 100%
• มีความยืดหยุ่นในการ deploy รายงานที่ออกแบบในเครื่อง desktop ไปเป็นรายงานที่อยู่บนเว็บซึ่งสามารถตอบโต้กับผู้ใช้งานได้
• รองรับการเชื่อมต่อกับข้อมูลได้ทั้งแบบที่เป็น relational database, OLAP หรือ XML
• กำหนดรูปแบบของรายงานได้หลายรูปแบบ เช่น PDF, Excel, RTF, Text File
• มีเครื่องช่วยในการสร้างรายงาน ช่วยให้สร้างรายงานได้สะดวกและรวดเร็วมากขึ้น
• เชื่อมต่อกับ data source ได้โดยตรงหรือจะผ่าน metadata ก็ได้
• ตั้งเวลาในการสร้างรายงานหรือจะสร้างรายงานทันทีที่ต้องการใช้งาน
• ส่งรายงานได้หลายช่องทาง เช่น email, printer, file server, web portal, application ต่างๆ หรือแม้แต่ web service
• แสดงข้อมูลในรายงานได้หลายหลายรูปแบบ เช่น table, chart, template, sub report, drill link, header, footer เป็นต้น
• รองรับ JDBC 2.0 เป็นต้นไป
• รองรับหลากหลายฐานข้อมูล เช่น Oracle, DB2, Microsoft SQL, MySQL, PostgreSQL และอื่นๆ
• รองรับหลายการใช้หลาย data source ในหนึ่งรายงาน
• สามารถแยกรายงานหนึ่งตัวออกเป็นหลายไฟล์ตามเงื่อนไขที่ระบุ เช่นแยกตามกลุ่มผู้ใช้งาน โดยในแต่ละไฟล์ สามารถระบุได้ว่าจะจัดส่งรายงานด้วยวิธีใด เช่น ส่ง email, พิมพ์ออกเครื่องพิมพ์ ความสามารถทั้งหมดที่กล่าวมาเรียกว่า Report Bursting
• ระบุเงื่อนไขในการสร้างรายงาน ผู้ใช้งานสามารถระบุ parameter ได้ตามต้องการ

3. Ad-hoc Query
Pentaho Ad-hoc Query เป็นส่วนที่ต่อขยายจาก Pentaho Reporting ซึ่งจะช่วยให้ผู้ใช้งานสามารถสร้างรายงานแบบง่ายๆ ได้ด้วยตัวเอง โดยมีเครื่องมือลักษณะเป็น wizard อ่านข้อมูลจาก Metadata ที่ได้สร้างไว้ก่อนหน้านี้ซึ่งจะใช้ข้อความหรือคำศัพท์ที่ผู้ใช้งานคุ้นเคย ทำให้ผู้ใช้งานเข้าใจในข้อมูลที่จะเลือกมาสร้างรายงาน
ความสามารถของ Reporting ประกอบด้วย
• รองรับมาตรฐาน Java 100%
• สร้างรายงานง่ายๆ ได้ด้วยตนเอง เพียงลากวาง (drag and drop) ข้อมูลที่ต้องการ จาก metadata
• จัดเรียงข้อมูล (sorting) และกรองข้อมูล (filter) ได้ตามต้องการ
• ระบุขนาดกระดาษ, ชื่อรายงาน, ข้อความที่จะพิมพ์บน header และ footer ได้ตามต้องการ
• มี template ของรายงานให้เลือกใช้
• Ad-hoc query ที่สร้างขึ้นสามารถปรับปรุงรูปแบบให้ดีขึ้นได้ด้วย report designer โดยเจ้าหน้าที่ฝ่าย IT

4. Analysis

ช่วยให้ผู้ใช้งานสามารถวิเคราะห์ข้อมูลเชิงโต้ตอบ (Interactive) กับข้อมูลที่เก็บอยู่ในฐานข้อมูลโดยไม่จำเป็นต้องมีความรู้ด้าน Programming ผู้ใช้งานสามารถหาคำตอบจากคำถามทางธุรกิจที่ตนเองสงสัยได้ด้วยตนเอง
ความสามารถของ Analysis ประกอบด้วย
• รองรับมาตรฐาน Java 100%
• ผู้ใช้งานสามารถวิเคราะห์ข้อมูลได้ด้วยตนเองอย่างรวดเร็ว เพียงลากวางข้อมูลที่ต้องการ อีกทั้งยังสามารถ drill down ลงไปดูรายละเอียดข้อมูลที่ต้องการได้อีกด้วย
• แสดงข้อมูลในลักษณะ Cross tab report
• การดูข้อมูลในมุมมองต่างๆ (Dimension) ไม่ว่าจะมองมุมมองเดียว (Slice) หรือหลายมุมมอง (Dice)
• สามารถแสดงแผนภาพ (Chart) ตามข้อมูลที่เลือกได้
• คำนวณข้อมูลที่ซับซ้อนได้หลายหลายมุมมอง (Multi Dimensional)
• export ข้อมูลออกมาได้หลายรูปแบบ เช่น PDF, HTML, Excel, RTF, Text File
• รองรับ Multidimensional Expression (MDX) language เพื่อใช้ในการแสดงข้อมูลในรูปแบบที่ซับซ้อน
• ดูข้อมูลแบบลำดับชั้นได้ (hierarchy)
• รองรับ JDBC 2.0 เป็นต้นไป
• รองรับหลากหลายฐานข้อมูล เช่น Oracle, DB2, Microsoft SQL, MySQL, PostgreSQL และอื่นๆ
• กำหนดสิทธิ์การใช้งานได้ ข้อมูล RDBMS

5. Dashboard
ช่วยให้ผู้ใช้งานเห็นข้อมูลประสิทธิภาพการทำงาน (Performance) และเป้าหมายการทำงานทั้งในระดับส่วนตัว, ระดับแผนก, ระดับบริษัท ในรูปแบบที่เป็นรูปภาพหรือแผนภาพ ช่วยให้ผู้ใช้งานมองเห็นข้อมูลในแต่ละระดับในภาพรวมซึ่งสามารถนำไปพัฒนาปรับปรุงประสิทธิภาพการทำงานต่อไป
ความสามารถของ Dashboard ประกอบด้วย
• รองรับมาตรฐาน Java 100%
• ช่วยในการชี้วัดประสิทธิภาพการทำงาน
• ง่ายต่อการเข้าใจข้อมูลเนื่องจากแสดงข้อมูลในรูปแบบที่เป็นรูปภาพหรือแผนภาพ
• เชื่อมต่อกับ Pentaho Reporting และ Pentaho Analysis ซึ่งช่วยให้ผู้ใช้งานสามารถดูรายละเอียดของข้อมูลที่มีปัญหาหรือข้อสงสัยได้ (Drill down)
• เชื่อมต่อกับ Portal ทำให้สามารถแสดงข้อมูลได้หลายหลายและเป็นอิสระต่อกัน ซึ่งทำให้รองรับกลุ่มผู้ใช้งานที่มากขึ้น
• กำหนดเงื่อนไข เพื่อให้ระบบแจ้งเตือนผู้ใช้งานให้ทราบถึงสถานการณ์ต่างๆที่กำลังจะเกิดขึ้นซึ่งจะช่วยให้ผู้ใช้งานสามารถรับมือหรือแก้ปัญหากับสิ่งที่กำลังจะเกิดขึ้นได้

6. Data Integration
คือเครื่องมือที่ใช้สร้างคลังข้อมูล (Data Warehouse) โดยทั่วไปเครื่องมือดังกล่าวเรียกว่า ETL (Extraction, Transformation and Loading)
Extraction คือการดึงข้อมูลจากแหล่งต่างๆ ที่เราต้องการมาเก็บไว้ใน Data Warehouse โดยจะดึงมาเฉพาะข้อมูลใหม่ที่เพิ่มขึ้นมาหรือข้อมูลที่ถูกเปลี่ยนแปลงแก้ไข โดยข้อมูลที่ดึงมาจะมาเก็บพักไว้ก่อนซึ่งเรียกว่า Staging Area
Transformation คือการเปลี่ยนแปลงรูปแบบของข้อมูลที่ได้จากการ Extract ให้อยู่ในรูปแบบที่ถูกต้องตามโครงสร้างของ Data Warehouse
Loading คือการเก็บข้อมูลลงใน Data Warehouse หลังจากทำการแปลงข้อมูลให้อยู่ในรูปแบบที่ถูกต้อง
ความสามารถของ Pentaho Data Integration ประกอบด้วย
• รองรับมาตรฐาน Java 100%
• ง่ายต่อการใช้งาน ด้วยเครื่องมือต่างๆ ที่จัดเตรียมไว้ให้ในรูปแบบกราฟิก เพียงลากวางเครื่องมือต่างๆ ตามกระบวนการที่ต้องทำ
• รองรับ Slowly Changing Dimension และ Junk Dimension
• ออกแบบมาเน้นในเรื่องของประสิทธิภาพ (Performance) และการขยายระบบเมื่อระบบมีปริมาณการใช้งานที่มากขึ้น (Scalability)
• มีเครื่องมือในการเชื่อมต่อกับระบบ ERP (ERP Connectors)
• มีเครื่องมือที่ใช้ในการตรวจสอบความถูกต้องของข้อมูล (Data Quality)
• รองรับหลากหลายแหล่งข้อมูล (Data Source) ไม่ว่าจะเป็น database ต่างๆ, file base (DBF), text file, excel file และอื่นๆ
• เชื่อมต่อกับ Pentaho BI Suite ทำให้สามารถใช้ความสามารถอื่นๆร่วมกันได้เช่น เรื่องของการ scheduling, security, workflow เป็นต้น
• นำไปใช้งานในลักษณะต่างๆ ดังนี้ สร้างคลังข้อมูล (Populate Data Warehouse), Export ข้อมูลจากฐานข้อมูลไปเป็น text file, Import ข้อมูลจาก text file เข้าฐานข้อมูล, นำข้อมูลจากฐานข้อมูลหนึ่งไปเข้าอีกฐานข้อมูลหนึ่ง, ดูข้อมูลจากฐานข้อมูลที่มีอยู่


อ้างอิงจาก
http://www.goingjesse.com/pentaho-solution

WEKA คืออะไร

WEKA คืออะไร

โปรแกรม Weka (Waikato Environment for Knowledge Analysis) เริ่มพัฒนามาตั้งแต่ปี  1997 โดยมหาวิทยาลัย Waikato ประเทศนิวซีแลนด์ เป็นซอฟต์แวร์สำเร็จรูป   อยู่ภายใต้การควบคุมของ GPL License โปรแกรม Weka ได้ถูกพัฒนามาจากภาษาจาวาทั้งหมด  ซึ่งเขียนมาโดยเน้นกับงานทางด้านการเรียนรู้ด้วยเครื่อง  (Machine Learning) และ  การทำเหมืองข้อมูล  (Data Mining) โปรแกรมจะประกอบไปด้วยโมดูลย่อยๆ สำหรับใช้ในการจัดการข้อมูล  และเป็นโปรแกรมที่สามารถใช้ Graphic User Interface (GUI) และ ใช้ค่าส่งในการให้ซอฟต์แวร์ประมวลผล  และ สามารถรัน  (run) ได้หลายระบบปฏับติการ และสามารถพัฒนาต่อยอดโปรแกรมได้ เป็นเครื่องมือที่ใช้ทางานในด้านการทาดาตาไมนนิ่งท์รวบรวมแนวคิดอัลกอริทึมมากมาย ซึ่งอัลกอรทึมสามารถเลือกใช้งานโดยตรงได้จาก  2 ทางคอจากชุดเครื่องมือที่มีอัลกอริทึมมาให้ หรือเลือกใช้จากอัลกอริทึมที่ไดเขียนเป็นโปรแกรมลงไปเป็นชุดเครื่องมือเพี่มเติม และชุดเครื่องมือมีฟังก์ชั้นสำหรับการทำงานร่วมกับข้อมูล ได้แก่  Pre-Processing, Classification,Regression, Clustering, Association rules,  Selection และ Visualization 

ข้อดีโปรแกรม Weka
• เป็นซอฟต์แวร์ที่เป็นฟรีแวร์
• สามารถทางานได้ทุก OS
• เชื่อมต่อ SQL Database โดยใช้ Java Database Connectivity
• มีลักษณะที่ง่ายต่อการใช้งานเนื่องจากใช้
• สนับสนุนเกี่ยวกับการทาเหมืองข้อมูล (Data Mining)  

ข้อเสียโปรแกรม Weka
• หาโหลดใช้งานได้ยาก
• ฟังค์ชั้นอาจจะยังไม่ทันสมัย

การทำเหมืองข้อมูล คือ กระบวนการที่กระทำกับข้อมูล(โดยส่วนใหญ่จะมีจำนวนมาก) เพื่อค้นหารูปแบบ แนวทาง และความสัมพันธ์ที่ซ่อนอยู่ในชุดข้อมูลนั้น โดยอาศัยหลักสถิติ การรู้จำ การเรียนรู้ของเครื่อง และหลักคณิตศาสตร์
ความรู้ที่ได้จากการทำเหมืองข้อมูลมีหลายรูปแบบ ได้แก่
กฎความสัมพันธ์(Association rule) 
แสดงความสัมพันธ์ของเหตุการณ์หรือวัตถุ ที่เกิดขึ้นพร้อมกัน ตัวอย่างของการประยุกต์ใช้กฎเชื่อมโยง เช่น การวิเคราะห์ข้อมูลการขายสินค้า โดยเก็บข้อมูลจากระบบ ณ จุดขาย(POS) หรือร้านค้าออนไลน์ แล้วพิจารณาสินค้าที่ผู้ซื้อมักจะซื้อพร้อมกัน เช่น ถ้าพบว่าคนที่ซื้อเทปวิดีโอมักจะซื้อเทปกาวด้วย ร้านค้าก็อาจจะจัดร้านให้สินค้าสองอย่างอยู่ใกล้กัน เพื่อเพิ่มยอดขาย หรืออาจจะพบว่าหลังจากคนซื้อหนังสือ ก แล้ว มักจะซื้อหนังสือ ข ด้วย ก็สามารถนำความรู้นี้ไปแนะนำผู้ที่กำลังจะซื้อหนังสือ ก ได้
การจำแนกประเภทข้อมูล (Data classification) 
หากฏเพื่อระบุประเภทของวัตถุจากคุณสมบัติของวัตถุ เช่น หาความสัมพันธ์ระหว่างผลการตรวจร่างกายต่าง ๆ กับการเกิดโรค โดยใช้ข้อมูลผู้ป่วยและการวินิจฉัยของแพทย์ที่เก็บไว้ เพื่อนำมาช่วยวินิจฉัยโรคของผู้ป่วย หรือการวิจัยทางการแพทย์ ในทางธุรกิจจะใช้เพื่อดูคุณสมบัติของผู้ที่จะก่อหนี้ดีหรือหนี้เสีย เพื่อประกอบการพิจารณาการอนุมัติเงินกู้
การแบ่งกลุ่มข้อมูล (Data clustering) 
แบ่งข้อมูลที่มีลักษณะคล้ายกันออกเป็นกลุ่ม แบ่งกลุ่มผู้ป่วยที่เป็นโรคเดียวกันตามลักษณะอาการ เพื่อนำไปใช้ประโยชน์ในการวิเคราะห์หาสาเหตุของโรค โดยพิจารณาจากผู้ป่วยที่มีอาการคล้ายคลึงกัน
จินตทัศน์(Visualization)
สร้างภาพคอมพิวเตอร์กราฟิกที่สามารถนำเสนอข้อมูลมากมายอย่างครบถ้วนแทนการใช้ขัอความนำเสนอข้อมูลที่มากมาย เราอาจพบข้อมูลที่ซ้อนเร้นเมื่อดูข้อมูลชุดนั้นด้วยจินตทัศน์
ขั้นตอนการทำเหมืองข้อมูล
1.ทำความเข้าใจปัญหา
2.ทำความเข้าใจข้อมูล
3.เตรียมข้อมูล
4.สร้างแบบจำลอง
5.ประเมิน
6.นำไปใช้งาน
ประโยชน์จากการทำเหมืองข้อมูล
การทำเหมืองข้อมูล จำเป็นต้องอาศัยบุคลากรจากหลายฝ่าย และต้องอาศัยความรู้จำนวนมาก ถึงจะได้รับประโยชน์อย่างแท้จริง เพราะสิ่งที่ได้จากขั้นตอนวิธีเป็นเพียงตัวเลข และข้อมูล ที่อาจจะนำไปใช้ประโยชน์ได้หรือใช้ประโยชน์อะไรไม่ได้เลยก็เป็นได้ ผู้ที่ศึกษาการทำเหมืองข้อมูลจึงควรมีความรู้รอบด้านและต้องติดต่อกับทุก ๆ ฝ่าย เพื่อให้เข้าใจถึงขอบเขตของปัญหาโดยแท้จริงก่อน เพื่อให้การทำเหมืองข้อมูลเกิดประโยชน์อย่างแท้จริง



อ้างอิงจาก
https://nutty789.wordpress.com/2012/04/03/data-mining-การทำเหมืองข้อมูลและ/

วันพฤหัสบดีที่ 9 มีนาคม พ.ศ. 2560

Knowledge Management Systems คืออะไร

Knowledge Management Systems คืออะไร


Knowledge Management Systems  คือการนำระบบคอมพิวเตอร์และเทคโนโลยีสารสนเทศมาสนับสนุนการจัดการองค์ความรู้ โดยมีวงจรการทำงานอยู่ 6 ขั้นตอน ดังนี้

1.Create เป็นขั้นตอนของการสร้างองค์ความรู้ ซึ่งจะมีลักษณะคล้ายกับการสั่งสมประสบการณ์ โดยองค์ความรู้ที่สร้างขึ้นอาจได้มาจากภายในหรือภายนอกองค์กรก็ได้

2. Capture เป็นขั้นตอนในการคัดเลือกองค์ความรู้ใหม่ๆ ตามประโยชน์ขององค์ความรู้ และทำการนำเสนอในรูปแบบที่เหมาะสม

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

4. Store เป็นขั้นตอนของการจัดเก็บองค์ความรู้ไว้ในคลังองค์ความรู้หลังจากที่ได้ปรังปรุงแล้ว เพื่อการใช้งานของบุคคากรในองค์กร

5. Manage เป็นขั้นตอนที่คล้ายกับการจัดการในห้องสมุด ที่จะต้องมีการจัดการกับองค์ความรู้ โดยทำการทบทวนตรวจสอบความสัมพันธ์แลพความถูกต้องขององค์ความรู้ และต้องทำการจัดเก็บองค์ความรู้ที่เป็นปัจจุบัน

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



อ้างอิงจาก

http://oakovermars.exteen.com/20110121/enterprise-systems-erp-supply-chains-crm-and-km

C Footprint คืออะไร

C Footprint คืออะไร


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

คาร์บอนฟุตพริ้นท์ (Carbon Footprint, CF) คือ การวัดผลกระทบสิ่งแวดล้อมด้านการเปลี่ยนแปลงภูมิอากาศ ซึ่งเกี่ยวข้องกับปริมาณการปล่อยก๊าซเรือนกระจก (Greenhouse Gases, GHGs) จากกระบวนการผลิตสินค้าตลอดวัฎจักรชีวิต (Product Life Cycle) โดยเริ่มตั้งแต่ การจัดหาวัตถุดิบนำไปแปรรูป ผลิต จดจำหน่าย การใช้งาน และการจัดการหลังจากผลิตภัณฑ์นั้น ๆ หมดสภาพการใช้งานแล้ว โดยแสดงข้อมูลไว้บนฉลากคาร์บอน (Carbon Labeling) ติดฉลากบนสินค้าหรือผลิตภัณฑ์ต่าง ๆ เพื่อเป็นข้อมูลให้ผู้บริโภคได้ทราบว่า ตลอดวัฎจักรชีวิตของผลิตภั.ณฑ์มีการปล่อยก๊าซเรือนกระจกออกมาปริมาณเท่าใด คาร์บอนฟุตพริ้นท์นี้ได้ถูกแนะนำขึ้นครั้งแรกในประเทศอังกฤษ ในช่วงเดือนมีนาคม 2550 ภายใต้การกำกับดูแลของ Carbon Trust

ปริมาณคาร์บอนฟุตพริ้นท์ได้มาอย่างไร
ปริมาณคาร์บอนฟุตพริ้นท์ได้จากการวัดหรือการคำนวณหาปริมาณก๊าซเรือนกระจกที่เกิดขึ้น ทั้งหมดในหน่วยกิโลกรัมหรือตัน ของปริมาณก๊าซคาร์บอนไดออกไซด์เทียบเท่า (KgCO2 equivalent หรือ tonCO2 equivalent) การวัดคาร์บอนฟุตพริ้นท์ จะต้องทำการพิจารณาจากกิจกรรม 2 ส่วนหลัก คือ

1. การคำนวณคาร์บอนฟุตพริ้นท์ทางตรง (Primary Footprint) 
เป็นการคำนวณปริมาณก๊าซเรือนกระจกจากการผลิตสินค้านั้น ๆ โดยตรง เช่น การใช้พลังงานเชื้อเพลิงฟอสซิลในกระบวนการผลิตและการขนส่งทั้งโดยรถบรรทุก ทางเรือ และทางอากาศ

2. การคำนวณคาร์บอนฟุตพริ้นท์ทางอ้อม (Secondary Footprint) 
เป็นการคำนวณปริมาณก๊าซเรือนกระจกที่เกิดจากการใช้สินค้าตลอดจนการจัดการซากสินค้าหลังการใช้งาน ดังตัวอย่างแสดงค่าคาร์บอนฟุตพริ้นท์ ของผลิตภัณฑ์มันฝรั่งทอดกรอบจากบริษัท Walkers Snacks ซึ่งพบว่ามีจำนวนคาร์บอนฟุตพริ้นท์ 80 กรัม โดยในแต่ละขั้นตอนมีจำนวนคาร์บอนฟุตพริ้นท์แสดงดังภาพ

Walker Carbon Footprint


อ้างอิงจาก
http://businessconnectionknowledge.blogspot.com/2010/12/shopping-carbon-footprint-1.html#.WMEilRhh36B

วันพฤหัสบดีที่ 2 มีนาคม พ.ศ. 2560

SOAP คืออะไร


SOAP คืออะไร

     SOAP ย่อมาจาก Simple Object Access Protocol คือโปรโตคอลมาตรฐานที่ใช้ใน Web Services เป็นโพรโทคอล ( Protocol )ในการติดต่อแลกเปลี่ยนข้อมูลระหว่างกันของ web services เป็นโพรโทคอลการสื่อสาร ในระดับ Application Layer หรือในระดับ แอปพลิเคชัน โดยอาศัยผ่านอินเทอร์เน็ตโพรโทคอล ซึ่งอาศัยรูปแบบของภาษา  XML ทำให้ Web services สามารถสื่อสารกันได้แม้ว่า จะอยู่บนเครื่องคอมพิวเตอร์คนละเพลตฟอร์ม หรือพัฒนาด้วยภาษาโปรแกรมที่ต่างกันก็ตาม และนิยมใช้ HTTP เป็นโปรโตคอลร่วมสำหรับส่งผ่านข้อมูลบนระบบอินเตอร์เน็ต   SOAP ทำงานร่วมกับโพรโตคอลได้หลายชนิด เช่น 
HTTP, SMTP, FTP, IIOP เป็นต้น



ลักษณะข้อความที่รับ - ส่ง ผ่านโพรโตคอล SOAP ซึ่งเป็นไปตามรูปแบบของ XML
จากภาพ อธิบายได้ดังนี้

1.ผู้ขอใช้บริการ (Service Requester ) สร้าง SOAP Message เพื่อเรียกใช้บริการของ เว็บเซอร์วิส แล้วส่งผ่านโพรโตคอลเครือข่ายไปยังผู้ให้บริการ ในที่นี้ SOAP message ที่รับ-ส่งไปมานั้น อยู่ในรูปแบบ XML และต้องมีการแปลกลับมาอยู่ในรูปแบบที่โปรแกรมหรือเว็บเซิร์ฟเวอร์เข้าใจ โดยมีโปรแกรมที่ทำหน้าที่แปลความหมายของเอกสาร XML คือ XML Parser
2.ผู้ให้บริการ ( Service Provider ) ได้รับ SOAP Message จากผู้ขอใช้บริการ จากนั้น จึงแปลข้อความนั้นกลับมาอยู่ในรูปแบบที่เว็บเซิร์ฟเวอร์เข้าใจ แล้วตรวจสอบว่า ผู้ใช้บริการต้องการเรียกใช้ เว็บเซอร์วิส ชื่ออะไร เมธอดอะไร และส่งพารามิเตอร์อะไร มาด้วย จากนั้นจึงส่งไปให้แก่คอมโพเนนต์ที่ให้บริการ เว็บเซอร์วิส นั้นๆดำเนินการประมวลผล
3.หลังจากคอมโพเนนต์ที่ให้บริการ เว็บเซอร์วิส ส่งผลลัพธ์กลับมาแล้วผู้ให้บริการก็จะสร้าง SOAP Message ที่มีผลลัพธ์นั้นออกมาด้วย แล้วจึงส่งผ่านทางโพรโตคอลเครือข่ายกลับคืนไปยังผู้ขอใช้บริการ
4.ผู้ขอใช้บริการได้รับ SOAP Message ที่อยู่ในรูปแบบ XML จึงแปลข้อความนั้นกลับมาในรูปแบบที่โปรแกรมของผู้ขอใช้บริการเข้าใจแล้วนำผลลัพธ์ไปใช้งาน เช่น แสดงผล หรือไปทำอย่างอื่น แล้วแต่ว่ามีการเขียนโปรแกรมรองรับไว้ให้ทำอย่างไร
และจะมี SOAP Listener ทำหน้าที่คอยรับฟังว่ามีการเรียกใช้ เว็บเซอร์วิส จากผู้ใช้ การบริการของ เว็บเซอร์วิส แต่ละบริการจะมีไฟล์ SOAP Listener จำนวน 1 ไฟล์ เมื่อใดที่มีการเรียกใช้ เว็บเซอร์วิส ไฟล์โปรแกรมที่เป็น SOAP Listener ก็จะไปปลุกให้ เว็บเซอร์วิสทำงาน

     ข้อดีของการใช้โพรโตคอล SOAP
1.โพรโตคอล SOAP สามารถให้เราเรียกใช้คอมโพเนนต์ หรือ เว็บเซอร์วิส ข้ามเครื่อง ข้าม แพลตฟอร์มหรือข้ามภาษา ได้ โดยอาศัยโพรโตคอลที่มีอยู่เดิมในอินเทอร์เน็ต อย่าง HTTP
2.โครงสร้างข้อมูลของ SOAP เป็นรูปแบบข้อความที่สื่อสารกันด้วยภาษา XML ซึ่งมีลักษณะเป็นข้อความธรรมดาๆปิดล้อมด้วยแท็ค ทำให้เข้าใจได้ในทุกแพลตฟอร์ม
3.โพรโตคอล SOAP สามารถทำงานผ่านระบบไฟล์วอลล์ ได้ง่ายเนื่องจาก SOAP ทำงานอยู่กับ โพรโตคอล HTTP ซึ่งโดยธรรมชาติของไฟล์วอลล์ จะเปิดให้การสื่อสารด้วย HTTP ผ่านได้อย่างสะดวก
4.SOAP สนับสนุนจากหลายค่าย เช่น  IBM, MS , SUN
     ข้อเสียของการใช้โพรโตคอล SOAP
1.เนื่องจากลักษณะของ SOAP message เป็นเอกสาร XML ทำให้เสียเวลาในการแปลกลับมาเป็นรูปแบบที่โปรแกรมเข้าใจ
2.ในกรณีที่ SOAP ทำงานอยู่กับโพรโตคอล HTTP ซึ่งมีสมรรถนะในการรับ-ส่งข้อมูลต่ำกว่าโพรโตคอล DCOM, RMI, หรือ IIOP จึงทำให้โพรโตคอล SOAP มีอัตราการรับ-ส่งข้อมูลต่ำ


ข้อมูลอ้างอิง

http://www.mindphp.com/คู่มือ/73-คืออะไร/2195-soap-คืออะไร.html

AJAX คืออะไร

AJAX คืออะไร
     AJAX (Asynchronous JavaScript And XML) คือเทคนิคการพัฒนาเว็บ ที่จะสร้างโปรแกรมบนเว็บ (webapplication) ที่ตอบสนองกับผู้ใช้ได้อย่างเต็มที่ ความตั้งใจก็คือ ทำให้หน้าเว็บนั้นตอบสนองได้เฉพาะจุด และแลกเปลี่ยนข้อมูลกับฐานข้อมูล (Server) ในเบื้องหลัง เท่านั้น ดังนั้น ทุกๆครั้งที่มีการกระทำ (Action) ใดๆของผู้ใช้หน้าเว็บนั้นๆ ไม่จำเป็นจะต้องโหลดหน้าใหม่ทั้งหน้าทุกๆครั้ง ซึ่งหมาย ความว่าเว็บจะตอบสนองมากขึ้น ทำงานได้เร็วขึ้น กว้างขวางมากขึ้น และเข้าใกล้โปรแกรมปกติ (ที่เราต้อง install ก่อนใช้) มากขึ้นด้วย
เทคนิค AJAX เป็นการผสมผสานกันของ
- XHTML (หรือ HTML), CSS สำหรับตกแต่ง และจัดระเบียบข้อมูลในส่วนแสดงผล
- DOM และ JavaScript หรือ JScript ซึ่งเป็น client-side scripting language, เอาไว้แสดงผลแบบไดนามิก และจัดการตอบสนองกับการแสดงผล
- XMLHttpRequest เป็น object ที่ใช้สำหรับแลกเปลี่ยนข้อมูลกับ webserver แบบไม่ต่อเนื่องกัน (Asynchronous) ในบางสถานการณ์ object ประเภท IFrame จะถูกใช้แทนการใช้ XMLHttpRequest
- XML ที่จะใช้เป็นสื่อกลางในการรับข้อมูลมาจาก Server (จริงๆแล้วจะใช้แบบไหนก้อได้ เช่น HTML, Text, JSON หรือแม้กระทั่ง EBML) 
ว่าไปแล้ว มันก็คล้ายๆ DHTML, LAMP, หรือ SPA ที่ว่า AJAX ไม่ใช่เทคโนโลยีใหม่โดยตัวมันเอง แต่มันเป็นการเรียกการผสมผสานเทคโนโลยีในปัจจุบันหลายๆตัวเข้ามารวมกัน
AJAX มาได้อย่างไร 
ชื่อ AJAX นั้น ถูกตั้งขึ้นในปี 2005 แต่เทคโนโลยีส่วนใหญ่ที่ AJAX ใช้นั้นเกิดมาได้ทศวรรษนึงแล้ว จาก Microsoft ผู้เริ่มพัฒนา Remote Scripting แต่ถ้าพูดถึงเทคนิคที่จะทำให้แต่หน้าเว็บอัพเดตเพียงบางส่วน (แทนที่จะโหลดใหม่ทั้งหน้า) นั้น ต้องย้อนพูดกลับไปถึงตั้งแต่สมัยแทค IFRAME (เริ่มตั้นที่ IE3 ในปี 1996) และแทค LAYER (เริ่มต้นที่ Netscape4 ในปี 1997 ถูกยกเลิกไป ในช่วงการพัฒนาขั้นต้นของ Mozilla) แทคทั้งคู่จะมีส่วน src ไว้ เพื่อกำหนด URL ข้างนอก และการโหลดหน้าเว็บที่มี JavaScript ซึ่งจะเข้ามาจัดการหน้าหลัก

ในเวลาต่อมา Remote Scripting ของ Microsoft (หรือ MSRS) ซึ่งถือกำเนิดในปี 1998 นั้นดูเหมือนจะเป็นตัวทดแทนของเทคโนโลยีทั้งคู่นี้ โดยข้อมูลจะถูกดึงจาก Javaapplet ซึ่งทางฝั่งผู้ใช้จะติดต่อผ่านทาง JavaScript เทคนิคนี้ใช้ได้ตั้งแต่ IE4 และ Netscape4 ขึ้นไป และต่อมา Microsoft ก็แซงหน้าด้วย Outlook Web Access ซึ่งติดมากับการเปิดตัวของ MicrosoftExchangeServer 2000

     ในวงการเขียนเว็บ (แต่ก่อนนั้นจะแลกเปลี่ยนข่าวสารกันที่ newsgroupmicrosoft.public.scripting.remote ซึ่งต่อมาก็ใช้ blog แทน) นั้น ได้พัฒนาการเขียนเทคนิค remote scripting อย่างต่อเนื่อง เพื่อการแสดงผลที่เหมือนกันในทุกๆบราวเซอร์ ตัวอย่างเช่น JSRS กับการถือกำเนิดของ Image/Cookie ในปี 2000 เทคนิค JavaScript on Demand และการใช้ XMLHttpRequestเพื่อแทนที่ Remote Scripting ของ Microsoft ในปี 2002

ต่อมาก็เป็น ASP.NET ของ Microsoft ในปี 2003

     ตั้งแต่เริ่มมีการรองรับ XMLHttpRequest  ในหลายบราวเซอร์หลักๆ การใช้เทคนิคอื่นก้อลดน้อยลง แต่อย่างไรก็ดี อะไรก็ได้ที่เข้ากันได้ง่าย เขียนโค้ดน้อย และสนับสนุนการทำงานข้ามเว็บ ก็ถือว่าเป็นที่ต้องการกันหมด เช่น SVGT protocol ซึ่งเป็นอีกทางเลือกที่จะสร้าง connection ถาวรสำหรับการแลกเปลียนข้อมูลแบบตลอดเวลา ระหว่างบราวเซอร์และเซอร์วิส
ข้อดีของ AJAX
การตอบโต้กับผู้ใช้

     งานส่วนใหญ่ของโปรแกรม (เว็บ) ที่เขียนด้วยเทคนิค AJAX จะทำงานในเครื่องลูกข่าย (client) การตีความในแต่ละหน้านั้น จะทำโดย ใช้ DOM (document object model) ของบราวเซอร์ AJAX นั้นยังทำงานหลายๆงานได้ อย่างเช่น ปรับปรุงหรือลบแถวในฐานข้อมูล, หดหรือขยายหน้าฟอร์ม, แสดงผลการค้นหาอย่างง่ายๆ หรือแม้กระทั่งแก้ไขระบบหมวดหมู่โดยไม่ต้องโหลดหน้าทั้งหน้าทุกๆครั้ง จริงแล้วก็เพียงการส่งคำร้อง (Request) เล็กๆไปที่แม่ข่าย (Server) แล้วผลลัพท์ก็จะได้กลับมาอย่างรวดเร็วด้วยเทคนิค จะช่วยให้การใช้ DHTML ได้ผสมผสานไปในการพัฒนาส่วนที่ตอบโต้กับผู้ใช้ และการพัฒนหน้าเว็บให้มีลูกเล่นมากขึ้นด้วย

การทำงานนอกสถานที่ 

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

     ในขณะที่โครงสร้างของ AJAX นั้นจะเข้มงวดมากกว่า JAVA โปรแกรม AJAX ในปัจจุบันก็ใช้ Java applets มาเติมเต็มให้กับบราวเซอร์ในส่วนของการสร้างโปรแกรมเล็กๆบนเว็บ
ข้อเสียของ AJAX
ความเข้าใจของผู้ใช้
จุดใหญ่อยู่ที่ความเข้าใจผิดของปุ่มย้อนกลับ (BackButton) ของบราวเซอร์ว่ามันควรจะย้อนกลับไปคลิ๊กสุดท้ายที่คุณทำไป หรือหน้าที่แล้วที่มันโหลด (เพราะว่า AJAX ทำให้เราทำงานได้หลายอย่าง หรือหลายคลิ๊กบนเว็บหน้าหนึ่ง) โดยปกติแล้วผู้ใช้มักจะใช้ปุ่มย้อนกลับเพื่อกลับไปหน้าที่แล้วที่มันโหลด แต่ใน AJAX จะไม่เป็นอย่างงั้น นักพัฒนาเว็บได้ช่วยกันคิดหาทางออก โดยส่วนใหญ่จะใช้ IFRAMEs เพื่อทำให้เกิดการการจดจำหน้าที่แล้วโดยบราวเซอร์ ตัวอย่างเช่น GoogleMaps ที่ทำการค้นหาแผนที่ภายใน iframe แล้วแสดงผลในหน้าเว็บหลัก ทำให้มันสามารถทราบถึงพฤติกรรมของผู้ใช้ผ่านทางการกดปุ่มย้อนกลับได้
อีกอย่างคือการทำ bookmark ของผู้ใช้ เนื่องจากบราวเซอร์จะจดจำหน้าเว็บที่ bookmark ผ่านทาง URL เท่านั้น ทางออกส่วนใหญ่อยู่ที่การผสม URL จาก URL (URL Fragment Identifier: การเติมบางส่วนของ URL ตามหลังเครื่องหมาย # ตามมาตรฐาน rfc2396 และ rfc3896) เพื่อให้ URL ไม่เหมือนเดิมทุกครั้งที่มีการคลิ๊ก และผู้ใช้สามารถกลับมาที่หน้านั้นได้อีกครั้งตามต้องการ ซึ่งสามารถทำได้ เนื่องจากบราวเซอร์ส่วนใหญ่นั้น อนุญาติให้ JavaScript นั้นอัพเดตค่าในช่อง URL ทางออกนี้ยังช่วยแก้ปัญหาเรื่องปุ่มย้อนกลับได้อีกด้วย

การตอบสนอง
หรืออาการหน่วงของเครือข่าย (คือระยะเวลาตั้งแต่ผู้ใช้ส่งคำสั่ง จนถึงแม่ข่ายตอบรับ) นั้น ต้องพิจารณาอย่างดีเมื่อมีการพัฒนาโปรแกรม AJAX ถ้า ไม่มีคำเสนอแนะจากผู้ใช้ ความสามารถในการพรีโหลดและการเขียนรับ XMLHttpRequest object อย่างดีแล้ว ผู้ใช้อาจจะเจอการตอบสนองที่เชื่องช้าของหน้าเว็บในแบบที่ผู้ใช้มักจะไม่คาดหวัง หรืออยากจะเข้าใจทางออกอยู่ ที่การแสดงผลให้ผู้ใช้เห็นว่าตอนนี้ระบบกำลังทำอะไรอยู่ และ / หรือการพรีโหลดข้อมูลบางส่วนออกมาก่อน

JavaScript
ถึงแม้ว่า AJAX ไม่ต้องการการติดตั้งอะไรเพิ่มจากบราวเซอร์ แต่ผู้ใช้จำเป็นต้องเปิดให้บราวเซอร์นั้นยอมรับ JavaScript เท่านั้นยังไม่ พอ ผู้ใช้ IE6 หรือเก่ากว่านั้นยังต้องเปิด ActiveX ในบราวเซอร์อีกด้วย เพราะว่า XMLHttpRequest นั้นถูกกำหนดให้ทำการด้วย ActiveX บน IE แต่บน IE7 นั้นได้แก้ปัญหานี้แล้ว
เนื่องจากเป็นเว็บประเภท DHTML ทำให้ AJAX ต้องมีการทดสอบอย่างดีเพื่อไม่ให้เจอการแสดงผลที่ไม่เหมือนกัน เมื่อทำงานบนบราวเซอร์และ OS ที่แตกต่างกัน Library หลายตัวช่วยให้ AJAX นั้นแข็งแกร่งขึ้น แล้วทำให้ปัญหานี้ลดความยุ่งยากลงเรื่อยๆ รวมทั้งการพัฒนาเทคนิคต่างๆที่ช่วยในการออกแบบโปรแกรมให้ลดความยุ่งยาก และเพิ่มทางเลือกอื่นๆ นอกจากการใช้ JavaScript เพียงอย่างเดียว

ชื่อของ AJAX
มีการวิจารณ์ชื่อของ AJAX เพราะมีบุคคลบางกลุ่มได้อ้างว่าได้ใช้ชื่อนี้ในการทำการตลาดกับเทคนิคเก่าๆบางตัวอยู่แล้ว อ่านได้ที่นี่

การใช้งานAJAX
การใช้เทคนิค AJAX ใน Web Application นั้นได้เพิ่มความท้าทายเป็นอย่างมากแก่นักพํฒนา เว็บที่สนใจเรื่องการเพิ่มความสามารถของเว็บ โดยมีกลุ่มนักพัฒนาจำนวนหนึ่งที่ทำงานกับทางการ ซึ่งจำเป็นต้องติดอยู่กับกฎ Section 508 Compliance standards เทคนิค AJAX นั้นไม่ได้ปฏิบัติตามกฎนี้อย่างสมบูรณ์ ทำให้มันส่งผลไปถึงขั้นการยกเลิกสัญญาไปเลยในบางครั้ง
ด้วยเหตุผลนี้ นักพัฒนาจึงจำเป็นต้องหาทางออกอื่นๆสำหรับ OS และบราวเซอร์ของผู้ใช้ที่ต่างๆกัน โดยจะใช้เทคนิค AJAX ส่วนใหญ่ในการเพิ่มความสวยงามของการแสดงผลเท่านั้น

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

อ้างอิงโดย

https://www.gotoknow.org/posts/94180