XML (eXtensible Markup Language)

Một phần của tài liệu KIỂM CHỨNG ĐẶT TẢ UML CHO TÁC TỬ PHẦN MỀM (Trang 28)

3.2.1 Cơ bản v XML

XML kết hợp những ưu điểm của các ngôn ngữtrước đó (sự đơn giản của HTML và cấu trúc mô tả tài liệu của SGML), có khảnăng mô tả nhiều loại dữ liệu khác nhau với mục đích là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet. XML là ngôn ngữ đánh dấu với mục

đích chung cho W3C đề nghị [6].

XML là một ngôn ngữ đánh dấu, nó gần giống với HTML (Hypertext markup Language). Nó cung cấp một phương tiện dùng văn bản để mô tả thông tin và áp dụng một cấu trúc kiểu cây cho thông tin đó. Mọi thông tin đều hiển thị dưới dạng văn bản (text), chen giữa các thẻ đánh dấu (markup) với nhiệm vụ ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự [6].

Nội dung của một tài liệu XML gồm hai phần chính:

- Nội dung chính: Hệ thống các thẻ đánh dấu tương ứng với các thông tin cần biểu diễn và có một node gốc.

- Nội dung phụ: Bổ sung thông tin cho tài liệu XML, một số thẻ phụ:

o Thẻ khai báo tham số: <?xml Ten1=“Giatri1”… ? >

Một số tham số thường dùng như: tham số version (phiên bản chỉ định của XML), tham số encoding (cách mã hóa các ký tự), tham số

standalone (liên kết với tài liệu xml khác).

o Thẻ chỉ thị xử lý: Mô tả một số thông tin cho tài liệu XML nhưng có

ý nghĩa riêng đối với một vài công cụ xử lý nào đó. C ấu trúc: <? Bo_Xu_Ly_Du_Lieu >

Ví dụ: <?xml-stylesheet type=“text/css” href=“a.css” ?>

Định dạng thể hiện tài liệu XML với “chương trình đ ịnh dạng” theo ngôn ngữCSS được lưu trữ bên trong tệp tin a.css. Thẻ này có ý nghĩa với một số trình duyệt như IE5, Netscape.

21 Cấu trúc: <-- Nội dung ghi chú -->

o Thẻ CDATA: Yêu cầu các bộ phân tích tài liệu XML bỏ qua không phân tích vào nội dung bên trong của thẻ này. Mục đích chính của thẻ

này là cho phép sử dụng trực tiếp bên trong thẻ một số ký hiệu không

được phép sử dụng bên ngoài. Ví dụ các ký tự ‘<’, ‘>’. Cấu trúc: <![CDATA [Nội dung]]>.

o Thẻ khai báo thực thể: cho phép tài liệu XML tham chiếu đến một tập hợp các giá trị đã chuẩn bị trước dưới dạng một tên gợi nhớ (tên thực thể).

Khai báo: <!DOCTYPE Ten_goc[ Khai báo thực thể tên X Khai báo thực thể tên Y]

o Thẻ khai báo cấu trúc.

Các thẻXML không được định nghĩa trước trong cú pháp XML, người sử dụng có thể tự định nghĩa theo các thẻ theo ý thích khi sử dụng XML. XML sử dụng DTD hoặc XML schema để mô tả dữ liệu. XML biểu diễn dữ liệu bằng cách sử dụng các thành phần XML, trong đó chứa một trong các thành phần sau đây:

- Thẻ bắt đầu: Chứa tên của thành phần.

- XML attributes: Các thuộc tính, mỗi thuộc tính có tên và giá trị

- Nội dung: Có thể chứa một đoạn văn bản hoặc thuộc tính, cũng có th ể

chứa cả hai.

- Thẻ kết thúc, giống với tên của thẻ bắt đầu. Ví dụ về một tài liệu XML:

<?xml

XML đã trở thành một công cụ rất mạnh và đơn giản để lưu trữ dữ liệu trên các file. Nó cho phép bạn lưu trữ dữ liệu theo mẫu và có thể truy xuất được bằng các ứng

version="1.0" encoding="UTF-8"?> <edge type="directed ">

<from id="n1"/> <to id="n2"/> </edge> (adsbygoogle = window.adsbygoogle || []).push({});

<comment> An edge of one graph</comment>

Có 6 thành phần XML trong tài liệu này. Đầu tiên là chỉ thị xử lý, Phần tửedge

chứa thuộc tính có tên là type và giá trị là directed. Phần tửedge chứa hai phần tử con là fromto chúng có hai thuộc tính là id. Phần tử comment chứa nội dung là một

22

dụng khác nhau, nhưng nó không thể tạo ra dữ liệu. Bằng cách sử dụng các API như

DOM, SAX, bạn có thể truy xuất dữ liệu từ một tài liệu XML rất dễ dàng.

3.2.2 XML DOM 3.2.2.1 DOM 3.2.2.1 DOM

“The W3C Document Object Model (DOM) is a platform and language-neutral

interfacethat allows programs and scripts to dynamically access and update the content, structure, and style of a document”

DOM gồm ba phần riêng biệt:

- Core DOM:Định nghĩa các đối tượng chuẩn cho các tài liệu có cấu trúc. - XML DOM:Định nghĩa tập hợp các đối tượng chuẩn cho tài liệu XML - HTML DOM:Định nghĩa tập các đối tượng chuẩn cho tài liệu HTML.

3.2.2.2 XML DOM

XML DOM định nghĩa các đối tượng và thuộc tính của tất cả các thẻ của tài liệu

XML và các phương thức (giao diện) để truy xuất chúng. Nó là một chuẩn để truy xuất, thêm, xóa, sửa các thẻ XML.

Trong DOM, mọi thứ trong tài liệu đều là nút (node):

- Toàn bộ tài liệu là một nút tài liệu (document node) – cây node

o Một cây gồm nhiều node.

o Node cao nhất gọi là root.

o Mỗi node, trừroot ra có chính xác một node cha.

o Một node có nhiều node con.

o Node lá là node không có node con. - Mọi thẻ XML là một nút thẻ (element node). - Text trong các thẻ XML là nút text (text node). - Mọi thuộc tính là nút thuộc tính (attribute node). - Ghi chú là nút ghi chú (comment node).

3.2.2.3 XML DOM Parser

Để đọc, cập nhật và thao tác trên một tài liệu XML ta cần một XML Parser. Có nhiều XML Parserđược hỗ trợ trong hầu hết các ngôn ngữ (Java, .Net…). Parser nạp tài liệu XML vào trong bộ nhớ của máy tính và được xem dưới dạng cây node. Sau đó

23

Hình 3.3: XML DOM Parser

3.2.2.4 XML DOM API

Cung cấp các phương thức xử lý tài liệu XML. Trong XML DOM API có rất nhiều phương thức để có thể thao tác với tài liệu XML, ở đây tôi xin chỉ ra một số phương thức thường sử dụng nhất để thao tác với tài liệu XML:

- Duyệt node:

o ParentNode: Lấy node cha của node hiện tại

o ChildNodes: Lấy các node con của node hiện tại (adsbygoogle = window.adsbygoogle || []).push({});

o firstChild: Lấy nodecon đầu tiên của node hiện tại

o lastChild: Lấy node con cuối cùng của node hiện tại

o nextSibling: Lấy node kết tiếp node hiện tại.

o previousSibling: Lấy nodetrước node hiện tại. - Thao tác trên các node:

o getElementsByTagName(String tagname): Trả về một tập các node có thuộc tính tên là: tagname.

o getElementById(String id): Trả về một node có thuộc tính id là: id

o setAttribute(String name, String value): Đặt thuộc tính cho node với tên thuộc tính là name, giá trị là value.

o getAttribute(String name): lấy giá trị của thuộc tính có tên là name

o removeChild: Xóa node con của node hiện tại

24

o replaceChild: Thay thế node con của node hiện tại bằng một node

mới.

o createNode:Dùng để tạo ra tất cả các loại node.

o createElement: = createNode với loại element node.

o createTextNode: = createNode với loại text node

o createAttribute: = createNode với loại attribute node.

o nodeCha.appendChild: thêm vào phần tử cuối cùng của danh sách các node con của nodeCha.

o nodeCha.insertBefore: thêm node mới vào trước node nào đó trong

danh sách node con của nodeCha.

3.3 XMI (XML Metadata Interchange)

XMI là một chuẩn OMG cho việc trao đổi siêu dữ liệu (metadata) giữa các công cụ, các kho dữ liệu và các ứng dụng. Nó là một chuẩn cho phép người dùng mô tảđối

tượng bằng cách sử dụng XML. Nó làm việc dựa trên các chuẩn như W3C XML,

OMG UML và MOF [14].

Mặc dù XML có rất nhiều ưu điểm, nhưng vẫn có một khoảng cách nhất định giữa XML với các đối tượng (objects). XML định nghĩa các phần tử XML, các thuộc tính, không phải là đối tượng. Nó không cung cấp các đặc điểm của hướng đối tượng

như đa thừa kế và nó không chứa mô hình đối tượng. Tồn tại nhiều cách khác nhau để lưu trữ dữ liệu XML và nếu sử dụng các công cụkhác nhau đểlưu trữ XML thì sẽ gây

ra khó khăn trong việc trao đổi dữ liệu. Khi ta lưu trữ đối tượng bằng XML cũng vậy, nếu đối tượng được lưu trữ khác nhau trong XML thì rất khó khăn đểtrao đổi giữa các công cụ. Tuy nhiên, XMI ra chính là cầu nối liền khoảng cách giữa đối tượng và XML. Nó cung cấp một chuẩn để tạo ra một ánh xạ từ một đối tượng được định nghĩa bằng

25

Hình 3.4: Sử dụng XMI trao đổi thông tin giữa các công cụ khác nhau.

XMI được xây dựng dựa trên XML, vì vậy chúng ta hoàn toàn có thể sử dụng các API chuẩn thao tác với XML như DOM, SAX để thao tác với tài liệu XMI. Trong nghiên cứu của tôi, tôi sử dụng DOM XML cho ngôn ngữJava để thao tác với tài liệu XMI.

3.4 AUML (Agent UML) (adsbygoogle = window.adsbygoogle || []).push({});

Trước khi đi vào tìm hiểu về AUML, tôi xin giới thiệu qua một số khái niệm cơ

bản về tác tử phần mềm (agent) và phần mềm hướng tác tử để ta có một cái nhìn tổng quan nhất về một phần mềm hướng tác tử.

3.4.1 Tác t phn mm là gì?

Theo từđiển Heritage của Mỹ: “Agent là một đối tượng mà có ảnh hưởng hay có khảnăng và có quyền tác động hay đại diện cho một đối tượng khác”.

Theo Ressel và Norvig: “Một agent có thể được xét tới bởi khảnăng nhận thức về môi trườn nó đang tồn tại qua bộ cảm biến (sensor) và khả năng tác động lên môi

trường đó qua cơ quan phản ứng (effector)”.

Theo Pattie Maes: “Agent tự chủ là các hệ tính toán tồn tại trong môi trường

động phức tạp, tri giác và hành động tự chủ trong môi trường này, qua đó hình dung

được nhiệm vụ hoặc mục đích của mình”.

Theo như các định nghĩa trên thì agent có thể là hệ thống phần cứng (điều nhiệt, tàu vũ trụ, xe tự hành…) hoặc phần mềm (kiểm tra thư, Antivirus, …) Ởđây ta đi vào

26

Tác tử phần mềm là một chương trình máy tính tồn tại trong môi trường nhất

định, tự động hành động phản ứng lại sựthay đổi của môi trường nhằm đáp ứng mục

tiêu đã được thiết kếtrướcất như:

- Antonomy (Tính tự chủ): Một agent có khả năng kiểm soát hành vi của mình độc lập với các thực thể khác.

- Reactivity (Tính phản xạ): Agent có khảnăng phản ứng lại các tác động từmôi trường theo một cơ chếnào đó.

- Pro-activeness (Tính chủ động): Agent không chỉ phản ứng lại môi

trường, chúng có thểhành động có mục đích và chủ động để tranh thủ thời

cơ đạt được mục đích đó. Từ một mục tiêu, agent có khảnăng xác định các

hành động cần thiết và nó thực hiện một cách linh hoạt các hành vi đó để đạt được mục tiêu đề ra.

- Social Ability (Tính cộng đồng):Agent có thểtương tác với những agent

khác hay con người để hoàn thành công việc riêng của mình hay trợ giúp các agent khác trong những hoạt động nào đó.

Dựa vào mức độ thông minh, tính di động hay số lượng agent, người ta phân

agent ra một số loại như: agent cộng tác, agent giao diện, agent di dộng, agent thông tin, agent phản xạ, agent thông minh.

3.4.2 Phn mềm hướng Agent

Công nghệ phần mềm hướng Agent phân rã bài toán thành nhiều thành phần

tương tác và tự trị (agents) mà có các mục tiêu cụ thể để đạt tới. Phần mềm hướng

agent là một phương pháp luận mới hỗ trợ cách tiếp cận được công nghệ hóa: phân tích và thiết kế hệ thống.

- Phân tích hướng agent: Cũng giống như các phương pháp phân tích hệ

thống khác, phân tích hướng agent cũng bắt đầu từ việc định nghĩa các yêu (adsbygoogle = window.adsbygoogle || []).push({});

cầu và mục đích của hệ thống. Các mục đích toàn thể của ứng dụng được phân rã thành những mục tiêu con, nhỏhơn; cho tới khi nào có thể quản lý

được chúng. Việc phân tích hướng agent phải nhận ra được nhiệm vụ của một agent.

- Thiết kế phần mềm hướng agent: Mỗi agent trong hệ thống được giao cho một hoặc một số nhiệm vụ riêng biệt. Các agent phải nắm được đầy đủ

trách nhiệm đối với việc hoàn thành các nhiệm vụ được giao. Các nhiệm vụ cộng đồng biểu diễn các chức năng toàn cục của hệ thống agent.

27

Phát triển phần mềm hướng agent dựa vào các hệ đa agent – là một cộng đồng các agent, nơi mà tương tác qua lại giữa các agent và với môi trường của chúng tạo ra một hành vi toàn thể, hữu ích. Một hệđa agent bao gồm các thành phần:

- Các agentđược xem như là các cá thể. - Tương tác giữa các agent

- Sự phụ thuộc qua lại giữa agent và các quan hệ cộng đồng.

Để hiểu rõ hơn phương pháp phân tích thi ết kế phần mềm hướng agent, tôi xin trình bày qua một số khái niệm cơ bản trong lý thuyết Gaia [10] – một lý thuyết dùng trong phân tích và thiết kế phần mềm hướng agent.

Hình 3.5: Các khái niệm cơ bản của lý thuyết Gaia Trong pha phân tích:

- Xác định các vai trò trong hệ thống và định nghĩa m ột dãy các vai trò chính bằng ngôn ngữ miêu tả phi hình thức. Với mỗi vai trò cần xác định các giao thức liên kết.

- Đầu ra của pha phân tích là mô hình hoàn thiện của các vai trò – mô tả về

trách nhiệm, quyền hạn, các giao thức tương tác, hoạt động và mô hình

tương tác. Mỗi giao thức mô tả về sự chuyển đổi dữ liệu và các thành phần có liên quan.

Pha thiết kế: Tập trung vào việc định nghĩa hệ thống agent để nó có thể hoạt

động. Nó bao gồm một sốgiai đoạn như sau:

- Thứ nhất: Xác định mô hình agent, kết hợp vai trò vào các loại agent từ đó xây dựng hệ thống phân cấp các loại agent và ước lượng số lượng các thể hiện (instance)được yêu cầu đối với mỗi lớp.

28

- Thứ hai: Xác định các dịch vụ mà agent phải cung cấp để hoàn thành các nhiệm vụ mà chúng được giao bằng cách phân tích các nhiệm vụ và hoạt

động. Đó chính là các giao thức được định nghĩa cho mỗi vai trò.

- Thứ ba: Xác định các mô hình tích hợp đểxác định các khảnăng thiếu sót trong thiết kế.

Kết quảđầu ra của pha thiết kế chính là kiến trúc thực tế của hệ thống agent.

Nói đến agent cũng như phần mềm hướng agent còn rất nhiều vấn đề cần bàn

như: kiến trúc agent, hệđa agent, liên lạc/truyền thông trong hệagent… trong phạm vi khóa luận của tôi, tôi không đề cập tới tất cả các kiến thức về agent, cách thức phân tích thiết kế, xây dựng phần mềm hướng agent; mà ởđây tôi chỉ trình bày một số khái

niêm cơ bản nhất, đưa ra một cái nhìn tổng quan nhất về agent và phần mềm hướng

agent. Các vấn đề này được trình bày kỹ trong [1, 3, 10].

3.4.3 AUML (Agent Unified Modeling Language)

Như ta đã biết UML là ngôn ngữ rất mạnh để mô hình hóa các đối tượng và thao tác của các đối tượng. Nó cung cấp các mô hình tĩnh (các bi ểu đồ lớp và gói) và các mô hình đ ộng (biểu đồ tương tác, biểu đồ trạng thái, biểu đồ hoạt động) để mô tả hệ

thống phần mềm. Quá trình xây dựng các hệ thống dựa tác tử cũng đòi hỏi tất cả các quá trình của công nghệ phần mềm như: phân tích, thiết kế, đanh giá, bảo trì… Tuy nhiên, agent có nhiều điểm khác biệt so với các đối tượng nên có nhiều lúc UML không thể hỗ trợ toàn bộđể mô hình hóa hệ thống dựa agent. Vì vậy, đểđặc tả cho hệ

thống dựa tác tử, FIFA (Foundation for Intelligent Physical Agents) sử dụng UML mở (adsbygoogle = window.adsbygoogle || []).push({});

rộng, gọi là AUML (Agent Unified Modeling Language) để mô hình hóa các hệ dựa tác tử, đặc tả giao thức tương tác tác tử (AIP – Agent Interaction Protocols).

AUML là một hướng tiếp cận giao thức phân mức. Một giao thức tương tác tác

tử (AIP) mô tả các mẫu truyền thông như một dãy các thông đi ệp giữa các agent và ràng buộc nội dung của các thông điệp này. AIP được mô tả gồm ba mức [8, 9]:

Một phần của tài liệu KIỂM CHỨNG ĐẶT TẢ UML CHO TÁC TỬ PHẦN MỀM (Trang 28)