Một vấn đề quan tâm khi triển khai BizTalk RFID là việc lưu lại kết nối thiết bị trong bộ đệm “cache”. Việc làm này có nghĩa là một kết nối sẽ được giữ xuyên suốt quá trình xử lý, thay vì chúng sẽ được mở-đóng nhiều lần mỗi khi thực hiện một lệnh đồng bộ. Kĩ thuật này được dùng bởi một ứng dụng thực thi lệnh tới thiết bị. Nó cũng có thể sử dụng trong quy tr ình RFID bởi một bộ xử lý sự kiện, mà một sự kiện như IOPortValueChangedEvent g ọi một câu lệnh tới thiết bị. Phần này sẽ trình bày lợi ích của việc lưu đệm kết nối tới thiết bị khi thực hiện các câu lệnh đồng bộ nhiều lần.
Lưu đệm một kết nối phải đ ược thực hiện bằng code. Đoạn code C# sau sẽ chỉ ra cách lưu đệm một kết nối tới thiết bị nh ư thế nào:
private void Form1_Load(object sender, EventArgs e) {
try
{
cachedConnection = new DeviceConnection(deviceName); cachedConnection. Open();
}
catch (Exception excp) { }
}
private void GetTags_Click(object sender, EventArgs e) {
try
{
TagDataSelector tagSelector = TagDataSelector.All;
ICollection<TagReadEvent> listOfTags = cachedConnection.GetTags(tagSelector);
}
catch (Exception excp) { }
}
Trong hàm giải phóng tài nguyên (Dispose), ta đóng l ại kết nối: if (cachedConnection != null) { try { cachedConnection.Close(); }
catch (Exception excp) { }
Lưuý: nếu kết nối không được đóng lại hợp lý, thiết bị vẫn ti ếp tục ở trạng thái “Open” ngay cả khi ứng dụng đãđược đóng.
7.3.4.1 Kịch bản đánh giá:
Một thiết bị được sử dụng.
Một quy trình gắn kết với 1 thiết bị.
Quy trình dùng bộ ghi nhận sự kiện vào cơ sở dự liệu SQL Server.
Mỗi lệnh đồng bộ được thực hiện 10 lần và thời gian đáp ứng được lấy giá trị trung bình.
Cấu hình máy dùng một CPU đơn 1.8GHz, bộ nhớ 2GB RAM.
Quá trìnhđo thử thực hiện trên một device provider giả lập, nên kịch bản không có bất kì yêu cầu nào gửi tới thiết bị qua mạng.
7.3.4.2 Các kết quả thực nghiệm:
Lệnh Thời gian đáp ứng trung bình (ms) Device Opened/Closed Device Connection Cached GetProperty 402 23 SetProperty 420 39 GetTags 473 84 PrintTag 411 23
Bảng 7-5: Bảng số liệu hiệu suất trong tr ường hợp lưu đệm kết nối
7.3.4.3 Kết luận:
Từ các số liệu trình bày trên bảng 5, ta thu được các kết luận sau:
Lưu trữ kết nối trong bộ đệm cải thiện hiệu suất hệ thống một cách đáng kể. Kĩ thuật này nên được áp dụng trong các kịch bản mà ứng dụng thực hiện việc truy xuất tới thiết bị nhiều lần bằng mô hình lập trìnhđồng bộ.
Dữ liệu được thu thập từ một thiết bị giả lập. Khi bạn dùng thiết bị thật, thời gian đáp ứng gần như sẽ cao hơn.