Document Management File Handling Architecture - IFS
Document Management File Handling Architecture - IFS
Document Management File Handling Architecture - IFS
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.