68772e5839fb6065899ac1edebf44655.ppt
- Количество слайдов: 27
Developing the NSDL User Portal Dean Krafft, Cornell University dean@cs. cornell. edu
Developing a User Portal: An NSDL Case Study § § § Quick Overview of Public Source. Forge The NSDL Communications Portal u. Portal 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 Source. Forge § 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 Source. Forge: 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 § u. Portal (http: //mis 105. 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, u. Portal – 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 § e. Xtreme 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 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 § Source. Forge tools helpful but not essential – but we were local 27