23.01.2014 Views

Document Management File Handling Architecture - IFS

Document Management File Handling Architecture - IFS

Document Management File Handling Architecture - IFS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

White paper<br />

<strong>Document</strong><br />

<strong>Management</strong> <strong>File</strong><br />

<strong>Handling</strong><br />

<strong>Architecture</strong>


content<br />

Introduction............................................................................................................. 1<br />

About this document .............................................................................................. 1<br />

Like any other component....................................................................................... 1<br />

...but different ....................................................................................................... 1<br />

<strong>Document</strong> Titles, <strong>Document</strong> Revisions, <strong>File</strong> References<br />

and <strong>Document</strong> Access ............................................................................................ 1<br />

<strong>Document</strong> Title (lu DocTitle) .................................................................................. 1<br />

<strong>Document</strong> Revision (lu DocIssue)........................................................................... 2<br />

<strong>File</strong> Reference (lu Edm<strong>File</strong>).................................................................................... 2<br />

<strong>Document</strong> Access .................................................................................................. 2<br />

<strong>Document</strong> <strong>File</strong> Repositories .................................................................................. 3<br />

No direct access from the client to the repository .................................................. 3<br />

Pros and cons for the different repository types ..................................................... 3<br />

Migrating documents between repositories ............................................................ 5<br />

<strong>File</strong> Transfer Service (Fts) .................................................................................... 5<br />

Clients ...................................................................................................................... 6<br />

<strong>IFS</strong> Enterprise Explorer .......................................................................................... 6<br />

<strong>IFS</strong> Web Client ....................................................................................................... 6<br />

Running <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong> under Citrix ................................................... 6<br />

Usage on wide area networks (WANs) .................................................................... 7<br />

flow of files in <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong> ........................................................ 7<br />

Oracle AutoVue integration for <strong>Document</strong> Visualization................................. 7<br />

Technical flow of the integration with Oracle AutoVue ............................................ 8<br />

Integration with Oracle AutoVue ............................................................................. 9<br />

About <strong>IFS</strong> ................................................................................................................ 10


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

<strong>Document</strong> <strong>Management</strong><br />

<strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

Introduction<br />

About this document<br />

This document explains the architecture of <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong> in <strong>IFS</strong> Apps 8.<br />

Beginning with a brief introduction, the document goes on to explain and put<br />

together the different areas to show the flow of data through the application, with<br />

a focus on how files are handled.<br />

Like any other component...<br />

<strong>IFS</strong> <strong>Document</strong> <strong>Management</strong> (“Docman”) is in many ways a typical component, or<br />

product, of <strong>IFS</strong> Applications. It consists of a number of tables and views in a database,<br />

together with business logic, also stored in the database, as well as a number of<br />

“screens” (forms, web pages) in our clients: <strong>IFS</strong> Enterprise Explorer (“<strong>IFS</strong> EE”) and<br />

<strong>IFS</strong> Web Client (“web”).<br />

These screens work like all other screens in <strong>IFS</strong> Applications; you create records,<br />

you perform various operations or commands to manipulate the records, and you<br />

search for the records and navigate around in the component.<br />

...but different<br />

Docman, however, differs in one crucial aspect: we handle files for the user. Although<br />

Docman has support for storing information about “originals” (paper drawings,<br />

magnetic media, microfilm etc.), what people use most of the time are electronic<br />

media, i.e. files. These files range from simple word processing documents to complex<br />

3D-CAD structures consisting of hundreds or thousands of different parts.<br />

<strong>Document</strong> Titles, <strong>Document</strong> Revisions, <strong>File</strong> References<br />

and <strong>Document</strong> Access<br />

Before we go into detail about file handling, a brief explanation of our main database<br />

objects will be useful.<br />

<strong>Document</strong> Title (lu 1 DocTitle)<br />

The document title is the umbrella for a document. It contains attributes like<br />

document class, document number and the title of the document. A title will contain<br />

one or more document revisions.<br />

1. LU—Logical unit. A business object including storage and business logic in <strong>IFS</strong> Applications.<br />

1


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

<strong>Document</strong> Revision (lu DocIssue)<br />

The document revision is what most people talk about when they refer to a document<br />

in Docman. This is where most of the action takes place.<br />

The document revision has five states: Preliminary, Approval In Progress,<br />

Approved, Released and Obsolete. You start with a preliminary document, then it<br />

optionally goes through a chain of approval steps, it gets approved and released, and<br />

ultimately it might become obsolete—and is set as such.<br />

When a document is released and you want to change it, you create a new revision.<br />

Then you get a new document revision in Preliminary state that you can start to<br />

work with.<br />

Each document revision can have one or more file references connected to it.<br />

<strong>File</strong> Reference (lu Edm<strong>File</strong>)<br />

The file reference is what the name says—a reference to a file. It is not the actual file,<br />

but a pointer to it. It keeps information about where the file is stored (in which<br />

repository and path), it stores the file’s name in the repository, and it also stores the<br />

original name of the file, if there is one (files created from inside <strong>IFS</strong> <strong>Document</strong><br />

<strong>Management</strong> do not have an original file name in this sense). You can also see what<br />

type the file is and if it is the original file or a view copy.<br />

Original files and view copies<br />

A document revision can have more than one file reference. The most common case<br />

of this is that you have the original file and a view copy. The original file is the main<br />

file, or master file, if you will. It will be the Word document or AutoCAD drawing<br />

or Excel spreadsheet that you want to store in Docman. Then you can have a view<br />

copy as well if you so choose. Typically it will be a PDF version of the same document<br />

that you keep in sync with the original file and which can be used by people that are<br />

not interested in opening the original file or cannot access the native application<br />

required to view the document, such as an expensive CAD package, but still need to<br />

see the document. If PDF files and similar are used, these files also have the benefit<br />

of being read-only, so the risk of tampering by recipient is eliminated.<br />

Apart from original files and view copies, Docman can store comment files and<br />

“extra” files, but this will not be explained here.<br />

<strong>Document</strong> Access<br />

The last main piece of the document management puzzle is the document access<br />

thatyou can define for each document revision. It consists of a list of persons and/or<br />

groups as well as references to other business objects. A line containing a person will<br />

grant that person certain access and a line containing a group with grant certain<br />

access to the persons contained in that group.<br />

Currently there are three levels of access for each line: View, Edit and Admin.<br />

View access means that the document file can be viewed. Edit access means that the<br />

2


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

document file can be edited and deleted. Admin access means that the document can<br />

be administered (i.e. the persons granted this access can control access and change<br />

status of the document).<br />

The document access can also be partially controlled by other business objects<br />

that the document is connected to. Examples of this are projects and invoices where<br />

these objects have special access control and business logic used to determine what<br />

access the end-user has to a particular document<br />

There are more details to document access, but these are explained in the end-user<br />

documentation.<br />

<strong>Document</strong> <strong>File</strong> Repositories<br />

The files connected to the documents in Docman are stored in special document file<br />

repositories. There are currently three supported types of repositories; Shared, FTP<br />

and Database:<br />

• Shared: The most basic one. The files are stored in a folder somewhere on the<br />

network, where the application server can access it (read and write).<br />

• FTP: The files are kept in a folder in an FTP server.<br />

• Database: The files are stored as BLOBs (Binary Large OBjects) in a database<br />

table.<br />

No direct access from the client to the repository<br />

There is never any direct file access from the client PC to where the files are stored.<br />

The files are transferred using HTTP to and from the application server, which<br />

takes care of reading and writing the files to and from the different repositories.<br />

Pros and cons for the different repository types<br />

Shared<br />

This is the oldest and simplest of the repository types. The least secure of the<br />

repository types since the files are simply stored in a normal file system folder on<br />

the network. It is important that only the application server can access this folder,<br />

otherwise persons with the appropriate access in <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong> might<br />

get access to sensitive files. Also, it is important to make sure that the application<br />

server can access the folder, so if it is on a different machine than the server itself,<br />

UNC paths (\\server\share\path\) are recommended (using mapped drives under<br />

Windows can be problematic if the drive letters change, for example.)<br />

Pros<br />

• Easy to setup and understand.<br />

Cons<br />

• Least secure.<br />

• No support for document content search.<br />

• No support for file operations logging/SOX (Sarbanes Oxley).<br />

3


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

FTP<br />

Although no encryption is used (Docman currently does not support FTPS/SFTP),<br />

the extra layer of security using a username and password for the FTP server makes<br />

this more secure than using Shared repositories. The FTP protocol is old, trusted,<br />

and well known. You can run a FTP server on many different platforms and get the<br />

same experience.<br />

Pros<br />

• Known technology. Easy for most customers to handle today.<br />

• More secure than Shared repositories but still not very secure.<br />

Cons<br />

• Username, password and data is sent unencrypted.<br />

• No support for document content search.<br />

• No support for file operation logging/SOX (Sarbanes Oxley).<br />

To consider<br />

• Administration of an additional server.<br />

Database<br />

This is the latest addition to the list of repository types. The document files are kept<br />

in a BLOB in the database so no extra servers or applications are needed.<br />

Pros<br />

• No extra setup is required, it just works.<br />

• No administration of anything.<br />

• Very secure. If required, the connection to the database can be encrypted. Even if<br />

a user can log on to the database using some tool, he can only access the document<br />

files he has access too since they are protected by the view on the document file<br />

table.<br />

• <strong>Document</strong> content search functionality.<br />

• Supports file operation logging/SOX (Sarbanes Oxley).<br />

To consider<br />

• Backup and restore when there is much data can be a challenge (however, a few<br />

customers have several TB of data without any problems), especially since the<br />

time for taking a complete backup will increase. Defining backup strategies<br />

require good Oracle competence and experience and the increase in data when<br />

storing documents in the database might require a change in backup strategies,<br />

maybe also requiring a higher budget for backup handling. Currently there are<br />

no official recommendations on how to handle this. It is hard to give detailed<br />

4


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

recommendations on how to handle backups, but here are some general pointers:<br />

• Use RMAN.<br />

• Take incremental backups. Be aware however that some of the advanced<br />

options are only available in the Enterprise Edition of Oracle.<br />

• Parallel backup and restore can be a solution to long backup times. Enterprise<br />

Edition only.<br />

• An alternative to using Oracle’s own backup tools is to use disk mirroring<br />

and keep a mirror of the database disk at all times. By stopping the mirroring<br />

you will automatically have a complete backup from the time you stopped it.<br />

• Restoring single documents from backup is more time consuming since the<br />

whole database will need to be restored to some point in time.<br />

• Storage overhead for small files can be an issue. Since each file is kept in a BLOB<br />

column in an ordinary database table, it is eventually stored in a database block<br />

in Oracle. If a file is smaller than the configured block size of the database, then<br />

it still takes up one full block (not as with other records where one block can<br />

contain data from more than one record). So for documents that are only a few<br />

KBs in size, there can be a big overhead in percentage. For documents of hundreds<br />

of KBs and up, the overhead is negligible however.<br />

Migrating documents between repositories<br />

Since <strong>IFS</strong> Applications 7, a tool is provided to help with migrating document files<br />

from one file repository to another. Moving files from FTP to Database is the main<br />

purpose, but it works in any direction.<br />

<strong>File</strong> Transfer Service (Fts)<br />

The <strong>File</strong> Transfer Service, or FTS, provides the means to transfer the files between<br />

the client and the application server over HTTP using normal HTTP POST and<br />

GET (HTTPS/SSL works as well, of course). The FTS is built using Java Servlet<br />

technology and runs inside the application server/JEE Container.<br />

Since no authentication is done in the FTS, special tickets are used instead. When<br />

users want to access a file in the system, either checking it out or checking it in, the<br />

system first makes sure they have the necessary access permit. If so, the client receives<br />

a ticket as a proof that the users can check in or check out files against a certain<br />

document revision.<br />

For example, if a user wants to view a document file, the application server will<br />

place a copy of the file in a certain folder where the FTS can read it and will return a<br />

ticket to the client program. The client will then make a request to the FTS using the<br />

document ID and the ticket, and the FTS will respond with a file stream so that the<br />

file can be saved and opened.<br />

5


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

Clients<br />

<strong>IFS</strong> Enterprise Explorer<br />

In <strong>IFS</strong> EE all file handling goes through the FTS. It works as explained above.<br />

<strong>IFS</strong> Web Client<br />

Although the web client could handle files through the FTS it does not, for various<br />

reasons. One reason is that the web server is most often on the same machine as the<br />

application server, and it would affect performance negatively to make an extra<br />

HTTP call to the FTS when we are already “on the inside”.<br />

However it works a bit differently depending on which repository type is used:<br />

• FTP: The web server makes the call to the FTP server directly. So if the web<br />

server is running in its own application server, the firewall must accept active<br />

(not passive) FTP transfers from the web server.<br />

• Shared: Currently not supported by the web client.<br />

• Database: The web server cannot directly read the file from the database so the<br />

application server does it and places it in a shared folder where both the web<br />

server and the application server can read and write. This folder is identified with<br />

two default values defined in Docman: SYSCFG_SHARED_PATH_FNDWEB<br />

and SYSCFG_SHARED_PATH_APPSERVER.<br />

Running <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong> under Citrix<br />

Although the point of running <strong>IFS</strong> Applications under Citrix is not that big now<br />

that <strong>IFS</strong> EE exist and the old windows client is gone, customers will still want to do<br />

it, for various reasons. If you do this, there are some things to think about:<br />

• All applications needed to open documents must be available on the Citrix server.<br />

Since the file is actually opened on the Citrix server itself, it must have the<br />

necessary program to open the file. For a user running <strong>IFS</strong> in Citrix seamless<br />

mode this might not be self-evident. The same goes for document macros, if those<br />

are used. Whatever those macros are doing/using, it must be available on the<br />

Citrix server. Also, for heavy applications like 3D-CAD and similar, make sure<br />

it runs well under Citrix (no lag, for example) before you go for such a solution.<br />

• Think about how close the Citrix server is to the application server. This is a<br />

general concern but especially important for document files since they can be<br />

quite big. The data transfer is done between the Citrix server and application<br />

server and not between the end-user’s PC.<br />

• Special functions in <strong>IFS</strong> EE, for example drag/drop of files from the client to<br />

document management will not work when using Citrix.<br />

6


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

Usage on wide area networks (Wans)<br />

In <strong>IFS</strong> Applications 8 all file handling goes through the application server, and then<br />

out to the client. This means that even if an FTP repository, for example, is “close”<br />

to where a user works, the file transfer might still be time consuming since the<br />

application server must first download it before it will be streamed to the client PC.<br />

In the old windows client, where the files were directly downloaded by the client<br />

program, you could benefit from having a Shared or FTP repository placed locally.<br />

Currently there is no similar solution to this for <strong>IFS</strong> Applications 8, but see below<br />

for information about the Instant View functionality.<br />

flow of files in <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong><br />

Now that all bits and pieces are in place we can display the full architecture in a<br />

diagram.<br />

Application Server<br />

<strong>File</strong> Repositories<br />

<strong>IFS</strong> EE<br />

HTTP<br />

FTS<br />

Database<br />

Web<br />

Browser<br />

Temp Folder<br />

Shared<br />

Folder<br />

Middle<br />

Tier<br />

FTP<br />

Shared path<br />

HTTP<br />

Web<br />

Server<br />

FTP<br />

Flow of files in <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong><br />

Oracle AutoVue integration for <strong>Document</strong> Visualization<br />

In <strong>IFS</strong> Applications 8 we are integrating Oracle AutoVue with <strong>IFS</strong> <strong>Document</strong><br />

<strong>Management</strong>. Oracle AutoVue can briefly be described as a powerful platform for<br />

document visualization. The first functionality we will use it for is Instant View,<br />

which is a way for any user to view virtually any type of document file without<br />

needing to have the original application that created the document file. A normal<br />

user might have common word processing or spreadsheet applications installed on<br />

his PC, but most users will not have the means to view advanced 2D or 3D CAD<br />

files.<br />

7


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

When Instant View is used, the end-user will never get hold of the actual file.<br />

Instead only the information he needs to see right now is streamed from the Oracle<br />

AutoVue server out to a special viewer (implemented using Java applet technology).<br />

This has at least three additional benefits:<br />

• Security and protection of intellectual property. Since the user never gets hold of<br />

the original file he can never send the original file to someone else. For simple<br />

documents he can still take a screenshot, of course, but for heavy 3D applications<br />

or other large documents it will not be practical to do so.<br />

• Better performance over WANs or bandwidth-limited networks. Since only the<br />

content the user is looking at right now is streamed to the client, it will not require<br />

much bandwidth compared to downloading the full file to the client for viewing.<br />

• Since the file is cached on the Oracle AutoVue Server, if the same or another user<br />

views the document again, it will be quicker than the first time, and this will be<br />

very noticeable for large document files.<br />

In future release of <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong> we will make use of other functionality<br />

in Oracle AutoVue, for example creating thumbnail versions of document files<br />

for direct display in the client, automatic PDF file generation on the server when a<br />

document is checked in or released, and watermarks when printing or viewing<br />

documents Oracle AutoVue has also very powerful functionality for document<br />

markup handling and document review that we might make use of.<br />

Technical flow of the integration with Oracle AutoVue<br />

Here is an overview of the steps done when a user executes the Instant View operation<br />

in the client:<br />

• Create a special user authentication ticket. Since the communication between the<br />

viewer and the AutoVue Server is done without any proper authentication, we use<br />

a randomly generated ticket instead. This ticket is proof that we have an authenticated<br />

user. The ticket is valid for only one minute.<br />

• Open viewer and send in the document ID and ticket.<br />

• Viewer sends request to VueServlet.<br />

• VueServlet pass along the request to the AutoVue Server.<br />

• The AutoVue Server sends a request to the <strong>IFS</strong> AutoVue Connector (based on<br />

Java Servlet technology).<br />

• <strong>IFS</strong> AutoVue Connector uses the ticket against the database, which validates and<br />

removes it.<br />

8


<strong>Document</strong> <strong>Management</strong> <strong>File</strong> <strong>Handling</strong> <strong>Architecture</strong><br />

• <strong>IFS</strong> AutoVue Connector checks to see that the authenticated user have the required<br />

access to view the document.<br />

• <strong>IFS</strong> AutoVue Connector calls <strong>IFS</strong> Middle Tier to check out a copy of the document<br />

file.<br />

• <strong>IFS</strong> AutoVue Connector returns a file stream of the file copy to the AutoVue<br />

Server.<br />

• The AVS streams back only the required image information to the viewer running<br />

on the client.<br />

Integration with Oracle AutoVue<br />

The diagram below shows only the parts relevant to the <strong>IFS</strong> <strong>Document</strong> <strong>Management</strong><br />

—Oracle AutoVue integration.<br />

Clients<br />

Application Server<br />

<strong>File</strong> Repositories<br />

<strong>IFS</strong> EE<br />

Web<br />

Browser<br />

AutoVue<br />

Viewer Applet<br />

HTTP<br />

VueServlet<br />

Middle<br />

Tier<br />

Temp Folder<br />

Database<br />

Shared<br />

Folder<br />

<strong>IFS</strong> AutoVue<br />

Connector<br />

FTP<br />

HTTP<br />

AutoVue<br />

Server<br />

<strong>IFS</strong> <strong>Document</strong> <strong>Management</strong>—Oracle AutoVue integration<br />

9


About <strong>IFS</strong><br />

<strong>IFS</strong> is a public company (OMX STO: <strong>IFS</strong>) founded in 1983 that develops,<br />

supplies, and implements <strong>IFS</strong> Applications , a component-based<br />

extended ERP suite built on SOA technology. <strong>IFS</strong> focuses on agile<br />

businesses where any of four core processes are strategic: service<br />

& asset management, manufacturing, supply chain and projects.<br />

The company has more than 2,000 customers and is represented<br />

in some 60 countries with 2,800 employees in total.<br />

More details can be found at www.<strong>IFS</strong>WorlD.com.<br />

For further information, e-mail to info@ifsworld.com<br />

Americas. .................................................................+1 888 437 4968<br />

ArgenTIna, BrazIL, Canada, MEXICO, UnITED STATES<br />

Asia Pacific .............................................................. +65 63 33 33 00<br />

AUSTRALIA, InDOnESIA, JAPAn, MalaySIA, new Zealand, PhILIPPInES,<br />

PR China, SingAPORE, ThAILAnd<br />

Europe east and central asia .....................................+48 22 577 45 00<br />

BALKANS, CzECh REPUbLIC, GEORGIA, HungARy, Israel, KAZAkhSTAN,<br />

POLAnd, RUSSIA and cis, SLOVAkIA, TURkey, UKRAINE<br />

Europe Central .........................................................+49 9131 77 340<br />

AUSTRIA, BelgIUM, GERMAny, ITALY, nEThERLAnDS, SWITZERLAND<br />

Europe West ...........................................................+44 1494 428 900<br />

FRAnCE, IRELAnd, PORTUgAL, SPAIn, UnITED KingDOM<br />

MiDDle East and africa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .+971 4390 0888<br />

InDIA, SOUTh AFRICA, SRI Lanka, UnITED ARAb EMIRATES<br />

Nordic .....................................................................+46 13 460 4000<br />

DenMARk, Norway, SwEDEn<br />

Finland and the Baltic area. ...................................... +358 102 17 9300<br />

ESTOnIA, FinLAnd, LATVIA, LIThUAnIA<br />

www.ifsworld.com<br />

ThIS document may contain statements of possibLE future funCTIOnALITy for <strong>IFS</strong>’ softwARE products<br />

and technOLOgy. SUCh statements of future funCTIOnALITy are for inFORMATIOn purposes only<br />

and shOULD nOT be inTERPRETED as any commitment or represenTATIOn. <strong>IFS</strong> and all <strong>IFS</strong> product<br />

nAMES are trademarks of <strong>IFS</strong>. The nAMES of actual companIES and products menTIOnED hEREIn<br />

MAy be the trademarks of thEIR respective ownERS.<br />

<strong>IFS</strong> AB ©2013<br />

En4505-2 Production: <strong>IFS</strong> Corporate Marketing, September 2013.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!