Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
474 KB
Nội dung
Đồ án tốt nghiệp Lời cảm ơn Em xin chân thành cảm ơn đến các thầy giáo, cô giáo đã giảng dạy, trang bị cho em những kiến thức nền tảng trong thời gian qua. Em xin chân thành cảm ơn thầy Lê Hồng Trang đã hớng dẫn em thực hiện đồ án này. Nhân đây con cũng xin cảm ơn bố mẹ và gia đình đã nuôi dạy con nên ngời, và luôn là chỗ dựa tinh thần vững chắc giúp con vợt qua mọi khó khăn thử thách trong cuộc sống. Em xin chân thành cảm ơn các anh chị thân hữu và các bạn đã tận tình đóng góp ý kiến và giúp đỡ để mình có thể thực hiện tốt đồ án này. Vinh, tháng 5 năm 2010 SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 1 Đồ án tốt nghiệp Lời nói đầu Ngày nay, ứngdụng công nghệ thông tinvà việc tin học hoá đợc xem là một trong những yếu tố mang tính quyết định trong hoạt động của các tổ chức nhà nớc, cũng nh các công ty cổ phần. Nó đóng vai trò hết sức quan trọng và có thể tạo ra những bớc phát triển mạnh mẽ. Nhu cầu trao đổi thông tin của con ngời cũng rất lớn và thông qua nhiều hình thức khác nhau nh trao đổi với nhau bằng th từ, điện thoại, mạng máy tính. Với tốc độ phát triển của công nghệ thông tin hiện nay có nhiều phần mềm trao đổi thông tin trên mạng Internet đã ra đời và đợc sử dụng rộng rãi nh: Google Talk, Yahoo! Messenger, Skype, Bên cạnh đó, mạng LAN đã có nhiều tiến bộ vợt bậc và ngày càng phổ biến hơn trong đời sống sinh hoạt. Điều này làm cho nhu cầu liên lạc và trao đổi thông tinquamạng LAN ngày càng lớn hơn. Chính vì vậy chơng trình chatvàtruyềntệptinquamạng LAN đợc xâydựng để đáp ứng phần nào những nhu cầu cấp thiết đó. Nội dung đồ án đợc chia thành 7 chơng: Chơng 1: Mở đầu giới thiệu về lý do, mục đích chọn đề tài, đối tợng và phạm vi nghiên cứu. Chơng 2: Môhình khách/ chủ (Client/ Server) Tìm hiểu về môhình Client/ Server. Nêu các quá trình xử lý Một số u điểm của môhình Chơng 3: Tìm hiểu về giao thức TCP/ IP Chơng 4: Tìm hiểu về giao thức FPT Chơng 5: Giới thiệu các vấn đề liên quan tới th viện .Net, đa ra các ph- ơng thức, thuộc tính của các lớp cơ bản đợc sử dụng hỗ trợ lập trình. SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 2 Đồ án tốt nghiệp Chơng 6: Chơng trình ứngdụngChatvàtruyềntệp tin. Đa ra một số hàm và giao diện khi thực hiện một số bớc của chơng trình. Chơng 7: Kết luận. Tóm tắt chức năng đã xâydựngvà đề ra hớng phát triển cho tơng lai. Về nội dungvàhình thức của bài toán không thể tránh khỏi những thiếu sót, em mong nhận đợc sự đóng góp ý kiến của thầy cô và các bạn. Em xin chân thành cảm ơn. SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 3 Đồ án tốt nghiệp Chơng 1: Mở đầu 1.1. Lý do chọn đề tài Hiện nay, mạng LAN đã có nhiều tiến bộ vợt bậc và ngày càng phổ biến hơn trong đời sống sinh hoạt. Điều này làm cho nhu cầu liên lạc và trao đổi thông tinquamạng LAN ngày càng lớn hơn. Chính vì vậy chơng trình chatvàtruyềntệptinquamạng LAN đợc xâydựng để đáp ứng phần nào những nhu cầu cấp thiết đó. 1.2. Mục đích của đề tài Xâydựng chơng trình chatvàtruyềntệptinquamạng LAN theomôhình Client/ Server. 1.3. Đối tợng và phạm vi nghiên cứu 1.3.1. Đối tợng nghiên cứu Tìm hiểu cơ chế hoạt động của Socket trong .NetFramwork từ đó viết ứngdụngchatvàtruyềntệp tin. 1.3.2. Phạm vi nghiên cứu Chơng trình chatvàtruyềntệptin đợc xâydựng với khả năng chat bằng văn bản vàtruyềntệptin giữa các user. SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 4 Đồ án tốt nghiệp Chơng 2 MôHình Khách/ Chủ (Client/ Server) 2.1. MôhìnhMôhình đợc phổ biến nhất và đợc chấp nhận rộng rãi trong các hệ thống phân tán là môhình Client/Server. Trong môhình này sẽ có một tập các tiến trình mà mỗi tiến trình đóng vai trò nh là một trình quản lý tài nguyên cho một tập hợp các tài nguyên cho trớc và một tập hợp các tiến trình client trong đó mỗi tiến trình thực hiện một tác vụ nào đó cần truy xuất tới tài nguyên phần cứng hoặc phần mềm dùng chung. Bản thân các trình quản lý tài nguyên cần phải truy xuất tới các tài nguyên dùng chung đợc quản lý bởi một tiến trình khác, vì vậy một số tiến trình vừa là tiến trình client vừa là tiến trình Server. Các tiến trình phát ra các yêu cầu tới các Server bất kỳ khi nào chúng cần truy xuất tới một trong các tài nguyên của các Server. Nếu yêu cầu là đúng đắn thì Server sẽ thực hiện hành động đợc yêu cầu và gửi một đáp ứng trả lời tới tiến trình Client. Môhình Client/ Server cung cấp một cách tiếp cận tổng quát để chia sẻ tài nguyên trong các hệ thống phân tán. Môhình này có thể đợc cài đặt bằng rất nhiều môi trờng phần cứng và phần mềm khác nhau. Các máy tính đợc sử dụng để chạy các tiến trình Client/ Server có nhiều kiểu khác nhau và không cần thiết phải phân biệt giữa chúng; cả tiến trình Client và tiến trình Server đều có thể chạy trên cùng một máy tính. Một tiến trình Server có thể sử dụng dịch vụ của một Server khác. Môhìnhtruyềntin Client/ Server hớng tới việc cung cấp dịch vụ. Quá trình trao đổi dữ liệu bao gồm: 1. Truyền một yêu cầu từ tiến trình Client tới tiến trình Server 2. Yêu cầu đợc Server xử lý 3. Truyền đáp ứng cho Client SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 5 Đồ án tốt nghiệp Môhìnhtruyềntin này liên quan đến việc truyền hai thông điệp và một dạng đồng bộ hóa cụ thể giữa Client và Server. Tiến trình Server phải nhận thức đợc thông điệp đợc yêu cầu ở bớc một ngay khi nó đến và hành động phát ra yêu cầu trong Client phải đợc tạm dừng (bị phong tỏa) và buộc tiến trình Client ở trạng thái chờ cho tới khi nó nhận đợc đáp ứng do Server gửi về ở bớc ba. Môhình Client/ Server thờng đợc cài đặt dựa trên các thao tác cơ bản là gửi (send) và nhận (receive). Hình 1 : Môhìnhtruyềntin Client/ Server Quá trình giao tiếp Client và Server có thể diễn ra theo một trong hai chế độ: bị phong tỏa (blocked) và không bị phong tỏa (non-blocked). + Chế độ bị phong tỏa (blocked): SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 6 Đồ án tốt nghiệp Trong chế độ bị phong tỏa, khi tiến trình Client hoặc Server phát ra lệnh gửi dữ liệu (send), việc thực thi của tiến trình sẽ bị tạm ngừng cho tới khi tiến trình nhận phát ra lệnh nhận dữ liệu (receive). Tơng tự đối với tiến trình nhận dữ liệu, nếu tiến trình nào đó (Client hoặc Server) phát ra lệnh nhận dữ liệu, mà tại thời điểm đó cha có dữ liệu gửi tới thì việc thực thi của tiến trình cũng sẽ bị tạm ngừng cho tới khi có dữ liệu gửi tới. + Chế độ không bị phong tỏa (non-blocked): Trong chế độ này, khi tiến trình Client hay Server phát ra lệnh gửi dữ liệu thực sự, việc thực thi của tiến trình vẫn đợc tiến hành mà không quan tâm đến việc có tiến trình nào phát ra lệnh nhận dữ liệu đó hay không. Tơng tự cho trờng hợp nhận dữ liệu, khi tiến trình phát ra lệnh nhận dữ liệu, nó sẽ nhận dữ liệu hiện có, việc thực thi của tiến trình vẫn đợc tiến hành mà không quan tâm đến việc có tiến trình nào phát ra lệnh gửi dữ liệu tiếp theo hay không. 2.2. Các kiến trúc Client/ Server 2.2.1. Client/ Server hai tầng: Kiến trúc Client/ Server đơn giản nhất là kiến trúc hai tầng. Trong thực tế hầu hết các kiến trúc Client/ Server là kiến trúc hai tầng. Một ứngdụng hai tầng cung cấp nhiều trạm làm việc với một tầng trình diễn thống nhất, tầng này truyềntin với tầng lu trữ dữ liệu tập trung. Tầng trình diễn thông thờng là Client, và tầng lu trữ dữ liệu là Server. Hầu hết các ứngdụng Internet nh là Email, Telnet, FPT thậm chí là cả Web là các ứngdụng hai tầng. Phần lớn các lập trình viên trình ứngdụng viết các ứngdụng Client/ Server có xu thế sử dụng kiến trúc này.Trong bài tập của chúng ta cũng có thể sử dụngmôhình này trong quá trình truyền với một số chọn lọc phù hợp với ứngdụng của chúng ta. SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 7 Đồ án tốt nghiệp Trong ứngdụng hai tầng truyền thống, khối lợng công việc xử lý đợc dành cho phía Client trong khi Server chỉ đơn giản đóng vai trò nh là chơng trình kiểm soát luồng vào ra giữa ứngdụngvà dữ liệu. Kết quả là không chỉ hiệu năng của ứngdụng bị giảm đi do tài nguyên hạn chế của PC, mà khối l- ợng dữ liệu truyền đi trên mạng cũng tăng theo. Khi toàn bộ ứngdụng đợc xử lý trên một PC, ứngdụng bắt buộc phải yêu cầu nhiều dữ liệu trớc khi đa ra bất kỳ kết quả xử lý nào cho ngời dùng. Nhiều yêu cầu dữ liệu cũng làm giảm hiệu năng của mạng. Một vấn đề thờng gặp khác đối với ứngdụng hai tầng là vấn đề bảo trì. Chỉ cần một thay đổi nhỏ đối với ứngdụng cũng cần phải thay đổi lại toàn bộ ứngdụng Client và Server. Hình 2 : . Môhình Client/ Server hai tầng 2.2.2. Client/ Server ba tầng: Ta có thể tránh đợc các vấn đề của kiến trúc Client/ Server hai tầng bằng cách mở rộng các kiến trúc ba tầng. Một kiến trúc ba tầng có thêm một tầng mới tách biệt việc xử lý dữ liệu ở vị trí trung tâm. SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 8 Đồ án tốt nghiệp Hình 3 : . Môhình Client/ Server ba tầng Theo kiến trúc ba tầng, một ứngdụng đợc chia thành ba tầng tách biệt nhau về mặt logic. Tầng đầu tiên là tầng trình diễn thờng bao gồm các giao diện đồ họa. Tầng thứ hai, còn đợc gọi là tầng trung gian hay tầng tác nghiệp. Tầng thứ ba chứa dữ liệu cần cho ứng dụng. Tầng thứ ba về cơ bản là chơng trình thực hiện các lời gọi hàm để tìm kiếm dữ liệu cần thiết. Tầng trình diễn nhận dữ liệu và định dạng nó để hiển thị. Sự tách biệt giữa chức năng xử lý với giao diện đã tạo nên sự linh hoạt cho việc thiết kế ứng dụng. Nhiều giao diện ngời dùng đợc xâydựngvà triển khai mà không làm thay đổi logic ứng dụng. Tầng thứ ba chứa dữ liệu cần thiết cho ứng dụng. Dữ liệu này có thể bao gồm bất kỳ nguồn thông tin nào, bao gồm cơ sở dữ liệu nh Oracale, SQL Server hoặc tài liệu XML. 2.2.3. Client/ Server n tầng Kiến trúc n-tầng đợc chia thành các tầng nh sau: + Tầng giao diện ngời dùng: quản lý tơng tác của ngời dùng với ứng dụng. + Tầng logic trình diễn: Xác định cách thức hiển thị giao diện ngời dùngvà các yêu cầu của ngời dùng đợc quản lý nh thế nào. + Tầng logic tác nghiệp: Môhình hóa các quy tắc tác nghiệp, + Tầng các dịch vụ hạ tầng: Cung cấp một chức năng bổ trợ cần thiết cho ứngdụng nh các thành phần (truyền thông điệp, hỗ trợ giao tác). SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 9 Đồ án tốt nghiệp 2.3. Tiến trình xử lý Trong môhình khách chủ, ngoài hệ thống mạng máy tính phải có còn đòi hỏi việc tổ chức các xử lý bên dới sao cho hiệu quả, đảm bảo các yêu cầu (request) từ các máy trạm phải đợc máy chủ phúc đáp (response) một cách nhanh chóng, không làm tắc nghẽn hệ thống. Khi thiết kế các ứngdụngtheomôhình khách chủ, ngời ta chia các xử lý ra làm hai nhánh: nhánh máy trạm và nhánh máy chủ. 2.3.1. Nhánh máy trạm (Client side) Các ứngdụng sẽ thực hiện các công việc đọc và hiển thị dữ liệu hiện có bên trong cơ sở dữ liệu, tính toán dữ liệu đang hiển thị trên các màn hìnhứng dụng, in dữ liệu ra. Các ngôn ngữ dùng để xâydựngứngdụng là Delphi, Visual Basic, C+ +, C# . Các ứngdụng này còn cho phép ng ời dùng có thể thực hiện các thao tác xóa, thêm, sửa dữ liệu hiện có bên trong cơ sở dữ liệu bên nhánh máy chủ. Các ứngdụng khi xâydựng nên tránh việc đọc toàn bộ dữ liệu của bảng (Table) khi truy xuất dữ liệu từ máy chủ mà chỉ nên lấy về đúng các thong tin cần thiết cho các xử lý. Việc này làm giảm đi lợng thông tin lu thông trên mạng. 2.3.2. Nhánh máy chủ (Server side) Các xử lý đợc thực hiện trực tiếp trên máy chủ. Để đảm bảo việc bảo mật (security), những ngời dùng trên mạng phải đợc cấp phát quyền truy cập thì mới có thể truy xuất đợc các dữ liệu dùng chung. Việc cập nhật dữ liệu cho phép đồng thời cùng lúc giữa những ngời dùng hiện hành trên mạng, ví dụ nh máy chủ cho phép cùng lúc cả hai ngời dùng có thể cập nhật thông tin của khách hàng trong bảng khách hàng. Việc sao lu dữ liệu (backup data) đợc tự động để đảm bảo dữ liệu không bị mất trong các trờng hợp xấu xảy ra. SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT 10