Internet portals are currently implementing document management systems as part of the offered services on their portal. We have been asked to review Oracle Internet File System (iFS) in order to enable iFS for the portal. This article is based on iFS version 1.0.8.3.
IFS Overview
iFS is, as its name suggests, a file system for the internet. It allows users to store content at a central location, through different interfaces like a web browser, the Microsoft Windows Explorer or an ftp client. All content is stored in an Oracle 8i Release 2 or 3 database, completely transparent for the end user.
The objects stored into iFS can get organised within a virtual folder structure and protected by access control lists (ACL) that allow fine grained access control. Versioning of the content is also supported.
Using Oracle interMedia (optional) it is possible to do full text searches through the content stored in iFS. For example, one search would allow to find all email messages, Microsoft Word documents and Microsoft Excel Spreadsheets that contain the keyword "Akadia".
Protocol Servers
Protocol servers are used to interact with iFS. You can connect to them using standard clients, such as Eudora (email) or the Microsoft Windows Explorer; iFS clients that get shipped with the product, such as the web interface; or a custom written client.
The following main protocol servers are shipped with the product:
SMTP
The SMTP protocol server allows to use iFS to deliver emails.
They will get stored in iFS.
IMAP
Through the IMAP protocol server, it is possible to connect any email client (that understands IMAP) to iFS. The emails are stored centrally within the database.
HTTP
Using the HTTP protocol server, you can access iFS using your web browser. The standard web server that gets shipped with iFS is Sun's Java Web Server. iFS is certified with JRun from Allaire, this allows to run it with many other web servers like Apache or Netscape.
FTP
The FTP protocol server is another way to store or retrieve files from iFS.
SMB
Using SMB, an iFS mount point can get mapped as a network drive in Microsoft Windows Explorer, just like any other network share. This allows to use iFS like a normal disk drive in Microsoft Windows, programs can get run directly off iFS.
IFS Services
iFS can get customised in many different ways. The following describe the "points of access".
Parsers
Whenever content is stored into iFS, the existence of an appropriate parser is checked. If there is one, the content is not just stored in its binary format, but the parser is invoked. A parser could, for example, extract some metadata out of the content and store it separately. An XML parser gets shipped with the product. Using it, objects (like users or groups) can get created automatically when uploading a file that contains its description.
Renderers
A renderer formats the output. Using a renderer, one can reconstruct a file in its original format that was parsed when stored into iFS or make it look completely different. Renderers can be seen as the opposite of a parser.
Agents
Agents are server side Java programs used to automate a task. They can react on any event within iFS. For example, a project manager could get emailed whenever one of his team members updates the timesheet. Agents can be triggered time-based, event-based or both.
Overrides
With Overrides, it is possible to re-define the functionality of iFS. This is quite complex and dangerous.
Customisation
The iFS document hierarchy will not fit all application needs. Using custom classes, the hierarchy can get extended. Custom attributes can get added to existing document classes using XML.
Java Server Pages
Custom Java Server Pages (JSP) can get written and registered to serve a specific document type (display its contents), or you can write a custom application using JSPs.
Custom Applications
The iFS Java API can get used to write custom applications or to enhance, change or customise the behaviour of the components described above. A custom application is the mix of several or all techniques to customise iFS as described above.
Requirements
iFS is quite resource intensive. The requirements for both software and hardware are described below. Oracle recommends to set up a two-tier configuration with a database server and an application server. iFS is available on Sun Solaris (Version 2.6 with patch 107733 or newer) and Microsoft Windows NT 4.0 by the time of the writing of this article. The required database release is Oracle8i, Release 2 (8.1.6), it needs the JDBC:OCI Driver for Java 1.1 to connect to it. For a two-tier configuration, Oracle Administrator Client is required, too.
For the evaluation, the complete software has been installed and configured at the offices of Akadia AG. The version used is 1.0.8.3 on Sun Solaris. Due to limited system availability, the evaluation was carried out in a single tier environment. Both the database and the application server was installed on the same machine. Both the CPU and memory minimum requirements were not met.
Installation
First of all, a new database using the NLS character set US7ACII of version 8.1.6 had to get created. The installation of JServer (required for interMedia) was very tedious, as the memory requirements are extremely high. After installing interMedia, iFS 1.0.8.0 and the patchset 1.0.8.3 was installed. This is a very easy and straightforward task.
Shared Pool and Java Pool in INIT.ORA
parallel_automatic_tuning = false
shared_pool_size = 200000000
java_pool_size = 100000000
Installation Script
#!/bin/ksh
####################################################################
#
# Install JServer and Intermedia for iFS
#
# Must be run as a UNIX user belongig to the dba group
#
###################################################################
sqlplus << EOF
internal
spool JServer.log
### Setup a database for running Java and the ORB
### ---------------------------------------------
@$ORACLE_HOME/javavm/install/initjvm.sql
### Initializes Java library needed by PL/SQL
### -----------------------------------------
@$ORACLE_HOME/rdbms/admin/initplsj.sql
### Script used to load AQ/JMS jar files into the database
### ------------------------------------------------------
@$ORACLE_HOME/rdbms/admin/initaqjms.sql
### Load Java RepAPI server classes and publish 'repapi' obj
### --------------------------------------------------------
@$ORACLE_HOME/rdbms/admin/initrepapi.sql
disconnect
spool off
exit
EOF
### Oracle81x interMedia Installation of ORDSYS
### and ORDPLUGINS objects
### -------------------------------------------------------------
sqlplus << EOF
internal
spool ordinst.log
@$ORACLE_HOME/ord/admin/ordinst.sql
spool off
exit
EOF
sqlplus << EOF
internal
SPOOL iminst.log
@$ORACLE_HOME/ord/im/admin/iminst.sql
spool off
exit
EOF
sqlplus << EOF
internal
spool spoolctx.log;
@$ORACLE_HOME/ctx/admin/dr0csys ctxsys DRSYS DRSYS
connect ctxsys/ctxsys
@$ORACLE_HOME/ctx/admin/dr0inst
/opt/oracle/product/8.1.6/ctx/lib/libctxx8.so
@$ORACLE_HOME/ctx/admin/defaults/drdefus.sql
spool off
exit
EOF
Configuration
iFS is configured using a graphical configuration assistant or by editing the text configuration files. Only minimal configuration is required to get iFS running.
Tests
The HTTP protocol server and the shipped web client have been tested extensively. The application is very robust and works well even with large files (note that only the Sun Java Web Server was tested - it does not allow for scalability). A 20MB upload lasted approximately 2 minutes (via LAN, database not tuned). The FTP protocol server also worked without problems, but was not tested extensively. Other interfaces were out of the scope of these tests.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/936/viewspace-60587/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/936/viewspace-60587/