Server Integration
iNetWord is designed to integrate with other online services and systems. The server portion of iNetWord is relatively lightweight. It runs on the Linux/Apache/MySQL/PHP (LAMP) platform without MySQL:
Linux
Apache
PHP
Platform Dispatch LayerBy default iNetWord's server runs on the Linux native file system and user accounts. The internals of the iNetWord server are structured, however, so that file and account operations travel through a Platform Dispatch Layer. We use the term Platform here to refer not to the operating system but to the entire server infrastructure, including network attached components.
The Platform Dispatch Layer consists of 29 primitive methods for querying and manipulating user accounts, files, and folders. The Layer dispatches requests made to it to the appropriate platform implementation. Which platform implementation to use is determined by examining:
iNetWord's server is integrated and optimized by modifying the Platform Dispatch Layer dispatch logic. For example, since autosave requests from the editor running in the user's browser are frequent and do not indicate the user wishes to commit those changes yet, they are often dispatched to the server's native file system for interim storage. Then, when the user eventually presses the Save button, the file save operation is dispatched to their primary document store on a different server.
Another example is the thumbnails associated with an uploaded picture file. If the system iNetWord is integrated with does not yet support thumbnail generation or browsing, then the Platform Abstraction Layer dispatch code can be configured to dispatch all thumbnail operations to the native Linux+Apache file system.
The platform dispatch primitive methods are:
platform_AddGlob( $absfile, $glob_list, $globflags ) platform_folders_dropdown_data( $absfolder, $foldersarray ) platform_write_user_setting( $docfolder, $settingname, $settingvalue ) platform_read_user_setting( $docfolder, $settingname ) platform_get_web_url( $absfolder ) platform_get_ftp_url( $absfolder ) platform_get_local_pathrootDISK( $absfile ) platform_chdir_hook( $paneid, $absfolder ) platform_mkdir( $absfile, $ferrifexists ) platform_copy_file( $absfile_src, $absfile_dest ) platform_move_file( $absfile_src, $abssubdir_dest ) platform_link_file( $absfile_src, $abssubdir_dest, $fSymlink ) platform_is_file_link( $absfile ) platform_read_file( $absfile, $freturnit ) platform_write_file( $absfile, &$newcontents, $fprocesshtml ) platform_append_file( $absfile, &$appendcontents ) platform_process_locked_file( $absfile, $callbackfunc, &$callbackarg ) platform_dir_exists( $absfile ) platform_file_exists( $absfile ) platform_stat_file( $absfile, $ferrifmissing, $fsymfile ) platform_file_perms( $absfile ) platform_unlink( $absfile, $ferrifmissing ) platform_empty_subdir( $abssubdir, $fandsubsubdirs ) platform_can_we_convert_this_pict( $absfile ) platform_picture_ensurethumbnail( $absfile ) platform_login( $userid, $pword ) platform_validate_user( $file, $line ) platform_get_display_userid() platform_is_a_user( $userid )
Configuration SubsystemiNetWord has a server and client side configuration subsystem that initializes, maintains, and communicates configuration settings throughout the system. Configuration settings control iNetWord's location within the Apache URL namespace, its location within the Linux filesystem, the location of user files within the local file system, and many other options and operational details.
Examples of Configuration Directives are:
Version = b2.00.57 |