Nếu nền công nghiệp cho ra một tiêu chuẩn UDDI để kiểm tra và kiểm soát
nhịp độ các chuyến bay, thì những đường bay có thể đăng ký những dịch vụ của
họ vào trong một thư mục UDDI. Những đại lý du lịchcó thể tìm kiếm trong thư
mục UDDI để thấy giao diện kiểm soát đường bay. Khigiao diện được tìm thấy,
hãng đại lý du lịch có thể truyền thông với dịch vụngay lập tức bởi vì nó sử dụng
một giao diện kiểm soát được định nghĩa đày đủ và rõ ràng.
75 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2720 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Hệ thống e-Learning, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
L cũng dùng để định vị Web services.
- WSDL không còn là một chuẩn của W3C.
- WSDL đặc tả Web Services.
Câu hỏi: WSDL là chuẩn cho ngôn ngữ đặc tả Web Services?
Trả lời:
43
WSDL là một tài liệu được viết bằng XML. Tài liệu này dùng để đặc tả một
dịch vụ Web. Nó định rõ vị trí của dịch vụ và trình bày tất cả các phép toán (hay
phương thức) của dịch vụ đó.
Câu hỏi: Lịch sử phát triển của WSDL ở W3C?
Trả lời:
- WSDL 1.1 được ấn hành như một W3C Note bởi Ariba, IBM và Microsoft để
đặc tả dịch vụ cho W3C XML hoạt động trên giao thức XML vào 3/2001.
- Bản phác thảo đầu tiên của WSDL 1.2 được xuất bản bởi W3C vào 7/2002.
c) Dịch vụ khám phá - UDDI (Universal Description, Discovery, and
Integration):
Chuẩn UDDI, hay còn gọi là chuẩn dịch vụ Tích hợp, Khám phá và Mô tả Toàn
cầu, hoạt động như một dịch vụ đăng ký và định vị có khả năng xác nhận và phân
loại các ứng dụng dịch vụ Web, giúp người sử dụng dễ dàng tìm thấy chúng trên
mạng.
Hội đồng Điều hành Kinh doanh Đăng ký UDDI (Universal Descripsion,
Discovery and Intergaration), một tổ chức nhận được sự hậu thuẫn của cả
Microsoft, IBM, NTT Communications và SAP, hiện đã rầm rộ quảng bá cho
phiên bản của dịch vụ mới nhất UDDI ver 3.
Ở lõi của nó, UDDI gồm có hai phần. Thứ nhất, UDDI là một đặc tả kỹ thuật
để xây dựng một thư mục phân tán của những giao dịch và dịch vụ mạng. Dữ liệu
được đặt bên trong một định dạng XML đặc biệt. Đặc tả UDDI bao gồm chi tiết
API để tìm kiếm dữ liệu và xuất bản dữ liệu mới. Thứ hai, nơi đăng ký doanh
nghiệp UDDI là một sự thi hành thao tác hoàn toàn (của) thuyết minh UDDI.
Microsoft, Ariba và IBM đã công bố dự án Đăng ký Doanh nghiệp UDDI
(Universal Description, Discovery and Integration) vào tháng 9 /2002 và đã quảng
bá dự án này như "Những trang vàng" lần đầu tiên được đưa lên Internet.
Đến nay, đã có nhiều doanh nghiệp nổi tiếng nhất trên thế giới đã tham gia dự
án này, bao gồm: American Express, Compaq, SAP AG, Dell và Sun. Các hãng
này đều ký hợp đồng hỗ trợ phát triển UDDI. Số công ty tham gia UDDI hiện đã
lên đến 130, trong đó có cả HP và Intel.
Hệ thống UDDI cho phép các doanh nghiệp cung cấp thông tin về sản phẩm và
dịch vụ của mình trên mạng cho các đối tác và khách hàng trong nước. UDDI sẽ
phân thành ba nhóm thông tin như sau:
44
- Những trang trắng sẽ gồm tên doanh nghiệp, danh mục phân loại doanh
nghiệp và thông tin về các loại dịch vụ và hình thức hỗ trợ khách hàng...
- Những trang vàng cung cấp những quy định mới nhất của chính phủ về các
hoạt động của doanh nghiệp. Ngoài ra còn sắp xếp danh mục công ty theo
từng khu vực địa lý.
- Những trang xanh cung cấp các loại tài liệu tham khảo cần thiết liên quan đến
hoạt động kinh doanh của doanh nghiệp.
Ví dụ:
Để có thể hiểu một cách thông suốt về UDDI. Chúng ta hãy làm một FAQ sau:
Câu hỏi: UDDI là gì?
Trả lời:
- UDDI là một khung nền độc lập để đặc tả dịch vụ, khám phá giao dịch, và tích
hợp các dịch vụ giao dịch thông qua Internet.
- UDDI nghĩa là Universal Description, Discovery and Integration.
- UDDI là một thư mục chứa những thông tin về dịch vụ web.
- UDDI là một thư mục của giao diện dịch vụ web đặc tả bằng WSDL.
- UDDI truyền thông nhờ SOAP.
- UDDI được xây dựng trong nền tảng Microsoft .NET.
Câu hỏi: Nền tảng của UDDI là gì?
Trả lời:
- UDDI sử dụng World Wide Web Consortium (W3C) và Internet Engineering
Task Force (IETF) Internet chuẩn như là các giao thức XML, HTTP, và DNS.
- UDDI sử dụng WSDL đặc tả giao diện dịch vụ web.
Câu hỏi: Lợi ích của UDDI là gì?
Trả lời:
Bất kỳ một ngành kinh doanh hay một doanh nghiệp nào dù lớn hay nhỏ đều có
được lợi ích từ UDDI. Trước UDDI, đã không có chuẩn Internet cho các doanh
45
nghiệp mở rrộng khách hàng và đối tác của họ bằng nhứng thông tin về sản phẩm
và dịch vụ của mình. Và cũng không có cách nào để làm thế nào đó có thể tích
hợp vào mỗi hệ thống vào tiến trình khác nhau..
Vấn đề có thể giải quyết với đặc tả UDDI . Ví dụ như là : Làm cho có thể tìm
ngay ra doanh nghiệp từ hàng triệu người đang trực tuyến.
Câu hỏi: UDDI sử dụng như thế nào?
Trả lời:
Nếu nền công nghiệp cho ra một tiêu chuẩn UDDI để kiểm tra và kiểm soát
nhịp độ các chuyến bay, thì những đường bay có thể đăng ký những dịch vụ của
họ vào trong một thư mục UDDI. Những đại lý du lịch có thể tìm kiếm trong thư
mục UDDI để thấy giao diện kiểm soát đường bay. Khi giao diện được tìm thấy,
hãng đại lý du lịch có thể truyền thông với dịch vụ ngay lập tức bởi vì nó sử dụng
một giao diện kiểm soát được định nghĩa đày đủ và rõ ràng.
Câu hỏi: Ai hỗ trợ UDDI?
Trả lời:
Có thể một loạt như: Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle,
SAP, và Sun,… Đã có hơn 220 công ty là thành viên của cộng đồng UDDI.
d) Dịch vụ truyền tải (Service Transport):
HTTP: Giao thức truyền tải siêu văn bản
World Wide Web đuợc xây dựng dựa vào nền của Internet và sử dụng giao
thức TCP/IP để truyền tải thông tin giữa các Web Client và Web server. HTTP là
giao thức client/server dùng cho World Wide Web. Nó cung cấp cách để Web
Browser truy xuất Web server và yêu cầu các văn bản hypermedia được tạo bởi
HTML (Ngôn ngữ đánh dấu siêu văn bản). Các văn bản HTML có thể chứa các
siêu kiên kết (hyperlink) đến các nơi khác nhau, có thể trong cùng một văn bản,
một văn bản khác cùng một Web site hay một văn bản trên một Web site khác.
Nói chung, HTTP có nhiệm vụ xử lý các liên kết nầy và cung cấp giao thức truyền
tin cho client/server.
Theo RFC 1945, ”HTTP là một giao thức cấp ứng dụng với sự nhanh nhạy cần
thiết để phân bố, cộng tác các hệ thống thông tin hypermedia. Nó là giao thức
hướng đối tượng tổng quát, không trạng thái, có thể dùng cho nhiều nhiệm vụ
chẳng hạn như đặt tên cho server và các hệ thống quản lý đối tượng phân tán,
thông qua việc mở rộng các phương thức theo yêu cầu (các lệnh)”.
46
Khi client đang chạy Web Browser gõ tên server (hay địa chỉ IP) vào trường
Address, browser sẽ định vị địa chỉ nầy trên mạng (mạng intranet nội bộ hay mạng
internet tùy thuộc vào sự kết nối) và sự kết nối sẽ được thực hiện đến Web server
đã chỉ định.
HTTP là giao thức lệnh và điều khiển xác lập việc truyền tin giữa client và
server và chuyển lệnh qua lại giữa hai hệ thống. HTML là ngôn ngữ định dạng văn
bản.
Quá trình kết nối bắt đầu khi bạn gõ địa chỉ của Web site trong Web Browser
của bạn (hay click chọn). Đầu tiên, địa chỉ IP của Web site nầy được dùng để tìm
ở server DNS (Domain Name System), tên và địa chỉ có liên quan đến Web site.
Địa chỉ tương ứng nầy được gửi về lại Web site của bạn và nó sẽ thực hiện kết nối
trực tiếp với Web server.
SMTP: Giao thức chuyển thư điện tử đơn giản
SMTP là một cơ chế trao đổi thư trên Internet. Nó có trách nhiệm chuyển thông
điệp từ một mail server (máy chủ chuyên lo về dịch vụ thư tín điện tử) nầy đến
mail server khác. Mail server chạy một giao thức kiểm soát thông điệp gọi là POP
(giao thức bưu điện) hay IMAP4 (giao thức truy cập thư Internet, phiên bản 4).
IMAP4 là một giao thức mới và linh động hơn thay thế cho POP. SMTP giống
như người mang thư có trách nhiệm chuyển thư trong khi POP và IMAP4 giống
như các bưu điện có trách nhiệm nhận, trữ và chuyển tiếp thư. SMTP dùng địa chỉ
thư Internet mà mọi người đều quen thuộc:
username@company.com
POP trữ các thư trong hộp thư của người sử dụng. Khi người sử dụng kết nối
vào mail server thì tên thư điện tử của họ được dùng để xác minh họ là ai và cho
phép họ truy cập vào hộp thư của họ. Những thông điệp sẽ được tải xuống máy
của họ. IMAP4 cải tiến mô hình nầy bằng cách cho phép người sử dụng giữ thư
điện tử trong những hộp thư riêng trên mail server thay vì các lá thư nầy tự động
được tải xuống máy của họ. Điều nầy có ích cho người sử dụng ở những nơi xa
xôi.
SMTP dùng một cơ chế yêu cầu và đáp ứng cơ bản để chuyển thư giữa các máy
OP hay IMAP4 trên Internet hay mạng nội bộ. Chỉ cần một lệnh rất đơn giản để
thực hiện trao đổi thư. Lệnh nầy được format ở dạng văn bản ASCII. Cấu trúc lệnh
đơn giản làm dễ dàng hơn khi xây dựng những mail server và các trạm cho khách
hàng.
47
Mạng mail server trên Internet thì khá phức tạp. Trong hầu hết các trường hợp,
một thông điệp được gởi từ người nầy sang người khác phải đi theo một con
đường thông qua một số SMTP server trước khi đến đích.
FTP: Giao thức truyền tập tin
FTP là một dịch vụ truyền tập tin trên hệ thống mạng Internet và trên các hệ
thống mạng TCP/IP. Về cơ bản, FTP là giao thức client/server (khách/chủ) trong
đó một hệ thống đang sử dụng trình FTP server chấp nhận các yêu cầu từ một hệ
thống đang chạy FTP client. Dịch vụ nầy cho phép các người dùng gửi đến máy
chủ các yêu cầu tải lên hoặc chép về các tập tin. FTP hoạt động giữa nhiều loại hệ
thống hỗn hợp và và cho phép người dùng từ hệ thống nầy tương tác với hệ thống
khác loại mà không cần quan tâm đến các hệ điều hành tại đó.
FTP khách hoạt động bằng giao diện tương tác text căn bản, qua bộ điều khiển
dòng lệnh. Các bước cơ bản mà một FTP client trải qua để tương tác với FTP
server được mô tả như sau:
1. Khởi động lệnh thiết lập giao diện FTP
2. Gõ ? để xem giúp đỡ
3. Sử dụng lệnh Open để chỉ định địa chỉ IP hay tên miền của FTP server
muốn truy cập
4. Đăng nhập mạng (log in) (tại các nơi công cộng, gõ anonymous cho tên
login của bạn)
5. Sử dụng lệnh dir hay ls để liệt kê danh sách tập tin trên FTP server
6. Sử dụng lệnh cd để chuyển đổi thư mục hiện hành
7. Sử dụng lệnh get để tải tập tin về (download) hay sử dụng lệnh put để đẩy
tập tin lên mạng (upload)
8. Gõ lệnh close để kết thúc phiên truyền hiện tại (và lại gõ lệnh open để truy
cập máy chủ khác)
9. Gõ lệnh quit để kết thúc chương trình
Trong hầu hết các trường hợp, các bước nầy đại diện cho tất cả những gì bạn sẽ
làm khi tương tác với một FTP server. Như đã đề cập, bạn có thể gõ dấu ? để xem
đầy đủ danh sách các lệnh, và tất nhiên có nhiều lệnh để bạn sử dụng. Nhiều trạm
FTP cho phép truy cập tập tin ở mức an toàn tối thiểu bởi vì chúng cung cấp các
tập tin nầy cho cả cộng đồng. Những nơi nầy được gọi là nơi anonymous FTP
(FTP nặc danh). Trong bước 4 đề cập trên đây, bạn chỉ đơn thuần gõ vào
anonymous để khai báo tên login, rồi gõ vào địa chỉ e-mail của bạn (hay một dữ
liệu thực nào đó) như là một mã của bạn.
FTP làm việc thông qua nhiều hệ thống tập tin khác nhau, như vậy các người
dùng phải lưu ý rằng các kiểu tập tin trên FTP server có thể không tương thích với
48
hệ thống của họ. Nói chung, tập tin văn bản có thể xem được bởi tất cả mọi loại hệ
thống, còn các loại tập tin phổ biến mới hơn như PDF (Portable Document
Format) của Adobe có ít khả năng nầy hơn. Một vấn đề khác: bạn gõ binary trước
khi lấy về các tập tin đồ họa hay tập tin thi hành được; gõ ascii trước khi lấy về
các tập tin văn bản.
Trên thực tế, FTP client điều quản phần lớn tiến trình đưa ra yêu cầu. Trước hết
nó thông dịch các câu lệnh của người dùng rồi mới gửi yêu cầu đó đến FTP server
đang sử dụng giao thức FTP.
Các câu lệnh và dữ liệu được gửi đi băng qua hai kết nối khác nhau. Khi bạn
khởi động FTP và nối vào một FTP server, một liên kết được mở ra cho máy chủ
đó để giữ nguyên tình trạng mở (giữ tính liên tục) cho đến khi bạn gõ lệnh close.
Khi bạn đưa ra yêu cầu truyền tập tin, dữ liệu của tập tin đó được truyền thông qua
một kết nối khác, và kết nối nầy sẽ kết thúc khi quá trình truyền tập tin hoàn thành.
Như vậy, một phiên truyền FTP điển hình có thể có vài liên kết được mở cùng một
lúc nếu có nhiều tập tin đang được truyền đi. Sử dụng phương pháp nầy để chia sẻ
điều khiển và dữ liệu có nghĩa là liên kết đó có thể được sử dụng trong khi dữ liệu
đã được truyền đi.
2. Tại sao Web Service là một lựa chọn tốt cho hệ thống e-Learning?
Xuất phát từ khái niệm của e-Learning, chúng ta có thể dễ dàng nhận ra một số
khó khăn khi xây dựng và triển khai một hệ thống e-Learning:
- Người sử dụng cuối rất đa dạng. Họ có thể sử dụng nhiều hệ điều hành khác
nhau, những ngôn ngữ lập trình khác nhau.
- Hệ thống e-Learning cần được truy cập trên một phương tiện truyền thông
chung, phổ biến càng rộng càng tốt, và như vậy hệ thống cũng cần được đăng
ký.
3. Làm thế nào để xây dựng hệ thống e-Learning như 1 Web
Service?
Xin lấy hệ thống LearningServe để minh hoạ, đây là hệ thống đào tạo trực
tuyến được xây dựng trên nền công nghệ Web service của tác giả Westerkampeter
tại trường đại học Munster, cộng hòa Liên bang Đức [3].
49
Kiến trúc dịch vụ Web cho e-Learning:
Hình 27. Kiến trúc tầng cao của LearnServe
Trong hình vẽ trên, LearnServe chia ra làm 2 phần: một phần mềm client và
dịch vụ Web cung cấp với một vài suppliers. The LearnServe client là một điểm
truy cập cho người dùng mà có thể sử dụng dịch vụ học tập này. Những dịch vụ đó
thi hành trên các server phân tán và bao gồm tác giả, nội dụng, bài tập, kiểm tra,
và các dịch vụ khám phá cũng như các dịch vụ truyền thông chẳng hạn như email
và các bảng thông tin. Các dịch vụ bài tập được cung cấp bởi hệ thống XLX, hệ
thống này đã được nâng cấp để có thể cung cấp các tính năng như một dịch vụ
Web và do đó có thể sẵn sàng được sử dụng bởi các hệ thống bên ngoài. Tất nhiên
là việc sử dụng các dịch vụ đào tạo là không hạn chế đối với các khách hàng bởi vì
việc cung cấp toàn bộ các tính năng của hệ thống như là các dịch vụ Web cho
phép tích hợp trực tiếp các tính năng của hệ thống đào tạo trực tuyến và một ứng
dụng thương mại (chẳng hạn như hệ thống CRM hay hệ thống ERP) để tương tác
với các ứng dụng, các tiến trình và các thông tin. Các dịch vụ Web cũng có thể
được sử dụng trên các thiết bị di động nếu khách hàng có các thiết bị đó.
50
Những hạn chế của hệ thống phân tán (không tập trung):
Xây dựng một hệ thống không tập trung (non-centralized) bằng cách liên kết
nhiều dịch vụ Web để có thể đạt được các chức năng như một hệ thống đào tạo
trực tuyến làm nảy sinh các vấn đề trong việc quản lý nội dung cho các học viên
và việc tìm kiếm các dịch vụ cần thiết đáp ứng yêu cầu vào thời điểm yêu cầu đó
được đưa ra. Hệ thống đào tạo trực tuyến LearnServe sử dụng các sổ đăng ký
UDDI để tìm kiếm các dịch vụ Web như là một hoạt động thường nhật trong lĩnh
vực dịch vụ Web. Tuy nhiên, UDDI không phù hợp với các dịch vụ nội dung bởi
vì sự lưu trữ các metadata về các nội dung không được hỗ trợ thích đáng. Trong
một tổ chức, các đối tương kiến thức có thể được đưa vào một hệ thống quản lý
đào tạo riêng biệt. Thay vào đó, nội dung cần được lưu trữ trên các server phân tán
và sẽ đựoc truy vấn đến khi có yêu cầu. Việc này làm xuất hiện các vấn đề về trình
diễn dữ liệu bởi vì đặc trưng của các dịch vụ Web là hướng dữ liệu (data-oriented),
nhưng việc biểu diễn là rất quan trọng để có thể hiểu rõ các nội dung sẽ được học.
Để giảm nhẹ các vấn đề về tương thích trong việc tích hợp nội dung, hệ thống
LearnServe sử dụng các tiêu chuẩn mới nhất để có thể tái sử dụng, khai phá và
trao đổi nội dung trong nội bộ hệ thống cũng như với các hệ thống đào tạo trực
tuyến khác.
Quá trình khai phá được hỗ trợ bởi kho chứa các đối tượng xuất bản của
LearnServe và khả năng tìm kiếm và đáp ứng môi trương làm việc của UDDI
được sử dụng cho các dịch vụ Web thương mại trong bối cảnh đào tạo. Nó cũng có
thể được phân biệt bởi nó chứa các dữ liệu tập trung về các đối tượng kiến thức,
nghĩa là tất cả các metadata, trong khi trên thực tế, các nội dung có thể được phân
bố một cách tùy ý. Để sử dụng nội dung, các platform tầng thấp triệu gọi các đối
tượng kiến thức cần thiết, các đối tượng kiến thức này sẽ được trình diễn bởi các
dịch vụ Web và chuyển giao tới người học. Dịch vụ trình diễn làm tăng lượng
thông tin về nội dung như đã được mô tả trong chuẩn WSRP (Web Services for
Remote Portlets Specification) và do đó làm tăng khả năng đáp ứng trong việc
trình diễn nội dung tùy theo yêu cầu của người học.
Từ đó, chúng ta có thể khắc phục một số vấn đề phát sinh khi triển khai một
platform cho dịch vụ, gồm có:
1. Lưu trữ các nội dung đào tạo trong mô hình phân tán.
2. Trao đổi dữ liệu một cách linh hoạt khi cần thiết hay khi phù hợp.
Ví dụ như, điều này có thể dựa trên các hồ sơ cá nhân của người học và các đặc
tả về khóa học mà một tác giả nào đó đã đưa lên kho chứa của LearnServe.
51
V. Xây dng mt h thng đào to trc tuyn b4ng công ngh
Web service da trên plat form J2EE
Hiện nay, cả 2 platform J2EE và .Net đều hỗ trợ triển khai Web service. Một
trong những ưu điểm của việc sử dụng J2EE để phát triển hệ thống đào tạo trực
tuyến là chúng ta có một sự lựa chọn phong phú các nhà cung cấp với các phần
mềm đã được xây dựng sẵn (pre-built), với rất nhiều các dữ án mã nguồn mở.
J2EE là một chuẩn công nghiệp. Nguyên nhân quan trọng nhất để lựa chọn J2EE
là do tất các hệ thống khác đều dựa trên JAVA. Chúng ta sẽ không cần phải thay
đổi bất kỳ một phần nhỏ kiến trúc nào khi triển khai Web service trên platform
J2EE và các thành phần của J2EE cũng có thể phân tách một cách dễ dàng thành
các dịch vụ Web. Ta sẽ tận dụng được rất nhiều ưu điểm khi triển khai Web
services trên nền J2EE như tính khả chuyển, tính vô hướng, tính tin cậy. Sau đây
chúng ta sẽ tìm hiểu về platform J2EE và cách xây dựng các dịch vụ Web trên
platform này.
A. Gi>i thiu v$ J2EE
1. Giới thiệu chung
J2EE là Java 2 Platform Enterprise Edition, đây là một phân tán tính toán
framework của Sun Microsystems.J2EE là một platform để phát triển những ứng
dụng phân tán bao gồm những thành phần sau:
J2EE Platform - một platform chuẩn để chứa các ứng dụng J2EE.
Reference Implemetation - một ứng dụng server hỗ trợ chuẩn mới nhất
của J2EE, ngoại trừ những ưu điểm của nó là những đặc tính mới trong
phiên bản chuẩn của J2EE, đây chưa phải là 1 sản phẩm hoàn chỉnh.
Compatibility Test Suite - một công cụ để kiểm tra xem một ứng dụng
server có tương thích với chuẩn J2EE hay không. Thiếu cái này thì mỗi
nhà cung cấp có thể hiểu và từ đó phát triển chuẩn J2EE theo những
hướng khác nhau mà như thế thì làm giảm đi thế mạnh của J2EE platform
là “write once, run anywhere”.
Application Programming Model (APM) Blueprint – một mô hình ứng
dụng tham khảo, được cung cấp để minh hoạ cách phát triển ứng dụng
dùng J2EE.
2. Phát triển chương trình dùng J2EE
J2EE Framework cho phép phát triển những ứng dụng phân tán bằng cách cung
cấp 1 tập các dịch vụ cơ bản như quản lý giao dịch, kiểm tra bảo mật, quản lý
52
trạng thái, quản lý tài nguyên. Các ứng dụng server đều cung cấp những dịch vụ
cơ bản này của J2EE Framework.
3. J2EE API
Những công nghệ được sự dùng trong J2EE bao gồm:
Java 2 Standard Edition (J2SE) - trước kia còn gọi là JDK.
Java Database Connectivity (JDBC) - Một API chuẩn dùng để kết nối
Java Platform với cơ sở dữ liệu.
RMI-JRMP – Remote Method Invocation (RMI),một chuẩn dùng để gọi
hàm từ xa dựa trên Java Remote Message Protocol (JRMP).
Java Interface Definition Language (Java IDL) - một dịch vụ kết hợp
Common Object Request Broker Architecture (COBRA) vào trong Java
Platform để cung cấp tính interoperability thông qua chuẩn IDL.
Remote Method Invocation–Internet Inter-ORB Protocol (RMI-IIOP) -
một giao thức cho phép lập trình viên RMI kết hợp những lợi ích của
RMI API và giao thức CORBA/IIOP để giao tiếp với CORBA-compliant
client được phát triển bởi bất cứ ngôn ngữ nào tuân theo CORBA.
Enterprise JavaBean (EJB) - một kiến trúc thành phần để phát triển và
triển khai các ứng dụng kiểu thành phần dựa trên phân tán.
Servlet – tương tác với Web client thông qua cơ chế request – response.
Cơ chế này dựa trên giao thức HTTP.
Java Server Page (JSP) – Dùng để xây dựng những ứng dụng có chứa nội
dung web động như là HTML, DHTML, XML.
Java Message Service (JMS) - một API để giao tiếp với Message Oriented
Middleware (MOM) cho phép truyền nhận message theo cơ chế point-to-
point và publish/subcribre.
Java Naming and Directory Interface (JNDI) - một interface duy nhất
dùng để truy cập những kiểu dịch vụ khác nhau về naming và directory.
Java Transaction API (JTA) - một tập API cho phép quản lý transaction.
Ứng dụng có thể sự dụng JTA để start, commit, abord transaction.
JavaMail - một API cung cấp 1 framework platform-independent và
protocol-independent (không phụ thuộc giao thức về platform) để xây
dựng ứng dụng về mail và messaging.
JavaBean Activation Framework (JAF) - tập các API được sử dụng bởi
các package khác như là JavaMail…Bạn có thể dùng JAF để xác định
kiểu dữ liệu, đóng gói truy cập đến dữ liệu đó, mở rộng những tác vụ dựa
trên dữ liệu đó và khởi tạo một bean tương ứng để thực hiện những tác vụ
đó. Ví dụ JavaMail dùng JAF để xác định object nào sẽ được khởi tạo dựa
trên kiểu MIME của object.
4. Các thành phần của J2EE.
53
J2EE được xây dụng trên một mô hình container component (trình chứa-thành
phần).Bốn container component cốt lõi cung cấp môi trường cho các component
khác của J2EE thông qua các API. Những component cốt lõi này liên quan đến
bốn kiểu trình chứa được hỗ trợ trong J2EE bao gồm, Application Client, Applet,
Web và EJB:
Java Application – component này là 1 chương trình standalone chạy bên
trong Application Client container. Application Client container cung cấp
những API hỗ trợ cho messaging, remote invocation, database
connectivity và lookup service. Application Client container đòi hỏi
những API sau: J2SE, JMS, JNDI, RIM-IIOP và JDBC.Container này
được cung cấp bởi nhà cung cấp application server.
Applet – Applet component là java applet chạy bên trong Applet
container, chính là web browser có hỗ trợ công nghệ Java. Applet phải hỗ
trợ J2SE API.
Servlet và JSP – đây là Web-based component chạy ở bên trong Web
container, được hỗ trợ bởi Web Server. Web container là một môi trường
run-time cho servlet và jsp. Web Container phải hỗ trợ những API sau:
J2SE, JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP và JDBC. Serlet và
JSP cung cấp một cơ chế cho việc chuẩn bị, xử lý, định dạng nội dung
động.
Enterprise JavaBean (EJB) – EJB component là business component –
thành phần nghiệp vụ chạy bên trong EJB container. EJB component là
phần nhân, cốt lõi của ứng dụng J2EE. EJB container cung cấp các dịch
vụ quản lý transaction, bảo mật, quản lý trạng thái, quay vòng tài nguyên
(resource pooling). EJB container phải hỗ trợ những API sau: J2SE, JMS,
JNDI, JTA, JavaMail, JAF, RIM-IIOP và JDBC.
5. Sử dụng EJB
EJB chứa những business logic của ứng dụng, cho nên có thể nói rằng EJB
chính là phần lõi của phần lớn các ứng dụng phân tán cho doanh nghiệp. Một
enterprise bean có những đặc điểm sau:
Chứa các business logic để thao tác với dữ liệu.
Được tạo ra và được quản lý bởi một container.
Xử lý các truy cập của client .
Chứa metadata, như là thuộc tính của transaction và security, riêng biệt
với các bean.
54
Cung cấp dịch vụ quản lý transation, quản lý trạng thái, quay vòng tài
nguyên và bảo mật.
Nếu bạn thiết kế 1 ứng dụng không cần có hỗ trợ transaction hoặc bảo mật,
lúc đó nên trở lại câu hỏi có nên dùng đến EJB hay không.
Mỗi EJB bắt buộc phải có những interface và class sau:
Home Interface - home interface extend javax.ejb.EJBHome. Nó đóng vai
trò như một Factory pattern để khởi tạo các instance của EJB.
Remote Interface – remote interface extend javax.ejb.EJBObject. Remote
interface chứa các business method , được gọi từ client. Nó đóng vai trò
như 1 proxy của EJB.
Bean Class - chứa phần cài đặt của các method khai báo trong remote
interface. Bean class extend javax.ejb.SessionBean hoặc
javax.ejb.EntityBean hoặc javax.ejb.MessageDrivenBean.
5.1 Sử dụng Session và Entity Bean
Các ứng dụng cho enterprise cần những component linh động trong business
logic. Các component phải có khả đáp ứng stateless service, conversational state,
và hỗ trợ việc chia sẻ dữ liệu.EJB có 2 loại bean chính ứng với các nhu cầu khác
nhau của component trong ứng dụng: session và entity. Entity bean phục vụ cho
việc duy trì và chia sẻ dữ liệu. Như thế không có nghĩa là session bean không thể
duy trì đối tượng được, nhưng entity bean được thiết kế chuyện dụng cho mục
đích này. Session bean thì phục vụ cho các bussiness logic và workflow liên quan
đến ứng dụng J2EE, tương ứng với nhu cầu về stateless service và conversational
state.
5.2 Stateless Bean và Stateful Bean
Có 2 loại session bean: stateless và stateful:
Stateless Beans.
Stateless bean không giữ tạm dịch là trạng thái giao dịch của client.
Tuy nhiên không có nghĩa là stateless bean không thể giữ được trạng
thái, nhưng trạng thái này không bảo đảm đủ để xác định client nào đã
gọi đến bean này. Điều này có nghĩa là bạn có thể dùng stateless bean
để thực hiện bất cứ hành động nào trong ứng dụng.
Stateful Beans.
Stateful bean có khả năng giữ conversational state (tạm dịch là trạng
thái giao tiếp) của client. Tất nhiên là có nhiều cách để giữ
consersational state trong ứng dụng, nhưng nếu state đó cần phải gắn
với business logic thì nó nên được lưu giữ trong stateful bean.Ví dụ
55
điển hình nhất của session stateful bean là component shopping cart
trong các ứng dụng mua hàng trực tuyến.
5.3 Sử dụng MessageDrivenBean
MessageDrivenBean là một điểm mới trong chuẩn EJB 2.0 (EJB 1.1 chỉ định
nghĩa 2 loại bean là session và entity). Mục đích của MesssageDrivenBean là phục
vụ cho nhu cầu về các dịch vụ không đồng bộ của các component. Bởi vì session
và entity bean chỉ phục vụ các dịch vụ loại synchronous. Do đó cách sử dụng
MessageDrivenBean có phần giống với session stateless bean, chỉ khác ở cách gọi
bean, với MDB thì client phải gửi message đến MDB đó để thực hiện các hàm
trong MDB.
5.4 Sử dụng Container-Managed Persistence
Có 2 cách để 1 entity bean persist object: container-managed persistence
(CMP) và bean-managed persistence (BMP). Trong CMP, container điều khiển
việc cài đặt cần thiết cho các tác vụ chèn, đọc, ghi, cập nhật object trong một data
source. Còn trong BMP, thì lập trình viên phải tự cài đặt các code cho các tác vụ
trên. CMP lý tưởng cho việc phát triển ứng dụng vì nó không đòi hỏi lập trình viên
phải thay đổi code mỗi khi data model thay đổi. Tuy nhiên để có được tính linh
hoạt, CMP không cho phép sinh ra những câu lệnh SQL hiệu quả.
Hiện nay các công cụ phục vụ việc ánh xạ object với cơ sở dữ liệu vẫn còn đang
trong quá trình phát triển và chưa đủ chín muồi. Trong khi chờ đợi CMP phát triển
hoàn thiện thì BMP cộng với pattern DAO có lẽ là 1 giải pháp khá tốt.
5.5 Sử dụng Data Access Object
Khi bạn quyết định dùng BMP, có nghĩa là bạn sẽ phải tự coding các câu lệnh
SQL trong entity bean của bạn. Để giảm sự nối kết của entity bean với các câu
lệnh SQL cần thiết cho các việc đọc, ghi, xoá , cập nhật object, bạn có thể tạo ra
một DAO pattern đóng gói các câu lệnh SQL đó. Bằng cách này bạn đã làm giảm
sự phụ thuộc của bạn vào code và sư thay đổi của data model. Nói cách khác nếu
có sự thay đổi thì BMP entity bean của bạn vẫn có thể giữ nguyên và bạn chỉ phải
sửa lại phần DAO mà thôi.
DAO chứa code phục vụ việc đọc , ghi, cập nhật xoá object trên 1 data source.
Nó cho phép 1 entity bean có thể định nghĩa như 1 BMP, nhưng sau này khi các
công cụ hỗ trợ cho CMP trở nên hoàn thiện hơn thi entity bean này có thể chuyển
sang thành CMP, và DAO sẽ được thay thế bởi sự hỗ trợ CMP của container.
56
B. Áp d0ng J2EE trong cài đAt h thng E-learning
Java 2 Platform Entreprise Edition (J2EE) sử dụng mô hình phân tán nhiều tầng.
PlatformJ2EE bao gồm một Web Server và một EJB Server (Những Server đó còn
được gọi là trình chứa). Trong đó Web Server cung cấp môi trường run-time qua
các thành phần mà cung cấp ngữ cảnh đặt tên và quản lí vòng đời. Một vài Web
Server cũng cung cấp thêm các dịch vụ như quản lí bảo mật và quản lí tương tranh.
Một Web Server có thể làm việc với EJB server để cung cấp các dịch vụ đó. Một
Web Server không cần thiết phải trên cùng một máy với EJB server.
Ngày nay, platform J2EE và .Net hỗ trợ việc cài đặt của Web Services. Một
điểm mạnh của việc sử dụng J2EE là một cơ sở cho việc cài đặt hệ thống E-
Learning là chúng ta có rất nhiều nhà cung cấp và rất nhiều mã nguồn mở. J2EE
là một chuẩn công nghiệp. Lí do quan trọng nhất mà chúng ta chọn J2EE đó là tất
cả đều dựa trên cơ sở JAVA. Không cần thiết bất cứ một sự thay đổi nào về kiến
trúc hệ thống khi chúng ta cài đặt Web Services trên kiến trúc J2EE và các thành
phần J2EE đã tồn tại có thể dễ dàng được thể hiện như là Web Services. Có rất
nhiều thuận lợi của J2EE đã được hỗ trợ cho Web Services như là tính khả chuyển,
tính mở rộng, tính an toàn.
57
Hình 28. Mô hình cài đặt trên Platform J2EE
Một ứng dụng J2EE được thiết kế tốt sẽ đạt được những mục tiêu sau đây:
Tính mạnh mẽ:
Phần mềm doanh nghiệp là rất quan trọng đối với một tổ chức.Người
dùng của những phần mềm này luôn hy vọng rằng phần mềm sẽ đáng tin
cậy và không có lỗi.Vì vậy chúng ta phải hiểu và tận dụng được những
tính năng của J2EE để có thể giúp chúng ta xây dựng những giải pháp
mang tính mạnh mẽ và phải đảm bảo chắc chắn rằng chúng ta viết code
có chất lượng tốt.
58
Có hiệu năng cao và khả năng dễ dàng mở rộng.
Các ứng dụng doanh nghiệp phải thỏa mãn những hy vọng về hiệu năng
của người dùng của chúng.Đồng thời chúng phải thể hiện khả năng dễ
dàng mở rộng-đây một yếu tố cần thiết cho một ứng dụng để nó có thể hỗ
trợ khi tải tăng lên trên một hệ thông phần cứng cho trước.Khả năng mở
rộng là một yếu tố hết sức quan trọng cho các ứng dụng Internet,khi mà
thật khó để dự đoán số người dùng.Hiểu được kiến trúc của J2EE sẽ rất
thích hợp để thỏai mãn những yêu cầu trên.
Tận dụng được những điểm mạnh của nguyên tắc thiết kế hướng đối
tượng
Nguyên tắc thiết kế hướng đối tượng đưa ra rất nhiều thuận lợi cho các hệ
thống phức tạp.Một ứng dụng được thiết kế tốt theo mô hình hướng đối
tượng được đẩy mạnh bằng việc sử dụng design pattern.
Tránh được những sự phức tạp không cần thiết .
Dễ dàng trong bảo trì và mở rộng.
Phân phối sản thẩm đúng thời hạn.
Dễ dàng trong kiểm thử.
Dế dàng sử dụng lại các thành phần.
J2EE cung cấp những sự hỗ trợ nổi bật cho việc cài đặt kiến trúc phân tán.Các
thành phần của một ứng dụng J2EE phân tán có thể được chia ra và chạy trên
nhiều JVM trên một máy đơn duy nhất hay trên nhiều máy chủ vật lý.Ứng dụng
J2EE phân tán dựa chủ yếu trên việc sử dụng EJB với giao tiếp remote,điều này
cho phép các server ứng dụng có thể che dấu đi rất nhiều sự phức tạp của việc
truy nhập và việc quản lí của các thành phần phân tán.
Kiến trúc phân tán có thể đưa ra rất nhiều những ưu điểm như sau:
Khả năng hỗ trợ nhiều Client và ở nhiều loại khác nhau mà yêu cầu chia
sẻ “tầng giữa” của các business object.Sự xem xét này không áp dụng cho
các ứng dụng Web,khi web container đã cung cấp một tầng giữa.
Khả năng triển khai bất cứ một thành phần ứng dụng nào trên bất kì
server vật lí nào.Trong một vài ứng dụng thì điều này rất quan trọng cho
việc cân bằng lưu lượng.
59
Tuy nhiên kiến trúc phân tán cũng làm xuất hiện rất nhiều vấn đề:
Vấn đề về hiệu năng.
Việc đánh thức từ xa là chậm hơn rất nhiều so với việc đánh thức cụ bộ.
Sự phức tạp.
Các ứng dụng phân tán rất khó để cài đặt ,gỡ rối,triển khai và bảo dưỡng.
Các ràng buộc trong việc thực hiện thiết kế hướng đối tượng.
Đặc tả của J2EE 1.2 đã đưa ra nhiều sự lựa chọn đơn giản.EJBs có giao tiếp
remote và có thể sử dụng chỉ trong các ứng dụng phân tán. Remote Method
Invocation (RMI) là sự lựa chọn duy nhất cho việc hỗ trợ remote client.
Từ đó,hai sư phát triển-một trong J2EE và một bên ngoài J2EE đã có sự kết
hợp sâu sắc cho thiết kết J2EE.
Đặc tả EJB 2.0 cho phép EJB có giao tiếp cục bộ thay vì giao tiếp remote.EJB
có thể được đánh thức qua giao tiếp cục bộ của nó bởi các thành phần trong một
ứng dụng J2EE tích hợp chạy trên cùng JVM.
Sự kết hợp của Simple Object Acess Protocol dựa trên XML đã được chấp
nhận dụng rộng rãi như là một chuẩn flatform –agnostic cho RMI và hỗ trợ rộng
khắp cho Web Services.
Giao tiếp cục bộ EJB 2.0 được giới thiệu rộng khắp để giải quyết bài toán về
hiệu năng của Entity Bean 1.1.
Một trong những quyết định quan trọng nhất trong thiết kế một ứng dụng J2EE
đó là có hay không sử dụng EJB.EJB vẫn được coi như là lõi của kiến trúc
J2EE.Đây là một quan niệm sai lầm,EJB chỉ đơn thuần là một trong số các lựa
chọn được J2EE đưa ra.Nó được ý định là phù hợp để giải quyết các vấn đề,nhưng
trong một vài ứng dụng thì EJB đem lại rất ít ý nghĩa.
Khi các yêu cầu có ý tưởng là một kiến trúc phân tán và RMI/IIOP là giao thức
từ xa ban đầu thì EJB cho chúng ta một sự cài đặt chuẩn.Chúng ta có thể lập trình
đối tượng nghiệp vụ của chúng ta là các EJB với các giao tiếp từ xa và có thể sử
dụng trình chứa EJB để quản lí các vòng đời của chúng và dùng để đón nhận các
đánh thức từ xa.
Nếu các yêu cầu không dẫn đến ý tưởng là kiến trúc phân tán thì hay nếu
RMI/IIOP không là giao thức từ xa tự nhiên thì quyết định có hay không sử dụng
EJB sẽ trở nên khó khăn hơn.
60
EJB là công nghệ phức tạp nhất trong J2EE và từ thông dụng nhất trong
J2EE.Điều này có thể dẫn đến các lập trình viên sử dụng EJB sai mục đích.
EJB là một công nghệ high –end.Nó có thể giải quyết một số vấn đề nhất định
rất tôt,nhưng không nên sử dụng nó nếu không có lí do cần thiết và đúng đắn.
Những vấn đề liên quan khi sử dụng EJB.
Một trong những mục tiêu trong đặc tả EJB 2.0 đó là làm đơn giản code của
các ứng dụng. Đặc tả EJB 2.0 khẳng định rằng :”Kiến trúc EJB sẽ làm cho việc
viết code các ứng dụng sẽ dễ dàng hơn.Các nhà phát triển ứng dụng sẽ không phải
hiểu chi tiết về các quản lí giao dịch mức thấp,các chi tiết về tính Multi-
thread ,chia sẻ kết nối,và các API mức thấp”.
Về mặt lí thuyết bằng việc chuyển toàn bộ cho các vấn đề mức thấp cho trình
chứa EJB thì các người phát triển tự do để đầu nỗ lực của họ cho các business
logic.
Tuy nhiên công nghệ EJB cũng làm nảy sinh các vấn đề sau:
Sử dụng EJB làm cho các ứng dụng trở nên khó khăn hơn trong quá trình
kiểm tra.
Sử dụng EJB cũng khiến cho các ứng dụng khó khăn trong quá trình triển
khai.
Sử dụng EJB với giao tiếp từ xa có thể làm cản trở việc thiết kế theo mô
hình hướng đối tượng.
Sử dụng EJB có thể khiến những thứ đơn giản trở nên phức tạp.
Làm giảm sự lựa chọn của các server ứng dụng.
Một số điểm mạnh khi dùng EJB.
Cho phép truy nhập từ xa tới các thành phần ứng dụng.
Cho phép các thành phần ứng dụng có thể được trải ra trên nhiều server
vật lý khác nhau.
Hỗ trợ phong phú các loại Client COBRA hay JAVA.
Cài đặt các message consumers khi một mô hình không đồng bồ là hợp lí.
Truy nhập dữ liệu.
Việc lựa chọn công nghệ truy nhập dữ liệu là một trong những vấn đề cần xem
xét chính khi quyết định có hay không sử dụng EJB khi mà một trong những sự
lựa chọn (entity beans) là sự lựa chọn duy nhất khi dùng EJB.Chiến lược truy nhập
61
dữ liệu thường xuyên quyết định hiệu năng của toàn hệ thống doanh nghiệp và
khiến nó trở thành bài toán thiết kế chủ yếu.
Chú ý rằng trình chứa (container) hỗ trợ cho việc chia sẻ kết nối tài nguyên là
có ý nghĩa trong trình chứa Web chứ không chỉ đơn thuần cho server EJB.
Rất nhiều người phát triển J2EE không linh hoạt khi xem xét vấn đề truy nhập
dữ liệu.Những trong khi đó thì:
- Sự di chuyển giữa các Database là luôn luôn cần thiết.
- Ánh xạ Object/Relation (O/R) luôn là những giải pháp tốt nhất khi làm việc
với cơ sở dữ liệu quan hệ.
- Ánh xạ O/R là một giải pháp hoàn hảo trong vài trường hợp (đặc biệt là khi
dữ liệu có thể được che dấu ở lớp ánh xạ) tuy nhiên trong một vài trường hợp
thì chúng sẽ làm suy giảm đáng kể hiệu năng của hệ thống.Ở khía cạnh tích
cực,giải pháp ánh xạ O/R ,nếu chúng là một sự thích hợp tốt trong vài ứng
dụng cụ thể thì chúng có thể giúp cho người phát triển thỏai mái trong việc
viết các code truy nhập cơ sở dữ liệu,năng cao hiệu quả công việc.
Người ta thường cho rằng entity bean là cách duy nhất để đạt được sự phân
tách rõ ràng giữa truy nhập dữ liệu và logic nghiệp vụ ,đây là một ý kiến sai
lầm.Truy nhập dữ liệu không khác với bất cứ một phần nào khác của hệ thống nơi
mà người ra mong muốn giữ lại một lựa chọn khác cho quá trình cài đặt.Chúng ta
có thể phân tách các chi tiết về việc truy nhập dữ liệu ra khỏi phần còn lại của ứng
dụng một cách đơn giản bằng các nguyên tắc thiết kế hướng đối tượng của lập
trình đối với các giao tiếp hơn là các lớp.Hướng tiếp cận này là linh hoạt hơn sử
dụng entity bean khi mà chúng ta đã chỉ được chuyển cho một giao tiếp JAVA.
Entity bean.
Entity bean là một cách thực hiện tốt cho việc tách biệt các code truy nhập dữ
liệu.Nhưng thật không may,Entity Bean là một cách rất “tốn kém” để đạt được
điều này,đặc biệt về thời gian chạy.Entity Bean không chói buộc chúng ta với một
kiểu cơ sở dữ liệu cụ thể nào tuy nhiên nó lại trói buộc chúng ta với trình chứa
EJB và một công nghệ ánh xạ O/R cụ thể.
Vẫn tồn tại những sự nghi ngờ khi xem xét cơ sở lí thuyết và giá trị thực tế của
Entity Bean.Trói buộc truy nhập dữ liệu với trình chứa EJB làm giới hạn sự linh
hoạt của cấu trúc và làm cho các ứng dụng khó kiểm tra.
62
Cho dù với những sự cải tiến của EJB 2.0 thì Entity Bean khiến nó trở nên khó
sử dụng khi giải quyết một số vấn đề thông thường (Entity là một chuẩn ánh xạ
O/R).Chúng thường dẫn tới sự sử dụng không hiệu quả của các ứng dụng cơ sở dữ
liệu quan hệ ,và điều này làm suy giảm hiệu năng của hệ thống.
Java Data Object (JDO)
JDO là một đặc tả gần đây được phát triển bởi Java Community Process mà
miêu tả một kĩ thuật cho việc đảm bảo sự duy trì của các đối tượng Java đối với
bất cứ một dạng lưu trữ nào.JDO thường xuyên được sử dụng như là một ánh xạ
O/R những nó không bị trói buộc vào RDBMS.JDO có thể được trở thành chuẩn
API cho việc truy nhập Java đới ODBMS.JDO đưa ra mô hình “nhẹ nhàng” hơn
so với EJB. Hầu hết các đối tượng Java có thể tồn tại bao lâu cung được miễn là
trạng thái của nó được giữ trong các thể hiện của dữ liệu.Không giống với Entity
Bean,các đối tượng được duy trì khi sử dụng JDO không cần thiết phải cài đặt bất
cứ một giao tiếp đặc biệt nào .JDO cũng định nghĩa một ngôn ngữ truy vấn để
chạy các câu lệnh truy vấn trên các đối tượng tồn tại.
JDO hiện tại chưa trở thành một phần của kiến trúc J2EE,tuy nhiên nó sẽ sớm
trở thành một API cần thiết như JDBC và JNDI.
JDO cung cấp hầu hết các ưu điểm của Entitty Bean trong khi đó lại loại bỏ các
hầu hết các yếu điểm của chúng.Nó tích hợp tốt với quản lí giao dịch máy chủ
J2EE,nhưng không bị trói buộc với EJB hay thậm trí là J2EE.
63
Kiến trúc hệ thống
Hình 29. Sơ đồ kiến trúc
64
Dispatcher Request Interpreter
Protocol Interfaces
IMS-LD
Interpreter
Interface
OpenACS
Interface
JAXM
Interface
J2EE Application Server
...
Common Interface
Services
XML
Services
Config.
XML
Interface
Config.
Tracker
Logger
Common
Repository
Interaction
Object
Hình 30. Kiến trúc truyền thông của hệ thống
Hình 31. Bussines Logic của Platform E-learning
65
Hình 32. Sơ đồ kết nối JDBC
VI. Cài đAt mt h thng đào to trc tuyn trên platform J2EE
1. Giới thiệu về gói phần mềm
Đây là một phần mềm mã nguồn mở được cung cấp miễn phí tại địa chỉ web
nhóm chúng em đã download về và tìm cách cài đặt dựa
trên hướng dẫn cài đặt của gói phần mềm. Phần mềm đưa ra những yêu cầu khá
cao về cấu hình hệ thống có thể cài đặt nó, vì thế nếu không có sự giúp đỡ về cơ
sở vật chất của công ty CMC, nơi một số thành viên của nhóm đang làm việc, thì
chúng em sẽ rất khó khăn trong việc tìm kiếm platform cài đặt nó. Vì vậy. chúng
em xin gửi lời cảm ơn tới các đồng nghiệp ở công ty CMC đã tạo điều kiện để
chúng em có thể hoàn thành phần cài đặt khá phức tạp này.
2. Cài đặt phần mềm
a) Yêu cầu hệ thống
JavaTM 2 SDK, Standard Edition, Version 1.4.2
512MB RAM
60GB Drive.
66
b) Cấu hình trình duyệt máy khách và firewall
Mọi người dùng của LMS phải có một Java 1.4 enabled –browser.Để làm điều
đó bạn thực hiện như sau:
Mở Control Panel, mở Java Plugin,sau đó trong Dialog này chuyển đến Tab
Advanced và chọn version 1.4 của plugin(Nếu nó tồn tại) nếu không thì chuyển
đến Tab Update và thực hiện quá trình Update.
c) Cài đặt Server
a-LMS là một Free Learning Mangement System tương thích với chuẩn
SCORM 1.2 .Database a-LMS theo dõi sinh viên, người quản lí, quản trị, các khoá
học…Phiên bản này của a-LMS sử dụng Hypersonic Database, đây là một engine
cơ sở dữ liệu quan hệ open-source.Tuy nhiên, tất cả các truy nhập database là
thông qua JDBC để mà bất cứ JDBC (JDBC-ODBC cầu nối) tương thích database
sẽ có thể được thay thế.
a-LMS được viết bằng JAVA và yêu cầu môi trường JAVA trên máy chủ và
trình duyệt Java-enabled.
a-LMS là một ứng dụng Web mà sử dụng Tomcat,một servlet engine open-
source và web server từ Apche Group.
a-LMS sẽ chạy trêm bất cứ platform nào ,tuy nhiên nó đã được kiểm tra là chạy
tốt trong các hệ điều hành sau:
Windows 2000 Professional [Version 5.00.2195 SP4].
WindowsXP Professional [Version 5.1].
WindowsXP Home Edition.
Đây là phần mềm được phát triển bởi Rubecula Software, LLC (Rubecula)
dưới hợp đồng của Telecommunications Research Associates (TRA)
Bản release này của LMS gồm 6 phần:
File Readme.html.
ReleaseNotes.txt
database.zip
licenses.zip
licenses.zip
Flimsy.war
67
Bạn cần những phần mềm sau đây để có thể cài đặt:
Java(TM) 2 SDK, Standard Edition, Version 1.4.2
HSQLDB (version: 1.7.2.4);
Tomcat (version: 4.1.30).
Sau đó bạn thực hiện các bước cài đặt sau:
1. Tạo một thư mục gọi là LMS.
2. Unpack Tomcat file và extract nó vào trong một thư mục (Ví dụ: c:\jakarta-
tomcat-4.1.30).
3. Thêm vào các biến môi trường sau:
JAVA_HOME: Có giá trị là đường dẫn đến thư mục Java SDK (ví
dụ c:\jsdk1.4.2_03).
CATALINA_HOME: Tên của thư mục dùng để cài Tomcat (Ví
dụ: c:\jakarta-tomcat-4.1.30).
CATALINA_OPTS: Dùng để thiết lập thư mục và file của a-LMS
logs properties.
DB_HOME: Tên của thư mục chứa cài đặt HSQLDB.
4. Copy Flimsy.war vào trong thư mục %CATALINA_HOME%\webapps.
5. Vào command prompt window, cd tới %CATALINA_HOME%\bin.Gõ startup.
6. Vào trang
7. Trở lại của sổ cmd và gõ: shutdown.
8. Tạo Context trong Tomcat.
1. Đăng nhập vào trang quản trị Tomcat: sau đó
Click Tomcat Administration.
68
Hình 33. Trình chủ Tomcat
69
Hình 34. Đăng nhập Web Server
2. Click để expand Tomcat Server (đỉnh của danh sách bên trái), sau đó
Service (Tomcat-Standalone), rồi Host (localhost).
70
Hình 35. Tomcat Web Server
1. Chọn Create New Context trong select box "Host Actions".
2. Set “Path”: cho tên của context.Ví dụ nếu bạn muốn một file
Index.htm có thể nhận được bằng URL
thì bạn set Path nhận giá
trị /Courses.
3. Set "Document Base:" chỉ vào thư mục file hệ thống tương ứng.
4. Chọn nút “Save”.
5. Chọn nút "Commit Changes".
9. Trong thư mục %CATALINA_HOME%\webapps\Flimsy\WEB-INF bạn sẽ tìm
thấy một file XML tên là : web.xml .Trong file này bạn tìm tham số:
CourseContentContextPath, sau đó hãy nhập vào Path của context mà bạn định
nghĩa trong bước trước đó. Sau đó tìm tham số CourseContentDocumentBase và
thay thế giá trị đã tồn tại với giá trị Document Base của context mà bạn định nghĩa
ở bước trước.Khi đó nó sẽ có dạng như sau:
<! -- Parameters for interacting with webapp context for course content
data. -->
71
CourseContentContextPath</param-
name>
/Courses
CourseContentDocumentBase</param-
name>
C:\lms\courses
10. Trong %CATALINA_HOME%\webapps\Flimsy\WEB-INF\config bạn sẽ tìm
thấy một file tên là: log4j.properties.Trong File này bạn hãy tìm tham số:
log4j.appender.consoleLogFile.File và thay thế nó bởi thư mục mà bạn muốn.Làm
tương tự với log4j.appender.modelLogFile.File và
log4j.appender.configLogFile.File.
Save file rồi sau đó copy nó vào thư mục thu mục và bạn đã xác định trong
CATALINA_OPTS ở trên.
11. Unpack hsqldb_1_7_2_4.zip vào thư mục \LMS Trong System Variable ,hãy
thiết lập biến DB_HOME có giá trị tương ứng.Ví dụ DB_HOME=c:\LMS\hsqldb
12. Đặt sáu thành phần của Release này vào trong thư mục LMS
13. Khởi động HSQLDB Server bằng cách : \LMS\bin\startDb.bat
14. Khởi động HSQLDB Manager bằng cách sau:
cd %DB_HOME%
java -cp lib\hsqldb.jar org.hsqldb.util.DatabaseManager.
Khi chương trình khởi động:
1. Trong “Type” chọn kiểu kết nối "HSQL Database Engine
Server".
2. Trong URL nhập vào: "jdbc:hsqldb:hsql://localhost:9001/lmsdb"
3. Giữ nguyên các tham số khác.
4. Click OK.
72
Hình 36. Màn hình đăng nhập CSDL
15. Chuyển vào thư mục Flimsy và chạy bin\createSQLScript.bat. Chương trình
này sẽ tạo ra file model.sql trong thư mục Flimsy :
1. Nếu là chương trình cài đặt mới, chạy file model.sql trong
DatabaseManager.
2. Nếu mà bạn đang cài một version mới của phần mềm mà không
có sự thay đổi vào về mô hình, sau đó xóa hết tất cả các câu lệnh
trong file model.sql.
16. Nếu là lần cài đặt đầu tiên thì bạn cần tạo một nhóm group và
administrator.Để làm việc đó bạn :
Unzip the release file database.zip để extract file
PopulateTables.sql.
Chạy PopulateTables.sql trong DatabaseManager.
17. Tạo một thư mục rỗng Courses
trong %CATALINA_HOME%\webapps\Flimsy
73
18. Nếu bạn có ý định in “diplomas” cho các sinh viên thì bạn phải thay đổi các
tham số trong web.xml.
CompanyName: Tên của công ty.
GrantorName: Tên của Grantor của Dilomas.
GrantorTitle: Tựa đề của Grantor của Dilomas.
CompanyLogo: File hình ảnh được dùng làm logo của công ty.
GrantorSignature :File ảnh chứa chữ kí của Grantor.
19. Bạn quay lại command window và khởi động lại nó.
20. Mở File %CATALINA_HOME%\webapps\Flimsy\files\Flimsy.html.
Bạn nên sử dụng đường dẫn sau để bắt đầu với LMS
Quá trình cài đặt hoàn tất.!
a-LMS được chạy như là một ứng dụng web thông qua trình duyệt.Mặc dù a-
LMS tự nó sẽ chạy dưới Netscape,bạn sẽ không thể đưa nội dung TRA trừ khi bạn
sử dụng Internet Exxplorer như là trình duyệt của bạn.Khi bạn làm theo link ở trên
thì bạn sẽ nhìn thấy mà hình Login.Hãy nhập vào fistname và lastname và
password của bạn.Bạn sẽ được chuyển đến màn hình mà nội dung của nó sẽ khác
nhau tuỳ theo vai trò của bạn.Một đăng nhập mặc định được nhập vào trong quá
trình cài đặt khi bạn chạy file PopulatyeTables.sql .Nó sẽ chèn vào người dùng
gốc với một đăng nhập là root và password là r00t. Bạn nên thay đổi password với
lệnh Edit Users.
Với vai trò là một người quản trị,bạn có thể thêm các khoá học.Các dữ liệu cho
một khoá học có thể tòn tại trên server hoặc trên một file zip trên hệ thống máy
client. Trong trường hợp đó,bạn click vào Add course, còn trong trương hợp thứ
2 ,click Upload course . Ở đó phải tồn tại trước các thông tin của bạn để có thể
tương ứng với một course mới.Nếu là upload thì đầu tiên phải upload file zip sau
đó kết hợp nó với curriculum tương ứng.Nếu tham thiết với dữ liệu đã tồn tại trên
server, thì hãy nhập vào tên đường dẫn của file cần tìm và tên của curriculum.
Nếu bạn đăng là sinh viên đăng kí và bạn muốn đăng kí cho một khoá học,
click Register for Course sau đó làm theo hướng dẫn.
Để tham gia vào một đơn vị khoá học, click vào View registered courses. Bạn
sẽ thấy một danh sách khoá học mà bạn đã đăng kí.Click vào View Units bên
cạnh khoá học mà bạn muốn tham gia.Và bạn sẽ được giới thiệu một danh sách
các Unit .Click vào nút Launch bên cạnh Unit mà bạn muốn .
74
Khởi động và Tắt LMS.
Khởi động và tắt LMS liên quan đến khởi động và tắt Tomcat cũng như
HSQLDB .Ở đó có những file batch trong %CATALINA_HOME%\bin và
\LMS\bin.Ngoài ra, còn có một file trong \LMS\bin\lms.rc mà chứa các cấu hình
cần thiết để dừng HSQLDB.
Để khởi động phần mềm LMS bạn thực hiện theo các bươc sau:
1. Chuyển vào thư mục \LMS\bin và nhập vào startDb.
2. Chuyển vào thư mục %CATALINA_HOME%\bin và nhập vào câu
lệnh startup.
Để dừng phần mềm LMS bạn thực hiện các bước sau:
1. Chuyển vào thư mục \LMS\bin và nhập vào câu lênh: startDb.
2. Chuyển vào thư mục %CATALINA_HOME%\bin và nhập vào câu
lệnh: shutdown.
Thành phần \LMS\bin\lms/rc đã được cấu hình để dừng một database có tên là
lmsdb, chạy trên localhost tại cổng 9001, với một administrator hệ thống với
username là “sa” và password là “”.
Hình 37. Giao diện của a-LMS
75
Đỗ Công Thành
Bùi Quang Trung
Đào Quang Tuấn
Phùng Tiến Lân
Tài liệu tham khảo
[1]. Xiaofei Liu, “An implementable architecture of an e-learning system”,
Distributed and Collaborative Virtual Environments Research Lab
School of Information Technology and Engineering, University of Ottawa,
Ottawa, Ontario, Canada.
[2]. “E-learning Application Infrastructure”, White paper of Sun
Microsystems.
[3]. “E-learning Interoperability Standards”, White paper of Sun
Microsystems.
[4]. Peter Westerkamp, “E-Learning as a Web Service”, University of M¨unster
Institut f¨ur Wirtschaftsinformatik Leonardo-Campus 3 D-48149 M¨unster,
Germany pewe@wi.uni-muenster.de
[5]. Ethan Cerami, “Web Services Essential, Distributed Applications with XML-
RPC, SOAP, UDDI & WSDL”, O’reilly Publishing First Edition February
2002.
[6]. Copyright Bộ GDĐT, Việt Nam.
[7]. , Copyright FPT Corp.
[8].
[9]. Tien. N. D, Đồ án tốt nghiệp đại học, khoa CNTT, ĐHBKHN, 2002.
Các file đính kèm theo tài liệu này:
- Hệ thống e-Learning.pdf