MỤC LỤC I. Tổng quan về Cổng thông tin.............................................................................3 1. Cổng thông tin (Portal) là gì?........................................................................3 2. Sự phát triển của cổng thông tin....................................................................3 3. Các loại Cổng thông tin:................................................................................5 4. Tính năng của hệ thống Portal cần xây dựng................................................7 5. Các dịch vụ mà hệ thống Portal cung cấp.....................................................8 6. Lợi ích của hệ thống Portal............................................................................9 7. Sự khác nhau cơ bản giữa Portal và Website...............................................10 II. Tổng quan về Portlet.......................................................................................11 1. Portlet là gì ?................................................................................................11 2. Portlet container là gì ?................................................................................11 3. Quan hệ với J2EE :......................................................................................12 4. Mối quan hệ giữa portlet và servlet :...........................................................12 5. Cầu nối giữa portlet đến servletJSP...........................................................14 III. Tích hợp ứng dụng trong Cổng thông tin......................................................16 1. Tổng quan về tích hợp ứng dụng.................................................................16 2. Tích hợp IFRAME.......................................................................................25 3. Tích hợp Web proxy....................................................................................28 4. Tích hợp WSRP...........................................................................................32 5. Tích hợp đầy đủ LiferayPortlet..................................................................35 2 I. Tổng quan về Cổng thông tin 1. Cổng thông tin (Portal) là gì? Cổng thông tin (Portal, tên đầy đủ là Web Portal), là một hệ thống hoạt động trên Web, định danh và xác thực người dùng đăng nhập, từ đó sẽ cung cấp một giao diện web để người dùng dễ dàng truy cập, khai thác thông tin và dịch vụ cũng như thao tác, tuỳ biến các công việc tác nghiệp của mình một cách nhanh chóng và đơn giản. Cổng thông tin có các tính năng giúp người quản trị thu thập, quản lý nhiều nguồn thông tin khác nhau, từ đó phân phối chúng dưới dạng các dịch vụ cho từng người dùng khác nhau tuỳ thuộc vào nhóm quyền, vào nhu cầu cũng như mục đích của người dùng đó. Cổng thông tin thực hiện việc này hết sức linh động, từ những công việc như tìm xem và đặt mua sách trong một kho hàng trực tuyến, xem và thay đổi thông tin về sinh viên và giáo viên trên các ứng dụng quản lý giảng dạy, đến việc đăng và chia sẻ các thông tin, tài nguyên, bài viết trên các diễn dàn hay cung cấp việc truy cập thống nhất và thuận lợi đến các thông tin nội bộ trong một website của công ty... Cổng thông tin như một cổng vào vạn năng cho người dùng tìm kiếm thông tin và tác nghiệp một cách thuận lợi và dễ dàng. 2. Sự phát triển của cổng thông tin
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BỘ MÔN HỆ THỐNG THÔNG TIN
-*** -BÀI TẬP LỚN
CÔNG NGHỆ WEB VÀ CÁC DỊCH VỤ TRỰC TUYẾN
Đề tài: Tích hợp ứng dụng trong cổng thông tin
GVHD: TS Tạ Tuấn Anh
Nhóm 11: Lê Quang Hiếu - 20071095
Nguyễn Ngọc Hiếu - 20071111Lưu Thị Thùy Nhung - 20072167
Phạm Văn Tân - 20072530Bạch Duy Tùng - 20073274Phạm Xuân Trường - 20073100
Hà Nội, 11-2011
Trang 2MỤC LỤC
I Tổng quan về Cổng thông tin 3
1 Cổng thông tin (Portal) là gì? 3
2 Sự phát triển của cổng thông tin 3
3 Các loại Cổng thông tin: 5
4 Tính năng của hệ thống Portal cần xây dựng 7
5 Các dịch vụ mà hệ thống Portal cung cấp 8
6 Lợi ích của hệ thống Portal 9
7 Sự khác nhau cơ bản giữa Portal và Website 10
II Tổng quan về Portlet 11
1 Portlet là gì ? 11
2 Portlet container là gì ? 11
3 Quan hệ với J2EE : 12
4 Mối quan hệ giữa portlet và servlet : 12
5 Cầu nối giữa portlet đến servlet/JSP 14
III Tích hợp ứng dụng trong Cổng thông tin 16
1 Tổng quan về tích hợp ứng dụng 16
2 Tích hợp IFRAME 25
3 Tích hợp Web proxy 28
4 Tích hợp WSRP 32
5 Tích hợp đầy đủ Liferay/Portlet 35
Trang 3I Tổng quan về Cổng thông tin
1 Cổng thông tin (Portal) là gì?
Cổng thông tin (Portal, tên đầy đủ là Web Portal), là một hệ thống hoạt động trên Web, định danh và xác thực người dùng đăng nhập, từ đó sẽ cung cấp một giao diện web để người dùng dễ dàng truy cập, khai thác thông tin và dịch vụ cũng như thao tác, tuỳ biến các công việc tác nghiệp của mình một cách nhanh chóng và đơn giản Cổng thông tin có các tính năng giúp người quản trị thu thập, quản lý nhiều nguồn thông tin khác nhau, từ đó phân phối chúng dưới dạng các dịch vụ cho từng người dùng khác nhau tuỳ thuộc vào nhóm quyền, vào nhu cầu cũng như mục đích của người dùng đó Cổng thông tin thực hiện việc này hết sức linh động, từ những công việc như tìm xem và đặt mua sách trong một kho hàng trực tuyến, xem và thay đổi thông tin về sinh viên và giáo viên trên các ứng dụng quản lý giảng dạy, đến việc đăng và chia sẻ các thông tin, tài nguyên, bài viết trên các diễn dàn hay cung cấp việc truy cập thống nhất và thuận lợi đến các thông tin nội bộ trong một website của công ty Cổng thông tin như một cổng vào vạn năng cho người dùng tìm kiếm thông tin và tác nghiệp một cách thuận lợi và dễ dàng
2 Sự phát triển của cổng thông tin
Khái niệm “Web Portal” đã xuất hiện từ khá lâu, chỉ sau khi ra đời WWW một thời gian ngắn Ban đầu, các website chỉ như các báo quảng cáo điện tử, chứa các thông tin của một doanh nghiệp để khách hàng của họ có thể truy cập để xem và theo dõi một cách thuận tiện Lúc đó, Cổng thông tin được dùng để chỉ một trang chủ, chứa các liên kết đến các nội dung trong một website nào đó Ngoài ra, nó còn chứa một công cụ tìm kiếm nội bộ, cho phép người dùng dễ dàng tìm các thông tin nằm trong nội dung các trang web Chính vì vậy, cái tên Web Portal mang ý nghĩa: một cái “cổng” để truy nhập vào website Web Portal tựa như một danh bạ Web (Web directory) liên
Trang 4kết với một search engine đơn giản, tất cả chỉ dùng nội bộ trong một website
Sau thời gian đầu, các website không chỉ mang ý nghĩa đại diện để giới thiệu của các công ty, chúng trở thành những công cụ tác nghiệp trực tuyến rất thuận tiện dành cho cả khách hàng, đối tác và các nhân viên cũng như ban quản trị doanh nghiệp Do đó các tính năng quan trọng nên tích hợp vào một website như các tính năng đăng nhập và xác thực người dùng, các tính năng quản lý nội dung, tính năng cá nhân hoá, đa ngôn ngữ cũng như các tính năng tác nghiệp cụ thể đối với từng website Web Portal cung cấp khả năng tích hợp các tính năng này một cách dễ dàng thành một trang web duy nhất Web Portal đầu tiên kiểu này là Americal Online (AOL - http://www.aol.com/ )
Hiện tại, Web Portal không chỉ là một “cổng vào”, dẫn đường người dùng truy cập website, mà đã trở thành một siêu website, nghĩa là ngoài chứa đựng mọi thông tin và dịch vụ cần có như một website thông thường, nó còn
có khả năng quản trị giao diện cũng như nội dung của nhiều website, thêm bớt không những nội dung mới mà còn các dịch vụ mới, tích hợp các module thông dụng nhất như các forum, chat room, blog hay RSS feed…và quan trọng là, cung cấp việc truy cập các nguồn thông tin rất đa dạng và khác nhau này chỉ thông qua một lần đăng nhập duy nhất (single sign-on)
Một Web Portal nổi tiếng hiện nay là My Yahoo! (http://my.yahoo.com/) của Yahoo, người dùng chỉ cần đăng nhập một lần duy nhất trong trang này để truy cập vào một trang web riêng mà Yahoo đã thiết kế sẵn, với nhiều module có sẵn như tin tức, bản tin thời tiết, bản đồ… Ngoài ra ở trang My Yahoo cũng có các link liên kết đến các ứng dụng web của Yahoo quen thuộc như Messenger, Mail, Group, Blog, Music… và người dùng sẽ không cần phải đăng nhập lại
Sang Tiếng Việt, Web Portal được dịch là “Cổng giao tiếp điện tử”,
“Cổng giao dịch điện tử” hoặc ngắn gọn hơn: “Cổng điện tử” Tuy nhiên,
Trang 5cũng như tên tiếng Anh của chúng, các từ này thật sự chưa thể phản ánh hết được chính xác thế nào là một Portal.
3 Các loại Cổng thông tin:
Có nhiều cách phân loại Cổng thông tin, ở đây phân loại theo mục đích sử dụng cũng như quy mô thì có thể chia các Cổng thông tin hiện có thành ba loại :
• Các Portal công cộng (Puclic Portal)
Các Portal loại này thường giống như khái niệm về Portal ở những thời kỳ đầu, được thiết kế ra dành cho một lượng rất lớn người dùng dễ dàng truy cập vào các ứng dụng trên web (web-based) khác thông qua các liên kết và hộp tìm kiếm chỉ bằng một lần đăng nhập duy nhất Nổi tiếng nhất trong loại Portal này là các Portal My Yahoo, AOL hay Excite Các Portal kiểu này hướng đến đại đa số người dùng, do vậy chúng thường tập trung vào khả năng cá nhân hoá (Personalization), đa ngôn ngữ (Localization), phát triển các tính năng phổ biến sao cho người dùng có thể sử dụng dễ dàng Khả năng quản lý số lượng người dùng rất lớn cũng như cho phép tìm kiếm nhanh thông tin từ một lượng dữ liệu khổng lồ là thế mạnh của loại portal này tuy nhiên vì phục vụ số đông nên chúng không dành cho các công việc nghiệp vụ cụ thể nào cả
• Các Portal tác nghiệp (Enterprise Portal)
Các Portal loại này quản lý số lượng người dùng không nhiều bằng các loại Portal công cộng, nhưng cũng rất lớn Các Portal loại này chuyên dùng cho các doanh nghiệp lớn, phục vụ cho tác nghiệp, chuyên làm các công việc nghiệp vụ như quản lý mạng lưới bán lẻ, ngân hàng, website bán hàng cỡ lớn hay quản lý tài nguyên công ty Do vậy, chúng được thiết kế rất tốt, thực hiện được các nghiệp vụ phức tạp, liên kết nhiều kiểu dữ liệu khác nhau Các Portal này rất đắt, chỉ những công ty vừa và lớn trên thế giới mới sử dụng Ở Việt Nam, hầu hết các hãng
Trang 6dùng loại này là các công ty đa quốc gia hay các công ty liên doanh lớn Các Portal này không khác gì các phần mềm Business Solution (phần mềm giải pháp nghiệp vụ) như Microsoft Solomon hay Lotus Domino, chỉ khác là chúng hoạt động trong môi trường Web Có thể kể ra đây một
số các Portal loại này - loại Portal chuyên nghiệp nhất - như Microsoft SharePoint, Oracle ApplicationServer, IBM WebSphere
• Các Portal Website (Website Portal)
Các Portal kiểu này thường dùng để tạo ra các Website, chính xác hơn là các Website có thể tùy biến (customizable website) Các Portal này cung cấp các tính năng rất cơ bản và chung, giúp các nhà phát triển web có thể dễ dàng tạo ra một website cho riêng mình Các Portal này hỗ trợ các tính năng cá nhân hoá và đa ngôn ngữ ở mức vừa phải, có thể thêm vào các mô đun tác nghiệp không quá phức tạp Để làm được điều này, các Portal được mở một phần hoặc hoàn toàn mã nguồn, để người dùng Portal (thường là quản trị Website) có thể tự xây dựng các mô đun, tất nhiên là theo chuẩn của Portal, để tích hợp vào website của mình hoặc thậm chí đem bán cho các site khác có cùng nguồn gốc Các portal này tương đối đơn giản, chỉ sử dụng một vài cơ sở dữ liệu phổ biến, tuy nhiên cũng không kém phần linh động khi tuỳ biến giao diện cũng như thao tác nghiệp vụ
Hiện nay các Portal kiểu này được sử dụng nhiều nhất, cả ở trên thế giới cũng như Việt Nam Các Portal này thường miễn phí hoặc được bán với giá rất rẻ Các công ty thiết kế web thường chọn các Portal này để mở rộng, tạo ra các website cho khách hàng mà không mất nhiều công sức để nghiên cứu cũng như cài đặt Ở Việt nam, các Portal Website hay được dùng nhiều nhất là uPortal, Liferay, JetSpeed, ExoPlatform và DotNetNuke Bốn Portal đầu được viết bằng Java, và đã được thương mại hoá (vẫn miễn phí các phiên bản cũ hơn)
Trang 74 Tính năng của hệ thống Portal cần xây dựng
Hệ thống cần xây dựng có các tính năng như sau:
• Đăng nhập một lần (Single Sign-On - SSO)
Để truy cập vào dữ liệu và dịch vụ khác nhau, người dùng chỉ cần đăng nhập một lần duy nhất Hệ thống Portal thực hiện điều này thông qua quá trình quản lý phiên (Session Management) Thông qua quá trình này, người dùng dễ dàng truy cập và thao tác dữ liệu, nhưng không phải lo lắng gì về mặt an ninh bảo mật vì Portal đã dùng những công nghệ bảo mật an toàn nhất ngầm phía dưới một phiên làm việc từ khi người dùng đăng nhập đến khi đăng xuất
• Cá nhân hoá (Personalization)
Khi người dùng đăng ký với hệ thống, họ sẽ được cấp một tài khoản Mỗi tài khoản người dùng đăng nhập vào đều được cấp cho một
“khung trời riêng”, họ có cảm giác như là một website của riêng mình,
họ có thể tuỳ biến được giao diện tuỳ theo ý thích, thêm bớt các mô đun, hình ảnh… giống như post hay delete một bài viết của mình trên forum vậy Khả năng này còn thể hiện ở chỗ: nhà quản trị website có thể trực quan hoá các công việc thêm bớt, thay đổi vị trí các mô đun mà không động đến một dòng HTML hay mã nguồn của Website mình Điều này
có được là do Portal sử dụng các công nghệ bố trí giao diện động như DHTML, CSS, XSL…
• Tự hoạt động (Self-services)
Các mô đun của hệ thống Portal - được coi là phần tử cơ bản nhất cấu tạo nên Portal - có khả năng tự hoạt động một cách độc lập, không phụ thuộc hay ảnh hưởng các mô đun khác Mỗi khi được thêm vào, chúng có nguồn dữ liệu khác nhau, vòng đời khác nhau và phương thức hoạt động khác hẳn nhau Để có thể tích hợp chúng lại mà không ảnh hưởng gì đến toàn bộ hệ thống, các mô đun phải có một chuẩn riêng khi
Trang 8• Đa nguồn dữ liệu (Multi Data Sources) và Đa nền tảng (Multi Platforms)
Một trong những khả năng quan trọng khác của hệ thống Portal
là chúng có thể sử dụng kết hợp nhiều nguồn dữ liệu khác nhau Các dữ liệu này có thể ở dạng file, dạng cơ sở dữ liệu quan hệ, dạng cơ sở dữ liệu hướng đối tượng, thậm chí ngay trong dạng cơ sở dữ liệu quan hệ, Portal có thể chấp nhận nhiều loại hệ quản trị cơ sở dữ liệu khác nhau Bởi vì hệ thống Portal được xây dựng theo kiến trúc 3 lớp, phân tách việc kết nối cơ sở dữ liệu, việc tác nghiệp và việc hiển thị giao diện ra thành ba tầng độc lập
Hệ thống Portal co tính năng đa nền tảng, có thể chạy trên các nền hệ điều hành khác nhau, các Web Server khác nhau, các nền web hay mobile Bởi vì hệ thống Portal kế thùa từ Liferay Portal – là Portal có kiến trúc mở, thống nhất, sử dụng các ngôn ngữ độc lập nền tảng, sử dụng các chuẩn chuyên trao đổi và xây dựng dịch vụ như các công nghệ Web Service hay Service Oriented Architecture (SOA)
• Đa ngôn ngữ (Localization)
Tính năng đa ngôn ngữ không được hỗ trợ trong hệ thống Portal cần xây dựng vì đây là hệ thống sử dụng cho cơ quan, đơn vị của Việt Nam nên nó hoàn toàn thuần tiếng Việt Nhưng như thế không có nghĩa
là nó không có tính năng đa ngôn ngữ
5 Các dịch vụ mà hệ thống Portal cung cấp
Hệ thống Portal cần xây dựng cung cấp các nhóm dịch vụ như sau:
• Các dịch vụ cơ bản: Post bài định dạng HTML/Document, Danh sách liên kết, Upload/Download Files, Thao tác ảnh…
Trang 9• Các dịch vụ giao tiếp công cộng: Forum, Thông báo, Thăm dò - Bỏ phiếu…
• Các dịch vụ cung cấp thông tin: Thông báo, Bản tin
• Các dịch vụ tìm kiếm: Tìm kiếm, Phân loại …
• Các dịch vụ trợ giúp người dùng: Thông tin cá nhân, Lịch biểu…
• Các dịch vụ tác nghiệp: Quản lý nội dung, Hợp tác dự án, Quản lý bán hàng, quản lý nhân sự…
6 Lợi ích của hệ thống Portal
Hệ thống Portal hỗ trợ cộng đồng người dùng trực tuyến, các cán bộ, nhân viên, các đối tác và các nhà cung cấp dưới nhiều hình thức kết hợp khác nhau Cơ sở hạ tầng Portal giúp việc khởi tạo, tích hợp, quản lí và cá nhân hóa toàn diện các thông tin và ứng dụng cho mỗi người dùng riêng biệt phục vụ các nhu cầu và sở thích của một cộng đồng riêng biệt Các lợi ích thực sự của hệ thống Portal này đem lại nhìn từ khía cạnh hiệu quả ứng dụng thực tế đó là:
• Nâng cao hiệu quả làm việc cho các cá nhân và tổ chưc, đối tác nhờ truy cập bảo mật, tích hợp tới các thông tin và ứng dụng liên quan, cũng như truy cập tổng thể tới tất cả các cá nhân, thông tin, tổ chức và các nhà cung cấp từ bất kì đâu, bất kì khi nào
• Cải thiện các tiến trình hợp tác nhờ luồng thông tin tốt hơn giữa con người và các ứng dụng, và nhờ các môi trường cộng tác giúp giảm thời gian để chuyển đổi thông tin thô thành tri thức
• Giảm gánh nặng của việc triển khai và quản lí thông tin và các dịch vụ ưng dụng trong một tổ chưc
• Duy trì, quản lý, mở rộng, nâng cấp, tái sử dụng dễ dàng, tiết kiệm chi phí đầu tư để xây dựng lại hệ thống
Trang 10• Cho phép các hãng thứ 3 tham gia vào việc cung cấp ứng dụng hệ thống, các dịch vụ trung gian Khả năng này làm phong phú, đa dạng khả năng úng dụng và triển khai của hệ thống Portal.
7 Sự khác nhau cơ bản giữa Portal và Website
Xây dựng hệ thống Portal thay vì Website bởi vì hệ thống Portal cần xây dựng có những ưu điểm so với Website có cùng chức năng như sau:
• Hệ thống Portal tạo ra các Website, các Website này có thể tùy biến trực quan (cả về giao diện và dữ liệu), giúp cho người phát triển Website, người quản trị website và người dùng Website có thể xây dựng, quản lý và sử dụng chúng một cách dễ dàng, thuận tiện
• Các mô đun trong Portal có tính độc lập cao, hoạt động không ảnh hưởng tới các mô đun khác
• Người dùng Portal có khả năng truy cập thông tin có được từ nhiều nguồn dữ liệu khác nhau
• Người phát triển dựa theo các chuẩn có sẵn để tích hợp thêm các mô đun tác nghiệp mới
Trang 11II Tổng quan về Portlet
1 Portlet là gì ?
Một portlet là thành phần web dựa trên kỹ thuật Java, được quản lý bởi portlet container, nó xử lý các yêu cầu và sản sinh ra nội dung động Các portlet được sử dụng bởi các cổng điện tử dưới dạng các thành phần giao diện người dùng có khả năng tích hợp được, cung cấp 1 tầng trình diễn cho
hệ thống thông tin
Nội dung sản sinh bởi 1 portlet cũng đuợc gọi là 1 fragment Một fragment là 1 phần các ngôn ngữ đánh dấu (như HTML, XHTML, WML) tuân thủ nghiêm ngạt các luật và có thể được kết hợp với các fragments khác tạo nên 1 tài liệu hoàn chỉnh Nội dung của một portlet thông thường được tích hợp với nội dung của các portlet khác để hình thành nên trang cổng điện
tử Chu kỳ sống của 1 portlet được quản lý bởi portlet container
Phía clients tương tác đến các portlet thông qua cơ chế hỏi/đáp (request/response) được cài đặt bởi cổng điện tử Thông thường, người sử dụng tương tác với nội dung được sản sinh bởi các portlets, chẳng hạn bởi các liên kết hay các form xác nhận, kết quả trong các hành động của portlet đang được nhận bởi cổng điện tử, sẽ được trả về bởi nó đến các portlets đích thông qua những tương tác người dùng
Nội dung sản sinh bởi portlet có thề phát từ 1 người dùng đến người dùng khác tùy thuộc vào cấu hình của họ cho portlet
2 Portlet container là gì ?
Portlet container chạy các portlet và cung cấp cho chúng môi trường thực thi cần thiết Portlet container bao gồm các portlets và quản lý chu trình sống của chúng Nó cũng cung cấp lâu dài những tham chiếu portlet Portlet container nhận các yêu cầu từ cổng điện tử và thực thi các yêu cầu trên
Trang 12những portlets được chứa bởi nó.
Portlet container không chịu trách nhiệm kết hợp nội dung sản sinh bởi các portlet Trách nhiệm đó thuộc về cổng điện tử
Một cổng điện tử và Portlet container có thể được xây dựng với nhau thành 1 thành phần duy nhất của bộ ứng dụng hay như là 2 thành phần riêng biệt của ứng dụng cổng điện tử
3 Quan hệ với J2EE :
Portlet API ver 1.0 dựa trên nền tảng Java 2, phiên bản Enterprise ver 1.3 Portlet container và các portlets gặp các yêu cầu, mô tả trong đặc tả J2EE để có thể thực thi trong môi trường J2EE
Thừa hưởng những tính năng tương tự của servlets, các khái niệm, tên và thái độ của portlet sẽ tương tự những cái đã được định nghĩa trong đặc
tả servlet ver 2.3 khi có thể ứng dụng
4 Mối quan hệ giữa portlet và servlet :
Đặc tả Servlet ver 2.3 đã định nghĩa Servlet như sau : “Một servlet là thành phần web trên nền tảng công nghệ Java, được quản lý bởi 1 container,
nó sản sinh nội dung động Cũng giống như các thành phân dựa trên Java khác, servlets là các classes Java độc lập nền được biên dịch ra mã bytecode trung gian có thể được tải một cách năng động và chạy bởi một máy chủ web hiểu Java Containers, nhiều khi được gọi là bộ máy servlet, các mở rộng web server cung cấp chức năng servlet Servlet tương tác với web client thông qua cơ chế yêu cầu/trả lời được cài đặt bởi servlet container”
Portlets và Servlets
• Điểm tương đồng :
- Portlet và Servlet đều là thành phần web J2EE
Trang 13- Cả 2 được quản lý bởi container , điều khiển sự tương tác giữa chúng và vòng đời.
- Mỗi cái sản sinh nội dung web động thông qua cơ chế request/response
• Điểm khác biệt :
- Portlet sinh ra fragments, portal sẽ tổng hợp các fragments này lại vào 1 trang portal, trong khi servlets sinh ra một tài liệu hoàn chỉnh
- Không giống servlet, portlet không nhảy tới trực tiếp một URL
- Web Client tương tác đến portlet thông qua một hệ thống portal
- Portlet có 1 lược đồ request phức tạp hơn với 2 loại yêu cầu là : action (hành động) - render (đáp ứng)
- Portlet gắn chặt đến 1 một tập chuẩn hoá các trạng thái, modes chúng định nghĩa các thao tác ngữ cảnh và những qui tắc đáp ứng (render)
- Portlet có thể tồn tại nhiều lần trong 1 trang portal
• Điểm vượt trội :
- Portlet có 1 cơ chế phức tạp hơn để truy cập và cố gắng cấu hình thông tin
- Portlet phải truy cập đến hiện trạng (profile) thông tin người dùng, ngoại trừ người dùng cơ sở và giữ chức năng cung cấp thông tin trong đặc tả servlet
- Portlet có thể thực hiện việc viết lại URL, vì thế để tạo 1 liên kết URL bên trong nội dung portlet thì nó độc lập với việc cài đặt ứng dụng portal server ( nó có rất nhiều phương thức để theo dõi thông tin phiên làm việc do đó portal server hoàn toàn mù mờ về việc tạo liên kết và các hoạt động trong trang các fragments )
- Portlet nhắm đến 2 sessions khác nhau trong đó lưu trữ dữ liệu các giao dịch thông qua các đối tượng : mức toàn ứng dụng và mức portlet riêng
Trang 14• Điểm yếu hơn :
- Portlet không thể thay đổi HTTP header hay thiết lập mã hoá các trả lời (response)
- Portlet không thể truy xuất URL mà client dùng để khởi tạo các request trên portal
Các ứng dụng portlet là mở rộng của ứng dụng WEB Vì thế cả 2 ứng dụng được triển khai (deploy) trong file WAR (Web Archive file) và cả 2 bao gồm 1 file mô tả triển khai ứng dụng web (web.xml) Tuy nhiên 1 ứng dụng portlet còn bao gồm 1 file mô tả triển khai ứng dụng portlet (portlet.xml)
Vì 1 ứng dụng portlet là 1 mở rộng của ứng dụng web, nên logic mà nói nó có thể bao gồm những thành phần ứng dụng web khác Portlet có thể
sử dụng JSPs và servlet để cài đặt những tính năng của nó Nhưng portlet không phải là servlets, để có thể sử dụng lại càng nhiều có thể các kiến trúc servlet đã có, đặc tả Portlet cung cấp cách cài đặt các tính năng tương tự như đặc tả servlet bao gồm : việc triển khai ứng dụng (deployment), tải các lớp thư viện (classloading), ứng dụng web, quản lý chu kỳ sống của ứng dụng web, quản lý phiên và việc gửi các yêu cầu (session management, request dispatching)
Cả portlet, servlets, các trang JSPs được bó lại trong 1 ứng dụng web
mở rộng gọi là ứng dụng portlet Chúng chia sẽ nhau bộ tải lớp thư viện (class loader), phiên và ngữ cảnh ứng dụng (application context, session)
5 Cầu nối giữa portlet đến servlet/JSP
Các portlets có thể dùng servlets, JSPs và thư viện thẻ JSP để sản sinh nội dung
Một portlet có thể triệu gọi các servlet và các trang JSPs giống như
Trang 15các servlet có thể triệu gọi các servlets và JSP khác sử dụng bộ gửi yêu cầu request dispatcher Để có thể kết hợp liền mảnh giữa portlets và servlets đặc
tả portlet sử dụng nhiều đối tượng servlets
Khi 1 servlet hay 1 trang JSP được gọi bên trong 1 portlet, yêu cầu servlet được đưa đến servlet hay JSP dựa trên portlet request và servlet trả lời được đưa đến servlet hay JSP dựa và portlet response Ví dụ :
• Tập các thuộc tính trong portlet request là phù hợp để include servlet request
• Portlet và các JSP hay servlet được include chia sẽ cùng 1 luồng ra
• Tập các thuộc tính trong portlet session là có thể sử dụng được từ servlet session và ngược lại
Trang 16III Tích hợp ứng dụng trong Cổng thông tin
1 Tổng quan về tích hợp ứng dụng
Tích hợp các ứng dụng web đơn lẻ thành một nền tảng web liên kết không phải là một tác vụ dễ dàng Không có công thức nào cho việc tích hợp tốt trong một thời gian ngắn mà không có sự đồng nhất Dù sao đi nũa, Liferay cho phép đạt được sự tích hợp riêng với nguồn lực tối thiểu
Tích hợp Liferay Portal bởi các thành phần có sẵn với nhau và nguồn lực IT có thể cho rất nhiều loại kết quả khác nhau:
• Bạn muốn tích hợp vào Liferay với chính sách xác thực hay quyền hạn SSO có sẵn Việc này có thể liên quan đến sự phát triển của một liên kết SSO tùy chỉnh đến service, hay việc tái sử dụng của một liên kết xác thực Liferay "out-of-the-box"
• Bạn muốn luồn công việc (workflow) ERP hay CRM có sẵn của bạn được điều khiển và vận hành qua Liferay Portal của bạn Việc này có thể kéo dài từ một tầng trình diễn dơn giản Iframe đến một portlet đính Web Proxy đến một portlet tùy chỉnh
• Bạn có các ứng dụng nền web mong muốn để cung cấp một trải nghiệm người dùng ổn định
• Bạn muốn tích hợp với người tiêu dùng sử dụng mạng xã hội nên bạn muốn sự có mặt của Facebook hay Twitter
Tất cả các loại tích hợp đó đều có với Liferay
Trang 17đó cùng nhau Dẫu sao, qua sự tiếp nhận, những thay đổi trong sự lãnh đạo IT, hay các ảnh hưởng khác, hệ thống được đặt lên online tại những thời điểm khác nhau, với các mục đích thiết kế khác nhau, và với những cách kết hợp khác nhau Các ứng dụng đơn giản như biểu đồ chứng khoán hay bản đồ giao thông không phụ thuộc vào các tiến trình công việc khác hay dữ liệu và có thể đơn giản là được thêm vào giao diện người dùng theo nguyện vọng Thêm những ứng dụng phức tạp cần được tích hợp với nhau dể cung cấp hệ thống công việc tới hạn ở trái tim của doanh nghiệp.
Tích hợp ứng dụng có thể đảm nhiệm nhiều dạng và cấp của sự phức tạp Trước khi quyết định làm một dự án tích hợp, phải cân nhắc rất nhiều nhân tố, bao gồm:
• Tác vụ nào người sử dụng cần phải hoàn thành khi sử dụng giải pháp?
• Điểm tích hợp nào sẵn sàng bởi các ứng dụng được tích hợp?
• Những đặc tính nào đã có trong cổng thông tin (hoặc từ phần mềm thứ 3) có thể giúp chúng ta?
• Giải pháp này được sử dụng bao lâu?
• Giải pháp này cần được bảo mật như thế nào?
Giành thời gian để trả lời các câu hỏi sẽ giúp chúng ta có thể hiểu được giá trị và lợi nhuận mang loại bởi một giải pháp và cuối cùng để lựa chọn đúng khi thực thi
Trang 191.2 Các bậc tích hợp
Tích hợp các ứng dụng cùng với nhau sử dụng một Cổng thông tin có nghĩa là phơi bày ra, hay thể hiện cái bên ngoài của ứng dụng cho người dùng cuối bằng cách mà họ có thể dễ dàng tương tác với chúng để hoàn thành công việc của họ Đây là công việc của một Cổng thông tin, trình diễn cho người dùng với một giao diện hợp nhất mang tính trực quan, đáp ứng, và đúng đắn Nơi mà người sử dụng trực tiếp tương tác được gọi là tầng trình diễn Ví dụ, trong Cổng thông tin Liferay, tầng trình diễn được hiển thị sử dụng trình duyệt Tích hợp các ứng dụng trong tầng trình diễn đơn lẻ là lựa chọn dễ dàng nhất và rẻ nhất Nó chứa rất ít công phát triển để sử dụng được, và cũng không ảnh hưởng đến các ứng dụng khác đã được tích hợp Giao diện người dùng có sẵn được giữ nguyên, và không cần thiết phải thay đổi ở ứng dụng Trong hầu hết các trường hợp, chính các ứng dụng không tự biết rằng chúng đang được tích hợp Mặc dù vậy, có một vài trở ngại thực sự trong cách tiếp cận này:
• Thông tin (trạng thái của chúng) được đưa vào ứng dụng sẽ bị mất khi di chuyển ra khỏi trang
• Các ưgns dụng đơn lẻ có các phong cách giao diện khác nhau (look and feel), trang trí khác hau, và mẫu dữ liệu khác nhau
• Không có thẩm quyển để tương tác với tầng dưới của cổng thông tin
• Ít hoặc không có sự điều khiển mục tiêu nội dung của ứng dụng.Một vài trở ngại có thể giảm bớt bởi một chút công sức bỏ thêm
ra, nhưng những trở ngại đó ngăn chặn bạn đạt được mục tiêu thiết kế, một nhu cầu khác của giải pháp
Trang 20Một lựa chọn tích hợp khác sâu hơn (và phức tạp hơn) là qua proxy Proxy cho phép ta lấy nội dung từ một ứng dụng ngoài về phía server, và đặt vào môi trường cổng thông tin Lợi ích lớn nhất của lựa chọn này là cho phép ta tùy biến nội dung trước khi trình diễn cho người dùng Ví dụ, ta có thể xóa bỏ header và footer, hay gọi nội dung từ một trang điều khiển qua các cổng đặc biệt mà hạn chế truy nhập.
Khi giải pháp này gửi một vài lỗi của những tích hợp thuần tầng trình diễn, nó hiện một vài lỗi của chính nó Từ lúc này, kết hợp hiệu quả