Kiến thức cơ bản về java

Chia sẻ: 081190b

Đây là ngôn ngữ lập trình mới do một nhóm nhỏ các nhà khoa học của hãng Sun Microsystems sáng tạo nên. Theo như truyền thuyết của những người tạo ra ngôn ngữ này, thoạt tiên Java được gọi là Oak và người ta định dùng nó để lập trình cho bộ TV (set-top box). Tất cả các khả năng hiện tại cũng như những lời đao to búa lớn chỉ mới có sau này. Từ nền tảng Oak lúc đó, hãng Sun đã phát triển cả một chi nhánh tên là JavaSoft....

Bạn đang xem 10 trang mẫu tài liệu này, vui lòng download file gốc để xem toàn bộ.

Nội dung Text: Kiến thức cơ bản về java

Java là gì? Và tại sao bạn cần quan tâm?
Tất cả đều đã nghe nói về Java. Nhưng liệu có ai không còn câu h ỏi nào v ề hi ện t ượng này?
Bây giờ, khi "bức tranh" Java đang đến ngay trước mắt mọi ng ười, hãy th ử xem qua công ngh ệ
này và giải đáp các thắc mắc phổ biến nhất

H: Java là gì?

Đ: Đây là ngôn ngữ lập trình mới do một nhóm nhỏ các nhà khoa h ọc của hãng Sun
Microsystems sáng tạo nên. Theo như truyền thuyết của những người t ạo ra ngôn ng ữ này,
thoạt tiên Java được gọi là Oak và người ta định dùng nó để l ập trình cho bộ TV (set-top box).
Tất cả các khả năng hiện tại cũng như những lời đao to búa lớn chỉ mới có sau này. T ừ nền t ảng
Oak lúc đó, hãng Sun đã phát triển cả một chi nhánh tên là JavaSoft.

H: Có phải JavaScript chỉ là một tên khác của Java?

Đ: Không đúng. JavaScript là ngôn ngữ kịch bản để thông dịch (interpreted scripting language).
Java là ngôn ngữ lập trình đích thực để biên dịch (complied programming language). Java và
JavaScript chỉ có chung vài điểm nhỏ về ngữ pháp có thể làm các nhà lập trình quan tâm. Xét v ề
tổng thể chúng là hai công cụ khác nhau hoàn toàn.

H: Thế JavaBeans là gì?

Đ:JavaBeans là một mẫu đơn thể khả chuyển, độc lập hệ máy (portable), platform-independent
component model). Các lập trình viên dùng chúng để t ạo các đoạn ph ần m ềm mà ng ười khác có
thể dùng được trong chương trình của họ.

H: Nếu Java cũng chỉ là một ngôn ngữ lập trình như bao ngôn ngữ khác, tại sao có nhi ều
lời đao to búa lớn thế?

Đ: Về kỹ thuật, Java chỉ là ngôn ngữ lập trình nhưng có mục tiêu rất xa: nó cho phép l ập trình
viên tạo các bản sao chương trình mà người dùng có thể chạy trên hầu h ết các hệ máy và h ệ
điều hành. Khả năng này thường được gọi là "viết một lần, ch ạy mọi nơi" (write once, run
anywhere) là một lợi thế cực lớn. Nó biến Java thành công nghệ ch ủ ch ốt trong máy tính m ạng
(NC) và là thành phần sống còn của lập trình Web.

H: Tôi không viết chương trình và chỉ dùng Microsoft Windows thì tôi đâu c ần phải quan
tâm đến khả năng "viết một lần, chạy mọi nơi"?

Đ: Do tầm quan trọng của Java đối với các nỗ lực phát tri ển NC, nó cũng là y ếu t ố không nh ỏ
trong vấn đề Tổng chi phí sở hữu (total cost of ownership - TCO). S ự tranh luận này đã bu ộc
Microsoft và các công ty khác chú ý hơn đến vấn đề phiền phức là nâng cấp và b ảo trì c ả m ột
"hạm đội" các hệ thống Windows. Công ty Microsoft đã tung ra b ộ Zero-administration (không
cần quản trị) và người ta hy vọng hãng sẽ bổ sung nhiều tính năng t ương t ự trong các phiên b ản
mới của Windows. Microsoft cũng đang phát triển dòng máy NC riêng. ở dòng này máy đ ầu cu ối
là một loại đặc biệt chạy Windows và máy chủ đa người dùng cũng ch ạy Windows.

Ngoài ra, nếu bạn dùng một trình duyệt Web tương đối m ới, rất có kh ả năng máy b ạn đã ch ạy
một vài Java applet. Rất nhiều các dải chữ chạy hay hoạt hình trong các trang Web đ ược vi ết
bằng Java. Đến cuối năm nay sẽ có nhiều công ty bắt đầu dùng Java đ ể t ạo các trang ph ức t ạp
hơn và tương tác hơn như các hướng dẫn cho người dùng cài đặt hay dùng thử các s ản ph ẩm
phần mềm.
H: Sự khác biệt giữa Java app (ứng dụng Java) và Java applet là gì?

Đ: ứng dụng (app) là một chương trình độc lập mà bạn có thể chạy trên máy của mình. Các ứng
dụng phi-Java có rất nhiều, trong đó có cả tá bạn đang dùng nh ư Microsoft Word hay Excel. Cho
đến nay mới có rất ít ứng dụng Java. Java applet thường chỉ là các ch ương trình nh ỏ hơn nhi ều.
Chúng chỉ chạy bên trong trình duyệt Web của bạn.

H: Nếu mới chỉ có ít ứng dụng Java và các lập trình viên hiện nay chủ y ếu dùng Java đ ể
tạo minh họa trang Web thì "lợi thế lớn" ở đâu?

Đ: Minh họa trang Web chỉ là bước đầu. Ngôn ngữ dùng cho mạng máy tính này khai thác s ự
liên kết tốt hơn rất nhiều việc đơn thuần dùng chung tập tin. Hai d ự án nổi b ật cho h ướng này là
Kona của Lotus (xem http://www.kona.lotus.com) và Alta của Corel. Cả hai d ự án đ ều t ập h ợp
các ứng dụng gọn nhẹ, gồm soạn thảo văn bản, bảng tính, tu s ửa hình đ ồ họa hay trình di ễn
các PIM. Tất cả chúng ta đều chạy trên máy tính mạng hay bất kỳ h ệ th ống Windows (hay phi
Windows) nào hỗ trợ Java. Những chương trình này không được trông đ ợi sẽ thay th ế hoàn toàn
các bộ chương trình văn phòng.

Chúng sẽ là các chương trình gọn hơn, đơn giản hơn mà bạn hay cần đến trong văn phòng. Ưu
thế của bộ này là bạn không phải cài đặt hay bảo trì cả một mớ ph ần mềm văn phòng trên máy
của mình. Khía cạnh hấp dẫn nhất của Kona và Alta, theo d ự ki ến là khả năng đ ật c ấu hình. Mai
này nếu bạn có một bộ phần mềm như vậy trong máy, bạn có thể tùy ý s ửa ch ữa. Ví d ụ nếu
bạn dùng SmartSuite 98 của Lotus, bạn được phép thêm bớt các thành ph ần ActiveX và Kona.
Alta thậm chí cho phép bạn tùy biến giao diện của chương trình b ằng một trình so ạn th ảo HTML
bất kỳ trên thị trường.

Đây có lẽ là bước đầu của việc chuyển đổi từ các cấu hình phần mềm độc nhất, định s ẵn sang
các thành phần cho phép tùy đặt cấu hình. Nếu bạn muốn một giải pháp tr ọn b ộ, tiêu chu ẩn hóa
thì cũng có sẵn. Nhưng nếu bạn đã biết rõ mình cần và không cần gì, b ạn có th ể l ắp ghép các
thành phần, điều chỉnh hệ thống theo như nhu cầu. Tuy vậy cuộc cách m ạng này s ẽ ch ưa diễn
ra chừng nào Java chưa hoàn tất cam kết "viết một lần, chạy mọi nơi".

H: Khái niệm "100% Pure Java - Java chính gốc" là gì?

Đ: Đây là một loại chứng thư của Sun cấp cho chương trình vi ết b ằng Java th ỏa yêu c ầu không
phụ thuộc vào mã của hệ điều hành và sẽ chạy trên bất cứ máy ảo Java nào (JVM - Java Virtual
Machine).

H: Làm sao một chương trình có thể chạy mọi nơi?

Đ: Một ứng dụng cổ điển, như Lotus 1-2-3, bản thân nó đã tự chạy được. Cuộc sống của ph ần
mềm bắt đầu khi người ta viết ra bằng một ngôn ngữ lập trình nào đó nh ư C ch ẳng h ạn.
Chương trình phát triển sẽ dịch nó sang mã nhị phân (binary format) để bộ x ử lý c ủa máy b ạn
chạy trực tiếp được. Do máy Mac và PC dùng bộ xử lý khác nhau, chúng không th ể dùng chung
một bản chương trình gốc (native executable), trừ phi dùng m ột ph ần mềm nào đó gi ải l ập ki ến
trúc của máy kia. Nói chung việc giả lập thường làm giảm t ốc độ và dễ gây ra vấn đề do kém
tương thích. Các chương trình Java được dịch sang kiến trúc của riêng nó, gọi là định d ạng
bytecode. Để chạy chương trình Java, bạn cần một phần mềm nữa phiên d ịch mã bytecode
cũng như cung cấp cho nó môi trường và các dịch vụ cần thi ết. Tầng ph ần mềm này chính là
JVM. Máy ảo Java biến tất cả mọi nền phần cứng và phần mềm trở nên giống nhau d ưới con
mắt của chương trình Java. Về hiệu quả, FVM giống một trình đi ều khi ển thiết b ị c ủa ch ương
trình Java.
Chạy chương trình Java trên JVM vẫn còn chậm hơn một chút so với ch ạy ch ương trình vi ết
thẳng cho hệ máy đó. Dầu vậy, công nghệ JVM đang ti ến bộ mau chóng về m ặt t ốc đ ộ và
khoảng cách sẽ được thu ngắn lại rất nhiều trước cuối năm nay. Symatec và Microsoft đã bán ra
rất đúng lúc các trình biên dịch và Sun sẽ tung ra HotSpot VM trong quý 4 năm 1997. V ới s ự k ết
hợp này, người ta mong đợi chương trình Java sẽ chạy nahanh như các trình vi ết b ằng C. Các
hãng phần mềm coi hướng phát triển bằng JVM là rất hấp dẫn vì họ có th ể đ ẩy các ch ương
trình Java chạy trên mọi hệ máy. Chỉ cần họ viết một JVM cho hệ máy đó. Cho đến nay, đã có
JVM cho rất nhiều hệ máy, từ máy tính lớn (mainframe) đến hầu hết tất cả các ki ểu máy đ ể bàn
kể cả PC và Mac.

H: Liệu VM có là một mốt nhất thời?

Đ: Tôi e rằng không. Trước hết, máy để bàn ngày nay có đủ s ức mạnh để h ỗ trợ ph ần vi ệc m ới -
chạy chương trình qua JVM. Do đó vấn đề cần quan tâm là chương trình s ẽ ch ạy nhanh h ơn
trong Java hay trong C++. Nếu bạn dùng các chương trình ki ểu nh ư soạn thảo văn b ản thì b ạn
sẽ không nhận ra sự khác biệt. Xét ở tình huống khác, nếu làm việc với b ảng tính l ớn, c ần tính
toán nhiều, bạn sẽ nhận ra sự khác biệt về tốc độ và bạn có thể s ẽ không muốn dùng ứng d ụng
Java. Tuy vậy, một khi HotSpot VM ra đời, sự khác biệt t ốc độ s ẽ bi ến m ất.

Và khuynh hướng là người ta ngày càng dùng nhiều hơn công nghệ VM. Trong năm 1997, IBM
sẽ xuất xưởng máy ảo đa năng, hỗ trợ ba ngôn ngữ: Java, BASIC và Smalltalk. Nếu nh ư th ử
nghiệm này thành công, hy vọng sẽ có thêm nhiều s ản phẩm hỗ trợ công nghệ VM.

H: Công nghệ Java đã hoàn chỉnh?

Đ: Không nó chưa hoàn chỉnh. Java là ngôn ngữ trẻ kéo theo một cái đuôi khổng l ồ. Tuy v ậy nó
đang phát triển và thay đổi ở tốc độ chóng mặt.

H: Tại sao tôi phải để ý đến Java?

Đ: Các công cụ phát triển phần mềm là các chương trình cực kỳ phức tạp và th ường có l ỗi. Khi
các nhà phát triển dùng các công cụ này chế tạo phần mềm thương mại, nh ững l ỗi này có th ể
tạo ra "khe nút" trong sản phẩm. Các công cụ lập trình, sau mỗi ấn b ản l ớn th ường đòi hỏi m ột
vài lần chỉnh sửa để giải quyết lỗi cho bớt đi đến mức chấp nhận đ ược. Khi công c ụ thay đ ổi
nhanh quá, các công ty viết ra sẽ không còn thời gian mày mò tìm lỗi. N ếu có đi ều ki ện vào
Internet, bạn sẽ thấy nhiều cuộc trao đổi về các chương trình Java chạy khác nhau hay không
chạy trên các trình duyệt khác nhau hay dưới hệ điều hành khác. Hy vọng nh ững v ấn đ ề này s ẽ
chóng qua.

Một vấn đề nữa là việc học lập trình. Lập trình viên chưa bao gi ờ biết t ường t ận công c ụ c ủa h ọ
vì mỗi lần thay đổi lớn họ lại phải học cái mới. Trước mắt, dùng phần mềm Java rút g ọn d ường
như hơi phiêu lưu so với dùng phần mềm thường. Một s ố phần mềm Java cần ph ải tăng kh ả
năng tái dùng các thành phần của chúng, như vậy l ập trình viên s ẽ có thời gian t ập trung vào
việc năng suất chất lượng và tính uyển chuyển của sản phẩm. Nh ưng không ai có th ể làm đ ược
điều này chừng nào các công cụ chưa chấm dứt việc bị sửa đổi như chong chóng hiện nay.

H: Tôi có thể tìm ra các lợi ích gì nữa từ các thành phần?

Đ: Có thể. Đã nhiều năm chúng tôi biết có dự định rằng người s ử dụng có th ể tùy bi ến thay đ ổi
các bộ phận của phần mềm như kiểm tra chính tả và tu sửa đồ họa nhưng trong th ực t ế thì
chưa thấy. Lý do chính là các công ty phần mềm chưa thấy sự khuyến khích th ỏa đáng. Java và
ActiveX đi theo hướng này. Các sản phẩm như Kona của Lotus và Alta của Corel s ẽ ch ỉ cho
thấy người dùng có thật sự cần tính năng này không.
H: An ninh trên Internet là một vấn đề không thể bỏ qua. Còn Java thì sao?

Đ: Các đoạn mã Java đương nhiên an toàn hơn ActiveX và không nh ư các đi ều khi ển ActiveX,
nó không tạo ra bất cứ thay đổi nào trong cấu hình hệ thống. Nh ưng vấn đề an ninh v ẫn cón cho
cả Java, ActiveX lẫn các hệ điều hành và trình duyệt Web. Sắp t ới, ít nh ất Java ch ắc v ẫn ti ếp
tục an toàn hơn mức trung bình. Đoạn mã Java độc ác nhất vẫn không thể ch ạm vào các đĩa
cứng hay Registry của máy bạn. Các than phiền phổ biến nhất về "đống cát" Java là nó quá
cứng nhắc. Nó không cho phép các nhà phát triển thậ được làm nh ững việc đáng ra đ ược quy ền
làm. Ví dụ, Java applet không thể đọc được tài liệu trong máy cục bộ. T ương lai s ẽ sáng s ủa
hơn vì Sun sẽ hỗ trợ một hình thức chứng thư, bạn thêm chút t ự do cho đoạn mã Java t ừ các
nguồn tin cậy.

H: Java sẽ tiến tới đâu?

Đ: Có hai việc đã rõ ràng. Thứ nhất, Java sẽ tiếp t ục biến đổi ở mức độ đáng kinh ng ạc hi ện nay
ít nhất trong 6 tháng tới vì Sun và các công ty khác đang nỗ lực đáp ứng nhu c ầu các nhà phát
triển. Về lâu về dài, đây là điều tốt cho người sử dụng. Điểm thứ hai, Sun, Netscape, IBM cùng
nhiều công ty khác đã đầu tư rất nhiều vào Java nên không ai dám nghĩ rằng họ l ại có giây phút
do dự trong việc biến Java thành một ngôn ngữ thành công dài lâu.

Hiện nay Java đã tồn tại, nếu chỉ xét đến mảng dùng để tạo đoạn mã trong trang Web. Java đã
thực sự trở thành một trong những ngôn ngữ căn bản của Web và nó h ữu d ụng đ ến m ức khó mà
thay thế. Tương lai của Java ở góc độ là một công cụ t ạo các ứng dụng kinh doanh lớn thì còn
mờ mịt hơn nhiều. Câu trả lời chắc phụ thuộc vào việc Sun sẽ cố gắng đến đâu trong m ột hai
năm tới trong việc sửa đổi Java về căn bản. Các yếu t ố khác là sự phổ bi ến của máy tính m ạng,
sự thành công của các sản phẩm như Kona và Alta. Sun đã t ạo và hỗ trợ m ột s ố tính năng mới
rất đáng kể: công nghệ InfoBus của Lotus cho phép các thành ph ần Java chia s ẻ d ữ li ệu d ễ
dàng và một nhóm làm việc Java tên là JFC chuyên giúp lập trình viên đ ẩy nhanh vi ệc phát tri ển
phần mềm. Cuộc cách mạng CN là phần khó giải nhất của câu đố này. Dầu vậy nh ững b ước đi
đầu tiên cũng đã có vẻ rõ ràng. Nó sẽ thâm nhập vào các thiết b ị đ ầu cuối c ủa các máy tính l ớn
truyền thống trong các cơ sở giáo dục. Tất nhiên, việc NC s ẽ chiếm 0,1% hay 25% thị tr ường
máy để bàn vẫn còn chưa biết được. Dầu sao đi nữa, Java vẫn sẽ là ph ần quan trọng c ủa toàn
cảnh NC, loại máy đang mở rộng thị trường cho các chương trình chuyên Java mà b ạn cũng có
thể chạy trên Windows.


Cần biết về Java
Java hoà hợp tất cả lại với nhau

Ngôn ngữ lập trình Java là một trong những chủ đề được nói đến nhiều nhất trong thế giới
hiện nay, và logo của Java - một tách cà phê bốc khói, cùng các applet Java, tràn ng ập kh ắp n ơi
trên World Wide Web. Vậy, hiện tượng Java có gì đặc biệt, và tại sao nó lại có thể làm thay đ ổi
bộ mặt của thế giới điện toán?

Một thực tế được công nhận là Java, ngôn ngữ lập trình của Sun Microsystems, có m ột s ức
mạnh đầy ấn tượng. Chỉ mới xuất hiện hai năm trước, Java đã được ngành công nghi ệp này
chấp nhận với tốc độ chưa từng có, kể từ khi hệ điều hành Windows bùng nổ.

Uy lực của Java đã biến Sun Microsystems (từ sau đây gọi tắt là Sun), ng ười khai sinh ra nó,
từ một nhà cung cấp các công nghệ máy server đắt tiền thành cái tên quen thuộc trong t ừng nhà
và là đối thủ nặng ký trong dòng chảy của công nghệ tính toán.
Sun mô tả Java như là một ngôn ngữ lập trình đơn gi ản, h ướng đ ối t ượng, hi ểu - m ạng, có
thể biên dịch, mạnh, an toàn, độc lập với cấu trúc, dễ di chuyển, hi ệu suất cao, đa luồng, và có
tính động. Những điều đó không dễ giải thích. Vậy thì, cụ th ể Java làm đ ược gì?

Về cơ bản, nó giúp các nhà phát triển phần mềm thực hi ện được hai vi ệc:

• Thứ nhất, họ có thể xây dựng nên các applet Java, đó là những trình ứng d ụng mini
được phân phối qua Internet và chạy trong một trình duyệt Web hi ểu Java. Các applet
Java tăng cường cho trang Web khả năng tương tác phong phú hơn và tính đa ph ương
tiện tốt hơn so với khi dùng HTML bình thường.
• Thứ hai, các nhà phát triển phần mềm có thể xây dựng các trình ứng d ụng hoàn ch ỉnh
bằng Java, như bộ xử lý văn bản, bảng tính, hoặc bộ chương trình văn phòng t ổng hợp
(như Corel đang làm chẳng hạn). Ưu điểm của cách làm này là các trình ứng d ụng ch ỉ
cần viết một lần mà chạy được trên hầu hết mọi loại máy tính.

Sự thành công của Java trong việc phát động khả năng sáng t ạo của cả ng ười dùng c ộng tác
lẫn cá thể là ở chỗ họ sẽ càng có ấn tượng hơn khi so sánh một thực tế rằng Java đ ơn thuần là
một ngôn ngữ lập trình, trong khi các công nghệ và s ản phẩm khác thì m ỗi cái còn ph ải k ết h ợp
với nhiều tính năng huyễn hoặc khác.

Tuy nhiên, Java là một ngôn ngữ lập trình có những khác bi ệt. Để th ực s ự hi ểu đ ược s ức
mạnh của Java và các nguyên nhân làm cho nó nhanh chóng đ ược ưa chuộng, bạn ph ải xem
xét hoàn cảnh khai sinh ra nó và bầu không khí mà nó đã sống để nắm b ắt l ấy kh ả năng sáng
tạo của nền công nghiệp máy tính.

Java ra đời như thế nào

Năm 1990, CEO của Sun là Scott McNealy được nhân viên Patrick Naughton báo tin r ằng anh
ta được phép nghỉ việc để làm cho Next Software (công ty hi ện đã đ ược Apple Computer mua
lại). Thay vì trả lời như thường lệ, McNealy đã yêu cầu Naughton ghi ra t ất c ả nh ững đi ều mà
anh ta cho là sai lầm của Sun và đề nghị những biện pháp giải quyết "nh ư c ương v ị c ủa ng ười
có thẩm quyền cao nhất".

Bảng liệt kê của Naughton đã đánh trúng những đi ểm yếu nh ất của Sun, và b ộc l ộ các v ấn
đề mà nhiều người khác đã nhận thấy từ lâu - kiến trúc phần mềm mới quá t ầm, ch ỉ bận tâm
vào một mảnh nhỏ của thị trường, cùng hàng loạt "sai lầm" khác. Trước ngày Naughton chuy ển
sang Next, Sun đã thuận theo những ý kiến bất đồng của anh ta và l ập nên nhóm "Green" g ồm
sáu nhà biên soạn phần mềm hàng đầu - nhiệm vụ của họ là "thâm nh ập thực t ế" và lên đ ường
với công nghệ phần mềm có sẵn cho thị trường tiêu thụ.

Chuyện kể rằng nhóm "Green" đã trữ Coca Cola và sôcôla (thực phẩm của nh ững nhà biên
soạn phần mềm) đầy tủ lạnh rồi bắt đầu thảo tung các loại thiết b ị điện t ử, t ừ h ộp đi ều khi ển t ừ
xa và Game Boys của Nintendo đến TV và đầu chạy bằng video. Mục đích c ủa nhóm là tìm
cách cho các thiết bị điện tử "nói" với nhau ngay cả trong trường h ợp chúng s ử d ụng các chip
khác nhau.

Phần mềm đầu tiên, tiền thân của Java , được đưa ra với tên g ọi không m ấy truy ền c ảm:
Oak. Đây là một ngôn ngữ hướng đối tượng hạ cấp, có đôi chút g ần với ngôn ng ữ lập trình C++.
Một thiết bị điều khiển từ xa có giao diện người dùng kiểu hiển thị và một nhân vật hoạt hình g ọi
là Duke (nay trở thành vật biểu tượng của Java trên WWW), cả hai đều lập trình theo Oak, đ ược
nhóm xây dựng lên và giới thiệu. Sun hài lòng với k ết quả này, và đ ưa "Green" lên thành m ột
công ty riêng lấy tên là First Person.
Cuộc tấn công mở đầu của First Person vào lĩnh vực thương m ại đã hoàn toàn th ất b ại. Sau
những cuộc đàm phán kéo dài, hợp đồng để lắp ráp các hộp đặt trên TV cho hãng Time-Warner
đã thất bại ở phút cuối cùng. Phi vụ liên quan đến việc chuyển đổi bàn đi ều khi ển trò ch ơi video
cao cấp của hãng 3DO thành hộp đặt trên máy cũng gặp cùng đ ịnh mệnh nh ư v ậy.

Cho mãi đến gần cuối 1993, khi Marc Andreessen, nhân viên của Netscape, vi ết ra Mosaic,
trình duyệt Web đầu tiên, thì Oak mới thể hiện chính mình. First Person cho r ằng Oak s ẽ là m ột
ngôn ngữ hoàn chỉnh để xây dựng các nội dung đa phương tiện trực tuyến. Naughton đã ráp n ối
lại bộ khung của trình duyệt Web đầu tiên hoàn toàn đ ược vi ết theo Oak. Đó là s ự ra đ ời c ủa
WebRunner - sau này trở thành HotJava.

Phần cơ bản trong hướng chiến lược mới đối với Oak là ban phát t ự do s ản ph ẩm này trên
Internet. Oak được đặt tên lại là Java vào năm 1995 và đã đ ược đ ưa lên Internet. Java th ực s ự
thu hút được sự quan tâm của cộng đồng trực tuyến khi Marc Andreessen mô t ả nó nh ư là ph ần
"lạnh" (cool piece) của công nghệ, một bộ phận của Netscape Navigator 2.0, và làm cho nó gây
được sự chú ý của hàng triệu người dùng.

Câu hỏi hóc búa về java

Đó là lịch sử mà cũng có thể chỉ là hoang đường, nhưng một cách chính xác Java là gì? T ại
sao nó lại làm cho Web sống động, kích thích mạnh m ẽ các nhà lập trình C++ b ảo th ủ t ự
nguyện rời bỏ loại ngôn ngữ khó nổi tiếng đó, châm một ngòi lửa vào các Intranet c ộng tác, và
làm thay đổi hoàn toàn bộ mặt thế giới Internet? Cách trả l ời t ốt nh ất cho nh ững câu h ỏi này là
mổ xẻ từng từ trong định nghĩa của Sun để hiểu thấu đáo toàn b ộ hi ện t ượng Java.

Theo Sun, Java là:

• Đơn giản (simple). Java đơn giản vì, mặc dù dựa trên cơ s ở C++ nh ưng Sun đã c ẩn th ận
lược bỏ các tính năng khó nhất của C++ để làm cho ngôn ngữ này dễ sử d ụng h ơn. Là
một ngôn ngữ lập trình hoàn toàn mới, nó buộc phải có dáng vẻ và s ự cảm nh ận t ương
tự như các ngôn ngữ phổ biến hiện hành đồng thời đòi hỏi khoảng th ời gian huấn luyện
lại tối thiểu và thân thiện hơn với người dùng.
Do đơn giản, ngôn ngữ này cũng rất nhỏ - nên nhớ rằng từ đầu nó đã đ ược xây d ựng đ ể
dùng cho điện tử dân dụng như đầu chạy bằng video và hộp điều khi ển từ xa, nh ững
thiết bị có không gian lưu trữ rất hạn chế.
• Hướng đối tượng (Object - oriented). Các ngôn ngữ lập trình h ướng đ ối t ượng có hàng
loạt mô đun (đối tượng) có thể thay đổi và được xác định trước mà lập thình viên có th ể
gọi ra để thực hiện những nhiệm vụ cụ thể. Trong Java, các mô đun này được gọi là các
lớp (class) và chúng được giữ trong thư viện lớp, tạo nên cơ sở của Java Development
Kit (Bộ công cụ phát triển Java).
Một trong những ưu điểm của việc lập trình hướng đối tượng là biên soạn khá nhanh.
Cũng tương tự như đồ chơi trẻ con, sản phẩm của lập trình không h ướng đ ối t ượng là
một tòa lâu đài làm bằng nhựa liền. Về sau nếu con bạn muốn có một chi ếc ô tô nh ựa,
thì hoặc bạn phải kiếm một chiếc xe nhựa (có nghĩa là phải mua một đ ồ ch ơi mới), hoặc
nấu chảy toà lâu đài đó rồi lấy nhựa của nó mà đúc thành chiếc ô tô.
Nhưng trong lĩnh vực hướng đối tượng, con bạn có những khối Lego (loại đồ ch ơi g ồm
nhiều khối để trẻ con xây dựng thành nhiều đồ vật khác nhau), và dùng nh ững khối đó
để xây thành một toà lâu đài, chế tạo một chiếc ô tô hoặc bất kỳ cái gì mà nó mu ốn. Nói
cách khác, giống như các khối Lego, các lớp của Java đều có thể sử dụng lại nhiều l ần.
• Hiểu mạng (network-savvy). Java được lập ra để hoạt động trên m ạng và có các thủ t ục
để có thể quản lý các giao thức mạng như TCP/IP, FTP và HTTP. Nói cách khác, Java
được xây dựng để thực hiện hoàn toàn thích hợp trên Internet. Ch ương trình Java th ậm
chí có thể xâm nhập vào các đối thượng khác thông qua Internet b ằng cách s ử d ụng
URL (địa chỉ Web) để định vị chúng.
• Mạnh (robust). Khả năng mạnh phải phù hợp với thiết kế của ngôn ng ữ, và h ướng nó
vào việc khắc phục những hư hỏng bộ nhớ và đảm bảo tính toán vẹn dữ li ệu. Ví d ụ,
Java có tính năng "automatic garbage collection" (t ự động thu gom rác) - có nghĩa là b ộ
nhớ được giải phóng một cách tự động - nên lập trình viên không ph ải b ận tâm về vi ệc
quản lý bộ nhớ và nhờ đó ít có xu hướng làm những việc gây hỏng bộ nh ớ.
• An toàn (secure). Khả năng hướng mạng của Java t ự động đưa ra yêu cầu về an toàn.
Đặc tính an toàn của ngôn ngữ lập trình này bắt nguồn t ừ vi ệc nó có nh ững ph ần h ạn
chế được cài sẵn nhằm đề phòng các chương trình Java thực hiện những chức năng
như ghi vào ổ cứng của người dùng hay cho phép virus t ừ m ạng hoặc t ừ môi tr ường
phân tán thâm nhập vào.
• Độc lập với cấu trúc (architecture neutral). Đây là thuộc tính đ ặc sắc nh ất c ủa Java. Có
nghĩa là Java không phụ thuộc vào hệ máy (platform - loại máy, HĐH) - các trình ứng
dụng được biên soạn bằng Java có thể dùng được trên hầu như m ọi dòng máy tính, t ừ
PC Windows hoặc OS/2, cho đến Macintosh của Apple hoặc các trạm làm vi ệc Unix.
Để đánh giá hết ý nghĩa của tính độc lập với hệ máy này, hãy t ưởng t ượng b ạn là m ột
nhà biên soạn phần mềm, bạn mới đưa ra một trình duyệt Web dùng cho Windows 3.1.
Do yêu cầu, bạn phải phát triển một sản phẩm giống như vậy nhưng dành cho ng ười s ử
dụng các hệ điều hành khác như Mac OS, Unix hay các version khác của Windows (ví
dụ 95 và NT). Để tiếp cận những thị trường đó, bạn phải s ửa l ại chương trình trên c ơ s ở
hệ mới nếu không muốn nói là bạn có thể soạn thảo lại toàn b ộ. Nh ưng với Java b ản
chỉ phải biên soạn một lần và nó sẽ hoạt động trên mọi hệ thống, mọi hệ đi ều hành,
miễn là bạn có một trình biên dịch Java hoạt động tronglúc ch ạy.
• Di động (portable). Đối với một phạm vi rộng, Java là loại có th ể di chuy ển nh ờ kh ả
năng độc lập với hệ máy. Đồng thời, các loại dữ liệu, giao diện, cũng nh ư dáng vẻ và
cảm nhận của Java đều giống nhau trên mọi hệ máy. Hệ thống các thành ph ần của
java cũng có tính di động cao - nó được viết bằng Java.
• Có thể thông dịch (interpreted). Tính chất có thể thông dịch của Java có liên quan tr ực
tiếp với tính không phụ thuộc vào hệ máy. Chương trình viết bằng C++ đ ược d ịch thành
mã máy, thực chất ngôn nhữ đặc trưng riêng cho dòng bộ xử lý. Cho nên nếu b ạn d ịch
chương trình trên một máy Pentium, nó sẽ không chạy được trên dòng máy khác nh ư
PowerPC chẳng hạn. Đó là lý do tại sao các phần mềm được biên soạn riêng cho
Windows và cho Macintosh.
Khả năng độc lập với cấu trúc không cho phép Java giải quyết vấn đ ề này. Lý do là vì
có hai phần cho hệ thống phát triển ứng dụng Java -trình biên dịch (compiler) và trình
thông dịch (interpreter). Thay vì mã máy, trình biên dịch s ẽ biến ch ương trình c ủa b ạn
thành các mã byte (bytecode), và đó là loại không phụ thuộc hệ máy. Nh ững gì mà h ệ
thống của bạn cần là một trình thông dịch mã bytecode Java đ ể bi ến mã byte đó thành
ra mã mà bộ xử lý hiểu được (tương tự như phương pháp hoạt động của các ch ương
trình Basic). Thành công của các applet Java trên World Wide Web là nh ờ chúng ch ạy
được trên mọi máy tính đang dùng browser hiểu Java. Netscape Navigator với trình
thông dịch mã bytecode cài sẵn bên trong là một ví d ụ.
• Tốc độ cao (high perfprmance). Khi Sun Microsystems mô tả Java có t ốc độ cao, có l ẽ
họ muốn nói về mã bytecode được thông dịch hiệu quả như thế nào. Về t ốc đ ộ các
applet hay chương trình Java thì nói chung đều chậm hơn các chương trình Java thì nói
chung đều chậm hơn các chương trình được biên dịch viết bằng C++, vì ch ương trình
này đã được tối ưu hoá từ trước cho hệ máy nhất định. Java đã ph ải trả giá v ề hi ệu suất
cho tính không phụ thuộc hệ của nó.
• Đa luồng (multithreaded). Đa luồng có nghĩa là ngôn ng ữ Java cho phép xây d ựng trình
ứng dụng, trong đo, nhiều quá trình có thể xảy ra đồng thời. Tính đa luồng cho phép các
nhà lập trình có thể biên soạn phần mềm đáp ứng t ốt hơn, tương tác t ốt hơn, và th ực
hiện theo thời gian thực.
• Tính động (dynamic). Java động vì nó được thiết kế để đáp ứng với môi trường tác
nghiệp luôn trong tình trạng thay đổi. Khi có yêu cầu m ới xuất hiện trên th ị tr ường, các
loại đối tượng mới có thể được bổ sung vào ngay.
Java là ngôn ngữ nóng

Dù bỏ qua các tính chất ưu việt khác, Java cũng không ph ải là ng ẫu nhiên đ ược xem là m ột
sản phẩm của WWW từ nguyên thuỷ. Điều đầu tiên mà mọi người trải qua đ ối v ới Java là m ột
hộp màu trắng nằm ngay giữa trang Web khi tải xuống một applet Java. B ạn s ẽ th ấy applet Java
trong vô số các băng quảng cáo trên WWW, nó giúp các hình ảnh, âm thanh, và video trở nên
hấp dẫn hơn, không độc quyền, và có thể làm theo yêu cầu.

Applet Java được dùng làm cơ sở cho những giải pháp thương m ại đi ện t ử, cũng nh ư đ ể tô
điểm cho những trình ứng dụng hiện thực ảo bằng hình động và t ương tác v ới ng ười dùng. Tuy
nhiên, Java cũng đang chuyển mình để có t ầm vóc cao hơn cái vốn có hiện nay là m ột màn c ửa
sổ đa phương tiện cho Web. Java đang vươn lên để thành m ột h ệ máy tính mà trên đó các nhà
lập trình có thể xây dựng nên trình ứng dụng không phụ thuộc nền.

Java đang thực hiện một công việc vĩ đại là bảo đảm thành công cho nh ững b ước chuy ển m ới
liên quan đến các ngôn ngữ lập trình đã xác lập. Các nhà biên soạn ph ần m ềm ch ủ ch ốt đã đ ưa
ra, hoặc đang làm việc tích cực trên các phiên bản Java của nh ững ứng d ụng chính (Corel
Office for Java) hoàn toàn bằng Java. Corel Office là m ột ph ần m ềm d ạng mô đun có th ể phát
triển, và được xâydựng nhằm cho phép hợp tác nhóm và phân phối tài liệu qua m ạng. Corel
Office for Java (phiên bản beta) có thể tải xuốn từ Web site của Corel (http://www.corel.com), và
chạy dưới dạng trình ứng dụng đơn với JDK 1.02 của JavaSoft hoặc sử d ụng một trình duy ệt
Web hiểu Java như Netscape Navigator 3.01, Netscape của Sun. Office for Java cũng có th ể
chạy dưới kênh Castanet (xem phần cuối).

Lotus cũng đã gia nhập hàng ngũ Java nhờ có hậu thuẫn của IBM. Theo sát gót Corel, Lotus
đang làm việc trên phiên bản Java của phần mềm SmartSuite, nhưng bằng cách tiếp c ận khác.
SmartSuite sẽ được tạo lại dưới dạng nhiều thành phần Java nhỏ (tên g ọi chung là Kona) đ ược
gắn với nhau, và có thể tuỳ biến theo ý muốn người dùng. Ví d ụ, nếu b ạn chỉ c ần dùng m ột ít
tính năng trong các trình ứng dụng xử lý văn bản và bảng tính, Kona s ẽ cho phép b ạn t ải xu ống
chỉ các phần nhỏ cần thiết, tránh được phần mềm dư (bloatware).

Java cũng là vị cứu tinh cho IBM. Lần đầu tiên trong nhiều năm, công ty này tìm th ấy con
đường để cho các máy mainframe, workstation, server, và PC có thể dùng chung cùng m ột ph ần
mềm; đó là đưa Java vào trong các hệ điều hành không t ương hợp trước đây của mình.

Java không những đã gây xáo trộn trong đấu trường phần mềm do làm cho Microsoft lo l ắng
về tính vô địch của nó, mà còn là chất xúc tác cho máy tính mạng c ủa Oracle (Network
Computer - NC) thanh hiện thực. NC là một PC hay một thi ết bị thu gọn dùng để ch ạy m ạng,
hoặc nối với Internet qua modem. Java đang nhanh chóng thâm nh ập vào c ấu trúc đi ệntoán cho
phép các thiết bị ghép mạng có thể nói chuyện với nhau. Máy tính m ạng s ẽ có khả năng s ống
ngoài mạng hoặc Web bằng cách tải xuống các thành phần Java nhỏ có th ể dùng nhi ều l ần, t ức
là các applet, các trình ứng dụng theo yêu cầu. Những hãng lớn nh ư IBM, Apple, Netscape và
Oracle đang cùng làm việc với Sun để biến các sản phẩm này thành hi ện thực.

Nhiều máy NC sẽ chạy trên JavaOS, hệ điều hành chuyên để chạy các applet Java. Hệ đi ều
hành này được chạy trên máy tính mạng JavaStation của Sun, loại máy thin client, đ ược n ối v ới
server trung tâm lớn qua mạng nội bộ hoặc đường dẫn lớn (fat pipe). Một s ố chuyên gia công
nghiệp đã bác bỏ luận điểm cho rằng NC là sự trở lại của terminal câm nh ững năm 1960 và
1970. Số mệnh của NC sẽ phụ thuộc vào sự phát triển của Java cũng nh ư nh ững c ải thi ện
trong ngành viễn thông.

JAVA và chàng khổng lồ Goliath
Không còn nghi ngờ gì, Java - nếu giữ đúng lời hứa - sẽ là m ối đe doạ đối v ới tr ục kinh doanh
của Microsoft và Intel (được gọi là liên minh Wintel). Vai trò nền t ảng đi ện toán c ủa Java đã đ ặt
nó vào vị trí cạnh tranh trực tiếp với Microsoft Windows, còn tính không ph ụ thuộc h ệ và trung
tính về cấu trúc thì làm giảm khả năng kinh doanh của Intel vì chip c ủa các hãng s ản xu ất khác
vẫn hoạt động tốt trong môi trường Java.

Nền công nghiệp máy tính đang được chàng khổng lồ Wintel kéo chạy theo mình s ẽ gây ra
cơn đói hệ điều hành và trình ứng dụng, dẫn đến s ự đòi hỏi về các b ộ vi xử lý cao cấp c ủa Intel.
Sự thống trị của Wintel đối với nền công nghiệp này, một phần đã đ ược đáp lại b ằng s ự t ập h ợp
của các hãng phân phối chính sau lưng Java. Java được xem như là m ột công ngh ệ c ứu tinh, ít
nhất cũng làm chậm bước Wintel và hơn nữa là mở ra thị trường cho mình. M ột s ố công ty nh ư
IBM, Apple, Lotus và Borland đã bị mất thị phần cho Microsoft, nay nh ờ ti ềm năng c ủa Java đã
đang đưa các sản phẩm của mình ra khỏi tình trạng trì trệ và cân b ằng l ại l ực l ượng trong cu ộc
chiến cạnh tranh.

Nhưng tất nhiên Microsoft không bao giờ cam chịu. Tháng ba năm 1996, Microsoft đã thua
đậm ở hiệp một do việc xin cấp phép công nghệ Java từ Sun bất thành - nhiều ng ười nghĩ r ằng
Java Virtual Machine (máy ảo Java của Microsoft) s ẽ có t ốc độ nhanh nh ất trên th ị tr ường khi nó
được đưa ra dưới dạng một phần của Windows 97.

Cũng giống như sự nhận thức chậm chạp vè tầm quan trọng của Internet trước đây, Microsoft
hưởng ứng Java rất trễ - hoặc đơn giản là họ bỏ qua trong s ự hy vọng rồi nó s ẽ qua đi? Ch ỉ sau
khi Netscape đưa Java vào Navigator, Microsoft mới buộc phải đưa tính năng h ỗ tr ợ Java vào
Internet Explorer. Hiện nay công ty phần mềm dẫn đầu thế giới này đang rút ng ắn khoảng cách
và làm cho Java trở nên một tính năng quan trọng trong hệ đi ều hành tiếp sau c ủa h ọ.

Microsoft tấn công trên tất cả các mặt trận. Công nghệ ActiveX của công ty này đ ược định
hướng để cạnh tranh trực tiếp với Java hoặc JavaBeans (một tập Java phụ dùng đ ể đ ảm b ảo
cho các trình ứng dụng Java cài lại với nhau theo m ột ph ương pháp chung). V ề c ơ b ản, nó là
một mở rộng của Object Linking and Embedding (nhúng và liên k ết đ ối t ượng - OLE) cho phép
công nghệ cũ này có thể hoạt động trên Internet rất giống với applet Java. V ấn đ ề ActiveX là b ị
buộc chặt vào nền Windows chạy chip Intel. Java thì ngược l ại, viết một lần, ch ạy kh ắp n ơi, và
đó là ưu điểm nổi trội so với ActiveX.

Chip

Java của Sun cũng cố gắng tiến vào các sản phẩm cứng - chip. Chip picoJava đ ược thi ết k ế
để thực hiện trình ứng dụng Java nhanh hơn gấp vài ba lần so với loại CPu thông th ường nh ư
chip thuộc họ x86 của Intel - kể cả Pentium. PicoJava và các thành viên khác trong c ấu trúc
JavaChip đều được tối ưu hoá đối với Java. PicoJava I thực hiện Java trực tiếp không đòi h ỏi
phải có trình biên dịch Java hoặc trình phiên dịch Just In Time (JIT).

Sun đã kiêu hãnh tuyên bố rằng các thiết bị được xây d ựng xung quanh chip này s ẽ ch ạy
applet Java bằng loại chip thuần chủng. Bộ xử lý s ẽ quản lý điều này b ằng vi ệc thích ứng 100%
với Java Virtual Machine (Máy ảo Java của Sun - JVM). JVM cho phép applet ch ạy trong các
browser như Netscape Navigator và Internet Explorer. Những chuẩn kiểm tra riêng c ủa Sun cho
thấy rằng picoJava I chạy nhanh hơn gấp 15 đến 20 lần so với 486 có trình phiên d ịch ở cùng
tốc độ xung nhịp, và nhanh hơn 5 lần so với Pentium có trình phiên dịch JIT ở t ốc đ ộ xung nh ịp
bằng nhau. Chip 25 USD này hướng vào NC, máy trợ giúp cá nhân (Personal Digital Assistan),
các điện thoại thông minh, và đồ dùng điện tử tiêu dùng giá rẻ khác.

Một chip Java khác, gọi là microJava, dự kiến ra đời vào cuối 1997, d ựa trên c ơ s ở picoJava,
nhưng có nhiều chức năng ứng dùng đặc trưng. Chip này nhắm vào NC và các thi ết bị t ương t ự,
thiết bị viễn thông, và trò chơi giá rẻ. Các nhà s ản xuất cần xây d ựng các thiết b ị hi ệu suất cao
có thể trông chờ vào chip UltraJava của Sun. Điều này sẽ kích thích s ự ra đ ời c ủa các máyhính
mạng, phân phối các giải pháp giải trí đa phương tiện dựa vào Java, và làm m ạnh thêm các ứng
dụng hình ảnh và dồ hoạ ba chiều.

Java cũng nỗ lực mở rộng các hệ điều hành. Java OS1.0 của Sun là m ột hệ đi ều hành nh ỏ và
có cách khác để chạy các trình ứng dụng Java với tốc độ nhanh. Nó thực hi ện Java tr ực ti ếp
trên nền phần cứng được tăng cường bởi các bộ xử lý Sun SPARC hoặc Intel x86 và Advanced
RISC Machines Strong ARm. Sun đang nhắm vào t ột số lượng l ớn các thiết b ị khác nhau, t ừ NC
cho đến máy cầm tay. Toàn bộ môi trường ứng dụng Java (Java Application Environment) chỉ
cần một không gian 2,5MB, còn hệ điều hành thì có th ể thu g ọn đ ể v ừa vào các thi ết b ị c ầm tay.
Một số công ty như IBm, Toshiba và Wyse Technology đã được phép dùng Java OS trong các
sản phẩm của mình.

Thưởng thức hương vị cà phê

Sun nổ súng trên mọi mặt trận tại thời điểm này, và đẩy mạng cuộc chi ến ch ống Microsoft.
Cuối tháng hai vừa rồi, công ty này đã phát động một cuộc t ấn công hai mũi vào lãnh đ ịa c ủa
Microsoft bằng cách loan báo họ đã xây dựng được những sản phẩm có khả năng chuy ển đ ổi
PC Windows già cỗi thành NC hoặc trạm làm việc Java.

Sản phẩm đầu tiên trong số này, mang tên Project Rescue, đ ược công b ố t ại h ội ngh ị
JavaOne vào đầu tháng Tư năm nay sẽ cho phép các trình ứng d ụng Java ch ạy trên DOS. Ph ần
mềm Project Rescue (bao gồm cả JVM) cài đặt trên ổ cứng của PC và hoà h ợp v ới HĐH có s ẵn
(hầu hết là Windows 3.x). Tại dấu nhắc DOS, bạn chỉ cần gõ "JAVAOS" để vào môi trường Java
đồ hoạ, bao gồm giao diện người dùng đồ hoạ cùng phần m ềm browser. Hệ thống Java này
cũng sẽ bổ sung thêm khả năng ghép mạng cho máy tính, do đó máy tính hoàn toàn b ỏ qua
HĐH Windows, mặc dù nó vẫn nằm trên ổ cứng. Nhờ hiệu quả này mà PC Windows bi ến thành
máy NC chạy các ứng dụng Java lấy từ server.

Một sản phẩm khác có tên JavaBlaster, là card bổ sung bên trong với giá 99 USD, s ẽ đ ược
cấm vào khe mở rộng ISA hoặc PCI. Card này dựa trên cơ s ở bộ xử lý microJava c ủa Sun.
JavaBlaster được hy vọng sẽ là phương pháp rẻ tiền ểê biến đổi PC thành NC. Phiên b ản PCI
của card JavaBlaster sẽ đưa ra giải pháp ngang cấp (không phải nâng cấp), trong đó các máy
PC Pentium loại mới có thể được dùng thay thế như các trạm làm vi ệc Java. Hai s ự kh ởi đ ầu
này một phần mềm và một phần cứng - hy vọng sẽ bổ sung cho nhau.

Vậy thì, Java là gì? Java không chỉ là một ngôn ngữ lập trình mà còn hơn th ế nữa. Đó là cách
suy nghĩ mới hoàn toàn về điện toán. ở nó có khả năng giúp cho nền công nghi ệp máy tính phá
vỡ sự thống trị của Wintel. ở nó có khả năng ghép nối m ọi loại thi ết bị vào mạng, nên chúng ta
có thể tương tác với nhau theo những phương pháp mà trước đây ch ưa t ừng có.

Java được bắt đầu như một ý tưởng, một hy vọng là đến ngày nào đó, m ọi thi ết b ị s ẽ có th ể
nói được với nhau thông qua một hệ thống mạng. Hiện nay, với Java, ch ưa có nới nào ti ếp c ận
được mục tiêu đó, nhưng nó đã làm cho các nhà biên soạn ph ần m ềm suy nghĩ v ề nh ững gì có
thể đạt được.

Java mang cuộc sống đến cho WWW khi mà Web đã cho tiền thân của nó là Oak m ột vi ễn
cảnh cuộc sống tốt đẹp hơn. Java đã được thấm sâu vào trong sự hiểu bi ết của nền công
nghiệp này, còn nhanh hơn cả DOS hoặc Windows trong thời hoàng kim của chúng tr ước đây.

Nhưng sự thành công lâu dài của Java không có gì đảm bảo - giống nh ư một thần đ ồng nh ỏ
tuổi, phải trưởng thành nhanh chóng trong khi không được phép đ ốt cháy giai đo ạn. N ếu v ượt
qua được, nó sẽ chứng minh rằng mạng là máy tính.
Java và lập trình trong Internet.
1.Mạng Internet dưới góc độ công nghệ.

Một mạng có thể chia ra làm hai phần cơ bản: hệ thống phân phối thông tin và các ứng d ụng
mạng, và mạng Internet cũng không phải là ngoại lệ. Hệ thống phân ph ối thông tin c ủa nó d ựa
trên họ giao thức TCP/IP, và tư tưởng liên kết thông qua các socket (đ ầu cuối-end point). Các
ứng dụng Internet dựa trên mô hình Client/Server, client hỏi và server đáp. Công nghệ l ập trình
trong Internet có thể chia ra 3 thời kỳ, theo sự phát tri ển của b ản thân Internet, v ới các m ốc là s ự
xuất hiện của WWW và Java.

2.Giai đoạn trước khi xuất hiện WWW.

Lập trình trong giai đoạn này chủ yếu dựa trên socket. Hoặc b ạn t ạo ra một dịch v ụ m ới,
bằng cách viết các server và client, dựa trên giao thức riêng, nh ư đã làm v ới các d ịch v ụ FTP,
SMTP.. hay viết client cho các dịch có sẵn này. Lập trình theo h ướng này đòi h ỏi b ạn ph ải bi ết
nhiều về TCP/IP và cơ chế hoạt động của socket. Nếu bạn viết client, b ạn s ẽ ph ải làm quen
thêm với giao thức của dịch vụ đó, còn nếu bạn tạo ra một dịch vụ m ới, b ạn cần ph ải t ạo ra
giao thức riêng cho dịch vụ của mình. Ngôn ngữ lập trình tùy thuộc vào HÐH, d ựa trên mô hình
Socket (trong Windows bằng cách gọi hàm của Winsock.dll), và th ường là C, C++, Pascal..
Hướng này đòi hỏi nhiều ở bạn, cả hiểu biết lẫn công sức. Nhưng khả năng của nó rất l ớn, và
bạn nên làm quen, ít ra cũng để viết client cho các dịch vụ khác, hay t ạo kh ả năng liên l ạc v ới
các dịch vụ khác từ ứng dụng của bạn.

3.Giai đoạn trước khi xuất hiện Java.

Sự xuất hiện của dịch vụ WWW, giao thức HTTP, chuẩn URL đã tạo ra một h ướng mới trong
lập trình Internet. Hướng này dựa trên dịch vụ Web và giao thức HTTP, do đó b ạn không c ần
biết về TCP/IP và tạo ra giao thức riêng của mình nữa. Hoặc bạn t ạo ra các Web server
application(WSA), cung cấp thông tin qua WebServer, hay là vi ết Client cho WebServer, truy
nhập thông tin qua Web. Các yêu cầu của client, thông qua WebServer, đ ược g ửi đ ến WSA,
chúng xử lý thông tin, tạo ra kết quả dưới dạng văn bản HTML, và qua WebServer, g ửi l ại cho
client. Viết các WSA tuy không phức tạp như các Internet Server, nhưng cũng rất ph ức t ạp, và
đòi hỏi bạn phải biết về HÐH, chuẩn CGI, cũng như các giao di ện của chúng. Ưu đi ểm c ủa
WSA là thị trường của chúng, lớn đúng bằng thị trường của WWW. Nh ưng d ịch v ụ WWW đ ược
tạo ra để phân phối văn bản, nên việc truyền dữ liệu qua nó là không thích h ợp và r ất ch ậm. Ð ể
thay đổi một hai dữ liệu trong văn bản, bạn đành phải gửi đi nguyên c ả trang, đó là h ậu qu ả c ủa
việc dùng dịch vụ WWW sai chức năng của nó. Ngôn ngữ phổ biến là Perl, nh ưng b ạn có thể
dùng C, C++ hay Delphi.. miễn là ứng dụng liên lạc được với WebServer.

4.Giai đoạn sau khi xuất hiện Java.

Sự xuất hiện của Java và các trình duyệt Web hiểu Java (chạy được Java applets) đã giải
quyết được nhược điểm của WSA, hỗ trợ cho lập trình với Socket, và mở ra một h ướng m ới. Ưu
điểm của Java applet là chúng được truyền trong mạng, và chạy trong trình duy ệt Web. Vì v ậy,
dữ liệu có thể được truyền thông qua chúng, chứ không phải dưới dạng văn b ản. Ch ỉ bằng cách
tạo thêm Java client cho các WSA đang hoạt động, trao đ ổi thông tin gi ữa trình duy ệt Web và
WSA, tốc độ thực hiện của các ứng dụng này đã nhanh lên rất nhiều, và cho phép s ử d ụng
chúng thêm một thời gian nữa.

Các ứng dụng viết trên Java có thể chạy trên hầu hết các HÐH, giúp đỡ rất nhi ều cho vi ệc l ập
trình với Socket, bạn không phải viết nhiều phiên bản cho các HÐH khác nhau. Ngoài các lĩnh
vực truyền thống, các ứng dụng Java còn mở ra một hướng hoàn toàn mới, đó là các ứng d ụng
được lưu và truyền trong mạng, đòi hỏi tài nguyên hoạt động ít. Ðiều này cho phép, thông qua
mạng Internet, các hãng phần mềm bán sản phẩm, các hãng s ử d ụng ph ần mềm ti ết ki ệm tài
chính bằng cách lưu các ứng dụng trên Server, bớt công sức và phương tiện trong việc nâng
cấp phần mềm, cũng như phần cứng của Clients, các hãng sản xuất đồ dân d ụng đ ưa ra các
sản phẩm "thông minh"(có khả năng sử lý dữ liệu thông qua processor riêng và quản lý t ừ
mạng..)

Về mặt lập trình, Java ngoài ưu điểm có cú pháp giống C++, chỉ có thêm m ột ưu đi ểm n ữa,
đó là vấn đề quản lý bộ nhớ, còn lại không có gì thay đổi. Th ậm chí, do các hệ th ống l ập trình
trên Java còn yếu, bạn sẽ thấy khó khăn hơn(JBuilder, Visual Cafe ch ưa thể so v ới Delphi, VB..).
Với các ứng dụng cổ điển, yêu cầu đối với bạn không có gì thay đ ổi, vẫn t ừng đó ki ến th ức và
công sức. Còn về các ứng dụng đặc thù của Java, tuy đã xuất hi ện nhiều t ư t ưởng mới mẻ, nh ư
ứng dụng Java cho Network Computer, các sản phẩm "thông minh".., nh ưng hãy còn quá s ớm
để xác định, chúng sẽ đi về đâu.

5.Kết luận.

Với sự xuất hiện của Java, trong lĩnh vực lập trình đã có nhi ều thay đ ổi, m ột s ố đ ược hoàn
thiện hơn, một số mới ra đời. Trước mắt, xuất hiện một số xu hướng sau: Các ứng dụng WSA
trên CGI sẽ phải có thêm Java Client, không được phát triển lên nữa, và ch ết h ẳn. Các ứng
dụng với Socket sẽ phổ biến hơn nhiều, Server vẫn viết trên C++, Delphi.. do t ốc đ ộ Java còn
thấp và giải quyết phần lớn các chức năng , nhưng Client được vi ết trên Java, và nếu có
thể(kích thước nhỏ, không quá phức tạp..) thì dưới dạng applet, sau khi t ốc đ ộ c ủa Java nhanh
hơn(hy vọng HotSpot của Sun nhanh được như đã hứa, ngang với C++), Server trên Java s ẽ
phổ biến hơn. Còn Java với tư cách là một cuộc cách mạng, thì chúng ta ph ải đ ợi xem sao đã,
chưa có gì chắc chắn, mặc dù hứa hẹn thì có nhiều.

Trên đây là những suy nghĩ của riêng tôi về thực ti ễn lập trình trong giai đo ạn hi ện nay. Do tôi
mới làm quen với Java và vào Internet được 3 tháng, nên rất có thể nh ững ý ki ến đ ưa ra là sai,
hoặc không chính xác. Vì vậy mong mọi người chú ý, ki ểm tra lại, và nếu có thể, trao đ ổi ý ki ến
với tôi!


Thiết kế trang Web có tăng cường tính năng Java
Nếu đã có thời gian làm việc trên Web với một Browser hiểu Java, ch ắc b ạn s ẽ muốn
đưa thêm công nghệ tăng cường này vào các trang Web của mình. Nh ưng tiêu khi ển v ới các
trang có sẵn có tăng cường Java mới chỉ được một nửa sự thú vị. Tìm ra các applet rồi đ ưa vào
trang Web của chính mình mới thực sự đúng điệu. Vì vậy, thì hãy thoả mình vào chi ếc gh ế tho ải
mái hơn, và chuẩn bị để nối mạng - đã đến thời điểm của Java.

Bước đầu tiên là phải quyết định định các trang được tăng cường Java của b ạn nh ư th ế
nào, rồi sau đó mới sờ đến applet, công cụ sẽ làm cho các trang đó thành hi ện thực. Đi ều ch ủ
yếu, nếu không có các applet, cơn khát Java của bạn s ẽ không th ể nào thoả mãn đ ược. R ất
may là việc tìm các applet còn dễ hơn cả việc tìm cửa hàng bán café ở Seattle; applet có ở kh ắp
mọi nơi. Thực ra applet không phải là phương tiện duy nhất để tạo sinh đ ộng cho các trang Web
của bạn bằng Java. Java Script, sẽ được trình bày chi tiết hơn trong ph ần III, cũng là m ột
phương tiện bổ xung sống động Java . Tuy nhiên, Java Scrip chỉ như ph ần khuất chìm d ưới
nước của con thuyền applet, cũng là cà phê nhưng không phải là loại h ảo h ạng nh ư applet.

Chọn đúng applet hoàn hảo.
Bạn hoàn toàn sẵn sàng bước vào giai đoạn làm sống động cho Web site c ủa mình b ằng
một số applet Java vui mắt, khi đã dừng việc tìm kiếm, có th ể nảy sinh câu h ỏi : "Các applet đ ến
từ đâu?".

Đây là thời điểm ngồi lại và cùng trao đổi vài câu chuyện nhỏ....

Đừng toát mồ hôi vì nó

Phương pháp tìm kiếm applet để sử dụng trong trang Web của bạn là m ột phần vi ệc quan
trọng trong toàn bộ quá trình lập kế hoạch. Khi phải quyết đ ịnh các applet Java nào s ẽ đ ược
đưa vào Web site của mình, bạn có thể một trong hai k ỹ thuật sau đây:

Lướt trên Web theo cảm hứng: cách dễ dàng nhất để t ạo ra các ý t ưởng cho Web site c ủa
bạn là nhìn xem những người khác đã làm như thế nào. Bằng cách lướt trên Web, b ạn có th ể
tìm được các trang và các applet gây cảm hứng cho bạn. Quá trình này g ọi là l ướt theo c ảm
hứng (inspiration surfing), và có lẽ là phương pháp trực ti ếp và thú v ị nh ất đ ể t ạo ý t ưởng cho
các trang Web của bạn.

Làm việc căng thẳng: nếu bạn là người ham việc và thích t ự hành h ạ, bạn có thể t ự hình
thành các ý tưởng đó một cách tương đối độc lập, trực ti ếp đáp ứng cho nh ững yêu c ầu riêng
đối với site của bạn. Kỹ thuật này không mấy thú vị, đòi hỏi đ ộ đ ộng não nhi ều và b ắt bu ộc tác
giả trang Web phải tự đề ra các chi tiết của site mà không l ợi d ụng đ ược hàng trăm hàng ngàn
gì của những người khác đã đầu tư để xây dựng nên các Java site hi ện đại.

Điều tệ nhất của phương pháp này là sau khi đã xác định đ ược nh ững gì các applet đó ph ải
thực hiện, bạn còn phải dựng nên chúng. Đúng vậy, nếu bạn đã có trình độ ti ến sĩ máy tính, b ạn
có thể tự viết cho mình một applet từ hai bàn tay trắng. Nh ưng nếu b ạn là ng ười m ới vào ngh ề,
thì tốt nhất là hãy tìm đến con đường dễ dàng và tuỳ biến những applet đã có s ẵn t ừ tr ước.

Chắc phần lớn mọi người thích làm việc theo cảm hứng hơn là căng thẳng. Còn bạn thì sao?

Để thực sự cảm thấy được những gì các trang Web của mình có thể và s ẽ ph ải th ực hi ện,
bạn nên dành thời gian đáng kể truy cập trực tuyến để xem xét nh ững gì có ở đó. Ch ỉ sau khi đã
đầu tư nhiều thời gian cho công việc định hướng các tài li ệu siêu ph ương ti ện này, b ạn m ới có
thể hiểu rõ và đánh giá đúng cách thiết kế trang Web phù h ợp.

Đáng tiếc là có nhiều người lao vào Web mà không thực sự hi ểu rõ về nó. Ph ương pháp mù
quáng này nhất định sẽ dẫn đến tình trạng làm việc căng thẳng, cố nặn ra các chi ti ết c ủa vi ệc
xây dựng trang Web mà không gắn với một lý do xác đáng nào, trong khi ch ỉ c ần bỏ ra m ột ít
thời gian để lướt Web cũng sẽ làm cho toàn bộ quá trình dễ dàng h ơn nhiều. Mắc sai l ầm này là
một tai hoạ cho Web site của bạn; phát hành các trang có tăng c ường Java trên World Wide
Web mà không đầu tư thời gian và kinh nghiệm để biết rõ cách thiết k ế nào là t ốt hoặc x ấu, h ệ
thốngì chẳng khác gì xuyên một chiếc cọc nhọn vào thẳng tim site của b ạn.

Để hiểu lý do tại sao như vậy, bạn phải xem xét kỹ bản chất của Web. Có hàng ch ục tri ệu
người hàng ngày lướt trên Web, họ chịu mất thời gian và tiền b ạc để đ ược sưởi ấm tr ước màn
hình máy tính. Hiện nay, đường phân phối dữ liệu qua Web rất hẹp và l ưu thông thường t ắc
nghẽn. cáng nhiều người trên Web thì việc định hướng này càng trở nên ch ậm ch ạp h ơn-gi ống
như các cửa hàng trong ngày lễ tết.

Một trong các lý do chính để mọi người nối vào Web là để phát hi ện đ ược nh ững cái m ới.
Bạn có thể đi mọi nơi, xem mọi cái, và du lịch đến vô t ận, hình nh ư không bao gi ờ quay l ại
những bước chân cũ của mình. Tuy nhiên, mỗi khi tìm đến một trang, b ạn cũng ph ải đ ợi nó t ải
xuống qua Net. Web không phải là một hệ thống thông tin đ ược phân ph ối ngay t ức kh ắc nh ư vô
tuyến truyền hình; nó phải tốn thời gian để cho mã nguồn, hình ảnh ,âm thanh và các applet c ủa
trang tải xuống máy tính của bạn. mà trên Web, thời gian là tiền b ạc.

Thiết kế trang Web càng quan trọng hơn khi bạn dùng Java, và các applet t ốn nhi ều thời
gian để nạp, đặc biệt là khi chúng sư dụng hình ảnh và âm thanh (mà nhi ều applet nh ư v ậy). Vì
Java rất được ngưỡng mộ, nên nhiều người dùng Web sẵn sàng treo máy ch ờ để tìm cho đ ược
trang có tăng cường Java. Nhưng sẽ như thế nào, nếu Web site mà h ọ ph ải ch ờ cho đ ến l ượt l ại
là đồ dỏm, và toàn bộ thời gian cũng như tiền bạc bỏ ra là vô ích? B ạn có th ể tin ch ắc h ọ s ẽ
chuyển ngay đến trang Web khác. Và càng phải đợi lâu thì họ càng có ấn t ượng thù ghét h ơn
đối với site xúc phạm đó.

Mặt khác, site nào thực sự có ích hoặc hấp dẫn thì càng nhiều khách thăm - k ể c ả đ ược
đánh dấu lại để truy cập nhanh sau này,nghĩa là site đó được khách tái thăm nhi ều l ần. Ch ỉ có
một cách duy nhất để bạn biết rõ kiểu thiết kế nào tốt hay xấu là ph ải dùng qua nhi ều l ần đ ối
với cả hai loại. Phương pháp duy nhất để thực hiện điều đó là ph ải l ướt trên Web.

Nếu bạn không lướt trên Web hoặc không phân bi ệt được site nào xấu t ốt, thì hi ện t ại s ẽ
không có một cơ hội nào để lao vào cuộc. Sự chuẩn bị đó không ch ỉ nên làm, mà tuy ệt đ ối ph ải
làm. Hãy nghĩ điều này như là một nhiệm vụ được giao, thực chất không khác gì một chuy ến du
lịch vòng quanh thế giới với yêu cầu phải chụp ảnh và ghi chép ở mọi điểm d ừng chân. Đó thực
sự là tất cả những gì bạn phải làm. Hãy lướt ngay trên Web và đánh d ấu l ại các site mà b ạn
thích. Hãy đọc phần "Tìm kiếm các applet t ốt nhất trong thế gi ới điều khi ển" (trong ch ương này
để biết cách lướt qua các Web site, cách đánh dấu để truy cập nhanh sau này, cách tìm các
applet trong đó, và cách lưu lại mã nguồn của những trang mà chũng bi ểu hi ện để tham kh ảo v ề
sau.

Qua những trình bày trên, không có nghĩa là bạn phải trì hoãn vi ệc đ ưa các applet vào trang
Web của mình cho đến khi đã tìm tòi rộng khắp trên Web và ch ắt lọc ra đ ược nh ững tinh tuý c ủa
nó. Tốt nhất hãy tập luyện kỹ năng nhúng applet song song với vi ệc hình thành các s ở thích
riêng trong thiết kế trang. Vì bạn tạo ra các trang Web trên chính chiếc náy c ủa b ạn, cho nên ch ỉ
có bạn là người duyệt xem chúng trước khi tải lên máy Web Sever. Nh ư vậy, Web site c ủa b ạn
là một "bán thành phẩm" được hoàn chỉnh ngay trên ổ cứng của mình. B ạn,và chỉ m ột mình b ạn
mà thôi, sẽ quyết định khi nào thì một trang là hoàn h ảo đ ể đ ưa ra, cho nên b ạn có th ể g ọt dũa
bao lâu tuỳ ý.

Được phép chọn dùng hay không

Khi đi ngang qua một applet trên Web mà bạn muốn nhặt l ấy để đ ưa vào trang c ủa mình thì
bước kế tiếp là phải thực hiện một động tác thẩm tra nhỏ để biết bạn có được phép s ử d ụng
applet đó hay không. Có một số applet tuyệt hảo, nhưng không ph ải là loại đ ược quy ền ch ọn
dùng.

Bạn có thể biết chắc một applet hoàn toàn nằm ngoài phạm vi công cộng nếu nó không
cung cấp một thông tin nào giải thích cách sử dụng applet đó trong các trang riêng c ủa b ạn. Dĩ
nhiên đây là một ý tưởng tốt để xem xét toàn bộ site trước khi ph ải t ừ b ỏ. Nh ưng nếu các chi ti ết
này không được cung cấp, bạn không có cách chọn lựa nào khác là vẫn ph ải tiếp t ục.

Applet là những chương trình nhỏ, nếu dùng chúng mà không đ ược phép thì cũng ph ạm lu ật
giống như đi vào cửa hàng và chôm một hộp phần mềm bày trên giá.

Rất may là các phương tiện chuyển tải applet trên Web đều cho phép t ự do lấy, và hàng
ngày được bổ sung thêm một lượng lớn. Hầu hết các applet này đều mô t ả một cách chi ti ết và
chính xác cách thức để bạn có thể đưa chúng vào trong các trang riêng của mình. Cho nên, tr ừ
trường hợp bạn muốn tìm mua một số applet lạ, còn thì bạn có nhi ều cơ h ội đ ể tìm đ ược đúng
những gì mà bạn cần, đơn giản chỉ bằng cách lướt trên Web.

Đặt hàng một applet soạn theo yêu cầu

Nếu đã tìm khắp trên Web mà vẫn không thấy một applet có s ẵn theo ý muốn, b ạn luôn luôn
có thể đặt hàng một applet được xây dựng theo các yêu cầu của b ạn. Nh ưng nên nh ớ, các
applet biên soạn theo yêu cầu giá không rẻ, tuỳ theo công vi ệc có liên quan, bạn có th ể tr ả giá
từ 50 USD đến 100 USD cho những loại công việc cơ bản nhất.

Một số lượng đông đảo các chuyên gia Java tự phong gần đây đã có mặt trên Web, và h ứa
hẹn sẽ tạo ra những applet xuất sắc với giá phải chăng. Nếu bạn quyết định ph ải có m ột applet
Java đặt hàng cho mình, bạn hãy tiến hành một cách an toàn theo nh ững l ời khuyên sau đây:

-Chỉ chọn hãng nào có kinh nghiệm: Tìm những công ty được khách hàng gi ới thi ệu và có
các ví dụ mẫu về công trình của họ được trình bày nổi bật trên site (hoặc nh ững hãng s ẵn lòng
cung cấp ngay những mẫu đó khi có yêu cầu).

-Đừng chấp nhận những lời giới thiệu suông. Phải tiếp xúc với từng khách hàng và đ ặt các
câu hỏi có định hướng, như "Công việc gì đã được thực hiện?", "Làm việc đó mất bao lâu?" "Giá
bao nhiêu?" và "Có thể giới thiệu công ty này cho công việc của tôi không?"

_Đi nhiều cửa hàng. Những gì mà công ty này làm với giá 500 USD, thì công ty khác có th ể
chỉ làm với 100 USD hay ít hơn. Nhưng nên nhớ, giá cả không phải là t ất cả, mà uy tín c ủa nhà
phát triển mới là phần quan trọng nhất.

Web có một diễn dàn, trong đó tất cả những người dùng có một máy tính v ới một modem
đều có thể tự xưng là chuyên gia biên soạn Java. Đừng tin vào nh ững đi ều đó.

Tìm kiếm các applet tốt nhất trong thế giới điều khiển

Một trong những điều thách thức nhát khi đưa Java vào các trang Web c ủa b ạn là ph ạm vi
các khả năng chọn lựa rộng đến chóng mặt mà bạn có trong tay khi đã kết thúc vi ệc tìm ki ếm
applet (hoặc các applet) sẽ được đưa vào các trang của bạn. Nếu b ạn đã t ừng b ị xoay chong
chóng trên Web với một brower hiểu Java, thì bạn sẽ biết chính xác điều này. Mỗi lần tìm l ại
thấy xuất hiện các applet mới mẻ đầy cám dỗ, sẵn sàng để được s ử dụng trog nh ững trang
riêng của bạn.

Bạn có thể cài một số lượng applet bất kỳ vào trong m ột trang Web. Nh ưng đ ừng quá tham.
Mỗi applet sẽ phải mất một thời gian để tải từ Internet xuống. Kất quả là b ất kỳ ai đến thăm
trang Web có nhiều applet đều phải đợi rất lâu để các applet đó đ ủ thời gi ờ di chuy ển trên m ạng
- điều này có thể làm cho mọi người lảng tránh site của bạn. Với các applet, cũng nh ư v ới các
trang Web nói chung, bạn nên cân nhắc kỹ về thiết kế t ổng thể của trang trước khi th ực s ự xây
dựng nó.

Căng buồm lên đi vào cuộc tìm kiếm các applet hảo hạng

Nếu bạn không biết chắc sẽ bắt đầu cuộc tìm kiếm applet của mình từ đâu, thì cũng đ ừng
lo. Bạn có thể bắt đầu duyệt từ bất kỳ trang nào, cứ để cho chuột c ủa b ạn dẫn đi theo nhi ều
hướng. Bạn có thể tiến từ trang này đến trang khác, t ừ site này đến site khác hoặc cách quãng.
Tuy nhiên, nên từ từ trong giai đoạn bắt đầu này, vì bạn sẽ ph ải hình thành d ần m ột "kh ẩu v ị"
riêng trong việc thiết kế trang Web.
Hãy tìm hiểu về những phong cách lướt Web khác nhau, và cố gắng thử t ất cả. Nên nh ớ,
bạn cần phải luyện tập các kỹ năng thiết kế trang Web của mình, và điều này đòi h ỏi b ạn ph ải
xem kỹ các trang nhưng khác với cách xem của những khách du lịch. Đồng thời, vì có nhi ều
cách lướt Web khác nhau, nên yêu cầu bạn phải kiểm tra trang bằng tất cả các cách đó.

Khi lướt Web, bạn sẽ hình thành dần sở thích riêng đối với vi ệc thi ết k ế trang Web. B ạn s ẽ
biết rõ cái gì mình thích và không thích, đồng thời những thông tin này s ẽ đ ược ph ản ánh vào
các quyết định thiết kế của bạn sau này. Những gì làm cho một site có tăng c ường Java m ạnh
lên hoặc yếu đi đều do sở thích rieng của từng người quyết định, song m ột Web site ho ản h ảo
phải có các chất lượng sau đây:

Mới mẻ. Các applet trên site này không giống như các applet cũ mà m ọi ng ười đ ều dùng.
Nếu một applet đã xuất hiện treen một nửa số site hiện hành, thì khi dùng nó liêu site c ủa b ạn
có gây được sự chú ý không? Có lẽ là không. Song nếu bạn không th ể tìm đ ược cho mình
những applet thuộc loai duy nhất, thì hãy cân nhắc để sắp xếp nh ững applet cũ đó n ằm r ải rác
không dồn vào một chỗ.

Hấp dẫn. Bản thân site đó không bị nhồi nhét quá nhi ều applet, hình ảnh, v.v... Gặp m ột
màn hình xấu xí, những người sử dụng sẽ quay mặt đi ngay trước khi b ạn có thể bi ểu di ễn
những trò ảo thuật.

Trang trọng. Không có gì có thể đánh bại một trang Web làm cho những ng ười xem ph ải
thốt lên "Chà!" một cách ngưỡng mộ.

Hữu ích. Cùng với sự hấp dẫn và trang trọng, trang của bạn còn phải là cái mà nhi ều ng ười
có thể sử dụng được. Mọi người lướt trên Web đều thích tìm ra những cái h ữu ích cho mình,
Nếu site của bạn có ích, mọi người sẽ đến.

Tương tác. cuối cùng, site của bạn phải có khả năng t ương tác với người dùng. Nếu họ có
thể làm một số cài gì đó với các applet trong site của bạn khi ch ơi, h ọc, hay làm vi ệc, nó s ẽ tr ở
thành vừa có ích vừa thích thú. Trên hết, người dùng sẽ thích nh ững trang v ừa có ích v ừa vui,
hơn là chỉ có ích mà thôi.

Có một số Web site được dành riêng để trưng bày các site và các trang tôi nh ất đã đ ưa ra,
và có nhiều Web site chuyên dùng cho việc biểu dương các site và các trang t ốt nh ất. Đ ể tìm
các site tốt nhất và tồi nhất trên Web, chỉ cần sử dụng cơ cấu tìm kiếm và nhập các từ khoá
WORST WEB và BEST WEB vào trong câu hỏi của bạn.

Thả neo bằng các thẻ đánh dấu

Khi phải đánh dầu một chỗ nào đó trong cuốn sách in, bạn ph ải xé một mảnh gi ấy và đ ặt
vào giữa hai trang. Bạn cũng có thể ghi một số đi ều gì đó lên mảnh gi ấy này đ ể nh ớ lý do t ại
sao lại đặt nó vào đây. Khi sử dụng Web bạn cũng làm nh ững việc t ương t ự. Nh ưng đ ừng có
bận tâm về việc tìm mảnh giấy và bút chì. Nên nhớ, đây là th ời đ ại đi ện t ử, nên b ản s ẽ s ử d ụng
một thẻ đánh dấu ảo.

Khi gặp một trang Web có tăng cường Java hấp dẫn, bản hay đánh d ấu nó! Các brower c ủa
Web đều cho phép bạn đánh dấy hay liên kết nóng (hotlink) các trang Web để có th ể truy c ập
nhanh sau này. Trong Netscape Navigator, tính năng này gọi là bookmarking; còn trong Microsoft
Internet explorer là Favirites. Khi đánh dấu một trang, b ạn s ẽ có th ể quay l ại nó m ột cách nhanh
chóng để trí nhớ được nhắc lại sau khi đã bị mụ mẫm đi vì phải xem đến hành trăm trang có
Java khác.
Khi tìm kiếm sự cảm hứng Java trong Web, bạn phải ghi thêm chú thích vào các th ẻ đánh
dấu mà bạn thực hiện. May mắn là hầu hết các browser đều cho phép b ạn nh ập các ghi chú
này vùng lyvs với việc thực hiện đánh dấu. Trên Netscape Navigator ch ẳng h ạn, b ạn ch ọn
Boomarks - Go to Bookmarks thì một cửa sổ riêng s ẽ xuất hi ện, trong đó có ch ứa t ất c ả các th ẻ
đánh dấu mà bạn đã tạo nên từ trước. Ngay khi có một site làm cho b ạn quan tâm (hoặc r ất t ốt
hoặc rất xấu), bạn hãy đánh dấu nó như bình thường và chọn Item Properties trong c ửa s ổ th ẻ
đánh dấu (hoặc nếu bạn sử dụng hệ thống Windows, bạn có th ể nh ấn chuột lên thẻ đánh d ấu
này bằng phím phải). Cửa sổ Properties (các thuộc tính) đặc bi ệt s ẽ mở ra, trình bày nh ững chi
tiết về thẻ đánh dấu (như tên gọi và URL của nó chẳng hanh) đồng th ời cũng cung c ấp cho b ạn
một khoảng trống để ghi thêm các chú thích. Tại đây b ạn có thể đ ưa vào các ấn t ượng đ ầu tiên
của mình về site đó.

Phải bảo đảm ghi lại các ấn tượng đầu tiên về trang vào đứng thời đi ểm mà b ạn th ực s ự
đánh dấu nó. Các ấn tượng đầu tiên của người dùng đối với một site rất quan trọng vì chúng có
thể làm cho site thành công hay thất bại. Bạn cần thể hiện cảm giác v ề nh ững gì h ấp d ẫn và
chán ghét đối với người dùng Web, và chỉ có một cách là tiếp xúc trực ti ếp v ới các trang Web.

Cùng với việc ghi các ấn tượng đầu tiên của bạn về một site, hãy xem xét để xếp hạng nó
và ghi điểm kèm theo các thú thích. Bạn có thể chọn bất kỳ hệ th ống x ếp h ạng nào tuỳ ý, cho
đến khi tìm được một cách phân biệt giữa các site tốt và site xấu. Ví d ụ, b ạn có th ể ch ọn h ệ
thống xếp hạng 1-10, trong đó số nhỏ đại diện cho các site xấu, còn số lớn đ ại di ện cho site t ốt,
và 10 dành cho site tốt nhất trong các site tốt.

Đào tìm kho báu trong mã nguồn

Chỉ thiết lập các thẻ đánh dầu thôi thì chưa đủ. Bạn còn phải li ếc ra sau các màn che đ ể
xem mã HTML được dùng để tạo ra các trang WEb.

Nhờ xem kỹ mã nguồn HTML tạo nên các trang gây cảm hứng cho bạn, bạn s ẽ bi ết rõ công
thức pha chế của các trang Web hợp "khẩu vị" đó. Tất cả các trình duyệt đều có ch ức năng cài
sẵn cho pohép dễ dàng xem mã nguồn phía sau trang Web. Đối với Netscape Navigator, b ạn ch ỉ
cần chọn View - Document Souce. Các browser khác cũng có các ch ức năng menu t ương t ự,
mặc dù tên của chức năng và menu có thể không giống nhau. (Trong Microsoft's Internet
explorer, bạn chọn View-Source)

Khi xem mã nguồn của trang Web, bạn có thể tìm thấy m ọi th ứ mà b ạn c ần để bi ết trang
Web đã được tạo ra bằng cách nào. Và, quan trọng hơn cả là bạn xem đ ược công th ức pha ch ế
mà người ta dùng để tạo nên trang Web từ đầu! cụ thể, bạn muốn xem trang này đang s ử d ụng
các applet nào, nếu có.

Nhắc lại, đâu là một thủ tục đơn giản. Bạn chỉ cần gọi tính năng Find của browser và tìm t ừ
applet. Cách hoạt động của qui trình này đối với Netscape Navigator nh ư sau:

1. Nhấn Ctrl+F (hoặc +F nếu bạn dùng máy Mac)

Khác với Microsoft Explorer, Netscape không cho bạn chức năng menu đ ối v ới tính năng
Find khi xem mã nguồn của trang.

2. Khi hộp thoại Find xuất hiên, bạn gõ từ applet và nh ấn vào nút Search!

Nếu trang đang xem có dùng applet Java, bạn sẽ tìm thấy thr trong mã nguồn HTML c ủa nó.
Tại thời điểm này, bạn được tự do sao chép và dán toàn bộ thẻ vào tài li ệu văn b ản đ ể tham
khảo sau này. Hoặc tốt hơn, bạn có thể cất giữ toàn bộ tập tin mã nguồn vào máy tính cá nhân
của mình. Sau đó, bạn cũng muốn biết có còn những applet nào khác ch ứa trong trang hay
không, và do đó bạn vẫn tiếp tục tìm.

3. Tiếp tục tìm kiếm cho đến khi tìm thấy tên và các thông s ố cài đặt c ảu t ất c ả các applet
trong trang.

Nên nhớ, từ applet có thể xuất hiện trong thẻ dưới dạng chức thường hoặc ch ức hoa, m ặc
dù nên dùng chữ hoa cho dễ đọc. Rất may, theo ngầm định tính năng Find trong h ầy h ết các
browser đều không lưu ý kiểu chức (nếu browser của bạn không như vậy, hay tìm một tuỳ ch ọn
trong cửa sổ Find cho phép khẳng định kiểu chữ sẽ được bỏ qua). Kết quả b ạn s ẽ tìm đ ược t ất
xả các thẻ trong tài liệu, bất kể bằng từ applet hoặc APPLET.

Dĩ nhiên việc xem mã nguồn tài liệu theo cách trực tuyến này không mấy thuận l ợi cho b ạn
vì phải tốn lệ phí trực tuyến. Bạn sẽ phải nối với Web và xem lại mã nguồn m ỗi khi c ần nh ớ l ại
các chi tiết của cách thức được dùng để tạo nên trang đó. Tuy nhiên, b ạn không c ần ph ải có trí
nhớ của Einstein để nhớ lại những đặc trưng của dạng thẻ; máy tính của b ản đã thực hi ện vi ệc
này. Đó là local storage (bộ nhớ tại chỗ), thực chất là lưu t ập tin trên ổ cứng c ủa b ạn.

Chiếm lĩnh và mang về nhà

Sau khi đã tìm thấy trang gây được cảm hứng, tại sao không tải luôn cả mã nguồm HTML
của nó xuống máy tính bạn, tại đây bạn có thể xem nó bất kể th ời gian nào mà không m ất xu
nào cho lệ phí trực tuyến? Không có lý do nào bắt buộc b ạn ph ải nối v ới Web đ ể xem mã ngu ồn
khi đã có chính trang đó trên máy của riêng bạn.

Cất giữ mã nguồn của một trang Web rất dễ dàng. Tất cả công việc ph ải làm ch ỉ là nh ấn
chuột vào tuỳ chọn Save của browser (trong Netscape Navigator, b ạn ch ọn File-Save t ừ menu
của browser). Cần nhớ, với Netscape Navigator, bạn phải chọn Save trong khi đang duy ệt chính
trang Web đó, chứ không phải mã nguồn, vì không có chức năng menu nào cho b ạn dùng khi
đang xem mã nguồn.

Khi lưu một trang Web, phải bảo đảm đã gán cho trang đó một tên, ti ếp theo là đuôi m ở
rộng. HTML (hoặc .HTM). Lưu tài liệu theo cách này bạn sẽ dễ dàng nhận biết nó có ch ứa mã
nguồn của trang Web. Đồng thời, bạn cũng phải bảo đảm lưu trang Web ở d ạng HTML nếu
được; nếu không, bạn sẽ lưu tài liệu đó như một văn bản đơn gi ản ch ứ không ph ải là mã nguồn!
Mặc dù Netscape Navigator tự động gán dạng HTML mặc định khi l ưu các trang Web vào đĩa,
nhưng các browser khác có thể không như vậy. Nếu bạn không biết ch ắc dạng nào browser
dùng để lưu trang, thì chỉ việc mở tài liệu đó ra xem bằng một trình xử lý văn b ản (hoặc b ất kỳ
chương trình nào có khả năng xem bằng mộ trình xử lý văn bản đ ơn giản). Nếu d ạng th ức đó là
HTML, bạn sẽ nhìn thấy mã nguồn này ngay t ức khắc. Còn nếu không ph ải, hay quay v ề l ại
browser rồi lại tiến hành lưu trang đó một lần nữa - lần này dùng d ạng HTML.

Cũng như mọi tài liệu khác, khi lưu trang Web, bạn phải chọn một vị trí trên ổ c ứng cho nó.
Nên tạo ra một thư mục mới cho từng site và lưu các trang l ấy ra từ site đó trong th ư m ục này.
Dĩ nhiên, bạn có thể lưu mã nguồn ở bất cứ đâu tuỳ thích trong máy c ủa mình. Ch ỉ c ần đ ảm b ảo
đã ghi lại mơi cất nó để có thể tìm laị sau này.

Sau khi đã tải mã nguồn của trang Web xuống máy tính cá nhân của mình, b ạn có th ể xem
nó với browser của bạn bằng cách vào chức năng thích hợp trong menu File. V ới Netscape
Navigator, bạn dùng tuỳ chọn Open để có thể xem hoặc m ở các trang Web đã l ưu trong máy
tính của bạn.

Khi đã mở một trang Web nằm trong máy tính của mình, bạn có th ể g ắn th ẻ đánh d ấu vào nó
giống như trang Web tồn tại trực tuyến, để có thể truy cập nhanh m ỗi khi cần xem l ại sau này.
Và cũng giống như các trang Web trong không gian đi ều khi ển, bạn có thể dùng browser đ ể xem
mã nguồn của các trang đang lưu trong máy tính - nhưng với các trang đ ịa ph ương này, b ạn
không cần vội vã vì không phải trả lệ phí trực tuyến theo thời gian.

Tải xuống thêm ngoài mã nguồn

Lần đầu tiên tải xuống một trang để truy cập tại chỗ, có thể bạn rất ngạc nhiên khi nh ận th ấy
không có hình ảnh, âm thanh, hoặc các applet đi kèm trong đó. Th ực t ế này có th ể làm thay đ ổi
hoàn toàn dáng vẻ của trang so với khi xem trên Web. X ảy ra điều này vì b ạn ch ỉ t ải ngu ồn,
không có gì hơn nữa. Nhưng can gì, vì mã nguồn của các trang Web là quan tr ọng nh ất - Đó là
công tức cơ bản để xây dựng nên các trang riêng của bạn.

Nhưng các trang Web có tăng cường Java đã được tạo ra không chỉ bằng mã nguồn HTML
và các hình ảnh như hầu hết các trang thông thường. Lưu toàn b ộ trang (mã nguồn, đ ồ ho ạ, âm
thanh và các applet) vào ổ cứng của bạn ngay cùng một lúc không m ấy dễ dàng. Rất may là l ưu
các hình ảnh của trang Web lại khá đơn giản. Tuy nhiên, l ưu các phân t ử khác ch ứa trong trang,
như âm thanh và các applet không dễ dàng lắm.

Mặc dù việc lưu giữ tất cả các phần tử chứa trong trang là hoàn toàn có khả năng v ề m ặt k ỹ
thuật, nhưng đó là một quá trình tẻ nhạt hơn so với việc lưu hình ảnh. Th ực ra, cách th ực hi ện
việc này là một điều bí mật không thể chia sẻ. Bạn thấy đấy, lấy các ph ần t ử này ra để cho vào
máy tính địa phương của bạn có thể là một việc vi phạm pháp luật! Pháp luật trong lĩnh v ực này
chỉ là một cái bóng mờ nhạt, vì Web thực thể công cộng được s ử dụng để xuất bản các tài li ệu
cho một cộng đồng rộng lớn. tuy nhiên, các phần t ử chính tạo nên nh ững tài liệu đó có th ể
không được dự kiến cho việc truy nhập riêng tư.

Lưu hình ảnh

Có lúc bạn muốn thêm nhnữg cái khác, ngoài mã nguồn của trang Web, vào máy tính c ủa
mình; nhất là khi bạn lướt ngang qua một trang có chứa hình ảnh đ ược d ự đ ịnh dùng kèm v ới
applet Java, hiện tượng rất thường gặp khi bạn sục sạo Web trong quá trình tìm ki ếm c ảm h ứng
cho các trang riêng của bạn.

Rất may, hình ảnh thường được tạo sẵn thông qua các trang Web đều miễn phí và không b ị
hạn chế, nghĩa là bạn có thể sử dụng chúng trong các trang của mình mà không s ợ ph ạm lu ật.
Điều này thực sự có ích và tiết kiệm thời gian, vì các hình ảnh tinh vi và sinh đ ộng r ất khó t ạo ra
bằng hai bàn tay trắng. Thay vì phải tự tạo, bạn có thể lấy các hình ảnh trang nhã trực ti ếp t ừ
trang Web để dùng với các applet Java của mình. Dĩ nhiên với điều ki ện là trang trang mà b ạn
lấy hình ảnh có công bố rõ ràng rằng những hình ảnh đó được t ự do lấy ra, không hạn ch ế.

Với Netscape Navigator hoặc mọi browser hiểu Java có s ẵn khác, vi ệc l ưu hình ảnh là m ột
khả năng chắc chắn. Tất cả công việc phải làm chỉ là nhấn chuột lên hình theo m ột cách đ ặc
biệt. Bằng cách nhấn chuột lên hình, bạn sẽ được đưa đến mối liên k ết với nó, nếu nh ư hình
ảnh đó thực sự là một siêu liên kết. Thực hiện một số động tác, bạn có thể l ưu hình ảnh vào đĩa.

-Nếu bạn dùng máy Macintosh thì thủ thuật đặc bi ệt ở chỗ không thả nút chuột sau khi đã
nhấn. Công việc phải làm chỉ là nhấn và giữ phím chuột trong khi con trở đ ặt trên hình, m ột
menu xuất hiện, trong đó có tuỳ chọn để cất hình ảnh vào đĩa.

-Đối với người sử dụng Windows, quá trình có khác chút tí. Vì chuột Windows có hai nút nên
có thể báo cho browser Web khác, chứ không chỉ đối với Netscape Navigator. Ch ỉ c ần nh ấn
chuột lên từng hình trong trang bằng kỹ thuật chuột phù hợp đ ối với hệ máy c ủa b ạn, r ồi ch ọn
Save Image trong menu vừa xuất hiện. Mối đe doạ duy nhất cho k ế hoạch này là các liên k ết b ị
đứt.
Giải quyết các liên kết bị đứt

Vì trang Web có thể chứa các hình ảnh nằm trong nhiều thư m ục khác nhau, hoặc th ậm chí
trên nhiều server khác nhau, nên có thể bạn phải cấp nhật mã nguồn cho trang đó sau khi đã
lưu nó vào máy tính của mình. Ví dụ, bạn đã lưu một trang cùng v ới t ất c ả hình ảnh c ủa nó vào
trong một thư mục trên máy của bạn. Trừ trường hợp trên Web các hình đ ều nằm trong cùng
thư mục với chính trang đó, còn không thì những liên kết với các hình này s ẽ b ị đ ứt. K ết qu ả là
bạn sẽ không nhìn thấy khi mở trang ra trên máy tính bằng browser của b ạn, vì bây gi ờ chúng
nằm trong cùng thư mục với trang đó, chứ không phải ở vị trí mà trang Web xác định.

Cách giải quyết là cập nhật mã nguồn, hoặc tạo ra một cấu trúc th ư m ục trên máy tính c ủa
bạn tương đương với cấu trúc thư mục của Web site mà bạn đã l ấy nguồn ra. B ạn nên c ập nh ật
mã nguồn, vì lúc nào cũng thực hiện được biện pháp này, ngay cả khi hình ảnh đ ược tham chi ến
bằng một URL tuyệt đối. Hơn nữa, bạn có thể làm việc với các URL t ương đ ối chỉ đ ơn gi ản
bằng cách tạo ra đường dẫn thư mục tương được trên máy tính của bạn. Còn với các URL tuy ệt
đối thì quá tầm giải quyết của bạn, trừ phi tất cả các URL tuyệt đ ối này đ ều đi ngang qua cùng
thư mục với bản thân trang, mà điều này rất ít gặp. Trong trường h ợp đó b ạn không còn cách
lựa chọn nào khác là thay mã nguồn của trang để nó cũng dùngmột URL t ương đ ối, vì b ạn
không thể bắt chước toàn bộ các Web server trên máy tính của mình b ằng các c ấy trúc th ư m ục
đơn giản. Muốn thay đổi mã nguồn, hãy nạp HTML voà bộ soạn th ảo văn b ản, nh ư Notepad c ủa
Windows (hoặc trình ứng dụng Macintosh Simple Test) rồi cập nh ật các tham chi ếu HTML.

Cuộc chiến chống tắc nghẽn dải thông

Rất dễ say mê trong việc tạo ra các trang Web được tăng cường Java chứa đ ầy ắp âm thành
và hoạt hình phức tạp. Làm phong phú cho site của bạn bằng một vi ệc đ ầy lôi cuốn! Và m ặc dù
mọi viêc có vẻ như là rất tốt đẹp khi xây dựng các trang như vậy trên máy tính c ủa mình, nh ưng
bạn sẽ nhận ra sự vướng mắc khi đưa chúng vào cuộc sống trên Web.

Như bạn thấy, khi xây dựng các trang tại chỗ bằng mã nguồn HTML, các hình, các applet và
các tập tin hỗ trợ (thường là hình ảnh và âm thanh đi kèm applet) đều nằm trên ổ c ứng c ủa b ạn
nên mọi chuyện rất trôi chảy. Tất cả các phần tử của trang đều có sẵn trên máy tính, nên không
mất thời gian để chờ chúng chạy trên đường dây, và mọi thức nạp vào browser c ủa b ạn h ầu
như tức khắc. Nhưng khi tải trang đó cùng với tất cả các bộ phận của nó lên Web thì b ạn l ại
phải đối mặt với một trở ngại hoàn toàn khác gọi là dải thông (bandwidth).

Bất kỳ ai đến thăm các trang nằm trên World Wide Web đều chịu ơn huệ của d ải thông - nó
quyết định tốc độ mà mọi thứ chuyển từ đường dây xuống máy tính của ng ười dùng. Nói rõ h ơn,
dải thông bị hạn chế là một trong các vấn đề khó khăn nhất trên Web hiện nay. Thay vì l ướt qua
các trang của bạn, như bạn vẫn làm khi trang còn nằm toàn bộ trên máy tính cá nhân c ủa mình,
các khách đến thăm site của bạn sẽ cảm thấy như đang bơi trong cát lún vì ph ải đợi m ọi th ức
được tải xuống, trước khi hưởng được niềm vui.

Vì dải thông là một thông số quan trọng đối với đại đa số người dùng Web, nên b ạn ph ải xem
xét đến mẫu số chung nhỏ nhất này. Mặc dù bạn có thể cố gắng tự thuyết ph ục rằng modem
28,8 Kbps là chuẩn mực, và giấc mơ về modem cáp và ISDN t ốc độ cao sẽ thành s ự th ực trong
tương lại không xa, thì nhiều người vẫn đang kết nối vào Internet ở t ốc đ ộ 14,4 Kbps hoặc th ấp
hơn. Để tỏ ra lịch sự và tươm tất đối với những khách thăm Web site của mình, bạn hãy đ ưa ra
cho mọi người các trang được tăng cường Java của mình mà không định ra hình ph ạt đ ối v ới
những ai truy cập chậm; bạn phải lưu ý khi lập kế hoạch cho các trang Web: cân nh ắc k ỹ l ưỡng
vấn đề dải thông.

Mặc dù các applet rất nhỏ và truyền trên đường dây không m ất thời gian, nh ưng các t ập tin
đồ hoạ và âm thanh mà chúng thường sử dụng thì lại tốn thời gian kinh khủng. B ạn có th ể th ực
hiện một số việc để giảm bớt thời gian truyền tải và đề phòng tắc nghẽn khi tải các t ập tin này
qua mạng.

Đánh giá các tập tin âm thanh

Khi làm việc với các tập tin âm thanh, Java chỉ hỗ trợ dạng âm thanh c ủa Sun. Các t ập tin
dùng dạng này có đuôi mở rộng .au. Nếu bạn có t ập tin âm thanh không dùng uLaw, nh ư t ập
tin .wav của Windows chẳng hạn, bạn phải chuyển nó thành dạng uLaw nếu b ạn định dùng nó
với một applet.

Mặc dù dạng uLaw tạo ra những tập tin nhỏ hơn về kích thước so vơí các d ạng khác, nh ưng
chất lượng âm thanh không tốt lắm. Có thể bạn phải t ự tìm các chức năng biên t ập âm thanh có
trong công cụ chuyển đổi nào đó để khử bỏ tiếng nhiễu mà bạn nghe thấy khi chuy ển các âm
thanh chất lượng cao sang dạng này.

Mặc dù tiện ích chuyển đổi GoldWare (cung cấp cho người dùng Windows) có ch ứa m ột s ố
chức năng biên tập âm thanh (như các hiệu ứng Smooth và Fade), nh ưng ch ương trình uLaw
(cung cấp cho người dùng Macintosh) chỉ có khả năng chuyển đổi các tập tin mà thôi; không th ể
biên tập chúng. Nếu bạn là người dùng Macintosh và nhận thấy âm thanh v ừa chuy ển đ ổi b ị
nhiễu quá mức, thì bạn phải cân nhắc để đầu t ư thêm trình công cụ ch ất l ượng t ốt, v ừa có kh ả
năng biên tập âm thanh vừa lưu chúng theo dạng .au đ ược Java hỗ trợ. Nh ưng tr ước khi ra ph ố
và tiêu di những đồng tiền đã dành dụm, bạn phải kiểm tra trước kho hàng ph ần m ềm dùng
chung của Macintosh đang rất dồi dào trên Web.

Cắt bỏ khoảng lặng

Nhằn giảm bớt kích thước của các tập tin âm thanh càng nhi ều càng t ốt khi chuy ển đổi
chúng để dùng với Java, bạn chỉ cần giữ lại các phần cơ bản của nó. Hãy cắt b ỏ m ọi khoảng
lặng nằm phía trước hoặc sau. Làm như vậy, bạn sẽ thu nhỏ được kích thước c ủa t ập tin mà
không ảnh hướng xấu đến âm thanh.

Vì việc cắt bỏ tất cả các khoảng lặng trước và sau của âm thanh làm cho khi phát l ại âm
thanh đó sẽ bắt đầu và kết thúc một cách bất ngờ hoặc vội vã, nên b ạn ph ải gi ữ l ại m ột vài
khoảng lặng ở mỗi đầu để âm thanh tự nhiên hơn. Rất may là bạn có thể đ ạt đ ược hiểu quả
như vậy bằng cách đặt fade-in vào đầu âm thanh (âm thanh l ớn dần) và fade-out ở ph ần k ết
thúc (âm thanh nhỏ dần). Các hiệu ứng này tạo ra sự chuyển ti ếp đièu hoà cho âm thanh. k ết
quả không những làm hco âm than hấp dẫn và mang tính chuyên nghi ệp hơn, mà còn cho phép
bạn tiết kiệm được những giây quý giá trong thời gian t ải xuống.

Một vài giây có vẻ không nhiều, nhưng mỗi giây đó đều đáng giá khi tính vào d ải thông. Đi ều
này càng có ý nghĩa khi bạn sử dụng nhiều âm thanh trong một trong Web. Nhiều giây c ộng l ại
thành nhiều phút... và khi truy cập trực tuyến sẽ thành nhi ều đô la chi phí.

Tạo ra các vùng lặp âm thanh

Ấm thanh là một phương pháp hiệu quả thu hút s ự chú ý và bổ sung thêm tác động cho trang
Web, đồng thời vì các applet Java làm cho việc sử dụng âm thanh trở nên dễ dàng, nên nhi ều
người có xu hướng lạm dụng âm thanh trên các trang Web của họ. Nh ư v ậy s ẽ t ạo nên t ắc
nghẽn dải thông và làm cho khách thăm trang Web của b ạn xa lánh.

Thay vì dùng nhiều đoạn âm thanh kèm theo các applet Java của mình, b ạn nên cân nh ắc
xem biện pháp looping (quay vòng) âm thanh có thể thay thế đ ược hay không. Khi quay vòng
một tập tin âm thanh, nó sẽ tự lặp lại liên t ục cho đến khi bạn báo d ừng. Hi ệu ứng này r ất tác
dụng, đặc biệt khi âm thanh quay vòng là âm thanh tinh t ế. Quay vòng có th ể là m ột bi ện pháp
thay thế tốt cho cách "bỏ bom" khách thăm của bạn bằng hết âm thanh này đến âm thanh khác,
và cũng giải phóng bớt dải thông trong quá trình này.

Nhờ tính linh hoạt của Java hỗ trợ âm thanh, bạn s ẽ rất vui sướng nhận thấy rằng mình có
thể sử dụng một số lượng lớn âm thanh cùng lúc, bạn không ph ải d ừng vòng l ặp đ ể nghe âm
thanh khác. Trừ trường hợp bạn quy định ngược lại (giả thiết applet bạn dùng cho phép), còn thì
tất cả mọi âm thanh mà bạn chơi cùng một lúc sẽ được phối hợp với nhau, t ạo nên âm thanh r ất
phong phú.

Tạo ra hầu hết các hình ảnh và mầu sắc

Java cho phép sử dụng các hình ảnh GIF (Graphics Interchange Format) cũng nh ư JPEG
(Joint Photographic Experts Group), nghĩa là bạn có thể ch ọn l ựa khi dùng hình ảnh cho các
applet của mình.

Dạng JPEG cho phép bạn dùng hình màu 24 bit (chất l ượng g ần b ằng ảnh ch ụp) cho applet
của mình. Thế nhưng với GIF bạn bị giới hạn trong phạm vi hẹp hơn rất nhi ều khi ch ọn màu -
chính xác là không quá 256 màu.

Mặc dù việc sử dụng hình JPEG đủ màu cho các applet là rất h ấp dẫn, vì d ạng này hỗ trợ
một phổ màu rộng hơn nhiều so với GIF, nhưng không nên quá tham. B ạn hãy c ố giảm b ớt s ố
lượng màu trong các hình của mình xuống còn 256 hoặc ít h ơn nữa; nh ư v ậy b ạn s ẽ gi ảm đ ược
lượng thời gian bị mất cho tập tin của bạn di chuyển trên đường dây. Dĩ nhiên làm cho các hình
giảm xuống dưới 256 màu phải có mẹo. Khi thực hiện biện pháp tối thiểu hoá này, b ạn còn ph ải
quyết định dùng dạng tập tin nào để lưu chúng GIF hay JPEG?

Thu gon bảng màu của hình

Bất kể dùng dạng nào, các hình đều chiếm một phần dải thông. Để giảm thời gian c ần thi ết
cho một hình truyền qua đường dây, bạn phải cắt bớt l ượng d ữ liệu dùng để bi ểu di ễn hình đó.
Rất may, hầu hết các chương trình đồ hoạ phổ biến trên thị trường (Adobe Photoshop,
CorelDraw!, Fractal Design Painter...) cũng như nhiều chương trình đ ồ hoạ thuộc ph ần m ềm
dùng chung khác, đều cho phép bạn giảm nhỏ kích thước t ập tin một cách đáng k ể b ằng cách
giảm bớt số lượng màu khác, hay palette (bảng màu) dùng để biểu th ị một hình.

Chính bạn cũng có thể tự tìm được khả năng sử dụng dưới 256 màu trong hình ảnh c ủa
mình. Bằng cách loại bỏ những màu không cần thiết ra khỏi b ảng màu, b ạn s ẽ b ảo toàn đ ược
không gian lưu trữ và giảm bớt được thời gian tải xuống. Một cách khác đ ể thu g ọn b ảng mày
của hình là hạn chế số lượng các sắc thái của mọi màu được s ử dụng. Chẳng h ạn, thay vì ph ải
có 16 sắc thái khác nhau của màu vàng trong một hình, b ạn có thể thu nh ỏ b ẳng màu ch ỉ h ỗ tr ợ
ba sắc vàng. Nếu áp dụng kỹ thuật này cho t ất cả các màu, bạn có th ể thu nh ỏ b ảng màu c ủa
một hình, đồng thời rút gọn một cách đáng kể kích thước t ập tin đó.

Dĩ nhiên có một sự trả giá giữa chất lượng hình và kích thước l ưu trữ. Tuy nhiên, b ạn có th ể
thu gọn bảng màu một cách đáng kể mà không ảnh hưởng xấu đến chất lượng hình.

Chọn GIF hay JPEG

Khi bổ sung hình vào trang Web của mình, bạn phải chọn d ạng để h ỗ trợ. Java hỗ trợ c ả hai
dạng GIF và JPEG, nhưng có một số yếu tố làm cho bạn thích dùng cái này h ơn cái kia.
Sử dụng các hình GIF có một số điểm lợi. Đối với những người mới bắt đ ầu, h ầu h ết các
chương trình đồ hoạ, kể cả các tiện ích của phần mềm dùng chung, đều h ỗ trợ d ạng ph ổ bi ến
này, cho nên không bao giờ bạn phải mất tiền cho các công cụ giúp b ạn hình thành và biên t ập
các hình theo dạng này. Trong thực tế, GIF là dạng đồ hoạ phổ bi ến nhất đ ược dùng trên Web
hiện nay. Hơn nữa, dạng GIF có hiệu quả cao và có tính năng nén bên trong làm cho các hình
ảnh tương đối nhỏ. Cuối cùng, GIF hỗ trợ transparency và interlacing là các tính năng có th ể
nâng cao rất nhiều sự hấp dẫn của applet.

*Thực hiện transparency với GIF

Transparency (sự trong suốt) cho phép người nghệ sĩ đồ hoạ có thể đ ưa b ất kỳ màu nào vào
trong hình như thể nó là trong suốt. Khi được đưa ra trên màn hình, màu này không đ ược tiêu
biểu bằng tất cả các màu trong bảng màu, kể cả màu nền của hình đó. Kết quả là chúng có th ể
không hấp dẫn lắm - trừ trường hợp màu của các phần này phù hợp một cách chính xác v ới n ền
bên dưới. Do vậy, dạng GIF là sự lựa chọn duy nhất đối với các hình c ần phải có m ột ph ần "có
thể nhìn xuyên qua".

Đáng tiếc là không phải tất cả các applet Java đều biết cách hoạt động với các hình trong
suốt. cho nên, dù bạn đã đi hết quá trình vất vả của vi ệc t ạo ra hình GIF trong su ốt (đôi khi b ạn
phải dùng đến những tiện ích đặc biệt để làm), các hình của b ạn vẫn có th ể hi ện th ị c ả màu
nền, tuỳ vào loại applet mà bạn dùng. Kết quả là bạn sẽ phải dùng các applet có kh ả năng h ỗ
trợ hình trong suốt khi được phép chọn. Làm thế nào để biết một applet hỗ trợ hình trong su ốt?
Bạn sẽ phải hỏi chính người đã biên soạn ra applet, hoặc đ ọc các tài li ệu đi kèm v ới các applet
đó. Cũng có thể dùng thử rồi tự nhận xét.

Đôi khi bạn không được lựa chọn - chỉ có thể tìm thấy một applet đúng v ới nh ững gì b ạn
muốn, nhưng lại không hỗ trợ hình trong suốt. Trong trường hợp này, cách giải quy ết là s ử d ụng
một chương trình đồ hoạ để thay đổi các hình mà applet đó s ẽ dùng, thi ết l ập m ột màu n ền
đúng như màu của trang Web mà nó sẽ được hiển thị trên đó. Theo cách này, khi m ỗi hình đ ược
hiển thị, nó sẽ xuất hiện dưới dạng trong suốt mặc dù thực t ế không ph ải - ch ỉ vì nó có màu n ền
giống như màu trang Web mà thôi.

Thiết lập màu trong suốt và chọn màu nền cho hình của bạn đều là ch ức năng c ủa ch ương
trình đồ hoạ mà bạn tình cờ sử dụng. Để tìm cách xây dựng hình trong suốt hoặc đ ặt trước m ột
màu nền cụ thể cho nó, bạn hãy tham khảo tài li ệu thuyết minh của ch ương trình đó.

Mặc dù hiện nay chưa, nhưng tất cả các applet rồi sẽ hỗ trợ cho hình trong suốt. Vì b ản thân
ngôn ngữ lập trình Java không tạo điều kiện dễ dàng để các nhà lập trình có th ể h ỗ tr ợ tính
năng trong suốt trong các applet của mình, nên nhiều nhà l ập trình không th ực hi ện vi ệc này.
Tuy nhiên, trong một tương lại gần, ngôn ngữ lập trình Java sẽ đ ược cải tiến để có nhi ều tính
năng hơn nữa so với hiện nay. Lúc đó, khoảng cuối 1996, khả năng h ỗ trợ đ ối v ới hình trong
suốt sẽ được xây dựng trực tiếp trong ngôn ngữ này. Và nếu điều đó là hiện th ực, thì t ất c ả các
applet được biện soạn từ thời điểm này về sau sẽ hỗ trợ đối với các hình trong suốt.

*Thực hiện interlacing với GIF

Interlacing (xen kẽ) là một tính năng độc đáo khác cho dạng GIF, nh ưng khác với s ự trong
suốt, nó được tất cả các applet hỗ trợ. Sự xen kẽ cho phép các hình ảnh xuất hi ện d ần trên màn
hình trong quá trình chúng vẫn đang đi qua đường dây, ng ười xem không ph ải đ ợi cho đ ến khi
toàn bộ hình được truyền cong. Hiệu ứng này cũng t ương tự như khi quan sát sự hi ện hình c ủa
bức ảnh chụp Polaroid; bạn có ý tưởng về bức ảnh trước kh nó được hiện hình xong.
Vì tính năng xen kẽ cung cấp cho người dùng Web có cái để xem trong khi hình đang tr ở nên
rõ dần lên, cho nên họ không bỏ qua quá trình này để chuyển đi nơi khác. Nhi ều ng ười s ẽ dán
mắt vào để xem hình ảnh đàn hiện dần, bị mê hoặc bởi sự kỳ di ệu của nó.

*Có nhiều màu hơn JPEG

Vì dạng GIF hỗ trợ cho hình trong suốt lẫn hình xen k ẽ, ngoài ra nó là dạng m ặc định cho đ ồ
hoạ Web nói chung, cho nên bạn sẽ thường nhận thấy chọn nó cho các applet c ủa mình không
tốt bằng JPEG.

Dù thế nào đi nữa thì các hình GIF hiện nay cũng bị hạn chế trong ph ạm vi 256 (8bit) màu.
Mặc dù một ngày nó đó sẽ có nâng cấp cho dạng này, nhưng t ại thời đi ểm vi ết quy ển sách này
(cuối 1996), bạn không thể dùng các hình GIF để hi ện thị s ố l ượng màu nhi ều h ơn s ố đó.
Ngược lại, dạng JPEG hỗ trợ cho trên 16 triệu (24 bit) màu khác nhau. ở nơi nào nh ất thi ết ph ải
có hơn 256 màu trong một hình thì nhất thiết phải dùng dạng JPEG.

Mặc dù JPEG có vẻ như là một chọn lựa phù hợp khi cần dùng h ơn 256 màu, nh ưng b ản
phải cân nhắc một điều là bất kỳ lúc nào applet cũng chạy trong các h ệ máy Windows, m ọi hình
ảnh mà nó dùng đều được giảm xuống 256 màu trước khi hiển thị! Đây là m ột vấn đề đ ối v ới
các applet Java đang chạy trên máy có cơ sở Windows - nhất định sẽ đ ược khắc ph ục trong
tương lai khi phiên bản nâng cấp Java được phát hình cho các hệ th ống máy này. còn hi ện nay,
dù bạn có sử dụng các hình ảnh JPEG đi nữa thì những chi ti ết đẹp c ủa chúng cũng b ị vô d ụng
đối với người dùng Web trên hệ máy Windows.

*Chiếm ít không gian hơn với JPEG

Một quy tắc chung; phải duy trì tổng số tài liệu được t ải xuống cho mỗi trang (các t ập văn
bản, đồ hoạ, âm thanh, các applet...) luôn luôn dưới 250K. V ậy làm cách nào đ ể bi ết m ột t ập tin
lớn nhỏ ra sao?

-Người dùng Macitosh có thể đến với Finder, điểm sang tập tin đó, rồi ch ọn File-Get Info.

-Người dùng Windows thì đến với Windows Explorer, nhấn chuột lên t ệp tin b ằng phím bên
phải, rồi chọn Properties từ menu vừa xuất hiện.

Dĩ nhiên các kỹ thuật này chỉ cho bạn biết kích cỡ của một t ập tin, b ạn ph ải tiến hành l ặp l ại
đối với từng tập tin xuất hiện trên trang Web của mình rồi tổng cộng t ất cả s ố li ệu đó l ại. Ngoài
ra, bạn cũng có thể chọn Get Info (Mac) hoặc Properties (Windows) trên thư mục ch ứa trang
của bạn, chứa applet, và tất cả các tập tin đồ hoạ cũng như âm thanh mà nó s ử d ụng (gi ả thi ết
rằng tất cả chúng đều nằm trong cùng một thư mục). Bạn phải bảo đ ảm th ư m ục này ch ỉ ch ứa
các tập tin được dùng trong trang đó - kích thước được báo cáo sẽ bao gồm m ọi t ập tin ch ứa
trong thư mục này.

Nếu bạn có một số lượng lớn đồ hoạ và có tổng cộng hơn 250K tài liệu dùng trong trang
Web, bạn phải tính đến việc sử dụng dạng JPEG để đạt mức độ nén cao nhất. Vì các hình ảnh
có hơn 100 màu sẽ được nén hiệu quả hơn khi. ở dạng JPEG so với GIF, cho nên m ục tiêu đ ầu
tiên mà các hình này phải nhằm vào là giữ được hầu hết màu sắc đối với JPEG.

Sau khi đã thu hẹp bảng màu và nén từng hình sẽ xuất hiện trong trang c ủa b ạn (dù là m ột
bộ phận của trang cũ dùng HTML, hay chỉ được dùng bởi applet), b ạn ph ải tính toán l ại t ổng
lượng bộ nhớ mà trang của bạn sẽ chiếm: Nếu kích thước t ổng cộng của trang l ớn h ơn 250K,
bạn phải xem xét một cách nghiêm túc việc giảm bớt lượng tài li ệu dùng trên nó. B ạn cũng có
thể giám bớt kích thước của các hình, cắt bỏ toàn bộ các tài li ệu d ư th ừa. Và dĩ nhiên, lúc nào
bạn cũng có thể sử dụng dạng JPEG với mức độ nén cao nhất đối với t ất cả các hình. Nh ưng
phải nhớ rằng, nếu dùng dạng JPEG, bạn sẽ mất cả khả năng hình trong suốt l ẫn kh ả năng
hình xen kẽ có sẵn trong GIF.

*Lưu ý đến các hệ thống máy của khách đến thăm

Điều cân nhắc cuối cùng của bạn khi lựa chọn dạng là thi ết bị của nh ững ng ười dùng thuộc
loại nào. Nếu bạn vẫn thích sử dụng các hình trong trang Web và trong các applet có ch ứa h ơn
256 màu, thì phải chú ý đến tình trạng đa s ố người dùng Web không có trong tay lo ại máy tính
có thể hiển thị quá 256 màu. Thực tế, nhiều hệ máy nối với Web th ậm chí không hi ển thị n ổi
quá 16 màu. Kết quả là những hình ảnh đầy đủ màu sắc tuyệt đẹp của b ạn s ẽ b ị thu hẹp x ấu xí
đến mức đáng thương haị trên các máy đó. Để tránh thảm k ịch này, b ạn hãy đ ầu t ư thời gian đ ể
giảm bớt bảng màu của các hình càng nhiều càng tốt, ngay t ừ đầu.

Mặc dù không cần phải bỏ thật nhiều thời gian để cố làm phù h ợp với các h ệ thống máy ch ất
lượng thấp, nhưng bạn nên giả thiết rằng phần lớn người dùng Web chỉ có th ể xem đến 256
màu. Nếu bạn đồng ý như vậy thì việc lựa chọn giữa JPEG và GIF sẽ trở nên rất dễ dàng.


Java, ngôn ngữ lập trình và ứng dụng

Java, đó là một ngôn ngữ lập trình mới xuất hiện, một cuộc cách mạng trong công ngh ệ
phần mềm. Trong mấy tháng nay, khi bạn lướt trên các trang web, vào các máy tìm ki ếm, xem
các nhóm thảo luận, đọc các báo, đâu đâu cũng thấy nhắc t ới Java. Ng ười thì cho r ằng, Java
cũng như các ngôn ngữ khác, chẳng có gì đặc biệt và thú vị và đ ưa ra danh sách các y ếu đi ểm,
thiếu sót, lỗi lầm và những lời giải thích dài dằng dặc và cũng khó hiểu vô cùng. Trong khi đó,
phần đông người sử dụng, lập trình viên, các nhà sản xuất ph ần mềm l ại ưa thích Java, nhi ều
công ty đã công bố kế hoạch phát triển các sản phẩm phần mềm của mình d ựa trên nền t ảng
Java, các báo, nhóm thảo luận về Java, lập trình Java và m ột s ố vấn đề liên quan nở r ộ kh ắp
nơi. Còn ý kiến của bạn về vấn đề này như thế nào?

Hãy cùng xem xét một số nhận định về Java và một vài ngôn ng ữ l ập trình khác. Nh ư các
bạn đã biết, các ngôn ngữ lập trình được ra đời từ rất lâu, và tính cho đ ến nay đã có t ới hàng
chục loại khác nhau. Tuy nhiên số này được phân chia ra làm 2 loại, các ngôn ng ữ l ập trình b ậc
thấp và các ngôn ngữ lập tnình bậc cao. Những ngôn ngữ lập trình b ậc thấp, (đi ển hình nh
assembler) hỗ trợ rất ít cho ngời sử dụng, các câu lệnh thường khó hiểu vì nó đòi h ỏi b ạn ph ải
trực tiếp điều khiển việc giao tiếp với máy và các ngôn ngữ bậc cao (có hỗ trợ cho ng ời l ập trình
thông qua chơng trình dịch và một số môđun có sẵn - chẳng h ạn nh ư Turbo Pascal, C, Java...).
Tất nhiên nếu phải chọn lựa giữa ngôn ngữ lập trình bậc thấp và ngôn ng ữ l ập trình bậc cao,
hầu hết các lập trình viên sẽ chọn giải pháp thứ hai vì họ s ẽ tiết kiệm đ ợc nhi ều th ời gian, công
sức và đạt hiệu quả cao hơn (ví dụ như phải viết một chương trình đ ể truyền file gi ữa 2 máy qua
mạng điện thoại, với ngôn ngữ assembler bạn cần phải có một nỗ l ực cỡ Hécquyn, với khoảng
vài trăm dòng lệnh trong khi đó, nếu bạn thông thạo Java, b ạn sẽ thấy đi ều này ch ẳng có gì khó
khăn cả - đơn giản là viết vài chục dòng lệnh mà thôi).

Liệu Java có khó học hơn assembler không? Điều này còn tuỳ thuộc vào quan đi ểm và
cách học tập của mỗi người. Cái khó của assembler là phải hiểu được cơ ch ế cấp phát, s ắp xếp
bộ nhớ, điều khiển các biến, các vòng lặp của bộ xử lý, còn với Java, cái khó lại là hi ểu đ ược
cách thức lập trình hướng đối tượng, các trường, xử lý s ự kiện, đi ều khiển đa luồng... Assembler
có ưu thế trong việc viết những phần mềm yêu cầu nhỏ, nhanh, không m ầu mè. V ới xu th ế ngày
càng phát triển và thịnh hành của giao diện đồ hoạ, đa nhi ệm, xử lý đa luồng và t ương tác gi ữa
các hệ điều hành với nhau, hệ điều hành DOS dần dần bị lãng quên và assembler cũng v ậy.
Nếu bạn chưa biết gì về lập trình mạng cũng như chưa biết gì về Java, đây s ẽ là th ời đi ểm t ốt
để bạn bắt đầu học tập. Đầu tiên, để có được những kiến thức cơ bản về Java, bạn nên tìm đ ọc
các bài báo nói về vấn đề này trên tạp chí PCWorld - Thế giới vi tính (tôi không nghĩ r ằng nh ững
bài báo này là một tài liệu tốt cho bạn trong những bước khởi đầu, tuy nhiên, đây là m ột trong
những bài/sách nói về Java được xuất bản theo tiếng Việt hiện nay. Ph ải nói th ật r ằng, các sách
nói về Java đã được dịch ra tiếng Việt có thể chỉ đếm trên 1 bàn tay). Chính vì thế, tôi khuyên
các bạn nên tập đọc các tài liệu bằng tiếng Anh và nếu có thể, nên tham gia vào m ột s ố nhóm
thảo luận về đề tài Java. Tất nhiên, nếu bạn quyết tâm, ngôn ng ữ s ẽ không là một v ấn đ ề quan
trọng, hãy cài một từ điển Anh-Việt nào đó và bắt đầu xem các trang v ới ch ủ đề Java t ại đ ịa ch ỉ
www.yahoo.com. Hãy bát đầu đến với Java ngay từ bây giờ.
Đề thi vào lớp 10 môn Toán |  Đáp án đề thi tốt nghiệp |  Đề thi Đại học |  Đề thi thử đại học môn Hóa |  Mẫu đơn xin việc |  Bài tiểu luận mẫu |  Ôn thi cao học 2014 |  Nghiên cứu khoa học |  Lập kế hoạch kinh doanh |  Bảng cân đối kế toán |  Đề thi chứng chỉ Tin học |  Tư tưởng Hồ Chí Minh |  Đề thi chứng chỉ Tiếng anh
Theo dõi chúng tôi
Đồng bộ tài khoản