tiểu luận môn lập trình mạng viết chương trình cài đặt thuật toán lamport trên n server

28 639 6
tiểu luận môn lập trình mạng viết chương trình cài đặt thuật toán lamport trên n server

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC & ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG ~~~oOo~~~ TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG ĐỀ TÀI Giáo viên hướng dẫn: PGS.TS LÊ VĂN SƠN Học viên thực hiện: TRẦN NGỌC CHINH Lớp: Khoa học máy tính – K24 Đà Nẵng, tháng 05/2012 Tiểu luận môn Lập trình mạng LỜI NÓI ĐẦU Công nghệ: bí quyết và giải pháp . Có lẽ đây là câu Slogan đã quá quen thuộc với mọi người trong giai đoạn hiện nay. Và công nghệ thông tin chính là giải pháp cho hầu hết các công việc trong kỷ nguyên này, đó là kỷ nguyên của nền văn minh dựa trên cơ sở của công nghiệp tri thức. Mở đầu cho cuộc cách mạng khoa học và công nghệ này là sự ra đời và phát triển ồ ạt của máy vi tính và các phương tiện xử lý thông tin khác. Cùng với sự phát triển nhanh chóng số lượng máy vi tính cũng như nhu cầu trao đổi thông tin trong mọi hoạt động xã hội loài người đòi hỏi sự phát triển đồng bộ các phương pháp truyền thông. Mạng máy tính ra đời làm cho thế giới của chúng ta “phẳng” ra và nhỏ lại. Trên thực tế, một xu hướng kỹ thuật mới được hình thành - xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin trên cơ sở mạng máy tính. Song để khai thác có hiệu quả toàn bộ hệ thống, vấn đề quan trọng hàng đầu cần phải tính đến là các tài nguyên và chiến lược khai thác, sử dụng chúng một cách tối ưu nhất. Bản thân người sử dụng thuần tuý không thể tự xây dựng nên chiến lược đó được, mà nó là chức năng chủ yếu của các hệ thống tin học phân tán đồng thời cũng chính là đối tượng nghiên cứu của báo cáo này. Phạm vi và nhiệm vụ nghiên cứu của đề tài là nghiên cứu vấn đề đồng bộ hóa thời gian, thuật toán lamport cải tiến, thiết kế đa server theo kiểu ngang hàng có khả năng phát và nhận thông điệp, xây dựng cấu trúc của các thông điệp, xây dựng chương trình sắp xếp các thông điệp đến căn cứ vào giá trị của đồng hồ lamport và chương trình giám sát trình tự sắp xếp tại các server trên màn hình. Về mặt bố cục, ngoài phần mở đầu, tài liệu tham khảo và mục lục, báo cáo được chia làm các phần sau:  Cở sở lý thuyết.  Đồng bộ hoá thời gian trong hệ phân tán.  Cài đặt thuật toán Lamport trên n Server.  Kết luận. Chân thành cám ơn Thầy giáo PGS.TS. Lê Văn Sơn và anh Đặng Hùng Vĩ đã định hướng và cung cấp kiến thức và tài liệu để tôi hoàn thành báo cáo này. HVTH: Trần Ngọc Chinh 1 Tiểu luận môn Lập trình mạng CHƯƠNG I CƠ SỞ LÝ THUYẾT I.1 Các khái niệm cơ bản I.1.1 Hệ thống tin học Hệ thống tin học (Informatics System) là hệ thống bao gồm hai phần cơ bản là phần cứng (hardware) hay là phần vật lý và phần mềm (software) là phần logic hay là chương trình gắn bó hữu cơ với nhau và có khả năng xử lý thông tin. Hệ thống tin học gồm ba thực thể: I.1.2 Hệ tin học phân tán Hệ tin học phân tán là hệ thống không chia sẻ bộ nhớ và đồng hồ. Điều đó cho phép phân biệt với một xu hướng tin học khác về phân tán các tính toán trên nhiều bộ xử lý hay vi xử lý của hệ thống đa bộ xử lý. Hệ tin học phân tán đòi hỏi hệ thống phần cứng của mình phải trang bị bộ nhớ cục bộ. Các bộ xử lý trao đổi với nhau thông qua các hệ thống đường truyền khác nhau như là cáp quang, điện thoại, cáp chuyên dụng, bus trao đổi, Hệ tin học phân tán gồm bốn thực thể: HVTH: Trần Ngọc Chinh Phần cứng Phần mềm Dữ liệu 2 Tiểu luận môn Lập trình mạng I.1.3 Tiến trình Tiến trình (Process) là khái niệm khá quen thuộc và là đối tượng nghiên cứu của hệ điều hành. Trong hệ phân tán ta chỉ xem xét và bổ sung đặc điểm hoạt động và truy cập của các tiến trình có nhu cầu truy cập tài nguyên dùng chung. Các đặc điểm đó là : o Các tiến trình được hình thành và điều khiển bởi hệ điều khiển duy nhất có nghĩa là nếu trong các thành phần tham gia hệ phân tán như mạng máy tính, các hệ tập trung, có thể có các hệ điều hành riêng với các tiến trình riêng của mình, thì chúng cũng bị phái sinh lại trong nội dung của tiến trình mới, phân tán. o Tiến trình là chương trình hay đoạn chương trình đang hoạt động trong hệ phân tán là đối tượng chủ yếu có nhu cầu tài nguyên phần cứng hay phần mềm để thực hiện các lệnh của mình. Tiến trình cần tài nguyên để phát triển. Về nguyên tắc, tất cả các tiến trình và tài nguyên được cung cấp là các đối tượng ở xa. o Các nguyên lý của hệ tập trung có thể nghiên cứu và áp dụng cho các tiến trình phân tán như dự phòng và chống bế tắc, chống xung đột, o Khi tiến trình được cung cấp tài nguyên có thể nó thực hiện ngay, nếu nó là đối tượng được gửi đến từ trước trên bộ xử lý (máy) cục bộ hoặc phải gửi đối tượng là tiến trình qua hệ thống đường truyền. o Việc cung cấp tài nguyên cho các tiến trình có thể thực hiện theo 2 cách trong hệ phân tán : • Thông qua hệ thống cung cấp chung cho toàn hệ như Controllor/Allocator. HVTH: Trần Ngọc Chinh Các hệ thống phần mềm Tập hợp phần cứng Hệ thống truyền thông Hệ thống dữ liệu 3 Tiểu luận môn Lập trình mạng • Thông qua Allocator cục bộ trên Server/Workstation bằng cách tham chiếu vào bảng trạng thái, ảnh của thông tin toàn cục. I.2 Đồng bộ hóa các tiến trình Đồng bộ hoá tiến trình được hiểu như là quá trình điều khiển tạo nên sự ăn khớp với nhau giữa tất cả các tiến trình khác nhau giúp cho hệ phân tán hoạt động nhịp nhàng, tin cậy và phòng tránh các sự cố kỹ thuật. I.2.1 Vấn đề tương tranh và hợp lực Trong tất cả các hệ thống tin học, ta cần phải nghiên cứu các công cụ đủ mạnh và hiệu quả để có thể đồng bộ hóa các tiến trình. Tính cấp thiết về mặt nguyên lý và kỹ thuật của vấn đề này thể hiện ở hai nguyên do cơ bản sau đây : 1. Các tiến trình kể cả các tiến trình xuất phát từ các ứng dụng độc lập muốn truy cập vào các tài nguyên với số lượng rất hạn chế hay truy cập vào thông tin dùng chung cùng một lúc gây nên hiện tượng truy cập tương tranh. Tương tranh là nguyên nhân chính của các xung đột giữa các tiến trình muốn truy cập vào các tài nguyên dùng chung. 2. Các tiến trình của cùng một hệ ứng dụng hoạt động theo kiểu hợp lực để giải quyết các bài tóan đặt ra và cho kết quả nhanh chóng nhất. Điều này cho phép tăng hiệu năng sử dụng thiết bị và hiệu quả hoạt động của chương trình. Hợp lực là nguyên nhân chính của sự tác động tương hỗ được lập trình giữa các tiến trình nhằm cho phép chúng tham gia vào các hành động chung. Sự tương tranh và hợp lực giữa các tiến trình đòi hỏi phải có trao đổi thông tin qua lại với nhau. Trong các hệ thống tập trung, điều đó được thực hiện nhờ thuật toán loại trừ tương hỗ thông qua các biến cùng tác động trong một vùng nhớ chung. Trong hệ tin học phân tán, các thông tin cần trao đổi thông qua các thông điệp bằng các kênh viễn thông. Một sự hoạt động gắn bó của các chương trình cung cấp phân tán quản lý trên cùng một tập hợp các tài nguyên chỉ đạt được nếu tuân thủ các qui tắc sau: STT Qui tắc 1 Các bộ cung cấp bắt buộc phải thực hiện cùng một giải thuật 2 Các bộ cung cấp đều nhận tất cả các thông điệp phát đi từ các tiến trình 3 Các thông điệp phải được xử lý cùng một trật tự như nhau trong các chương trình cung cấp. HVTH: Trần Ngọc Chinh 4 Tiểu luận môn Lập trình mạng Qui tắc cuối, nhấn mạnh đến sự thiết yếu phải có một trật tự duy nhất trên tập hợp các thông điệp của hệ. Trật tự này có thể được thực hiện thông qua việc hợp lực của các tiến trình cung cấp. Ở phần sau chúng ta nghiên cứu một số phương pháp sắp xếp nhằm xác lập một trật tự đảm bảo cho yêu cầu đồng bộ hóa. I.2.2 Vấn đề gắn bó dữ liệu Gắn bó dữ liệu là quá trình khi thực hiện trao đổi thông tin qua lại với nhau vào tại một thời điểm t nào đó thì giá trị các tiến trình phải giống nhau. Để hiểu rõ hơn về gắn bó dữ liệu ta xét bài toán bãi đỗ xe (Tr 157- Hệ tin học phân tán - L ê Văn Sơn – NXB ĐHQG TP HCM) I.2.3 Trật tự từng phần Cần chú ý rằng, trong các hệ thống tin học tập trung, vấn đề đồng bộ hoá được giải quyết thông qua cơ chế loại trừ tương hỗ. Cơ chế này cho phép sắp đặt (xác lập trật tự) hoàn toàn các sự kiện. Trong thực tiễn, nói một cách chính xác, có một hệ thống vấn đề về đồng bộ hoá chỉ đòi hỏi trật tự từng phần. Chính vì vậy trật tự hoá từng phần giữa các sự kiện mà các tiến trình của nó cần phải đồng bộ là vấn đề cần phải quan tâm giải quyết. Trong các hệ thống phân tán, việc đồng bộ hoá chỉ đặt ra duy nhất vấn đề thiết lập một trật tự giữa các sự kiện. Giữa các trạm khác nhau, trật tự đó chỉ có thể hiện được thông qua việc trao đổi các thông điệp với nhau. I.3 Mô hình Client/Server I.3.1 Giới thiệu về mô hình Client/Server Mô 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 HVTH: Trần Ngọc Chinh 5 Tiểu luận môn Lập trình mạng đề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ình truyền tin 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:  Truyền một yêu cầu từ tiến trình client tới tiến trình server  Yêu cầu được server xử lý  Truyền đáp ứng cho client Mô hình truyền tin 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ớ 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). 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): 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). HVTH: Trần Ngọc Chinh Response message Request message Reply Execution Wait Server Client 6 Tiểu luận môn Lập trình mạng 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 đó chưa 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. I.3.2 Các kiến trúc Client/Server Mô hình Client/Server 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 ứng dụ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ền tin với tầng lưu trữ dữ liệu tập trung. Tầng trình diễn thông thường là client, và tầng lưu trữ dữ liệu là server. Hầu hết các ứng dụng Internet như là email, telnet, ftp thậm chí là cả Web là các ứng dụng hai tầng. Phần lớn các lập trình viên trình ứng dụng viết các ứng dụng client/server có xu thế sử dụng kiến trúc này. Trong ứng dụ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 ứng dụng và dữ liệu. Kết quả là không chỉ hiệu năng của ứng dụ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ộ ứng dụng được xử lý trên một PC, ứng dụ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 ứng dụng hai tầng là vấn đề bảo trì. Chỉ cần một thay đổi nhỏ đối với ứng dụng cũng cần phải thay đổi lại toàn bộ ứng dụng client và server. HVTH: Trần Ngọc Chinh 7 Tiểu luận môn Lập trình mạng 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 kiến trúc thành 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. Theo kiến trúc ba tầng, một ứng dụ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ây dựng và 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. Kiến trúc 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ùng và 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 ứng dụng như các thành phần (truyền thông điệp, hỗ trợ giao tác). I.3.3 Lập trình phân tán với phương thức triệu gọi từ xa RMI I.3.3.1 Tổng quan RMI (Remote Method Invocation) là một cơ chế cho phép một đối tượng đang chạy trên một máy ảo Java này ( Java Virtual Machine) gọi các phương thức của một đối tượng đang tồn tại trên một máy ảo Java khác (JVM). Thực chất RMI là một cơ chế gọi phương thức từ xa đã được thực hiện và tích hợp trong ngôn ngữ Java. Vì Java là một ngôn ngữ lập trình hướng đối tượng, nên phương pháp lập trình trong RMI là phương pháp hướng đối tượng do đó các thao tác hay các lời gọi phương thức đều liên quan đến đối tượng. Ngoài ra, RMI còn cho phép một Client có thể gửi tới một đối tượng đến cho Server xử lý, và đối tượng này cũng có thể được xem là tham số cho lời gọi hàm từ xa, đối tượng này cũng có những dữ liệu bên trong và các hành vi như một đối tượng thực sự. HVTH: Trần Ngọc Chinh 8 Tiểu luận môn Lập trình mạng So sánh giữ gọi phương thức từ xa với các lời gọi thủ tục từ xa Gọi phương thức từ xa không phải là một khái niệm mới. Thậm chí trước khi ra đời lập trình hướng đối tượng phần mềm đã có thể gọi các hàm và các thủ tục từ xa. Các hệ thống như RPC (Remote Procedure Call) đã được sử dụng trong nhiều năm và hiện nay vẫn được sử dụng. Trước hết, Java là một ngôn ngữ độc lập với nền và cho phép các ứng dụng Java truyền tin với các ứng dụng Java đang chạy trên bất kỳ phần cứng và hệ điều hành nào có hỗ trợ JVM. Sự khác biệt chính giữa hai mục tiêu là RPC hỗ trợ đa ngôn ngữ, ngược lại RMI chỉ hỗ trợ các ứng dụng được viết bằng Java. Ngoài vấn đề về ngôn ngữ và hệ thống, có một số sự khác biệt căn bản giữa RPC và RMI. Gọi phương thức từ xa làm việc với các đối tượng, cho phép các phương thức chấp nhận và trả về các đối tượng Java cũng như các kiểu dữ liệu nguyên tố (premitive type). Ngược lại gọi thủ tục từ xa không hỗ trợ khái niệm đối tượng. Các thông điệp gửi cho một dịch vụ RPC được biểu diễn bởi ngôn ngữ XDR (External Data Representation): dạng thức biểu diễn dữ liệu ngoài. Chỉ có các kiểu dữ liệu có thể được định nghĩa bởi XDR mới có thể truyền đi. I.3.3.2 Mục đích của RMI • Hỗ trợ gọi phương thức từ xa trên các đối tượng trong các máy ảo khác nhau • Hỗ trợ gọi ngược phương thức ngược từ server tới các applet • Tích hợp mô hình đối tượng phân tán vào ngôn ngữ lập trình Java theo một cách tự nhiên trong khi vẫn duy trì các ngữ cảnh đối tượng của ngôn ngữ lập trình Java • Làm cho sự khác biệt giữa mô hình đối tượng phân tán và mô hình đối tượng cục bộ không có sự khác biệt. • Tạo ra các ứng dụng phân tán có độ tin cậy một cách dễ dàng • Duy trì sự an toàn kiểu được cung cấp bởi môi trường thời gian chạy của nền tảng Java • Hỗ trợ các ngữ cảnh tham chiếu khác nhau cho các đối tượng từ xa • Duy trì môi trường an toàn của Java bằng các trình bảo an và các trình nạp lớp. I.3.3.3 Kiến trúc RMI HVTH: Trần Ngọc Chinh 9 [...]... ki n logic đồng thời n Giá trị đồng hồ timestamp Thông điệp Ví dụ về thời gian logic Lamport HVTH: Tr n Ngọc Chinh 23 Tiểu lu n m n Lập trình mạng III.3 Kết quả chạy chương trình HVTH: Tr n Ngọc Chinh 24 Tiểu lu n m n Lập trình mạng HVTH: Tr n Ngọc Chinh 25 Tiểu lu n m n Lập trình mạng KẾT LU N Kết quả đạt được - N m được một ph n lý thuyết cơ b n về hệ ph n t n và lập trình mạng ph n t n - Tìm hiểu nguy n. .. LAMPORT TR N n SERVER (n > 3) III.1 Yêu cầu bài to n Viết chương trình cài đặt thuật to n Lamport tr n n • SERVER, n> 3 • Xây dựng đa server theo kiểu ngang hàng và có khả n ng phát và nh n thông điệp • Xây dựng cấu trúc các loại thông điệp trao đổi giữa các server • Xây dựng đo n chương trình sắp xếp các thông điệp đ n c n cứ vào giá trị đồng hồ Lamport • Xây dựng chương trình quan sát trình tự sắp... Ngọc Chinh 10 Tiểu lu n m n Lập trình mạng chiếu, tầng n y truy n tin một ph n của ph n mềm server được gọi là skeleton Skeleton truy n tin với chính server Theo hướng khác từ server đ n client thì luồng truy n tin được đi theo chiều ngược lại Cách tiếp c n có vẻ phức tạp nhưng ta không c n quan tâm đ n v n đề n y Tất cả đều được che dấu đi, người lập trình chỉ quan tâm đ n việc lập các chương trình có... nguy n lý đồng bộ hóa các ti n trình trong hệ tin học ph n t n - N m được thuật to n đồng bộ hóa các ti n trình Lamport và thuật to n Ricart-Agrawala - Xây dựng cấu trúc của các thông điệp - Thiết kế thành công đa server theo kiểu ngang hàng có khả n ng phát và nh n thông điệp - Cài đặt chương trình sắp xếp các thông điệp đ n c n cứ vào giá trị của đồng hồ lamport và chương trình giám sát trình tự... tượng khả tu n tự chạy tr n các hệ thống client Để quá trình truy n tin là trong suốt với người lập trình, truy n tin giữa client và server được cài đặt theo mô hình ph n tầng như hình vẽ dưới đây Chương trình khách Chương trình chủ Stub & Skeleton Hệ thống RMI Stub & Skeleton Tham chiếu từ xa Tham chiếu từ xa Tầng giao v n Ki n trúc ba tầng của RMI Đối với người lập trình, client dường như truy n tin... t n, chương trình cung cấp n m tr n một trạm và các ti n trình đề nghị lại ở tr n các trạm khác, các yêu cầu và khuy n nghị giải phóng được truy n cho các chương trình cung cấp thông qua hình thức thông điệp, chuy n theo các kênh của hệ thống vi n thông Chính vì vậy nhu cầu sắp xếp các yêu cầu n y theo một trật tự nhất định n o đó lu n lu n được đặt ra  N u chỉ có một thông điệp đ n chương trình cung... các server tr n m n hình III.2 Giải quyết bài to n III.2.1 Hướng giải quyết bài to n Sử dụng thuật to n loại trừ tương hỗ để giải quyết yêu cầu của bài to n Nguy n lý của phương pháp n y được khái quát như sau:  Một ti n trình n o đó gửi thông điệp để yêu cầu sử dụng tài nguy n, một ti n trình sử dụng xong tài nguy n nào đó truy n một thông tin giải phóng khi n ngừng chiếm dụng  Trong các hệ ph n. .. với server Thực tế, chương trình client chỉ truy n tin với đối tượng stub là đối tượng ủy quy n của đối tượng thực sự n m tr n hệ thống từ xa Stub chuy n cuộc đàm thoại cho tầng tham chiếu, tầng n y truy n tin trực tiếp với tầng giao v n Tầng giao v n tr n client truy n dữ liệu đi tr n mạng máy tính tới tầng giao v n b n phía server Tầng giao v n b n phía server truy n tin với tầng tham HVTH: Tr n Ngọc... các server tr n m n hình tr n n n của công cụ lập trình Java H n chế Chương trình dừng lại ở mức đáp ứng yêu cầu của đề tài về m n học, c n một số h n chế nhất định như sau : - Chưa khắc phục được hi n tượng tr n bộ nhớ khi hoạt động ở chế độ tự động - Chưa kiểm soát tối ưu các thông điệp đ n và đi khi đồng thời có nhiều thông điệp phát sinh Hướng phát tri n - Khắc phục những h n chế tr n - Nghi n cứu... trong một mô hình khác Một chương trình đóng vai trò như vậy có t n là rmiregistry, chương trình n y chạy như một ti n trình độc lập và cho phép các ứng dụng đăng ký dịch vụ RMI hoặc nh n một tham chiếu tới dịch vụ được đặt t n Mỗi khi server đựơc đăng ký, n sẽ chờ các yêu cầu RMI từ HVTH: Tr n Ngọc Chinh 11 Tiểu lu n m n Lập trình mạng các client G n với mỗi đăng ký dịch vụ là một t n được biểu diễn . 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 HVTH: Tr n Ngọc Chinh 5 Tiểu lu n m n Lập trình mạng đều có thể chạy tr n cùng một máy tính. Một ti n trình. là các ứng dụng hai tầng. Ph n l n các lập trình vi n trình ứng dụng viết các ứng dụng client /server có xu thế sử dụng ki n trúc n y. Trong ứng dụng hai tầng truy n thống, khối lượng công việc. Ngọc Chinh Response message Request message Reply Execution Wait Server Client 6 Tiểu lu n m n Lập trình mạng 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)

Ngày đăng: 31/01/2015, 22:54

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan