File Server Integration

File storage integration refers to the possibility for ]po[ to store project and other files on an external file server, instead of storing the data on the computer running ]po[. This option allows customers to integrate a typical Windows department file server into the ]po[ system, so that the files can be accessed (read and write) from both Windows and ]po[.

Integration Scenario

]project-open[ users want to store project related files on the organization's standard file server. This file server usually already contains a "projects" folder with a separate folder for all ongoing projects. Users should be able to access their project files both using ]project-open[ and using their normal Windows explorer.

Overview

("po34demo" is the server name instance in this example)

These above listed parameters (found at Parameters Admin Menu) allow the mapping of filestorage base directories to specific locations in the file system of the underlying operating system. The figure above shows a sample from a Unix-like operating system. Equivalent values for a Windows OS are “C:/Project-Open/filestorage/companies” for example (please note the forward slashes in Windows filenames). 

 

The ]project-open[ filestorage is designed to be integrated with an existing Windows or Linux fileserver. This means that a file can be accessed not only using ]project-open[ but also directly through file managers of the respective operating systems or other applications.
]project-open[ filestorage always takes its list of files from the existing file server so that there are no possibility of conflicts or inconsistencies.


This mechanism allows users to access the files in two different ways:  Staff members from “within” the office are able to access the local Fileserver directly using their Windows Explorer software.  Users working “outside” the office (sales representatives, freelancers, customers, home users
) can access the same files via the Internet using ]project-open[ filestorage.

To implement this interoperability between machines, ]project-open[ utilizes the free software Samba  which is a networking tool.  The Samba How To  guide may be of interest during the course of installation. 

Integration with Windows

The following instructions guide you step-by-step through the process of setting up integration with a Windows file server and a Linux machine.

On the Windows Side:

  1. Create a new Windows user:
    Create a new Windows user (i.e. "projop") with a specific password ("secret").

  2. Create a Windows share:
    On Windows create a new folder (i.e. "projects") and publish this folder as a Windows "share" (Properties -> Sharing -> Share this folder). Grant "admin" permissions to user "projop".

  3. Enable Plain Text Passwords on Windows 2k/2k3/2k7:
    From the Samba HOWTO :

    Using the registry editor (regedit), create the registry setting HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters. Add a new DWORD value: Value Name: EnablePlainTextPassword Data: 0x01. Once these registry changes have been made, reboot the Windows machine and try to map a network drive on the Samba server again. It should work as long as the Samba server is using plain text passwords.

  4. Check whether that works from the Windows side:
    Use a second Windows (!) machine to check whether the share "projects" is accessible with the password etc.

Integration with Linux

The following instructions guide you step-by-step through the process of setting up integration with a Linux machine and a Windows fileserver.

On the Linux Side:

  1. Create a /etc/hosts entry for your Windows server. Add a line such as
  2.         192.268.0.4    fs
    

     "fs" is just and example and stands for File server. You can choose the name freely.

  3. Install a standard Samba version on the ]po[ Linux server using YaST  or whatever package manager. 
  4. Check if Samba works:
    Check if the Windows share is visible from Linux: Issue:
    smbclient -L fs

    You should see a list of shares, including "projects"
  5. Create a mount directory:  Issue

  6. mkdir /mnt/projects 

    on Linux. This is the place where the Windows share will appear on the Linux side.

  7. Manually mount the Windows share: Issue 

  8. mount -t cifs -o username=projop,password=secret //fs/projects /mnt/projects
    Issue mount to check if the new share has been mounted. Issue:

    ls -l /mnt/projects 


    to check for files on the Windows server.

  9. Unmount manually:

    umount /mnt/projects
    

     

  10. Add an entry to /etc/fstab: Add the following line to /etc/fstab:
    //fs/projects /mnt/projects cifs username=projop,password=secret,uid=projop,gid=users

    This line assumes that you are running the ]po[ AOLserver with user="projop" and group="users", as it is the case in the default ]po[ installers.

    "Value too large for defined data type" errors can be avoided by adding "nounix,noserverino" to the entry:

    //fs/projects /mnt/projects cifs username=projop,password=secret,uid=projop,gid=users,nounix,noserverino 
  11. Run:
    mount -a

    so that the new settings take effect.

    Please note:
    It seems that if the device is busy, 'mount -a ' will not apply any changes and returns without any message telling so.
    To ensure that changes will take effect, consider un-mounting first:

    umount /mnt/projects
    or
    umount -l /mnt/projects
    if device is busy

    Integration Notes

    • Please note that the Linux/Windows Samba integration is quite a critical part of a ]po[ installation. Problems are difficult to diagnose and reproduce, particularly if they appear to an external user who wants to download or upload a file.
    • We typically prefer CIFS over SMBFS as the mounting protocol, because CIFS is capable of reconnecting if the Windows server should go down for a reboot etc. SMBFS does not reconnect, so you would have to reconnect manually.
    • However, we had some issues with unreliable connections in the past with CIFS (in 10/2006), while SMBFS seemed to run more smoothly. So SMBFS could be an option, in particular if ]po[ is installed on VMware running on the file server. This is the configuration that we recommend to small companies.
    • Access permissions between ]project-open[  and the operating system may be an issue under Unix-like operating systems (Linux and Solaris), because of the default behavior of Unix daemons. These processes create new files and subdirectories with the user-ID and group-ID of the daemon and have read-only permissions for their user-ID and group-ID (even if you add the daemons’ user-ID to /etc/group).
    • This situation may lead to the case that users do not have permissions to read the ]po[ files and the other way around.
      The solution to this issue is to run the ]po[ daemon with the same group-ID as the default group-ID of the users who are accessing the file server directory (i.e. “users”). 
    • There should be no issues when integrating ]po[ with a MS-Windows based file server, because Windows files inherit access permissions from their parent directory by default.
    • Some corporate documents may be too sensitive to keep them in the same fileserver as the usual project documents. Therefore ]project-open[ facilitates a second Filestorage module that is only accessible by typing a particular URL.  The corresponding Filestorage is shown when executing the ProjectViewPage with the URL variable “view_name=sales”. You can enable the sales filestorage by adding a new menu entry in the Menu Administration page, similar to the “Files” entry.

    References

  Contact Us
  Project Open Business Solutions S.L.

Calle Aprestadora 19, 12o-2a

08902 Hospitalet de Llobregat (Barcelona)

Spain

 Tel Europe: +34 609 953 751
 Tel US: +1 415 200 2465
 Mail: info@project-open.com