Calendaring and Scheduling Software
   calendaring and scheduling software scheduling software   support for calendaring and scheduling software  Force Accounting FAQs demo calendaring and scheduling  software purchase calendaring and scheduling software sitemap for calendaring and scheduling software


SYNCHRONIZE
Technical Overview

Synchronize is a scheduling and task management tool designed to meet the needs of the corporate computing environment. Synchronize is simple to use and administer, feature-rich to meet user requirements and powerful enough to meet demanding Information Systems requirements.

Synchronize's workgroup features include the ability to schedule meetings and resources, distribute agendas and memos, assign and track tasks, and send out reminders. Synchronize offers each user individual and group Calendar Views, Popup Notes, and automatically updated To-Do Lists. Other key features include user environment customization capability, system-wide resource management and hierarchical permissions. Support for portable computers enable users to take their schedules wherever they go.

Synchronize's robust client/server architecture is designed to provide the real-time performance required for enterprise-wide scheduling and workgroup productivity solutions. Distributed databases along with performance optimizations provide transparent scalability. This design is capable of serving thousands of users both locally and in geographically separate locations. Administrators can easily distribute Synchronize's common database into many networked databases, resulting in effortless deployment and scaling.

Designed for the mixed computing environment, Synchronize supports servers on Windows WINDOWS NT/2000/XP/2003,and most commercial UNIX platforms as well as desktop clients for Microsoft Windows, UNIX/Motif, UNIX/ASCII and Web browsers. Clients and servers can be mixed and matched to optimize an enterprise's existing computing resources.

With the addition of CyberScheduler, organizations now have the choice of deploying Synchronize on their Intranets. The CyberScheduler distribution includes a CGI program which is installed on a Web server, and a Web agent which is installed on the Synchronize server. Users can then have full scheduling functionality with CyberScheduler through a Web browser, such as Netscape Navigator or Microsoft Internet Explorer.


Architecture

Synchronize is designed to meet the demanding performance requirements of the corporate environment. The design directly addresses key issues of scalability, speed, and ease of administration. Unlike personal schedulers (or personal schedulers retrofitted to provide "group scheduling"), Synchronize maintains scheduling information for a set of users in a common database, which provides the fastest access to group scheduling information, minimizes desktop storage and backup issues and is also the most straightforward model for administration. The scalability issue is addressed by the client/server design with distributed database support.

Client/Server

The client/server model provides high performance. The Synchronize server (a process) acts as the conduit through which all Synchronize clients access the database. All communication is initiated by a client request that returns an acknowledgment from the server. By separating the client and server processes, Synchronize achieves performance gains by caching recently requested information on the client side and recently retrieved information on the server side. The most significant advantage of the client/server design, with respect to scalability, is the support for distributed databases.

Distributed Databases

As the number of users in an enterprise grows, the size of the common database grows correspondingly. The Synchronize server handles all client requests and the location of the Synchronize database is transparent to the user. This allows the administrator to distribute the common database into many networked databases using whatever distribution scheme is appropriate for the enterprise. The resultant distributed databases are still functionally a "common database" but they are physically separate. These databases can exist on several different machines at a particular site or on thousands of machines worldwide, with a router agent used to forward changes effected in the local database to remote databases.

When a user schedules a calendar item across various databases, the data is sent to the user's local server, where the item can be scheduled without requiring the client to wait for acceptance by remote servers. The Synchronize forwarding agent then routes the item (along with other queued items) to the appropriate remote database(s). If the remote database is not available, the forwarding agent automatically tries again, at a later time.

Optimizations

Multi-threading

The Synchronize server's multi-threaded capability is available for server architectures that support this option. It includes a flexible design to support both multi-threaded environments as well as traditional single-threaded process architecture. The Synchronize server utilizes multiple threads to enable responses even when performing I/O over the network or to the local file system. The multi-threaded server supports three classes of threads which function independently to eliminate performance delays even when many users are scheduling time and resources concurrently.

  • Client reader threads-handle client requests over the network, freeing other threads within the server to perform other functions in the event a particular network thread becomes blocked. The number of client reader threads is administrator configurable.
  • Disk write-cache flush thread-handles disk I/O, enabling the server to respond to clients if the disk I/O becomes blocked.
  • Server-to server communication thread-enables the rest of the server to perform routine tasks if this portion of the network I/O becomes blocked.

Server Caching

In order for each server to support hundreds of clients, the server must minimize slower operations such as disk I/O. To effect such minimization, both read and write caches are implemented in the server. For example, when the server is the only process writing to the database, it's read cache never gets stale. That is, once a file is read in by the server, it never has to be re-read in normal operation. In addition to the read cache, a write caching mechanism has been implemented. All write requests by clients are buffered and flushed to disk at an interval defined by the Synchronize administrator. In this fashion, clients usually do not have to wait for disk I/O in order to get responses to their requests.

Server Multiplexing

The limitation on the number of open file descriptors (this number ranges from 60 to 255 depending upon the platform) necessitates that the server close the connected sockets on old clients before accepting new clients as the limit is approached. The connection for the dropped clients is restored upon their next request to the server, with a reconnect delay of one to two seconds experienced by the user. A good side effect of this strategy is that servers can be killed and restarted without the client being aware of these operations.

Client-side caching

Client-side caching provides quick database access and eliminates unnecessary network traffic and redundant client requests. When a client makes a request to the database server, a tag is sent with the request reflecting the state of the data in the client cache. The server then checks for validity of that data. If the data are valid, the server simply informs the client of that fact. If not, new data reflecting the client request are sent, at which point the client flushes the invalid portion of its cache, replacing it with valid data. Because all changes made by the client are automatically updated to the local cache, the cache becomes invalid only if changes are made by other clients.




Built for Flexibility

Synchronize adapts to each organization's computing environment. Synchronize protects existing investment in hardware and software by providing support for a range of client and server platforms, import/export capabilities and industry standards.

Supported Hardware

The Synchronize server runs on Windows WINDOWS NT/2000/XP/2003 and over 20 different UNIX platforms. All popular enterprise desktop clients are supported, including: MS Windows, UNIX/Motif and UNIX/ASCII and Web browsers. Also, users may disconnect their portable computer from the network and run Synchronize as a stand-alone application. When the user later reconnects to the network Synchronize automatically merges the information between the user's portable computer and the server.

Portability

By adhering to the Posix standard, the various Synchronize clients and servers utilize as much common code as possible in order to facilitate ports to different platform architectures (UNIX, Windows, WINDOWS NT/2000/XP/2003). All disk and network access, as well as internal data management, go through the common libraries provided for each platform. Thin layers between the common libraries and the underlying APIs facilitate use of these common libraries by the GUI clients and the servers on UNIX and WINDOWS NT/2000/XP/2003. This approach enables smooth "ports" from one UNIX platform to the next, and less significant efforts on movement of code to WINDOWS NT/2000/XP/2003.

Communication, Integration & Migration

Synchronize has the ability to export data from and import data into its database using a tab delimited ASCII file format. The Import/Export File Format is available for communication/integration with other scheduling tools as well as your corporate database management system.

Network

The Synchronize networking code uses TCP/IP and Berkeley sockets for all communication between client and server. By adhering to the Berkeley socket interface, the networking code is portable across all major server platforms. This approach makes communication across WANs and LANs straightforward and efficient. Care has been taken to support slow transports, with the end result that even the Internet can be used to access a Synchronize server.




Smooth Administration

Synchronize is designed with the System Administrator in mind. It provides the tools, documentation and support to make system administration easier. Because users can manage and customize their individual workspaces without assistance, the Administrator's resources are conserved.

Installation

The installation of Synchronize takes about ten minutes and does not require any kernel or system configuration changes. An installation tool provides an interactive script that guides the System Administrator through installation in any environment. The script provides default selections for standard configurations, further simplifying installation.

Transparent Scalability

The distributed database architecture allows administrators to add new users and groups easily and transparently, without disruption to the current user population.

Documentation

Synchronize's on-line help facility accommodates all levels of users. The on-line help contains the preponderance of information in the Synchronize User's Guide. On-line help provides the information in a random access format so the user sees only the information of interest. The printed documentation follows the traditional linear format.

Administration Tools/Utilities

A number of utilities have been written to facilitate administration of the Synchronize database. These include a utility to expire data in a database, a client to copy a user's data from one database to another, and an OpenMail® utility to automate maintenance of users and groups using HP's OpenMail directory services.

User Configuration

Users can set up the behavior of Synchronize from their own desktop using their client's configuration options. Such items include changing colors and fonts, routing their print-outs to any printer or receiving email about events.

Technical Support

CrossWind provides a high level of technical support via telephone and/or email. Enhancements and bug fixes are made available via FTP for faster response time.