Monday, November 19, 2007

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!

No comments: