Home     Products      Support      Corporate     Sign In 

FileUp EnterpriseFileUp Enterprise

Industrial-Grade Uploading/Downloading
for Web Services

by Joe Mitchko
August 1, 2003

When we think of all of the various complexities that can surface when implementing Web services at the enterprise level, we often think of integration issues, transactional integrity, security, and so on. We wouldn't necessarily rank file transfers as one of the more difficult technological hurdles. Just stick that big old file somewhere in the SOAP message payload area and you should be fine - unless that file happens to be several hundred megabytes or more in size or contains sensitive client financial information.

Given that the Internet is a fickle and unreliable network backbone to begin with, the formula changes a bit, and we must rely on a more industrial-strength solution to do it right. FileUp from SoftArtisans can help you overcome these issues and more when it comes to adding file transfer capabilities for your Web service and Web application needs.

Features
FileUp comes in three versions; standard, professional, and enterprise. The differences between the versions are documented on the SoftArtisans Web site, but it is important to note that SOAP-based file transfer requests are only available with the Enterprise edition. Since we are interested in the Web service features, we will cover the Enterprise Edition here.

Before we dive into the Web service- specific stuff, one important feature common to all versions is the ability of FileUp to overcome certain ASP.NET IIS limitations regarding document-processing size. I recently ran into this problem on a financial services Web service integration project where IIS could not reliably process SOAP requests greater than 64K in size under load, and that's considered small compared to having SOAP response messages include large documents such as PDF files.

This is where FileUpEE comes in by providing a special ISAPI filter designed to throttle large files through the server.

FileUpEE also provides support for the development of SOAP-based Web services and has methods available for uploading and downloading content and managing the file store (copy, rename, delete, etc.).

In addition to basic file upload and download functionality, FileUpEE does a number of other things to help guarantee that a file gets there in one piece and intact. For instance, FileUpEE includes an MD5 hashing algorithm that verifies the integrity of the file. FileUpEE also allows you to continue or resume an upload that was interrupted by a network or system failure - by persisting or archiving the file transfer status to a database. If the process is interrupted, you can design scripts to pick the transfer up where it left off and guide it to completion. This is a very important feature, especially for large files. FileUpEE also allows you to monitor the progress of an upload in number of bytes transferred by using the Progress object included in the object model library.

Functional Overview
FileUpEE is designed to allow users on a browser application to upload or download files from their hard drives to a separate file server on the network. This process involves several mechanisms. First, getting the file from the browser to the Web server requires a browser that can implement "RFC 1867", the standard for form-based file uploads.

Microsoft Internet Explorer 4.0 (or later) and Netscape Navigator/Communicator 4.5 (or later, Windows only) are compatible with the required standards.

The second half of the upload process involves physically transferring the file contents to a file server situated behind the firewall (see Figure 1). FileUpEE uses SOAP for this transfer, hence it falls into the Web service space. But there is more to this than meets the eye. The product flexibility is such that you can initiate SOAP-based file transfers from Web server to file server across the Internet without involving the browser. FileUpEE provides a rich set of object and method calls that allow you to customize the transfer process.

How FileUp Enterprise Works
Figure 1: SoftArtisans FileUpEE Transfer Flow

Support for .NET
FileUpEE .NET assembly objects are available for Visual Basic and C# uploading scripts and take up the SoftArtisans.Net namespace.

In order to perform uploads with .NET, you'll need to do some additional configuration settings in your environment, such as setting NTFS permissions on temporary and destination directories. The documentation does a great job of guiding you through any configuration settings that you may need to make, so you shouldn't have much of a problem.

Web Browser Support
FileUpEE comes bundled with full licenses for two client-side controls, XFile and JFile, which help support browsers that are not fully compliant with the RFC 1867 file transfer standard. Client-side controls can also be used to increase upload performance.

XFile provides both visual and nonvisual ActiveX controls for use in Internet Explorer Web pages or Visual Basic applications, and supports SSL file transfers, handling of multiple files, and other advanced features). JFile provides similar advanced client-side features but comes packaged as a Java™ applet that is fully scriptable using JavaScript.

Installation
FileUpEE is supported only on the Microsoft platform and requires either Windows 2000 or Windows XP Professional, along with Microsoft Internet Information Server (IIS) version 5.x. Installation is fairly straightforward for both Web server and file server modes of installation. After installation, be prepared to make some additional configuration changes depending on the type of server-side scripting you are implementing. For instance, you may need to set permission settings on the various file directory spaces, so make sure you are logged in as an administrator. In cases where you may need to repeat the system configuration and registration steps in your environment and don't feel like reinstalling, the documentation provides step-by-step directions on setting up your server.

Documentation and Support
FileUp comes with a good deal of on-line help information that includes a number of coding samples to get you started. The documentation also supplies a programmer's reference guide with the API calls explained in detail. Anyone with VB-Script experience should be able to put together server-side scripts for file transfer ,and support for .NET means that the FileUp object model can be referenced and integrated into .NET Web services for SOAP-based server-to-server file transfers.

The online help comes in both a Windows help file and browser-based help hosted on your local IIS server.

I found that the browser-based version froze up from time to time, making it impossible to use. I must note that it isn't the first time I've seen Windows Explorer take forever to render HTML content served up from IIS located on the same machine. It's not like the HTTP protocol has far to travel.

Conclusion
What is not readily supported by FileUpEE is certificate-based Web service delivery of files over the Internet using SOAP with attachments. The current SOAP-based file transfers seem intended only to get you from outside the firewall (more so in the DMZ zone) to a file server inside the firewall. You can use the .NET-based API libraries to do Web server- to-file server delivery of files through a SOAP-based delivery mechanism, but I wouldn't venture outside the enterprise without the necessary security mechanisms in place. FileUpEE does allow you to "decouple" your file servers from your Web servers so that access to a secured file server is allowed only through FileUpEE SOAP traffic over HTTP.

In all, FileUpEE provides a rich set of features that allow you to integrate large-size file download and upload operations in a number of different application scenarios, including Web service- based applications. The fact that FileUpEE is not strictly a Web service based product, is actually more beneficial for real-life integration of file upload and download operations originating from the browser.

Company Info
SoftArtisans
1330 Beacon Street
Suite 400
Brookline, MA 02446
Tel: 1-877-SOFTART
Web: www.softartisans.com
E-mail: info@softartisans.com

Download information
http://support.softartisans.com/eval.aspx

Licensing Information
Server License:
http://fileup.softartisans.com/fileup-132.aspx

Testing Environment
OS: Windows-XP
Hardware: 1GHZ Athlon, 1G RAM

About the Author

Joe Mitchko is senior technical specialist for CSC Consulting in New York and is product review editor and a contributing writer for Web Services Journal. Email the author.



Copyright 2006 © SoftArtisans, Inc. All Rights Reserved.

Site Map     |     Privacy Policy     |     Contact Us