IPv6 App Development: Interview with Orangesoft (Part 2)

IPv6 App Development: Interview with Orangesoft (Part 2)

tags:
Oogami Kikaku


In the previous article, we asked Hirokatu Hibino, president of Orangesoft, the reasons why they gave Winbiff full IPv6 support. In the latter half of article, we continued our discussions on how we should develop IPv6-enabled applications.


Creating Virtual Socket Class

Orangesoft IPv6-enabled its network infrastructure when Microsoft released IPv6 Technology Preview for Windows 2000. At the same time, they started developing IPv6-enabled version of its mail client Winbiff.

For IPv4 Winbiff, Orangesoft had used Microsoft MFC (Microsoft Foundation Class) for IPv4 sockets. On the other hand, it had used OpenSSL for SSL (Secure Socket Layer) base sockets. Orangesoft had created a virtual socket class to take care of all these calls and had used it as a bridge.

When the application hands IPv4, SSL and other protocols as parameters to this virtual socket class, the virtual socket class automatically calls necessary base socket. Orangesoft used the same method for IPv6 support: application calls IPv6 base socket via virtual socket class. Additional information for the base socket is given as parameters.

Orangesoft created IPv6 base socket by changing the class available in MFC. "Compared with SSL base socket, we had very few troubles," says Hibino.

Structure of Virtual Socket Class
Structure of Virtual Socket Class

Calling Virtual Socket Class
// sample
AbstractSocket* pSocket = AbstractSocket::getInstance("IPV6");
if(pSocket >connect(...)) {
int data = pSocket >read();
pSocket >close();
}
delete pSocket ;


Understanding Socket Mechanism

Using such virtual socket allows developers to flexibly handle various other protocols used in the future, while enabling code sharing for more productive development work. "If base sockets are available, you should create a common virtual socket," says Hibino.

There is a reason why their IPv6 development work was easy.

"We have experiences in developing sockets, so we can do coding without using MFC," says Hibino. "We can imagine what codes are like without looking into MFC codes in detail. So it was easy for us to know where we should fix to IPv6-enable the codes. But developers with experiences with MFC only may have difficulty in programming because socket mechanism is hidden under classes. We recommend developers to begin by learning how to use sockets without relying on MFC for IPv4, if not IPv6."


Only One Month for Development

IPv6 version of Winbiff went to beta testing in January 2001. It was formally released in March.

"We had a full-functioning IPv4 mail client software first. IPv6-enabling it was not a huge task." Coding was done alongside with other developing work, but it took only two weeks. Testing included, total development work was done in only one month.

"Testing IPv6 products requires IPv6-enabled network. At the least, we needed an IPv6-enabled mail server. Development work was easier than building network infrastructure for testing."

The only glitch in their IPv6-enabled product they found during testing was IPv6 name resolution, says Hibino.


Efficient Development

Orangesoft has an agile development style, which comes partly from not relying on conventional development process. They frequently don't follow design-spec-coding-test-deployment process as seen in general, but they just start coding.

"Such approach becomes difficult with many developers. But for me, I can't really visualize the code if I draw a static class diagram using UML and so forth. You just have to see the source code for that," smiles Hibino. "Although I'm not denying spec-based development for business programming, of course."

On the other hand, he is positive about the use of design patterns.

"We can apply design patterns used often in Java, to Windows object-oriented programming. Of course, there are restrictions in using them for C++, but they are very useful for improving development productivity."

Efficient development approach is a very important point, whether it's IPv6 or not.


Winbiff download
ftp://ftp.orangesoft.co.jp/pub/Winbiff20/
http://www.orangesoft.co.jp/Winbiff20/Winbiffv6.html

You need to introduce IPv6 stack first if you want to use IPv6 Winbiff on Windows 2000.

Windows 2000 IPv6 stack
http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp

この記事のトラックバックURL

http://www.ipv6style.jp/trackback/609
Ads by Google