.1 Khái niệm

Một phần của tài liệu nghiên cứu mẫu thiết kế hướng đối tượng áp dụng xây dựng ứng dụng hỗ trợ rút trích thông tin từ web (Trang 65 - 72)

Web Nn là các trang web có một lượng lớn các thông tin Nn và không thể truy cập thông qua các công cụ tìm kiếm tổng quát.

Tài nguyên web Nn có thể phân loại như sau:

• N ội dung động (dynamic content): là trang động mà trả về kết quả cho người dùng khi gửi yêu cầu đến các form với các giá trị hợp lệ.

• N ội dung không có liên kết (Unlink Content): là những trang không được liên kết bởi trang khác, điều này làm cho các bộ máy tìm kiếm không thể truy cập nội dung.

• Web cá nhân (private web): các web yêu cầu phải đăng nhập

• Web ngữ cảnh (contextual web): các web với nội dung khác nhau ở những tình cảnh khác nhau( ví dụ dãy địa chỉ IP của client)

• N ội dung truy cập hạn chế (limited access content): các web hạn chế truy cập đến trang bằng phương pháp kỹ thuật ( sử dụng Captcha…)

• N ội dung từ script (Script Content) – là những trang chỉ có thể được truy cập thông qua những liên kết được phát sinh bởi javascript hay nội dung tự động tải từ web server thông qua flash hay ajax

• Không có nội dung Text/HTML – nội dung văn bản được mã hóa trong tệp tin đa phương tiện (hình ảnh, video…) hay những định dạng không được công cụ tìm kiếm xử lý

A. 2 Giới thiệu về web jn nội dung động

Hình A-1: Quá trình truy cập form

Hình A-1 mô tả quá trình truy cập nội dung các trang web Nn bên dưới các form. N guời dùng cần truy cập form, điền các thông tin hợp lệ, gửi đến server và nhận kết quả trả về.

Một form HTML được định nghĩa trong một thẻ form (ví dụ hình A-2). Thuộc tính action xác định máy chủ sẽ thực hiện việc xử lý truy vấn. Form có thể có các điều khiển (control) để người dùng nhập vào, mỗi điều khiển được định nghĩa thông qua thẻ input. Thẻ input có thể có nhiều loại, trong đó nổi bật là hộp văn bản (textbox), chọn thực đơn (được định nghĩa trong thẻ select và option), hộp kiểm tra (checkbox), các nút radio (radio), và nút gửi (submit).

Hình A-2: Form minh họa

<form action="http://kiemviec.com/vi/ung-vien/tim- nhanh/" method="post">

Từ khóa công việc

<input type="text" name="txtKeyword"> Ngành nghề

<select name="cboIndustry">

<option value="35A4E901">IT</option> <option value="35A4E902">Kế toán</option> </select>

ðịa ñiểm:

<select name="cboLocation">

<option value="35A4E904">Hà Nội</option> <option value="35A4E908">HCM</option>

</select>

<input type="submit" value="Tìm nhanh"> </form>

Mỗi điều khiển có một name không hiển thị cho người dùng thấy trên trang HTML và thông thường điều khiển chỉ hiển thị value. N gười sử dụng chọn các giá trị đầu vào hoặc bằng cách nhập các từ khóa vào hộp văn bản hoặc bằng cách chọn từ các tùy chọn xác định trước trong lựa chọn các trình đơn, hộp kiểm tra và các nút radio. N goài ra, nhiều form có những đầu vào có các giá trị Nn được cố định và không hiển thị cho người dùng khi tương tác với mẫu. Đây thường là cách được sử dụng để cung cấp bối cảnh bổ sung về các form.

Khi một form được gửi, trình duyệt gửi yêu cầu HTTP với các điều khiển và giá trị nhập đến máy chủ bằng phương pháp GET hay POST. Với GET, các tham số được thêm vào action và xem như một phần của URL trong yêu cầu HTTP (ví dụ http://jobs.com/find?src=hp&kw=chef&st=Any&sort=salary&s=go). Với Post, các tham số được gửi trong phần nội dung của yêu cầu HTTP và URL chỉ đơn giản là action (ví dụ http://jobs.com/find). Do đó, khi dùng GET thì URL đó là duy nhất còn dùng phương thức POST thì không.

Phụ lục B Cài đặt minh họa mẫu thiết kế mẫu Dynamic Factory

Giả sử cài mẫu cải tiến này bằng ngôn ngữ lập trình C#. Đoạn code cài đặt mẫu này trước tiên là cài đặt interface IProduct

Interface này được cài đặt bởi tất cả các ConcreteProduct để có thể được tạo bởi Creator. Kế tiếp ta xem định dạng metadata lưu trữ loại thông tin. Giả sử metadata này chúng ta lưu trữ trong tệp tin xml. Mỗi product node chứa định danh đến loại Product cụ thể và lớp sẽ tạo đối tượng động.

Metadata này có thể lưu trữ trong cơ sở dữ liệu quan hệ, tệp tin txt,…Để Nn cài đặt chi tiết đến factory, chúng ta cài đặt lớp XMLParser và lớp Information.

public interface IProduct {

void DoSomething(); } <products> <product id="product1" type="DynamicFactorySample,ProductA"/> <product id="product2" type="DynamicFactorySample,ProductB"/> <product id="product3" type="AnotherAssembly,ProductC"/> </products>

public class Information {

private string productTypeCode; private string assemblyName; private string className;

public string ProductTypecode

{ get { return this.productTypeCode; } } public string AssemblyName

{ get { return this.assemblyName; } }

public string ClassName

{ get { return this.className; } }

public ProductTypeInfo( string productTypeCode, string assemblyName, string className) { this.productTypeCode = productTypeCode; this.assemblyName = assemblyName; this.className = className; } }

Sau đó, việc cài đặt lớp Creator khá đơn giản, phương thức Create tạo và trả về đối tượng cài đặt giao diện IProduct

public class MetadataReader{

public ProductTypeInfo Load(string typeName) {

XmlDocument doc = new XmlDocument(); doc.Load(AppSettings["rootPath"]);

XmlNode node = doc.SelectSingleNode(

"/products/product[@id='" + typeName + "']");

if (node == null) return null;

return new ProductTypeInfo(typeName,

node.Attributes["type"].Value.Split(',')[0], node.Attributes["type"].Value.Split(',')[1]);

}

}

public class Creator{

public IProduct Create(string productTypeCode){ MetaDataReader metadataReader = new

MetadataReader();

ProductTypeInfo typeInfo = metadataReader.Load(productTypeCode);

ObjectHandle obj = Activator.CreateInstance( typeInfo.AssemblyName, typeInfo.ClassName);

return (IProduct)obj.Unwrap(); }

}

public class SampleClient {

public void Main() {

Creator c = new Creator()

IProduct product = c.Create("product1"); product.DoSomething(); rule = c.Create("product2"); product.DoSomething(); } }

Phụ lục C Áp dụng thống kê thu thập thuộc tính chung chủ đề

Xây dựng các thuộc tính kèm theo giá trị thông dụng cho từng chủ đề. Ở đây tôi áp dụng phương pháp thống kê dựa trên kiến thức nhà phát triển. Ví dụ áp dụng cho chủ đề Việc làm.

B1: Giao diện tìm kiếm việc làm của một số trang tìm kiếm việc làm tiêu biểu

Hình C-1: Một số trang tìm kiếm việc làm B2: Phân tích các thuộc tính

Ví dụ: phân tích thuộc tính ở 3 trang tìm việc điển hình là: timviecnhanh.com, vietnamworks.com và kiemviec.com

Attribute N ame Relationship type Default Value Value type Description

data[Search][jobfield] Group Bất kỳ String

N gành nghề tìm kiếm

data[Search][province] Group Bất kỳ String Tỉnh data[Search][level] Group Bất kỳ String Trình độ

data[Search][timework] Group Bất kỳ String Thời gian làm việc data[Search][postdate] Group Bất kỳ String Thời gian đăng data[Search][jobsalary] Group Bất kỳ String Mức lương data[Search][VN D] Check Check Boolean Loại tiền

Attribute N ame Relation shiptype Default Value Value type Description industry[] Group N gành nghề

salarymin/salarymax Range Lương từ…đến.. city Group Tất cả String Địa điểm

worktype Group bất kỳ String Loại hình công việc joblevel Group Bất kỳ String Cấp bậc

education Group Bất kỳ String Học vấn

exp N one Số năm kinh nghiệm

days Group Bất kỳ String

Việc được đăng cách đây Attribute N ame Relation shiptype Default Value Value type Description chk_industryid Check Tất cả String N gành nghề cbo_countryid Group Tất cả String Quốc gia cbo_locationid Group Tất cả String Tỉnh

cbo_posttime Group Tất cả String Thời gian đăng cbo_level Group Tất cả String Cấp bậc

cbo_experience Group Tất cả String Kinh nghiệm cbo_salaryunit Group ALL String Lương

chk_jobtype Check N one Boolean hình thức làm việc chk_worktype Check N one Boolean Loại hình

B3: Thuộc tính thông dụng của lĩnh vực tìm kiếm việc làm

Bảng C-1: Bảng thuộc tính thông dụng chủ đề việc làm B4: Kết quả cuối cùng:

STT Thuộc tính Giá trị

1 N gành nghề IT - Phần cứng/Mạng IT Phần mềm

Điện/Điện tử Giáo dục/Đào tạo

2 Tỉnh Thành phố Hồ Chí

Minh Hà N ội 3 Loại hình công việc Bán thời gian

Toàn thời gian Tập sự

4 Trình độ học vấn Trung học Cao đẳng Đại học 5 Việc được đăng cách đây 1 Tuần

2 tuần

Một phần của tài liệu nghiên cứu mẫu thiết kế hướng đối tượng áp dụng xây dựng ứng dụng hỗ trợ rút trích thông tin từ web (Trang 65 - 72)