PowerPoint - Cornell University
Download
Report
Transcript PowerPoint - Cornell University
Developing the NSDL
User Portal
Dean Krafft, Cornell University
[email protected]
Developing a User Portal:
An NSDL Case Study
Quick Overview of Public SourceForge
The NSDL Communications Portal
uPortal and the NSDL.org portal project
Environment: Java, XSLT, and Tomcat
Coding Tools: Eclipse, XMLSpy, Ant, JUnit
Process Tools: CVS, Tasks, Trackers, and
Wikis
Experiences
2
Public SourceForge
Supports Open Source projects at
http://sourceforge.net
Originally OS tools (CVS, GNU Mailman,
Chora) with PHP “glue”.
Provides: Projects, User registration, File
Releases, Tasks, Trackers (Bugs, Features,
Patches), Docs, News, Mail Lists, CVS
Repositories, Web space
versus Enterprise: All code is open to view
and must be open source licensed
3
NSDL Communications Portal
Enterprise SourceForge: customized
Multiple workspaces supporting
collaboration and code development
Local additions: Wikis for collaboration,
controlled read access to CVS
repositories
General use of web space, mailing lists,
trackers, document mgr, CVS
5
Portals and User Interface
workspace
Wiki documentation of system
requirements – collaborative updating
Task lists: short term to-do for
development process
Trackers: Bugs and modification
requests
CVS: Primary store for code –
collaborative revision control system
7
Portal Technology for NSDL.org
uPortal (http://http://mis105.mis.udel.edu/jasig/uportal/)
Open source from the JA-SIG consortium
Java and XSLT customizable framework
Channel Architecture (portlets)
Uses Apache Tomcat as Servlet engine
NSDL.org: Primary user interface to NSDL.
Supports news, help, search, browse, exhibits
11
Java/XSLT Web development
Java code takes input, interacts with
DB, and creates small XML document
representing unique content in output
XSL Transform “renders” the XML into
XHTML targeted for specific browser
Same XML can drive many XSLTs
Separates “business logic” in Java from
“display specifics” in XSL transforms
15
Java/XSLT pluses and minuses
Enforces “separation of concerns”
Enables using different levels of
developer for different aspects of project
Simplifies retargeting portal to different
browser, device, or look&feel
Use of XML enables automated
processing and testing
Downside: It’s slower
16
Multiplatform Environment
Develop on Windows, deploy on Linux
Apache, Tomcat, Ant, Java, XSLT,
uPortal – all run on both
Identical Ant build.xml files (and
everything else) on both platforms
Only a few path names changed
(build.properties)
17
Coding Tools: Eclipse
Open source Java IDE – IBM originally,
now http://www.eclipse.org
Provides real-time error flagging
Excellent CVS integration and synch.
Direct support for JUnit tests
Good support for Ant build files (2.1 has
better)
18
Coding Tools: Ant
XML-based Java automated build
system (written in Java)
Supports multiple targets: compile,
deploy, db, test (think “Make” for Java)
Supports direct CVS interaction and
fully automated testing with JUnit
Other plug-ins available:
http://ant.apache.org
20
Coding Tools: JUnit/HTTPUnit
eXtreme Programming (XP) – test first, last,
and always
JUnit: Unit testing for Java classes
Builds a suite of tests, piece by piece
XSLT test: Run transform against known
input, then validate output against schema
HTTPUnit: HTTP-level request/response
testing for running portal.
22
Coding Tools: XMLSpy
XSLT is a non-procedural “stylesheet”
language for transforming the structure
of XML documents
XMLSpy supports development and test
execution of XSL Transforms
Allows creation of XML samples and
schema for Java output
Supports validating output of XSL
transform against XHTML DTD
24
Process Tools
CVS – Version control, differencing,
good cross-platform Open Source sol’n.
Tasks – Important for distributed project,
optional for small, local group
Trackers – Critical for tracking bugs,
modification requests, etc.
Wiki – Nice collaborative environment
for discussion/requirements. There are
alternatives (BSCW, Groove, email).
26
Experiences
Java & XSLT worked extremely well as
a web development approach –
separating concerns and skills
Eclipse IDE is an excellent
Java/Ant/JUnit/CVS environment
XP paradigm of continuous build & test
worked very well – builds confidence
SourceForge tools helpful but not
essential – but we were local
27