TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO CƠ SỞ DỮ LIỆU THỜI GIAN THỰC ỨNG DỤNG TRONG BÀI TOÁN TÍNH CƯỚC ĐIỆN THOẠI VÀ CHĂM SÓC KHÁC

8 610 1
TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO CƠ SỞ DỮ LIỆU THỜI GIAN THỰC ỨNG DỤNG TRONG BÀI TOÁN TÍNH CƯỚC ĐIỆN THOẠI VÀ CHĂM SÓC KHÁC

Đang tải... (xem toàn văn)

Thông tin tài liệu

CƠ SỞ DỮ LIỆU THỜI GIAN THỰC VÀ ỨNG DỤNG TRONG BÀI TOÁN TÍNH CƯỚC VÀ CHĂM SÓC KHÁCH HÀNG Cơ sở dữ liệu trong bộ nhớ IMDS (In Memory Database System hoặc còn gọi là MMDS - Main Memory Database System) có một vai trò rất quan trọng trong sự phát triển của ngành công nghệ thông tin hiện đại. IMDS xuất hiện trong các hệ thống cung cấp các dịch vụ yêu cầu các đáp ứng thời gian thực như các Tổng đài thế hệ mới, các router hoặc các chương trình phải xử lý số lượng rất lớn các giao dịch trong một giây như các hệ thống xử lý cước nóng, hệ thống chăm sóc khách hàng, hệ thống cung cấp SMS, hệ thống cung cấp các dịch vụ trên Internet. Ở đây chúng tôi xin giới thiệu ứng dụng công nghệ Cơ sở dữ liệu bộ nhớ vào trong Hệ thống Tính cước và chăm sóc khách hàng. I. Yêu cầu thực tiễn Mức độ thông minh của các thiết bị viễn thông ngày càng tăng đi đôi với nó là khối lượng dữ liệu mà các hệ thống phần mềm nhúng phải xử lý ngày càng nhiều và phức tạp. Các nhà phát triển phần mềm nhúng nhận thấy rằng các tổ chức dữ liệu theo phương pháp tiếp cận truyền thống trở nên ngày càng khó khăn và chương trình trở nên khó bảo dưỡng và nâng cấp mỗi khi nảy sinh yêu cầu mới. Các chương trình cung cấp các dịch vụ thời gian thực hoặc gần thực trở nên nặng nề khi sử dụng các flat-file hoặc cơ sở dữ liệu truyền thống chậm chạp. Cùng với đó, giá RAM ngày cảng giảm và tốc độ CPU ngày càng nhanh khiến cho các nhà phát triển nghĩ tới lối thoát là xây dựng các Cơ sở dữ liệu trong bộ nhớ. IMDS đã ra đời từ nhu cầu đó. Các nhà phát triển phần mềm lúc này chỉ việc chú trọng vào việc giải quyết bài toán của mình còn việc tổ chức, lưu trữ và truy suất dữ liệu trong bộ nhớ thế nào hoàn toàn do IMDS đảm nhiệm. Việc sử dụng IMDS đặc biệt phát huy hiệu quả trong các hệ thống nhúng như các IP router hiện đại, các tổng đài thế hệ mới, các phần mềm cần yêu cầu cao về hiệu xuất và thời gian đáp ứng. Các sản phẩm của một số hãng lớn đều có sử dụng các IMDS như Kenan của CSG, các giải pháp của Amdocs II. So sánh DBMS và IMDS Các DBMS truyền thống lưu trữ dữ liệu trên đĩa cứng nên có tốc độ truy xuất dữ liệu bị hạn chế bởi tốc độ chậm chạp của các linh kiện cơ khí tạo nên đĩa cứng. Còn đúng như tên gọi, IMDS lưu trữ dữ liệu hoàn toàn trên bộ nhớ và chỉ truy xuất đĩa cứng trong trường hợp cần. Phải chăng IMDS chỉ đơn giản là các DBMS được nạp hoàn toàn vào bộ nhớ? Câu trả lời là không. IMDS có những khác biệt cơ bản với người họ hàng DBMS của nó. Do không phải truy xuất đĩa cứng nữa nên không có phần dữ liệu nào bị chuyển qua lại giữa đĩa cứng và bộ nhớ. Điều đó dẫn tới giảm thiểu được tiêu tốn xung nhịp CPU và có đáp ứng nhanh hơn từ hàng chục đến hàng trăm lần so với các DBMS truyền thống. Sau đây là các khác biệt cơ bản giữa DBMS truyền thống và IMDS II.1. Lưu trữ tạm thời (Caching) Để hạn chế số lần phải truy xuất đĩa cứng, các DBMS truyền thống đều sử dụng biện pháp lưu giữ phần dữ liệu được truy xuất mới nhất trong bộ nhớ. Caching bao gồm cả việc đồng bộ dữ liệu. Việc này đảm bảo rằng phần ảnh của dữ liệu được cache giống với phần gốc được lưu trên đĩa cứng của nó. Ngoài ra caching gồm cả thủ tục tìm kiếm dữ liệu. Nếu dữ liệu mà ứng dụng yêu cầu nằm trong cache thì nó được lấy ra và trả về cho chương trình, nếu không thì dữ liệu này sẽ được lấy ra từ đĩa cứng và thêm vào cache để cho những lần dùng sau. Đối với các DBMS, các thủ tục này đều được thực hiện cho dù nó được nạp vào bộ nhớ. Còn đối với các IMDS, do loại bỏ được công đoạn ra vào đĩa nên caching là không cần thiết do đó giảm bớt được sự phức tạp và tiêu tốn tài nguyên RAM và xung nhịp CPU II.2. Chuyển giao dữ liệu Chúng ta hãy xem xét điều gì sẽ xẩy ra khi ứng dụng truy vấn dữ liệu sau đó thay đổi nó và ghi lại trên DBMS truyền thống. Hình 1: Luồng dữ liệu luân chuyển trong một DBMS truyền thống Màu đỏ thể hiện luồng dữ liệu Mầu xám thể hiện luồng thông điệp 1. Ứng dụng truy vấn dữ liệu từ CSQL thông qua các giao diện API của nó. 2. CSDL hướng dẫn hệ thống file lấy dữ liệu từ thiết bị lưu trữ. 3. Hệ thống file sẽ chuyển một bản copy của dữ liệu vào cache của nó và chuyển một bản copy khác trả lại cho CSDL. 4. CSDL giữ lại một bản copy cho cache của nó và chuyển một bản cho ứng dụng. 5. Ứng dụng cập nhật dữ liệu và chuyển nó trở lại cho CSDL thông qua các API của nó 6. CSDL sao lại dữ liệu đã thay đổi vào cache. 7. Bản sao của cache của CSDL cuối cũng cũng sẽ được lưu vào hệ thống file, tại đó cache của hệ thống file cũng được cập nhật. 8. Cuối cùng thì dữ liệu lại được ghi vào thiết bị lưu trữ vật lý Các bước này là trình tự cơ bản không thể bỏ qua trong bất kỳ một CSDL truyền thống nào ngay cả khi công việc được thực hiện hoàn toàn trong bộ nhớ. Các bước này trong thực tế còn phức tạp hơn nhiều khi tính đến các công đoạn Log các thao tác và một số công đoạn quan trọng khác Ngược lại, trong các IMDS, việc truyền dữ liệu qua lại là không cần thiết. CSDL cho cho phép người dùng truy cập dữ liệu thông qua các con trỏ trực tiếp tới dữ liệu. Tuy nhiên dữ liệu vẫn được đảm bảo an toàn do con trỏ này chỉ được sử dụng thông qua các API của IMDS. Loại bỏ được việc phải chuyền dữ liệu qua lại nhiều lần làm tăng tốc độ truy xuất dữ liệu. Giảm được số lượng bản sao của dữ liệu dẫn đến giảm tài nguyên chiếm dụng bởi CSDL. Sự đơn giản trong hoạt động khiến cho thiết kế đơn giản làm tăng độ tin cật của hệ thống II.3. Xử lý giao dịch Trong các trường hợp có sự cố nghiêm trọng như là mất điện, CSDL dựa trên đĩa cứng sẽ được khôi phục bằng cách commit những giao dịch đã được hoàn tất và hồi phục lại dữ liệu liên quan đến những giao dịch chưa hoàn tất từ log file khi hệ thống khởi động lại. Các CSDL truyền thống xử lý các giao dịch dựa trên các log file. IMDS cũng cung cấp các tính năng đảm bảo tính toàn vẹn của các giao dịch. Để làm điều này, các IMDS lưu lại các bản sao của các đối tượng được cập nhật hay bị xóa và một danh sách các dữ liệu được chèn vào CSDL trong suốt quá trình giao dịch diễn ra. Khi ứng dụng commit giao dịch, phần bộ nhớ của các bản sao của các dữ liệu được bỏ đi và các dữ liệu được chèn vào được chuyển tới vùng nhớ chứa dữ liệu chính của CSDL, thao tác này được thực hiện rất nhanh và hiệu quả. Nếu ứng dụng hủy giao dịch thì các bản sao dữ liệu được chuyển thành bản chính và các dữ liệu được chèn vào trong quá trình giao dịch bị huỷ bỏ. Nếu các sự cố nghiêm trọng xẩy ra thì dữ liệu trong IMDS sẽ bị mất. Đó là điều khác biệt lớn giữa các DBMS truyền thống và các IMDS. Khi hệ thống được khởi động lại, để có thể tiếp tục sử dụng được thì dữ liệu phải được nạp lại bằng cách này hay cách khác. Nguyên nhân của sự khác biệt này là IMDS được tạo ra để tăng tối đa tốc độ truy xuất dữ liệu có thể nên một số tính năng như ghi log file và các tính năng làm ảnh hưởng đến hiệu xuất khác đều bị loại bỏ. Đặc tính này của IMDS rõ ràng là không phù hợp với mọi loại ứng dụng. Tuy nhiên lại rất thích hợp trong lĩnh vực phần mềm nhúng hoặc những ứng dụng đòi hỏi truy xuất dữ liệu với tốc độ thời gian thực. Tuy nhiên một phần lớn các IMDS hiện nay đều cung cấp tính năng Sao lưu và Hồi phục dữ liệu. Có thể kể đến các IMDS phổ biến là: FastDB, GigaBase, Goods III. Các mô hình IMDS Hiện tại, các IMDS chưa hề có chuẩn. Các hãng phát triển hoặc là áp dụng các chuẩn của DBMS hoặc tự định nghĩa riêng cho mình. Các cách tiếp cận và triển khai, các khái niệm của chúng cũng khác nhau. Trên thế giới các IMDS tồn tại dưới 2 mô hình chính là mô hình hướng ứng dụng (Application Oriented - AO) và mô hình Client/Server. Phần lớn các IMDS hiện nay đều là các CSDL hướng đối tượng hoặc CSDL Hướng đối tượng - Quan hệ. III.1. Mô hình client/server Đây là mô hình gần với các DBMS truyền thống nhất và nổi bật trong số này là GOODS (Generic Object Oriented Database System). Chúng hỗ trợ môi trường phân tán và có rất nhiều tính năng của một DBMS nhưng có lợi điểm là truy xuất dữ liệu rất nhanh so với các sản phẩm truyền thống. Client và Server có thể nằm trên các node khác nhau. Mô hình này thường được sử dụng trong các ứng dụng lớn với những đòi hỏi khắt khe về thời gian đáp ứng. GOODS là một IMDS mã nguồn mở khá mạnh với rất nhiều tính năng của một DBMS như Replication, quản lý các giao dịch chặt chẽ nhờ các REDO log và Global History Log. GOODS là một CSDL phân tán, dữ liệu có thể đặt trên nhiều node trong mạng. II.2. Mô hình AO Đây là một mô hình khá phổ biến của IMDS. Chúng được cung cấp dưới dạng các thư viện nhúng vào trong chương trình phần mềm. Thực chất chúng cung cấp các dịch vụ lưu trữ, truy vấn và cập nhật dữ liệu cho các ứng dụng. Thường thì các IMDS không thể sửa đổi cấu trúc khi chạy chương trình mà điều này được thực hiện khi viết chương trình ví dụ của loại này là FastDB, GigaBase, Berkeley DB. Đa phần IMDS cũng cung cấp khả năng Sao lưu và hồi phục dữ liệu. Khi ứng dụng gặp sự cố thì dữ liệu vẫn có thể khôi phục lại được như trước đó nhờ các file dữ liệu được lưu trên ổ cứng. Các IMDS loại này mang lại cho ứng dụng khả năng truy cập dữ liệu rất nhanh. Các DBMS loại này thường chỉ hỗ trợ việc truy cập dữ liệu từ một hay nhiều tiến trình trong cùng một ứng dụng chứ không cho phép nhiều ứng dụng cùng truy cập. CSDL loại này được dùng nhiều trong các ứng dụng đòi hỏi tốc độ xử lý cao và phải quản lý rất nhiều tham số như hệ thống tính cước của chúng tối là một ví dụ. III.3. áp dụng vào Hệ thống Tính cước và chăm sóc khách hàng Sau khi thiết kế hệ thống Tính cước và Chăm sóc khách hàng, hệ thống đã phức tạp lên rất nhiều, các bảng tham số đã lên tới hơn 70 và cấu trúc tham số vô cùng phức tạp. Việc quản lý các thông số này trở nên khó khăn và dễ gây lỗi. Chúng tôi đã nghĩ ngay đến việc ứng dụng IMDS vào chương trình để giảm bớt công sức trong việc quản lý các tham số. Sau một số thời gian nghiên cứu và tìm kiếm thông tin trên mạng, chúng tôi đã tìm được một số IMDS phù hợp với nhu cầu và điều kiện của mình. Sau đây chúng tôi xin giới thiệu 2 IMDS nổi bật là FastDB và GigaDB. Đây đều là 2 IMDS mã nguồn mở và đã được sử dụng khá phổ biến. Cả hai cùng cung cấp tính năng sao lưu và phục hồi dữ liệu rất tốt. Chúng là các AO viết bằng ngôn ngữ C++ nên việc giao tiếp cũng rất thuận lợi. Và một điều đặc biệt quan trọng, chúng đều là các CSDL hướng đối tượng nên rất thuận tiện trong việc tích hợp vào các chương trình hiện tại của phòng đang phát triển bằng công nghệ hướng đối tượng. GigaBase sử dụng kỹ thuật page-pool để truy cập dữ liệu nên sẽ lưu trữ được nhiều dữ liệu hơn nhưng chậm hơn so với FastDB sử dụng kỹ thuật virtual-memory. Qua cân nhắc, chúng tôi lựa chọn FastDB do chương trình Tính cước của chúng tôi đòi hỏi thời gian đáp ứng ngắn và phải xử lý rất nhiều dữ liệu cuộc gọi. Sau đây chúng tôi xin giới thiệu về FastDB: FastDB là một IMDS hướng ứng dụng và hướng đối tượng, mã nguồn mở. Nó có một số tính năng mạnh như quản lý giao dịch, tự động sao lưu và hồi phục khi có sự cố. Thủ tục ‘commit’ hoạt động rất hiệu quả dựa trên thuật toán “shadow root pages”. Và một tính năng rất hay nữa của FastDB là nó hỗ trợ truy vấn dữ liệu thông qua một ngôn ngữ gần giốn SQL (SQL liked language). Câu lệnh truy vấn bao gồm: điều kiện lọc dữ liệu, sắp xếp dữ liệu. Một bản ghi trong FastDB chính là một đối tượng của chương trình. Các thủ tục trong đối tượng đó có thể dùng như những từ khóa trong câu lệnh truy vấn dữ liệu. Công nghệ sắp xếp và tìm kiếm dữ liệu ở đây là T-tree, extensible hash table, GiST khiến cho chương trình có thể truy vấn dữ liệu rất hiệu quả. Với những tính năng ưu việt của mình, FastDB sẽ đóng một vai trò quan trọng trong hệ thống Tính cước và Chăm sóc khách hàng trong thời gian tới. . CƠ SỞ DỮ LIỆU THỜI GIAN THỰC VÀ ỨNG DỤNG TRONG BÀI TOÁN TÍNH CƯỚC VÀ CHĂM SÓC KHÁCH HÀNG Cơ sở dữ liệu trong bộ nhớ IMDS (In Memory Database System. tham số như hệ thống tính cước của chúng tối là một ví dụ. III.3. áp dụng vào Hệ thống Tính cước và chăm sóc khách hàng Sau khi thiết kế hệ thống Tính cước và Chăm sóc khách hàng, hệ thống đã. nghệ Cơ sở dữ liệu bộ nhớ vào trong Hệ thống Tính cước và chăm sóc khách hàng. I. Yêu cầu thực tiễn Mức độ thông minh của các thiết bị viễn thông ngày càng tăng đi đôi với nó là khối lượng dữ liệu

Ngày đăng: 08/07/2015, 16:05

Từ khóa liên quan

Mục lục

  • I. Yêu cầu thực tiễn

  • II. So sánh DBMS và IMDS

    • II.1. Lưu trữ tạm thời (Caching)

    • II.2. Chuyển giao dữ liệu

    • II.3. Xử lý giao dịch

    • III. Các mô hình IMDS

      • III.1. Mô hình client/server

      • II.2. Mô hình AO

      • III.3. áp dụng vào Hệ thống Tính cước và chăm sóc khách hàng

        • Sau đây chúng tôi xin giới thiệu về FastDB:

Tài liệu cùng người dùng

Tài liệu liên quan