1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu lập trình phân tán với RMI ứng dụng truy cập cơ sở dữ liệu web

38 283 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 1,74 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trình chủ sử dụng java servlet, trang jsp hay các ứng dụng CGI để kết nối vào cơ sở dữ liệu, đối tượng phân tán RMI, CORBA nằm trên một máy chủ khác xử lý tính toán và trả về kết quả cho

Trang 1

MỤC LỤC

MỤC LỤC 1

LỜI MỞ ĐẦU 3

Chương 1: GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH JAVA 5

1.1 Lịch sử ra đời của Java 5

1.2 Chu trình phát triển chương trình với Java 5

1.3 Môi trường Java 5

1.4 Các dạng chương trình ứng dụng của Java 6

1.4.1 Chương trình ứng dụng dạng độc lập 6

1.4.2 Chương trình ứng dụng dạng Applet 6

1.4.3 Chương trình ứng dụng ở dạng Applet lẫn dạng độc lập 6

1.5 Các phần tử cơ sở của Java 6

1.5.1 Định danh (Tên gọi) 6

1.5.2 Các từ khóa 7

1.5.3 Chú thích 7

1.6 Các kiểu dữ liệu nguyên thủy 7

1.7 Khai báo các biến 8

1.8 Cấu trúc tệp chương trình Java 8

Chương 2: CƠ SỞ VỀ MẠNG MÁY TÍNH 9

2.1 Định nghĩa mạng máy tính 9

2.2 Phân loại mạng máy tính 9

2.3 Một số kiến trúc mạng thường dùng 10

2.4 Giao thức mạng 10

2.4.1 Giao thức TCP/IP 10

1 Giao thức IP 10

2 Giao thức TCP 11

2.4.2 Giao thức UDP 11

2.5 Các mô hình hoạt động của mạng máy tính 11

Chương 3: LẬP TRÌNH ĐỐI TƯỢNG PHÂN TÁN VỚI RMI 12

3.1 Tổng quan về RMI 12

3.1.1 RMI là gì 12

3.1.2 So sánh giữa RMI và RPC 12

3.2 RMI làm việc như thế nào 12

3.3 Kiến trúc của chương trình RMI 14

3.4 Các cơ chế liên quan trong một ứng dụng RMI 15

3.5 Cơ chế thực thi của một ứng dụng RMI 16

3.6 Các lớp, gói thường được sử dụng trong RMI 17

3.7 Những vấn đề gặp phải khi triển khai RMI 17

3.7.1 Nạp các lớp động 17

3.7.2 Sự khác nhau giữa các máy ảo Java 18

1 Máy ảo Java của Microsoft thiếu hỗ trợ lời triệu gọi phương thức từ xa 18

2 Những thay đổi trong RMI từ JDK 1.02 đến JDK 1.1 19

3 Những thay đổi trong RMI từ JDK 1.1 đến nền tảng thứ hai của Java 19

3.7.3 RMI và Applet 20

1 Không có khả năng kết nối tới cổng TCP 20

Trang 2

3.9 Kích hoạt đối tượng từ xa 25

3.9.1 Kích hoạt đối tượng là gì 25

3.9.2 Kích hoạt đối tượng từ xa làm việc như thế nào 25

3.10 Classpath và Codebase 27

3.10.1 Giới thiệu chung 27

3.10.2 Classpath 27

3.10.3 URL (Uniform Resource Locator) 27

3.10.4 Codebase 27

Chương 4: CHƯƠNG TRÌNH DEMO TRUY NHẬP CƠ SỞ DỮ LIỆU WEB 28

4.1 Các mô hình kiến trúc cơ sở dữ liệu 28

4.1.1 Kiến trúc đơn lớp (Single Architecture) 28

4.1.2 Kiến trúc hai lớp (Two - Tier Architecture) 28

4.1.3 Kiến trúc ba lớp (Three - Tier Architecture) 29

4.1.4 Giới thiệu về truy nhập cơ sở dữ liệu Web 29

4.2 Mô hình và hoạt động của chương trình demo 30

4.3 Thiết kế chương trình 31

4.3.1 Các tệp xây dựng trong chương trình 31

4.3.2 Các bước thực hiện chương trình 32

4.4 Một số giao diện của chương trình 32

KẾT LUẬN 36

TÀI LIỆU THAM KHẢO 37

Trang 3

LỜI MỞ ĐẦU

Sự phát triển như vũ bão của hệ thống mạng nhất là mạng Internet đã khiến cho máy tính trở nên gần gũi và phục vụ đắc lực cho con người hơn Tuy nhiên bên cạnh đó một thách thức lớn đặt ra cho các nhà phát triển ứng dụng là lập trình mạng ngày càng trở nên phức tạp Mô hình lập trình đơn lẻ truyền thống đã bị thay đổi rất nhiều Ngày nay, bạn không còn đơn thuần ngồi viết những ứng dụng để chạy trên một máy duy nhất Chương trình ứng dụng đòi hỏi sự tương tác từ nhiều phía người dùng, chia sẻ tài nguyên, triệu gọi từ xa, liên kết giao tác, phân tán dữ liệu…Với những yêu cầu trên mô hình khách/chủ (hay Client/Server) đã ra đời và tồn tại rất lâu (thậm chí cho đến ngày nay) Theo mô hình khách/chủ tất cả các thao tác xử lý phức tạp đều được chuyển giao cho máy chủ xử lý Máy khách chỉ đóng vai trò gửi yêu cầu và hiển thị dữ liệu.

Hãy hình dung bạn quản lý và phân phối ứng dụng đến hàng trăm máy khách nằm ở nhiều quốc gia khác nhau (một trở ngại về mặt địa lý) Bạn cài đặt trình điều khiển kết nối cơ sở dữ liệu MS SQL Server lên từng máy Sau một khoảng thời gian sử dụng, bạn muốn chuyển hệ quản trị cơ sở dữ liệu MS SQL Server sang hệ Oracle thì sao? Bạn phải yêu cầu hàng trăm máy khách cập nhật lại trình điều khiển truy xuất cơ

sở dữ liệu Oracle thay cho MS SQL Server Đó là chưa kể việc cấu hình và kết nối với từng hệ cơ sở dữ liệu xem ra cũng không phải là đơn giản đối với người dùng Hay khi bạn muốn thay đổi mã nguồn của ứng dụng khách? Nếu ứng dụng khách của bạn bao gồm nhiều tập tin thực thi exe và các thư viện liên kết động (dll) lên đến hàng chục

Mb thì sao? Bạn phải gửi bản cập nhật hàng chục Mb này đến hàng trăm khách yêu cầu cập nhật lại chương trình.

Tất cả những ứng dụng trên đã làm phát sinh mô hình phát triển ứng dụng đa tầng (multi-tier) Các ứng dụng xử lý của bạn không cài đặt trên máy khách nữa mà cài đặt ở một máy chủ khác Mục tiêu là làm cho máy khách trở nên gọn nhẹ, dễ cấu

Trang 4

Web là một ứng dụng điển hình nhất của mô hình ứng dụng đa tầng cụ thể đó

là mô hình ba tầng Trình chủ Web nằm trên một máy chủ, máy khách chỉ cần dùng trình duyệt Web (browser) kết nối vào máy chủ và có thể truy cập được mọi thông tin cũng như dịch vụ Trình chủ sử dụng java servlet, trang jsp hay các ứng dụng CGI để kết nối vào cơ sở dữ liệu, đối tượng phân tán RMI, CORBA (nằm trên một máy chủ khác) xử lý tính toán và trả về kết quả cho trình khách thông qua các trang Web tĩnh.

Mô hình đa tầng đã phân rã chức năng một cách cụ thể, cho phép ứng dụng chạy trên nhiều máy chủ khác nhau Dễ dàng cho người phát triển, nhà cung cấp cũng như người sử dụng mạng diện rộng nhất là mạng Internet.

Trong phạm vi của đồ án em nghiên cứu cách truy cập sơ sở dữ liệu Web bằng đối tượng phân tán RMI Cấu trúc của đồ án gồm bốn chương Trong chương một trình bày sơ lược về Java, cấu trúc của một chương trình Java, các dạng chương trình ứng dụng của Java, các phần tử cơ sở và các kiểu dữ liệu nguyên thủy của Java Trong chương hai trình bày khái niệm, kiến trúc, mô hình mạng máy tính và giao thức thường dùng trong mạng Trong chương ba trình bày về lập trình đối tượng phân tán với RMI, khái niệm về RMI, kiến trúc của một chương trình RMI, các vấn đề gặp phải khi triển khai RMI và một số kỹ thuật triển khai RMI Cuối cùng trong chương bốn xây dựng chương trình demo truy cập cơ sở dữ liệu Web Chương trình có các giao diện cho người sử dụng và cả người quản trị hệ thống Tất cả các chức năng của chương trình đều được thực hiện từ xa.

Do trình độ và thời gian có hạn nên đồ án tốt nghiệp không thể tránh khỏi các thiếu sót Em rất mong nhận được sự hướng dẫn và đóng góp ý kiến của các thầy cô

và các bạn để tốt đồ án tốt nghiệp của em hoàn thiện hơn.

Em xin chân thành cảm ơn các thầy cô giáo, các bạn đã tận tình giúp đỡ trong quá trình học tập.

Trang 5

Chương 1: GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH JAVA

1.1 Lịch sử ra đời của Java

Ngôn ngữ lập trình Java do Java do James Gosling và nhóm cộng sự của hãngSun Microsystems xây dựng vào năm 1990 với tên gọi ban đầu là Oak (Cây sồi) Java được xây dựng chủ yếu trong bộ công cụ phát triển JDK (Java DevelopmentKit)

Bắt đầu với JDK phiên bản 1.0 từ năm 1995, năm 1996 Sun đưa ra phiên bảnJDK 1.1, năm 1998 cho ra đời phiên bản JDK 1.2 và hiện nay đã có phiên bản 1.6

1.2 Chu trình phát triển chương trình với Java

Java vượt qua được các nhược điểm trên bằng cách dịch các chương trình nguồnsang ngôn ngữ máy ảo không phụ thuộc vào chip (hệ lệnh cụ thể) nào cả và sau đó khicần thực hiện sẽ thông dịch sang hệ máy cụ thể Kết quả của chương trình là chuỗi cácbytes cơ sở bao gồm các mã lệnh thực hiện (Opcode) và các tham số của máy lý thuyết(máy ảo), là máy Java ảo JVM1 Chương trình được thực hiện như sau:

1.3 Môi trường Java

Java có thể dịch và thực hiện trong mọi môi trường điều hành, miễn là ở đó cóchương trình thông dịch (máy Java ảo - JVM)

 Cơ chế xử lý các Web site

 Tại sao lại sử dụng Java cho công nghệ Web

 Tổ chức thực hiện các dự án ứng dụng với Java

* Xử lý các Web site

* Java và Web

- Độc lập với môi trường (Platform Independent)

- Đảm bảo an ninh (secure) thông tin

- Đảm bảo an toàn (safe)

- Thực hiện đa luồng (multithreads)

- Đảm bảo sự linh hoạt

Trang 6

* Bộ công cụ phát triển ứng dụng JDK

- Hiện nay có nhiều môi trường hỗ trợ để phát triển phần mềm Java như: Visual

J++, Symantec’s Café, Boland Jbuilder, JDK v.v

Bộ JDK so sun cung cấp theo Web site:

http://Java.sun.com

1.4 Các dạng chương trình ứng dụng của Java

Có ba loại chương trình có thể phát triển với Java:

1.4.3 Chương trình ứng dụng ở dạng Applet lẫn dạng độc lập

Java cho phép xây dựng chương trình chạy được cả ở Web Browser lẫn một ứngdụng độc lập Một chương trình như thế phải:

+ Định nghĩa lớp ứng dụng mở rộng, kế thừa từ lớp Applet

+ Trong lớp ứng dụng phải có hàm main()

1.5 Các phần tử cơ sở của Java

1.5.1 Định danh (Tên gọi)

Tên gọi của các thành phần trong chương trình được gọi là định danh (Identifier).Trong Java định danh là một dãy các ký tự gồm các chữ cái, chữ số và một số các kýhiệu như: ký hiệu gạch nối ‘_’, các ký hiệu tiền tệ $, ¥, £, ¢, và không được bắt đầubằng chữ số

2 Java Development Kit

Trang 7

Kiểu boolean (logic)

Kiểu nguyên thủy

Kiểu số

Lưu ý: Java phân biệt chữ thường và chữ hoa, ví dụ Hoa và hoa là hai định danhkhác nhau Độ dài (số ký tự) của định danh trong Java về lý thuyết là không giới hạn

1.5.2 Các từ khóa

Các từ khóa của Java có thể chia làm 9 nhóm

1 Tổ chức các lớp

2 Định nghĩa các lớp

3 Các từ khóa cho các biến và các lớp

4 Các kiểu dữ liệu nguyên thủy (đơn giản)

5 Những từ khóa cho các giá trị và các biến

Chú thích trên một dòng: Tất cả các ký tự sau // cho đến cuối dòng là chú thích

Chú thích nhiều dòng: Giống như trong C, phần nằm giữa /* và */ là chú thích

Chú thích trong tư liệu: Đây là loại chú thích đặc biệt được đặt vào những chỗ thíchhợp trong chương trình để javadoc có thể đọc và sử dụng để tạo ra tư liệu dạng HTMLcho chương trình Phần chú thích trong tư liệu được bắt đầu bằng /** và kết thúc bằng

*/

1.6 Các kiểu dữ liệu nguyên thủy

Mỗi ngôn ngữ lập trình đều định nghĩa sẵn một số kiểu dữ liệu cơ bản gọi là kiểunguyên thủy

Các kiểu nguyên thủy của Java được chia thành 3 nhóm:

+ Kiểu nguyên gồm các số nguyên và kiểu ký tự

+ Kiểu dấu phảy động hay kiểu số thực: Loại này có hai kiểu float và doublebiểu diễn cho các số thập phân có dấu

+ Kiểu boolean: Là kiểu boolean có hai giá trị true (đúng) và false(sai)

Trang 8

Hình 1.1 Các kiểu nguyên thủy trong Java

1.7 Khai báo các biến

Trong Java có bốn loại biến:

+ Các biến thành phần

+ Các biến tham chiếu đối tượng (Object Reference)

+ Các biến tĩnh (static)

+ Các biến cục bộ (local)

1.8 Cấu trúc tệp chương trình Java

Tệp chương trình Java có thể có các thành phần được đặc tả như sau:

+ Định nghĩa một gói là tùy chọn thông qua định danh của gói (package)

+ Một số lệnh import (không hoặc nhiều)

+ Một số định nghĩa lớp và interface có thể định nghĩa theo thứ tự bất kỳ

Trang 9

Chương 2: CƠ SỞ VỀ MẠNG MÁY TÍNH

2.1 Định nghĩa mạng máy tính

Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi đường truyềntheo một cấu trúc nào đó và thông qua các máy tính trao đổi thông tin qua lại chonhau

Hình 2.1 Mô hình liên kết các máy tính trong mạng

2.2 Phân loại mạng máy tính

Dựa theo phạm vi phân bố của mạng người ta có thể phân ra các loại mạng như sau:+ GAN (Globa Area Network)

+ WAN (Wide Area NetWork)

+ MAN (Metropolitan Area Network)

+ LAN (Local Area Network)

Trang 10

2.4.1 Giao thức TCP/IP

1 Giao thức IP

Nhiệm vụ chính của giao thức IP là cung cấp khả năng kết nối các mạng con thànhliên kết mạng để truyền dữ liệu, vai trò của IP là vai trò của giao thức tầng mạng trong

Trang 11

mô hình OSI Giao thức IP là một giao thức kiểu không liên kết (connectionlees) cónghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu.

2 Giao thức TCP

TCP là một giao thức hướng kết nối, có cung cấp một đường truyền dữ liệu tin cậygiữa hai máy tính Tính tin cậy thể hiện ở việc nó đảm bảo dữ liệu được gửi sẽ đếnđược đích và theo đúng thứ tự như khi nó được gọi

2.4.2 Giao thức UDP

UDP (User Datagram Protocol) là giao thức theo phương thức không liên kết được sử

dụng thay thế cho TCP ở trên IP theo yêu cầu của từng ứng dụng

2.5 Các mô hình hoạt động của mạng máy tính

Mô hình hình hoạt động của mạng máy tính chủ yếu có hai loại:

+ Mô hình hoạt động chủ khách (Clients/Server)

+ Mô hình hoạt động ngang hàng (Peer to Peer)

Trang 12

Java Virtual Machine

Java Virtual Machine

Object

Main (String args[])

RemoteObjectMethod1(…)Method2(…)

3.2 RMI làm việc như thế nào

Các hệ thống sử dụng RMI cho việc truyền thông tiêu biểu được phân thành 2 loại:Clients và Servers Server cung cấp dịch vụ RMI, và Client gọi các phương thức do

3 Remote Method Invocation

4 Remote Procedure Calls

Trang 13

Server cung cấp RMI Server phải đăng ký một dịch vụ tìm kiếm, cho phép các Clienttìm thấy thông tin Server cung cấp, hoặc chúng có thể tham chiếu tới dịch vụ khác.Một ứng dụng chạy nền cho RMI có tên là rmiregistry Ứng dụng này chạy và

xử lý độc lập với các chương trình RMI, nó cho phép các đối tượng trên Server đăng

ký tên của mình Mỗi lần một đối tượng được đăng ký xong, nó sẽ đợi sau đó thựchiện lời gọi từ phía Client

Hình 3.2 Nhiều dịch vụ đăng ký với một bộ đăng ký

Các đối tượng trên Client sẽ gửi những thông điệp tới những phương thức ở xa.Trước khi một phương thức ở xa được thực thi Client phải có tham chiếu của nó trênServer Điều đó được thực hiện bởi dịch vụ tìm kiếm trong bộ đăng ký RMI Đốitượng trên Client yêu cầu một tên dịch vụ, và sẽ nhận được một URL Nên nhớ nhữngURL không phải cho HTTP, hầu hết các giao thức có thể đại diện sử dụng cú pháp củaURL Định dạng được sử dụng bởi RMI để đại diện cho một đối tượng tham chiếu từ

xa như sau:

rmi://hostname:port/servicenameTrong đó hostname tên của của Server hoặc địa chỉ IP của Server, port số hiệucổng cung cấp dịch vụ, servicename là một chuỗi mô tả dịch vụ Những thông tinchi tiết của hoạt động mạng thì luôn trong suốt với người phát triển ứng dụng khi làmviệc với các đối tượng ở xa, việc đó trở nên đơn giản như khi làm việc với đối tượngtại máy cục bộ Điều này được thực hiện nhờ một phép chia thông minh của hệ thốngRMI thành hai thành phần, một là stub và một là skeleton

Trang 14

Hình 3.3 Đối tượng stub gọi đối tượng skeleton.

Tại RMI Server, đối tượng skeleton có nhiệm vụ lắng nghe những yêu cầu vàchuyển các yêu cầu đó tới dịch vụ RMI Sau khi người phát triển tạo ra một giao diệnRMI, người đó còn phải định nghĩa cụ thể giao diện đó Đối tượng được định nghĩanày sẽ được gọi là đối tượng skeleton

3.3 Kiến trúc của chương trình RMI

Kiến trúc của một chương trình theo cơ chế RMI được mô tả như hình sau:

Hình 3.4 Kiến trúc chương trình kiểu RMI

Trong đó:

+ Server là chương trình cung cấp các đối tượng có thể được gọi từ xa

+ Client là chương trình có tham chiếu đến các phương thức của các đối tượng ở xatrên Server

+ Stub chứa các tham chiếu đến các phương thức ở xa trên Server

+ Skeleton đón nhận các tham chiếu từ Stub để kích hoạt phương thức tương ứngtrên Server

Trang 15

+ Remote Reference Layer là hệ thống truyền thông của RMI.

+ Transport là tầng giao vận được dựa trên giao thức TCP/IP giữa các máy trongmạng

Bằng cách sử dụng kiến trúc phân tầng như trên mà mỗi tầng có thể phân cấp hoặcthay thế mà không ảnh hưởng tới các tầng còn lại của hệ thống

3.4 Các cơ chế liên quan trong một ứng dụng RMI

Trong một ứng dụng phân tán cần có các cơ chế sau:

+ Cơ chế định vị đối tượng ở xa (Locate remote objects)

+ Cơ chế giao tiếp với các đối tượng ở xa (Communicate with remote objects)+ Tải các lớp danh bytecodes cho các lớp mà nó được chuyển tải qua lại giữa máy

ảo (Load class bytecodes for objects that are passed around)

Hình 3.5 Vai trò của dịch vụ ánh xạ tên

Trong đó:

+ Server đăng ký tên cho đối tượng có thể được gọi từ xa của mình với dịch vụ ánh

xạ tên (Registry Server)

+ Client tìm đối tượng ở xa thông qua tên đã đăng ký trên Registry Server (looksup) và tiếp đó gọi các phương thức ở xa

+ Hình 3.5 cũng cho thấy cách thức mà hệ thống RMI sử dụng một WebServer sẵn

có để truyền tải mã bytecodes của các lớp qua lại giữa Client và Server

Trang 16

3.5 Cơ chế thực thi của một ứng dụng RMI

Tiến trình thực thi của một ứng dụng RMI diễn ra như sau:

Hình 3.6 Tiến trình thực thi của ứng dụng RMI

+ Bước 1: Server tạo các đối tượng cho phép gọi từ xa cùng với Stub và Skeletoncủa chúng

+ Bước 2: Server sử dụng lớp Naming để đăng ký tên cho một đối tượng từ xa (1).+ Bước 3: Naming đăng ký Stub của đối tượng từ xa với Registry Server (2)

+ Bước 4: Registry Server sẵn sàng cung cấp tham chiếu đến đối tượng từ xa khi cóyêu cầu (3)

+ Client yêu cầu Naming định vị đối tượng ở xa thông qua tên đã được đăng ký(phương thức lookup) với dịch vụ tên (4)

+ Naming tải Stub của đối tượng ở xa từ dịch vụ tên mà đối tượng đã đăng ký vềClient (5)

+ Cài đặt đối tượng Stub và trả về tham chiếu đối tượng ở xa cho Client (6)

+ Client thực thi một lời gọi phương thức ở xa thông qua đối tượng Stub (7)

Trang 17

3.6 Các lớp, gói thường được sử dụng trong RMI

Trong kỹ thuật triệu gọi từ xa, một hệ thống RMI sử dụng rất nhiều gói và lớp củaJava nhưng các lớp quan trọng nhất vẫn là:

ký rmiregistry Gói này gồm các phương thức:

+ static void bind(String url, Remote Object)

+ static String[] list(String url

+ static Remote lookup(String url)

+ static void rebind(String url, Remote Object)

3.7 Những vấn đề gặp phải khi triển khai RMI

3.7.1 Nạp các lớp động

Trong các hệ thống nhỏ (chỉ có một vài Client sử dụng các dịch vụ từ Server), việcphân tán các lớp Stub và Skeleton diễn ra bình thường Nhưng khi có một số lượng lớncác Client cùng sử dụng các dịch vụ này thì điều gì sẽ xảy ra? Nếu một bộ đăng kýRMI được sử dụng cho tất cả các dịch vụ, khi một dịch vụ mới được giới thiệu trong

hệ thống thì file Stub của dịch vụ đó phải được sao chép tới classpath của bộ đăng kýtrước khi Server đăng ký nó Vấn đề trên được giải quyết bằng một kỹ thuật đã đượcbiết đến đó là kỹ thuật nạp lớp động

Trang 18

Kiểm tra lớp

đã được nạp

Kiểm tra việc cài đặt bảo mật

Trả về lớp đó

Tìm nạp lớp đó

từ mạng

Bỏ qua ngoại lệClassNotFoundException

Đúng

ĐúngSai

Sai

Hình 3.7 Quá trình xử lý nạp lớp của hệ thống RMI

Trước khi tìm nạp lớp đã được định nghĩa, thì vị trí của lớp đó phải được xác định

Vị trí của các lớp này được xác định bằng thuộc tính hệ thốngjava.rmi.server.codebase Việc xác định vị trí được thực hiện ở Client hoặcServer Muốn vậy ta phải đặt một URL, đường dẫn đến thư mục codebase Từ đóRMIClassLoader tải các lớp sử dụng cho hệ thống RMI

Cách đơn giản nhất để đặt codebase là sử dụng một lệnh, tham số chỉ rõ thuộc tínhcần đặt

java –Djava.rmi.server.codebase=http://hostname:port/pathRMIServer

Trong đó hostname là địa chỉ IP hoặc tên của máy chủ, Port là số hiệu cổngchương trình chạy, Path là đường dẫn đến thư mục codebase

Nếu Server có thể chỉ rõ codebase của mình thì Client cũng làm được điều đó

java –Djava.rmi.server.codebase=http://hostname:port/path RMIClient

3.7.2 Sự khác nhau giữa các máy ảo Java

1 Máy ảo Java của Microsoft thiếu hỗ trợ lời triệu gọi phương thức từ xa

Trang 19

Mặc dù những gói RMI là một phần của lõi Java API, nhưng các JVM củaMicrosoft cũng không hỗ trợ RMI Điều đó làm cho các RMI Client hoặc Serverkhông dễ dàng chạy trên các JVM đó Vì thế việc sử dụng Applet trở nên khó khăn bởi

đa số người sử dụng Internet đều dùng trình duyệt IE5 Để khắc phục điều này ta phảithêm một bản vá lỗi cho các JVM của Microsoft để hỗ trợ RMI Tuy nhiên ta khôngthể chắc chắn tất cả các Client đều được cài đặt bản vá này

2 Những thay đổi trong RMI từ JDK 1.02 đến JDK 1.1

Trong JDK 1.02, việc thi hành một dịch vụ RMI là sự mở rộng của lớp

java.rmi.server.UnicastRemoteServer Lớp này không sẵn có trong JDK1.1, nó được thay thế bởi lớp java.rmi.server.UnicastRemoteObject Sự hỗtrợ RMI trong JDK 1.02 chỉ là tạm thời, cần phải tránh trong các hệ thống tiếp theo.Tính sẵn sàng trong JDK 1.1 hoặc trong các JVM cao hơn trong đa số các nền tảng của

hệ điều hành là sự lựa chọn tốt nhất cho RMI

3 Những thay đổi trong RMI từ JDK 1.1 đến nền tảng thứ hai của Java

Các ứng dụng sử dụng việc nạp lớp động, mặc dù đã được cài đặt mặc định việcquản lý bảo mật là RMISecurityManager, nhưng nó sẽ không chạy nếu không cómột vài thay đổi dưới nền tảng thứ hai Java

Dưới nền tảng thứ hai Java việc thiết lập bảo mật có một vài tùy chọn cho ngườiphát triển:

+ Loại bỏ toàn bộ RMISecurityManager, và vô hiệu hóa việc nạp lớp động.+ Thay thế RMISecurityManager với một tùy chỉnh bảo mật, yêu cầu viết thêmmột đoạn mã để quản lý bảo mật

+ Chỉ rõ tệp tin chính sách bảo mật, chính sách này cho phép truy cập những thôngtin cần thiết

Cấu trúc của tệp tin chính sách bảo mật, được chỉ rõ trong các tài liệu về nền tảngthứ hai Java, nhưng cho hầu hết các ứng dụng tệp tin chính sách bảo mật đều có khuôndạng chung Nó cho phép kết nối tới TCP bằng cổng 1024 Nó giới hạn các tệp tinđược phép đọc trong thư mục c:\rmi, và được phép ghi trong thư mục c:\rmi\data

Ngày đăng: 06/12/2019, 07:05

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Phạm Văn Thiều, Nguyễn Quang Thanh, Hà Thị Thanh Tâm - Java dành cho sinh viên, NXB Thống kê, NXB 2000 Sách, tạp chí
Tiêu đề: Java dành cho sinhviên
Nhà XB: NXB Thống kê
[2]. Nguyễn Viết Linh và Đậu Quang Tuấn - Học nhanh kỹ thuật lập trình Java, Xí nghiệp in Bến Tre, NXB 2001 Sách, tạp chí
Tiêu đề: Học nhanh kỹ thuật lập trình Java
Nhà XB: NXB 2001
[3]. Nguyễn Anh Tuấn - Giáo trình lập trình mạng bằng Java, NXB Thống kê, Hà Nội, NXB 2003 Sách, tạp chí
Tiêu đề: Giáo trình lập trình mạng bằng Java
Nhà XB: NXB Thống kê
[4]. Đại Học Quốc Gia Thành phố Hồ Chí Minh - Giáo trình lập trình mạng bằng Java, NXB Thống Kê, Hà Nội, NXB 2003 Sách, tạp chí
Tiêu đề: Giáo trình lập trình mạng bằngJava
Nhà XB: NXB Thống Kê
[5]. Nguyễn Phương Lan, Hoàng Đức Hải - Lập trình ứng dụng Web với JSP/Servlet, NXB Lao Động Xã Hội.Tài liệu tiếng Anh Sách, tạp chí
Tiêu đề: Lập trình ứng dụng Web với JSP/Servlet
Nhà XB: NXB Lao Động Xã Hội.Tài liệu tiếng Anh
[1]. Thinhking in Java (giáo trình điện tử) Sách, tạp chí
Tiêu đề: Thinhking in Java
[2] . Java_Network_Programming_(O'Reilly-2nd_Ed-2000) (giáo trình điện tử) Sách, tạp chí
Tiêu đề: Java_Network_Programming
[3]. RMI - Java RMI - Tutorial (giáo trình điện tử) Sách, tạp chí
Tiêu đề: RMI - Java RMI - Tutorial
[4] Java Network Programming and Distributed Computing (Addison Wesley)Tài liệu khác Sách, tạp chí
Tiêu đề: Java Network Programming and Distributed Computing

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w