Wednesday, March 02, 2005

Web Services Watch

A quick post -

Web services are great right?  Interfaces expressed in WSDL and any implementation can sit behind it, right?  In theory – but most, if not all, implementations of web services are done in Java.  Dims puts out the call to action in a blog post here, offering up a solution of PHP/Perl/Python language bindings to the Axis-C++ project.

Monday, February 28, 2005

The Heat is On...

Check out Graffito… they support WebDAV and are thinking of incorporating Jackrabbit for JSR-170.

Saturday, February 26, 2005

In-house news 2

I noticed that some of my URL’s were not correct.  I’ve fixed the template for the blog and republished it with the correct urls.  Please check your bookmarks: this site and all its url’s (feed url, archive urls etc.) should begin with http://esmblog.mse.jhu.edu.

In-house news

Not much blogging recently due to professional (day job and night job) and personal commitments. 

In Web Services News

Note that Axis2 Milestone 1 (M1) has been released at http://ws.apache.org/axis2

In Content Repository News

A JAAS implementation has been commited for Apache Jackrabbit, which should provide a flexible, abstracted security api for connecting to JSR-170 repositories.

MSE Scrapple has a discussion and pointers to a discussion on Topic Maps, which I find intriguing.  I plan on researching the topic more.

In-house News

Currently the majority of my time is being spent right now with implementing a reference implementation of uPortal at JHU, focusing on WSRP exposed JSR-168 portlets.  The JHU uPortal team has achieved modest but signifigant progress as we march towards a demo in the next couple of weeks (mid-March timeframe).  Portlets are being developed by different members of the team.  The Library is focusing on providing a Hermes public interface portlet. 

The night job is focusing on implementing a content repository API, upon which different widgets and applications can be built.

Thursday, February 17, 2005

Magnolia, a JSR170 based J2EE CMS

For kicks check out Magnolia (version 2.0 is the most recent).  It is an open source CMS whose content repository is based on JSR 170.  It seems to be very full featured; a lot of the technical details can be viewed on the Magnolia Wiki.

It relies on the Apache Jackrabbit implementation of JSR 170.

JSR 170 (API for content repositories) Proposed Final Draft

TSS has an article on the newly finalized draft of JSR 170. 

From the JSR 170 JCP page:

The API should be a standard, implementation independent, way to access content bi-directionally on a granular level within a content repository. A Content Repository is a high-level information management system that is a superset of traditional data repositories. A content repository implements "content services" such as: author based versioning, full textual searching, fine grained access control, content categorization and content event monitoring. It is these "content services" that differentiate a Content Repository from a Data Repository.

Many of today's (web)applications are interacting with a content repository in various ways.

This API proposes that content repositories have a dedicated, standard way of interaction with applications that deal with content. This API will focus on transactional read/write access, binary content (stream operations), textual content, full-text searching, filtering, observation, versioning, handling of hard and soft structured content.

I’m excited about this… an api that is pretty fully featured but seems to be lightweight.  We’ll see how the reference implementation works and if we can use it to manage content in various repositories.

Friday, January 28, 2005

More Google Spawn

Organizes pictures!

More accuratly, another Google stepchild (since they bought the company). Requires IE 5.0+. Uhg.

You heard it here first! See scrapple too.

Search Interfaces, Google & Sherlock

Some discussion at scrapple on Google’s growing number of search boxes, and contrast that to Apple’s Sherlock which I think most Apple users are familiar with and enjoy at least as much as Google (all hearsay on my part I suppose).

Sherlock can present multiple search interfaces, and those interfaces can search drastically different things: airline tickets, restaurants, medline search (?), present different types of result sets and different window elements to sort and get at the data they want. 

Does the Sherlock approach juxtapose the Google approach, or do I not understand completely what Google's approach is?  And in fact are Google's and Sherlock's approach similar: clean, simple, easy to use, similar interfaces.

Thursday, January 27, 2005

Guess.

Hello, my name is Werner Brandis.  My voice is my passport, verify me?

Jboss 4.0.1 & Axis 1.2RC2 Interop

According to this there are some interop problems with the Jboss branch of the Axis fork. Based on my previous post and list discussion there seems to be little to no cooperation on this issue. More links to come later.

Jira / Sakai Update

The integration of the Sakai Help Form (in jira here) and Jira is basically complete.  Posting an issue to the form will create an issue in the SAKAISUPPORT project in Jira.  The implementation isn’t without its warts, which will hopefully be resolved with a much improved RPC interface from Atlassian in version 3.1 of Jira and some additional coding by me.  What is live now for Sakai is tagged as BETA_1 here in Subversion

Originally the integration was done using the XMLHttpRequest object, a la GMail, but that proved to be too time consuming with all the different browser inconsistencies.  That would have theoretically been prettier since the client could post rich XML directly to the Jira service.  And people familiar with HTML could easily incorporate it into their pages without much help.  In the end a custom (hey, did I mention warts?) servlet was created for the integration.

In order to publish the work to the community, and so the project doesn’t collapse under its own weight, the structure of the project is being re-tooled (including a much improved Ant build file) before further development takes place. 

New RSS Reader and Blog Publisher

So I switched to using the BlogJet blog publisher.  It works only under windows though, but it functions with many different blog providers.  Unfortunatly it is not immediatly compatible with the current TikiWiki.  So BlogJet allows me to publish right from the desktop w/o the browser.

Also, I downloaded RSSOwl, a very slick RSS/ATOM reader.  It is project of the month on sourceforge.  It imports and exports opml, so my sage rss reader exported my feed subscriptions and RSSOwl imported them gracefully.  It is available on multiple platforms (it is written in java).

ArcIMS update

 ArcIMS has been upgraded to version 9.0 on our test linux server. It can be reached at http://gis.library.jhu.edu (although since it is in testing it may or may not be up at the time). See the ArcIMS materials at SoftwareInstallationDocumentation for installation notes. Training materials authored by Keith Kaneda will soon be posted there as well.

Updates from ALA regarding Dynix ERM dev

 ...reposted from Dawn's report from ALA...

Here's what I learned at ALA re the Dynix ERM, 8.0, HIP 4.0. Appreciate if others learned more at ALA, that they too comment on this to the group. Dawn

  • Dynix has divided ERM development into the following categories:
              - data repository
              - approval process
              - resource discovery  (A-Z list)
              - interface with link resolvers
              - interface with HIP

  • in December ERMscreen prototypes were completed; engineering is developing code based on these; Ed Riding is working on use case scenarios (will get input from JHU & Chicago)

  • during Feb - April period, Ed Riding will coordinate biweekly WebEx? meetings with Chicago & JHU on specific aspects of the development. Topics will be shared in advance so that the appropriate staff can be involved in these meetings. WebEx? tentatively scheduled from Thursdays at 2 pm (Pam Arnold will confirm in the next few days).

  • end of April/beginning of May - JHU will start looking at data and beta testing ERM using 8.0 software (not decided yet whether Dynix or JHU will initially host test)

  • ERM will include MARC Holdings Format support, JWP standards (to import/export data), incident reporting/tracking, and interface with Horizon 8.0 acquisitions and serials records. Usage data/interface with vendor stats will be in next release.

  • 8.0 general features - use Lucene search engine (same as HIP), LDAP support, Shibboleth, open APIs, Sybase/Oracle/Linux RedHad? supported, new Acquiisitions/serials/cataloging/circ/ERM modules. Window Terminal Services should improve Horizon client. Beta test begins 2nd quarter 2005. General release by end of calendar '05.

  • HIP 4.0 general features - increased patron empowerment (SDI), enhanced Lucene search engine (same as 8.0), portal support with channels, automated theaurus, cable free server blades,. Interfaces with URSA 4.0, 7.4 release and higher, Dynix federated search, link resolver, and digital library products, WebReporter?, uses standard APIs to make it open/extensible/interoperable. Dynix will ship end of January '05.

  • training - Dynix is offering free Web based training for various products (see website for list of courses)

  • Horizon 8.0 interface with HopkinsOne? SAP development - Pam Arnold (or Data Services) will provide us with list of libraries already interfacing with SAP.

Jira Customizations in Subversion

 Updates to Jira are now in Subversion. Unfortunately they sit in two different places. At some point in the future I will consolidate them. Some of the customisations will appear on the Jira developers site at some point in the future.

The RPC integration/customisation work is found at:
http://bajor.mse.jhu.edu/repos/public/trunk/jira-customizations/rpcintegration

The directory structure is wacky but the meat is under java/soap-src.

This work was originally developed against Atlassian's Jira RPC plugin v 1.2.0. Most recently we've upgraded to plugin v 1.2.2 with no difficulties. The work in rpcintegration is made up of three things:
  1. Apache Axis stub RPC libraries to communicate with the Jira RPC plugin. They are found in edu.jhu.library.atlassian.interfaces.
  2. A Java-based reference implementation in edu.jhu.library.atlassian.datatypes.
  3. A document/literal Axis webservice which creates an Issue in Jira from an XML message. This utilises the reference implementation. The WSDL is here: http://bajor.mse.jhu.edu/repos/public/trunk/jira-customizations/rpcintegration/java/IssueCreatorImpl/IssueCreatorImpl.wsdl

Soon to come will be a Component retrieval service, where an XML message can be used to retrieve a list of components for a particular project.

Issue creation will be automated using HTML forms and the XMLHttpRequest object. Javascript will be used to map form fields to the Issue XML elements. Other methods of Issue creation (servlet based or PHP Formhandler) could follow.

Other Jira customizations are at http://bajor.mse.jhu.edu/repos/public/trunk/atlassian. These customizations include SSL IMAP support, additions to the build.xml, and edits to the Velocity templates (which prevent the presentation of password recovery links and sign-up links). You can svn diff http://bajor.mse.jhu.edu/repos/public/vendor/atlassian/jira/v3/atlassian-jira-enterprise-3.0.3 to http://bajor.mse.jhu.edu/repos/public/trunk/atlassian to see all of the changes made.

View from the trenches...

 The Microsoft perspective on web services from the head of Indigo (Web Services @ MS), Omri Gazzitt. The sound is a little low but it is a good overview of different WS-* specs and Microsoft's approach.

Lucene article

 A very good article from TheServerSide.com which discusses their implementation of the Lucene search engine, design decisions, and why they didn't use Google.

JBoss / Axis WS fork

 According to this and this Jboss will be implementing their own WS stack in Jboss.

Axis 1.1 was used and refactored by Jboss to pass Sun's Technology Compatibility Kit (certifying their compliance to the JAX* standards) and now it looks like Axis *may* reap the benefit. It is too early to tell since a. the changes may be drastic in the Jboss Axis 1.1 fork and b. the axis team is pushing hard to finish TCK compliance for a Axis 1.2 release.

"Podcasting"... subscriber based rich content distribution

 So "Podcasting" was a term that was new to me. Essentially users of portable devices like iPods (the entomology of the Podcasting term I suppose) can subscribe to rich media content feeds, mostly audio, and download the content to their portable music player.

I would presume with the iPod that supports photos users will be able to 'podcast' images and eventually movies.

Obvious application in the academic environment to disseminate information. Ereserves, data sets, what have you.

Some links:
  • Podcasting.net - a large directory of published podcasts. Also I suppose would be an example of a 'folksonomy' in action (users can add keywords to their podcasts and then they are parsed and become tags). Users can subscribe to a tag feed. Subscribers receive updates of newly tagged content.

  • Wikipedia - lots of historical/background info. Tons 'o links.

It's a small world after all: Friend-of-a-Friend

 Syndicate information about yourself using RDF and Friend-of-a-Friend markup. See the FOAP wiki. You can tell *machines* here is where my picture is, here is where I work, here is where my blog is hosted; and much more.

See here for some FOAF ideas, along with a FOAF Firefox extension. There is an idea to use FOAF to represent class schedules etc.

IBM Devworks article

Also, see Redland, an RDF application framework with many different databindings - Java, Perl, Python, C etc etc.

The Server Side Tapestry Implementation

 The Server Side is a great site for Java and enterprise web development, news, trends, interviews, and how-tos. Get its RSS.


The Server Side (TSS, http://www.theserverside.com) continues its discussion of the sites' backend overhaul. See my prior post linking to TSS's Lucene implementation writeup.

TSS ran on a home grown MVC Java framework that they had outgrown. They made the decision to switch to Tapestry (from the Apache Jakarta project) for web tier presentation and Java Data Objects (JDO) for their backend access.

Some interesting (I thought) observations:
  • they chose JDO over Hibernate to some dismay of readers allegedly for political reasons, but hear from the architect of the project, Howard Lewis Ship (who also the lead for Tapestry and HiveMind)
  • they chose Tapestry over JSF/JSP: the thread, and here.

Makes one think twice about jumping onto JSF/JSP 2.0 without also looking at Tapestry.

Additional Links:

two tapestry tutorials
JDO 2.0 Draft JSR 243
JDO Central
JDO @ Sun
JDO @ Apache
Hibernate

Update


Apparently tapestry hasn't solved all of their linking problems, specifically link generation since the deep links into the message threads (which are not user friendly to begin with) isn't working. Try just viewing the threads Howard Lewis Ship (lead on Tapestry) has participated in.