Tìm hiểu cơ chế RMI của Java và xây dựng một môi trường hỗ trợ tính toán song song và phân bố

124 1.5K 7
Tìm hiểu cơ chế RMI của Java và xây dựng một môi trường hỗ trợ tính toán song song và phân bố

Đ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

1 Khái niệm chung Để hiểu được mô hình một cách rõ ràng hơn trong phần giải thích hoạt động của hệ thống chúng ta cần giải thích một số thuật ngữ. Hệ thống chúng ta bao gồm nhiều hệ thống con hợp lại, mỗi hệ thống con có một Agent Object đóng vai trò là người quản lý toàn bộ hệ thống con đó và cụ thể là các Server trong hệ thống con đó, do đó lúc này các Server đó được gọi là Server nội bộ so với Agent Object quản lý nó. Trong mô hình này Service là một Remote Object có Remote Method, Remote Method này cho phép gọi từ xa và nó sẽ chính là hàm thực thi nhiệm vụ của dịch vụ đó. 2 Giải thích mô hình Mô hình sử dụng là mô hình gồm các phần tử Agent, các Server, Admin. Mô hình này khá quen thuộc nhưng tuỳ vào yêu cầu cụ thể của đề tài cũng như công cụ sử dụng để hiện thực mà việc thiết kế cụ thể khác nhau. Yêu cầu của đề tài là xây dựng một môi trường hỗ trợ tính toán song song và phân bố. Mô hình được thiết kế thành một hệ thống có các phần tử Agent đảm nhận nhiệm vụ đại diện hệ thống giao tiếp với Client , các Server, cũng như Admin. Hệ thống xây dựng theo mô hình này sẽ được quản lý chặt chẽ, dễ kiểm soát hoạt động của hệ thống cũng như việc sử dụng hệ thống của client. Tuy nhiên, hệ thống này được yêu cầu giải quyết những vấn đề tính toán lớn, nên việc phân chia công việc, đợi kết quả trả về từ các Service, tổng hợp kết quả là một nhiệm vụ khá nặng và tốn khá nhiều thời gian. Tóm lại, Agent này sẽ đảm nhận nhiệm vụ rất lớn, dễ xảy ra trường hợp quá tải và bị fail. Để hạn chế bớt phần nào vấn đề này,hệ thống sẽ được chia nhỏ ra thành các hệ thống con . Mỗi hệ thống con này do một Agent đứng ra quản lý. Khi một Agent fail thì không ảnh hưởng lên toàn bộ hệ thống. Ngoài mục đích trên, việc hệ thống có nhiều Agent cũng nhằm mục đích chuyên môn hóa các dịch vụ (nghĩa là một Agent quản lý một số dịch vụ mang tính chất gần giống nhau) , cũng chính điều này sẽ giải quyết phần nào vấn đề thắt nút cổ chai cho hệ thống. Đối với hệ thống nhiều Agent này, Client sẽ tùy vào tính chất dịch vụ nào mà yêu cầu đến những Agent đảm nhiệm những dịch vụ đó. Trong trường hợp Client yêu cầu tới một Agent bất kỳ, nếu nó không quản lý dịch vụ đó thì sẽ chuyển yêu cầu qua cho Agent có đúng chức năng để phân chia công việc cho Server. Mô hình chia thành nhiều hệ thống con còn hướng đến việc phát triển một hệ thống trên mạng WAN vì cơ chế RMI cho phép gọi hàm từ xa dễ dàng chỉ yêu cầu có kết nối với nhau dù trên mạng LAN hay WAN

Lời cảm ơn Kính gởi lời cảm ơn chân thành nhất đến thầy Trương Hồng Lónh, người đã tận tình hướng dẫn, giúp đỡ để đề tài luận văn này được hoàn thành. Xin trân trọng cảm ơn thầy Lê Nam Hiến đã nhiệt tình chỉ dẫn chúng em trong giai đoạn thực tập tốt nghiệp. Xin gởi lời cảm ơn thương yêu nhất đến gia đình đã rất quan tâm khuyến khích trong suốt thời gian thực hiện đề tài tốt nghiệp này. Cũng xin cảm ơn tất cả các thầy đã nhiệt tâm giảng dạy những bạn bè đã gắn bó, hỗ trợ chúng tôi. Nguyễn Thanh Bình Nguyễn Thò Thu Hiền 1 Giới thiệu đề tài - IĐề tài Tìm hiểu chế RMI của Java xây dựng một môi trường hỗ trợ tính toán song song phân bố . - IIGiới thiệu Luận văn này giới thiệu một phương hướng suy nghó hiện thực một môi trường hỗ trợ việc tính toán song song phân bố bằng cách sử dụng chế RMI trong Java. Chương trình hiện thực của luận văn này là một ứng dụng cung cấp cho người sử dụng những tính năng bản để thể điều khiển môi trường tính toán một cách dễ dàng tiện dụng. Về những tính năng kỹ thuật của môi trường ta thể nói rằng môi trường cho phép người sử dụng thể sử dụng các tài nguyên phân bố trên mạng. Cụ thể hơn, môi trường cung cấp cho người sử dụng khả năng sử dụng bộ nhớ khả năng xử lý của CPU của những máy tính được nối với nhau trên mạng. Chương trình hiện thực còn phục vụ được nhu cầu cần một chế truy xuất quản lý hiệu quả các tài nguyên tính toán trên mạng. Ngoài ra, chương trình còn thỏa mãn nhu cầu về tính dễ sử dụng bằng cách cung cấp một giao diện thân thiện. Tính dễ sử dụng là nhờ môi trường hiện thực ra không đòi hỏi một sự nổ lực lớn nào từ phía người sử dụng hệ thống. Chiến lược về cân bằng tải các chiến lược về Fault Tolerance cho hệ thống cũng được quan tâm giải quyết. Cuối cùng ta thấy, vì Javamột ngôn ngữ lập trình không phụ thuộc vào Platform, vì vậy chương trình hiện thực được cũng không phụ thuộc Platform. Một cách rõ ràng hơn, chương trình thể chạy trên các hệ điều hành khác nhau một cách dễ dàng. - IIISơ lược về yêu cầu đề tài Bài toán đặt ra cho luận văn này là : Một hệ thống máy tính gồm nhiều máy tính khả năng tính toán lớn được nối kết trên một mạng . Các máy này thể đảm nhận việc thực hiện các dòch vụ tính toán lớn mà chúng ta gọi là các Service. Yêu cầu đặt ra là xây dựng một hệ thống đóng vai tròmột môi trường cho phép thực thi những bài toán tương đối lớn theo mô hình song song phân bố. chế hỗ trợ để xây dựng đề tài là RMI trong Java, là một chế Distributed Object. 1 Thực chất đây là hệ thống nhiệm vụ quản lý những dòch vụ tính toán phân bố . Ngoài việc phải phân phối công việc để thực hiện một yêu cầu dòch vụ nào đó, hệ thống còn các chức năng như vấn đề thêm dòch vụ, sửa hay xóa dòch vụ. Việc xây dựng chương trình cũng giải quyết các vấn đề khá quan trọng của bất cứ hệ thống tính toán phân bố nào, chẳng hạn vấn đề an toàn, bảo mật cho hệ thống, vấn đề kháng lỗi của hệ thống, vấn đề về việc phân chia công việc giữa các máy trong hệ thống … Về việc sử dụng hệ thống, người sử dụng (Client) từ một máy tính bình thường, sử dụng môi trường lập trình giao tiếp gọi hàm từ xa theo chế RMI trong Java là đã thể truy xuất các dòch vụ tính toán trong hệ thống. Người quản trò hệ thống (Admin) thông qua chương trình Admin, do người hiện thực hệ thống cung cấp, sẽ quản lý các hoạt động của hệ thống. Người phát triển dòch vụ sẽ xây dụng dòch vụ theo một chuẩn nhất đònh trao cho người Admin để người quản trò hệ thống thể chạy thử. Sau đó, người Admin sẽ thực hiện thêm dòch vụ vào hệ thống thông qua một số thao tác đơn giản trên chương trình Admin. Tóm lại, chúng ta cần giải quyết các vấn đề chính yếu sau : • Làm thế nào Client thể dễ dàng sử dụng được các Service trên các Server mà không cần quan tâm đến phần tổ chức của các dòch vụ bên trong hệ thống. • Admin thể quản lý, thống kê việc truy xuất các dòch vụ từ các Client. • Admin thể quản lý, kiểm soát thống kê hoạt động của các Server, cũng như Service trên các Server ấy, để cho hệ thống hoạt động đạt hiệu quả cao nhất. • Làm sao để một chế thuận lợi cho người phát triển thêm các dòch vụ cho hệ thống mà không làm ảnh hưởng đến hoạt động của các dòch vụ đã sẵn trước đó. • Vấn đề khắc phục lỗi xảy ra trong quá trình vận hành hệ thống. • Làm sao để thực hiện việc phân chia công việc sao cho hiệu quả nhất thể. Chiến lược để thực hiện việc phân chia này như thế nào. • Cách giải quyết tình trạng tắc nghẽn thể xảy ra của hệ thống.(Mô hình phải như thế nào để giảm tình trạng tắc nghẽn này). • Làm sao giải quyết các vấn đề ưu tiên trong hệ thống. Vì rất thể trong quá trình hoạt động của hệ thống sẽ một số dòch vụ cần phải độ ưu tiên cao. Chương trình sẽ được hiện thực bằng ngôn ngữ Java. Tuy nhiên, bên cạnh việc tìm hiểu chế RMI, cần thêm một sở lý thuyết về một số chế nhằm hỗ trợ trong việc xây dựng chương trình. Các sở lý thuyết bản chẳng hạn thế nào là ứng dụng phân bố, các chế Serialization, Dynamic Class Loading, Security, Multithread, Registry, Codebase, Activation, Naming… sẽ được trình bày cụ thể ở phần sau đây. 1 Phần 1 : Nghiên cứu lý thuyết Chương 1 : Distributed Application Một ứng dụng phân bố là ứng dụng được phân bố trên nhiều không gian đòa chỉ khác nhau hay trên nhiều máy khác nhau. nhiều phương pháp để xây dựng một ứng dụng phân bố, ở đây ta sẽ quan tâm đến Distributed Object. chế Distributed Object là chế cho phép những object trên một máy tính nào đó gởi những message đến những object chạy trên vùng không gian đòa chỉ bộ nhớ khác, thông thường là thông qua mạng. Khi cần thiết kế một hệ thống sử dụng chế Distributed Object thì ta cần phải quản lý được những vấn đề sau: ♦ Độc lập platform : Trong một ứng dụng sử dụng chế Distributed Object, sẽ tồn tại những dòch vụ chạy trên những platform khác nhau, nhưng ta đòi hỏi chúng phải giao tiếp được với nhau. Điều này cho thấy, việc độc lập platform là một vấn đề cần quan tâm. Ngoài ra, chế Transmission giữa những Distributed object này phải quản lý được Format dữ liệu chẳng hạn như byte order. ♦ Location : Trong môi trường sử dụng chế Distributed Object , phải một vài chế cho việc đònh vò object cung cấp dòch vụ, điều này nhằm cung cấp công cụ cho việc thông tin liên lạc giữa các Object. ♦ Quản lý bộ nhớ : Dữ liệu truyền qua lại giữa các Object không thể là các tham biến bởi vì tham khảo đến một đòa chỉ vùng nhớ của hệ thống từ xa là một tham khảo không ý nghóa đối với một máy tính Local. ♦ Multiple Languages: Những dòch vụ sử dụng chế đối tượng phân bố ứng dụng Client của chúng thể được viết bằng những ngôn ngữ lập trình khác nhau. Mô hình đối tượng phân bố thực hiện việc mapping ngôn ngữ. 1 ♦ Giao tiếp network : Khi hiện thực một ứng dụng sử dụng chế Distributed Object thì trong việc giao tiếp giữa các Object, ta phải đảm bảo sao cho một message được gửi đi thì nó sẽ đến được người nhận một cách chính xác. Điều này nhằm đảm bảo cho hệ thống hoạt động một cách ổn đònh chính xác. ♦ Persistence : Sự giao tiếp với những object thông qua một network cũng đặt ra những vấn đề như làm thế nào duy trì một tham khảo đến một remote object . ♦ Standardization Một yêu cầu đối với các cách giải quyết vấn đề của một ứng dụng sử dụng Distribited Object là chúng phải chuẩn. Điều này là nhằm mục đích là để cho ứng dụng được viết ra được chấp nhận bởi nhiều người sử dụng, nhiều hệ thống. Giải pháp Distributed Object Xây dựng một mô hình Distributed Object , theo chuẩn phải đáp ứng ít nhất những yêu cầu sau: • Hỗ trợ vấn đề platform không đồng nhất. • Cho phép đònh vò một Object một cách dễ dàng. • Giải quyết được các vấn đề về quản lý bộ nhớ. • Hỗ trợ giao tiếp giữa nhiều ngôn ngữ lập trình. • Quản lý giao tiếp network ở các mức dưới. • Cung cấp một chế lưu trữ những tham khảo đến một remote object. • Thỏa mãn những tiêu chuẩn công nghiệp. Với những hỗ trợ cho chế Distributed Object hiện nay, những vấn đề bản sau đây đã được giải quyết : • chế cho việc quản lý vấn đề giao tiếp giữa những Object với nhau thông qua các protocol chuẩn như TCP/IP. • chế cho việc đònh vò Remote Object. • chế cho việc Marshaling Unmarshaling những dữ liệu truyền qua lại trên mạng. • chế cho việc cung cấp một Interface cho một remote object trong không gian đòa chỉ cục bộ . • Các kỹ thuật để thể tham khảo tới một Remote Object. Hiện nay, nhiều giải pháp thông dụng cho mô hình Distributed object, chẳng hạn như: 1 • CORBA ( Common Object Request Broker Architecture) được phát triển bởi Object Management Group (OMG) • DCOM (Distributed Component Object Model), được phát triển bởi Microsoft. • RMI (Remote Method Invocation ), được phát triển bởi Sun. Mỗi chế những đặc trưng của nó. Tùy vào tính chất đề tài mà sự chọn lựa. Ngoài ra khó thể sự so sánh chính xác. Đề tài đang được thực hiện là tìm hiểu một trong những chế về distributed object ,đó là RMI. 1 Chương 2 : Giới thiệu về RMI - IVKhái niệm chung - 1Java RMI (Remote Method Invocation) RMImột chế cho phép một Object đang chạy trên một Java Virtual Machine này gọi một Method của một Object đang tồn tại trên một Java Virtual Machine (JVM) khác. Sun hiện thực chế này bằng cách xây dựng một hệ thống gọi là hệ thống Java Remote Method Invocation, hệ thống này cung cấp một số phương pháp truyền thông giữa những chương trình được viết trong Java. Các chương trình viết trong Java sử dụng hệ thống này gọi là những chương trình RMI. Thực chất, RMImột chế gọi hàm từ xa đã được hiện thực tích hợp trong ngôn ngữ Java, vì vậy RMI cũng phải đối phó với những vấn đề như là RPC đối phó với những đã xảy ra đối với RPC các cách giải quyết vấn đề cũng tương tự như RPC . Tuy nhiên, RMI nhiều điểm tiện lợi hơn RPC, đó là việc RMI được hiện thực bởi Java, mà Javamộ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 hàm đều liên quan đến các đối tượng. Ngoài ra, RMI còn cho phép một Client thể gửi một Object đến cho Server xử lý, Object này cũng thể được xem là tham số cho lời gọi hàm từ xa, cần chú ý rằng Object này cũng những dữ liệu bên trong các hành vi như một Object thực sự. - 2Remote Interface, Remote Object, Remote Method Cũng như tất cả các chương trình khác trong Java, chương trình RMI cũng được xây dựng bởi các Interface các Class. Interface đònh nghóa các Method, các Class hiện thực các Method đó thể là Class còn hiện thực một vài Method khác nhưng chỉ những Method khai báo trong Remote Interface mới được Client gọi từ một Java Virtual Machine khác, hay nói khác đi là chỉ những Method khai báo trong Remote Interface mới được nhìn thấy bởi Client. Vì vậy, Remote Interface là một Interface khai báo các Method cho phép gọi từ xa. Trong Java, Remote Interface các đặc điểm : • Thừa kế Interface sẵn : Interface java.rmi.Remote • Mỗi Method trong Remote Interface muốn là Remote Method phải được khai báo là throws java.rmi.RemoteException thể các Exception khác. The Remote Object là một Object được tạo ra để cho phép những Object khác trên một JVM khác gọi tới nó. Remote Object chứa một số các Method, những Method này cho 1 phép gọi từ xa các Method này sẽ được thực thi bởi JVM gọi là Server. Các Method này gọi là các Remote Method. Hình 1. Remote Object, Remote Method. - 3Name Server Như trong RPC, Name Server là một Process đóng vai trò trung gian trong việc tìm kiếm tham khảo tới một Remote Object nào đó, cụ thể là nó giúp Client tìm kiếm một tham khảo (Reference) tới một Remote Object mà Client đó cần. Trong hệ thống Java RMI, Name Server thể là một máy bất kỳ trong hệ thống của chúng ta, Name Server phải một vùng nhớ gọi là Name Space dùng để chứa lại tên đòa chỉ tương ứng của các Remote Object trong hệ thống. Hình 2. Name Server. - 4Stub Skeleton Trong RPC, thì một phần không thể thiếu để một Process trên một máy từ xa thể gọi thực thi các Remote Method của các Remote Object trên một máy Server nào đó là các 1 chương trình Client Stub Server Stub (Java RMI gọi là Stub Skeleton). Để một cái nhìn cụ thể hơn, ta sẽ trình bày về nhiệm vụ của Stub Skeleton. Những công việc được thực hiện bởi Stub trong Java RMI: • Tạo một cầu nối với JVM chứa Remote Object mà Client cần. • Marshals các tham số cần cho việc gọi hàm thực hiện việc gửi chúng đi. • Chờ kết quả trả về từ lời gọi hàm. • Unmarshals gói dữ liệu nhận được để đọc các giá trò trả về hay các Exception trả về từ lời gọi hàm. • Trả kết quả về cho chương trình Client thực sự. • Ngoài ra, Stub còn đóng một vai trò khác quan trọng, đó là Stub sẽ nắm giữ một tham khảo tới Remote Object để Remote Object không Giải phóng bởi trình Gabage Collection tự động của Java. Khi một lời gọi hàm gửi tới Skeleton, Skeleton sẽ thực hiện các công việc như sau : • Unmarshals gói dữ liệu nhận được để những thông tin cần thiết cho việc gọi hàm. • Thực hiện lời gọi hàm đối với hệ thống thực thụ. • Marshals kết quả trả về gửi trả về cho Client. Hình 3. Stub – Skeleton. Với những nhiệm vụ của từng phần như trên, ta cũng thể thấy vài sự khác nhau về Client Stub,Server Stub giữa RMI RPC như sau : Stub (RMI) so với Client Stub (RPC) : 0. Stub khác với Client Stub ở chỗ là Stub đóng vai tròmột người nắm giữ một tham khảo tới một Remote Object, điều này giúp cho Remote Object không chế Garbage Collection xóa đi. Trong khi đó, Client Stub thì không đóng vai trò này. 1 1. Stub còn đóng vai trò quan trọng trong việc Serialize một Object, việc truyền khai báo Class cho Skeleton khi yêu cầu. Skeleton (RMI) so với Server Stub(RPC) : 2. Server Stub không cần phải thực hiện viện Serialize một Object cũng như nó không cần phải yêu cầu hay quan tâm gì đến việc tìm khai báo một Class nào đó. Trong khi Skeleton thì phải quan tâm đến những điều đó. - VNguyên tắc hoạt động của Java RMI Một chương trình RMI thông thường được chia làm 2 phần, đó là chương trình trên Client chương trình trên Server. Nhiệm vụ của chương trình Server là tạo một số các Remote Object làm cho các tham khảo tới chúng thể được tham khảo từ xa, sau đó ngồi chờ Client gọi để thực thi. Sau khi lời yêu cầu gì đó Server sẽ thực thi Method đó trả kết quả về cho Client. Nhiệm vụ của chương trình Client là tìm kiếm lấy các tham khảo đến các Remote Object mà nó cần từ một máy Name Server nào đó, sau đó gọi các Method của Remote Object đó. Nhiệm vụ của hệ thống Java RMI là cung cấp các kỹ thuật để Server Client thể liên lạc với nhau, cụ thể hơn là các kỹ thuật giúp cho Server Client thể truyền nhận thông tin qua lại với nhau. - 1Cơ chế hoạt động : Hoạt động cụ thể của một chương trình RMI chúng ta thể biểu diễn như sau : Hình 4. chế hoạt động của chương trình RMI. Như hình trên ta thể thấy chế hoạt động của một chương trình RMI như sau : 1 [...]... thì nhìn chung 6 bước nhưng Java đã đảm nhận cho ta một phần người lập trình chỉ còn phải thực hiện 3 bước mà thôi Thêm vào đó là RMI những đặc điểm chính yếu là : cho phép sử dụng Thread trong RMI, RMI hỗ trợ chế dọn rác RMI hỗ trợ việc Load Class động Với đặc điểm cuối cùng này, RMI cho phép Client thể gửi một Object lên cho Server thực thi hộ một vài Method Điều này lợi thế... tự động tìm tạo một Instance thuộc một Class mà JVM chưa Bytecode cũng vì mục đích để cho JVM thể tự động tìm Bytecode mà người ta đònh nghóa sử dụng các biến môi trường như CLASSPATH các Property như java .rmi. server.codebase với những cách sử dụng chế hoạt động như đã nêu ở trên - XIMô hình Java Security - 1Giới thiệu Java được thiết kế độc lập platform Bytecode của một chương... Object các tham số cho nó Tóm tắt Tóm lại, với chế Activation chúng ta thể tạo ra một môi trường hiệu quả hơn về lượng tài nguyên sử dụng cho việc xử lý một bài toán, nhưng nó lại một điểm yếu là thời gian cho việc xử lý là khá lớn do phải tính thêm vào đó một thời gian Overhead cho việc thực hiện Activate một Remote Object 1 - XIIIJNI (Java Native Interface) Javamột ngôn ngữ hỗ trợ cho... of memory) chế Garbage Collection của Java không phải là một chế quản lý bộ nhớ động hiệu quả, nhưng nó là một chế nhằm mục đích an toàn cho người lập trình - 5Thread Synchronization Một thread đang chạy thể truy cập bất cứ đối tượng nào mà nó một reference đến Điều gì xảy ra khi hai thread cùng truy cập một đối tượng, mỗi thread gọi một method mà nó modify trạng thái của object đó... biên dòch thông dòch ngay lúc chạy, để khi cần tham khảo tới một Class, các chương trình này thể tìm kiếm theo Classpath đó Cú pháp cho cách này như sau : Javac -classpath JavaFile .java Java -classpath JavaFile 1 • Tạo lập một biến môi trường để thể dùng cho cả phiên làm việc Cú pháp cho cách này như sau : Set CLASSPATH = ; Javac JavaFile .java Java JavaFile... truyền nhận dữ liệu của các Object này vậy - VIMột số đặc điểm nổi bật của Java RMI RMI chế gọi hàm từ xa, vì vậy những vấn đề căn bản trong cơ chế này như giải quyết vấn đề truyền tham số trong lời gọi hàm như thế nào, vấn đề đònh vò Remote Object ra sao là những vấn đề quan trọng Ở đây ta quan tâm đến một số đặc điểm nổi bật của Java RMI Java RMI một số đặc điểm nổi bật như: • Dynamic Class... tượng Khi một object được lưu trữ, những object mà object này tham khảo đến cũng được lưu trữ Tiêu chí của Serializing Java Objects là : ♦ Đưa ra mộtchế đơn giản mà vẫn thể mở rộng ♦ thể mở rộng để hỗ trợ marshaling unmarshaling khi cần thiết cho những Remote Object ♦ thể mở rộng (extensible) để hỗ trợ tính persistence của Java objects Object Serialization đưa ra sử dụng một dòng... động) • Thread usage in RMI( Cho phép sử dụng Thread trong RMI) • Gabage Collection of Remote Object (Tự động giải phóng các Remote Object mà hệ thống không còn tham khảo tới) Các đặc điểm này sẽ được trình bày một cách rõ ràng hơn trong các phần sau Tóm tắt Tóm lại, cơ chế RMI trong Javamộtchế cho phép gọi hàm từ xa Cơ chế này giải quyết việc đònh vò Remote Object bằng chế Name Server như đã... dùng trong RMI : Với RMI, khi một Client muốn gọi một Method của một Remote Object nào đó thì bắt buộc Client phải một tham khảo tới Remote Object đó, để một tham khảo tới Remote Object thì Client phải một Intance thuộc Class gọi là Stub Class, class này được tạo ra bởi chương trình RMIC Mỗi Remote Object một Stub Class để đóng vai trò Proxy trên Client JVM Giá trò của property java .rmi. server.codebase... gì ? Java đã cung cấp cho ta một cách để khắc phục được yếu điểm không uyển chuyển đã trình bày ở ví dụ trên, đó là Java cho phép Load Class động Load Class động là một chế sẽ được Java thực hiện nếu như trong lúc thực thi chương trình mà Java phải tham khảo đến một Object thuộc một Class A mới nào đó mà JVM hiện tại chưa đònh nghóa của Class A này thì Java sẽ tự đi load Bytecodes của A tạo

Ngày đăng: 21/06/2014, 14:08

Từ khóa liên quan

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

Tài liệu liên quan