Monday May 05, 2008

notes from community one

Community One:

Got up early in San Francisco, stopped one of the many Starbucks on the way to Mosconne Center and registered for CommunityOne and JavaOne. Here's my notes from a full day of sessions that I attended.

General Session:

  • Open source is at the core of Sun's business
  • Sun is about open standards, formats, and systems
  • Innovation happens everywhere, not in one place
  • The number of communities has tripled since last year
  • Things are increasingly interconnected.
  • What is community ... it's about people, people are passionate about things they do.
  • Move from monolithic to modular (hardware / software) ... solutions assembled from commodity components.
  • Customers demand choice, reduce lock-in to a vendor ... increases competition.
  • Market place still wants solutions (not pieces) based on these compenents.
  • Simplify the community and technology adoption.
  • panel discussion
  • opensolars release ... source code open a couple of years ago. How to involve the community. All activity is done in the open. How do people now consume the innovation. First fully supported release of opensolaris, a distribution ... new logo.
  • Various Solaris demos: install, zfs, D-Light

NetBeans Day

  • Demos being done on OpenSolaris, very cool
  • Release v6.1
  • JasperSoft, iReport ... opensource business analysis tools front-end to jasper reports, netbeans plugin, #1 download demo of the tool
  • early access to PHP plugin
  • GSF ... language editing infrastructure
  • NB 6.5 adding PHP and Groovy, also ading other languages.
  • PHP/GSF demo, today small plugin for PHP
  • NetBeans ALM Integration, Intland software bring collabrative features to the developer

jMaki: The Power of Ajax Made Easy

  • jMaki Framework:
  • Demo, NetBeans 6.1, GlassFish v3 ... built an app with two maps and geocoder
  • Miso/jMaki Demo: search and indexing services exposes RESTful web services. The demo shows ways to search mail files looking for documents, images, etc.
  • Demo: Travelmuse Inc.

The NetBeans 6.1 IDE, Faster Than Ever

  • Flower shop demo using RESTful web servces
  • RESTful leverages EJB interfaces
  • use strikeiron webservice
  • Jonathan Schwartz: comments about NetBeans community. Sun listened and responded.
  • soapUI testing tool ... integrated into NetBeans 6.1 focus is to make testing fast and fun. create a new testing project. realy nice integration! Pluggin creates a test suite. load test generation with this functional tests.
  • Spring ramework support, selectable as an option to new Web Project
  • Hibernate suport, bundle 3.2.5
  • Axis2 Web Services stack, create fro pojo or wsdl
  • JSF CRUD editor/generator

NetBeans, developing Ajax applications

  • Javascript editor, variable highlighting, code completion, knows about browser supported features
  • Javascript debugger ( technology review ) on top of NB 6.1 debugs with firefox browser / firebug
  • jMaki demonstration, charting library.
  • Woostock ... component / widget library components on the NB Visual web pack, built-in ajax support
  • External AJAX Libraries
  • RichFacesL AJAX Extensions to JSF, open source from RH
  • Wicket: AJAX Library for Java Developers

Asynchronous AJAX for Revolutiontary Web Applications

  • ICEfaces / Glassfish
  • Push AJAX / Comet
  • Web2.0 ... out of information age ... to the participation age. Users are creating the applications (ebay; users submit actions). treat the user as an http client.
  • AJAX is a state of mind ... want the server to send a message into the browser, not initiated by the user
  • Called "Ajax push", "Comet", or "Reverse Ajax" full async to the web. (jMail, yahoo mail)
  • responsive low-latency interaction for the web, event driven browser applications
  • no polling overhead
  • NIO non-blocking threads.
  • traditional servers are blocking
  • Servlet 3.0, spec to support true async

Thursday May 01, 2008

Late Night with Project OpenPTK

Tuesday night the OpenPTK team had a meeting @9:30 PM Central that went past midnight. Derrick, Terry and I talked about what was going to be in release 1.1, the plans for 1.2 and 2.0 of the project. We got a lot of new features added to release 1.1 and the plans for the future look good. We're getting more help from the community, which is great. We've posted the minutes of the meeting (thanks Terry) on under the meeting minutes forum.

Thursday Mar 20, 2008

An Overview of Project OpenPTK


OpenPTK is an open source project that provides a collection of tools and sample applications that Web and Java developers can use to integrate custom applications with user provisioning systems. Using industry standard interfaces, developers can build flexible user management applications that support Enterprise-class, department/group level and Web 2.0 type user provisioning environments.


Most intranet and Internet applications require user authentication. Applications either have an intergrated data store (e.g. RDBMS) or leverage an network service (e.g. LDAP) for validating users. Managing the "life cycle" of user data has become challenging. There are different user provisioning strategies:

  • An enterprise typically implements a provisioning solution such as Sun's Identity Manager to manage user data across multiple applications and services.
  • Departments (or group level) many only have a single application that has a dedicated user data store. The volume of user management activities is usually small.
  • Web 2.0, Internet facing, applications typically leverage a scaleable / available network service for storing user information.


Organizations need to implement a set of basic user management capabilities. For End Users, a solution needs to provide; "Forgotten Password" and "Self Service" functionality. For User Administration, a solution needs to provide fundemental Create, Read, Update, Delete and Password operations. Provisioning solutions and user data stores most likely provide these basic user management capabilities through their native interfaces. The problem is that these native interfaces may not meet the organization's requirements. Organizations have expressed the need to intergrate user management systems with different custom "End User" experiences/interfaces. Commonly requested interfaces include:

Remote Web Interface: Organizations need a Web interface, for user provisioning, that can be deployed remotely from the system that host the provisioning solution.
Command Line Interface: Administrators need an interface that allows them to perform provisioning from a comamnd-line interface, either interactively or from a shell script.
Portal / Portlet Interface: Enterprise and Departmental organizations may have to provide user provisioning interfaces into an existing Portal infrastructure.
WSDL-based Web Service: Developers need to integrate user provisioning into a SOA environment and are requiring Web Services that can be used by SOA development tools.

Because of these requirements for custom end-user experiences, organizations will build applications that leverage different types of development environments. The "End User" application (experience) may need to support a rich-native desktop interface, a browser-based interface, a Web Service or a command-line interface. Developers will design solutions that integrate an orgaization's interface experience with the various user data stores. Developers will most likely have to learn the details related to interacting with the various user data stores. Web developers may not be prepared to deal with Java APIs that are need to access the data store(s).


Project OpenPTK is a three-tier architecture which enables developers to focus on the business application interface, not on the underlying user data store. There's a number of "Consumer Tier" interfaces which address various development options. The "back-end" user data store is abstracted through the "Service Tier". The "Framework Tier" integrates the Consumer and Service tiers while also managing configurations, logging/debugging and provisioning operations.

Project OpenPTK Architecture

Consumer Tier interfaces/examples:

User Management Lite (UML): A JSPs/Taglib-based web application which provides basic user administration, and self-service functions.
Command Line Interface (CLI): Provides basic provisioning operations. The CLI can be part of custom scripts that administrators can use to automate provisioning tasks.
JSR-168 Portlets: Provides "Forgotten Password", "Self Service" and "User Administration" capabilities. These portlets can be integrated into a customers existing JSR-168 compliant Portal server.
WSDL-based Web Service: Provides User provisioning operations. Web Service clients (e.g. Java CAPS and soapUI) can reference the WSDL from this service and create custom integration solutions.

Service Tier implementations:

SPML: The Service Provisioning Markup Language is the external interface used by Sun's Identity Manager user provisioning solution.
SPE: Sun's Identity Manager, user provisioning solution, contains a Service Provider Edition interface for user provisioning.
JNDI: The Java Naming and Directory Interface API is used to access LDAP-based (e.g. OpenDS) user data stores.
JDBC: The Java Database Connectivity API is used to access Relational Database user data stores (e.q. MySQL).

Developers can use Project OpenPTK's interfaces and APIs to handle user provisioning operations without having to worry about the back-end user data stores. User provisioning applications that leverage Project OpenPTK can easily support multiple different user data stores through the use of its flexible configuration mechanism.

Project OpenPTK is a formal open source project hosted on and is part of the Identity Management community. Project OpenPTK founders: Scott Fehrman, Derrick Harcey and Terry Sigle are Pre-Sales Systems Engineers supporting Sun's Identity Management products.

The Project OpenPTK site contains source code (via svn), documentation, distributions and tracks issues. Anyone is welcome to join the community as an Observer and please subscribe to the "user" and "announce" mailing lists.

Wednesday Jan 09, 2008

First Project OpenPTK meeting for 2008

The Project OpenPTK team had their first meeting of the year. We posted the notes on as a new Forum called Meeting Minutes. We talked about ope issues and new ideas. Here's a summary of ideas for new features:

  • JDBC Service
  • RESTful Web Service
  • Authentication
  • Solaris Naming Service

Saturday Dec 01, 2007

NetBeans guide for Project OpenPTK

Yesterday I released the Project OpenPTK NetBeans Guide to the documentation page. This guide will help you set-up a collection of NetBeans Projects using Project OpenPTK's source files.

Friday May 20, 2005

Updating my Open Source project

I updated my Print Directory (pd) project page today.  I added a contribution section to the webpage which includes value-added utilities, updates, and pre-packaged distributions.   If you have a chance, take a look at my open source project, I'd like to know what you think.  There are links to Print Directory under the "Project" section of the "Links" on my (this) blog page.

Creating this project under has been a great experience.  I started writing the "pd" utility before I came to Sun, Jan 1991.   I started writing it while I was working for Prime Computer (Computervision).  The Prime system's used an operation system called PRIMOS, it had a directory listing utility called LD.  My first exposure to UNIX was with SunOS 3.x on systems manufactured by Computervision (they had an OEM license to make Sun systems, I think the only one).  Using any new OS is challenging, you might know what you want to do but you don't know how to get there.  One big thing that frustrated me was UNIX's ls command.  I was use to PRIMOS's LD command.  It would (by default) display the full pathname of the directory being listed, tell you the number of FILES, show the FILES, tell you the number of SUB-DIRECTORIES and then show the SUB-DIRECTORIES.  It was visually very easy to tell which entries, in the current directory, where files (you could edit, view or execute) versus the sub-directories (which you could list).  I can't begin to tell you how many times I tried to "more" or "cat" a sub-directory or tried to "cd" to a regular file.  I suffered with this problem for a little while until I got use to adding the various options to "ls", which would somehow flag the non-regular files, making it easier (just a little) to "pick-out" the sub-directories.  This helped but I still wasn't happy ... I missed PRIMOS's LD command.

I decided to solve this problem myself with the help of a compiler.  After figuring out which system calls and library functions gave me what  I needed, I had my PRIMOS LD for UNIX.  One problem ... I couldn't use "ld", UNIX already had that two-letter command taken.  Some other trivial utility called the link-editor was named "ld".  The PRIMOS "LD" command became the UNIX "pd" command:

# pd

/   54 Entries.

13 Files.

.ICEauthority       .TTauthority        .Xauthority         .bash_history
.bashrc             .dtprofile          .esd_auth           .fonts.cache-1
.gtkrc-1.2-gnome2   .mysql_history      .profile            .recently-used

41 Directories.

.Trash              .dt                 .gconf              .gconfd
.gnome              .gnome2             .gnome2_private     .gstreamer-0.8
.idmgr              .java               .mcc                .metacity
.mozilla            .nautilus           .sunw               .vnc
Desktop             Documents           TT_DB               bin
boot                cdrom               dev                 devices
etc                 export              home                kernel
lib                 lost+found          mnt                 net
opt                 platform            proc                sbin
system              tmp                 usr                 var

There's a lot more options and features in "pd", please download the package or look at the manpage which has more output examples.

I wish I had contributed this utility to the community a long time ago.  The feedback has been great.  I got input from co-workers on how to improve the build / distribution process (I had to learn more about autoconf and automake).  The community keeps me updated on which platforms they're running the utility on.  I recently got contributions and references from people that are posting pre-compiled distributions.

I encourage everyone to consider either starting a open source project or at least contributing to one.  You'll get a good felling when you contribute and it's always a great learning experience.

Scott Fehrman


« July 2016

No bookmarks in folder


No bookmarks in folder

Ref. Material

No bookmarks in folder