Académique Documents
Professionnel Documents
Culture Documents
Research@work
Design and Implementation of a Portal for Researchers at Telenor Research & Development
AUTUMN 2002
ABSTRACT
In the context of cooperative technology, this report presents a portal that gives user access to resources related to conducting research in an industry environment and promoting learning. The project work is carried out at Telenor Research & Development, which is the largest private research establishment in Norway within the area of Information and Communication Technology. This report makes the following contributions: It presents requirements specification of the portal. It presents a comprehensive architecture description of the portal. It presents an implementation of the portal based on the requirements specification.
The originally text of given project task sound as written: Coop. Tech - Online researcher portal. Telenor R&D employs approximately 350 researchers nationwide involved in internal, national and international research projects. Telenor R&D is the largest private research center in Norway in the area of telecommunication. The aim of this task is to develop an online resource center for Telenor R&D, giving access to resources related to conducting research in an industry environment and promoting learning. The deliverables of the task are a requirements document and an online researcher portal: A requirements specification document: This document will collect the results from interviews with Telenor R&D researchers, outlining their information needs and specifying the functionality of the portal. An online researcher portal: This portal will consist mainly of web pages with pointers to internal and external resources and information. The portal will be structured according to the requirements document, and will be used as a support tool by all Telenor R&D researchers in their work.
It is recommended that this task is taken in connection with a diploma thesis. The aim of a possible diploma thesis will be to further integrate the researcher portal with the internal e-learning system used by Telenor.
ii
PREFACE
This report represents our pre-diploma project thesis in Software Engineering at the Norwegian University of Science and Technology, Department of Computer and Information Science. We chose to work on the project originally called "Cooperative Technology - Online researcher portal". The project is carried out jointly by the undersigned.
~ We would also like to thank all participants at Telenor Research & Development in Trondheim for their time and cooperation during the work on this project. ~
___________________________
___________________________
iii
TABLE OF CONTENTS
ABSTRACT.......................................................................................................................... I PREFACE ...........................................................................................................................II 1 INTRODUCTION ........................................................................................................1 1.1 THE PROJECT TASK............................................................................................1 1.1.1 The task assignment ........................................................................................1 1.1.2 Motivation for the task ....................................................................................1 1.1.3 Problem definition...........................................................................................1 1.1.4 Objectives .......................................................................................................1 1.2 THE PROJECT EXECUTION................................................................................2 1.2.1 Project results..................................................................................................2 1.2.2 Project execution.............................................................................................2 1.2.3 Prototyping development model ......................................................................3 1.3 CUSTOMER REQUIREMENTS............................................................................4 1.3.1 High-level functional requirements..................................................................4 1.3.2 High-level non-functional requirements ..........................................................4 1.4 TELENOR RESEARCH & DEVELOPMENT .......................................................5 1.4.1 About Telenor Research & Development ........................................................5 1.4.2 About the research work..................................................................................5 1.5 THE STRUCTURE OF THE REPORT ..................................................................6 2 STATE-OF-THE-ART .................................................................................................7 2.1 THEORETICAL BACKGROUND.........................................................................7 2.1.1 The term portal............................................................................................7 2.1.2 Web portal services .........................................................................................7 2.2 TECHNICAL BACKGROUND .............................................................................8 2.2.1 Portlets and Portlet Containers ........................................................................8 2.2.2 Remote Portlets...............................................................................................9 2.2.3 Web Services for Remote Portals ..................................................................10 2.2.4 Portal Server Standardization ........................................................................11 2.2.5 Web portal solution .......................................................................................11 2.3 NON-COMMERCIAL SOLUTIONS ...................................................................11 2.3.1 Jetspeed.........................................................................................................11 2.3.2 Zope..............................................................................................................11 2.4 CONCLUSION ....................................................................................................12 3 PREPARATORY STUDY .........................................................................................13 3.1 INTRODUCTION ................................................................................................13 3.2 JAVASERVER PAGES (JSP) ..............................................................................13 3.2.1 JSP Definition ...............................................................................................13 3.2.2 JSP Advantages.............................................................................................13 3.3 TECHNOLOGIES COMPARISON......................................................................14 3.3.1 JSP versus CGI .............................................................................................14 3.3.2 JSP versus PHP .............................................................................................15 3.3.3 JSP versus ASP .............................................................................................15 4 PORTAL REQUIREMENTS SPECIFICATION.....................................................16 4.1 4.2 INTRODUCTION ................................................................................................16 OVERALL DESCRIPTION .................................................................................16
iv 4.3 FUNCTIONAL REQUIREMENTS ......................................................................17 4.3.1 Ordinary user actor related requirements .......................................................17 4.3.2 Editor user actor related requirements ...........................................................18 4.3.3 Functional requirements summary list ...........................................................19 4.4 USE CASES .........................................................................................................20 4.4.1 Use case for Ordinary user actor....................................................................20 4.4.2 Use case for Editor user actor........................................................................21 4.5 NON-FUNCTIONAL REQUIREMENTS ............................................................22 4.5.1 Non-functional requirements summary list ....................................................22 5 PORTAL ARCHITECTURE.....................................................................................23 5.1 INTRODUCTION ................................................................................................23 5.2 DEPLOYMENT VIEW ........................................................................................23 5.2.1 Overview ......................................................................................................23 5.2.2 JSP architecture of the portal .........................................................................23 5.2.3 The web server ..............................................................................................24 5.2.4 JSP application platform................................................................................25 5.2.5 JSP Syntax Basics .........................................................................................26 5.3 DATA VIEW........................................................................................................28 5.3.1 Design of the database...................................................................................28 5.3.2 Database table details ....................................................................................29 6 THE PORTAL ............................................................................................................30 6.1 GRAPHICAL USER INTERFACE (GUI) OF THE PORTAL..............................30 6.1.1 GUI of the front page ....................................................................................30 6.1.2 GUI related to user........................................................................................31 6.1.3 GUI related to editor .....................................................................................34 6.2 SCENARIO OF USAGE ......................................................................................38 6.2.1 Inexperienced user ........................................................................................38 6.2.2 Experienced user ...........................................................................................38 7 EVALUATION OF THE RESULT ...........................................................................39 7.1 7.2 7.3 8 8.1 8.2 9 10 11 11.1 11.2 12 OBJECTIVES ACHIEVEMENT..........................................................................39 REQUIREMENTS FULFILMENT.......................................................................40 EVALUATION OF SCENARIOS ........................................................................41 SUMMARY .........................................................................................................42 FURTHER WORK ...............................................................................................42 GLOSSARY ............................................................................................................44 APPENDIX A USE CASE DESCRIPTIONS .....................................................46 ORDINARY USER USE CASES .........................................................................46 EDITOR USER USE CASES ...............................................................................49 APPENDIX B CUSTOMER FEEDBACK .........................................................54
CONCLUSIONS.........................................................................................................42
REFERENCES ...........................................................................................................43
TABLE OF FIGURES
Figure 1-1: Project execution..................................................................................................2 Figure 1-2: Schematic representation of the prototype model..................................................3 Figure 1-3: High-level requirements .......................................................................................4 Figure 1-4: The research process ............................................................................................5 Figure 2-1: Building blocks of a portal server (provided by [3]) .............................................9 Figure 2-2: Portlets run on the local portal server (provided by [3]) ......................................10 Figure 2-3: Locating remote portlets (provided by [3]) .........................................................10 Figure 4-1: Users in the system ............................................................................................16 Figure 4-2: Use case for Ordinary user actor.........................................................................20 Figure 4-3: Use case for Editor user actor.............................................................................21 Figure 5-1: Deployment view ...............................................................................................23 Figure 5-2: JSP architecture..................................................................................................24 Figure 5-3: Web server .........................................................................................................24 Figure 5-4: Sequence diagram for rating article ....................................................................25 Figure 5-5: Adding a category in the portal application ........................................................27 Figure 5-6: JSP code for category_add_action.jsp.................................................................27 Figure 6-1: The portal GUI front page ...............................................................................30 Figure 6-2: The portal GUI view article .............................................................................31 Figure 6-3: The portal GUI comment and rate article.........................................................32 Figure 6-4: The portal GUI view comment ........................................................................32 Figure 6-5: The portal GUI recommend article ..................................................................33 Figure 6-6: The portal GUI forum......................................................................................33 Figure 6-7: The portal GUI front page of admin.................................................................34 Figure 6-8: The portal GUI category overview ..................................................................35 Figure 6-9: The portal GUI article overview ......................................................................36 Figure 6-10: The portal GUI proposal overview ................................................................37 Figure 6-11: The portal GUI portal logging .......................................................................37
TABLE OF TABLES
Table 3-1: JSP versus ASP ...................................................................................................15 Table 4-1: Functional requirements summary list .................................................................19 Table 4-2: Non-functional requirements summary list ..........................................................22 Table 5-1: Database tables details.........................................................................................29 Table 7-1: Implementation of the functional requirements ....................................................40
1 INTRODUCTION
1.1 THE PROJECT TASK 1.1.1 The task assignment
Telenor Research & Development assigns the project task originally called "Cooperative Technology - Online researcher portal" because they need a system to support knowledge management. An important purpose of knowledge management is capturing the knowledge created by the researchers as they do the research work and make it available to a larger community of colleagues.
1.1.4 Objectives
We define three objectives related to the problem definitions: Objective 1: Constructing a resource centre to gives researchers access to information and resources related to research work in an industry environment. This objective attempts to solve P1. Objective 2: Constructing a discussion forum to provide knowledge exchange and promote communication and learning among researchers. This objective attempts to solve P2. Objective 3: In the context of knowledge management: constructing an editor tool to give the editor quality assurance support to establish, control and manage the information.
It contributes the following specification documents: A requirements specification document: This document presents the requirements of the application, collected and elicited through informal customer requirements and through revisions of the prototype application, respectively. A comprehensive architecture document: This document provides a comprehensive architectural overview of the application using a number of different architectural views to show different aspects of the application. It also captures and conveys the significant architectural decisions that have been made.
The first phase, preliminary requirements, involves mainly in collecting of the preliminary customer requirements by informal oral interview and conversation with the researchers at Telenor R&D. The requirements collected are used as input to state-of-the-art study and preparatory study. The second phase of the project execution, state-of-the-art study, gives an introduction to the state-of-the-art to the field that concerns the project task.
3 The third phase, preparatory study, examines different potential solutions to how the project task should be solved. It involves in studying different kinds of technologies to see if they could comply with the requirements of the task. The construction phase involves in design the proposed solution based on the preparatory study and customer requirements.
Figure 1-3 illustrates high-level requirements that have consequence on the project:
1.4 TELENOR RESEARCH & DEVELOPMENT 1.4.1 About Telenor Research & Development
Telenor Research & Development (Telenor R&D) is the largest private research establishment in Norway within the area of Information and Communication Technology. It employs approximately 350 researchers nationwide involved in internal, national and international research projects. Research activities in Telenor are largely carried out in collaboration with other establishments within research and development. The activities are divided into the following main areas: national R&D, international R&D, standardization, incubator, alliances and strategic collaboration [2].
2 STATE-OF-THE-ART
2.1 THEORETICAL BACKGROUND 2.1.1 The term portal
The term portal is used quite ambiguously, especially because it evolved over time and became commonplace. Portals started as web applications, providing a single point of access to information, resources, applications and people. Portals are defined with respect to a community of users who share common task and interests. Portals can be categorized in four categories [3] according to the users they serve and the services they offer: Public portals, such as Yahoo, bring together information from various sources, applications, and people, offering personalization for arbitrary users. Marketplace portals are trading hubs that connect sellers and buyers. Enterprise portals give employees access to organization specific information and resources, while specialized portals, offer an access path to specific application. Specialized portals in the corporate sector are sometimes called vortals, for vertical portals, since they provide in-depth capabilities that are highly focused on a vertical segment of an organization or field. The portal presenting in this report is definite a vertical portal since it focuses on a segment (Research & Development) of an organization (Telenor).
8 Portal administration determines how users see the portal by enable administrators to define user groups, interaction channels, and authorization information as well, depending on the portal s nature. Portal user management varies depending on the portal audience. Administrators must therefore categorize s portal users into groups, so that the portal can be present content specific to a user s role, interests, location, function, or position.
9 Additional properties: Like servlet deployment descriptors, portlet descriptors contain deployment-related properties for each portlet. In addition to the portlet container, a portal server must provide portlet services such as syndication services, which cache content from unreliable content providers, and persistence services, which let portlets store information to a persistence medium. The most important portlet service is the user info service, which gives portlets access to userrelated information including preferences and customization information. Figure 2-1 (provided by [3]) shows the typical building of a portal server built as a servlet application. The portal engine receives the servlet request from the servlet container and transforms the request into a portlet that it dispatches to the appropriate portlet. The portlet must retrieve the content using the portlet services provided by the portal server. The portal engine then aggregates the multiple portlet response and returns a servlet response to the user.
10 The second approach: In the second approach, the portal provider installs a portlet in the external service provider s portal server. The portlet then consumes the content in its specific format to render it as part of the overall portal page. Putting third-party code on the portal server can open both stability and security holes. For example, an employee portal might provide access to Internet-based weather information and a human resource application in the corporate enterprise resource-planning system. To provide such access, administrators run the portlets locally on the portal server, as Figure 2-2 (provided by [3]) shows.
Figure 2-2: Portlets run on the local portal server (provided by [3])
11
2.3.2 Zope
Zope is a leading open source application server, specializing in content management, portals, and custom applications. Zope enables teams to collaborate in the creation and management of dynamic web-based business applications such as intranets and portals [11].
12 Zope is a framework for building web applications. Unlike ASP or PHP, Zope is a highly object-oriented Web development platform. It provides clean separation of data, logic and presentation, an extensible set of built-in objects and a powerful integrated security model. The Zope infrastructure relieves the developer of most of the onerous details of Web application development such as data persistence, data integrity and access control, allowing you to focus on the problem at hand Zope consists of several different components that work together to help you build web applications; Zope comes with a Web server, a Web based interface, an object database, relation and scripting language support. An object database provides a simple, familiar way to manage objects that resembles the way many common file managers work, while relational integration offer integration with other databases, such as Oracle, PostgreSQL, Sybase, MySQL and many others. Scripting language support allows you to write web applications in a number of different languages, like Python and Zope's own Document Template Markup Language (DTML). These are just some of the compelling features that Zope offer. Zope's best feature of all is its friendly, open source license. This means that not only is Zope free of cost for you to download, but you are also free to use Zope in your own products and applications without paying royalties or usage fees. Zope's open source license also means that all of the "source code" for Zope is available for you to look at, understand, and extend. Zope does not lock you into a proprietary solution that could hold you and your web users hostage.
2.4 CONCLUSION
Despite the features that Zope and Jetspeed offer, none of them are adequate because of the following reasons: ? Time feasibility: due to the project duration, which takes about three months, it is ? important to choose a technology that is easy to learn. We have experienced that both Zope and Jetspeed are quite difficult to maintain and demanding to install. It implicates a high learning threshold. ? Cost of complexity: Jeetspeed and Zope are motivated for large application and many ? users, while the purpose of the application for the project will only be used for a small group of researchers at Telenor R&D. ? Resource availability: Jetspeed is currently in development, a final product version is ? anticipated shortly, but document supports are limited. Because of these reasons, Zope and Jetspeed are therefore excluded for the portal implementation. A study of enabling technology is adopted in preparatory study.
13
3 PREPARATORY STUDY
3.1 INTRODUCTION
JavaServer Pages (JSP), Hypertext Preprocessor (PHP), Active Server Page (ASP) and Common Gateway Interface (CGI) are enabling technologies that are applicable to implementing the portal application. However, we have chosen JavaServer Pages (JSP) for the portal implementation of the following main reasons: ? Time feasibility ? JavaServer Pages is based on Java technology, since we are quite familiar with Java, JSP serve a great benefit because we can focus on other importance issues than to learn a new technology, which is quite time-consuming. ? Technical feasibility ? The ability to run the implemented application on different platforms is a benefit. JSP technology is platform independent, the implemented system can be run in Windows or Unix system. This section presents mainly JSP, which is compared to CGI, PHP, and ASP.
14 Separation of Roles JSP supports the separation of developer and author roles: Developers write components that interact with server-side objects. Authors put static data and dynamic content together to create presentations suited for their intended audiences. Each group may do their job without knowing the job of the other. Each role emphasizes different abilities and, although these abilities may be present in the same individual, they most commonly will not be. Separation allows a natural division of labor. A subset of the developer community may be engaged in developing reusable components, intend to be used by authors. Reuse of components and tag libraries The JavaServer Pages technology emphasizes the use of reusable components such as JavaBeans components, Enterprise JavaBeans components, and tag libraries. These components can be used with interactive tools for component development and page composition, yielding considerable development timesavings. In addition, they provide the cross-platform power and flexibility of the Java programming language or other scripting languages. Separation of dynamic and static content The JavaServer Pages technology enables the separation of static content in a template from dynamic content that is inserted into the static template. This greatly simplifies the creation of content. The separation is supported by beans specifically designed for the interaction with server-side objects, and by the tag extension mechanism. Support for scripting and actions The JavaServer Pages technology supports scripting elements as well as actions. Actions encapsulate useful functionality in a convenient form that can be manipulated by tools. Scripts provide a mechanism to glue together this functionality in a per-page manner. Web access layer for N-tier enterprise application architecture(s) The JavaServer Pages technology is an integral part of the J2EE. The J2EE platform brings Java technology to enterprise computing. You can now develop powerful middle-tier server applications that include a web site using JavaServer Pages technology as a front end to Enterprise JavaBeans components in a J2EE compliant environment.
15
Platform Support
Component Model
Relies on reusable, crossplatform components like JavaBeans, Enterprise JavaBeans, and custom tag libraries. Can use the Java programming language or JavaScript. Works with the Java security model. Uses JDBC for data access. JSP is extensible with custom tag libraries.
Table 3-1: JSP versus ASP
Supports VBScript and JScript for scripting. Can work with the Windows NT security architecture. Uses Active Data Objects for data access. Cannot use custom tag libraries and is not extensible.
Although JSP and ASP are fairly similar in the functionality that they provide, they are fundamentally different technologies. From the table, we can see that JSP has many advantage over ASP.
16
User
Ordinary user
Editor
Ordinary user An ordinary user represents all the people that may use the application. An ordinary user is authorized to view categories, articles, comments and forum messages to the application. In addition the user may add forum topics and forum messages to the application forum, the user can also give contributions by sending proposals to the application. Editor user Editor user is a user that has editor properties to manage the application. The editor can view available categories, articles and incoming proposals. In addition the editor has the rights to manage (add, remove and modify) the categories and articles in the application.
17
Comment article:
Rate article:
Propose article:
Recommend article:
18
Unpublish a category:
Add article:
View proposals:
Approve article:
Delete proposals:
Portal logging:
19
20
Comment article
uses
Recommend an article
uses
Ordinary user
Sort articles
21
Unpublish a category
Add article
uses
Archive article
extends
extends extends
uses
extends
uses
View proposals
extends
extends
uses
extends
Log in extends
uses
extends
extends
uses
extends
extends
uses
extends
extends
Delete article
Delete (sub)category
Portal logging
22
Portability:
Programming language:
23
5 PORTAL ARCHITECTURE
5.1 INTRODUCTION
This section provides a comprehensive architectural overview of the portal application, using a number of different architectural views to show different aspects of the application. It captures and conveys the significant architectural decisions that have been made.
5.2.1 Overview
As the Figure 5-1 illustrates, the application uses a three-tiered architecture; the Client tier, the Web tier and the Data tier. The Client tier The client tier is responsible for presenting data to user and interacting with the user. In the application there is one client, namely the Web client. The Web client consists of HTML pages and computers with web browsers capable of showing these pages. The Web tier The Web tier is used to serve Web clients. The Web tier is responsible for performing all Web-related processing, such as serving HTML and formatting JSP pages for display by browsers. A Web server is used to perform these tasks. The Data tier The Data tier consists of tables with data in a database. This tier is used to store data.
24 why the JSP is probably slower the first time it is accessed. Any time after this the special compiled servlet is executed and is therefore returns faster. The architecture is shown in Figure 5-2:
Rate article
Rating form
Rating data
Confirm
Here the user has clicked on a link in the portal initiating that (s)he wants to give a rating to an article. The web server receives the request and a jsp file creates a html-page including an input form which is then displayed in the users browser (client). The user types in the rating data in to the form and clicks the OK-button when (s)he is finished. The jsp file at the server gets the input and passes it to another jsp file. This second file puts the rating data into the database, and then assures the user that the transaction went all right by a confirming message (html-page).
26
Scriptlets JSP code fragments or scriptlets are embedded within <% ... %> tags. This Java code is run when the request is serviced by the JSP page. Any valid Java code can be defined within a scriptlet, and is not limited to one line of source code. For example, the following displays the string "Hello" within H1, H2, H3, and H4 tags, combining the use of expressions and scriptlets:
<% for (int i=1; i<=4; i++) { %> <H<%=i%>>Hello</H<%=i%>> <% } %>
Comments HTML comments can be included in JSP pages, users can view these if they view the page's source. A most useful feature of JSP comments is that they can be used to selectively block out scriptlets or tags from compilation. Thus, they can play a significant role during the debugging and testing process.
27 Figure 5-6 shows the requested JSP code when the page in Figure 5-5 is executed.
28
messages message_id: int message_parent_id: integer cat_id: integer topic: varchar(50) author: varchar(50) message: text date_entered: datetime comment com_id: int com_comment: varchar(250) com_author_name:varchar(30) com_author_mail: varchar(50) art_id: int
article art_id: int art_name: varchar(100) art_url: varchar(100) art_description: varchar(250) art_owner: varchar(30) art_owner_mail: varchar(50) art_rating: int art_rating_count: int art_archived: bool art_contribution: bool art_expire_date: date cat_id: int subcat_id: int
29
int unsigned varchar(50) bool int unsigned varchar(50) bool int unsigned int unsigned varchar(100) varchar(100) varchar(250) varchar(30) varchar(50) int int bool bool date int unsigned int unsigned int unsigned varchar(250) varchar(30) varchar(50) int unsigned varchar(50) varchar(50) int int integer integer varchar(50) varchar(50) text datetime
not null references category(cat_id) not null references subcategory(subcat_id) not null auto_increment primary key
30
6 THE PORTAL
This section presents Graphical User Interface (GUI) the portal application. The last section presents a scenario of usage.
6.1 GRAPHICAL USER INTERFACE (GUI) OF THE PORTAL 6.1.1 GUI of the front page
Figure 6-1 presents the front page of the portal. The front page offers these high-level functionalities: (1) Quality assurance support: Give the editor quality assurance support to manage and control the information in the portal. (2) Classification and grouping of information: Categories and subcategories for articles can be grouped. (3) Contribute information: The user can contribute information to the portal. (4) Get information: The user can get information from the portal.
(2) (3) (1)
(4)
(3)
31
(6)
(5)
(7)
Figure 6-2: The portal GUI view article
(8)
(7) Comment and rate article: The user can give a personal comment to an article, and rate an article after reading. (8) Read comment: The user can read comment written by other users
32 Figure 6-3 presents the page when the user wants to comment and rate an article, while Figure 6-4 presents the page that other users have written comments for an article.
The user can write comment in this field The user can rate the article from 1 to 6
33 Figure 6-5 presents the page when the user wants to give contributions to the article section. These contributions will be laid in a closed section, and the editor can check these out later and decide if they should be made public.
Figure 6-6 presents the Forum page. This page offers these comment functionalities: (9) Write in the forum: The user can write and reply in the forum. (10) Read in the forum: The user can read contributions from other users in the forum.
(9)
(10)
34
(11)
(17)
35
Figure 6-8 presents the page when the editor wants to view all available categories, by clicking on Se alle kategorier. This page offers these functionalities:
(18) Edit (sub)category: The editor shall be able to edit the data of a pre-added category/subcategory. (19) Delete (sub)category: The editor shall be able to delete a (sub)category from the database. (20) Unpublish a category: The editor shall be able to unpublish a category so that it will not be show in the category list for ordinary users.
36 Figure 6-9 presents the page when the editor wants to view all available articles for all categories, by clicking on Se alle artikler. This page offers these functionalities: (21) Edit article description: The editor can edit the data of a pre-added article. (22) Delete article: The editor can delete an article from the database. (23) Archive article: The editor can choose to archive articles that no longer are relevant. He can also, as he publishes an article, set a date for when this article automatically should be marked as archived. Archived articles are not public to ordinary users.
37 Figure 6-10 present the page when the editor wants to get a list over all incoming proposals in the article section, by clicking on the link Se innkomme forslag. This page offers these functionalities: (24) Delete proposals: The editor can choose to delete/deny a proposed article, so that it is deleted from the database. (25) Approve article: The editor can approve an article so that it displays on the article section.
Figure 6-11 presents the page portal-logging page: The editor can add logging to a site and view a log overview for the sites in the portal.
38
39
All objectives have its fulfilment through the portal application (as presented in section 6.1.):
Fulfilment of objective 1: The portal consists of web pages with pointers to resources and information related to research work. Researchers can easily access the information by browsing through the portal and select and get desired information. Fulfilment of objective 2: The portal enables knowledge exchange and promotes communication and learning among researchers; this is achieved through the discussion forum where the researchers can post messages, and read contributions from other users. Fulfilment of objective 3: The portal consists of an editor tool for the editor. This is a tool that enable editor to control and manage the information in the portal.
40
F1 Read article F2 Comment article F3 Rate article F4 Propose article F5 Recommend article F6 Read in the forum F7 Write in the forum F8 Sort articles F9 Search the portal F10 Log in F11 Add category F12 Add subcategory F13 Edit (sub)category F14 Delete (sub)category F15 Unpublish a category F16 Add article F17 Edit article description F18 Delete article F19 Archive article F20 View available articles F21 View proposals F22 Approve article F23 Delete proposals F24 Portal logging
All functional requirements are implemented successfully, except F9 Search the portal, this functional requirement is not implemented due to time limit. This functional requirement may be realized at further work by using a third party software component.
41
42
8 CONCLUSIONS
8.1 SUMMARY
From the achievements and results presented in this report, we conclude that the project is successful and worthwhile. The Telenor R&D has got a portal application that will aid them in their daily work. The application is evaluated with respect to three factors: the objectives achievement, the requirements fulfilments, and the scenario of usage. All objectives have its fulfilment through the portal application, all main functional requirements are successfully implemented and have been tested through use and found to be working correct, and the scenarios of usage demonstrated that the application is capable to serve its purpose. The prototyping model as experienced in this project, presents a promising alternative to the traditional waterfall model of development. We constructed first a prototype application and involved some researchers in experimental use of the prototype. The prototype is improved and refined into a final application after a number of necessary revisions based on feedback from some researchers who have used the prototype.
43
9 REFERENCES
[1] Floyd C. (1984) A systematic look at prototyping. In Budde R. (Ed) Approaches to Prototyping. Springer-Verlag, Berlin Website to Telenor Research & Development, About Telenor R&D [Online], Available: http://www.telenor.com/rd/index.shtml Wege, C., Portal Server Technology, 2002, IEEE Internet computing. JSP 1.2 specification Proposed Final Draft. SUN Microsystems, Inc, April 27, 2001. CGI Introduction, CGI Basics [Online], Available: http://hoohoo.ncsa.uiuc.edu/cgi/intro.html PHP Manual The PHP Documentation, PHPbuilder.com[Online], Available: http://www.phpbuilder.com/manual/ jGuru, (2001) JavaServer Pages Fundamentals. JGuru.com [Online], Available: http://developer.java.sun.com/developer/onlineTraining/ Trail: JavaBeans The Java Tutorial, Java.sun.com [HTML Book, Online], Available: http//java.sun.com/docs/books/tutorial/index.html Fundamentals of JavaTM Servlets, Java.sun.com [Online], Available: http://developer.java.sun.com/developer/onlineTraining The Apache Jakarta Project, Jakarta.apache.org [Online], Available: http://jakarta.apache.org/jetspeed/site/index.html Zope Community, Zope.org [Online], Available: http://www.zope.org/ Preece J., Human-Computer Interaction, 1999, Addison Wesley.
[2]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
44
10 GLOSSARY
This section explains the meaning of the most important terms and words that is used in this report. HTML HTML, the Hyper Text Markup Language, is the lingua franca for publishing hypertext on the World Wide Web. It is a non-proprietary format based upon SGML, and can be created and processed by a wide range of tools, from simple plain text editors - you type it in from scratch- to sophisticated WYSIWYG (what you see is what you get) authoring tools. HTML uses tags to structure text into headings, paragraphs, lists, images, hypertext links and various kinds of tags combination. Java technology Java technology is a simple, robust, object-oriented, platform-independent multi-threaded, dynamic general-purpose programming language and environment. It's best for creating applets and applications for the Internet, intranets and any other complex, distributed network. XML technology XML, Extensible Markup Language, is a text-based markup language for data interchange on the Web. As with HTML, it identifies data using tags. But unlike HTML, XML tags identify the data, rather than specifying how to display it. In addition, XML is platform independent. The Java programming language and XML combined complement the portability of both technologies. WML WML, Wireless Markup Language, is a markup language based on XML, and is intended for use in specifying content and user interface for narrowband devices, including cellular phones and pagers. J2EETM J2EE, The Java 2 Platform, Enterprise Edition, defines the standard for developing multi-tier enterprise applications. The J2EE platform manages the infrastructure and supports the Web services to enable development of secure, robust and interoperable business applications. J2SETM J2SE, Java 2 Standard Edition, the most popular model used to develop Enterprise level applications. J2EE is supported by software giants like Sun Microsystems, BEA, Oracle and IBM. JDBCTM Technology JDBCTM Technology is an API that enable invoking SQL commands to create database tables, access the data stored in a table, and create and manage distributed transaction. The J2SETM 1.4 and all versions of the J2EETM platforms provide these APIs. JavaBeans API The JavaBeans API makes it possible to write component software in the Java programming language. Components are self-contained, reusable software units that can be visually
45 composed into composite components, applets, applications, and servlets using visual application builder tools. JavaBean components are known as Beans [8]. Servlet Servlets are pieces of JavaTM source code that add functionality to a web server in a manner similar to the way applets add functionality to a browser. Servlets are designed to support a request/response computing model that is commonly used in web servers. In a request/response model, a client sends a request message to a server and the server responds by sending back a reply message [9]. MySQL MySQL is a database management system. Usability testing Determines whether a system meets a pre-determined, quantifiable level of usability for specific types of user carrying out specific tasks [12]. Waterfall model Waterfall model is a characterization of the software development process as consisting of a number of processes and representations which are produced in an essentially linear fashion [12]. Functional requirements What the system (both human and computer) has to be capable of doing [12].
User interface The totality of surface aspects of a computer system, such as its input and output devices, the information presented to or elicited from the user, feedback presented to the user, the system behavior, its documentation and associated training programmes, and the user s s actions with respect to these aspects [12].
46
Comment article The user shall be able to give a personal comment to the article. Other users can access and read this comment. 1. On the article overview for a (sub)category, the user clicks on the link Comment/rate this article. 2. The user writes his/her comment. 3. The user clicks the OK-button. N/A N/A
Ordinary path
Rate article The user shall be able to rate an article after (s)he has read it. An average rating will then be presented along with the article. 1. On the article overview for a (sub)category, the user clicks on the link Comment/rate this article. 2. The user gives his/her rating. 3. The user clicks the OK-button N/A N/A
Ordinary path
47
Propose article The user shall be able to give contributions to the article section. These contributions will be laid in a closed section, and the editor can check these out later and decide if they should be made public. 1. On the left main menu, the user clicks on the link Recommend article. 2. The user fills out the form. The recommended articles name, URL, etc. 3. The user clicks the OK-button. N/A N/A
Ordinary path
Recommend article The user shall be able to recommend an article to a college by e-mail after (s)he has read it. 1. On the article overview for a (sub)category, the user clicks on the link Comment/rate this article. 2. Then the user clicks on the link Recommend this article to a colleague by mail 3. A mail is being created by the users default mail program. 4. The user writes the colleagues mail address and sends the mail (this is being done in the default mail program) N/A N/A
Ordinary path
Read in the forum The user shall be able to read contributions from other users in the forum. 1. The user clicks on the link Forum in the main menu at the top of the site. 2. Then the user clicks on a topic/thread (s)he would like to read more closely. N/A N/A
Ordinary path
48 Use case name Summary Ordinary path Write in the forum The user shall be able to write/reply in the forum. 1. The user clicks on the link Forum in the main menu at the top of the site. 2. The user clicks on the button Create thread. 3. Then the user writes in the name of the thread and finally his/her message. 1. The user clicks on the link Forum in the main menu at the top of the site. 2. The user clicks on the topic/thread (s)he would like to respond to. 3. The user clicks on the button Reply. 4. The user writes in the name/subject of his/her reply and finally the reply. N/A
Alternate path
Exception path
Sort articles The user shall be able to sort the view of articles for a chosen category. 1. The user clicks on a category in the left menu. 2. To re-sort the articles that appear for the chosen category, the user clicks on the sort-links at the top of the list (Newest first, Highest rating). N/A N/A
Ordinary path
Search the portal (NOT IMPLEMENTED) The user shall be able to search the portal for needed data. 1. The user types in a search-word in the search-form in the portal. 2. The user clicks on the button Search. 3. A list over articles/categories that includes the actual searchword is displayed for the user. N/A N/A
49
Add category The editor shall be able to add (main) categories for articles. 1. In the admin-section, the editor clicks on the link Add category on the left menu. 2. The editor types in the category data. 3. The editor clicks the button OK. N/A N/A
Unpublish a category The editor shall be able to unpublish a category so that it will not be show in the category list for ordinary users.
Ordinary path
// Precondition use case: View available categories. 1. On the category overview, the editor clicks on the link/button change N/A N/A
50 Use case name Summary Ordinary path Add article The editor shall be able to publish articles. 1. The editor clicks on the link Add article on the left menu. 2. The editor types in the article data. 3. The editor clicks the button OK. N/A N/A
Archive article The editor shall be able to archive articles that no longer are relevant. He can also, as he publishes an article, set a date for when this article automatically should be marked as archived. Archived articles are not public to ordinary users. // Precondition use case: View all available articles. 1. At the article overview, the editor clicks on the link/button change. // Precondition use case: Add article (to step 2). 1. When the editor types in the article data, (s)he sets an expire date for the article. When this date arrives, the article automatically gets archived. 2. The editor clicks the button OK. N/A
Ordinary path
Alternate path
Exception path
View available articles The editor shall be able to view all available articles, archived or not, for all categories. 1. The editor clicks on the link View all articles on the left menu. N/A N/A
Ordinary path
51 Use case name Summary View proposals The editor shall be able to get a list over all incoming proposals in the article section. 1. The editor clicks on the link View proposals on the left menu. N/A N/A
Ordinary path
Approve article The editor shall be able to approve a proposed article, so that it is published under an existing category in the portal. // Precondition use case: View proposals. 1. The editor clicks on the link/button Approve/deny. 2. The editor checks the info on the suggested article, and changes any of it if needed. 3. The editor clicks on the button OK (approve). N/A N/A
Ordinary path
Delete proposals The editor shall be able to delete/deny a proposed article, so that it is deleted from the database. // Precondition use case: View proposals. 1. The editor clicks on the link/button Approve/deny. 2. The editor clicks on the button Delete. N/A N/A
Ordinary path
Add subcategory The editor shall be able to add subcategories for articles. 1. In the admin-section, the editor clicks on the link Add subcategory on the left menu. 2. The editor types in the subcategory data. 3. The editor clicks the button OK. N/A N/A
52 Use case name Summary Ordinary path Edit article description The editor shall be able to edit the data of a pre-added article. // Precondition use case: View all articles. 1. In the article overview, the editor clicks on the link/button edit. 2. The editor edits the article data. 3. The editor clicks on the button OK. N/A N/A
Edit (sub)category The editor shall be able to edit the data of a pre-added category/subcategory. // Precondition use case: View all categories. 1. 1.In the category overview, the editor clicks on the link/button edit. 2. The editor edits the (sub)category data. 3. The editor clicks on the button OK. N/A N/A
Ordinary path
Delete article The editor shall be able to delete an article from the database. // Precondition use case: View all articles. 1. In the article overview the editor clicks on the link/button delete for the chosen article. 2. To confirm the delete the editor clicks on the button Yes. N/A N/A
Delete (sub)category The editor shall be able to delete a (sub)category from the database. // Precondition use case: View all categories. 1. In the category overview, the editor clicks on the link/button delete for the chosen (sub)category. 2. To confirm the delete the editor clicks on the button Yes. N/A N/A
53
Portal logging The editor should be able to add logging to a site and view a log overview for the sites in the portal. 1. In the admin section the editor clicks on the link/button Add new log in the left menu. 2. The editor types in the name and the filename of the site that is to be logged. 3. The editor adds the necessary code to the actual file (instructions are available). 4. Then the editor clicks on the link/button Log overview in the left menu. 5. A log overview is displayed for the editor. N/A N/A
Ordinary path
54
Bodil (tlf: 99286870) sier: - Hei, For det frste, kan dette bli kunnskap/diskusjon/gode art.referanser.... Ellers syns jeg: - Det er for liten skrift p forsiden - Blander engelsk/norsk i overskrifter
et
fint
forum
for
utveksling
av
Flere krav fra Babak m.fl.: - Kan det la seg gjre at vi fr en kontekst-linje som viser hvor man er (over Home og Forum) - Det blir etterhvert ndvendig ha en delete i tillegg til on og off for kategorier og artikler. - Vi trenger en videre inndeling av artikkel. Vi kan begynne med ha et type-felt som man kan skrive inn selv (kanskje med noen predefinerte linjer e.g. call for papers, conference, journal, online bibliography...) som brukeren kan enten velge eller skrive egen typedef. - Skefunksjon? - Det er ogs nskelig kunne reorganisere rekkeflgen p artikler og kategorier. Kategorier kan det vre admin som setter rekkeflgen. - Artikler i hver kategori burde kunne sorteres etter kriterier som best rangert, nyest frst, mest lest, etc. - Vi m ogs snakke om generell logging av systemet, for lage statistikker rundt hva som blir lest etc. - Fildelingsomrde..?