Trong ki n trúc này, khi ta nh p vào d li u d ng HTML, WML hay XML (“Web services” trong hình v ), các d li u này đi qua 3 t ng: trình di n, x lý và d li u c a mơ hình MVC. Trong 3 t ng này, ng i ta có th s d ng các cơng ngh nh : struts, servlet, spring, EJB, Hibernate, JMS…
Phát tri n CMS module cho h th ng Intranet cu Cơng ty TMA
Ngồi d li u d ng HTML, WML hay XML, chúng ta cịn có th s d ng các đ i t ng d i d ng J2EE, J2SE hay J2ME.
3. Công ngh đ c s d ng đ phát tri n h th ng intranet
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 chu n dùng đ phát tri n h th ng
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 q 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 q 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 c u c a công ty TMA khi xây d ng m t 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… • Qu n lý ng i s d ng.
Phát tri n CMS module cho h th ng Intranet cu Cơng ty TMA
̇ T o, xố 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 c u chia s thông tin gi a các d án và các v trí cơng vi c vi c
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 d ng h CMS d i d ng m t portlet có th đ c s d ng b i các ng d ng và các thành ph n khác d ng b i các ng d ng và các thành ph n 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 đ 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 thu t s d ng trong quá trình phát tri n
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 Chu n JSR 168
Phát tri n CMS module cho h th ng Intranet cu Công ty TMA
1. Gi i thi u v chu n 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 AP I AP I API JSR-168
Phát tri n CMS module cho h th ng Intranet cu Công ty TMA
2. M t s khái ni m 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.
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 i m gi ng nhau gi a 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 i m khác nhau gi a Portlet và Servlet
• Portlet ch t o ra các Fragment ch khơng t o ra tồ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 c a 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 hố 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 di n 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
• 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 tồ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 :