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

xây dựng hệ thống kiểm tra kết quả xổ số bằng java corba middleware

30 1,1K 11

Đ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 30
Dung lượng 1,01 MB

Nội dung

xây dựng hệ thống kiểm tra kết quả xổ số bằng java corba middleware

Trang 1

Xây dựng hệ thống kiểm tra kết quả xổ số bằng Java Corba

Middleware

Giảng viên : TS Tân Hạnh

Sinh viên : Trần Tuấn Vũ

Lớp : D07THM1

MSSV : 407170078

Trang 2

Chương I : TÓM TẮT VÀ GIỚI THIỆU

I Tóm tắt:

Nếu bạn là một lập trình viên, bạn sẽ hiểu được công việc nặng nhọc khi phảiviết mã lệnh cho chương trình Cách thiết kế chương trình theo mô hình thủ tục ( top-down procedural hay thủ tục trên-xuống) dần dần được thay thế bằng mô hình hướngđối tượng khoa học và hiệu quả hơn

Lập trình hướng đối tượng đã chứng minh tính đúng đắn và sức mạnh của nó

trong việc thiết kế các hệ thống lớn cũng như dễ dàng trong việc nâng cấp và bảo trì

mã lệnh Ngày nay, hầu như mọi ngôn ngữ lập trình đều hỗ trợ và thấm nhuần tưtưởng đối tượng Mở đầu là Smalltalk, C++, Object Pascal, Delphi, Visual Basic tiếpđến là các hệ quản trị cơ sở dữ liệu Visual Foxpro, Access, SQLserver, Oracle… vànhư bạn đã thấy Java là ngôn ngữ ra đời sau nhưng lại thuần đối tượng nhất TrongJava mọi thứ, mọi nơi, mọi khái niệm đều qui về đối tượng

Tuy nhiên lại nảy sinh một bất đồng lớn giữa các ngôn ngữ lập trình Đó là các

đối tượng thiết kế bằng ngôn ngữ nào thì sau khi biên dịch ra mã nhị phân (binary) chỉ

có mã lệnh tương ứng của ngôn ngữ đó mới có khả năng truy xuất được đối tượng.Đối tượng viết bằng C++ không dễ dàng truy xuất được từ mã lệnh Delphi hay VisualBasic một cách tự nhiên Ngay cả đối tượng viết bằng Java cũng khó lòng gọi được từcác ngôn ngữ lập trình khác (mặc dù đã có một số kỹ thuật như sử dụng thư viện liênkết động DLL, gọi các hàm thư viện native… nhưng đó không phải là giải pháp toànvẹn)

Java ra đời với mong muốn các ứng dụng hay đối tượng viết bằng Java có thể

chạy được mọi lúc mọi nơi trên mọi hệ điều hành (và cho đến nay có thể nói SunMicrosystem hầu như đã thực hiện được mong ước của mình với sự nổi tiếng củaJava)

Tuy nhiên, Java không thể thay thế các ngôn ngữ lập trình khác được Không thểbắt mọi lập trình viên trên thế giới đều chuyển sang viết Java trong khi có hàng trămtriệu dòng mã lệnh của chương trình cũng như thư viện đã được thiết kế và xây dựng

từ các ngôn ngữ “tiền bối” khác (điển hình là C/C++ hay Pascal) đang hoạt động rấthiệu quả

Tuy nhiên các nhà lập trình luôn mong muốn tìm được tiếng nói chung cho tất cả

các ngôn ngữ lập trình hiện có Và thế là Corba ra đời

Trang 3

Corba đã được coi như là “quốc tế ngữ” trong giới ngôn ngữ lập trình.

II Giới thiệu:

Chuẩn CORBA do tổ chức OMG (Object Management Group) quản lý và pháttriển Đây là hiệp hội lớn nhất của các nhà phát triển, sản xuất và ứng dụng phần mềmtrên thế giới, hiện nay có gần 1.000 thành viên

Chuẩn CORBA đưa ra một kiến trúc đối tượng phân tán cùng với các đặc tả ứngdụng cho nhiều lĩnh vực khác nhau, nhiều nền khác nhau và nhiều ngôn ngữ lập trìnhkhác nhau Vì tính trung lập của nó, CORBA được hỗ trợ rất rộng rãi, đặc biệt trongcác hệ thống thông tin thương mại, phần mềm giao dịch kinh doanh và dịch vụ viễnthông Tuy nhiên, cũng do tính độc lập của nó dẫn đến nhiều lý do mà CORBA khôngthực sự mạnh ở các hệ thống ứng qui mô vừa và nhỏ

CORBA (Common Object Request Broker Architecture) (tạm dịch là Kiến trúcmôi giới gọi các đối tượng thông dụng) là một kiến trúc chuẩn cho các hệ đối tượngphân tán

Nó cho phép một tập các đối tượng hỗn hợp, phân tán siêu tương tác với nhau

là một chuẩn hết sức quan trọng ra nhằm cho phép thực hiện kiến trúc "client – sever"theo phương pháp tiếp cận hướng sự vật, trên những hệ thống máy khác nhau và phântán, để cho phép nhiều nhóm sản xuất phần mềm khác nhau cùng cộng tác

Chuẩn CORBA khi đầu chỉ được quan niệm với các phần mềm 'cố định' vàhoạt động phân tán trong một mạng cục bộ Chuẩn này vừa ra đời thì cũng cùng lúc đóxuất hiện ngôn ngữ Java và công nghệ tác tử, cho phép mỗi khi cần dùng thì bản thântrạm phục vụ thông qua mạng nạp xuống vào máy khách những tác tử ‘Client’, do đóviệc chuẩn hoá giao diện "client-sever" ở mức độ ứng dụng trở nên đơn giản hơn

Thêm nữa, với sự bùng nổ Internet thì mở rộng CORBA để xử lý phân tán ởmạng tầm rộng qua Internet trở thành quan trọng, và khi đó phải kết hợp CORBA vớingôn ngữ giao diện XML của Internet, XML đang được triển khai để mở rộng HTML

mà chúng ta quen thuộc, vì cái áo HTML đã quá chật

Trang 4

Hình 1: Cấu trúc mô hình Corba

Hình trên minh họa cấu trúc mô hình CORBA, trong đó bộ phận trừu tượngtrung gian mang tên Object Request Broker (ORB) giữ vai trò quan trọng nhất(broker) ORB cho phép khách hàng (client) sử dụng dịch vụ của đối tượng phục vụ(server) mà không cần biết cụ thể dạng thực hiện, nền triển khai và vị trí cài đặt củađối tượng phục vụ Kiến trúc ở đây được thực hiện theo các mẫu thiết kế đã trình bàytrong phần trước

Ưu nhược điểm của CORBA là các lập trình viên có thể chọn bất kỳ ngôn ngữ,nền tảng phần cứng, giao tiếp mạng và các công nghệ để phát triển mà vẫn thỏa mãncác tính chất của CORBA Tuy nhiên, CORBA có một số nhược điểm là: nó là ngônngữ lập trình bậc thấp, rất phức tạp, khó học, và cần một đội ngũ phát triển có kinhnghiệm Ngoài ra các đối tượng CORBA cũng khó tái sử dụng

Trang 5

Chương II : CORBA

I Mục tiêu, đặc trưng thiết kế của CORBA

1 Các mục tiêu của CORBA:

Khi xây dựng kiến trúc Corba, các nhà thiết kể mong đáp ứng được một

- Môi giới yêu cầu đối tượng cụ thể

- Thứ bậc của phân tán đối tượng

 Tính trong suốt trong liên kết của Corba:

- Định vị đối tượng trong suốt

- Cho phép các đối tượng tạo ra các lời triệu gọi và nhận kết quả trả lại một cách trong suốt

- Tương tác với các đối tượng từ xa giống như đối tượng cục bộ:

 Giữa các host khác nhau

+ Các môi trường phân tán không đồng bộ

- Corba sử dụng cơ chế môi giới yêu cầu đối tượng ORB để định vị các đối tượng

 Corba kiến trúc mở: Tại sao?

- IDL – Ngôn ngữ định nghĩa giao diện hạt nhân ngôn ngữ trong CORBA

- Định nghĩa giao diện IDL được các ngôn ngữ phát triển ứng dụng như C++, Java,… sử dụng để triệu gọi các đối tượng từ xa như ngôn ngữ, nền – platform và trong suốt trong định vị đối tượng ( Các ngôn ngữ từ

xa có thể không được cài đặt ngôn ngữ giống như các đối tượng cục bộ)

 Tính đồng nhất: Các đối tượng của Corba có tính đồng nhất:

- Server Corba có thể chứa nhiều giao diện với nhiều trường hợp

- Tham chiếu đối tượng xác định một trường hợp cụ thế

Tham chiếu đối tượng Corba có thể thực hiện liên tục:

Trang 6

- Một số đối tượng Corba chỉ tồn tại nhất thời và chỉ được sử dụng bởi một Client.

- Một số đối tượng Corba có thể được chia sẻ và tồn tại lâu dài theo quy trình nghiệp vụ và chính sách được quyết định khi đóng gói “destroy” đối tượng

Các đối tượng của Corba có thể định vị (cấp phát) lại:

- Tham chiếu đối tượng không quan tâm đến vị trí của đối tượng

- Đối tượng Corba có thể được định vị lại bởi Amid hoặc chạy lại chương trình

- Thực thi Corba có thể hỗ trợ giao dịch được định vị lại

Corba hỗ trợ để các đối tượng phục hồi, sao chép lại khi cùng tham chiếu đối tượng giống nhau trên các vùng nhớ khác nhau

2 Đặc trưng thiết kế của CORBA:

 CORBA làm việc với giao diện:

- Tất cả các đối tượng Client chỉ có thể truy cập đối tượng CORBA thông qua giao diện

- Sự phân chia giữa các Interface và các implementation cho phép tạo ra

đa các thực thi –implementations cho một giao diện

 Đặc trưng Server CORBA:

- Khi nói đến server ta phải rằng đang nói đến quy trình trên server chứ không phải máy server

- Một hoặc nhiều quá trình server CORBA có thể chạy trên cùng một máy

- Mỗi quá trình server CORBA chứa một hoặc nhiều trường hợp về đối tượng CORBA, một hoặc nhiều giao diện CORBA

Object IDL-interface

Trang 7

Đối tượng Corba có thể định vị đến các quá trình, trong quá trình khác nhau trên cùng một máy hoặc các quá trình khác nhau trên những máy khác nhau.

II Kiến trúc CORBA:

Mô hình kiến trúc CORBA

CORBA còn được gọi là ngôn ngữ đặc tả giao tiếp (IDL – Interface DescriptionLanguage) Mô tả chức năng của đối tượng thông qua hàm, phương thức, thuộc tính…Không chứa bất kỳ cài đặt mã lệnh nào Đặc tả đối tượng dựa trên khái niệm interfacetrong Java

Trong kiến trúc chung Corba thì ORB (Object Request Broker) là thành phần trọng tâm và hạt nhân ORB được coi là highway ( xa lộ hay còn gọi là băng thông) thực thi tất cả các vấn đề truyền thông của CORBA

Khi một ứng dụng Client muốn sử dụng dịch vụ do Server cung cấp cần:

Trang 8

- Thứ nhất: thực hiện được tham chiếu đến đối tượng trên Server cung cấp.

- Thứ hai: xử lý các yêu cầu tham chiếu đối tượng, cho phép các thành phần ứng dụng kết nối lẫn nhau

Nói chung nhiệm vụ của ORB là:

- Sắp xếp thứ tự dữ liệu

- Quản lý định vị đối tượng

- Truyền tải yêu cầu đến đối tượng trên Server

- Trả lại kết quả cho Client

Trang 9

Hình trên biểu diễn một yêu cầu Một client giữ một tham chiếu đối tượng đếnmột đối tượng phân tán Tham chiếu đối tượng được định kiểu bởi một giao tiếp.Trong hình dưới thì tham chiếu đối tượng được định kiểu bởi giao tiếp Rabbit ObjectRequest Broker (ORB), đưa yêu cầu đến đối tượng và trả về một số kết quả cho client.Trong hình yêu cầu jump trả về một tham chiếu đối tượng được định kiểu bởi giaotiếp AnotherObject.

III IDL (Interface definition language - Ngôn ngữ định nghĩa giao diện)

1 Sơ lược về IDL :

+ IDL(Interface Definition Language) là ngôn ngữ đặc tả interface IDL không

có lệnh, chỉ có các mô tả hàm, kiểu dữ liệu, các khai báo để đặc tả đối tượng CORBAdùng IDL để có thể cài đặt client/server bằng các ngôn ngữ khác nhau có hỗ trợCORBA như là C, C++, COBOL, Ada, Java Mỗi ngôn ngữ hỗ trợ CORBA đều cótrình chuyển đổi IDL sang ngôn ngữ đó

+ CORBA dùng IDL để viết Interface, sau đó dùng các trình biên dịch để dịchsang ngôn ngữ cụ thể, đồng thời tạo lớp stub, skel và một số lớp hỗ trợ CORBA

Chúng ta sẽ xem xét một ví dụ sử dụng CORBA Đầu tiên chúng ta định nghĩaIDL cho đối tượng từ xa:

interface ExampleCORBA {

attribute string s;

};

Bây giờ chúng ta có thể biên dịch IDL dùng lệnh idlj Tham số -fall phát sinh

mã cả 2 phía máy client và server

idlj -fall ExampleCORBA.idl

Trang 10

Sau khi biên dịch IDL, sẽ phát sinh một số tập tin sau:

idl2cpp Calculator.idl // chuyển sang C++

idlj Calculator.idl // chuyển sang java

Kết quả là chúng ta có được tập tin CalculatorOperations.java như sau:

public interface CalculatorOperations

Trang 11

2 Ánh xạ giữa ngôn ngữ IDL và Java (IDL mapping to Java)

Dưới đây là tập các ánh xạ của ngôn ngữ IDL trong CORBA tương đương với các kiểu dữ liệu và từ khoá có trong Java.

Interface Interface, helper class, holder class

Nhận xét: Ngôn ngữ đặc tả trong mô hình CORBA gần giống với ngôn ngữ C.CORBA đưa ra từ khóa in cho các biến truyền vào theo trị và từ khóa out để lấy trịtrả về

Sau đây là một ví dụ ánh xạ giữa CORBA và Java:

Trang 12

CORBA IDL JAVA

Int subtract ( int x, Int y );

Int divide ( int x, Int y );

Int multiple( int x, Int y );

string About ( string version );

Trang 13

- Module là một khối có tên cho phép nhóm các tên lại trong cùng một không gian tên ( tương tự như namespace trong C++):

- Các module có thể được mở lại (trong cùng một tệp hoặc trong tệp khác)

- Phạm vi của các tên giống như trong cấp phân cấp các module

- Một tên có thể được định nghĩa lại trong các module con

- Tên có thể được truy nhập từ bên ngoài thông qua toán tử :: như trong C++

 Các kiểu dữ liệu cơ bản

Bảng sau đây miêu tả chi tiết các đặc điểm của các kiểu dữ liệu cơ sở:

IV Các dịch vụ trong Corba:

+ Naming Service: Là dịch vụ cho phép truy xuất đến các đối tượng phân bốthông qua tên và được định nghĩa trong CosNaming.idl

Trang 14

Gồm có 2 interface chủ yếu là NamingComponent và NamingContext, đượclưu trữ theo kiến trúc cây phân cấp.

+ NamingComponent:là thành phần chứa tên (tên nhãn hoặc tên tập tin) và cóthể ràng buộc tên với một đối tượng corba bất kỳ

+ NamingContext: Là đối tượng dùng để tham chiếu đến một

NamingComponent hay một NamingContext khác, giống như thư mục trong hệthống file, NamingContext đặt tên dựa vào NamingComponent

Các hàm cơ bản trong để tạo NamingComponent và NamingContext:

Bind(NameComponent[] path, Object obj)

Bind_context(NameComponent[] path, NameContext nc)

Rebind(NameComponent[] path, Object obj)

 Hủy một bind

Unbind(NameComponent[] path)

 Liệt kê các binding trong một context

List(NameContext nc, BindingList bl, BindingIterator bt)

Trang 15

Chương III: CORBA VÀ CÔNG NGHỆ PHÂN TÁN

Kiến trúc cơ bản của hệ phân tán.

Hệ phân tán cho phép con người có thể hợp tác, phối hợp các hoạt động mộtcách mềm dẻo và hiệu quả Mục tiễu chính của hệ phân tán có thể được thể hiện thôngqua: chia sẻ tài nguyên( resource sharing), tính mở (openness), tính đồngthời(concurency), khả năng mở rộng (scalability),tính chịu lỗi (faul-tolerance), tínhtrong suốt (transparency)

Chia sẻ tài nguyên: trong hệ phân tán, phần cứng, phần mềm, dữ liệu có thểđược chia sẻ dễ dàng giữa nhiều người sử dụng Tài nguyên được thiết kể tập trunghoặc phân tán; tương tác theo kiến trúc client-server Tài nguyên được tổ chức thànhcác đối tượng và đựoc định danh duy nhất trong hệ thống

Một số ưu điểm của hệ phân tán:

Trang 16

- Nhiều tiến trình chạy trên server mỗi tiến trình xử lý một yêu cầu.

Các truy cập, cập nhật tương tranh phải được thống nhất

3.Khả năng mở rộng.

Khả năng mở rộng quy mô hệ thống một cách dễ dàng mà phải thay đổi hệthống cũ một cách ít nhất Đây là đặc tính quan trọng trong quá trình phát triển nhanhcủa mạng interNetwork

Thiết kế hệ thống mày tính có khả năng chịu lỗi có hai cách tiếp cận:

- Tăng độ dư thừa tại nguyên: Giải pháp này tăng độ đề phòng của hệ thống khixảy ra lỗi

- Giải pháp phần mềm: Phầm mềm có khả năng sao lưu một cách thườngxuyên, có khả năng phát hiện lỗi và sửa lỗi sớm

Hệ phân tán cung cấp mức độ cao của tính thường trực trong khả năng chịu lỗi phầncứng Khi một trạm bị hỏng người sử dụng có thể di chuyển tới trạm khác để làm việc

5.Tính trong suốt(Transparency)

Khả năng che dấu sự rời rạc của hệ thống Hệ thống ISO chỉ ra có 8 loại trong suốt:

- Trong suốt lỗi (Failure Transparency)

- Trong suốt vị trí (Location transparency)

- Trong suốt truy cập (Access Transparency)

- Trong suốt sự chia sẻ tài nguyên (Concurency transparency)

- Trong suốt dịnh vị lại ( Relocation transparency)

Trang 17

- Trong suốt nhân bản (Replication Transparency)

- Trong suốt di trú (Migration Transparency)

- Trong suốt khả năng di chuyển tài nguyên (Persistence Transparency)

Nhược điểm của hệ phân tán

 Tính phức tạp: Hệ phân tán phức tạp hơn hệ tập trung

 Tính bảo mật: Hệ phân tán dễ bị tấn công từ bên ngoài

 Khả năng quản lý: Hệ phân tán đòi hỏi hệ quản lý hiệu quả

Không dự đoán trước: Không thể biết được những phản hồi do tổ chức hệ thống vàmạng trả về

II CORBA và mô hình phân tán:

1 Chương trình môi giới trung gian ORB( Object Request Broker)

Java dựa vào máy ảo để tạo nên tiếng nói chung giữa tất cả ứng dụng viết bằng

ngôn ngữ Java Tương tự Corba cũng cần có một nền tảng để liên kết các đối tượng.Các đối tượng sau khi được xây dựng bằng những ngôn ngữ lập trình khác nhau muốntriệu gọi được nhau phải thông qua trình môi giới trung gian của Corba gọi là ORB(Object request broker : Trình môi giới các yêu cầu của đối tượng)

ORB là một dịch vụ phân tán thực thi yêu cầu đến các đối tượng ở xa Nó định

vị đối tượng ở xa trên mạng, gửi yêu cầu đến đối tượng, chờ kết quả và khi sẵn sằngthì gửi các kết quả này trở lại cho client

ORB thực thi vị trí trong suốt Chính xác là cơ chế yêu cầu giống nhau được sử

dụng bởi client và đối tượng CORBA mà không quan tâm đến vị trí của đối tượng Nó

có thể nằm trong một bộ xử lí với client, hoặc ở bất kì nơi nào

ORB thực thi các ngôn ngữ lập trình độc lập với các yêu cầu Client đưa ra một

yêu cầu được viết bởi một ngôn ngữ lập trình có thể khác với ngôn ngữ lập trình viếttrong đối tượng CORBA ORB thực hiện việc dịch cần thiết giữa các ngôn ngữ lậptrình Các liên kết ngôn ngữ được định nghĩa cho tất cả các ngôn ngữ lập trình thôngdụng

Như vậy cụ thể thì ORB gọi được phương thức của các đối tượng cài đặt bằng

các ngôn ngữ khác nhau như thế nào? Đó là nhờ ngôn ngữ đặc tả IDL mà ta đã tìmhiểu ở trên Các đối tượng cho dù được cài đặt bằng bất kì ngôn ngữ nào nếu như tuânthủ theo đặc tả IDL đều được xem là đối tượng CORBA Tuy không cài đặt bản thânđối tượng nhưng dựa vào đặc tả IDL ORB sẽ biết được tên phương thức cần gọi, kiểuđối số truyền cho phương thức, trị trả về của phương thức gọi Với những thông tinnày, ORB có thể triệu gọi phương thức mà đối tượng cài đặt (Hình 4) ORB là hoàn

Ngày đăng: 22/11/2014, 16:39

HÌNH ẢNH LIÊN QUAN

Hình 1: Cấu trúc mô hình Corba - xây dựng hệ thống kiểm tra kết quả xổ số bằng java corba middleware
Hình 1 Cấu trúc mô hình Corba (Trang 4)
Bảng  sau đây miêu tả chi tiết các đặc điểm của các kiểu dữ liệu cơ sở: - xây dựng hệ thống kiểm tra kết quả xổ số bằng java corba middleware
ng sau đây miêu tả chi tiết các đặc điểm của các kiểu dữ liệu cơ sở: (Trang 13)
Bảng CSDL - xây dựng hệ thống kiểm tra kết quả xổ số bằng java corba middleware
ng CSDL (Trang 23)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w