Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Child pages (Children Display)
depth2

Developing your campus portal

What kind of Java expertise is necessary to develop a campus portal using uPortal?

In general, to use the uPortal framework to develop a campus portal (the "instance" of the portal for use with your application server), over and above the level of expertise necessary to administer your application server (see above), you must be an experienced Java programmer, familiar with the JDK 1.2 tools for compiling, packaging, deploying and running server-side Java programs, and conversant with most of the technologies that comprise the J2EE specification. Specifically, at a minimum, you must have experience with:

  • XML. The uPortal framework uses XML and XSLT extensively to ensure the platform independence of data and to separate that data from it's presentation. To develop a portal with uPortal, you will have to create/edit XML files and create/edit XSL stylesheets. If you're not fluent with the XML-related APIs in Java, (McLaughlin2000) provides a comprehensive tutorial on writing Java programs that can create and manipulate XML documents. The uPortal developers highly recommend (Kay2000) to those looking for a tutorial and in-depth reference guide to XSLT. (Bradley2000) provides a guide to the overall XSL standard.
  • JSP: The portal framework uses Java Server Pages to facilitate the intermixing of markup language code required by a web browser and programming language code that leverages the underlying Java Runtime environment. If you want to change the look and feel of the portal substantially, you'll have to edit Java Server Pages, so you should understand how to use JSP syntax correctly. For those looking for a tutorial on JSP, (Manning) is an excellent choice.
  • Servlets. JSP works as an abstraction layer on top of the Java Servlets API and because of this, experience writing servlets will come in handy. Several programming 'idioms' in the portal code originated with Servlet programming. Although now a little dated, (Hunter1998) is a great tutorial on Java Servlets. The publisher expects to release a new edition soon.
  • SQL. The portal requires the use of a relational database to store some user, authentication, and channel subscription information, and the standard way to issue requests to a relational database server is using SQL, the Structured Query Language. You must therefore be familiar with the syntax and proper use of SQL in order to work with the uPortal framework. (Gulutzan1999) offers comprehensive coverage of the SQL standard. I say these are minimums because if you want to deliver something over and above the minimum functionality (for example authenticating via an LDAP server) then you'll have to be familiar with other J2EE technologies and/or APIs (for example, JNDI).

You keep writing that uPortal is a framework. Isn't that just an empty yuppie marketing word?

No. I'm using the word 'framework' in its widely-accepted, Software Engineering sense (Wirfs-Brock1991). A framework is a reusable design, expressed as a set of classes, that can serve as a solution to a family of related problems and support reuse at a larger granularity than classes. A mature framework allows components to be reusedas "black boxes", that is, a programmer can incorporate them into a system under construction without knowing their implementations (Johnson1998). Most frameworks in widespread use today are for constructing graphical user interfaces (GUIs) for traditional desktop applications. uPortal is different in that it's a framework for developing a web portal and developing content for display within that portal, but the underlying principal of both kinds of frameworks is the same: the framework provides programmers with an infrastructure that supports a coherent architectural model, allowing developers to concentrate on applying their expertise to the problem domain. In the case of uPortal, the framework takes care of the common functionality that every portal needs, so that you can implement the parts that are important and specific to your campus.

Developing content and applications for use with uPortal

What kind of experience is necessary to develop content and/or applciations for use with uPortal?

It depends upon what kind of content you want to deliver through the portal. For simplest content provision, you only have to know how to produce an html document. One of the defined kinds of channels for use with uPortal is an RSS (RichSite Summary) channel, the same format that Netscape uses for their Internet portal. If you create an XML document which adheres to this standard , the uPortal framework will handle formatting and presenting the output for you. To deliver content which requires complex user interaction, you'll have to create a complete web application which uses a channel as its user interface. This approach requires that you have the XML, Servlets and SQL skills that someone developing a campus portal instance using uPortal has (see above) as well as experience with:

  • JDBC. It's likely you will want your application to store information in and retrieve information from a database, so the ability to use the Java Database Connectivity API will be essential. The portal itself requires a relational database to store information related to users and their preferences, and the standard way for your application to access this information is by using JDBC. If you're not familiar with the JDBC API, (White1999) is a comprehensive tutorial, reference and source of sample code.
  • EJB. If your application requires distributed data access, transactions and persistence, the Enterprise Java Beans distributed component model will probably become an important part of your architecture. For EJB beginners, (Monson-Haefel2000) provides a complete reference. To get an idea of what you're in for when you begin developing channnels, carefully read Michael Oltz' tutorial.

My university has a large number of legacy applications that we want to provide access to from the portal. Can I do this?

Maybe. It depends upon the application. Did you write the application (and have the source code) or did you purchase a binary package from a vendor? If you have the source code, its relatively easy to create an alternate user interface to the application that operates within the portal. in uPortal parlance, this would be called a "channel". Your channel would display itself to the user in the portal and feed the input from that user to your application. Your legacy application would then process the data and send the output back to the channel, and the channel would in turn display the results to the user inside the portal.

If you purchased an application from a vendor, things are a bit more complicated, but the high-level approach is the same. You'd have to write an adaptor that would wrap the output of the legacy application in XML so that it can be displayed inside the portal. When you have this, you can then write a channel for use with the portal that interacts with your adaptor and actually facilitates the translation of the XML so that the portal can display it.

Appendix

References

Books

No Format

[1] [Bradley2000] Neil Bradley. Copyright © 2000 Neil Bradley. 0-201-67487-4.
The XSL Companion. Addison-Wesley Publishing Company.

[2] [Gulutzan1999] Peter Gulutzan1999 and Trudy Pelzer. Copyright © 1999. 0-879-30568-1.

SQL-99 Complete, Really. CMP Books.

[3] [Harold1999] Elliotte Rusty Harold. Copyright © 1999. 0-764532-36-7.
XML Bible. IDG Books.

[4] [Hunter1998] Jason Hunter and William Crawford. Copyright © 1998. 1-565923-91-X.
Java Servlet Programming. O'Reilly & Associates.

[5] [Kay2000] Michael Kay. Copyright © 2000 Wrox Press. 1-861003-12-9.

XSLT Programmer's Reference. Wrox Press.

[6] [Fields2000] Duane K. Fields and Mark A. Kolb. Copyright © 2000.1-884777-99-6.
Web Development with JavaServer Pages. Manning Publications Company.

[7] [McLaughlin2000] Brett McLaughlin. Copyright © 2000 O'Reilly & Associates.0-596-00016-2.
Java and XML. O'Reilly & Associates.

[8] [Maruyama1999] Hiroshi Maruyama, Kento Tamura, and Naohiko Uramoto. Copyright © 1999. 0-201-48543-5.
XML and Java : Developing Web Applications. Addison-Wesley Publishing Company.

[9] [Monson-Haefel2000] Richard Monson-Haefel. Copyright © 2000 O'Reilly & Associates. 1-56592-869-5.
Enterprise JavaBeans. O'Reilly & Associates.

[10] [White1999] Seth White, Maydene Fisher, Rick Cattell, and Graham Hamilton.
Copyright © 1999. 0-2014-3328-1.
JDBC API Tutorial and Reference, Second Edition: Universal Data Access for the Java 2 Platform.
O'Reilly & Associates.

Articles

No Format

[1] [Bosak1999] Jon Bosak and Tim Bray. XML and the Second-Generation Web.
Scientific American. 16-25. May 1999.

[2] [Johnson1998] Ralph Johnson. Designing Reusable Classes. Journal of
Object-Oriented Programming. 19-45. June/July 1998.

[3] [Wirfs-Brock1991] Rebecca J. Wirfs-Brock. Object-Oriented Frameworks.
American Programmer. 21-29. October 1991.

Originally written by:
Bill Brooks
California Polytechnic State University

...

Tip
titleStaged for migration to Drupal

A FAQ page equivalent to this is staged in Drupal here: http://www.jasig.org/uportal/documentation/faq . Once that looks good enough to launch, this Confluence page content should be eliminated in favor of the marketable website content, in order to avoid duplication of content, of maintenance effort, and divergence of FAQ content.

Table of Contents

Questions about uPortal Features

What does uPortal use for authentication?

Out of the box, uPortal supports authenticating via internal user accounts, CAS, and LDAP. uPortal includes an API for other authentication integrations. Support for CAS (and the inclusion by default of a CAS server) implies support for all the authentication methods CAS supports, including Active Directory, JAAS, JDBC, Container, LDAP, RADIUS, SPNEGO, and X.509 certificates. CAS provides APIs and an extensible framework for tailoring the user authentication experience.

Does uPortal integrate with LDAP?

Yes, uPortal can perform authentication against LDAP and/or read person attributes from an LDAP server. uPortal can also be configured to rely on LDAP for user groups.

What databases does uPortal support?

uPortal and most of its portlets use Hibernate, so most popular databases are supported. Known production deployment database include (but are not limited to!) Oracle, MySQL, PostgreSQL, and Microsoft SQL Server.

Are there more portlets available than what I see in my quickstart installation?

Yes! Some portlets are listed on Jasig's website and more are documented in the wiki.

Is uPortal secure?

Jasig's security policy and relevant details about uPortal's security standards are available here: http://www.ja-sig.org/wiki/display/PLT.

Is uPortal accessible?

uPortal developers strive to follow accessibility best practices, such as providing alt attributes and avoiding table-based layouts. Many uPortal interfaces, including the AJAX-powered drag and drop layout reordering, support keyboard bindings which may be used instead of a mouse. Many of uPortal's user interfaces use CSS and JavaScript components provided by Fluid Infusion, an accessible front-end framework.

Does uPortal support drag-and-drop layout reordering?

Yes! You can easily rearrange the portlets on a tab by simply dragging them to new positions. uPortal's reordering implementation includes alternate keyboard interactions and is tested for accessibility.

Does uPortal support mobile devices?

Yes! uPortal ships with themes and skins that work well with WebKit-based browsers including those built into the iPhone and Android mobile phones. These skins may be customized for your institution, and your portlets may choose to output specialized mobile interfaces.

Is uPortal highly scalable?

Yes! Many schools with over 50,000 users use uPortal and see millions of logins a month. One commercial organization even has a user baseof over 8 million!

Since uPortal is Free and Open Source Software, there are no license fees to pay for uPortal and you are free to run uPortal on as powerful and as many servers as you like with no change to your zero dollar uPortal license fee.

Does uPortal support clustering?

uPortal, since 2.6, supports session replication of navigational state data. Stateful IChannels will not have their state replicated unless it is 100% Serializable and stored in the users HttpSession. Session replication for portlets is completely on them. They are independent web-applications that each need to implement and support Serializable data in their session. Also since uPortal uses Ehcache for the majority of its data caches since 3.0 data consistency can be achieved by enabling invalidation based replication as supported by Ehcache.

Can one uPortal installation host virtual portals?

Yes! You can host multiple portals on the same installation. Each portal can have its own domain name, look-and-feel, authentication mechanism and user attribute source.

Questions about uPortal's community

Does uPortal have an active user community with whom I can engage?

Yes! Everyone is welcome to join our mailing lists, log into the IRC channel, attend our community calls, look at past presentations and attend our conferences. With the exception of the the conferences, most of this is available at no fee.

Are there training and conferences for uPortal?

Yes! The annual conference offers four days of presentations and pre-/post-conference seminars. This conference is shockingly inexpensive for what it is and regularly offers quality focused technical content and seminars. An annual UnConference offers networking/discussion opportunities in a less structured format. Commercial partners periodically and on-demand offer uPortal training and are able to deliver custom training classes, mentoring experiences, co-development, technical support, assistance, examples, outsourced development, custom documentation, and basically any other professional service you could possibly be willing to pay for.

Can I buy technical support for uPortal?

Yes! At least one of Jasig's Partners and uPortal Solutions Providers offers technical support for uPortal.

Besides for-fee commercial SLA-driven technical support, there are self-support options for uPortal as well, in the form of active email lists, a giant email list archive, the wiki, and other resources.

Where can I get help?

Jasig maintains two user-facing email lists that might be of help: uportal-user and portlet-user. If you're interested in purchasing support or consulting services, please visit Jasig's list of commercial partners.

Can I contribute to uPortal?

Yes! You can also become a uPortal developer and contribute back to the project. Many of the features of uPortal were developed by local institutions, contributed back and now are part of the core product.

What kind of say can I have in the the features and future direction of uPortal?

You can enter feature requests in uPortal's Jira tracking system and participate in community discussions. You can even run for election to the uPortal Steering Committee and to the Jasig Board of Directors. You can also contribute to the project and help implement your desired features. Via an Apache-style meritocracy, you can be recognized by your fellow uPortal project participants as a core contributor with "committer" status and direct access to change the uPortal source code as it is developed towards release.

You can have as much influence over uPortal and its community as you can achieve through the respect and trust of your peers. You can have as much direct participation in the process that produces uPortal releases as you care to offer and as uPortal's community and committers care to grant in recognizing the worthiness of your contributions.

Wait, does this "participatory meritocracy" thing actually work?

Yes. It works really well. Some would say surprisingly well. Jasig didn't invent it – Apache probably didn't invent this either but certainly has proven out the model.

Questions about Customizing and Developing for uPortal

What JavaScript toolkits does uPortal support?

uPortal bundles jQuery, jQuery UI, and Fluid Infusion in the default theme. The quickstart includes a portlet named "Javascript Demos" that you may use to demo the built-in javascript libraries. However, uPortal also carefully namespaces its libraries and code in case you choose to use another framework in your custom development.

What portlet development frameworks does uPortal support?

Since uPortal provides full support for JSR 168, you can develop portlets in a framework of your choice. Some adopters have also chosen to build content in a non-Java environment and display it using the web proxy portlet.

Questions about uPortal Licensing

I just want to try uPortal out and see if I like it. Can I do that?

Yes! Each uPortal distribution includes a quickstart. You can download the latest from the download page.

Can I access all the uPortal source code, including the latest features and patches?

Yes! uPortal is 100% Free and Open Source. There is only one repository hosting all of the uPortal code. While other portal vendors only release the latest versions to paying customers, all uPortal releases are completely free and publicly available.

Can I use uPortal on any server I like for any purpose?

Yes! uPortal is 100% Free and Open Source. You are free to deploy uPortal anywhere you like, redistribute uPortal to anyone you like, and to use uPortal for any purpose whatsoever.

Can I redistribute uPortal and my modifications to it to others?

Yes! And the uPortal developers hope you will! uPortal is also a direct-participation community-based open source project, so the way you redistribute your modifications might be to become directly involved in developing uPortal and making your changes part of the next release. (And there are many ways to participate short of that level of commitment, not least of which is the publicly available issue tracker which welcomes with arms wide open your patches.)

uPortal is 100% Free and Open Source software. You are free to redistribute it as distributed by Jasig or as modified in any way you like to anyone you like in any way you like.

Can I customize uPortal?

Many implementers choose to write their own skin and to develop custom portlets. uPortal's framework also includes well-designed APIs for adding authentication, user attributes, and performing other integrations. This means that it is practical to customize uPortal and there are many well-defined, supported-by-designed-APIs ways to do this.

uPortal is Free and Open Source Software. You are free to customize uPortal in any way you like and to do anything you like with your customized uPortal, including redistributing it to others.

The uPortal developers hope you'll speak up if you have a need to customize uPortal in a way that wasn't envisioned so that this can be designed into a next release of the software. The uPortal developers also hope you'll share your customizations. You're under no obligation whatsoever to do either of these things.

Do I have to tell anyone I'm using uPortal?

No. uPortal is Free and Open Source Software. You are free to use uPortal for any purpose and to tell anyone you like, or no one at all, that you are doing so.

However, the uPortal developers and community would appreciate hearing from you and hope you'll be comfortable listing your site or having your site listed on the uPortal website so that others can understand the value uPortal is providing.

Do I have to pay for uPortal?

No. All versions of uPortal are 100% Free and Open Source. New releases are under the Apache 2 license. Prior releases have been under other, similarly permissive open source licenses.

You are free to adopt and use uPortal without paying anyone a dime and without contributing to the project and community in any way whatsoever.

However, the uPortal developers highly encourage your organization to become a Jasig member and help support the continued growth and improvement of uPortal, to become directly involved in submitting patches and contributing to the development of uPortal, to build fantastic portlets and share them as open source software, to answer others' questions about uPortal in the way you'd like your questions to be answered, and to engage with "enlightened self interest" in continuing to develop and maintain Free and Open Source software for the benefit of the entire uPortal community.

Seriously, how much is the license fee?

Zero dollars.

uPortal is Free and Open Source Software. You can download uPortal and all its source code, at no charge, from Jasig's website. This is the latest, greatest, and best version of uPortal available.

uPortal's license allows others to redistribute uPortal in any way they like under any terms they like, including as part of proprietary software. So you might purchase a license for proprietary software (from someone other than Jasig, since Jasig has no proprietary software and sells no licenses) that includes uPortal. This is possible because uPortal is Free and Open Source software under an open source license that allows anyone to do anything they like with the software, including sell licenses to it (or modified versions of it) to anyone who chooses to buy them.

You will never pay any license fee for uPortal itself as distributed by its source, Jasig, and you can always get the latest uPortal as released by Jasig from www.jasig.org and from Jasig's source control servers at no fee whatsoever.

uPortal as developed and released by Jasig is Free and Open Source software.

Archived FAQ

Child pages (Children Display)
depth2