Skip to main content

SailFin Project Progresses toward Version 2

Posted by editor on July 21, 2009 at 5:27 AM PDT

Development of the SailFin project, which provides high-availability and clustering capability for SIP servlets (JSR 289), is proceeding toward a scheduled October release for Version 2. Binod P G just posted a summary of the latest SailFin news in the Aquarium:

Diameter support in SailFin is progressing well. Venu has blogged about steps to use Sh api for updating user profile information in HSS (eg: Open IMS). In another post, he explains using onine charging in SailFin.

Geertjan Wielenga interviewed SailFin developers Vince Kraemer and Binod P G in March 2008 on the JavaLobby site in an article titled SailFin: When Java EE Met SIP. He starts out the article with an introduction to SIP:

SIP (Session Initiation Protocol) technology is behind many of today's popular services, such as VoIP, instant messaging, and web conferencing. Underpinning SIP is the SIP Servlet, initially defined in JSR-116 and, since then, updated in JSR-289. The latter defines a standard application programming model to mix SIP Servlets and Java EE components.

SailFin's unigue role is that it brings these capabilities to the GlassFish application server. The Version 2 software has just entered SCF (soft code freeze), and the SCF build is currently available for download. The current SailFin Version 2 development schedule calls for a hard code freeze on August 26, and final release on October 28.

So, what does Binod mean by "Diameter support"? He wrote about this in an April post:

The Diameter protocol (RFC 3588) is designed to provide an Authentication, Authorization and Accounting (AAA) framework for applications. SailFin will be adding support for Diameter protocol by 2nd half of CY2009. Sh (Subscriber profile interface), Rf (Offline Charging interface), Ro (Online charging interface) will be available.

The RFC says that Diameter is "intended to work in both local Authentication, Authorization & Accounting and roaming situations." Naman Mehta wrote a fairly detailed Introduction to Diameter Protocol in March. It turns out that the name "Diameter" came about as a pun on RADIUS, the predecessor protocal. RADIUS stands for Remote Authentication Dial In User Service. As Naman notes, " diameter is twice the radius."

Diameter protocol came as a result of developments to eliminate limitations with the radius gateway. It serves similar purpose in AAA applications however, advanced processes and operations were added to the protocol to make it reliable. This included the addition of attribute value pairs (AVPs) and error notification which was not present on older protocols. Diameter is not directly backwards compatible, but provides an upgrade path for RADIUS.

Venu Gopal summarized the Diameter support that will be included in SailFin in a recent blog post:

Highlights of Diameter support in Sailfin

  • 1.Easy to use API , interfaces provided for AVP's defined in 3GPP specs and RFC's
  • 2.Easy to query additional AVP's in a Grouped AVP.
  • 3.Easy to add new AVP support using dictionary or annotations.
  • 4.Ability to send messages in a synchronous or asynchronous manner(Listener support to receive asynchronous responses)
  • 5.Interfaces defined to build messages as per 3GPP specifications.
  • 6.Easy to build custom messages as shown in the code snippet.

For more information on SailFin, visit the project's home page on

In Java Today, Sonya Barry moderates the Alice Team Roundtable discussion in this Community Corner 2009 podcast, recorded at JavaOne. 'Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Created at Carnegie Mellon University, Alice is a freely available teaching tool designed to be a student's first exposure to object-oriented programming. Alice 3, currently under development, enables a transition from Alice to Java, allowing students to "open the hood" and work with the Java code for 3D animation programs.''s Gary Thompson hosts the James Liu and OpenSolaris Team Roundtable in this Community Corner 2009 podcast, recorded at JavaOne.

In SailFin Diameter Support - Online Charging, Sh API., Binod PG writes "Diameter support in SailFin is progressing well. Venu has blogged about steps to use Sh api for updating user profile information in HSS (eg: Open IMS). In another post, he explains using onine charging in SailFin..."

In today's Weblogs, Elie Levy writes about Managing 800,000+ Lines of Code: "Imagine you get to an organization that has several applications accounting for more than 800,000 lines of code. There are defects everywhere, releases after releases, lots of developers cranking code, after every release more defects... how do you stop the spiral?"

And Fabrizio Giudici has an idea if you need Better properties in BetterBeansBinding? Put it on the whiteboard!: "When I created the BetterBeansBinding project, I spent a considerable amount of time for setting up a complete software factory with Continuous Integration (a thing that I've reasonabily completed only a few days ago, and now only misses a Maven..."

In the Forums, alex_boyko is working with a Japanese String with Tahoma on BufferedImage: "Hi all, I'd like to paint a Japanese string with Tahoma font on a BufferedImage. The string is displayed with SWT. When I export the contents of SWT canvas to AWT BufferedImage and paint SWT constructs on AWT Graphics 2D (the result of BufferedImage#createGraphics()) the japanese string becomes a string of squares. Is there any way to fix that? I've read somewhere that FontUIResource instaed of java.awt.Font may help, but it didn't..."

wakaoz has an issue involving Bypass firewall/NAT: "Hi all, I am new here ... I am facing firewall/NAT problem. I want to ask if it is good for me to use JXTA ONLY for this purpose? If so, where should I start to look into? Any suggestions will be highly appreciated!"

vinsek found that JAXWS SecurityTubeAppender removed SOAP Body attributes: "Hi, I am signing the whole SOAP Body and adding a new xml:id attribute for signed element reference. I am appending the Signature element in the SOAP using SOAPHandler. However the JAXWS tool kit removes the outgoing SOAP Body attributes [xml:id] while passing the packet in the SecurityTubeAppender. Metro tool kit treats SOAP body and header as mutable objects. Which means, If I have the webservice-rt.jar in my client class path or server's class path, the SOAP message will be altered on the way..."

And this_is_mark asks about Clustering Glassfish across a wide-area network (WAN) ?: "Is clustering Glassfish server instances across a wide-area network (T3/DS-3 connections) a recommended and supported enterprise application environment? Have you successfully done so or know of such Glassfish deployments? We are using servlets, EJBs and JMS. If clustering across a WAN isn't supported or isn't a wise thing to do, why not and what issues will we encounter? I have a colleague that's proposed clustering across our VPN, and while open to new ideas I'm somewhat skeptical."

The current Spotlight is Chris Hegarty's "Stream Control Transport Protocol (SCTP) in Java": "Providing support for Stream Control Transport Protocol (SCTP) in Java has been approved as one of the JDK 7 features. The work of defining the API and reference implementation was done through the sctp openjdk project. This work was integrated into JDK 7 Milestone 3 and is available in all future promotions..."

This week's Poll asks "Do you use open source software (OSS) tools in your daily work?". Thursday is the last full day of voting.

Our Feature Articles include an article by Jeff Friesen, Introducting Custom Cursors to JavaFX. In this article, Jeff shows developers how to leverage undocumented JavaFX capabilities to support custom cursors in versions 1.2 and 1.1.1. Meanwhile, Francesco Azzola's Integrating JavaFX with JavaEE Using Spring and Hessian Protocol shows how a JavaFX client can call remote JavaEE services using the Spring framework and the Hessian protocol.

The latest Java Mobility Podcast is Java Mobility Podcast 82: M3DD/LA: a conversation with the organizers of Mobile, Media, and eMbedded Developer Days/Latin America in Goiania, Brazil.

The latest OpenJDK Podcast is

The latest JavaOne Community Corner Podcast is


Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

Development of the SailFin project, which provides high-availability and clustering capability for SIP servlets (JSR 289), is proceeding toward a scheduled October release for Version 2...