1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận LẬP TRÌNH MẠNG Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.

28 837 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 28
Dung lượng 1,02 MB

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

Nội dung

Tiểu luận LẬP TRÌNH MẠNG Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh. LỜI MỞ ĐẦU Ngày nay hầu hết các ứng dụng tin học đều được xây dựng để thực hiện trên mạng máy tính, các ứng dụng clientserver đang ngày càng được sử dụng phổ biến. Nhưng khi quy mô và mức độ của các ứng dụng tăng lên và yêu cầu về chất lượng, tốc độ xử lý và độ phức tạp cũng tăng theo thì trên thực tế, một xu hướng kỹ thuật mới ra đời – 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. Song để khai thác có hiệu quả toàn hệ, vấn đề quan trọng hàng đầu cần phải tính đến là các tài nguyên nói chung, đặc biệt là tài nguyên thông tin nói riêng và chiến lược khai thác, sử dụng chúng một cách tối ưu nhất. Chiến lược khai thác các tài nguyên dùng chung này là chức năng cũng như đối tượng nghiên cứu của các hệ tin học phân tán. Trong thực tế, hệ tin học phân tán với những nguyên lý, phương pháp của nó đã và đang được nhiều người quan tâm để có thể vận dụng trong quá trình tác nghiệp của mình. Việc lập trình giải quyết một bài toán hay giải quyết một yêu cầu xử lý phân tán các đối tượng vẫn là một vấn đề nóng bỏng của công nghệ ngày nay. Trong khuôn khổ môn học Lập trình mạng nâng cao, tiểu luận trình bày về vấn đề xây dựng giải pháp để giải quyết một bài toán cụ thể, đó là: Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server (n 2) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh. Vấn đề truy cập, xử lý thông tin và đảm bảo sự gắn bó dữ liệu trên hệ phân tán đã được nghiên cứu trong hàng loạt các công trình. Trong phạm vi tiểu luận của mình, tôi thực hiện những vấn đề sau: Chương I: Các khái niệm cơ bản về hệ phân tán, lập trình mạng và cơ sở dữ liệu phân tán. Chương 2: Kỹ thuật lập trình hướng đối tượng trong Java kết nối cơ sở dữ liệu với JDBC. Chương 3: Chương trình đảm bảo gắn bó dữ liệu khi cập nhật trong các cơ sở dữ liệu phân tán tại các ngân hàng. Chúng tôi xin chân thành cám ơn thầy giáo PGS.TS. Lê Văn Sơn đã tận tình giảng dạy, hướng dẫn và cung cấp tài liệu để chúng tôi nắm vững được kiến thức môn học này. Nhóm học viên thực hiện

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Tiểu luận LẬP TRÌNH MẠNG

Đề tài: Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server (n 2) quản lý m đủ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.

GVHD : PGS TS Lê Văn Sơn HVTH : Phan Thị Lệ Thuyền

Nguyễn Thị Thùy LỚP : Khoa học máy tính

KHÓA : 11 (2) quản lý m đủ009 – 2) quản lý m đủ011)

Đà Nẵng, tháng 03/2) quản lý m đủ010

Trang 2

LỜI MỞ ĐẦU

Ngày nay hầu hết các ứng dụng tin học đều được xây dựng để thực hiện trên mạngmáy tính, các ứng dụng client-server đang ngày càng được sử dụng phổ biến Nhưng khiquy mô và mức độ của các ứng dụng tăng lên và yêu cầu về chất lượng, tốc độ xử lý và độphức tạp cũng tăng theo thì trên thực tế, một xu hướng kỹ thuật mới ra đời – xu hướngphâ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ấtthông tin Song để khai thác có hiệu quả toàn hệ, vấn đề quan trọng hàng đầu cần phải tínhđến là các tài nguyên nói chung, đặc biệt là tài nguyên thông tin nói riêng và chiến lượckhai thác, sử dụng chúng một cách tối ưu nhất

Chiến lược khai thác các tài nguyên dùng chung này là chức năng cũng như đốitượng nghiên cứu của các hệ tin học phân tán Trong thực tế, hệ tin học phân tán vớinhững nguyên lý, phương pháp của nó đã và đang được nhiều người quan tâm để có thểvận dụng trong quá trình tác nghiệp của mình

Việc lập trình giải quyết một bài toán hay giải quyết một yêu cầu xử lý phân tán cácđối tượng vẫn là một vấn đề nóng bỏng của công nghệ ngày nay Trong khuôn khổ mônhọc Lập trình mạng nâng cao, tiểu luận trình bày về vấn đề xây dựng giải pháp để giảiquyết một bài toán cụ thể, đó là:

Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với

đảm bảo gắn bó mạnh.

Vấn đề truy cập, xử lý thông tin và đảm bảo sự gắn bó dữ liệu trên hệ phân tán đãđược nghiên cứu trong hàng loạt các công trình Trong phạm vi tiểu luận của mình, tôithực hiện những vấn đề sau:

Chương I: Các khái niệm cơ bản về hệ phân tán, lập trình mạng và cơ sở

dữ liệu phân tán.

Chương 2: Kỹ thuật lập trình hướng đối tượng trong Java kết nối cơ sở dữ

liệu với JDBC.

Chương 3: Chương trình đảm bảo gắn bó dữ liệu khi cập nhật trong các cơ

sở dữ liệu phân tán tại các ngân hàng

Chúng tôi xin chân thành cám ơn thầy giáo PGS.TS Lê Văn Sơn đã tận tình giảng

dạy, hướng dẫn và cung cấp tài liệu để chúng tôi nắm vững được kiến thức môn học này

Nhóm học viên thực hiện Phan Thị Lệ thuyền Nguyễn Thị Thùy

Trang 3

Các thiết bị phần cứng bao gồm các thiết bị xử lý trung tâm, bộ nhớ và các thiết bịngoại vi đóng vai trò là một trong hai loại tài nguyên cơ sở của hệ thống tin học Cácchương trình ứng dụng là thành phần tiếp theo sau hệ điều hành được hiểu như là các phầnmềm cơ sở phục vụ cho việc triển khai các ứng dụng cụ thể như chương trình dịch, hệquản trị cơ sở dữ liệu, các chương trình trợ giúp sử dụng các thiết bị chuyên dụng, các tròchơi điện tử

Người sử dụng (NSD) ở đây được hiểu theo nghĩa rộng, dưới góc độ của hệ điềuhành, có thể là các nhà chuyên môn, các máy tính, các hệ tự động vận hành, gắn với máytính đang khai thác hệ thông qua lệnh điều khiển theo một thuật toán nào đó nhằm đạtđược mục tiêu xác định từ trước

Hệ điều hành các máy tính và mạng máy tính gọi tắt là hệ điều hành được đặt sátphần cứng, nó gắn kết chặt chẽ với phần thiết bị bởi một hệ thống các chương trình, điềukhiển và sắp xếp nhằm khai thác phần cứng phục vụ cho các chương trình ứng dụng khácnhau của NSD khác nhau với kết quả và hiệu năng chấp nhận được

Như vậy, hệ tin học bao gồm ba thực thể: phần cứng, phần mềm và dữ liệu, được mô

tả ở hình I-2

Trang 4

Vậy hệ thống tin học (Informatic System) là một hệ thống bao gồm hai thành phần

cơ bản phần cứng (hardware) và phần mềm (software) gắn bó hữu cơ với nhau và có khảnăng xử lý thông tin

1.2 Hệ tin học phân tán

1.2.1 Định nghĩa

Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System) là hệ thống

xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau đượcliên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của một

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 truyền thông

Hình I-3: Các thực thể của hệ tin học phân tán

Trang 5

Đặc điểm cần nhấn mạnh của hệ là các hệ xử lý thông tin thành phần:

Không dùng chung hoặc chia sẻ bộ nhớ

Không sử dụng chung đồng hồ xung nhịp

Chúng liên lạc với nhau thông qua mạng truyền thông

Mỗi hệ xử lý có bộ xử lý, bộ nhớ và hệ điều hành riêng của nó

Thành phần của hệ phân tán bao gồm các hệ thống cục bộ trong đó mỗi một haynhiều hệ thống phát các yêu cầu thông tin còn các hệ khác trả lời các yêu cầu có liên quanđến phần dữ liệu của mình Nói một cách tổng quát là trong hệ luôn luôn diễn ra việc thựchiện các công việc do các hệ thống yêu cầu Các hệ thống truyền thống như hệ rời rạc haytập trung không thể đáp ứng nhanh chóng và chính xác các yêu cầu thông tin từ xa với lưulượng thông tin lớn

1.2.4 Các ưu điểm của tài nguyên dùng chung trong hệ phân tán

Hệ tin học phân tán thực hiện hàng loạt các chức năng phức tạp nhưng chức năng cơbản nhất là đảm bảo cung cấp cho người sử dụng khả năng truy cập có kết quả đến các tàinguyên vốn có và rất đa dạng của hệ thống như tài nguyên dùng chung

Việc định nghĩa các tài nguyên của hệ như tài nguyên dùng chung sẽ mang đến cho

hệ những hiệu năng tốt trong khai thác ứng dụng:

- Tăng tốc độ bình quân trong tính toán xử lý

- Cải thiện tình trạng luôn sẵn sàng của các loại tài nguyên

- Tăng độ an toàn cho dữ liệu

- Đa dạng hóa các loại hình dịch vụ tin học

- Bảo đảm tính toàn vẹn của thông tin

Tuy nhiên nó cũng dẫn đến hàng loạt các vấn đề khó khăn trong việc thiết lập hệ liênquan việc cấp phát tài nguyên dùng chung cho các tiến trình

Điều quan trọng là để đảm bảo các chức năng, yêu cầu nêu ra trên, hệ tin học phântán cần phải có các cơ chế kỹ thuật đủ mạnh nhằm đồng bộ hóa hoạt động của các tiếntrình và sự trao đổi thông tin với nhau sao cho hệ thống tránh được các trường hợp có thểdẫn đến bế tắc

1.2.5 Các thao tác chuẩn của hệ phân tán

Trang 6

- Tiếp nhận và ghi yêu cầu chỉ dẫn.

- Dịch yêu cầu để có các thông tin cần thiết Thực hiện một số công việc của hệthống cục bộ như kiểm tra quyền truy cập thông tin, lập hóa đơn dịch vụ

- Gửi kết quả cho hệ thống đã phát yêu cầu

2 LẬP TRÌNH MẠNG

2.1 Địa chỉ IP

Để hai hay nhiều máy tính kết nối được với nhau thì chúng phải có chung giao thức(protocol) Trên Internet, việc hai máy có thể trao đổi được với nhau đa số đều dựa vàogiao thức TCP/IP, theo giao thức này mỗi máy sẽ được đặt cho một số riêng biệt được gọi

là địa chỉ IP, các số IP này là duy nhất và không máy nào được trùng nhau, khi muốn máycủa mình có địa chỉ IP để tham gia vào hệ thống Internet toàn cầu như một máy chủ taphải đăng ký với tổ chức InterNIC (Internet Network Information Center) để nhận một số

IP riêng biệt Tuy nhiên, để gần gũi với con người và có ý nghĩa hơn người ta hay dùng tênthay cho địa chỉ IP, với mỗi hệ thống đều có sự chuyển đổi trực tiếp từ tên thành địa chỉ IPthích hợp trước khi dữ liệu được gửi đi

2.2 Giao thức TCP và giao thức UDP

Giao thức TCP (Transmission Control Protocol) gửi từng gói dữ liệu đi, nơi nhậntheo giao thức này phải có trách nhiệm thông báo và kiểm ra xem dữ liệu đã đến đủ haychưa hoặc có lỗi hay không có lỗi Trước khi chuyển dữ liệu bao giờ cũng có sự kết nốigiữa máy gửi và máy nhận Do phải đảm bảo dữ liệu được truyền chính xác và luôn duy trìkết nối nên sử dụng giao thức TCP cần phải mất thêm một số tài nguyên của hệ thống.Ngược lại giao thức UDP (User Datagram Prorocol) không đáng tin cậy lắm, không

có sự kết nối trước giữa máy gửi và máy nhận, giao thức này cho rằng máy nhận luôn ởtrạng thái sẵn sàng để tiếp nhận dữ liệu gửi đến Nếu dữ liệu gửi đến bị lỗi trong quá trìnhtruyền hay không nhận được đầy đủ thì giao thức UDP không có thông tin phải hồi chomáy gửi Tuy nhiên, giao thức UDP không đòi hỏi nhiều tài nguyên của hệ thống

Do đặc tính của hai giao thức như vậy, nên giao thức TCP thường được sử dụng chocác dịch vụ như truyền tập tin, các dịch vụ trực tuyến trên Internet đòi hỏi độ tin cậy cao…Giao thức UDP thường được dùng trong các ứng dụng không đòi hỏi sự chính xác caonhư: dịch vụ báo giờ, dịch vụ báo thông tin…

2.3 Dịch vụ từ máy chủ (server) và khái niệm cổng (port)

Trang 7

Khi kết nối vào máy chủ, ta có thể yêu cầu máy chủ cung cấp nhiều dịch vụ khácnhau như: tìm kiếm thông tin, gửi nhận E-mail… Mỗi dịch vụ đều có qui ước riêng chocác cách gửi/ nhận dữ liệu Giao thức TCP hay UDP chỉ chịu trách nhiệm đưa dữ liệu từmột máy tính này đến máy tính khác, còn dữ liệu đó sẽ được gửi cho dịch vụ nào thì phảithông qua một qui định nữa là cổng (port) Mỗi chương trình dịch vụ sẽ sử dụng một cổngkhác nhau để truy xuất thông tin Cổng là một số nguyên từ 1 đến 16383 Máy chủ sẽ quiđịnh cổng cho mỗi dịch vụ, thông tin giữa máy khách và máy chủ phải sử dụng cổng tươngứng thì mới trao đổi thông tin được, hầu hết các chương trình dịch vụ nổi tiếng đều có quiđịnh cổng chuẩn riêng:

2.4 Giao tiếp theo mô hình client/server

2.4.1 Giao tiếp theo mô hình client/server

Có rất nhiều dịch vụ hỗ trợ trên Internet như E-mail, nhóm tin (newsgroup), chuyểntập tin (file transfer), đăng nhập từ xa (remote login), truy tìm thông tin trên Web… Những

mô hình này được kiến trúc theo mô hình khách/chủ (client/server) Các chương trình ởmáy khách (client) như trình duyệt Web (web browser), chương trình gửi nhận E-mail…;các chương trình dịch vụ trên máy chủ (server) như web server, mail server… sẽ xử lýnhững yêu cầu này và gửi kết quả ngược về cho máy khách, thông thường một dịch vụtrên máy chủ phục vụ cho rất nhiều yêu cầu của máy khách

2.4.2 Các chương trình thường chạy trên máy client

Nhìn chung, các chương trình trên máy khách thực hiện những nhiệm vụ sau:

- Kết nối máy chủ

- Nhận dữ liệu hay yêu cầu của người sử dụng

- Gửi dữ liệu hoặc yêu cầu của người sử dụng đến máy chủ để lưu trữ hoặc xử lý

- Trình bày kết quả trả về từ máy chủ cho người sử dụng

2.4.3 Các chương trình thường chạy trên máy server

Trang 8

Các chương trình được thiết kế chạy trên máy chủ thực hiện những nhiệm vụ sau:

- Lắng nghe các kết nối từ máy khách gửi đến

- Tiếp nhận những yêu cầu từ phía máy khách

- Xử lý những yêu cầu từ phía máy khách

- Gửi trả kết quả về cho máy khách

Như vậy, một chương trình ở trên máy chủ đóng vai trò như một dịch vụ (service)phục vụ cho máy khách

2.5 Lập trình đối tượng phân tán

Lập trình đối tượng phân tán là một trong những vấn đề nóng bỏng của công nghệphần mềm hiện nay, cộng đồng những người lập trình bắt đầu nghĩ rằng đối tượng có ởmọi nơi Những đối tượng này được hỗ trợ trao đổi với nhau theo những giao thức chuẩntrên mạng Java là một trong những ngôn ngữ đi tiên phong trong việc giải quyết vấn đềlập trình phân tán Ví dụ, có một đối tượng ở máy khách (client), ở đó người sử dụng cầnphải điền dữ liệu vào mẫu báo cáo Đối tượng này có thể gửi một thông điệp cho đối tượngtrên máy chủ (server) trên mạng để yêu cầu cung cấp các thông tin cần thiết, đối tượngtrên máy chủ truy cập vào các cơ sở dự liệu để có được những thông tin mà máy kháchyêu cầu và gửi lại cho đối tượng trên máy khách

2.5.1 Thiết lập môi trường triệu gọi từ xa

Để thực hiện được việc triệu gọi từ xa thì ta phải chạy chương trình ở trên cả máykhách và máy chủ

Những thông tin cần thiết cũng phải được cài đặt tách biệt ở máy khách và máy chủ.Tuy nhiên không nhất thiết phải có hai máy tính riêng biệt Nhờ có máy ảo Java, khi mởcửa sổ DOS-Prompt (môi trường DOS dưới Window) để chạy chương trình Java, chươngtrình này được xem như chạy trên một máy (ảo) độc lập Do đó, nếu hai chương trình Javachạy ở trong hai cửa sổ riêng thì có thể xem như là chúng thực hiện trên hai máy khácnhau

2.5.2 Mô hình tính toán Client/Server

Khi nói tới lập trình mạng ta thường nghĩ đến cách trao đổi giữa chương trình phục

vụ (Server) với chương trình khách (Client) Chương trình khách gửi một yêu cầu tới chochương trình phục vụ, và chương trình này xử lý dữ liệu để trả lời cho chương trình khách.Như vậy, chương trình khách muốn gửi được yêu cầu thì trước hết phải tìm cách kết nối

Trang 9

với Server Server có thể chấp nhận hay từ chối sự kết nối này Một khi sự kết nối đã đượcthiết lập thì Client và Server trao đổi với nhau thông qua Sockets Các lớp trong góijava.net cung cấp các phương thức để kết nối mạng và trao đổi tin giữa các máy với nhautheo mô hình Client/Server

Socket chính là lớp (trừu tượng) thực hiện sự trao đổi giữa Server và Client Javaxem sự trao đổi giữa Server và Client dựa trên Socket gần giống như các thao tác vào/ra,nghĩa là các chương trình có thể đọc, ghi vào Socket dễ dàng như chúng đọc, ghi lên tệp

dữ liệu Lớp Server tạo ra sự kết nối từ máy Client tới Server thông qua các phương thứctạo lập đối tượng

Lớp ServerSocket dùng để tạo kết nối từ máy Server tới máy Client Đối tượng củalớp này được tạo ra trên Server và lắng nghe những kết nối từ máy Client theo cổng xácđịnh Server phải chạy thường trực trước khi Client bắt đầu thực hiện Server chờ sự yêucầu kết nối của Client Để thiết lập được một Server, ta phải tạo ra một đối tượng, ví dụServerSocket của lớp Server, gắn nó với một cổng nào đó và lắng nghe xem có Client nàocần kết nối hay không Các Socket được xác định tương ứng với địa chỉ của máy và cổng serverSock = new ServerSocket(Integer.parseInt(txtPort.getText()));

Trong đó port là số hiệu của cổng nằm giữa 0 và 1023 Cổng cho phép trao đổi tingiữa hai chương trình

Tất cả các lớp cơ bản cho việc giao tiếp và làm việc với mạng đều nằm trong góiJava.net, như lớp socket API (Application Program Interface)

Socket API của Java cung cấp các công cụ để truy cập đến các giao thức mạng chuẩnđược sử dụng để giao tiếp giữa các Host trên mạng Internet Socket API là công cụ mứcthấp nhất, chúng ta có thể sử dụng socket cho bất kỳ kiểu giao tiếp Client/Server nào vàcác ứng dụng ngang hàng trên mạng nhưng chúng ta phải cài đặt các giao thức ứng dụngmức thấp để điều khiển và thông dịch dữ liệu

Socket là giao diện lập trình mức thấp cho các giao tiếp hướng mạng Chúng gửi cácdòng dữ liệu giữa các ứng dụng có thể hoặc không nằm trên cùng một host Gói java.net

hỗ trợ một giao diện hướng đối tượng, đơn giản hóa socket nên việc giao tiếp mạng trởnên dễ dàng hơn Java cung cấp các socket để hỗ trợ cho 3 lớp phân biệt của các giao thứcbên dưới: Socket, DatagramSocket, MulticastSocket

Lớp Socket sử dụng giao thức hướng kết nối TCP/IP, đảm bảo dữ liệu không bị mấttrong quá trình truyền

Trang 10

Lớp ServerSocket được sử dụng để thu nhận các kết nối từ client của server.ServerSocket chỉ được tạo một lần và nhận các kết nối đến từ các client Phương thứcaccept của ServerSocket sẽ đợi cho đến khi có kết nối đến và trả về một đối tượng Socket.

3 CƠ SỞ DỮ LIỆU PHÂN TÁN

Một cơ sở dữ liệu phân tán là tập hợp nhiều cơ sở dữ liệu có liên đới logic và được

phân bố trên một mạng máy tính Từ đó ta định nghĩa: Hệ quản trị cơ sở dữ liệu phân tán

(DDMS) là một hệ thống phần mềm cho phép quản lý các cơ sở dữ liệu phân tán và làm cho việc phân tán trở nên “vô hình” đối với người sử dụng.

Môi trường của hệ quản trị cơ sở dữ liệu phân tán được mô tả qua hình I-4

Hình I-4: Môi trường của hệ cơ sở dữ liệu phân tán

Trang 11

CHƯƠNG II:

KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA

KẾT NỐI CƠ SỞ DỮ LIỆU VỚI JDBC

1 SƠ LƯỢC VỀ JAVA

Java là một ngôn ngữ lập trình đơn giản, hướng đối tượng, hỗ trợ lập trình phân tán,thông dịch và biên dịch, mạnh mẽ bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả và linhđộng

Sự hỗ trợ lập trình hướng đối tượng là cốt lõi của Java Mọi câu lệnh của Java đều tácđộng đến các đối tượng mà đặc trưng của chúng là lớp (class), đối tượng là thể hiện(instance) của lớp và phương thức (method) là một thao tác hoặc được thực hiện bởi chính

nó, hoặc thực hiện khi có yêu cầu từ môi trường (thông điệp từ đối tượng khác)

Java hỗ trợ các ứng dụng phân tán bằng các lớp mạng java.net, một chương trìnhJava có thể là sự kết hợp của rất nhiều tập tin *.class nằm rải rác trên nhiều vùng vật lýkhác nhau như ổ đĩa hay các máy chủ ở những vị trí khác nhau trên Internet Ngôn ngữJava cung cấp các công cụ đủ mạnh để thiết kế bất kỳ ứng dụng nào theo mô hình kháchchủ (client/server) và phân tán (distributed)

Java là một ngôn ngữ thông dịch trên cơ sở đã biên dịch trước thành bytecode nên nótrở nên khả chuyển Java được thiết kế cho mục đích đa nền, nên mã lệnh của chương trìnhJava sau khi biên dịch là một dạng tập tin nhị phân được gọi là bytecode, có phần mở rộng

là *.class, và nó được triệu gọi thực thi trong máy ảo Java (JVM – Java Virtual Machine).JVM là một kiến trúc của bộ xử lý nhưng thực thi theo cơ chế phần mềm thay vì phầncứng, chính vì lý do này mà chương trình Java *.class có thể chạy như nhau trên nhiều hệđiều hành khác nhau

Vì dùng trình thông dịch nên Java là một ngôn ngữ rất năng động Trong khi thực thi,môi trường Java có thể tự mở rộng để liên kết với các lớp mới nằm rải rác trên các máychủ khác nhau Đó cũng là thuận lợi lớn của Java so với các ngôn ngữ lập trình khác

2 RMI VÀ LẬP TRÌNH PHÂN TÁN HƯỚNG ĐỐI TƯỢNG TRONG JAVA

2.1 Khái niệm chung

Java RMI (Remote Method Invocation): Là một cơ chế gọi hàm từ xa đã được thựchiện và tích hợp trong ngôn ngữ Java, là phương pháp lập trình hướng đối tượng

Trang 12

RMI mang ý nghĩa triệu gọi phương thức từ xa – là cách thức giao tiếp giữa các đối

tượng Java có mã lệnh cài đặt (bao gồm phương thức và thuộc tính) nằm trên các máykhác nhau có thể triệu gọi lẫn nhau

Mô hình dưới đây cho thấy các đối tượng cho phép triệu gọi lẫn nhau Trên máy Acác đối tượng A1, A2 gọi phương thức của nhau được gọi là triệu gọi phương thức cục bộ,đây là cách mà lập trình hướng đối tượng truyền thống vẫn sử dụng Tương tự, tương tácgiữa C1, C2 ,C3 là tương tác cục bộ

Tuy nhiên, đối tượng Java có thể gọi phương thức của đối tượng nằm trên một máy

khác dựa vào giao thức triệu gọi từ xa RMI.

Hình II-1: Mô hình triệu gọi các đối tượng từ xa 2.2 Gọi phương thức từ xa và các vấn đề phát sinh

Triệu gọi phương thức từ xa phức tạp hơn triệu gọi phương thức cục bộ Các đốitượng trên hai Server khác nhau hoạt động trên hai tiến trình khác nhau cho nên việc thamchiếu biến, địa chỉ đối tượng là khác nhau

Ví dụ: Khi truyền con trỏ cho một phương thức ở xa, trên máy đang sử dụng sẽ tồntại nhưng trên Server khác (nơi đối tượng thực thi phương thức) sẽ không có bất kỳ vùngnhớ nào được cấp phát cho con trỏ

Computer A

A2

A1

Computer CC1

C2

Computer B

B1

C3

Trang 13

Trên máy cục bộ lời gọi hàm, các tham số truyền cho hàm thường được đặt vào ngănxếp (stack).

Tham số truyền cho phương thức của đối tượng ở xa được đóng gói và chuyển quamạng để đến được phương thức thực sự

2.3 Vai trò các lớp trung gian STUB và SKELETION

Hình vẽ dưới biểu thị: Gọi phương thức từ xa các đối tượng thông qua lớp trung gian.Đối tượng Java trên hai máy khác nhau không gọi nhau trực tiếp mà thông qua lớp trunggian

Lớp trung gian này tồn tại ở hai phía: Máy khách (nơi gọi phương thức của đối tượng

ở xa) và máy chủ (nơi đối tượng thực sự được cài đặt để thực thi mã lệnh của phươngthức)

Phía máy khách lớp trung gian này được gọi lớp móc (stub)

Hình II-2: Gọi phương thức của các đối tượng thông qua lớp trung gian

Phía máy chủ lớp trung gian gọi lớp nối (skeletion)

Ví dụ: Đối tượng C1 được cài đặt chạy trên máy C Trình Java sẽ tạo ra hai lớp trunggian C1_Skel và C1_Stub Lớp C1_Stub sẽ được đem về máy Computer A Khi A1 trênmáy computer A gọi C1 nó sẽ chuyển lời gọi đến lớp C1_Stub C1_Stub chịu trách nhiệmđóng gói tham số, chuyển tham số qua mạng đến máy C Trên máy C lớp nối C1_Skel sẽnhận tham số chuyển vào vùng không gian địa chỉ tương thích với đối tượng C1 sau đó gọi

Trang 14

phương thức tương ứng Kết quả nếu có do phương thức của đối tượng C1 trả về sẽ đượclớp C1_Skel đóng gói trả ngược về cho C1_Stub C1_Stub chuyển giao kết quả cuối cùnglại cho A1 Bằng cơ chế này, A1 luôn nghĩ rằng nó đang hoạt động trực tiếp với đối tượngC1 ngay trên máy cục bộ Hơn nữa, nhờ sự giúp đỡ của lớp trung gian C1_Stub, khi kếtnối mạng gặp sự cố lớp trung gian stub sẽ luôn biết cách thông báo lỗi đến đối tượng A1.Thực tế làm thế nào A1 tham chiếu được đến C1, một khi không có lớp C1 nào đượccài đặt ở máy A? C1_Stub trên máy A chỉ làm lớp nền trung gian chuyển đổi tham số vàthực hiện các giao thức mạng, nó không phải là hình ảnh của đối tượng C1 Để làm đượcđiều này, đối tượng C1 cần cung cấp một giao tiếp interface tương ứng với các phươngthức cho phép đối tượng A1 gọi nó trên máy A

Stub thường trực trên máy khách, không ở trên máy chủ Nó có vai trò đóng gói các

thông tin bao gồm:

Định danh đối tượng từ xa cần sử dụng

Mô tả về phương thức cần triệu gọi

Mã hoá các tham số và truyền cho Skel

Stub sẽ chuyển những thông tin trên cho máy chủ Ở phía máy chủ, đối tượngSkel nhận thực hiện những công việc sau để gọi phương thức từ xa:

Giải mã các tham số

Xác định đối tượng để thực hiện lời gọi hàm tương ứng

Thực hiện lời gọi phương thức theo yêu cầu

Tập hợp kết quả để trả lời hoặc thông báo các lỗi ngoại lệ

Gửi trả lời gói các dữ liệu kết quả cho Stub ở trên máy khách

2.4 Cài đặt ứng dụng phân tán của RMI

Hình vẽ biểu thị: Triệu gọi đối tượng RMI giữa Server2 và Server1 Đối tượngCalculator/Server2 sẽ được gọi bởi đối tượng CalculatorClient/Server1 Chúng ta xâydựng lớp đối tượng Calculator với đặc tả interface như sau:

public interface Calculator {

public int addNumber(int x, int y);}

Ngày đăng: 12/11/2014, 08:51

HÌNH ẢNH LIÊN QUAN

Hình I-3:    Các thực thể của hệ tin học phân tán - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh I-3: Các thực thể của hệ tin học phân tán (Trang 4)
Hình I-4: Môi trường của hệ cơ sở dữ liệu phân tán - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh I-4: Môi trường của hệ cơ sở dữ liệu phân tán (Trang 10)
Hình II-1: Mô hình triệu gọi các đối tượng từ xa 2.2  Gọi phương thức từ xa và các vấn đề phát sinh - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh II-1: Mô hình triệu gọi các đối tượng từ xa 2.2 Gọi phương thức từ xa và các vấn đề phát sinh (Trang 12)
Hình vẽ dưới biểu thị: Gọi phương thức từ xa các đối tượng thông qua lớp trung gian. Đối tượng Java trên hai máy khác nhau không gọi nhau trực tiếp mà thông qua lớp trung gian. - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
Hình v ẽ dưới biểu thị: Gọi phương thức từ xa các đối tượng thông qua lớp trung gian. Đối tượng Java trên hai máy khác nhau không gọi nhau trực tiếp mà thông qua lớp trung gian (Trang 13)
Hình II-4: Cơ chế gọi hàm từ xa của các đối tượng RMI - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh II-4: Cơ chế gọi hàm từ xa của các đối tượng RMI (Trang 15)
Hình II-3 Cài đặt ứng dụng phân tán RMI 2.5  Cơ chế gọi hàm từ xa của các đối tượng RMI một cách tổng quát - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh II-3 Cài đặt ứng dụng phân tán RMI 2.5 Cơ chế gọi hàm từ xa của các đối tượng RMI một cách tổng quát (Trang 15)
Hình II-5: Đăng ký các đối tượng trên RMIRegistry - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh II-5: Đăng ký các đối tượng trên RMIRegistry (Trang 16)
Hình II-6: Cơ chế hoạt động của máy ảo Java trên mô hình mạng vật lý - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh II-6: Cơ chế hoạt động của máy ảo Java trên mô hình mạng vật lý (Trang 17)
Hình III-1: HNBank Database - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh III-1: HNBank Database (Trang 21)
Hình III-4: Mô hình hệ thống ngân hàng chạy mạng với CSDL phân tán - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh III-4: Mô hình hệ thống ngân hàng chạy mạng với CSDL phân tán (Trang 22)
Hình III-3: SGBank Database - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh III-3: SGBank Database (Trang 22)
Hình III-5: Giao diện phía Client - Tiểu luận LẬP TRÌNH MẠNG  Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.
nh III-5: Giao diện phía Client (Trang 24)

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