Novell Portal Services: The Tools You Need To Build a Better Desktop
Articles and Tips: article
01 Jan 2001
Editor's Note: This article is the second in a two-part series that focuses on Novell Portal Services. You can read the first article in this series, "Novell Portal Services: A Better Way To Build a Desktop," in the December 2000 issue ofNovell Connection.
If your company is in the market for a portal, you probably have an idea about the content you want that portal to deliver. You probably also have an idea about the users to whom you want to deliver that content. No matter what business your company is in or what kind of portal you envision, Novell Portal Services can help you build that portal.
For example, suppose your company manufactures consumer goods. You may envision a portal through which employees can access legacy applications--such as applications that provide information about product availability, new orders, and production schedules. In addition, you may envision a portal through which your company's customers can access product information and order products online.
Novell Portal Services is new portal framework software from Novell that is currently in closed beta. This portal framework is based on open standards right down to the directory it accesses: Novell Portal Services supports any directory that complies with the Lightweight Directory Access Protocol version 3 (LDAP v3) standard, including NDS eDirectory.
Novell Portal Services is also Java-based, which means it can run on any operating system that supports a Java Virtual Machine (JVM) version 1.2.2 or above. (For more information about the industry standards upon which Novell Portal Services is based and how Novell Portal Services uses these standards, see "Novell Portal Services: A Better Way To Build a Desktop.")
You may think Novell's focus on using industry standards makes Novell Portal Services a one-size-fits-all portal solution. In fact, it does--and it doesn't. Novell Portal Services is a one-size-fits-all portal solution only in the sense that you can use Novell Portal Services with any networking architecture that makes sense for your company. In all other senses, Novell Portal Services enables you to create a custom-made portal that meets your company's unique needs.
THE BOX IS ONLY THE BEGINNING
Enterprise portals are complex constructions by nature, as Tim Schmanski, a Novell Portal Services development manager, learned while attending the Delphi Group's Corporate Portals Conference in Rancho Mirage, California. (The Delphi Group specializes in e-business advisory services and analysis. For more information, visit www.delphigroup.com.)
As a result of attending this conference, Schmanski observes that "there is no such thing as a portal in a box." Instead, Schmanski says portal vendors tend to focus on specific aspects of portal development.
"Some companies like doing the front-end [web server] stuff, and some companies like doing the database and backend access stuff," Schmanski explains. With Novell Portal Services, Novell is concentrating on software that runs on the web server and controls portal access based on users' organizational roles. As mentioned earlier, Novell Portal Services is a portal framework. That is, rather than providing a ready-to-use portal right out of the box, the Novell Portal Services servlet provides a flexible, directory-enabled framework you can use to build a custom-made portal for your company. (SeeFigure 1.)
In addition, Novell has developed several gadgets, or portal components, that access backend data sources and deliver that data as an eXtensible Markup Language (XML) stream. Novell includes some gadgets with Novell Portal Services. For example, Novell Portal Services includes the Yahoo News gadget, which accesses the news service on the My Yahoo! web site (http://my.yahoo.com). (For a list of gadgets that Novell Portal Services includes, see "For Starters.")
ANATOMY OF A DIRECTORY-BASED PORTAL
The Novell Portal Services framework includes the following components:
The Session Manager manages the connection between users' browsers and Novell Portal Services. For example, the Session Manager includes code that detects whether or not a user's browser supports XML and eXtensible Stylesheet Language (XSL). Depending on which protocols the browser supports, the Session Manager delivers Novell Portal Services content as an XML stream or an HTML web page.
The Gadget Manager manages communications between gadgets and the directory Novell Portal Services accesses. To do this, the Gadget Manager interacts with the Configuration Manager.
The Configuration Manager is the Application Program Interface (API) through which gadgets read and write information to and from the directory. For example, on Novell's i-login.Net portal, Novell employees can customize the GroupWise E-mail gadget to deliver from two to 20 e-mail messages. (The i-login.Net portal is Novell's implementation of Novell Portal Services. For more information about the i-login.Net portal, see Novell Connection,Dec. 2000.)
When a Novell employee saves his or her customization, the GroupWise E-mail gadget uses the Gadget Manager and the Configuration Manager to write that customization as an attribute in that employee's user object. The next time that employee accesses the i-login.Net portal, the GroupWise E-mail gadget reads this customization from the directory and presents the customized number of e-mail messages.
The Authentication Manager performs two services for Novell Portal Services. First, the Authentication Manager performs the basic service of authenticating users to the portal.
Second, the Authentication Manager orchestrates single sign-on services for the gadgets that comprise Novell Portal Services portals. To provide these services, the Authentication Manager can snap in to several single sign-on applications, including Novell Single Sign-on, Novell iChain, and SiteMinder.
Note: Novell Single Sign-on is software that uses NDS eDirectory and Novell SecretStore to provide single sign-on services. (SecretStore is a repository for storing encrypted usernames and passwords.) Novell iChain is Novell's business-to-business framework, which includes single sign-on features. SiteMinder is third-party single sign-on software from Netegrity Inc. (For more information about Novell Single Sign-on, visit www.novell.com/products/sso. For more information about Novell iChain, visit www.novell.com/products/ichain/productinfo.html. For more information about SiteMinder, visit www.netegrity.com.)
The Authentication Manager also includes internal code that can perform single sign-on services without snapping in to Novell or third-party single sign-on products. To provide this service, the Novell Portal Services installation program extends user objects in the directory to include attributes that comprise Novell's SecretStore technology.Gadgets enabled for single sign-on can use the Gadget Manager, Configuration Manager, and Authentication Manager to store users' authentication information in the users' SecretStore. These gadgets can access and use this information to automatically log users in to services and applications.
As these descriptions imply, the separation between the Novell Portal Services components is merely logical. In fact, these components are all part of the same servlet and work together to provide a portal framework to which you can add the gadgets that ultimately define the capabilities of that portal.
INSTALLING THE FRAMEWORK
Before you can add gadgets to your company's portal, you must first install Novell Portal Services, and before you can install Novell Portal Services, the software upon which Novell Portal Services depends must be running on your company's network. To successfully install Novell Portal Services, you must be running the following software:
An LDAP v3-compliant directory to which you have administrative access
A JVM, version 1.2.2 or above
A web server
A web application server or servlet engine
Having this software available to the installation program is so crucial that the installation program includes a checklist.
You must check a box to confirm that each item on this list is available to the Novell Portal Services installation program before you continue the installation process. (If you right-click selected items in this list, the installation program displays the software currently known to support Novell Portal Services. SeeFigure 2. Please note that all the screen captures in this article are taken from the closed beta version of Novell Portal Services. The shipping version interface may be slightly different.)
After you verify that you have met these software prerequisites, the installation program wizard walks you through the installation process. As a network administrator, you should find most of the steps in this process easy to complete. However, some of these steps may present pitfalls.
During the installation process, the installation program prompts you to select the type of web server you are using, the operating system on which the web server is running, and the type of servlet engine or web application server you are using. The drop-down menus that provide the selections for this step include software that supports Novell Portal Services. In addition, these drop-down menus include an Other option. (SeeFigure 3.)
Novell includes this Other option because it has not yet tested Novell Portal Services with every combination of web servers, operating systems, and servlet engines upon which Novell Portal Services should run. If you are using software that is not included on these lists and therefore must select Other, Novell Portal Services may or may not work with that software.
If you select Other from any of these drop-down lists, you must be prepared to manually configure your software to use Novell Portal Services. In contrast, if you are using software that is included on these drop-down lists, the Novell Portal Services installation program configures this software for you.
The Novell Portal Services installation program prompts you to enter the distinguished names of several directory objects, including the public user object and the portal configuration object. The public user object is a special type of user object that enables the general public to access "something"--in this case, the Novell Portal Services logon page. If your directory does not include a public user object, Novell Portal Services creates this object for you. Novell Portal Services then uses this object to provide users with a pre-login portal view. (SeeFigure 4.)
The Novell Portal Services installation program also creates a portal configuration object. Among other things, this object includes pointers to objects that contain portal configuration information. For example, the portal configuration object may include pointers to user objects. (For more information about the portal configuration object, see the "One Brain, Many Faces" section of "Novell Portal Services: A Better Way To Build a Desktop"Novell Connection,Dec. 2000, p. 24.)
The installation program also prompts you to enter the context in which you want to place gadget objects. Be aware that Novell Portal Services makes LDAP calls, rather than directory-specific calls, to the directory. Therefore, the distinguished names and gadget contexts you enter must use LDAP syntax rather than directory-specific syntax.
According to Rod Allen, a test engineer for Novell, using NDS syntax rather than LDAP syntax for these distinguished names and contexts is the most common installation error. "LDAP uses a comma, and NDS uses a dot," Allen explains. "Force of habit, most people type the dot." For example, because you are accustomed to NDS syntax, you might enter the following distinguished name using NDS dots rather than LDAP commas:
The final pitfall isn't really a pitfall, but it may concern you when you first encounter the problem. When the Novell Portal Services installation is completed, the screen displays error messages from the LDAP directory. Don't be alarmed. These messages simply mean that the installation program searched the directory for Novell Portal Services objects before creating them. (The Novell Portal Services installation program does not overwrite existing objects.) LDAP displays an error message for each object the installation program searches for but does not find.
HOW TO BUILD A BETTER PORTAL
After you install Novell Portal Services, you can create an object scheme to which you can then add gadgets. An object scheme is portal layout that you configure for a particular object.
For example, you can create an object scheme for a container object. This object scheme is then available to users whose user objects are located below this container object in the directory tree. (Providing your directory supports inherited rights, object schemes are inherited down context.)
Novell Portal Services includes an Administration wizard that makes creating object schemes simple. This wizard also simplifies the process of adding gadgets to those object schemes.
You can access the Administration wizard after you install Novell Portal Services by performing the following steps:
Stop the web server.
Stop the web application server.
Start the web application server.
Start the web server.
Launch your web browser.
Type the following URL (which is case sensitive) in that browser's URL field:http://DNS name or IP address of the web server/servlet/PortalServlet
Log in as administrator. An Administer the Portal button appears on your browser screen.
Click the Administer the Portal button. The Administration wizard displays two options:• Create a New Object• Edit an Existing Object
Create a New Object
If you select the Create a New Object option, Novell Portal Services guides you through the process of adding a new portal configuration object to your company's directory. The Novell Portal Services framework can accommodate multiple portal configuration objects, each of which supports multiple object schemes.
For example, if the sales group created and managed its own portal, this group could create a new portal configuration object to control portal services for that portal. The sales group could then create object schemes for this portal configuration object.
The sales group could also add gadgets that deliver sales-specific portal content. In addition, if the sales group's portal configuration object were created in the same directory tree as your company's portal, the sales group could also access the company portal.
Edit an Existing Object
As the name suggests, the Edit an Existing Object option enables you to edit an existing portal configuration object. You select this option to create an object scheme for a newly installed portal framework.
When you select Edit an Existing Object, the Administration wizard prompts you to select the portal configuration object you want to edit from a drop-down list. Assuming this is a new installation of Novell Portal Services, only the portal configuration object you created when you installed Novell Portal Services appears on this list.
The Administration wizard then presents a list of choices for managing this portal configuration object. These choices include the following:
Options that enable you to create or edit a branding area. A branding area comprises the static area of the portal.
Options that enable you to create or edit an object scheme. An object scheme is the configurable and dynamic content of the portal.
Branding Your Company's Portal
You can create one branding area for each object in your company's directory tree. This area typically includes your company's logo (or another graphic that identifies the portal) and a color scheme that defines the look and feel of the portal.
For example, suppose your company were an Application Service Provider (ASP) that creates and manages portals for other companies. Also suppose that you have created a separate organizational unit object in your company's directory tree to represent each customer's company. You could then configure a separate branding area for each of these organizational unit objects.
The branding area also includes gadgets that your company wants to make available to the users for which you have created this branding area. In addition, the branding area determines where and how object schemes are displayed. (SeeFigure 5.)
For example, the Administration wizard prompts you to select the location in which you want tabs to appear (top, right, left, or bottom). Each object scheme represents a page of portal content. A particular user can inherit many object schemes, each of which is represented by a tab.
You can get an idea of how these tabs appear to users by visiting the My Yahoo! web site (http://my.yahoo.com). When your browser first displays the My Yahoo! portal, you see the My Front Page tab view. If you click the My Other Page tab, you see that tab view. These tab views correspond to Novell Portal Services object schemes.
Creating a Dream Scheme
When you select the Create a New Scheme option, the Administration wizard walks you through the process of creating an object scheme. As the first step in this process, the Administration wizard prompts you to enter the context in which users will inherit the object scheme you are creating. For example, if you wanted to create an object scheme that is available to all of the users on your company's sales team, you might enter the following context:
Remember that Novell Portal Services uses only LDAP calls to the directory, which means that contexts must be typed using LDAP syntax.
Alternately, you might want to create an object scheme that is available to only a single user--your company's president, for example. In this case, you might enter the following context:
You can create as many object schemes for your company's portal as you want--one object scheme at a time, of course.
After you enter a context for the object scheme, the Administration wizard prompts you to select the number of columns the object scheme should display (1, 2, or 3). Next, the Administration wizard prompts you to enter a priority for this object scheme.
This priority designation determines how the object scheme is presented to a user when he or she first logs in to the portal. The object scheme with the highest priority is the object scheme this user sees when his or her browser displays the post-login portal view. Object schemes with lower priorities appear as tabbed selections in that portal view.
Finally, the Administration wizard prompts you to enter a name for the object scheme. For example, if you wanted to make this object scheme available to the members of your company's sales team, you might name this object scheme Sales. After you enter a name for this object scheme, you can then save the object scheme and begin adding gadgets.
To add gadgets to an object scheme, you select View Data from the list of options that the Administration wizard presents after you save an object scheme. The Administration wizard then displays a list of the object schemes you have created.
Next, you select an object scheme, select Add, and enter the distinguished name of the gadget you want to add. The Administration wizard then prompts you to select the location within this object scheme where you want the gadget to appear. For example, you could specify that you wanted the gadget to appear in Column One.
Novell Portal Services includes several gadgets that are generally useful. (For a list of gadgets included with Novell Portal Services, see "For Starters.") Some of these gadgets, which Novell developed as proof-of-concept gadgets, have been integrated into the Novell Portal Services framework. In fact, the Administration wizard that you use to create and manage your company's portal is actually a gadget--the Administration gadget.
Novell Portal Services displays this gadget by default the first time you log in to the portal as an administrator. You can then add this gadget to an object scheme. For example, you can create an object scheme that is available only to you and other network administrators. You can then add the Administration gadget to this object scheme.
You can also include other gadgets that make doing your job easier. For example, you might add a gadget that displays unanswered help-desk calls or a gadget that accesses a legacy application that tracks network usage.
Of course, Novell Portal Services cannot include gadgets that access your company's legacy applications. So where do you get these and other gadgets that Novell Portal Services does not offer?
You have several alternatives for acquiring gadgets to make your company's portal everything you want it to be. For example, you can contract with Novell Consulting to develop gadgets for your company's portal.
"There's an opportunity for Novell Consulting to come in and write gadgets for you if you don't have the expertise in-house," explains Matt Brooks, a software engineer for Novell. That expertise includes a working knowledge of Java, XML, and XSL. (For more information about the expertise required to develop gadgets for Novell Portal Services, see "The Power To Gadgetize.")
Another option for creating gadgets is doing it yourself. If you have the expertise you need, you can use the free Novell Portal Services software developer's kit (SDK) to create gadgets for Novell Portal Services. The SDK includes the API that enables gadgets to communicate with the Novell Portal Services framework. The SDK also includes examples of gadget code. (See "The Power To Gadgetize.") You can download the Novell Portal Services SDK from http://developer.novell.com/ndk/leadedge.htm. (The Novell Portal Services SDK is called Leading Edge 137.)
In addition, gadgets will soon be available from third-party companies, such as 2ndC, a Novell partner that specializes in information management software. For example, 2ndC developed StockWise, which is customized information management software that integrates with GroupWise to help the Copenhagen Stock Exchange manage the flow of investment information.
StockWise is based upon DocuWise, 2ndC's information management software. DocuWise can help you organize and manage the unstructured data in your company's GroupWise systems, including e-mail, e-faxes, scanned documents, and voice mail. DocuWise also enables you to combine this information with the structured data in your company's enterprise resource planning (ERP) system. (For more information about 2ndC and DocuWise, visit www.2ndC.com.)
2ndC plans to develop gadgets that provide access the DocuWise system. Birgitte Pedersen, CEO and president of 2ndC Americas, explains that DocuWise gadgets will enable users to access "information they normally search for in DocuWise and documents that they've checked in and out" of the DocuWise system.
2ndC also plans to develop gadgets that enable you to create and edit web pages remotely through World Wide Web Distributed Authoring and Versioning (WebDAV). (WebDAV is an Internet Engineering Task Force [IETF] standard for web-based collaborative authoring. For more information about WebDAV, visit www.ietf.org/rfc/rfc2291 and www.ietf.org/rfc/rfc2518.)
Although 2ndC did not have any of these gadgets available at the time this article was written, it may have gadgets available now. According to Jesper Bergstedt, CEO and president of 2ndC Denmark, developing gadgets for Novell Portal Services is a "major priority" for 2ndC.
Novell is also encouraging portal development companies that specialize in backend portal solutions to develop gadgets for Novell Portal Services. According to Schmanski, several companies that attended the Delphi Group's Corporate Portals Conference "expressed interest in working on gadgets for Novell Portal Services."
In addition, Novell plans to continue developing gadgets that access Novell products, such as the GroupWise E-mail gadget, which was developed for the i-login.Net portal.
Acquiring all of the gadgets that you need for your company's portal may take some time. (In fact, acquiring gadgets may be an on-going process. As your company's needs change, the gadgets that your company needs may also change.) However, these gadgets are worth the wait.
Just as custom-tailored clothing fits your (and only your) body to a T, custom-made gadgets can enable you to build a portal that fits your company's needs to a T. You can then combine these custom-made gadgets with third-party and Novell gadgets.
When these gadgets are installed in the Novell Portal Services framework, they can provide your company's employees, business partners, and customers with a single sign-on, single point of access to all of the information and services they need.
Cheryl Walton works for Niche Associates, an agency that specializes in writing and editing technical documents.
Acquiring all of the gadgets that will eventually comprise your company's portal may take a bit of time. You may need to develop some of those gadgets in-house, or you may have to purchase them from third-party companies. You may even want to ask Novell Consulting to develop gadgets for you.
However, you don't need to wait until all of these gadgets are available to start building your company's portal. You can start now by using the gadgets that are included with Novell Portal Services.
Citrix Gadget. This gadget provides access to Citrix servers. With this gadget, users can execute applications that are running on a Citrix server through the portal. For example, users can execute Windows applications--such as Microsoft Word--and have the output of those applications displayed in their web browser.
Customize Gadget. This gadget enables users to customize their own portal layout. For example, with this gadget, users can hide gadgets that they do not use.
GroupWise Calendar Gadget. As the name suggests, this gadget displays users' GroupWise calendar. This gadget supports GroupWise 5.5 with GroupWise Enhancement Pack and GroupWise Web Access installed.
GroupWise E-mail Gadget. This gadget gives users a list of their GroupWise Inbox messages and enables users to jump from the portal to GroupWise Web Access. This gadget supports GroupWise 5.5 with GroupWise Enhancement Pack and GroupWise Web Access installed.
HTML Gadget. This gadget reads HTML pages and renders those pages on users' browsers as if the pages were gadgets. Novell created the HTML gadget so that companies can use web pages they have already created--for their intranets or customer web sites, for example--as portal content while those companies are developing more complex gadgets.
Shortcut Gadget. This single sign-on-enabled gadget allows you to include shortcuts on your company's portal--such as shortcuts to frequently accessed web sites or other gadgets. For example, if users frequently access an online brokerage for account information, you can create a shortcut to this brokerage. The first time a user clicks on this shortcut, the Shortcut gadget asks that user for the name and password combination that signs the user on to this site. The Shortcut gadget then stores this information in the user's SecretStore and accesses this information to automatically sign that user on to this web site.
Stock Ticker Gadget. This gadget accesses the stock ticker on the My Yahoo! portal (http://my.yahoo.com). Users can customize this gadget to display the stock symbols in which they are interested.
Yahoo News Gadget. This gadget accesses news from the My Yahoo! portal. Users can customize this gadget to display the categories of news in which they are interested.
E-mail Gadget. This gadget reads e-mail messages through standard Internet Message Access Protocol (IMAP) calls. As a result, you can use this gadget with any e-mail server that is IMAP capable.
Weather Gadget. This gadget accesses weather information from the Weather Channel portal (www.weather.com). Based on the user's zip code, the Weather gadget displays the current weather conditions and a seven-day forecast.
MyFiles Gadget. This gadget uses World Wide Web Distributed Authoring and Versioning (WebDAV) to enable users to access files on a WebDAV-enabled server.
PortalStats Gadget. This gadget shows you which users are currently logged in to any web server upon which the portal is running.
Novell Connection, January 2001, p. 22
The Power To Gadgetize
The portal you envision for your company probably includes access to services and applications that only your company uses. In other words, you probably envision a portal that can t possibly come ready to go from a box. Instead, you need a custom-made portal.
For example, your company may use an in-house application that tracks the number of customer orders on a productby- product basis. Your company s sales team and product-development team might access this application on a daily basis because the information it produces serves as a barometer of the success of marketing and product development.
Naturally, you want to make this application available to your company s sales and product-development teams through a Novell Portal Services gadget, but where do you get such a gadget? One way to get this gadget is to use Novell Consulting to develop it. Another way to get this gadget is to develop it in-house.
To develop gadgets in-house, you download the Novell Portal Services software developer s kit (SDK), which enables you to write gadget code to the Novell Portal Services Application Program Interface (API). (You can download this SDK free from http://developer.novell.com/ndk/ leadedge.htm.The Novell Portal Services SDK is called Leading Edge 137.)
This SDK includes samples of gadget code that provide you with how-to examples. Furthermore, this SDK includes software that enables you to test the gadgets you develop without first having to install those gadgets in Novell Portal Ser vices. (Novell Portal Ser vices includes an installation utility to help you install these gadgets after you get them working properly. In future versions of Novell Portal Ser vices, you will be able to install these gadgets using the Administration gadget.)
Before you can use this SDK, however, you or someone in your company must be able to program the following:
eXtensible Markup Language (XML)
eXtensible Stylesheet Language (XSL)
Gadget code is typically Java code. On the backend, this code accesses a particular resource. For example, this code might use the Java Database Connectivity (JDBC) API or Open Database Connectivity (ODBC) API to access a backend database. (Java applications can use a JDBC-ODBC bridge to make database calls using the ODBC API.)
On the front-end, this Java code accesses the Novell Portal Services API, which enables the gadget to read settings and access information from the directory. For example, if a gadget knows how to log a user in to a backend application such as the in-house application in the example above this frontend code can access a username and password from a user s SecretStore. (SecretStore is a Novell technology for storing encrypted usernames and passwords in director y user objects. Novell Portal Services extends the director y to include this technology.) Front-end gadget code also reads settings and access rights from the directory.
Novell Portal Services includes an internal Java gadget that can access the XML data these scripts provide. However, these scripts are not really gadgets in the sense that they can fully integrate with all of the features of Novell Portal Services. Therein lies the reason Novell recommends that you write gadget code in Java.
If you need to brush up on Java programming, learning materials are plentiful. A recent search of Amazon.com s books yielded 1,404 matches using the key word Java. In addition, you can find plenty of information about Java on the web at http://java.sun.com.
In addition, you can purchase developer tools to supplement your Java programming skills. For example, Visual Cafe 4.0 is Java development software from Symantec that provides a drag-anddrop Java development environment. (For more information about Visual Cafe 4.0, or to download a free trial version, visit Symantec s web site at www.symantec.com/region/uk/product/vcafe/vcafese40/index.html.)
Gadgets provide portal content in the form of an XML stream. Therefore, you need to know how to convert data from backend sources to XML. (XML is a World Wide Web Consortium [W3C] standard. For more information about W3C XML standards, visit www.w3.org/xml.)
If you need to improve your XML skills, you can find hundreds of books to help you. The engineers who developed Novell Portal Services recommend the following two books in particular:
Applied XML: A Toolkit for Programmers by Alex Ceponkus and Faraz Hoodboy. The suggested retail price for this book is U.S. $49.99. However, you can purchase this book at Amazon.com for U.S. $39.99 (plus shipping, of course).
XML Bible by Elliotte Rusty Harold. The suggested retail price for this book is U.S. $49.99. You can purchase this book at Amazon.com for U.S. $39.99 plus shipping.
Gadgets also include an XSL stylesheet, which specifies how Novell Portal Services presents gadget data to users browsers. XSL is comprised of predefined tags that enable you to specify the layout and the appearance of XML data. For example, these tags enable you to specify the font size in which XML data are displayed.
To help you become familiar with using XSL, Novell engineers recommend eXcelon Stylus 2.0, a layout and stylesheet editing tool from eXcelon Corp. This tool can help XSL beginners develop XSL stylesheets for gadgets. (For more information about eXcelon Stylus, you can visit eXcelon s web site at www.exceloncorp.com.) b
* Originally published in Novell Connection Magazine
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.