Công nghệ được sử dụng để phát triển hệ thống intranet

Một phần của tài liệu xây dựng CMS MODULE cho hệ thống intranet của công ty TMA (Trang 45)

Trong quá trình xây dựng hệ thống intranet, các công nghệ và kỹ thuật sau đã

được sử dụng:

• Multi-platform: Linux, Solaris, Windows

• Platform : .NET, J2EE

• XML, SOAP, HTTP, RMI-IIOP, WSRP...

• Hệ quản trị cơ sở dữ liệu: Hypersonic, MySQL, PostgreSQL, SQL Server.

• Web application server: JBoss, TomCat, Sun ONE, webLogic, Jonas.

4. Các chun dùng để phát trin h thng

Trong quá trình phát triển hệ thống intranet của Công ty, Công ty đã quyết định các thành phần được xây dựng cần tuân theo các chuẩn trên thế giới nếu có thểđược. Sự phát triển các thành phần dựa trên các chuẩn này có các lợi ích như sau:

• Sử dụng một chuẩn để phát triển sẽ cần ít thời gian và chi phí hơn.

• Trên thế giới đều biết đến chuẩn được sử dụng để phát triển, do đó sẽ có nhiều sự hỗ trợ hơn trong quá trình xây dựng các thành phần.

• Có nhiều mã nguồn mở được xây dựng dựa trên các tiêu chuẩn, do đó có thể tận dụng các thành phần này cho portal.

• Các thành phần được xây dựng dựa trên các chuẩn sẽ tích hợp dễ dàng hơn vào hệ thống hiện tại.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

• Để mở rộng hệ thống hiện tại trong tương lai, cần phải xây dựng các thành phần theo chuẩn.

Sau đây là các chuẩn được yêu cầu sử dụng trong quá trình phát triển hệ thống thông tin của công ty:

• Chuẩn JSR 168 dùng để xây dựng các portlet.

• Chuẩn JSR 170 để xây dựng hệ CMS.

5. Nhu cu ca công ty TMA khi xây dng mt h CMS

Hệ CMS được xây dựng để sử dụng trong công ty TMA phải bao gồm các chức năng của một hệ CMS thông thường. các chức năng này được mô tả như sau:

• Quản lý nội dung.

ƒ Tạo, xoá và sửa đổi nội dung.

ƒ Cập nhật nội dung.

• Quản lý vai trò

ƒ Tạo, xoá, sửa đổi vai trò.

ƒ Cập nhật thông tin của vai trò.

ƒ Cho phép vai trò đăng nhập vào hệ thống.

ƒ Ngăn cấm vai trò đăng nhập vào hệ thống.

• Phân quyền cho các vai trò.

ƒ Mỗi vai trò có thể có nhiều quyền khác nhau và các quyền này được gán cho vai trò bởi người quản lý web site.

ƒ Các quyền này có thể là đọc, ghi, đọc và ghi… (adsbygoogle = window.adsbygoogle || []).push({});

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

ƒ Tạo, xoá bỏ, sửa đổi thông tin người sử dụng.

ƒ Cập nhật thông tin người sử dụng.

ƒ Cho phép người sử dụng đăng nhập vào hệ thống.

ƒ Ngăn cấm người sử dụng đăng nhập vào hệ thống.

• Gán các vai trò cho người sử dụng.

ƒ Do trong một tổ chức tồn tại rất nhiều phòng ban và vị trí công việc khác nhau, do đó cần phải phân chia vai trò cho từng người sử dụng khác nhau trên hệ thống tuỳ thuộc vào từng phòng ban và vị trí công việc của họ.

ƒ Một người sử dụng có thể có nhiều vai trò khác nhau trong hệ thống và các vai trò này được gán bởi người quản lý web site.

• Sử dụng các template cho các trang web: các trang web cần phải đồng bộ

với nhau về cách thức hiển thị, do đó cần phải sử dụng các template giống nhau cho toàn bộ web site.

• Phân loại nội dung: điều này là cần thiết để tránh tình trạng dữ liệu bị sắp xếp không theo trật tự và để có thể tìm kiếm dễ dàng thông tin cần thiết.

• Tìm kiếm thông tin: do nội dung trang web và các thông tin liên quan ngày càng nhiều, do đó cần phải có cơ chế tìm kiếm thông tin để hỗ trợ

các nhân viên trong các trường hợp cần thiết.

• Thay đổi các thông số cấu hình: hệ thống này cho phép thay đổi các thông tin cấu hình để tối ưu hoá hoạt động của hệ thống.

Ngoài các nhu cầu cầu của một hệ CMS thông thường, công ty TMA còn có 2 nhu cầu như sau:

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

5.1 Nhu cu chia s thông tin gia các d án và các v trí công vic vic

Trong công ty TMA có rất nhiều dự án và trong mỗi dự án lại tồn tại nhiều vị trí công việc khác nhau, bao gồm có 3 vị trí như sau:

• Quản lý dự án.

• Quản lý nhóm.

• Thành viên bình thường.

Mỗi dự án sở hữu các thông tin riêng về dự án đó và các công việc họđang thực hiện. Một phần các thông tin này có thể cho phép mọi người trong công ty đều có thể

xem được. Phần còn lại chỉ cho phép các thành viên trong nhóm có thể truy cập vào thôi.

Mỗi dự án có một người phụ trách cập nhật thông tin về dự án đó. Người này thông thường là trưởng dự án hoặc trưởng nhóm. Người này có quyền thực hiện một số

thao tác như: tạo, xoá bỏ, sửa đổi…các thông tin của nhóm trên intranet. các thành viên khác của nhóm chỉ có quyền xem trên các thông tin của nhóm.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

5.2 Xây dng h CMS dưới dng mt portlet có th được s

dng bi các ng dng và các thành phn khác

Như đã trinh bày như trên, chúng ta biết rằng hệ CMS xây dựng là một thành phần phi chức năng dùng để cung cấp chức năng cho các ứng dụng, các dịch vụ, các thành phần chức năng khác. Do đó, cần phải xây dựng hệ CMS dưới dạng một portlet (adsbygoogle = window.adsbygoogle || []).push({});

để có thể sử dụng bởi các ứng dụng và các thành phần khác trên intranet.

5.3 Các k thut s dng trong quá trình phát trin

Do hệ CMS này được xây dựng để tích hợp vào hệ thống thông tin có sẵn của công ty TMA dưới dạng một portlet. Do đó, có một số quy định trong quá trình phát triển hệ CMS này như sau:

• Hệ CMS này phải được xây dựng dưới dạng một portlet: điều này cần thiết để tích hợp vào portal hiện tại của Công ty.

• Hệ CMS này phải tuân theo chuẩn JSR 168: do chuẩn JSR 168 là chuẩn dùng để tích hợp một portlet vào portal.

• Hệ CMS phải được lập trình bằng Java: portal hiện tại của công ty được lập trình bằng Java và các portlet trên portal tuân theo chuẩn JSR 168.

• Hệ CMS phải được xây dựng dựa trên các giải pháp mã nguồn mở và miễn phí.

• Sử dụng chuẩn JSR 170 để xây dựng hệ thống này nếu có thể được: do chuẩn JSR 170 là chuẩn dùng để hỗ trợ việc xây dựng các hệ CMS, việc xây dựng hệ thống này nên tuân theo chuẩn JSR 170 để có thể mở rộng hệ thống này trong tương lai nếu có nhu cầu.

• Hệ thống này phải có khả năng hoạt động trên nền Linux: portal hiện tại của công ty hoạt động trên Linux.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

• Hệ thống này phải có khả năng họat động trên application server JBoss: do portal hiện tại của công ty hoạt động trên JBoss.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Chương 5

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

1. Gii thiu v chun JSR 168

Chuẩn JSR 168 dùng để định nghĩa portlet và cách thức giao tiếp giữa portlet và portal.

Phiên bản hiện tại của chuẩn này là 1.0 được đưa ra bởi Sun Microsystems vào ngày 29/08/2003. (http://jcp.org/en/jsr/detail?id=168)

Hình 15: Mô hình chuẩn JSR 168

Hình trên mô tả sự giao tiếp giữa portal và các portlet. Sự giao tiếp này được thực hiện thông qua các API được cung cấp bởi chuẩn JSR 168.

Portlet Portlet Portlet Portlet Portlet API API API AP I API JSR-168

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

2. Mt s khái nim chính 2.1 Portal

Portal là một ứng dụng Web dùng để tích hợp các nội dung từ các nguồn khác nhau vào cùng một trang Web. Các nội dung có thểđược cấu hình tùy thuộc vào từng người sử dụng khác nhau mà Portal cho phép. Một Portal có thể chứa nhiều Portlet

2.2 Portlet

Portlet là một thành phần (component) dựa trên nền Web sử dụng các công nghệ

của Java. Portlet được quản lý bởi một Portlet Container. Portlet dùng để xử lý các yêu cầu và tạo ra các thành phần dữ liệu động để phản hồi yêu cầu.

Portlet có thể tích hợp vào Portal và Portal sẽ cung cấp một tầng trình diễn cho các thành phần của Portlet.

Nội dung được tạo ra bởi Portlet được gọi là Fragment. Một Fragment là một mảnh dữ liệu được tạo bởi các ngôn ngữ như: HTML, XHTML, WML… theo một

định dạng được quy định. Các Fragment này có thểđược kết hợp với các Fragment của các Portlet khác để hình thành trang Web của Portal.

Người sử dụng tương tác với Portlet thông qua cơ chế yêu cầu/phản hồi được cung cấp bởi Portlet. Nội dung phản hồi yêu cầu được Portlet tạo ra và nội dung này cũng tùy thuộc vào cấu hình ứng với từng người sử dụng. (adsbygoogle = window.adsbygoogle || []).push({});

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

2.3 Portlet Container

Porlet Container cung cấp một môi trường lúc Runtime chứa đựng và quản lý chu kỳ sống của một Portlet.

Portlet Container nhận yêu cầu từ Portal và chuyển yêu cầu này đến Portlet tương ứng để Portlet xử lý yêu cầu và tạo nội dung phản hồi.

3. So sánh Portlet và Servlet

3.1 Đim ging nhau gia Portlet và Servlet

• Cùng là thành phần Web sử dụng công nghệ của Java.

• Được chứa đựng và quản lý bởi một Container.

• Tạo ra nội dung dữ liệu động để phản hồi lại yêu cầu.

• Cùng tương tác với người sử dụng thông qua cơ chế yêu cầu/phản hồi.

3.2 Đim khác nhau gia Portlet và Servlet

• Portlet chỉ tạo ra các Fragment chứ không tạo ra toàn bộ tài liệu. Portal sẽ

tập hợp các Fragment do Portlet tạo ra thành nội dung của trang Web trên Portal..

• Không cần phải kết hợp một Portlet với một địa chỉ URL như Servlet

• Người sử dụng tương tác với Portlet thông qua Portal.

• Portlet có thể được sử dụng nhiều nơi trên cùng một trang Web của Portal.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

3.3 Đặc trưng ca Portlet mà không có servlet

• Portlet cho phép truy cập và lưu trữ cầu hình và tối ưu hoá dữ liệu.

• Portlet cho phép truy cập vào các thông tin về người sử dụng.

• Portlet hỗ trợ chức năng viết lại URL ( URL Rewriting Function ) cho phép tạo ra liên kết trong nội dung của nó.

• Portlet có thể lưu trữ dữ liệu tạo thời trong phiên làm việc của Portlet ở 2 phạm vi: Phạm vi ứng dụng và Phạm vi cá nhân.

4. Giao din portlet

Giao diện Portlet khai báo các API cơ bản nhất của một Portlet. Mọi Portlet

được xây dựng đều phải hiện thực hoá trực tiếp hoặc gián tiếp giao diện Portlet.

Lớp GenericPortlet hiện thực hoá giao diện Portlet và định nghĩa các chức năng cơ bản nhất mà một Portlet cần có. Do đó, khi xây dựng Portlet, lập trình viên nên mở

rộng trực tiếp hoặc gián tiếp lớp GenericPorlet này.

Một Portlet được quản lý thông qua chu trình sống của nó, bắt đầu từ lúc Portlet

được tải lên, tạo thể hiện của nó và khởi tạo, hoạt động để phản hồi yêu cầu của người sử dụng đến lúc nó được loại bỏ. Các phương thức được gọi đến trong chu trình sống của Portlet là:

• Gọi phương thức init trong quá trình khởi tạo của Portlet (adsbygoogle = window.adsbygoogle || []).push({});

• Nếu yêu cầu do máy khách gởi tới là yêu cầu hành động (Action Request) thì phương thức processAction được gọi. Nếu yêu cầu do máy khách gởi tới là yêu cầu biểu hiện (Render Request) thì phương thức processAction được gọi.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

• Khi Portlet Container xác định một Portlet không còn sử dụng nữa thì gọi

đến phương thức destroy của Portlet đó. Khi phương thức destroy được gọi thì Portlet sẽ giải phóng tài nguyên hệ thống mà nó đang sử dụng và lưu lại trạng thái hiện thời của nó.

5. Portlet URL

Một Portlet có thể tạo ra URL tham chiếu đến chính Portlet đó. Khi đó các URL này được gọi là Portlet URL.

Để tạo ra một Portlet URL thì Porlet cần phải sử dụng đối tượng PorletURL. Nếu phương thức createActionURL được gọi thì sẽ tạo ra một URL hành động và nếu phương thức createRenderURL được gọi thì tạo ra một URL trình diễn.

6. Portlet Mode

Kiểu Portlet xác định chức năng mà Portlet hiện đang thực hiện. Thông thường, Portlet thực hiện các tác vụ và tạo ra nội dung tùy thuộc vào chức năng hiện thời. Kiểu Portlet cho biết những tác vụ nào một Portlet cần thực hiện và những nội dung nào Portlet cần phải tạo ra.

Có 3 kiểu Portlet được quy định là:

• VIEW

ƒ Chức năng chính của Portlet khi sử dụng kiểu VIEW là tạo ra nội dung cho biết trạng thái của Portlet

ƒ Lập trình viên sẽ hiện thực hóa kiểu VIEW bằng cách định nghĩa lại phương thức doView của lớp GenericPortlet.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

ƒ Mọi Portlet đều phải hỗ trợ kiểu VIEW

• EDIT

ƒ Trong kiểu EDIT, một Portlet sẽ cung cấp nội dung và cấu hình các thành phần của nó để người sử dụng có thể tối ưu hóa họat động của Portlet

ƒ Lập trình viên sẽ hiện thực hóa kiểu EDIT bằng cách định nghĩa lại phương thức doEdit của lớp GenericPortlet.

ƒ Mọi Portlet không nhất thiết phải hỗ trợ kiểu VIEW

• HELP

ƒ Trong kiểu HELP, Portlet cung cấp những thông tin giúp đỡ người sử

dụng về Portlet. Những thông tin này có thể là những thông tin chung về toàn bộ Portlet hoặc là các giúp đỡ cảm ngữ cảnh (Context- sensitive help)

Các hằng số tượng trưng cho 3 kiểu Portlet được khai báo trong lớp PortletMode

7. Window State

Trạng thái cửa sổ cho biết khoảng không gian trên trang Web Portal dành cho nội dung của Portlet.

Có 3 trạng thái cửa sổđược định nghĩa :

• NORMAL: cho biết Porlet có thể chia sẻ trang Portal với các Portlet khác. Ngoài ra, trạng thái này còn cho biết giới hạn hiển thị của thiết bị

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

• MAXIMIZED: cho biết chỉ có một Portlet hiển thị trên trang Portal hoặc Portlet được ưu tiên hiển thị nội dung nhiều hơn các Portlet còn lại.

• MINIMIZED: Cho biết nội dung của Portlet chỉ được hiển thị ít nhất có thểđược hoặc không được hiển thị. (adsbygoogle = window.adsbygoogle || []).push({});

Các trạng thái cửa sổđược định trong lớp WindowState.

8. Portlet Request

Một yêu cầu gởi đến Portlet chứa các thông tin về yêu cầu từ phía máy khách, các tham số của yêu cầu, nội dung dữ liệu yêu cầu, kiểu Portlet, trạng thái cửa sổ…

Yêu cầu được đại diện bởi một đối tượng và đối tượng này được truyền vào như

là đối số của phương thức processAction hay render.

Mỗi đối tượng yêu cầu chỉ có thể họat động trong phạm vi của một phương thức processAction hay render

Các chức năng cần thiết của đối tượng PortletRequest được khai báo trong giao diện PortletRequest.

9. Portlet Response

Một phản hồi của Portlet bao gồm những thông tin được tạo ra bởi Portlet gởi trả về cho Portlet Container dựa trên yêu cầu được gởi đến như: sự thay đổi kiểu Portlet, tiêu đề, nội dung… Portlet Container sẽ sử dụng những thông tin này để tạo ra phản hồi đến người sử dụng, thông thường là một trang Web Portal.

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA

Mỗi đối tượng phản hồi chỉ có thể họat động trong phạm vi của một phương thức processAction hay render

Các chức năng cần thiết của đối tượng Portlet Response được khai báo trong giao diện PortletResponse.

10. Portlet Preferences

Portlet thông thường được cấu hình cho phù hợp với từng người sử dụng. Các thông tin về cấu hình của Portlet được gọi là Portlet Preference. Và Portlet Container

Một phần của tài liệu xây dựng CMS MODULE cho hệ thống intranet của công ty TMA (Trang 45)