แนะนำให้รู้จัก Rx 1.0 library ช่วยแก้ปัญหา Asynchronous Data Access

ไมโครซอฟท์ได้เปิดตัว library  Reactive Extensions(Rx) version 1.0 แล้ว หลังจากที่ใช้เวลาบ่มกว่าสองปี library  Rx ประกอบไปด้วย event-driven UI กับ LINQ, concurrency และ asynchronous calls

Rx พยายามที่จะแก้ปัญหาของ asynchronously การเข้าถึงข้อมูลจาก UI แบบ event-based

Iterator Pattern มาตรฐานที่ใช้การเชื่อมต่อพื้นฐานของ IEnumerable และ IEnumerator  อาจจะไม่เพียงพอสำหรับการดำเนินการแบบ asynchronous ดังนั้น Rx แก้ปัญหาโดยการแนะนำ Observer Pattern ที่มีสองอินเตอร์เฟซหลัก IObservable และ IObserver

แทนที่ client จะใช้การเข้าถึงข้อมูลแบบ step by step เข้าไปใน data collection แต่ data collection จะ push data ไปยัง client เองโดยผลลัพย์ที่ได้กลับมาเมื่อ client call loop นั้นจบแล้ว

ในแบบ  asynchronous สถานการณ์นี้เป็นประโยชน์อย่างยิ่งใน cloud computing ตามคำแนะนำของ Erik Meijer ผู้นำของโครงการ Rx

Cloud computing เกี่ยวข้องกับการเรียกแบบ asynchronous จากธรรมชาติของ latencies ในเครือข่าย ดังนั้นแล้วสำหรับ client มันดีมากๆที่จะขอข้อมูลไว้ก่อนโดยไม่ต้องรอจากนั้นก็ต่อด้วยงานอื่นๆ และจะได้รับข้อมูลเมื่อมันพร้อมให้ใช้ประโยชน์ได้แล้ว

ในขณะนี้ปัญหานี้ดูเหมือนง่ายแล้วที่จะแก้ไขได้โดยใช้วิธีการมาตรฐานมากขึ้นด้วยความสามารถของ Rx ที่ถูกสร้างโดยรวมการสนับสนุนจาก LINQ และ concurrency เข้าไปในตัวมันเองเลย ดังนั้นผู้ใช้จะไม่เพียงได้รับชิ้นส่วนของข้อมูลในแบบ asynchronous เท่านั้น เขาจะสามารถสร้างคำสั่ง asynchronous โดยใช้ LINQ queries ไปบนคอลเลกชันของข้อมูลและเรียกพวกมันอย่างพร้อมกัน
Rx จัดการกับ concurrency โดยการสร้างอยู่บน  Parallel Extensions(PFX) และการจัดการ concurrency โดยการใช้ library Parallel LINQ และ Task Parallel

 หลังจากสองปีที่อยู่ในการบ่ม, Rx ได้กลายเป็นผลิตภัณฑ์ไมโครซอฟท์อย่างเป็นทางการและมีการเปิดตัวที่เป็นรุ่นเสถียรแล้วรุ่น 1.0 ใน Data Developer Center นักพัฒนาสามารถเขียนโปรแกรมเกี่ยวกับการใช้ Rx ด้วยภาษา C #, VB.NET, C + +, F # และ JavaScript ในทุกรุ่นของ Windows ตั้งแต่ XP และยังมีใน Windows 7 Mobile ด้วยนะ

พยายามแปลมาจาก: Rx 1.0 Solves the Problem of Asynchronous Data Access

ขอบคุณครับ 🙂

Advertisements

#net