CS Unit 2
CS Unit 2
TECHNICAL TERMS:
The WWW is a new way of viewing information -- and a rather different one. If, for example, you are viewing
this paper as a WWW document, you will view it with a browser, in which case you can immediately access
hypertext links. If you are reading this on paper, you will see the links indicated in parentheses and in a different
font. Keep in mind that the WWW is constantly evolving. We have tried to pick stable links, but sites reorganize
and sometimes they even move. By the time you read the printed version of this paper, some WWW links may
have changed.
The WWW project has the potential to do for the Internet what Graphical User Interfaces (GUIs) have done
for personal computers -- make the Net useful to end users. The Internet contains vast resources in many fields
of study (not just in computer and technical information). In the past, finding and using these resources has been
difficult.
The Web provides consistency: Servers provide information in a consistent way and clients show information
in a consistent way. To add a further thread of consistency, many users view the Web through graphical
browsers which are like other windows (Microsoft Windows, Macintosh windows, or X-Windows) applications
that they use.
1
A principal feature of the Web is its links between one document and another. These links, described in the
section on hypertext, allow you to move from one document to another. Hypertext links can point to any server
connected to the Internet and to any type of file. These links are what transform the Internet into a web.
The Web project was started by Tim Berners-Lee at the European Particle Physics Laboratory (CERN) in
Geneva, Switzerland. Tim wanted to find a way for scientists doing projects at CERN to collaborate with each
other on-line. He thought of hypertext as one possible method for this collaboration.
Tim started the WWW project at CERN in March 1989. In January 1992, the first versions of WWW
software, known as Hypertext Transfer Protocol (HTTP), appeared on the Internet.
By October 1993, 500 known HTTP servers were active.
When Robelle joined the Internet in June 1994; we were about the 80,000th registered HTTP server.
By the end of 1994, it was estimated that there were over 500,000 HTTP servers. Attempts to keep track of the
number of HTTP servers on the Internet have not been successful. Programs that try to automatically count
HTTP servers never stop -- new servers are being added constantly.
Hypertext
Hypertext provides the links between different documents and different document types. If you have used
Microsoft Windows Win Help system or the Macintosh HyperCard application, you likely know how to use
hypertext. In a hypertext document, links from one place in the document to another are included with the text.
By selecting a link, you are able to jump immediately to another part of the document or even to a different
document. In the WWW, links can go not only from one document to another, but from one computer to another.
Web Client/server
Client/server describes the relationship between two computer programs in which one program, the client, makes
a service request from another program, the server, which fulfills the request. Although the client/server idea can
be used by programs within a single computer, it is a more important idea in a network. In a network, the
client/server model provides a convenient way to interconnect programs that are distributed efficiently across
different locations. Computer transactions using the client/server model are very common.
For example, to check your bank account from your computer,
A client program in your computer forwards your request to a server program at the bank.
That program may in turn forward the request to its own client program that sends a request to a database
server at another bank computer to retrieve your account balance.
The balance is returned back to the bank data client, which in turn serves it back to the client in your personal
computer, which displays the information for you.
The client/server model has become one of the central ideas of network computing. Most business applications
being written today use the client/server model. So does the Internet's main program, TCP/IP. In marketing, the
term has been used to distinguish distributed computing by smaller dispersed computers from the "monolithic"
centralized computing of mainframe computers. But this distinction has largely disappeared as mainframes and
their applications have also turned to the client/server model and become part of network computing.
In the usual client/server model, one server, sometimes called a daemon, is activated and awaits client requests.
Typically, multiple client programs share the services of a common server program. Both client programs and
server programs are often part of a larger program or application.
Relative to the Internet, your Web browser is a client program that requests services (the sending of Web pages
or files) from a Web server (which technically is called a Hypertext Transport Protocol or HTTP server) in
another computer somewhere on the Internet.
Similarly, your computer with TCP/IP installed allows you to make client requests for files from File Transfer
Protocol (FTP) servers in other computers on the Internet.
Other program relationship models included master/slave, with one program being in charge of all other
programs, and peer-to-peer, with either of two programs able to initiate a transaction.
2
A Web Client/Server Interaction:
Protocol Scheme: Tells the Web browser which Internet Protocol to use when accessing a resource on a server.
Major protocols supported are FTP, News, Mailto and WAIS. HTTP is the web native protocol.
The Server Name: It specify the internet host domain name.
The Port Number: Identifies a program that runs on a particular server. Port numbers are specified by : and port
number. Http port is 80 and FTP port is 21.
The path to a target resource: Starts with the forward slash after the host and port number. Set of directory
paths and related files will be available in server side.
In order to use the WWW, we must know something about the language used to communicate in the Web. There
are three main components to this language:
a)Uniform Resource Locators (URLs)
URLs provide the hypertext links between one document and another. These links can access a variety of
protocols (e.g., ftp, gopher, or http) on different machines (or your own machine).
b) Hypertext Markup Language (HTML)
WWW documents contain a mixture of directives (markup), and text or graphics. The markup directives do such
things as make a word appear in bold type. For PC users, this is completely different from WYSIWYG (what
you see is what you get) editing. However, a number of tools are now available on the market that hides the
actual HTML.
c) Common Gateway Interfaces (CGI)
Servers use the CGI interface to execute local programs. CGIs provide a gateway between the HTTP server
software and the host machine.
3
Hypertext Transfer Protocol
When you use a WWW client, it communicates with a WWW server using the Hypertext Transfer Protocol.
When you select a WWW link, the following things happen:
The client looks up the hostname and makes a connection with the WWW server.
The HTTP software on the server responds to the client's request.
The client and the server close the connection.
Compare this with traditional terminal/host computing. Users usually logon (connect) to the server and remain
connected until they logoff (disconnect). An HTTP connection, on the other hand, is made only for as long as it
takes for the server to respond to a request. Once the request is completed, the client and the server are no longer
in communication. WWW clients use the same technique for other protocols. For example, if you request a
directory at an, the WWW client makes an FTP connection, logs on as an anonymous user, switches to the
directory, requests the directory contents, and then logs off the FTP server.
HTTP Request:
HTTP Response:
4
We have to remember that each browser in effect has its own HTML style sheet. For example, Lynx and Mosaic
do not insert a blank line before unnumbered user lists, but Netscape does.
Creating HTML
Creating HTML is awkward, but not that difficult. The most common method of creating HTML is to write the
raw mark-up language using a standard text editor. Instead of hiding the HTML tags, HTML Writer provides
menus with all of the HTML elements and inserts these into a text window. To see how your documents look,
you must use a separate Web browser. Microsoft has produced a new add-on to Microsoft Word that produces
HTML is available from Microsoft at no charge. You will need to know the basic concepts of Microsoft Word to
take advantage of the Internet Assistant.
A special type of client/server architecture consisting of three well-defined and separate processes, each running
on a different platform:
▪ The user interface, which runs on the user's computer (the client).
▪ The functional modules that actually process data. This middle tier runs on a server and is often called
the application server.
▪ A database management system (DBMS) that stores the data required by the middle tier. This tier runs
on a second server called the database server.
The three-tier design has many advantages over traditional two-tier or single-tier designs, the chief ones being:
▪ The added modularity makes it easier to modify or replace one tier without affecting the other tiers.
▪ Separating the application functions from the database functions makes it easier to implement load
balancing.
3-Tier Architecture
5
3-Tier TP Monitor
3 Tier Applications
6
CGI: Common Gateway Interface
A HTTP server is often used as a gateway to a legacy information system; for example, an existing body of
documents or an existing database application. The Common Gateway Interface is an agreement between HTTP
server implementers about how to integrate such gateway scripts and programs. It is typically used in
conjunction with HTML forms to build database applications. How is a form’s data passed to a program that
hangs off an HTTP server? It gets passed using an end-to-end client/server protocol that includes both HTTP and
CGI. The So best way to explain the dynamics of the protocol is to walk you through a POST method
invocation.
CGI:
How the client and server programs play together to process a form’s request. Here’s the step-by-step
explanation of this interaction:
7
CGI AND STATE
A CGI program is any program designed to accept and return data that conforms to the CGI specification. CGI
programs are the most common way for Web servers to interact dynamically with users. Many HTML pages that
contain forms, for example, use a CGI program to process the form's data once it's submitted.
The CGI protocol is stateless. It will not maintain information about the client. One client request is independent
of the other requests. The server forgets everything after the request is serviced. State maintenance means
maintaining information from one form to the next. Hidden fields within a form can be used to maintain the
state.
Hidden fields are basically invisible; they contain values that are not displayed within a form. They are used to
store information a user enters and resubmit that information in subsequent forms without having the user reenter
it or even be aware that the information is being passed around. The hidden fields act as variables that maintain
state between form submissions. It gets passed through the CGI program.
Above figure shows an electronic transaction that requires multiple form submissions, which lead to an
electronic payment. The first set of forms lets you pick the merchandise that you place on your electronic
shopping cart. The next form requests a delivery address and time. The last form presents you with the bill and
requests some form of payment.
The CGI program processes a form and then presents us with the next form; this continues until we make our
final payment or abort the transaction. The trick here is that the CGI program uses invisible fields to store
information from the previous forms in the next form. For example, it writes inside the invisible fields the goods
we are selected in the previous forms. We never see the contents of these hidden fields. We never know where
they are unless we view the html document in some editor. When we submit the form, all these hidden fields are
passed right back to the CGI program along with any new data. The CGI program stores the state of the
transaction in the forms it sends back to the client instead of storing it in its own memory.
8
SQL database servers
SQL Database Servers are the dominant model for creating client/server applications. SQL server vendors
including Oracle, Sybase, Informix and Ingres have almost become household names.
The relational model of database management was developed by IBM’s San Jose Research Lab in the early 70’s
by E.F.Codd. SQL stand for Structured Query Language. SQL is developed as a English like front-end query
language to the system R relational database prototype. It mainly based on set theory and predicate calculus.
SQL is having flexible commands that can be used to manipulate information collected in tables. The relational
model calls for a clear separation of the physical aspects of data from their logical representation. Data is made
to appear as simple tables that mask the complexity of the storage access mechanisms. The model frees you from
having to concern yourself with the details of how the data is stored and makes the access data purely logical.
Using SQL one need to specify the tables , columns and conditions to get any data.
Oracle Corporation was the first company to offer a commercial version of SQL with its Oracle Database in
1979. In the early 80’s IBM came out with its own SQL products: SQL/Ds and DB2.
The SQL language is used to perform complex data operations with a few simple commands in situations that
would have required hundreds of lines of conventional code. Physicists might call SQL "the grand unified theory
of database" because of the multifaceted roles it plays. Here is a partial list of roles:
Standard Properties
SQL-89 Intersection of the SQL implementations
Embedded SQL
Referential Integrity
SQL-92 Connections
BLOBs
Join Operators
Catalogs
Dynamic SQL
Domain Integrity
SQL e Object SQL
Stored Procedures
Triggers
User-Defined types
CLI (Common Language Interface)
Cursors
Multimedia
9
Functionalities of a Database Server:
In database-centric client/server architecture, a client application usually requests data and data-related services
from a database server. The database server or SQL engine responds to the client’s requests and provides
secured access to shared data.
❖ An SQL server manages the control and execution of SQL commands.
❖ It provides the logical and physical views of the data.
❖ Most database servers provide server administration features and utilities that help manage
the data.
❖ A database server also maintains dynamic catalog tables that contain information about the
SQL objects housed within it since an SQL server allows multiple applications to access the
same database at the same time.
❖ The server manages the recovery, concurrency, security and consistency aspects of a database.
❖ The server manages the lock mechanism during the course of executing a transaction and
protecting database objects from unauthorized access.
There are three server architectures that databases use to handle remote database clients as Process-per-client,
Multithreaded and Hybrid.
Advantages:
❖ It protects the users from each other
❖ It protects the database manager from the users
❖ The processes can easily be assigned to different processors on a
multiprocessor SMP machine.
10
Disadvantages:
❖ It consumes more memory and CPU resources.
❖ It can be slower because of process context switches and inter process
communications overhead.
2. Multithreaded architectures provide the best performance by running all the user
connections, applications and the database in the same address space. This architecture
provides its own internal scheduler and does not rely on the local OS’s tasking and address
protection schemes.
Advantages:
❖ It conserves memory and CPU cycles by not requiring frequent context
switches.
❖ The server implementations tend to be more portable across platforms
because they don’t require as many local OS services.
Disadvantages:
❖ A misbehaved user application can bring down the entire database server
and all its tasks.
❖ User programs that consist of long-duration tasks can hog all the server
resources.
❖ The preemptive scheduling provided by the server tends to be inferior to
the native OS’s scheduler.
11
Advantages:
❖ It provides a protected environment for running user tasks without
assigning a permanent process to each user.
Disadvantages:
❖ Queue latencies.
1) Stored procedure is a named collection of SQL statements and procedural logic that is
compiled, verified, and stored in the server database. Stored procedure is a database-centric,
RPC-like SQL entity that is persistent, shared, and has a name. They also provide better site
autonomy. It is typically treated like any other database object and registered in the SQL catalog.
Access to the stored procedure is controlled through the server’s security mechanisms.
Stored procedures accept input parameters so that multiple clients using different input data can
use a single procedure over the network. The client invokes a remote procedure and passes it the
parameters required to do a job. A single remote message triggers the execution of a collection of
stored SQL statements. The result is the reduction in network traffic.
The concept of stored procedures is used to enforce business rules and data integrity; to perform
system maintenance and administration functions; and to extend the database server’s functions.
The primary use of stored procedures is to create the server side of an application’s logic.
The encapsulation features of stored procedures are well suited for creating performance-critical
applications known as “On Line Transaction Processing” (OLTP). The applications typically
• Receive a fixed set of inputs from remote clients
• Perform multiple precompiled SQL commands against a local database
• Commit the work
• Return a fixed set of results
Static SQL statements are defined in code and converted into an access plan at program
preparation time. The SQL statement is known before the program is run. The database objects
12
need to exist when precompiling static SQL statements. Static SQL is a performance
enhancement feature. Static SQL is used for writing highly optimized transaction programs.
Dynamic SQL statements are created and issued at run time. They offer maximum flexibility at
the expense of execution speed. Dynamic SQL is an interpretive form of the SQL language. The
database objects need not exist when precompiling static SQL statements. The compilation of
dynamic SQL statements is done at run time and must be repeated every time the same statement
gets executed again. Dynamic SQL is used for writing general database programming utilities. In
general, stored procedures provide better distribution of intelligence than static or dynamic
remote SQL.
Disadvantages:
2) Triggers are special user-defined actions—usually in the form of stored procedures—that are
automatically invoked by the server based on data-related events. Triggers can perform complex
actions and can use the full power of a procedural language. Triggers are called implicitly by
database-generated events.
3) Rules are special types of trigger that is used to perform simple checks on data.
Triggers and rules are attached to specific operations on specific tables. Triggers and rules are
typically used to perform tasks related to changes in tables, such as auditing, looking for value
thresholds, or setting column defaults. Enabled triggers or rules are executed whenever an SQL
DELETE, INSERT or UPDATE commands update a table. A separate trigger or rule can be
defined for each these commands, or a single trigger may be defined for any updates to a table.
13
Middleware and Federated Databases
Federated database system is a type of meta-database management system (DBMS), which transparently maps
multiple autonomous database systems into a single federated database. The constituent databases are
interconnected via a computer network and may be geographically decentralized.
Middleware software is a layer between two systems that makes it easy for the two to communicate and is
considered the glue that holds together applications, making seamless connectivity possible without requiring the
two applications to communicate directly.
To Create the ‘single database illusion’ the middleware must make two sets of customers happy: 1) the
developers of applications and front-end tools who need a single OS-independent SQL API to get to any
database server; and 2) the MIS connectivity people who must make the disparate desktop clients talk to the
‘federated’ database servers on their enterprise networks.
Middleware starts with the API on the client side that is used to invoke a service, and it covers the transmission
of the request over the network and resulting response. Middleware does not include the software that provides
the actual service.
A single vendor SQL solution can fulfill all our shared data needs. Below figure shows a typical single-vendor
middleware solution.
▪ A vendor-proprietary SQL API that works on a multiplicity of client platforms: Most vendors support
DOS, Windows and OS/2 Clients. Some vendors support Unix also.
14
▪ A vendor-proprietary SQL Driver: This is a thin client run-time element that accepts the API calls,
formats an SQL message, and handles the exchanges with the server. The format of the SQL message is
known as FAP (Format and Protocol).
▪ FAP support for multiple stacks: Support for multiple protocol stacks like IPX/SPX and TCP/IP.
▪ Gateways to other vendor databases: Support for dynamic SQL, simple data extraction and queries and
not for transaction processing.
▪ Client/Server database administration tools: Manage Database from remote location using some
administration tools.
▪ Front-End graphical application development and query tools: These help us to create visual interfaces
to the database server.
The below figure shows the architecture of multivendor environment. The inconsistencies that we will
immediately face are:
In this model, a common SQL API is used by all the applications, and then let the server differences be handled
by the different database drivers.
15
Problems associated with this model:
- Which SQL API to standardize on? How are stored objects on the server defined and invoked? Will
the common interface be slower than the native vendor implementation?
- Multiple drivers are still required. should the location of driver in the client side or in the server side?
Who provides the drivers to the “common API”? What is the benefit of vendors to support common
driver over their own native driver?
- Multiple managing stations and multiple FAPS are still required. The problems are invisible to the
developer but still exist. The system administration also tedious.
The main objective of open gateway is to standardize on one or two open industry FAPS, supply a common
client driver for the FAP, and develop a gateway catcher for each server. The gateway catcher will catch the
incoming FAP messages and translate them to the local server’s native SQL interface. The commonly available
FAPs are ISO/SAG RDA, IBM’s DRDA and EDA/SQL FAP.
16
Middleware Solution 3: The Federated FAP:
Assume we have both the common FAP and the common API. A federated environment that provides the same
level of completeness as the single vendor implementation is shown in the below figure. The gateway catchers
are removed to improve the server performance, reduce the cost and simplify maintenance. A single database
admin interface is available. The SQL vendors need to replace their own private FAPs with the common API.
There should be a single admin window available to manage the federated databases as like IBM’s DataHub.
17
Embedded SQL is an ISO SQL-92 defined standard for embedding SQL statements within ordinary
programming language like C, COBOL and FORTRAN. Each SQL statement is flagged with language-specific
identifiers that mark the beginning and end of the SQL statement. This approach requires running the SQL
source through a precompiler to generate a source code file that the language compiler understands. As an
example, for C, an embedded SQL statement must start with the EXEC SQL keyword pair and end with a
semicolon (;). These bracketed statements will be processed by the precompiler and anything else in your source
code will be passed through unchanged. Precompilers are tied to a particular database product; one must
recompile their code for each vendor’s database server.
The alternative to Embedded SQL is to use a callable SQL API for database access. An API does not require a
precompiler to convert SQL statements into code, which is then compiled and bound to a database. Instead, an
API allows us to create and execute SQL statements at run time. In theory, a standard API can help us write
portable applications that are independent of any database product.
Data Warehouses
OLTP:
Online transaction processing (OLTP) is a class of systems that supports or facilitates high transaction-oriented
applications. OLTP’s primary system features are immediate client feedback and high individual transaction
volume. OLTP is mainly used in industries that rely heavily on the efficient processing of a large number of
client transactions, e.g., banks, airlines and retailers. Database systems that support OLTP are usually
decentralized to avoid single points of failure and to spread the volume between multiple servers. OLTP
applications also require tight controls over the security and integrity of the database.
In OLTP systems, the client typically interacts with a Transaction Server instead of a Database Server. OLTP
servers are of two types:
- OLTP Lite - provided by stored procedures
- OLTP Heavy – provided by TP Monitors.
OLTP applications require code to be written for both the client component and for the server transactions. The
client interaction with the transaction server is typically limited to short, structured exchanges. The exchange
consists of a single request/reply as opposed to multiple SQL message exchanges.
Decision-Support System:
A decision support system (DSS) is a computer-based application that collects, organizes and analyzes business
data to facilitate quality business decision-making for management, operations and planning. A well-designed
DSS aids decision makers in compiling a variety of data from many sources: raw data, documents, personal
knowledge from employees, management, executives and business models. DSS analysis helps companies to
identify and solve problems, and make decisions.
Decision Support Systems are not generally time-critical and can tolerate slower response times. Client/Server
decision support systems are typically not suitable for mission-critical production environments. They have poor
integrity controls and limited multitable access capabilities. Finding information may involve large quantities of
data, which means that the level of concurrency control is not very granular.
18
Executive Information System:
Executive Information System (EIS) are even more powerful, each-to-use, and business-specific than DSS tools.
They are more expensive. The EIS tools have recently expanded their scope and offer a broader range of
functions at the enterprise level. It can be called as Enterprise Information System as these systems now have
hundreds of users with many roles such as executive, manager and business analyst. The DSS/EIS system
referred to as Online Analytical Processing (OLAP) or Multidimensional Analysis (MDA) tools.
Data Warehouse:
A data warehouse is a relational database that is designed for query and analysis rather than for transaction
processing. It usually contains historical data derived from transaction data, but it can include data from other
sources. It separates analysis workload from transaction workload and enables an organization to consolidate
data from several sources.
1. The data replication manager manages the copying and distribution of data across databases as
defined by the information hound. The hound defines the data that needs to be copied, the source and
destination platforms, the frequency of updates, and the data transforms. Refresh involves coping over
the entire data source; update only propagates the changes.
2. The informational database is a relational database that organizes and stores copies of data from
multiple data sources in a format that meets the needs of information hounds. It also stores metadata that
describes the contents of the informational database. System level metadata describes the tables, indexes
etc; semantic-level metadata describes the contents of the data to an information hound. The information
database can be a personal database on a PC, a medium-sized database on a local server, or a massively
parallel database on a enterprise server.
19
3. The information directory combines the functions of a technical directory, business director, and
information navigator. Its primary purpose is to help the information hound find out what data is
available on the different databases, what format it’s in, and how to access it.
4. EIS/DSS tool support is provided via SQL. Most vendors support ODBC and some other protocol.
Some tools provide sequential access of large data quantities than access to a single record.
We can create almost any type of topology with data warehouses. Below figure shows a multilevel topology that
is currently very popular.
All data extracts from production databases are first applied against an enterprise data warehouse. Once the data
gets into the enterprise warehouse, it can then be distributed, as needed, to departmental warehouses, also known
as Datamarts. These Datamarts are organized by subjects that are of interest to a department; for example, sales
data and customers for the West Region. There is also a growing interest in mobile Datamarts. These are
personal warehouses that we can load in a laptop and take with us on the road.
20
GroupWare Server
GROUPWARE
Client/server groupware is a collection of technologies that allow us to represent complex processes that center
around collaborative human activities. The components of the groupware are:
Multimedia
Workflow E-mail Conferencing Scheduling
Documents
Groupware used to automate customer service and make a company more responsive. Groupware also has the
potential to flatten organizations and remove layers of bureaucracy. It allows direct contributors-wherever they
may be-to collaborate on a job using client/server networks. It helps manage the product through its various
phases; it also allows the contributors to exchange ideas and synchronize their work. It keeps track of the
collective memory of the group. The other names for groupware are collaborative computing, workgroup
computing.
“Groupware is the software that supports the creation, flow and tracking of non-
structured information in direct support of collaborative group activity”.
21
1. Scheduling: It is a native groupware technology. There is extensive innovation behind the
electronic scheduling of meetings, sharing calendars and “to do” lists. The client front-ends make
excellent use of GUI facilities; the servers use background tasks, shared data and triggers to manage
and schedule group events. If the scheduling and calendaring technologies are grouped together, a
workflow manager would be able to automatically add a meeting to the calendars of all the
participants, schedule a meeting room, and send them reminder notices or a workflow manager
could consult group calendars to discover who is on vacation and route work accordingly. EG:
Calendaring and scheduling API (CSA).
• Real time conferencing: Real time conferences allow groups to interactively collaborate
on a joint project using instantly refreshed document replicas, electronic whiteboards,
different colored cursors with the initials of each participant and a designated chairperson
that controls access to the shared document. Participants can speak on their microphones
and see each other in video windows. Lotus makes the Real time Notes conferencing
package available at no cost in Notes clients.
• Anytime conferencing: Anytime conferences allow people to participate in-group
discussions when and where they want. People can join the discussion, add their own two
cents and leave at anytime. This flexible environment helps articulate spontaneous groups
around a topic of interest—customer support, OS advocacy, shared problems and project
tracking. The medium is open and democratic. Everyone gets the opportunity to express
him or herself—ideas are never lost. As these conferences flourish and multiply, tools are
provided for viewing and navigating through the mazes of information they contain.
Conferences provide one more technology that helps articulate the “group” in groupware.
EG: The basic unit of storage in groupware such as Lotus Notes is the document. A notes
document has an extremely flexible structure; it can be tagged with properties such as client,
region and subject. A notes document can have any number of BLOB-like attachments. Notes
supports a multimedia document architecture, which means that it can handle multiple data types
like text, images, graphics, voice clips and video.
Related collections of Notes documents are stored in databases that can then be indexed and
retrieved by any of the documents’ properties, or by the actual contents of the documents. A note
also supports full-text indexing. In addition, Notes created its own document database technology
from scratch; unlike the image vendors, it does not build on top of existing file and SQL database
servers.
22
Image
Server
scanner
1. Workflow
1. Capture
2. Document
2. Compress
management
3. Display
3. Image
4. Index
storage
4. Workflows: Workflow is the “up and coming” client/server technology that can be used to
automatically route events from one program to the next in structured or unstructured client/server
environments. The “classical” workflow paradigm is a river that carries the flow of work from port
to port and along the way value gets added. Workflow defines the operations that must be visited
along the way and what needs to be done when exceptions occur. Workflows can be fuzzy,
deterministic or highly repetitive.
Approval
Credit Answer
Loan request Appraisal Tile company
Analysis customer
Approval
Workflow River
Groupware introduces a new breed of client/server workflow software for the masses. The new
workflow packages will have the counterparts in the following areas:
❖ Support for ad hoc user needs
❖ Low-cost
❖ Integration with other applications
❖ Programming with visual metaphors
❖ Integrations with e-mail, MOM or RPC
❖ Provide facilities for tracking work-in-progress
❖ Provide users with tools to complete an action
❖ Provide APIs that let developers customize workflow services
23
There are two types of workflow models as
Workflow routes use splits and joins which can be categorized as And-Splits (explode an object
into many parts), Or-Splits (peel off a few parts from a group) and Or-Joins (allow certain
members to rejoin the group). Every action in the workflow consists of four phases as
Preparation, Negotiation, Performance and Acceptance. The workflow client API consists of 56
function calls divided into 4 broad categories as Connection functions, Process control and status
functions, Activity control and status functions and Administration and work list control
functions.
5. The Electronic mail Component: E-mail is so important to groupware because it matches the
way people work A E-mail is used to send something to others without making a real-time
connection; the recipients don’t have to respond to sends until they are ready to do so. Most
electronic mailboxes will soon be globally interconnected through mail backbones and gateways.
Mail-enabled groupware applications can take advantage of very extensive mail infrastructure to
send and receive information and communicate directly with users—electronic mail is one of the
most hassle-free forms of distributed interactions. Mail-enabled applications still need to access
mail services. Electronic Data Interchange (EDI) is becoming an important source of mail-enabled
business transactions. A common mail API will have simple messaging services, message store
manipulation, address book and directory services, mail object manipulation, authentication and
security services and service provider interface.
24