Sunday Oct 28, 2007

Where's the Solaris version of Lightning 0.7??

I received a few comments about when the Solaris version of the plugin will be available. I'm not officially on the team, I'm on the Server-side of Calendar Server engineering. I can however say that I'm hearing on the Sun internal development aliases that the Solaris version of the Plugin is planned for next week.

The plugin for Mozilla Thunderbird 2.x will allow access (via WCAP) to calendars and "to do" lists on our Sun Java Calendar Server.

Technorati Tags: , , , , ,

Thursday Oct 25, 2007

Thunderbird Plugin for Sun Calendar Server releases version 0.7

Lightning 0.7 has now officially been released. If you want the Sun Calendar Server (WCAP) version use the link below.

Link to the Plugins

Calendar Weblog listing the improvements

Technorati Tags: , , ,

Monday Oct 15, 2007

Comms Suite's Priorities Outlined..

In case you haven't noticed it, Jim Parkinson (our Executive VP for Communication Products) has posted the future priorities for our Communication Suite Products.

 JP's Blog Entry:  Communicate Products the New Client is coming along!!

Sunday Oct 07, 2007

Ramping up for CEC in Las Vegas

I'm about to board an airplane to head to Las Vegas for our CEC Conference for Sun Field Folks and Partners. If you are in the area, feel free to stop by one of our two Communications Software booths. I will also be giving a presentation on our next Web Client at the following location.

Session ID: SFT9934
Session Title: Sun Java Communications Suite : New Web 2.0 Client
Track: Software
Room: Skyview East 2
Date: 2007-10-09
Start Time: 16:45

Technorati Tags:

Friday Sep 21, 2007

How Email Works (part 2): Intro to the Sun MTA

Last week.. We covered the "high level" explanation of "How Email Works." If you like, I suggest you read my last post before you read this.

See my last post in this series.. Introduction to Sun Messaging Server : How Email Works

This week we are looking at the MTA. The Mail Transport Agent (MTA) is a critical part of the Sun Java Messaging Server. The MTA's function is to transport messages to either other computers or to user applications. The question is now, how does the message go from one MTA to another MTA.

A Quick Review from Last Time..

Nearly all of us have written a email in our day to day life. When we click the "send" button on our email software, the message disappears and "hopefully" appears in someone else's email mailbox. On the setup of our Email Software, we are asked for an SMTP Server. The SMTP Server (or MTA-Outbound) provides (#1) the initial acceptance of the message from the author of the email.

Once the email has been accepted by the MTA-Outbound. The MTA will then evaluate the message recipient's address. If the recipient is not local to the MTA, the MTA will attempt to deliver the message to another site.

The recipient address of "" has two parts. The first is the user part which is "jonathan." The second part is the domain part which is the "" If the domain part does not equal the MTA Server's local settings, it then decides that the message must be delivered to another site (#2). The address of the site is looked up using the MX DNS Record to find the IP Address of that site. This allows the MTA-Outbound to create an SMTP Connection to the Remote Site's MTA-Inbound.


Figure 1 - Example of a User from one site sending an email to a User at another Site

The MTA-Inbound handles all incoming requests (#3) from the Internet. It takes the SMTP connections, and validates the email message's "user address" as a valid user. If the user is valid, it writes the message to its internal message queues. If the user is invalid, it may reject the message. In the Sun Java Messaging Server, we validate the email user addresses using our Sun Java Directory Server.

The MTA must place messages "in transit" in a message queue. The purpose of this message queue is to protect the message from potential system failures, such as loss of power. Only when the message is successfully committed to a message queue will the MTA confirm that it accepted the email message. The example here is.. When you drop off a letter at the local Post Office, you have a reasonable assumption that the Post Office will accept responsibility of the delivery of that message.

After the message has been written to a Message Queue, the MTA will then dequeue the message. The message will be dequeued to either 1) deliver to another site or 2) be delivered into the Message Store. In this case, the MTA-Inbound will evaluate the email address in the Directory Server, and then deliver the message to another server. The Sun Java Messaging Server will deliver to local Messaging Servers using Sun's version of LMTP.

Messaging Server Internals

Now let's look at how the Sun Java Messaging Server does the above from the "inside." (Figure 2) The MTA is a major portion of the Messaging Server. This is because it implements a "channel-based" architecture. The channel-based architecture allows the MTA to provide extensive processing and routing of messages that pass through its system.

Figure 2 - Overview of the Internals of the Sun Java Messaging Server

The above picture (Figure 2) provides the highlights of the Messaging Server. The key components of the Messaging Server are the MTA (discussed in this article), the Message Store, and the Access Services (IMAP, POP3, and WebMail).


Figure 3 - Initial state where the MTA's Dispatcher starts SMTP_SERVER Processes

For our discussion, we can consider the initial state of the MTA to look like Figure 3. The Dispatcher (a maintenance process) will start up a number of system processes (SMTP_SERVER) to listen to TCP/IP ports. In this case, the processes are setup to listen to port 25 (SMTP) and port 443 (SMTP w/ SSL).

Figure 4 - Incoming SMTP Connections connect to the SMTP_SERVER Processes

As other servers and email programs connect to the MTA using SMTP, the multiple connections are handled by the SMTP_SERVER processes. As a connection is established, the client will attempt to start a SMTP session. This SMTP session includes the author's email address (FROM address), the receiver's address(es) (TO address), and the actual email itself.


Figure 5 - SMTP Session provides addressing information. This is evaluated by the Mappings Table and Rewrite Rules.

Once the FROM address and the TO address is given, the MTA will then assign channels to each of these addresses. These will be the SOURCE Channel and the DESTINATION Channel. The MTA will also track the SOURCE Channel of the connection's IP Address. This process of Channel assignment is based on the rewrite rules provided in the MTA's configuration files. (imta.cnf)

Figure 6 - Channel's Architecture. Slave Process (enqueues) messages to a Queue. Master Process (dequeues) is assigned to service (dequeue) a Message Queue.

The above figure 6 shows an example "channel-based" architecture. The slave process is the SMTP_SERVER which enqueues the message into the message queue.

Figure 7 - Evaluation of addresses assign the message to be written to disk on a Message Queue file system.


Figure 8 - Messages in the Message Queue are then dequeued and processed by a Master Process.

Additional Reading:
1. Sun Java System Messaging Server 6.3 Administration Reference,

Technorati Tags: , , , , ,

Tuesday Aug 28, 2007

"How Email Works" Introduction to Sun Messaging Server

This week, I am teaching in Bangalore, India. One of the presentations which I'm giving is a "Basic Functional Overview of Communications Suite." Many of us who have been working with Communications Products for over a decade sometimes find ourselves going too deep into the technical aspects of our fields. My intention of this presentation was to provide a "basic baseline introduction" to how "email works".

This write up is a basic introduction. It does avoid most of the more complicate configurations and mechanisms which are part of the Sun Java Messaging Server. The key objective is to understand "how email works" from a basic "black box" model. In the up and coming posts, I'll start getting more complicated into the internals of the Messaging Server and the other components of the Sun Java Communications Suite.

What does Messaging Server allow Users to do?

The Messaging Server allows users to interact with their email message data in three different manners:

  1. Users may write an email, and then send it to someone(s).
  2. Users may receive emails from others.
  3. Users may access their Mailbox


The Sun Java Messaging Server Key Components:

• Message Transport Agent (MTA)
• Message Store Database
• Message Access Services:


• WebMail Access for Communications Express (separate product)

The above imagine simplifies the Messaging Server into these three components.

Messages are delivered into the Messaging Server via the MTA. The MTA is the SMTP Server which accepts the email message and then route the message to it's destination. The destination for the email could be either the Message Store or to another server somewhere out over the network.

The Message Store is a Sun private database, which stores user's mailboxes and message data.

Users access their mailboxes via either IMAP, POP3 or through Webmail.

A User Decides to Send an Email

Users write their emails using any of the popular email clients out on the market. These email clients could include Mozilla/Thunderbird, Apple Mail, Outlook Express, or any other IMAP-based email application. Once the email is ready, the user would click the "SEND" button.

The "SEND" button allows the email application to connect with the MTA. The client connects to the MTA using the SMTP protocol.


On the connection to the MTA, the client will send the message over the network to the MTA. The MTA would then store the message in the Message Queue Disk and release the client connection. The message stored on the queue will then be read and the address of the message will be evaluated by using information stored in the Sun Java Directory Server using LDAP.


At this point, the MTA will attempt to deliver the message to one of three places:

  1. Into a User's Mailbox
  2. Into another Messaging Server
  3. Into another site on the Internet (note for security.. it is recommend that the MTA forward the message to a "smarthost" MTA to handle the message delivery over the Internet)

It is important to note that once the message is on the Message Disk Queue, and the MTA has responsibility of the message. We guarantee this responsibility by committing the message to disk. It is this commitment which provides the first clue into a our first performance limitation. We write all MTA data to a disk queue, and we therefore are bounded by the disk i/o performance of that disk system. We also need to ensure that the disk system is highly available through RAID. (Typically RAID 0+1 or RAID 5.)

Postal Service Example.. An example of this would be a letter that you drop into a postal mailbox. If you drop a letter of at the Post Office, you are assuming that the Postal Service will mail the message to the destination. You will not expect the message to get lost.

The MTA will not remove the message from the Message Disk Queue until a successful delivery. If a delivery attempt fails, it will keep trying. If it fails a final time, the message will be HELD on the disk queue and a notification sent back to the sender. The MTA logs will record the whole history.


The MTA will attempt to deliver the message in one of three possible ways:

  1. Message is Deposited into the User's Mailbox on the Message Store
  2. Message is Sent to another MTA Server on the Same Local Network
  3. Message is sent to the Internet by first sending to the smarthost.

The Smarthost MTA sits between the Messaging Server inside the protected network and the Internet. Typically this would be in an area outside the internal network. The Smarthost would evaluate the message address by domain name. Using DNS, the MTA would attempt to identify the DNS MX Record and A Record for the destination of the email. It would then attempt to deliver the message to the host of that IP Address using SMTP.

User Receives an Email


An email sent to a user on the Message Store. In the case of the message arriving from the Internet, the email sender would address the email to "". The email sender's MTA would look up "" in DNS and find either an MX record or an A record for this site.


The Inbound MTA for the site may be configured to detect SPAM or Viruses. In this case, the message will be sent to a anti-spam/anti-virus verdict engine (such as Cloudmark or Symantec Brightmail). If the email passes, it is evaluated for message routing. The email address is evaluated in the Directory Server. If the email address is valid, it is then sent to the user's mailbox host (mailboxb).

User Access their Mailbox


If a person wishes to access their email, they would use their email client. These clients, such as Mozilla Thunderbird or Apple Mail, connect to the mailbox using the IMAP protocol. In some cases, ISPs would limit access to POP3 protocol.

The email client would connect to the Sun Messaging Server's Mail Multiplexor Proxy (MMP). The MMP would accept the user's email credentials (their username and password) and validate their login using the Directory Server. Should the authentication be successful, the MMP would then identify the user's backend Message Store server. The MMP would then connect to this backend Message Store on the user's behalf. The user can then access their mailbox data.

The value of the MMP is that it provides 1) Security and 2) Scalability. Security is improved by the use of the MMP by isolating the Message Store from the end-users. This helps to prevent unauthorized access (hacking) into the Message Store server data. Scalability (as seen in the picture below) is improved through Horizontal Scalability. This means that the architecture can grow by adding additional MMPs and backend Message Store servers.


In Conclusion..

I hope this information is informative for anyone curious on how "email works." Specifically, how email works with our Sun Java Messaging Server. In my next post, I'm going to describe how "Calendar Services Work" using our Sun Java Calendar Server.

Technorati Tags: , , , , ,

Wednesday Aug 08, 2007

Sun's Plans for Web-based Instant Messaging?

Francisco Castrillo wrote:

Do you know of any deployment or configuration of IM working embedded on Sun Portal? Something like Gmail or Yahoo functionality?

The only reference I have found is this:
"JWChat Portlet — Communicates with an instant-messaging server with Extensible Messaging and Presence Protocol (XMPP) over HTTP binding. See the Jabber Web Chat site."

I cannot specifically comment on our schedule, but I can tell you that we are active in implementing Web-based Instant Messaging.  Specifically, we are implementing work around a Next Generation AJAX version of Communications Express.  This will allow Presence and Chat capabilities around Address Book.. and possiblity Email and Calendar.

Tuesday May 22, 2007

Transactional Model for Sun's Outlook Connector


The below is a diagram representing the transactional model between Outlook Connector and the Sun Communication Suite Servers. I have broken this into four different types of transactions. I have diagramed the relationship between the Outlook Connector and Microsoft Outlook. These transactions are mostly GUI driven, and I haven't bothered to document all of those other than stating that these sit on a MAPI bus connection.


a. Access to Personal Address Book Information
b. Access to Mailbox and SMTP Delivery
c. Calendar Server Access
d. Corporate Address Book & Outlook Connector Configuration

(a) Personal Address Book Access

Outlook users have the ability to add, edit and remove their personal Contacts. On these actions, the Outlook Connector will connect with Communications Express to transmit these changes using the Web Address Book Protocol (WABP) which is a Sun Proprietary protocol.

On Communications Express is a special servlet which provides the WABP Service. This servlet also represents a LDAP Client which communicates back to the Directory Server. The WABP Service will first look up the user, then interact with the user's Address Book Data.

b) Mailbox Access and SMTP Delivery

On the Outlook Connector, a user may wish to retrieve their emails from their mailbox. In this case, the Outlook Connector acts as a IMAP client and connects to the Messaging Server. The Messaging server would evaluate the end-user's username and password with the Directory Server.

If a user is composing and sending an email, the Outlook Connector would provide a SMTP connection to the Messaging Server to attempt to deliver this message. In some cases, the user must first authenticate before sending their email. In this case, the Messaging Server will need to authenticate with the Directory Server.

c) Calendar Access

People may access their, or other's, calendars through the Outlook Connector. The connector communicates to the Calendar Server using the Web Calendar Access Protocol (WCAP). This is also a semi-proprietary (but published) protocol for the Sun Java Calendar Server. User authentication and profiling is provided by the Directory Server.

In Calendar Server 6.3, we added the feature for appointment attachments. This feature allows you to use the Outlook feature to attach a document to a particular appointment. In this case, the Calendar Server has an additional Attachment Store.

d) Corporate (or Global) Address Book

Outlook users may want to find someone within their company or organization which is not already in their Personal Address Book. For this the Outlook Connector becomes an LDAP client which communicates with the Directory Server. The Corp Address Book data are the normal user entries which are the user accounts.

For More Information:

Sun Java System Connector for Microsoft Outlook 7.2 Administration Guide

Wednesday Apr 25, 2007

New Marching Orders for Communications Software

Until recently.. Communication Software has been about building the most performance and the most stable products for Email, Calendar, and Instant Messaging.  In many cases, we have avoided the latest trends to ensure for our customers the best possible opportunities of meeting their customers expectations of service uptime and quality of service.

Now it seems a "new sheriff is in town," Jim Parkinson, Senior Vice-President for Collaboration/ISV Engineering has addded a new transparency in our plans for Comms Software.  In his blog, he outlines some priorities for our Communications Engineering teams:


Jim's BLOG can be found at:


Friday Feb 23, 2007

Sebastien Announces JSCalendarSync v0.30 released

Sebastien has been doing an amazing job in creating JSCalendarSync. This tool will provide synchronization between MacOS iCal and the Sun Java Calendar Server. This tool requires that Web Calendar Access Protocol (WCAP) be available to these Mac users.

Sebastien Stormacq's Weblog : JSCalendarSync v0.30 released

Technorati Tags: , , ,

Directory Scalability at Telcoms

This is a common theme when I visit our Telcom customers.. Ludo writes..

a wireless telecom operator happily user of Sun Directory Server 5.2 (patch3) with a few tens of million entries.

It is never the Directory that fails to meet our customers requirements, it is usually something in the web application or likely the storage which cause problems for them. The Sun Directory Server scales very well for the type of operations which Wireless carriers require. These are typically read-only types of transactions such as authentication or user profiling.


In the above diagram, we can clearly see the effects of horizontal scalability for a telecom. As they need more LDAP read transactions (searches and DN retrievals), they can keep adding Directory Replicas to meet their demand. Load balancers would provide the traffic shaping to spread the traffic across the various replicas.

A limit does however become apparent for the Directory Masters. You can keep adding DIrectory Masters in a horizontal fashion. These peered masters will each have their own Multi-Master Replication (MMR) agreements. Should the type of write transactions become extensive, your Directory will soon start to suffer. In the Directory Server 5.2 (and earlier) releases, you are limited to four Directory Masters.

In the next release of Directory Server 6.0, this limit of four Directory will go away.

Ludo's Sketches Blog

Technorati Tags:

Thursday Jan 18, 2007

Colbert Explains the whole AT&T Thing

Wednesday Dec 27, 2006

Shopping for a new Motorola SLVR L7 in Singapore

I did some shopping while I was in Singapore.  The famious Sim Lim Shopping Center  is heaven for any Techie.  Imagine a giant mall of just computer and technology stores.  They have nearly anything you need related to technology.

Last time I was visiting there, the major toy was memory-based techologies such as MP3 players and MPEG Digital camcorders.  This time it seemed that Apple iPod won the MP3 war in Asia.  No small task given the premium pricing which Apple holds over many less expensive brands.  Maybe at a lesser extent also added to the confusion over the future of Microsoft support for MP3 also caused buyers to walk away.  Microsoft is shifting away from using its Media Player (included with Microsoft Windows) towards its own Zune.  BTW.. I didn't see a single Zune at Sim Lim!  Oh yeah.. Apple won the MP3 player market big time!

I did make at least one major purchase.  I bought myself a new phone.  The Motorola SLVR L7.  These days while I'm traveling, it is best to carry two phones with me.  One is the phone my USA phone carrier gives you when you sign up with their calling plan.  The other one is the one I buy for myself to put a local SIM card into for my local phone calls.  The L7 seems to really rock.  At a $137 price tag, I didn't mind picking up one to play around and to see what it can offer me.  The Quad-Band GSM phone will provide me service in nearly any country (except Japan.. and maybe Korea).  The phone came alive when I added my SingTel SIM card which I easily purchased at a nearby 7-11 store.  The camera gave really nice

The phone camera gave good images for both during daylight and night.  I found that I need to plan ahead when I take a picture.  If I want to use the phone as a digital camera, I will set the image to High resolution (640x480).  If I wanted to send the photo as an MMS, I would need to set the phone to MMS resolution (160x120).  In addition to taking pictures, you can record video.  This was fairly effective as long as you don't move the phone around.  An anti-shake feature would be a good add on.

The phone comes with an expandable memory bay.  The Micro SD card is really impressively small.  You need an SD memory card adaptor to use with most computer card readers.  The memory card I bought with the phone was 1 GB card which I spent about $45.  This would allow me to load about 2 hours of MP3 music.  The headphones which is included with the phone are a stereo pair.  This will be great when I'm walking and listening to music and then accepting a call.

Motorola L7 Phone

The real pain is the Motorola Phone Tools Software.  First of all, they don't support Mac.  Secondly, when I got home to install it on my PC.  I never quite got everything installed.  It really isn't worth using these tools. I didn't bother to use the provided software while I was traveling. 

I was happy to find that the BlueTooth support on the L7 worked really well with my Mac.  iSync was quite happy with the phone. It even had a picture of the phone when I pressed the sync icon.  My contacts and date books where synced without a single problem.  Also, I found it really easy to send pictures from the phone to my Mac laptop using the BlueTooth file transfer.  I'm going to try printing a picture using my HP PhotoSmart 6180 printer which has BlueTooth support.  Overall, I'd say the phone is a nice device.  PC users might find it a hassle to use it, but Mac users will be very comfortable with its interop capabilities.

Thursday Oct 26, 2006

Thank You Mozilla!! a thick client for Sun Calendar Server!!

Finally.. I'm excited about a cross platform Calendar application for Sun Communications Suite.  Lightning is a project from the place that brought us to the widely successful Firebird and Thunderbird applications.

The thing I really appreciate from this product is that it already has user base.  Unlike the other Mozilla stand-alone application project called Sunbird, every Thunderbird user could install Lightening as an extension to their Email client.  This gives you a one-stop location for both Email and Calendar activities.

The enabling feature of Lightening is that it is a pure WCAP client.  WCAP is the Web Calendar Access Protocol used by the Sun Client Server. This protocol has already been widely used by both the Sun Connector for Outlook and the version of Evolution shipped with Sun Desktop.

Sun Calendar Server users can set this up rather easily.  Just download the Thunderbird extension from the Lightning website below.  Make sure you are downloading the WCAP version!   Then add this extension to your Thunderbird.

Removal is fairly simple.  Just open the “extensions” options in Thunderbird and click “uninstall.”

The Linux and Windows users who I have spoke to tell me that it works. (Maybe not yet 100% flawlessly. ) I’m a Mac user, and honestly, I had a few problems.  I contacted the development team, and they sent me a build that fixes the Mac problem.  This fix should be in a build after the Oct 10th build

Subscribing to your calendar on Sun Calendar Server is very straightforward.  Just click new calendar off the “calendar tab.”  The other method is to go to the “file -> New -> calendar” on the main menu.  Then select “network-based calendar.”  If you are using the WCAP version, you should see a “Sun Calendar Server” option. 

The Calendar Server URL is a bit tricky.  I’m sure most users will confuse this URL with the one that they use for Communications Express.  This is a totally different WCAP URL that goes directly to the Calendar Server (or a Front-end Calendar).

It is still a early release, so please don’t be too picky yet!  I’m sure after they smooth out the bugs, you will be pleased to find this.

Mozilla Projects Web Site
Ligtening for Thunderbird Project Page

Wednesday Oct 18, 2006

Wow: Easy way of evaluating Sun Collaboration Suite

  For people interested in taking a test drive of a complete
collaboration suite configuration (JES 2005Q4 version) on Solaris x86
(either on a physical x86/x64 box that can be re-installed or on a
VMWare VM) there is a method where you can perform a single install and
have both Solaris x86 and the entire collab suite pre-configured without
having to pour through all the various install docs.  William Hathaway was able to
install it on a VMWare VM on my desktop (I had to assign it 800m of RAM)
in about an hour .  It took about 5 mins of his attention, and there were
less than 10 questions he had to answer before everything was up and
operational.  There are also slightly more complex options if you want
to install it in a multi-tier configuration vs a single system.

The components installed are:

  • Solaris 10 (update 2)
  • Sun Java System Web Server
  • Sun Java System Directory Server
  • Sun Java System Access Manager
  • Sun Java System Calendar Server
  • Sun Java System Messaging Server
  • Sun Java System Instant Messaging
  • Sun Java Communications Express
  • Sun Java System Delegated Administrator

For more information check out:

Many thanks to William Hathaway for pointing this out on the INFO-IMS Mailing Alias..  Its always great when customers find things out before we do!


I'll be writing about topics that would interest users and developers of Sun Java Communication Suite.


« July 2016