Phương pháp luận sáng tạo khoa học
Mục lục
1 Tổng quan
Trong hơn 20 năm qua, Công nghệ web, với sự phát triển vượt bậc, đã được xem như
một cuộc cách mạng trong lĩnh vực công nghệ. Việc sử dụng các dịch vụ của Google ,
facebook, youtube đã hoàn toàn trở thành thói quen hàng ngày của hầu hết mọi người
trên thế giới. Nhưng đó chỉ là những cái tên nổi bật nhất trong kho ứng dụng khổng lồ mà
công nghệ web đã mang lại cho chúng ta. Hiện nay, ứng dụng web đã có mặt ở khắp các
lĩnh vực như kinh tế, xã hội, giáo dục, y tế… thông qua các công cụ tìm kiếm, mạng xã
hội, thương mại điện tử, các trang tin tức …
Trong lĩnh vực công nghệ thông tin đã chứng kiến sự ra đời của web 1.0, web 2.0
cùng với sự hình thành và phát triển của hàng loạt công nghệ, kỹ thuật cung cấp cho
người phát triển như: các công nghệ hướng client như HTML, CSS, Javascript; các công
nghệ hướng server như Java, PHP, ASP, ASP.NET, Rub on Rails … Bên cạnh đó các
trình duyệt không ngừng nâng cấp phiên bản, các plug-in, add-on để hỗ trợ những tiện
ích cho người dùng, Hiện nay, hầu hết các phiên bản mới nhất của các trình duyệt đều hỗ
trợ HTML5, CSS3 những công nghệ này được xem là bước tiến đáng kể trong công nghệ
web.
Để có được những thành tựu trong công nghệ web như hiện nay sáng tạo là một việc
không thể thiếu trong quá trình hình thành và phát triển. Đã có nhiều nghiên cứu để tìm
ra các mô thức chung của sáng tạo như phương pháp SCAMPER, phương pháp TRIZ,
phương pháp KAIZEN. Trong khuôn khổ bài viết này sẽ áp dụng phương pháp sáng tạo
TRIZ vào việc phân tích các kỹ thuật tối ưu hóa hiệu năng web dưới góc nhìn của các
nguyên lý sáng tạo TRIZ.
2 Mục đích của đề tài
Cùng với sự phát triển đó là nhu cầu sử dụng internet không ngừng tăng. Các ứng
dụng web hướng tới nhiều người dùng như mạng xã hội, các trang bán hàng online… đã
và đang đối mặt với bài toán về việc số lượng lớn người dùng truy cập. Để giải quyết bài
toán này, đề tài sẽ phân tích các kỹ thuật tối ưu hóa web hiện đang sử dụng bằng các
nguyên lý sáng tạo TRIZ. Qua đó việc phân tích này, sẽ cho thấy một cái nhìn đầy đủ hơn
Nguyễn Huệ Minh - CH1201047 Trang 1
Phương pháp luận sáng tạo khoa học
về việc ứng dụng các nguyên lý sáng tạo vào một bài toán tin học cụ thể, đồng thời tạo cơ
sở về mặt ý tưởng cho việc giải quyết các bài toán tin học tương tự.
3 Cơ sở lý thuyết
3.1 TRIZ
TRIZ được phát triển từ Lý thuyết giải các bài toán sáng chế (viết tắt theo tiếng
Nga) của tác giả Genrick Saulovic Altshuller (1926-1998). Lý thuyết này được xây dựng
như là một khoa học chính xác, có lĩnh vực nghiên cứu riêng, các phương pháp riêng,
ngôn ngữ riêng. TRIZ không phải là lời giải cho những bài toán hóc búa hay một dạng
toán học cao cấp, mà cung cấp cho tất cả mọi người những phương pháp, kỹ thuật để
hướng đến giải quyết những vấn đề trong thực tế.
Phần sau đây chúng ta sẽ sơ lược qua nội dung của bốn mươi nguyên tắc sáng tạo
trong TRIZ. Sau đó chúng ta sẽ áp dụng một số phương pháp sáng tạo TRIZ vào việc
phân tích các kỹ thuật tối ưu hóa hiệu năng web.
3.2 Bốn mươi nguyên tắc sáng tạo
3.2.1 Nguyên tắc phân nhỏ
Chia các đối tượng thành các phần độc lập
Làm đối tượng thành các thành phần tháo ráp
Tăng mức độ phân nhỏ của đối tượng
3.2.2 Nguyên tắc “tách riêng”
Tách phần gây “phiền phức” (tính chất “phiền phức”) hay ngược lại, tách phần
duy nhất “cần thiết” (tính chất “cần thiết”) ra khỏi đối tượng.
3.2.3 Nguyên tắc phẩm chất cục bộ
Chuyển đối tượng (hay môi trường bên ngoài, tác động bên ngoài) có cấu trúc
đồng nhất thành không đồng nhất.
Các phần khác nhau của đối tượng phải có những chức năng khác nhau.
Mỗi phần của đối tượng phải ở trong những điều kiện thích hợp nhất đối với
công việc.
3.2.4 Nguyên tắc phản đối xứng
Chuyển đối tượng có hình dạng đối xứng thành không đối xứng (nói chung,
làm giảm bậc đối xứng).
Nguyễn Huệ Minh - CH1201047 Trang 2
Phương pháp luận sáng tạo khoa học
3.2.5 Nguyên tắc kết hợp
Kết hợp các đối tượng đồng nhất hoặc các đối tượng dành cho các đối tượng kế
cận.
Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận.
3.2.6 Nguyên tắc vạn năng
Đối tượng thực hiện một số chức năng khác nhau, do đó là không cần sự tham
gia của đối tượng khác.
3.2.7 Nguyên tắc chứa trong
Một đối tượng được đặt bên trong đối tượng khác và bản thân nó lại có thể
chứa đối tượng thứ ba…
Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác
3.2.8 Nguyên tắc phản trọng lượng
Bù trừ trọng lượng của đối tượng bằng cách gắn nó với đối tượng khác, có
trọng lực nâng.
Bù trừ trọng lượng của đối tượng bằng tương tác với mội trường như sử dụng
các lực thủy động, khí động …
3.2.9 Nguyên tắc gây ứng xuất sơ bộ
Gây ứng suất trước đối với đối tượng để chống lại ứng suất không cho phép
hoặc không mong muốn khi đối tượng làm việc (hoặc gây ứng suất trước để
khi làm việc sẽ dùng ứng suất ngược lại).
3.2.10 Nguyên tắc thực hiện sơ bộ
Thực hiện trước sự thay đổi cần có, hoàn toàn hoặc từng phần đối với đối
tượng.
Cấn sắp xếp đối tượng trước, sao cho chúng có thể hoạt động từ vị trí thuận lợi
nhất, không mất thời gian dịch chuyển.
3.2.11 Nguyên tắc dự phòng
Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị các phuơng tiện
báo động, ứng cứu, an toàn.
Nguyễn Huệ Minh - CH1201047 Trang 3
Phương pháp luận sáng tạo khoa học
3.2.12 Nguyên tắc đẳng thế
Thay đổi điều kiện làm việc để không phải nâng lên hay hạ xuống các đối
tượng.
3.2.13 Nguyên tắc đảo ngược
Thay vì hành động theo nhu cầu của bài toán, hành động ngược lại (ví dụ
không làm nóng mà làm lạnh đối tượng).
Làm phần chuyển động của đối tượng (hay mội trường bên ngoài) thành đứng
yên và ngược lại phần đứng yên thành chuyển động.
Lật ngược đối tượng
3.2.14 Nguyên tắc cầu (tròn) hóa
Chuyển những phần thẳng của đối tượng thành cong, mặt phẳng thành mặt cầu,
kết cấu hình hộp thành kết cấu hình cầu.
Sử dụng các con lăn, viên bi, hình xoắn.
Chuyển sang chuyển động quay, sử dụng lực ly tâm.
3.2.15 Nguyên tắc năng động
Cần thay đổi các đặc trưng của đối tượng hay môi trường bên ngoài sao cho
chúng tối ưu trên từng giai đoạn công việc.
Phân chia đối tượng thành từng phần có khả năng dịch chuyển đối với nhau.
3.2.16 Nguyên tắc tác động bộ phận và dư thừa
Nếu như khó nhận 100% hiệu quả cần thiết, nên nhận ít hơn hay nhiều hơn
“một chút”. Lúc đó bài toán có thể trở nên đơn giản hơn.
3.2.17 Nguyên tắc bộ xung chiều khác
Những khó khăn do chuyển động (hay sắp xếp) đối tượng theo đường (một
chiều) sẽ được khắc phục nếu cho đối tượng có khả năng di chuyển trên mặt
phẳng (hai chiều), tương tự những bài toán liên quan đến những chuyển động
(hay sắp xếp) các đối tượng trên mặt phẳng sẽ đơn giản hóa khi chuyển sang
không gian (ba chiều).
Chuyển các đối tượng có kết cấu một tầng thành đa tầng
Đặt đối tượng nằm nghiêng
Sử dụng mặt sau của diện tích cho trước
Sử dụng các luồng ánh sáng tới diện tích bên cạnh hoặc tới mặt sau của diện
tích cho trước.
Nguyễn Huệ Minh - CH1201047 Trang 4
Phương pháp luận sáng tạo khoa học
3.2.18 Nguyên tắc sự dao động cơ học
Làm cho đối tượng giao động
Nếu đã có giao động tăng tần suất giao động
Sử dụng tần số cộng hưởng
Thay vì sử dụng các bộ phận rung cơ học, dùng các bộ rung áp điện
Sử dụng siêu âm kết hợp với trường điện từ.
3.2.19 Nguyên tắc tác động theo chu kỳ
Chuyển tác động liên tục thành tác động chu kỳ (xung)
Nếu đã có tác động chu kỳ, hãy thay đổi chu kỳ
Sử dụng thời gian giữa các xung để thực hiện tác động khác
3.2.20 Nguyên tắc tác động hữu hiệu
Thực hiện công việc một cách liên tục (tất cả các phần của đối tượng cần luôn
làm việc ở chế độ đủ tải).
Khắc phục vận hành không tải và trung gian
Chuyển chuyển động tịnh tiến sang chuyển động quay.
3.2.21 Nguyên tắc vượt nhanh
Vượt qua những giai đoạn có hại hoặc nguy hiểm với vận tốc lớn
Vượt nhanh để có được hiệu ứng cần thiết.
3.2.22 Nguyên tắc chuyển hại thành lợi
Sử dụng các tác nhân có hại (ví dụ tác động có hại của môi trường) để thu
được hiệu ứng có lợI
Khắc phục tác nhân có hại bằng cách kết hợp với tác nhân có hại khác.
Tăng cường tác nhân có hại đến khi nó không còn có hại nữa.
3.2.23 Nguyên tắc quan hệ phản hồi
Thiết lập quan hệ phản hồi
Nếu có quan hệ phản hồi, hãy thay đổi nó
3.2.24 Nguyên tắc sử dụng trung gian
Sử dụng đối tượng trung gian, chuyển tiếp.
3.2.25 Nguyên tắc tự phục vụ
Đối tượng phải tự phục vụ bằng cách thực hiện các thao tác phụ trợ, sửa chữa.
Sử dụng phế liệu, chất thảI, năng lượng dư.
Nguyễn Huệ Minh - CH1201047 Trang 5
Phương pháp luận sáng tạo khoa học
3.2.26 Nguyên tắc sao chép
Thay vì sử dụng cái không được phép, phức tạp đắt tiền, không tiện lợi dễ vỡ,
sử dụng bản sao.
Thay thế đối tượng hay hệ các đối tượng bằng các bản sao quang học (ảnh,
hình vẽ) với các tỉ lệ cần thiết.
Nếu không thể sử dụng bản sao quang học ở vùng biểu kiến (vùng ánh sáng
nhìn thấy được bằng mắt thường), chuyển sang sử dụng bản sao hồng ngoại
hoặc tử ngoại.
3.2.27 Nguyên tắc rẽ thay cho đắt
Thay thế đối tượng đắt tiền bằng bộ các đối tượng rẻ có chất lượng kém hơn.
3.2.28 Nguyên tắc thay thế sơ đồ cơ học
Thay thế sơ đồ cơ học bằng điện, quang, nhiệt, âm hoặc mùi vị.
Sử dụng điện trường, từ trường và điện từ trường trong tương tác đối với đối
tượng.
Chuyển các trường đứng yên sang chuyển động, các trường cố định sang thay
đổi theo thời gian, các trường đồng nhất sang có cấu trúc nhất định.
Sử dụng các trường kết hợp với các hạt sắt từ.
3.2.29 Nguyên tắc sử dụng các kết cấu thủy và khí
Thay cho các phần đối tượng ở thể rắn, sử dụng các chất khí và lỏng: nạp khí,
nạp chất lỏng, đệm không khí, thủy tĩnh, thủy phản lực.
3.2.30 Nguyên tắc sử dụng bao mềm dẻo và mềm mỏng
Sử dụng các vỏ dẻo và màng mỏng thay cho các kết cấu khối.
Cách ly đối tượng với môi trường ngoài bên ngoài bằng các vỏ dẻo và màng
mỏng.
3.2.31 Nguyên tắc sử dụng vật liệu nhiều lỗ
Làm cho đối tượng có nhiều lỗ hoặc sử dụng thêm những chi tiết nhiều lỗ
(miếng đệm, tấm phủ …)
Nếu đối tượng đã có nhiều lỗ, sơ bộ tẩm nó bằng chất nào.
3.2.32 Nguyên tắc đổi màu
Thay đổi màu sắc của đối tượng hay mội trường bên ngoài
Thay đổi độ trong suốt của đối tượng hay môi trường bên ngoài.
Nguyễn Huệ Minh - CH1201047 Trang 6
Phương pháp luận sáng tạo khoa học
Để có thể quan sát được những đối tượng hay những quá trình, sử dụng các
chất phụ gia màu, huỳnh quang.
Nếu các chất phụ gia đó đã được sử dụng, dùng các nguyên tử đánh dấu.
Sử dụng các hình vẽ, ký hiệu thích hợp.
3.2.33 Nguyên tắc đồng nhất
Những đối tượng, tương tác với các đối tượng cho trước, phải được làm từ
cùng vật liệu (hoặc từ vật liệu gần về các tính chất) với các vật liệu để tạo đối
tượng cho trước.
3.2.34 Nguyên tắc loại bỏ và tái sinh từng phần
Phần đối tượng đã hoàn thành nhiệm vụ hoặc trở nên không cần thiết phải tự
phân hủy (hoà tan,bay hơi…).
Các phần mất mát của đối tượng phải được phục hồi trực tiếp trong quá trình
làm việc.
3.2.35 Nguyên tắc đổi các thông số hóa lý của đối tượng
Thay đổi trạng thái của đối tượng
Thay đổi nồng độ hay độ đậm đặc
Thay đổi độ dẻo
Thay đổi nhiệt độ, thể tích.
3.2.36 Nguyên tắc sử dụng chuyển pha
Sử dụng các hiện tượng, nảy sinh trong các quá trình chuyển pha như thay đổi
thể tích, tỏa hay hấp thu nhiệt lượng …
3.2.37 Nguyên tắc sử dụng nở nhiệt
Sử dụng sự nở hay co nhiệt của các vật liệu
Nếu đã sử dụng nở nhiệt, sử dụng vài vật liệu có các hệ số nở nhiệt khác nhau.
3.2.38 Nguyên tắc sử dụng các chất Oxy hóa
Thay không khí thường bằng không khí giàu Oxy.
Thay không khí giàu Oxy bằng chính Oxy.
Dùng các bức xạ ion hóa tác động lên không khí hoặc oxy.
Thay oxy giàu Ôzôn (hoặc ôxy bị ion hoá) bằng chính ôzôn.
3.2.39 Nguyên tắc sử dụng môi trường trơ
Thay môi trường thông thường bằng môi trường trung hòa.
Dưa thêm vào đối tượng các phần, các chất phụ gia trung hòa…
Nguyễn Huệ Minh - CH1201047 Trang 7
Phương pháp luận sáng tạo khoa học
Thực hiện quá trình trong chân không.
3.2.40 Nguyên tắc sử dụng vật liệu tổng hợp
Chuyển từ các vật liệu đồng nhất sang sử dụng các vật liệu hợp thành
(composite). Hay nói chung, sử dụng các loại vật liệu mới
4 Một số nguyên tắc sáng tạo trong các kỹ thuật tối ưu hóa hiệu năng web
4.1 Nguyên tắc phân nhỏ
Các web framework theo mô hình MVC hầu hết cấu cấp cho người phát triển các cơ
chế như: partial view, partial action. Mục đích của các cơ chế này giúp chúng ta phân nhỏ
các view, các action nhằm tăng tính sử dụng lại. Ví dụ như một màn hình cần hiển thị các
thông tin về breadcrumb, thông tin user đã đăng nhập, thanh menu … người phát triển
thường phân thành các partial view, partial action cho việc hiển thị. Đồng thời các
framework như ASP.NET MVC, JSP, Rails, Zend framework … cũng cung cấp kỹ thuật
cache cho các partial view, partial action, việc này giúp lưu lại kết quả vào bộ nhớ hoặc
tập tin ở server cho việc lấy kết quả những lần sau nhanh hơn.
Việc sử dụng linh hoạt các kỹ thuật cache cho partial view hay partial action, giúp
người phát triển nâng cao hiệu năng web và tính sử dụng lại, tính tháo ráp trong quá trình
phát triển dự án web.
4.2 Nguyên tắc tách riêng
Một dạng web phát triển nhanh chóng gần đây là Single Page Application. Các
trang web loại này sẽ chỉ tải trang lần đầu tiên khi người dùng nhập địa chỉ web, sau đó
các đường liên kết tới các trang khác bên trong các website này sẽ sử dụng kỹ thuật
AJAX (kỹ thuật giúp tải 1 phần trang web hay dữ liệu thay vì tải lại toàn bộ trang) và cơ
chế pushstate (hỗ trợ từ các phiên bản gần đây của các trình duyệt, để thay đổi đường dẫn
địa chỉ web trên thanh address của browser nhưng thực chất không tải lại toàn bộ trang).
Việc phát triển trang web theo kỹ thuật này giúp cho ứng dụng chỉ tải trang 1 lần,
và các lần sau chỉ tải những thành phần thật sự cần thiết thay vì phải tải lại toàn bộ trang.
Như vậy kỹ thuật này đã giúp chúng ta loại bỏ các thành phần ‘không cần thiết’ (vì các
thành phần này đã được tải trước đó và chúng sẽ được sử dụng lại cho các lần tải sau) và
tăng tốc độ hiển thị của web.
Nguyễn Huệ Minh - CH1201047 Trang 8
Phương pháp luận sáng tạo khoa học
4.3 Nguyên tắc phẩm chất cục bộ
Cải tiến tốc độ truy vấn cơ sở dữ liệu là một trong những kỹ thuật quan trọng để tối
ưu hóa hiệu năng web. Đối với các ứng dụng đơn giản không có nhiều thao tác cập nhật
dữ liệu thường xuyên, việc truy vấn cơ sở dữ liệu không chiếm nhiều chi phí. Nhưng nếu
xét những ứng dụng cập nhật hàng giờ, hàng phút, ví dụ như các hệ thống bệnh viện, các
trang web giao dịch điện tử … chi phí cho việc cơ sở dữ liệu vừa phục vụ truy vấn, vừa
thêm, cập nhật dữ liệu sẽ rất cao. Để khắc phục hạn chế này chúng ta sẽ chia 1 cơ sở dữ
liệu ra làm 2 dạng: master database và các slave database.
• Các master database sẽ chịu trách nhiệm truy vấn dữ liệu như các câu lệnh
SELECT)
• Các slave database sẽ chịu trách nhiệm thao tác dữ liệu như các câu lệnh
INSERT, UPDATE
Các hệ quản trị cơ sở dữ liệu (DBMS) cung cấp cơ chế replication để đồng bộ hóa
dữ liệu giữa các master database và slave database. Và cơ chế đồng bộ này dựa trên dữ
liệu nhị phân nên việc đồng bộ rất nhanh chóng. Dưới đây là hình ảnh minh họa:
Với kỹ thuật này, các database đã được “chuyên môn hóa” đảm bảo quá trình xử lý
trong database sẽ tối ưu hơn. Ngoài ra việc phân loại này giúp chúng ta dễ dàng có được
Nguyễn Huệ Minh - CH1201047 Trang 9
Phương pháp luận sáng tạo khoa học
các kế hoạch dự phòng và phân tải các datahaubase vào các database server khác nhau để
tận dụng sức mạnh của nhiều server.
4.4 Nguyên tắc kết hợp
Theo [3], 80% của thời gian trả lời (respone time) là trên trình duyệt . Phần lớn thời
gian đó là việc tải các thành phần của trang như hình ảnh, các file stylesheet, các file
scripts. Việc tải này chiếm rất nhiều các HTTP request làm tăng thời gian tải trang cho
người dùng. Vì vậy việc giảm các HTTP request là rất quan trọng. Để giảm các HTTP
request này đơn giản là áp dụng “nguyên tắc kết hợp”, chúng ta có thể làm bằng các cách
sau:
• Kết hợp nhiều file CSS vào thành một file
• Kết hợp nhiều file Javascript vào thành một file
• Kết hợp nhiều hình ảnh vào thành một file và dùng các thuộc tính CSS như
background-image and background-position để hiển thị chính xác hình ảnh
cần sử dụng
Dưới đây là hình ảnh minh họa việc kết hợp file CSS:
4.5 Nguyên tắc vạn năng
Công nghệ HTML5 ra đời với tham vọng “vạn năng” như hỗ trợ tương tác tốt hơn
với thẻ <canvas> và hàng loạt các API cho phép xây dựng các ứng dụng web năng động
và các ứng dụng giúp người dùng trải nghiệm tốt hơn. Ngoài ra HTML5 còn hỗ trợ tốt
cho việc phát triển web game từ 2D cho tới 3D (sử dụng WebGL đã được tích hợp trong
các trình duyệt Chrome, FireFox, Safari, Opera) . Và hơn nữa hầu hết các trình duyệt
Nguyễn Huệ Minh - CH1201047 Trang 10
Phương pháp luận sáng tạo khoa học
mobile đều hỗ trợ HTML5. Như vậy HTML5 đã hỗ trợ việc phát triển 1 ứng dụng trở nên
dễ dàng hơn, nếu như trước đây để viết một ứng dụng web có khả năng tương tác tốt với
người dùng chúng ta phải dùng HTML + Flash (hoặc Silver Light) và tất nhiên phải
‘chịu khó’ cài thêm và cập nhật plug-in cho trình duyệt. Đó là chưa nói đến việc ứng
dụng có hỗ trợ cho mobile hay không.
Nhìn chung công nghệ HTML5 với tính ‘vạn năng’ đã tạo thành một chuẩn chung
cho nhiều thiết bị di dộng, máy tính và hỗ trợ trên nhiều trình duyệt. Và người phát triển
có thể tối ưu hóa khả năng làm việc (thay vì phải học nhiều công nghệ như flash, silver
light …)
4.6 Nguyên tắc thực hiện sơ bộ
Theo [3], việc đặt tất các file CSS vào thẻ head (đầu trang HTML) sẽ giúp trình
duyệt có thể áp dụng nhanh tất cả các stylesheet trong quá trình hiển thị trang web từ mã
HTML. Nói cách khác việc đặt các CSS một cách lộn xộn hay đặt ở cuối trang sẽ làm cho
trình duyệt ‘hiểu’ chậm hơn và việc hiển thị không chính trên trình duyệt 1, 2 giây đầu
tiên khi mà các CSS này chưa được trình duyệt đọc hay tải lên trên HTML.
Việc đặt các đoạn mã javascript vào cuối trang HTML cũng mang một ý nghĩa rất
quan trọng trong việc giúp trình duyệt sử dụng khả năng song song khi vừa hiển thị trang
web vừa tải và thực thi ngầm các file javascript. Nếu làm ngược lại sẽ dẫn đến trang web
hiển thị lâu hơn do phải chờ đợi các file javascript tải xong, đôi khi việc chờ này là không
cần thiết cho trang web hiển thị.
Dưới đây là hình ảnh minh họa cho kỹ thuật này:
Nguyễn Huệ Minh - CH1201047 Trang 11
Phương pháp luận sáng tạo khoa học
4.7 Nguyên tắc dự phòng
Như đã đề cập trong mục “nguyên tắc phẩm chất cục bộ”, kỹ thuật phân chia
database thành master database và slave database sẽ giúp ta luôn có các bản sao khác
nhau của cùng một database. Nếu một master database có vấn đề gì thì chúng ta chuyển
slave database thành master database hoặc ngượ c lại.
4.8 Nguyên tắc năng động
Tốc độ truyền tin giữa các web server và trình duyệt ảnh hưởng rất nhiều đến hiệu
năng của hệ thống. Nguyên tắc năng động giúp chúng ta ở đây là: nén dữ liệu (các đoạn
Nguyễn Huệ Minh - CH1201047 Trang 12
Phương pháp luận sáng tạo khoa học
mã HTML) ở web server, sau đó truyền qua mạng, cuối cùng trình duyệt nhận gói tin giải
nén và hiển thị nội dung. Và tương tự cho quá trình từ trình duyệt tới các web server. Chỉ
bằng việc thay đổi đặc trưng của dữ liệu chúng ta đã giảm được dung lượng gói tin và
nhờ vậy tăng tốc độ truyền tin giữa web server và trình duyệt. Dưới đây là kỹ thuật cụ thể
trong việc thiết kế web.
Trong chuẩn HTTP/1.1, các trình duyệt hỗ trợ nén dữ liệu khi gởi 1 yêu cầu
(request) tới web server với thông tin trong header:
Accept-Encoding: gzip, deflate
Nếu web server thấy được yêu cầu trong phần header của gói tin từ trình duyệt có
nội dung như trên, thì khi các web server gởi kết quả (respone) về trình duyệt, dữ liệu sẽ
được nén và trả về cho trình duyệt với phần header có chứa:
Content-Encoding: gzip
Gzip là một kỹ thuật hiệu quả được sử dụng nhiều nhất cho đến thời điểm này. Kỹ
thuật này giúp giảm thiểu kích thước gói tin khoảng 70% và xấp xỉ 90% gói tin được yêu
cầu từ trình duyệt đều sử dụng gzip [3]. Để sử dụng gzip cho apache 1.3 ta dùng
mod_zip, trong khi dùng mod_deflate. Dưới đây là hình ảnh minh họa:
4.9 Nguyên tắc tác động theo chu kỳ
Trong quá trình phát triển web, luôn có các thao tác tốn nhiều thời gian như việc
đánh chỉ mục cho các bộ máy tìm kiếm (search engine) hay đơn giản là việc tự động gởi
mail cho người dùng, mỗi thao tác cập nhật dữ liệu chúng ta phải đánh lại chỉ mục hay
gởi mail ngay lập tức cho người dùng. Việc làm này sẽ có thể dẫn đến web server phải
quá tải trong trường hợp các thao tác cập nhật liên tục. Để bài toán này, đơn giản là đặt
các thao tác vào một hàng đợi và định thời để thực hiện.
Nguyễn Huệ Minh - CH1201047 Trang 13
Phương pháp luận sáng tạo khoa học
4.10 Nguyên tắc quan hệ phản hồi
Hiện tại hầu hết các trình duyệt đã hỗ trợ kỹ thuật web socket. Việc sử dụng web
socket sẽ cung cấp một cơ chế trao đổi dữ liệu giữa trình duyệt và web server hiệu quả
hơn. Và tất nhiên các dữ liệu không chứa các đoạn mã thừa như các thông tin header
trong 1 HTTP request, điều này đảm bảo rằng dữ liệu gởi và nhận sẽ gọn nhẹ hơn, tối ưu
hơn. Dưới đây là hình ảnh minh họa quá trình hoạt động giữa trình duyệt và web server:
4.11 Nguyên tắc sử dụng trung gian
Mạng phân phát nội dung (content delivery network - CDN) chính là ứng dụng rõ
ràng nhất của nguyên tắc sử dụng trung gian. Giả sử nếu ta đặt các file javascript và css
trên web server của chúng ta, thì việc một người sử dụng nằm cách xa web server của
chúng ta nửa vòng trái đất sẽ phải chờ rất lâu để có thể xem một trang web mỗi yêu cầu
(request).
Điểm cơ bản của CDN là các server được đặt nhiều vị trí địa lý khác nhau và chứa
các file javascript và css của chúng ta. Như vậy khi trình duyệt gởi yêu cầu cho các file
javascript, css thì chúng sẽ được gởi từ các server gần nhất. Dưới đây là hình so sánh
việc sử dụng CDN.
Nguyễn Huệ Minh - CH1201047 Trang 14
Phương pháp luận sáng tạo khoa học
Một ví dụ về sử dụng jquery CDN của MediaTemplate, Google, Microsoft:
<script src="hp://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="hp://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
Việc tải các file về web server lúc này là không cần thiết, chúng ta đơn giản là đặt
các đoạn script này vào trang HTML và người dùng sẽ tận hưởng tốc độ yêu cầu
(request) file jquery do CDN mang lại.
Như vậy, việc sử dụng các mạng phân phát nội dung sẽ giúp cho người dùng tải file
nhanh hơn đồng thời cũng giảm chi phí cho việc lưu trữ và tải file ở phía server.
5 Kết luận
Trong quá trình ứng dụng các kỹ thuật sáng tạo vào việc phân tích các kỹ thuật tối ưu
hóa web đã giúp cho người viết hiểu sâu hơn về tầm ứng dụng của các nguyên tắc sáng
tạo TRIZ, tạo khả năng liên tưởng tốt để giải quyết các vấn đề tin học tương tự. Một ví dụ
đơn giản là điểm tương đồng của các giữa kỹ thuật Ajax trong web và kỹ thuật nén tin
dùng trong camera đứng yên (đọc được trong một luận văn dựa trên ý tưởng: chỉ nén và
gởi các hình ảnh chuyển động không gởi đi các hình ảnh nền), cả hai đều có điểm chung
là chỉ gửi và nhận những dữ liệu cần thiết, loại bỏ những hình ảnh nền, những đoạn dữ
liệu nền mà trước đó đã biết. Một góc nhìn trên ý tưởng này là việc áp dụng nguyên tắc
tách riêng, nguyên tắc phẩm chất cục bộ
Nhìn chung, đề tài đã đạt được những kết quả sau :
Nguyễn Huệ Minh - CH1201047 Trang 15
Phương pháp luận sáng tạo khoa học
• Đưa ra một số kỹ thuật giúp tối ưu hiệu năng web
• Ứng dụng các nguyên tắc sáng tạo TRIZ trong việc phân tích các kỹ thuật tối ưu
hiệu năng web
Thật sự có rất nhiều kỹ thuật tối ưu, nhưng với giới gian hạn hẹn không thể phân tích
và trình bày trong khuôn khổ bài thu hoạch này.
6 Tài liệu tham khảo
[1] Chuyên đề Phương pháp nghiên cứu khoa học trong tin học của GS.TSKH Hoàng
Văn Kiếm.
[2] Phương pháp luận sáng tạo khoa học – kỹ thuật giải quyết vấn đề và ra quyết định,
GSTS. Phan Dũng năm 1994-2002.
[3] />[4] Hoàng Kiếm, Giải 1 bài tóan trên máy tính như thế nào I, II, III, Nhà xuất bản
Giáo dục – 2001, 2002, 2004
[5] Vũ Cao Dàm, Phương pháp luận nghiên cứu khoa học, Nhà xuất bản Đại học quốc
gia Hà Nội – 2001
Nguyễn Huệ Minh - CH1201047 Trang 16