COPYRIGHT RESERVED 2009 BY MAX TSAI



Visit Max Tsai at Facebook | Twitter | atom

Showing posts with label Web Development. Show all posts
Showing posts with label Web Development. Show all posts

Friday, July 20, 2007

Web developers must have ..

http://dub.washington.edu/projects/denim/

DENIM
An Informal Tool For Early Stage Web Site and UI Design

Don't miss their otheir projects ..
http://dub.washington.edu/projects/

Saturday, July 7, 2007

uPortal Day 01

System Setup:
  • OS X 10.4 Server (G5)
  • Install MySQL 5.0.41
  • MacPort 1.4
    • Apache 2.2
    • EasyEclipse 1.2.2 for Server Java

Wednesday, June 27, 2007

Portlet - uPortal

Deploy Portlet
  1. Deploy .war thru ant
    ant deployPortletApp -DportletApp=%PATH_TO_PORTLET.WAR%
  2. Go into uPortal and create a channel for the the portlet. Follow thru the guide. The only thing is the Portlet definition ID:$NAME_OF_WAR/$PORTLET-NAME
    i.e. Hello.war and HelloWorldPortlet
    Hello.HelloWorldPortlet
    or,
    just create the ChanPub XML file manually and publish it
    ant pubchan
Create a Portlet
  1. create a vaild web.xml
  2. implement javax.portlet.Portlet (or, extends GenericPortlet that is an implementation of javax.portlet.Portlet) -- jar file
  3. craete a portlet.xml
  4. pack three thing into .war filr
Spring Web MVC
get your book -- Spring MVC and Web Flow

------
  • http://www.ja-sig.org/wiki/display/JCON/Spring+Portlet+MVC+Workshop+Denver+2007
  • http://opensource.atlassian.com/confluence/spring/display/JSR168/Home
------

JA-SIG Day4 - OSS IdM

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations
Jim Yang http://docs.safehaus.org/display/HAUS/Home

To be noted:
  • http://directory.apache.org/
  • Sun - JS DSEE/OpenDS; JS AM/OpenSSO
  • http://docs.safehaus.org/display/HAUS/Id+OSS+Map
Virtual Directory
demo: join two indentities from database and directory based on common key
  • Penrose
    http://penrose.safehaus.org/
  • OpenDS
    http://www.opends.org/
  • LDAP Studio (client)
    http://directory.apache.org/studio/
  • MySQL
    come on .. you know what this is, right?
Access (OSS Web-SSO)
  • CAS 3.1
    - no standard Federation
  • OpenSSO
    - https://opensso.dev.java.net/
    - SAML 2.0
  • JOSSO 1.5
    - no standard Federation

JA-SIG Day4 - KUSP (Shib)

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations

Kent University
b.ferguson@kent.ac.uk

Shibbolethized Portal

Background:
  • Move from Athens to Shibboleth to get access to Libary resources
  • Shibboleth implemented:
    • IdP SP InQueue
    • uPortal 2.5.1
    • VLE (LMS)
    • SSO integration
  • FAM (Federated access management)
    • IdP --> SP
    • register once
    • inter-op SAML
    • USA: InCommon (Federation)
Shibboleth Explained
  • Authentication request <---> authtication assertion
  • attribute request <--> attribute assertion
  • WAYF to discover IdP to be used - migrated to SP
  • IdP: User Db and provide auth and user attrib.
  • SP: Shib. module protects web-based applications
  • https://spaces.internet2.edi/display/SHIB/
    http://www.natu.ac.uk.docs/
KUSP
Implementation ..

To be noted:
  1. Guanxi: one IdP and one SP instead od one SP per application
  2. Shib. uPortal
    Oxford University, UK.: http://spie.oucs.ox.ac.uk/
    The aim of the Shibboleth-aware Portals and Information Environments (SPIE) project is to contribute to shared national middleware infrastructure by building on the outcomes of earlier nationally-funded projects relating to the development of access management functionality within the JISC Information Environment (IE) and Institutional IEs.

    http://spie.oucs.ox.ac.uk/Wiki.jsp?page=ShibbolethIntegration

Tuesday, June 26, 2007

JA-SIG Day3 - DLM

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations

Ref: http://www.ja-sig.org/wiki/display/UPM/

Layout Managers:
  1. Simple Layout Manager - SLM (2001)
  2. Distributed Layout Manager - DLM (2002 Sunguard)
    - officially included in 2005
  3. AL (2003)
DLM
  1. XML based configuration
  2. Easy to modify Fragments
  3. A user's layout is updated each time they log in
  4. Version 2.0
    1. Graceful fragment degradation (2.6)
    2. Processor pipeline (2.6)
    3. Subscribe Fragments
    4. Fragment Management channel/DB based configuration
A Conception of DLM Concepts
  1. Layout (view): Tabs (fragments) -- The Tree
  2. Fragments (tabs): Columns -- the main branches
  3. Columns (columns): Contents (channels) -- the branches
  4. Channels (contents): the leaves..
Quick Walk Through
  1. dlm.xml: defines the fragments for who to see (push), fragment attributes, and the owner.

JA-SIG Day3 - Fluid

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations

The Fluid Project is an international community of academic institutions, community source software projects and corporations working together to address the precarious values of usability, accessibility, internationalization, quality assurance and security within academic software projects. http://fluidproject.org/
  • Vision:
    • Advance the status of UI development ..
    • Create a community of UX expertise
    • ...
  • Context
    • Accessibility
    • Usability
    • uPortal, Sakai, Kuali and Moodle
  • Approach
    • Cross-project collab.
    • Take a holistic approach by combining both tech and UX
    • Social: community of UX /Technical: new program
  • Design Deliverables
    • heuristic and usability reviews
    • baseline for usability and accessibility
    • Designer's Toolkit
    • ..
  • go to Build:
    • A Live Library of flexible UI components that can be used across applications
    • ..
Designer's Toolkit
  • Component Library
  • UI Design Patterns
  • UX Walk-through
  • User Persona Library
Technology
  • Unique challenge
  • Based on Javascript, DHTML, and AJAX
  • RESTful
  • Loose coupling
  • translation
Fluid Accessibility
  • Web 2.0 will be accessible
  • ARIA: Accessible Rich Internet Applications
  • AccessForAll for component meta data
  • Ongoing toolkit accessibility support
  • Design specific alternatives
  • Fluid: Accessibility from the ground up
Reasonable Server Faces:
http://www2.caret.cam.ac.uk/rsfwiki/

JA-SIG Day2 - uPortal 3

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations

uPortal 3.0 RC1
  • New Features
  • New Developments:
    • Maven 2
    • Pluto 1.1
    • Hibernate
    • LDAP Auth
    • Group Manager Portlet
    • Permission Manage Portlet
    • Acegi ties for permissions

JA-SIG Day3 - A Large-Scale Implementation of uPortal - MyPearson.com

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations

A Large-Scale Implementation of uPortal - MyPearson.com

Case:
  1. Courses Tab:
    Multiple Learning Management Systems
  2. Online Community Tab:
    DLM and Tabbed Interface + Alfresco (WCMS) + Jive (Communication)

JA-SIG Day3 - News .. Aggregate

Max Watch

Rome Portlet for uPortal 2.5
  • Project Rome API
    http://wiki.java.net/bin/view/Javawsxml/Rome
    ROME is an set of open source Java tools for parsing, generating and publishing RSS and Atom feeds. The core ROME library depends only on the JDOM XML parser and supports parsing, generating and converting all of the popular RSS and Atom formats including RSS 0.90, RSS 0.91 Netscape, RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0, RSS 2.0, Atom 0.3, and Atom 1.0. You can parse to an RSS object model, an Atom object model or an abstract SyndFeed model that can model either family of formats.
http://www.ja-sig.org/wiki/display/JSG/Clearinghouse+Contributions

JA-SIG Day3 - Comparing Web Frameworks

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations

The presenter - Matt Raible
http://raibledesigns.com/
Project sites:
http://rollerweblogger.org/project/
http://xdoclet.sourceforge.net/

Frameworks:
my notes on the things that I care -:)
  1. JSF
    • Don't play well with REST ...
    • Java EE standard; not work well with JSPs
  2. Spring MVC
    • Only one not Apache
    • NO AJAX support
    • IoC

  3. Stripes *take a look ..
    • http://mc4j.org/confluence/display/stripes/Home
    • NO XML
    • Hard-codes URLs in ActionBean
  4. Struts 2
  5. Tapestry
  6. Wicket
    • http://wicket.sourceforge.net/
    • Good for Java developer - not Web developer ?? -- everything is done in Java.
  7. My Faces

Max Watch:
  • Stripes
    http://mc4j.org/confluence/display/stripes/Home
  • FreeMarker
    http://freemarker.sourceforge.net/index.html
  • JSON
    http://json.org/
  • Post & Redirect (page refresh; submit twice) -- 'flash' support
  • SiteMesh
    http://www.opensymphony.com/sitemesh/

Monday, June 25, 2007

JA-SIG Day2 - Multiple Personality Disorder .. ^_^

  1. OpenEAI
    http://www.openeai.org/live/
    OpenEAI sample enterprise
  2. SOA Concept of Identity Service

JA-SIG Day2 - CAS 3.1 .. what's new?

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations
presented by Scott Battaglia, Rutgers University




CAS 3.1 -- Current Release 3.1 RC2

  • CAS 3 continues to support CAS 1 and CAS2 protocol
  • Functional Improvements:
    1. Only way to get proxied authentication
    2. SAML1.1 -- 2.0, see Google Applications
      1. OASIS stanbdard
      2. XML based
      3. Communicates: Authentication/ Entitlement/ Attribute
    3. OpenID
      I got my free one from https://pip.verisignlabs.com/account/welcome
      1. Decentralized framework for user-center digital identify
      2. User name is URI
      3. Support "dumb" mode
      4. Allows CAS clients -> OpenID clients
    4. Single Sign Out
      1. Global CAS session / Individual Applciation sessions
      2. CAS 1/2/3 Logout ends global session
      3. CAS 3.1 "suggests" that a;; sessions end
    5. Google Accounts Integration
      1. Minimal SAML 2
      2. Key sharing b/e Google Accounts
      3. Allow Google Accounts to participate in existing SSO solution
    6. Services Management
      1. Optional Feature
      2. Control what services access CAS
      3. Control what features they have access to, i.e. proxy ..
      4. Customize Skin - Theme
      5. Selective attribute(s) to be sent back --> SAML2
    7. Attributes
      1. AttributeRepository defines "interesting" attributes
      2. Services Management dictates who sees what
      3. CAS sends those attributes to services
      4. Chaining Attributes - securitycontext
    8. Pseudo anonymous Support --> Shibboleth

      ref. Authentication and Authorization
      * http://webjunction.org/do/DisplayContent?id=10858


      1. send a persistent random identifier
      2. only identifies user with respect to service
    9. Authentication Support
      1. Add support for: NTLM/SPNEGO/RADIUS
      2. On top of: LDAP; DATABASE; X.509; JASS; FILE ...
  • Performance improvements
  • Building & Implementation
    1. Maven 2 - POM
    2. Ticket Registry
      1. BerkeleyDBTicketRegistry - Long Term
      2. JBossCacheTicketRegistry - Distributed
        -> multicast
      3. DefaultTicketRegistru - Simple, in-memory, single-instance CAS
    3. Java 5 requried
    4. Content Switch / Load Balancer is still recommended




SAML2
http://www.xml.com/pub/a/2005/01/12/saml2.html

What Is SAML? SAML defines an XML-based framework for communicating security and identity (e.g., authentication, entitlements, and attribute) information between computing entities. SAML promotes interoperability between disparate security systems, providing the framework for secure e-business transactions across company boundaries. By abstracting away from the particulars of different security infrastructures (e.g., PKI, Kerberos, LDAP, etc), SAML makes possible the dynamic integration necessary in today's constantly changing business environments.

What Isn't SAML? SAML does not standardize all aspects of identity management. SAML addresses one key aspect of identity management, namely that of how identity information can be communicated from one domain to another. A full identity management solution will also define mechanisms for, amongst other aspects, provisioning (the establishment and subsequent management of accounts and associated privileges), authentication (how an entity proves their right to lay claim to a particular identity), or access control (how the rules for specifying what individual identities are allowed to do are captured). SAML has been designed to be compatible with existing and emerging standards that address these other aspects

JA-SIG Day2: uPortal Channels

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations

Definitions:
  1. uPortal: Framework for content and applciation aggregation
  2. Channel: Framework fo rapplcations running in uPortal
  3. Portlet: JSR168
  4. WSRP: Web Services for Remote Portlets
Current available Channel Types at uPortal 2.6 RC2


My special interests:
  • Portlet
    Adapter for JSR-168
  • Web Proxy
    Incorporates a dynamic HTML or XML application
  • WSRP Consumer
    WSRP consumer implementation
  • XML XSLT
    Transforms an XML document into a fragment of markup language using a single XSLT.
Portlet and Web Proxy will be presented tomorrow.

PRADO - A PHP Framework does AJAX (and much more)

I am having hard time finding a framework for my PHP projects. Someone mentioned Prado at the conference; so, I took a look and it is actually pretty neat. I probably change my mind of moving to Rails from PHP now -- sorry, I am still sticking to Java/J2EE.

Prado (http://pradosoft.com/) is actually Open Source PHP Framework:
PRADOTM is a component-based and event-driven programming framework for developing Web applications in PHP 5.
Here is my day one of Prado:
  1. Download the prado-3.1.0RC.r1951.zip - it is not stable, but with most of new features. My project is new anyway - who cares..
  2. Going thru the demo:
    http://pradosoft.com/demos/blog-tutorial/?page=Day1.Setup
    I do not plan to go thru them all, but some, I think!
  3. Okay: php prado-cli.php -c . works; so, I assume my site is Prado enabled now.

    FYI: I am on OS X 10.4 Mac Book. Apache2.2+PHP5+Mysql MacPorts. I do not like the ones coming from Apple.
  4. to be continued ..

JA-SIG Day2: Using Spring Security and CAS

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations


Spring Security

  1. Authentication Features: LDAP, DAO, JAAS, Run-As replacement, .. write your own
  2. Technical Details:
    1. USe Spring IoC
    2. Interface Driven
    3. Cohesion high, loosely coupled
    4. Encourage customization and extension
    5. Java 1.3+
  3. Servlet container > Filter To Bean Proxy (Chain)> Filter X > Servlet
  4. HtpSessionContext; Logout; Authentication Mechanism -- LDAP and so on; Exception; FilterSecurity Interceptor
  5. http://www.acegisecurity.org/petclinic-tutorial.html
CAS -- see yesterday's

JA-SIG Day2: Developing with JSR 170

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations

Presentation PDF:
http://www.ja-sig.org/wiki/download/attachments/19378/JSR170Presentation.pdf?version=1

More info:
http://www.jcp.org/en/jsr/detail?id=170

JSR is a 'STANDARD' Content Repository API for JAVA

Other Standards:
  1. ODMA/DMA
    Both dissolved prior to 2000
  2. WebDAV
    1. Managed by AIIM
    2. is a standard for a protocol; NOT API!
  3. iECM
    1. managed by AIIM
Repositories with JCR179 Connectors
  1. Jackrabbit
  2. CRX
  3. Alfresco - Level 1, Level 2 with support for transaction
  4. eXo
  5. Jeceira
  6. ECM Documentum
  7. BEA WebLogic Platfotm
  8. Magnolia
  9. jLibrary
  10. JCRBrowser
JSR17o in details
Repository -> Workspaces -> tree of Items
A Item: a node (encapsulate the content structure) or a property (only be a leaf)
  1. Level1 - Read Only
  2. Level2 - Includes level 1 and adds ability to mutate (modify - add)
  3. Optional features:
    1. Transactions
    2. Versioning
    3. Observation
    4. Locking
    5. SQL Search
  4. Simple Authenticartion
Some code demos ..

Know your content and design the Tree structure carefully.

Case study: Alfresco
= Excellent, full featured open source ent. le
= Some level of JSR 170 support exists
Issues
= Model2 deployment not supported due to serious JCR-RMI issues
= Many key optionals not implemented
= JCR query support not prod ready

Recommendations:
  • Knowing your content
  • Know how your selected CR threats your kinds of content
  • First time designing tree structure for JCR?
    • Allow time to make mistakes
    • Prototype it to find mistakes
  • Prefer deeper tree structure over wide tree structures

JSR283 - Content Repository API for JAVA version 2.

JA-SIG Day2: Identity Keynote

The presentation can be found at www.windley.com

Something gets my attention:
  1. xri:// ?? check it out
  2. howmanyofyou.com
  3. transfer of identifiers:
    It is okay to use passport for validating checks to Starbuks, but you won't be able to use Starbucks coffee card to pass JFK airport.
  4. Dan Geer
  5. Pseudonyms - 2nd life!
  6. Kim Camerron's Identity Blog
  7. OpenID

Sunday, June 24, 2007

JA-SIG Day1 - CAS

This is my notes. The official presentation slides will be at:
http://www.ja-sig.org/wiki/display/JCON/Denver+2007+presentations


CAS from Download to Deployment

  1. Current Version CAS 3.1 RC2
    ** more information on CAS
  2. Requirements for CAS3 (Build):
    1. Java 1.5
    2. Maven2
      I am having trouble of building it. The source tree is missing
      cas-server-support-spnego module..
  3. Existing Handles:
    Configuring:
    cas-server-webapp/src/main/webapps/WEB-INF/DeployerConfigContext.xml

    ==> authenticationManager
    -> credentialsToPrincipalResolvers
    -> authenticationHandlers
    .. beans.. <-- add bean here for in-house implementation [Built In]
    1. LDAP
    2. Database
    3. SPNEGO/NTLM
    4. RADIUS
    5. FILE
    6. JAAS
  4. Fail Over & Clustering
    1. Fail Over - mostly used
      1. No Built-In
      2. Content Switch mostly used
      3. cas-spare
    2. Clustering
      Things to be clustered: user sessions / ticket registry
      • User Sessions
        1. Spring Web Flow stores information in session
        2. Login needs access to that information
        3. Two Options:
          1. Cluster Tomcat sessions (Terracotta)
          2. Use sticky sessions on content switch/load balancer
      • TicketRegistry
        1. Default in memory
        2. Two options:
          1. clustered-registry
          2. load distribution
        3. Clustered
          1. JBossTicketCache
          2. Terracotta
  5. Service Management - very neat!
    1. Restrictions:
      1. which services use cas
      2. what feature the services can use
      3. what attributes (if useds) can be send bacl to the user
    2. Custom themes (Spring Theme Resolver)
    3. Pseudo-anonymous access
  6. Database backend is supported: Oracle / Mysql / SQL..
  7. Attribute Support - SMAL 1.1 (customizable)
    - Tied to services Management
    - AttributeRepository Abstraction
Future Directions:
  1. Additional Protocol Support
  2. Internationalization
  3. Configuration/Setup Screens
  4. Advanced Monitoring
  5. Integration with Account Management System




CAS Backgrounds - I skipped a lot since it is not too new to me and most of information can be found online. Just summary:
  1. CAS 3.0 - support CAS1 and CAS2 + pluggable architecture + more Authentication Handlers: LDAP, ...
    CAS 3.1 - with attribute support.
    single sign out, etc
  2. CAS 3.1
    1. NEW PROTOCOLS
    2. SERVICE MANAGEMENTS
      - supports OpenID (http://openid.net/)
    3. ATTRIBUTES
    4. GOOGLE ACCOUNTS INTEGRATION
    5. SINGLE LOG OUT
      - support server side cookies only
    6. PSEUDO-ANONYMOUS SUPPORT
      - compatible with Shib.
  3. CAS
    (see the website http://www.ja-sig.org/products/cas/overview/protocol/index.html) |
    the Servers
    - fun: http://code.google.com/p/rubycas-server/
    and Clients
    - watch: Acegi
    - watch: prado (php)
    - bluesocket is CASified..
  4. Services
    1. note. Gateway: return no ticket - Yale portal guest account.
      https://server/cas/login?service=http%3A%2F%2Fwww.service.com&gateway=true
      or (force user/passwd)
      https://server/cas/login?service=http%3A%2F%2Fwww.service.com&renew=true
    2. Proxy Authentication N-tire
  5. Topics
    1. uPortal Authentication
      - pluggable security context - iSecurityContext
      - Chaining vs. Union
    2. N-tier authentication
      Portal --> Channels for remote resources.
      using CAS to resolve this!
    3. Yales's model - CAS
      other models: Liberty, Pubcookie, MACE WebISO, COSIN, Passport, ..
  6. Proxy ==> http://www.ja-sig.org/wiki/display/CAS/Proxy+CAS+Walkthrough

JA-SIG Day1 - uPortal for Implementators

Version: uPortal 2.6 (uPortal_rel-2-6-0-RC2 that includes the HSQL already)
  1. edit build.properties --> server.home ==> /opt/uportal (my path)
  2. under the source tree:
    ant hsql
    => rdbm.properties
  3. under the source tree root:
    ant initportal
    The uPortal should be deployed already. I had to restart tomcat
  4. Users (User Name + Attributes) and Groups and Layout
    1. User name and password for auth.
    2. Groups
    3. Layouts (what you allow to see)
    4. Permissions (what you allow to do for what you allow to see)
    5. Security => security.properties