Tải bản đầy đủ (.doc) (39 trang)

KIẾN TRÚC PHẦN MỀM DỰA TRÊN AGENT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (575.01 KB, 39 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thị Hồng Hạnh
KIẾN TRÚC PHẦN MỀM DỰA TRÊN AGENT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin
HÀ NỘI – 2010
§
Trang 2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thị Hồng Hạnh
KIẾN TRÚC PHẦN MỀM DỰA TRÊN AGENT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: PGS.TS. Nguyễn Việt Hà
HÀ NỘI – 2010
LỜI CẢM ƠN
Lời đầu tiên em muốn gửi cảm ơn chân thành và sâu sắc tới thầy giáo, Phó Giáo
Sư, Tiến sĩ Nguyễn Việt Hà – Phó Hiệu trưởng trường Đại học Công Nghệ, người thầy
đã giúp em định hướng, có những kinh nghiệm quý báu về công nghệ Agent, thầy đã
tận tình giúp đỡ em hoàn thành khóa luận.
Em xin gửi lời cảm ơn đến thầy giáo, Thạc sĩ Đào Kiến Quốc đã giúp em hoàn
thiện và hiểu rõ các khái niệm, cách phân tích chương trình để hoàn thiện khóa luận này.
Em cũng muốn gửi lời cảm ơn tới các thầy, cô giáo đã chỉ bảo trong suốt quá trình
học tập tại trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội. Cảm ơn bạn Tạ
Minh Tú, chị Nguyễn Thị Thu Hiền, những người đã cùng giúp đỡ, hợp tác nghiên cứu
các bài toán, ứng dụng được trình bày trong khóa luận tốt nghiệp này.
Ngoài ra, em muốn gửi lời cảm ơn đến các thầy giáo, cô giáo trong bộ môn Công


nghệ phần mềm, khoa Công nghệ thông tin, Trường Đại học Công nghệ, đã tạo điều
kiện thuận lợi cho em trong quá trình học tập chuyên ngành và thực hiện khóa luận .
Cuối cùng con muốn cảm ơn đến cha mẹ, tới gia đình và bạn bè với tình yêu
thương sâu sắc – những người đã hết sức ủng hộ, giúp đỡ và động viên con trong suốt
quá trình học tập đã qua.
Hà nội, ngày 18/05/2010
Sinh viên:

Lê Thị Hồng Hạnh
Trang 2
TÓM TẮT
Hiện nay, khi Internet trở nên phổ biến và cần thiết, các hệ thống mở, phân tán
đang được phát triển rộng rãi và hữu ích theo cùng. Hướng phát triển các hệ thống này
chủ yếu được sử dụng theo mô hình Client –Server, mọi tính toán, yêu cầu được chuyển
lên và thực hiện ở Server bên ngoài Internet. Điều này đòi hỏi một băng thông Internet
lớn với chi phí cao. Có các hướng giải quyết để phân tải mạng trên Server như phân tải
mạng bằng các Server khác hay sử dụng Proxy Cache để lưu các kết quả tính toán, yêu
cầu đã được thực hiện. Khóa luận này sẽ giới thiệu một hướng phân tải mạng cho Server
bằng cách sử dụng Proxy động được xây dựng dựa trên lý thuyết, các kiến thức về kiến
trúc xây dựng phần mềm dựa trên Agent – một hướng nghiên cứu phát triển phần mềm
mới được xem là tiếp theo của phương pháp hướng đối tượng.
Trong mô hình này, các tính toán, yêu cầu được đóng gói thành các Agent, sau đó
được chuyển xuống Proxy, lưu giữ và thực thiện các tính toán. Các agent này có thể di
chuyển, cập nhật cơ sở dữ liệu từ Server, lưu giữ các tính toán, thực hiện các tính toán
này ngay trên Proxy khi có yêu cầu gửi đến nhằm giảm thiểu việc truy cập lên Server,
cơ sở dữ liệu, và phân tải mạng cho Server. Bên cạnh đó, sử dụng Proxy động sẽ làm
việc thực hiện các tính toán một cách nhanh chóng hơn do các tính toán ở gần và cơ sở
dữ liệu được lưu trữ sẵn trên Proxy, do đó tốc độ truyền dẫn thông tin và các tính toán
đã được lưu trữ sẽ tối ưu hơn so với khi Client yêu cầu tính toán nếu được gửi và thực
hiện trên Server theo mô hình truyền thống.

Trang 3
MỤC LỤC
LỜI CẢM ƠN...................................................................................................................2
TÓM TẮT.........................................................................................................................3
MỤC LỤC........................................................................................................................4
Chương 1. GIỚI THIỆU....................................................................................................6
1.1 Tổng quan kiến trúc phần mềm dựa trên Agent..............................................6
1.2 Bài toán xây dựng mô hình phân tải mạng nhờ Proxy động dựa trên Agent. .6
1.3 Nội dung và cấu trúc khóa luận.......................................................................7
Chương 2. TỔNG QUAN VỀ AGENT ............................................................................9
2.1 Agent phần mềm..............................................................................................9
2.1.1 Khái niệm Agent phần mềm..................................................................9
2.1.2 Kiến trúc tổng thể................................................................................10
2.2 FIPA (Foundation for Intelligent, Physical Agents)......................................10
2.2.1 Lịch sử FIPA.......................................................................................11
2.2.2 Truyền thông Agent (Agent Communication) ....................................11
2.2.3 Quản lý Agent (Agent Management)..................................................11
2.3 Nền tảng JADE..............................................................................................12
2.3.1 Khái niệm về JADE.............................................................................12
2.3.2 Mô hình nền tảng JADE......................................................................13
2.3.3 Biên dịch và chạy trên nền tảng JADE................................................15
2.3.4 Dịch vụ di động liên nền (Inter - Platform).........................................18
.....................................................................................................................19
2.3.5 Jade Gateway.......................................................................................19
2.4 Tổng quan về Mobile Agent .........................................................................20
2.4.1 Khái niệm về mobile Agent.................................................................20
2.4.2 Cấu trúc của Mobile Agent.................................................................21
2.4.3 Ứng dụng của Mobile Agent...............................................................21
Trang 4
Chương 3. MÔ HÌNH PROXY ĐỘNG DỰA TRÊN AGENT.......................................23

3.1 Giới thiệu chung về bài toán..........................................................................23
3.2 Ý tưởng xây dựng mô hình............................................................................24
3.3 Giải pháp.......................................................................................................24
3.4 Phân tích mô hình..........................................................................................25
3.4.1 Mô hình chung.....................................................................................25
3.4.2 Mô hình Client.....................................................................................26
3.4.3 Mô hình Server....................................................................................26
3.4.4 Mô hình Proxy.....................................................................................27
3.5 Tổng kết ........................................................................................................29
Chương 4. THỰC NGHIỆM...........................................................................................30
4.1 Mô tả chương trình........................................................................................30
4.2 Thiết kế ứng dụng..........................................................................................31
4.3 Cài đặt và thực nghiệm..................................................................................33
4.3.1 Cài đặt.................................................................................................33
4.3.2 Thực nghiệm........................................................................................33
Chương 5. KẾT LUẬN...................................................................................................35
TÀI LIỆU THAM KHẢO..............................................................................................36
Trang 5
Chương 1. GIỚI THIỆU
1.1 Tổng quan kiến trúc phần mềm dựa trên Agent
Trong những năm gần đây, sự phát triển mạnh mẽ của các công nghệ truyền thông
và Internet đã ảnh hưởng sâu rộng đến nhiều mặt của cuộc sống từ kinh tế, khoa học đến
văn hóa xã hội. Cùng với sự phát triển lớn mạnh, không ngừng của Internet, đòi hỏi việc
chia sẻ và tích hợp thông tin qua đường truyền giữa các máy với nhau, để sử dụng cơ sở
dữ liệu chia sẻ ngày càng nên phổ biến. Điều này dẫn đến nhiều thách thức với người
phát triển phần mềm khi phải đối đầu với những yêu cầu về hệ phần mềm phức tạp, mở
và phân tán.
Chúng ta đã được biết các cách phát triển phần mềm dựa trên cách cách tiếp cận
hướng cấu trúc, cách tiếp cận hướng đối tượng. Phương pháp hướng đối tượng có ưu
điểm so với phương pháp hướng cấu trúc là khả năng sử dụng lại mã nguồn, dễ đọc mã

nguồn và xử lý lỗi. Đối với cách tiếp cận hướng đối tượng, hệ thống phần mềm được
xem như tập các thực thể tương tác gọi là “đối tượng”, trong đó mỗi đối tượng được xác
định bởi 3 yếu tố: Định danh, trạng thái, và hành vi. Với cách tiếp cận hướng đối tượng,
phần mềm được xây dựng dựa trên khái niệm đối tượng, các phương thức, quan hệ giữa
các đối tượng ... hướng giải quyết này có vẻ không đáp ứng được với các hệ phần mềm
mở, phân tán, phức tạp như là quản lý mạng viễn thông, thương mại điện tử, tìm kiếm
trích lọc thông tin ...
Là một hướng phát triển tiếp theo của phương pháp hướng đối tượng, cách tiếp
cận hướng agent được xem là một công nghệ hứa hẹn cho phát triển của các hệ phần
mềm phức tạp này. Ý tưởng cơ bản của hệ Phần mềm Agent là xem hệ phần mềm như
một cấu trúc xã hội bao gồm các agent có tính tự chủ về hành vi, về trạng thái, có khả
năng phản ứng nhận biết được môi trường, chủ động trong hành động và phản ứng, và
chúng có khả năng tương tác với nhau để đạt tới một mục đích chung của hệ thống.
Phần trình bày về lý thuyết Agent sẽ làm rõ hơn các khái niệm và có cái nhìn tổng quan
hơn về agent, cũng như sử dụng agent trong việc xây dựng phần mềm.
1.2 Bài toán xây dựng mô hình phân tải mạng nhờ Proxy động
dựa trên Agent
Hiện nay, các ứng dụng hệ thống phân tán, mở, phúc tạp thường được xây dựng
dựa trên mô hình Client – Server [16]. Trong mô hình này, các dịch vụ trong ứng dụng
bao gồm mã cài đặt dịch vụ và các tài nguyên để thực thi dịch vụ. Khi có các yêu cầu từ
Trang 6
Client, các mã dịch vụ sẽ được thực thi trên tài nguyên dịch vụ và kết quả trả về cho
Client. Tuy nhiên với lượng các yêu cầu tính toán gửi lên cho Server lớn thì vấn đề
đường truyền mạng là một là một thách thức. Mô hình Client –Proxy –Server là một
hướng giải quyết của vấn đề này. Bài toán được đưa ra từ ý tưởng giảm tải mạng cho
cho Server nhờ Proxy động dựa trên các kiến thức về Agent, mobile Agent. Ở đây các
tính toán sẽ được đóng gói thành các Agent được chuyển từ Server xuống Proxy khi
được yêu cầu. Proxy sẽ lưu các tính toán này và trả về một cách nhanh chóng khi có yêu
cầu.
Nền tảng được lựa chọn để phát triển hệ thống này là JADE (Java Agent Develop

Framework), nền tảng phát triển trên nền java, cung cấp cho người lập trình một nền
tảng để tạo ra các Agent thực hiện các tính toán, di chuyển, truyền thông với nhau.
1.3 Nội dung và cấu trúc khóa luận
Với nội dung trình bày những lý thuyết cơ bản về công nghệ Agent, xây dựng mô
hình phân tải mạng ở Server nhờ Proxy động dựa trên công nghệ Agent và cách áp dụng
vào bài toán thực tế - phân tải mạng cho chương trình tìm kiếm thông tin sinh viên ở các
trường Đại học. Khóa luận được tổ chức theo cấu trúc như sau:
Chương 1: Giới thiệu
Giới thiệu sơ lược về tổng quan kiến thức về công nghệ Agent, lý thuyết Agent và
các kiến thức xây dựng phần mềm dựa trên Agent. Bài toán xây dựng mô hình phân tải
mạng nhờ Proxy động được phân tích dưới khía cạnh sử dụng Agent đóng gói, đại diện
cho các tính toán là một hướng giải quyết khả thi cho việc giải quyết bài toán phân tải
mạng. Chương này giới thiệu những gì mà khóa luận nghiên cứu, từ đó thông qua việc
trình bày về nội dung và cấu trúc của khóa luận.
Chương 2: Tổng quan về Agent
Chương hai đi vào giới thiệu một cách tổng quan nhất về Agent. Cấu trúc và hoạt
động của Agent, hệ đa Agent, mobile Agent, chuẩn FIPA, nền tảng JADE. Với những
kiến thức cơ bản này, người đọc sẽ hiểu được phần nào cấu trúc, hoạt động cũng như
những ưu nhược điểm của Phần mềm Agent từ đó có thể xây dựng, phân tích thiết kế
được mô hình phù hợp với từng bài toán.
Chương 3: Mô hình phân tải mạng bằng Proxy động dựa trên Agent
Chương này giới thiệu hiện trạng của việc phân tải mạng cho Server, nêu ra hướng
giải quyết sử dụng Proxy động được xây dựng dựa trên ý tưởng đóng gói các tính toán
Trang 7
bằng Agent. Xây dựng mô hình Client – Proxy- Server, phân tích các mô hình Client,
mô hình Proxy, mô hình Server. Qua đó xây dựng mô hình xử lý bài toán và thiết kế chi
tiết cho mô hình giảm tải mạng.
Chương 4: Thực nghiệm
Trình bày thực nghiệm được phân tích ở chương 3, mô tả các bước thiết kế, cài
đặt, kết quả thực nghiệm của chương trình quản lý đào tạo của trường đại học trong đó

vấn đề tìm kiếm thông tin sinh viên là các tính toán được thực hiện thường xuyên từ
phía Client lên Server sẽ được đóng gói thành các Agent thực thi có thể di chuyển
xuống Proxy để giúp cho việc phân tải mạng.
Chương 5: Kết luận
Chương này tổng kết lại những gì đã đạt được và chưa đạt được. Từ đó nêu lên
những kết quả hướng tới, hướng nghiên cứu và phát triển tiếp theo.
Trang 8
Chương 2. TỔNG QUAN VỀ AGENT
2.1 Agent phần mềm
Chương này sẽ trình bày khái niệm Agent phần mềm [1] [2] [3](Software Agent),
cấu tạo và đặc tính của nó cũng như các khái niệm liên quan như đặc tả FIPA[1] [4] của
Agent, nền tảng thực thi JADE [1][5][6], và tìm hiểu về Agent di động (Mobile Agent)
[7].
2.1.1 Khái niệm Agent phần mềm
Trong những năm gần đây, hướng tìm hiểu, nghiên cứu các ứng dụng của Agent
phần mềm phát triển rất mạnh mẽ, đặc biệt là trong việc thiết kế và xây dựng các ứng
dụng phân tán. Có rất nhiều tranh luận về khái niệm Agent phần mềm, tuy là các cách
diễn đạt khác nhau nhưng ở góc độ người dùng, có thể hiểu Agent phần mềm là:
Agent phần mềm là một chương trình có thể thực hiện công việc thay cho người
dùng một cách độc lập sau khi được giao công việc
Các agent cần có môi trường để thi hành trong suốt thời gian tồn tại của chúng,
chúng tương tác với môi trường thi hành cũng như hoạt động một cách không đồng bộ
và tự trị trong đó.
Một ví dụ về mô hình phát triển phần mềm dựa trên Agent như trong dịch vụ du
lịch, người sử dụng thường có nhiều yêu cầu khác nhau cho các gói du lịch của mình
như vé máy bay, vé tàu, chỗ ở ... Do đó, thành phần phần mềm thay mặt người sử dụng
cần phải tương tác, thương lượng với nhiều dịch vụ khác một cách tự động và sau đó
tích hợp kết quả gửi lại cho người sử dụng. Mỗi thành phần như thế được hình dung là
một Agent.
Các đặc trưng cơ bản của Agent [1]:

• Tính tự trị (autonomous): agent có thể tự kiểm soát các hành động của nó
sau khi được giao việc mà không cần sự can thiệp của người dùng hay các
agent khác. Mỗi agent chứa một trạng thái nào đó của riêng nó, các agent
khác không thể truy cập được vào trạng thái này. Agent tự quyết định các
hành động của mình dựa trên trạng thái hiện thời mà không cần sự tác động
của con người hay các agent khác.
Tính tự trị là đặc trưng quan trọng nhất của Agent.
Trang 9
• Khả năng phản ứng (reactivity): Tính phản ứng là khả năng agent có thể
nhận biết được môi trường (qua bộ phận cảm nhận nào đó) và dựa vào nhận
biết đó, agent đáp ứng kịp thời những thay đổi xảy ra trong môi trường.
Phản ứng của Agent với môi trường bên ngoài đều hướng tới việc thực hiện
mục tiêu của Agent đó.
• Tính chủ động (pro-activeness): Khi có sự thay đổi của môi trường, agent
không chỉ phản ứng một cách đơn giản mà nó còn xác định chuỗi các hành
động cần thực hiện, bản thân agent sẽ chủ động trong việc khởi động và
thực hiện chuỗi hành động này.
• Tính xã hội (Social ability): các agent không chỉ hướng tới mục đích riêng
cuản nó mà còn có khả năng tương tác với các agent khác trong hệ thống để
hướng tới mục đích chung của hệ thống. Các hoạt động tương tác này bao
gồm phối hợp, cạnh tranh, thương lượng ...
2.1.2 Kiến trúc tổng thể
Kiến trúc Agent là một cơ chể cơ bản dựa trên các thành phần tự chủ, nó hỗ trợ
các hành động tác động lên thế giới thực, các môi trường mở và động. Trên thực tế, kết
quả ban đầu của Agent tính toán nhằm vào việc phát triển kiến trúc các Agent thông
minh, và những năm đầu tồn tại các kiểu thiết kế kiến trúc khác nhau, từ các kiến trúc
đơn giản về phản ứng hành động, điều khiển trong một mô hình kích thích – trả lời, như
là kiến trúc xếp gộp [8], cho đến các kiến trúc phức tạp hơn như là kiến trúc dựa trên sự
tin tưởng vào mục đích (BDI-Belief Desire Intention) [9]. Kiến trúc phân lớp, tổng hợp
giữa hai kiểu kiến trúc trên, bao gồm cả phản ứng hành động và các điểm mạnh của cả

hai phương pháp trên. Kiến trúc của Agent có thể được chia thành bốn nhóm chính: Nền
tảng Logic, phản ứng hành động, BDI, và kiến trúc phân lớp.
2.2 FIPA (Foundation for Intelligent, Physical Agents)
Phần này sẽ giới thiệu một cách tổng quát về lịch sử phát triển và nội dung chính
của đặc tả FIPA [2]. Tập hợ đầy đủ các đặc tả FIPA có thể được tìm thấy trên trang web
chính thức của FIPA.
JADE là sự thi hành của các đặc tả FIPA vì thế nó phụ thuộc lớn vào các ý tưởng
được đưa ra trong các đặc tả và được mở rộng theo những tài liệu đặc tả. Tuy nhiên các
đặc tả FIPA không được thể hiện hoàn toàn trong JADE do JADE có mở rộng thêm một
số khu vực so với đặc tả.
Trang 10
2.2.1 Lịch sử FIPA
FIPA được thành lập năm 1996, được xem như là một tổ chức phi lợi nhuận quốc
tế với mục tiêu phát triển tập các chuẩn liên quan đến công nghệ phần mềm Agent. Các
thành viên ban đầu, tập hợp các tổ chức nghiên cứu và công nghiệp, đưa ra một tập các
quy tắc hướng dẫn sản xuất của tập đặc tả chuẩn Pháp lý [10] (Chuẩn Pháp lý được hiểu
đối lập với chuẩn Thực tế, nó được tạo ra không phải bởi các cơ quan chuẩn mà được
đặt ra bởi các công ty) cho công nghệ phần mềm Agent. Tại thời điểm đó, phần mềm
Agent được biết đến rộng rãi trong giới khoa học nhưng lại ít được sự quan tâm của các
tổ chức thương mại. Những người đứng đầu đã đồng ý cho sản xuất các chuẩn có thể
tạo ra một nền tảng cứng của một kỹ thuật mới bằng cách sử dụng chéo một lượng lớn
các ứng dụng.
Cốt lõi FIPA tuân theo tập các quy tắc:
1. Công nghệ Agent bao gồm một mô hình mới để giải quyết các vấn đề cũ và
mới
2. Các công nghệ Agent sẽ hướng tới mức độ hoàn thiện lớn hơn.
3. Để sử dụng công nghệ Agent cần có đặc tả
4. Đặc tả của cơ chế bên trong các Agent không phải là mối quan tâm chính, mà
là cơ sở hạ tầng và ngôn ngữ yêu cầu cho khả năng phối hợp mở.
2.2.2 Truyền thông Agent (Agent Communication)

Agent về cơ bản là hình thái của quá trình phân phối mã nguồn và do đó tuân theo
khái niệm cổ điển của mô hình phấn phối tính toán theo hai phần: các thành phần và các
kết nối. Các thành phần là những khách hàng, những nhà sản xuất và những người điều
hành các thông điệp truyền thông thông qua kết nối. Phần thân của các chuẩn đầu tiên
như là ISO hay IETF lựa chọn một cách tiếp cận hướng mạng trong việc phát triển các
cụm giao thức được phân lớp dựa phần lớn trên truyền thông máy tính mà chúng ta đã
biết như mô hình OSI, mô hình TCP/IP. Cả hai đều được tận dụng thông qua giao tiếp
giữa các phần mềm ứng dụng giao thức.
2.2.3 Quản lý Agent (Agent Management)
Để bổ sung cho truyền thông, khía cạnh cơ bản thứ hai của hệ thống Agent được
tạo ra bởi đặc tả FIPA là quản lý Agent: một nền tảng chuẩn trong đó có các chuẩn
FIPA cho Agent tồn tại, tổ chức và quản lý. Nó thành lập các mô hình logic tham chiếu
Trang 11
cho việc khởi tạo, đăng ký, xác định vị trí, di trú và tổ chức các Agent. Mô hình tham
chiếu quản lý Agent được mô tả theo hình:
Hình 2.1. Quản lý Agent
Các thành phần của mô hình sẽ được giải thích chi tiết hơn trong phần trình bày
tiếp theo về nền tảng của Agent.
2.3 Nền tảng JADE
Phần này sẽ giới thiệu một cách tổng quan của nền tảng JADE [11][12] (Java
Agent DEvelopment Framework platfom) và các lý thuyết cơ bản về thành phần kiến
trúc của nó.
2.3.1 Khái niệm về JADE
JADE (Java Agent DEvelopment Framework) là một framework phần mềm cho
hệ thống đa agent viết hoàn toàn bằng Java và được phát triển từ cuối năm 2001. Jade
cho phép sự kết hợp giữa nhiều agent tuân thủ theo chuẩn FIPA và sử dụng ngôn ngữ
giao tiếp theo chuẩn FIPA-ACL với cả SL và XML.
Jade là một nền tảng cho hoạt động của các agent, nó hỗ trợ:
- Là một nền tảng cho hệ phân tán của agent theo chuẩn FIPA, nó có tính di
động, bảo mật và nhiều các tính năng khác.

- Giao diện người dùng của ứng dụng Java
Trang 12
- Là thư viện của các giao thức tương tác FIPA, được cung cấp sẵn, hỗ trợ giao
tiếp của các agent trên những nền tảng giống hoặc khác nhau
- Có giao diện đồ họa người dùng để quản lý các agent từ cùng
- Có sẵn tại
2.3.2 Mô hình nền tảng JADE
Hình 2.2. Mô hình nền tảng JADE
Hình trên mô tả kiến trúc của nền tảng JADE.
Nó là 1 hệ kiến trúc phân tán bao gồm:
• Nhiều máy
• Nhiều tiến trình
• Nhiều các Agent Container
Các Agent Container được hiểu là tiến trình java cho container, mỗi container sẽ
có 1 tiến trình java, rõ ràng với từng agent, chứa một hay nhiều các agent. JADE tạo ra
nhiều container cho các agent, chúng có thể ở trong cùng một hệ thống máy tính hoặc
khác hệ thống. Các tập của các container với nhau được gọi là nền tảng. Mỗi nền tảng
Trang 13

×