Hệ thống e-Learning

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.

pdf75 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2735 | Lượt tải: 2download
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:

  • pdfHệ thống e-Learning.pdf
Tài liệu liên quan