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.