For a better understanding of the present invention, reference is made to the detailed description of the invention, by way of example, which is to be read in conjunction with the following drawings, wherein like elements are given like reference numerals, and wherein:
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent to one skilled in the art, however, that the present invention may be practiced without these specific details. In other instances, well-known circuits, control logic, and the details of computer program instructions for conventional algorithms and processes have not been shown in detail in order not to obscure the present invention unnecessarily.
Software programming code, which embodies aspects of the present invention, is typically maintained in permanent storage, such as a computer readable medium. In a client-server environment, such software programming code may be stored on a client or a server. The software programming code may be embodied on any of a variety of known media for use with a data processing system. This includes, but is not limited to, magnetic and optical storage devices such as disk drives, magnetic tape, compact discs (CD's), digital video discs (DVD's), and computer instruction signals embodied in a transmission medium with or without a carrier wave upon which the signals are modulated. For example, the transmission medium may include a communications network, such as the Internet. In addition, while the invention may be embodied in computer software, the functions necessary to implement the invention may alternatively be embodied in part or in whole using hardware components such as application-specific integrated circuits or other hardware, or some combination of hardware components and software.
In computer systems, a network service that offers a central user access point or interface viewable using a browser, to multiple sources of content and, applications in an enterprise, which is termed a “portal”. Organizations deploy portal servers to build and maintain portals for interaction with end users. By centralizing access to information in this way, multiple user interfaces to different computer systems and applications can be eliminated. Such portals facilitate collaboration and knowledge sharing within an enterprise. Other benefits of portal use include reduction in redundancy of work, e.g., multiple user interactions to make entries and undertake searches for information in different database systems, and time savings through content aggregation.
“Portal applications” are complex and specialized software for developing, establishing and maintaining such portals. The requirements for portal applications are stringent. The portals they create must be compliant with the often changing requirements of diverse information systems and resources which the portal exposes to the user. In an enterprise, users often have different roles, which differentiate the information to be offered by the portal. Assuring that the portal established by a portal application supports multiple roles, their privileges and information needs is yet another requirement of a competent portal application. Aspects of the invention deal with transforming web-based content into a form acceptable for use in a portal for use by a portal application.
Turning now to the drawings, reference is initially made to
In current embodiments, the server 10 operates under a platform-independent execution environment, J2EE under the Java™ platform, both available from Sun Microsystems Inc., Palo Alto, Calif. However, the principles of the invention may be applied to other platforms and execution environments by effecting suitable modifications within the capabilities of those skilled in the art.
The server 10 supports a portal system 16 that includes a number of portal runtime modules 18, collectively referred to as “Portal Runtime Technology” (PRT). The portal system 16 can be realized using the above-noted NetWeaver Portal Technology.
In general the portal runtime modules 18 supply various services to portal users, management, and security. The portal runtime modules-18 include general portal services 20, which include a connector gateway 22, and a system landscape portal service 24. The system landscape portal service 24 is a block representing a logical, complex system, which can consist of multiple, distributed components. Some of these components may themselves be systems. Others may be services, installed products, or other managed elements. Furthermore, any of the components of the system landscape portal service 24 can be third party components, to which there is a need for seamless access and communication. The connector gateway 22 is a service that enables a connection between the portal system 16 and one or more external information systems (not shown), using the system landscape portal service 24.
Among the portal runtime modules 18 are a group of portal components 26, which provide various administrative tools 28 required for portal administration and operation. In particular, the portal runtime modules 18 includes an archive uploader 30 to upload a packed portlet archive (PAR) to a portal application repository (also known as a portal content directory (PCD)) and to create a semantic object from a portal application using a generic semantic object creation module 32. The archive uploader 30 and the semantic object creation module 32 are described in further detail below.
J2EE provides a connector architecture 34, known as the “J2EE Connector Architecture” (JCA), which defines a standard scalable architecture for connecting the J2EE platform to heterogeneous external information systems. The connector architecture 34 is extended in the portal system 16 by a connector framework 36, which consists of interfaces described by the JCA specification and extensions defined by the connector framework 36.
A generic web development tool 38 is used to supply at least a portion of video content to the portal system 16. The web design and development tool Dreamweaver® 8, available from Adobe Systems Incorporated, 345 Park Avenue, San Jose, Calif. 95110-2704, is suitable for the web development tool 38.
Graphical material designed using the web development tool 38 is normally emitted as a stream or document written in a markup language, e.g., XML, HTML or a JSP page. Such a document may be suitable for display and processing using a web browser. However, in this form, it cannot be generally deployed directly to the portal system 16. According to aspects of the invention, the output of the web development tool 38 is converted by a transformation tool 40 into a form that is acceptable by the facilities of the portal system 16, as if it were native portal source material. As a result, a developer is enabled to use the web development tool 38 to create free style layout in the context of a regular portal or even a lightweight portal that has a relatively small code size, in an easy and intuitive way.
Reference is now made to
A parser 42 typically receives input from the web development tool 38. The input is usually a HTML or JSP page. The parser 42 converts the input into a source code, e.g., Java source code. The parser 42 is conventional. For example, the Java Server Web Development Kit (JSWDK) provides a parser that is suitable for use as the parser 42. This can be used in conjunction with the JDK Regular Expression support package to identify patterns in the source file, both available from Sun Microsystems, Inc., Palo Alto, Calif.
A generator 44 accepts source code from the parser 42 and compiles it into a design view, acceptable to the development tool being used, e.g., a JSP file. The particular format chosen is application dependent. The transformation tool 40 provides plug-ins 46 to the web development tool 38, e.g., an iView container for generating a page or layout and for rendering navigation links in iViews. While source files are typically JSP files, this is not essential. However, web designer tools generally support JSP files. Thus, any JSP tags that may be added by the generator 44 may be conveniently previewed using the facilities of the web development tool 38. Java compilers and code generators are well known in the art, and many are suitable for use as the generator 44.
The JSP file produced by the generator 44 is incorporated by a packaging module 48 into an archive file. In one aspect of the invention, the archive file is suitable for creation of a portal application, e.g., a portlet. In current embodiments the portal application is an iView. Portlets are Java-based pluggable user-interface components, which are managed by a portlet container. Portlets provide a presentation layer in order to process requests and generate dynamic content. In current embodiments, the archive file is a PAR file, which can contain many types of data, e.g., pages, layouts. A PAR file contains the files needed in order to for the transformation tool 40 to deploy a portlet into a portal application repository. In particular, the PAR file contains the content and descriptor that describes the portal application. Clients with sufficient privileges would eventually use the portlet as part of an iView, following completion of additional steps described below.
The transformation tool 40 utilizes the semantic object creation module 32 (
A deployment engine 50, which is a standard feature of the portal system 16, is used to actually deploy the portlet to the portal application repository. The deployment now includes semantic objects derived from the visual content received from the web development tool 38 (
Reference is now made to
Next, at step 54, the parsed output is used to generate a source code file that can be dynamically compiled into applications, e.g., servlets or portlets. Preferably, this file is a JSP file. Reference is now made to
Referring again to
Reference is now made to
Reference is now made to
The PAR file descriptor 74, portalapp.xml, also termed a “portal application descriptor”, provides metadata about a specific portal component, e.g., a dependency on other portal components, user role privileges for access to the application. An example of the PAR file descriptor 74 is given in Listing 1.
Reference is now made to
Reference is now made to
Referring again to
The PAR file is uploaded to the portal application repository, typically via HTTP. The archive uploader 30 (
Several HTTP parameters are concatenated to the above URL:
A full list of properties is as follows:
After having been uploaded by the archive uploader 30 into the portal application repository, the PAR file can be used later to create new content, e.g., iView pages.
The portal has a number of tools for managing the portal application and for creating content. For example, a permissions editor is used to assign user, group and role permissions to portal objects. More specifically, using the permission editor, one can define permissions various objects, e.g., business objects and operations, folders and portal components, and portal objects, such as iViews, portal pages, layouts, roles, worksets, packages and systems. The permission editor recognizes security zones and safety levels used to authorize direct URL access to portal components and services.
In current embodiments, creation of iView pages and layouts is performed automatically by the transformation tool 40 (
Referring again to
The portal has a semantic layer that supports several types of semantic objects, e.g., iViews, pages and layouts. These objects are stored in the portal application repository, and can be accessed using generic Java API's. Some of these semantic objects can be viewed as user interface content in the portal.
The portal features a generic creator (GC) tool, also known as a “content and action upload portal tool”. This is a portal component that simplifies the creation of portal semantic objects using a XML-based script. Among the functions carried out by the GC tool are role assignment of users and groups, and assignment of aliases to portal systems. The GC tool has the ability to run other XML scripts, which are called from a basic XML script. This capability provides a useful looping feature, which enables passing of parameter values and the performance of automated batch replacements.
After the portal component has been deployed using the ArchiveUpload feature, another portal component, _InitialContentRunner, activates the generic creator tool. This component accepts a generic creator script and executes it in the portal environment. An exemplary generic creator script for creating an iView based on the iView portal component is shown in Listing 3. In Listing 3, “GenericCreator” is the root element, which contains some metadata for the script execution, e.g., “Author name”, “Locale”. A number of property constants are used to simplify the script language. For example the statement
Context objectClass=“com.sap.portal.pcd.gl.GlContext” simplifies creation of folders in the portal content catalog. The statement,
is used to create a semantic object of type iView based on the following deployed portal application:
Referring again to
To conclude final step 90, initial content, based oh the semantic objects, is developed for the portal user interface, which is now ready for deployment to a portal viewable by browsers.
In general, as noted above, different role views can be created by varying the performance of final step 90 (
Reference is now made to
The procedure for creation of a portal layout is similar to that described above with reference to
The source JSP file should contain JSP elements that will provide a unique ID to each iView that may be created from the layout, e.g.,
An exemplary listing for the descriptor file, portalapp.xml, for a portal layout is shown in Listing 5. The Portal component includes common directions and includes new generated iView containers “column1” and “column2”.
After the portal component has been deployed using ArchiveUpload facility. The portal component _InitialContentRunner activates the generic creator. This component accepts the Generic Creator Script and executes it in the portal environment. An exemplary script for creating the layout is generated based on the Layout portal component, as shown in Listing 6.
The item GenericCreator, property constants and context object classes have the same meaning as given in the discussion of Listing 3. The details are not repeated.
An exemplary layout JSP is presented in Listing 7. When a layout is actually created using the layout of Listing 7, it is the locations of the iView wrappers that are significant, rather than the actual iViews. Eventually, when a page is derived from the source JSP file, these iView locations, and iViews of each iView wrapper, are used to create the actual page.
A portal page holds iViews and other pages containing iViews, organized in a portal layout. It, will be recalled that iViews retrieve information from various sources, helping users perform their business functions. Portal pages are one means of assigning the iViews to users and roles, and displaying the information that is retrieved.
Creation of a portal page The procedure of creating a portal page is divided into the steps of:
(1) Creating the layout semantic object as described above; and
(2) Deploying a generic creator script that links between the Layout and iViews to be included in each iView container. An exemplary generic creator script is presented in Listing 8.
The source JSP file is similar to the layout JSP file, with an addition that declares the locations of iViews that may be integrated later in each iView wrapper, e.g., the following statements:
Referring again to
Content can be extended using delta links. For example, a new iView can be derived from an existing or source iView. The new iView may extend the existing iView, and may be established with new parameters or new values of existing parameters. When the source iView is updated by the transformation tool 40, the changes propagate to the new iView. It will be appreciated that chains of attribute inheritance of any length and complexity can be established among iViews in a portal content directory, in which elements of the chain are linked to other elements by delta links. Delta link tracer tools are available from SAP for determining the position of any iView within a delta link chain, and thereby the details of its inheritances and its dependencies.
One the portal archive has been stored in a portal repository it forms a database, together with other contents of the portal repository. Searches, using known search techniques, can then be undertaken to identify logical patterns in the source code, and to develop statistics relating to the portal once the content has been generated in the portal. For example, the number of resources employed from the portal may be of importance to management. Similarly, statistics on the types of resources utilized, e.g., types of images being used, utilization of technologies such as flash objects, or utilization of navigation tag libraries.
It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and subcombinations of the various features described hereinabove, as well as variations and modifications thereof that are not in the prior art, which would occur to persons skilled in the art upon reading the foregoing description.