You are on page 1of 100

Part 2

Collaboration in the 21st Century :


Models and Theoretical Foundations

Dr. Y.V. Ramana Reddy


Dr. Sumitra Reddy
Vijayanand Bharadwaj
Lane Dept. of Computer Science and Electrical Engg.
West Virginia University
USA
August 2005
Part 2: Overview
 Foundations of Collaboration Science (CSCW)
 Confluence of Various Disciplines

 Primary Disciplines
 Management Science
 Distributed Computing
 Artificial Intelligence

 A Review of Foundations
 Distributed Computing
 Work, Organization & Management

August 2005 SIPLab (CERC, WVU) 2


Aspects of Collaboration

August 2005 SIPLab (CERC, WVU) 3


Multiple Perspectives of Collaboration

• Human User Perspectives


for example
• Sociology
• Psychology
• Linguistics
• Group Perspective
for example:
• Organization and Management Science
• Economics
• Technology Perspective
for example:
• Distributed Computing
• Human-Computer Interaction
• Information Systems & Knowledge Engineering
• Artificial Intelligence
• Pervasive and Ubiquitous Computing

August 2005 SIPLab (CERC, WVU) 4


Multiple Perspectives of Collaboration

There are many more….


Can You Think of Any Others ?

August 2005 SIPLab (CERC, WVU) 5


Primary Disciplines

August 2005 SIPLab (CERC, WVU) 6


Foundations of Collaboration

Collaboration
Science

Distributed Computing

Artificial Intelligence
Management
Science

August 2005 SIPLab (CERC, WVU) 7


A Review of Foundations

• 1. Technical Foundations:

DISTRIBUTED COMPUTING + ARTIFICIAL INTELLIGENCE +


Associated Fields ( Information Systems, Human Computer-
Interaction & others – Implicit )

• 2. Work and Organization Theory (Management


Science)
Primarily:
• WORK PROCESS MODELING

• WORK PROCESS SPECIFICATION

August 2005 SIPLab (CERC, WVU) 8


Technology - A Myriad of Terms…!

Existing Technologies: Making Sense of it all….


RDF
HTTP WSDL
VoiceXML

SQL WWW

LINUX SSL
Semantic WEB

CORBA
XML
RDBMS KQML

August 2005 SIPLab (CERC, WVU) 9


Technical Foundations
• Models and Concepts
Theoretical paradigms and ideas
• Issues
Key aspects and issues related to the above concepts
• Methodologies
Concrete solutions and techniques to realize the above concepts
and deal with their issues
• Substrates
Enablers to implement the methodologies
• Medium
Mediums of Communication
• Technology (Standards)
Real-World Implementations of the above concepts and
corresponding methodologies
• Applications and Tools:
Applications built using the above technology

August 2005 SIPLab (CERC, WVU) 10


Technology Drivers

PERVASIVE
NETWORKS COMPUTING MOBILE
WIRELINE COMPUTING
&
WIRELESS
Distributed
Computing
+
Artificial GPS
INTELLIGENT Intelligence
AGENTS

SEMANTIC
INTERNET WEB

August 2005 SIPLab (CERC, WVU) 11


Technical Foundations
• Models and Concepts
Theoretical paradigms and ideas
• Issues
Key aspects and issues related to the above concepts
• Methodologies
Concrete solutions and techniques to realize the above concepts and deal
with their issues
• Substrates
Enablers to implement the methodologies
• Medium
Mediums of Communication
• Technology (Standards)
Real-World Implementations of the above concepts and corresponding
methodologies
• Applications and Tools:
Applications built using the above technology

August 2005 SIPLab (CERC, WVU) 12


Models & Concepts
Client Server ( 2 to N tier)
Peer-to-Peer P2P
Service Oriented Architecture
Virtual Machine
High Performance Computing (Parallel Computing)
Relational Data
Meta-Data
Mobile Computing
Pervasive & Ubiquitous Computing
Intelligent Agents
Expert Systems
Knowledge Base
Ontology
Knowledge Engineering
Human-Computer-Interaction & Usability

August 2005 SIPLab (CERC, WVU) 13


Client-Server Paradigm
Client: A processes that initiates communication with another
process (Server) to request resources and/or services.

Servers: A process that responds to requests from other


processes (clients).

Client Request

NETWORK

Client Process on Host Server Response


Server Process on Host

August 2005 SIPLab (CERC, WVU) 14


Client-Server Paradigm
Client-Server Architecture can be as simple as two processes
communicating ( 2- tier)

August 2005 SIPLab (CERC, WVU) 15


Client-Server Paradigm
There may be have many tiers depending on how the requested resources
and services are accessed ( N-tier)

August 2005 SIPLab (CERC, WVU) 16


Client-Server Paradigm

Server:
• “always-on” host
• permanent IP address
• server farms for scaling

Clients:
• Communicate with server
• may be intermittently
connected
• may have dynamic IP
addresses
• do not communicate
directly with each other

August 2005 SIPLab (CERC, WVU) 17


P2P Paradigm
A process can be both a client and server.
• no “always-on” server
• arbitrary end systems
directly communicate
• peers are intermittently
connected and change IP
addresses

Highly scalable

But difficult to manage

August 2005 SIPLab (CERC, WVU) 18


Hybrid of client-server and P2P
Napster
• File transfer P2P
• File search centralized:
• Peers register content at central server
• Peers query same central server to locate content

Instant messaging
• Chatting between two users is P2P
• Presence detection/location centralized:
• User registers its IP address with central server when it comes
online
• User contacts central server to find IP addresses of buddies

August 2005 SIPLab (CERC, WVU) 19


Service Oriented Architecture
“A Service is an implementation of a well-defined business
functionality that operates independent of the state of any other
Service defined within the system.
Services have a well- defined set of interfaces and operate through a
pre-defined contract between the client of the Service and the
Service itself.” (http://javaboutique.internet.com/tutorials/serv_orient/ )

Services can be reused by being invoked in different contexts.

Services can thus evolves independently of its client entities.

Services can be dynamically:


Discovered, Invoked, & Interacted
Without worrying about the details of the Service.

Example: WEB SERVICES

August 2005 SIPLab (CERC, WVU) 20


Virtual Machine
An entity that sits on top of the native Operating System on
which programs can run that would normally be
incompatible with the native system.

The Key to Interoperability that is essential for Collaboration

Compile-Once -- Run-Anywhere !!

Example: Java Virtual Machine

August 2005 SIPLab (CERC, WVU) 21


High-Performance Computing
The ability to harness computing resources such as machine
cycles and memory, and thereby obtain greater computing
capability.

Conventionally realized through parallel-architectures on one


entity example: Super Computer Architectures

Recently realized by incorporating hosts across a network

Clusters: Multiple computing nodes across local Ethernet

GRIDS: Multiple computing nodes across the Internet

August 2005 SIPLab (CERC, WVU) 22


Databases and Meta-Data
Databases store data that is used and an created as a result
of work processes. Relational Databases, Object-Oriented
Databases and Hierarchical Databases are some models.

Meta-Data: Addition of Data attributes to describe Information


Enable information to be discovered and used by various
clients in a variety of ways.

August 2005 SIPLab (CERC, WVU) 23


Mobile Computing
The ability to access computational resources (data, programs
and services) while mobile without being tied to a particular
computing node or network.

Possible by the evolution of hand-held computing devices that


can be used as computing nodes to run programs.

Client Processes running on these devices can access Server


Processes, via wireless networks.

August 2005 SIPLab (CERC, WVU) 24


Pervasive or Ubiquitous Computing
An environment where resources and services that require
computing and connectivity are always available in an
unobtrusive manner through embedded devices in
clothing, tools, appliances, cars, homes and many
others !!!!!

August 2005 SIPLab (CERC, WVU) 25


Pervasive or Ubiquitous Computing
Some Examples: (from http://www.fincher.org/tips/web/Pervasive.shtml)
1. Medications (what if every pill had a UPC code on it?)

2. Home interaction: The networked coffee pot/an alarm clock sync'd


with Outlook / Electricity Peak Conservation/Thermostat/Hot Water
Heater connected via wireless network (security issues)

3. Car: Schedule oil change seamlessly w/ garage; maps; traffic; kid


movies streamed to back seat ("Only if its quiet back there")

4. Finding Possessions: "Dude, where's my dog?"

5. Distribution: "Where is my package?"

August 2005 SIPLab (CERC, WVU) 26


Pervasive or Ubiquitous Computing
Some Examples: (from http://www.fincher.org/tips/web/Pervasive.shtml)
6. Vending: improved routing, re-supply, ordering; price changes pushed
to machines

7. Flight Schedules: Your phone rings. Its the computer at American


Airlines. Your flight departure is delayed by 20 minutes.

8. Networked coffee shop: Wi-Fi at StarBuck's and Schlosky's

9. Location: finding friends at the mall (or hiding from) !!

OTHER EXAMPLES…… ???

August 2005 SIPLab (CERC, WVU) 27


Knowledge-Based Systems
( Expert Systems)
• A system that uses knowledge specific to a problem domain
to provide answers. This knowledge is obtained from
experts in that field.

• Uses knowledge of a domain as a human expert would and


emulates human performance, hence called knowledge-
intensive or strong-method of problem solving.

• The techniques used in representing knowledge and


inference are used in a wide variety of collaborative
systems such as adaptable workflow systems.

August 2005 SIPLab (CERC, WVU) 28


Expert Systems Architecture

Reproduced from [Luger G. 2005]

August 2005 SIPLab (CERC, WVU) 29


Technical Foundations
• Models and Concepts
Theoretical paradigms and ideas
• Issues
Key aspects and issues related to the above concepts
• Methodologies
Concrete solutions and techniques to realize the above concepts
and deal with their issues
• Substrates
Enablers to implement the methodologies
• Medium
Mediums of Communication
• Technology (Standards)
Real-World Implementations of the above concepts and
corresponding methodologies
• Applications and Tools:
Applications built using the above technology

August 2005 SIPLab (CERC, WVU) 30


Issues
Goals of Distributed Computing [ Tannenbaum ] [Popstojanoava 2005]

1. Connecting users and resources:


Access remote resources and share them in a controlled way.

2. Transparency
Distributed system presents itself to users and applications as if it
were only a single computer

3.Openness
Distributed system offers services according to standard rules that
describe the syntax and semantics of these services

4. Scalability
Ability to expand

August 2005 SIPLab (CERC, WVU) 31


Connecting Users & Resources
Resources can be virtually anything: printers, computers,
storage facilities, data, files, Web pages, networks

With respect to connectivity and sharing Security and Privacy


are very important issues.

August 2005 SIPLab (CERC, WVU) 32


Transparency in a Distributed System

Transparency Description
Hide differences in data representation and how a resource
Access
is accessed
Location Hide where a resource is located

Migration Hide that a resource may move to another location


Hide that a resource may be moved to another location
Relocation
while in use
Hide that a resource may be shared by several competitive
Replication
users
Hide that a resource may be shared by several competitive
Concurrency
users
Failure Hide the failure and recovery of a resource
Hide whether a (software) resource is in memory or on
Persistence
disk

Different forms of transparency in a distributed system.

August 2005 SIPLab (CERC, WVU) 33


Openness

Distributed Systems formalize interaction in terms of Protocols to ensure


compatibility.

Services are generally specified through interfaces, which are often


described in an Interface Definition Language (IDL)

– Nearly always only the syntax is captured (names of the functions,


types of the parameters, return values, possible exceptions that can
be raised, and so on)

• Proper specification should be complete and neutral


–Important for Interoperability and Portability

• Specification should be Flexible – easy to configure, change, and extend

August 2005 SIPLab (CERC, WVU) 34


Scalability

• Scalability problems manifest as performance problems


due to limited capacity of servers and networks

• Some Techniques for Scaling


–Hiding communication latencies

–Distribution

–Replication and Caching

August 2005 SIPLab (CERC, WVU) 35


Scalability

Hiding Communication Latencies:


Batch Processing, Parallel Processing,Client-Side Processing

1.4

The difference between letting:


A server OR A client check forms as they are being filled

August 2005 SIPLab (CERC, WVU) 36


Scalability

Distribution Technique:

An example of dividing the DNS name space into zones.

August 2005 SIPLab (CERC, WVU) 37


Scalability

• Replication: increases availability and improves


performance

• Caching: special form of replication; making a copy of the


resource in the proximity of the client

• Replication and caching lead to consistency problems

August 2005 SIPLab (CERC, WVU) 38


Technical Foundations
• Models and Concepts
Theoretical paradigms and ideas
• Issues
Key aspects and issues related to the above concepts
• Methodologies
Concrete solutions and techniques to realize the above concepts
and deal with their issues
• Substrates
Enablers to implement the methodologies
• Medium
Mediums of Communication
• Technology (Standards)
Real-World Implementations of the above concepts and
corresponding methodologies
• Applications and Tools:
Applications built using the above technology

August 2005 SIPLab (CERC, WVU) 39


Methodologies
Remote Procedure Call

Object Oriented –CORBA

Message Queuing Systems

Hyper-linking

Markup Language

August 2005 SIPLab (CERC, WVU) 40


Remote Procedure Call
A Remote Procedure Call (RPC) is a protocol that allows a
computer program running on one host to cause code to be
executed on another host without the programmer needing
to explicitly code for this.

When the code in question is written using object-oriented


principles, RPC is sometimes referred to as remote
invocation or remote method invocation.

August 2005 SIPLab (CERC, WVU) 41


Remote Procedure Call

August 2005 SIPLab (CERC, WVU) 42


Steps of a Remote Procedure Call
1. Client procedure calls client stub in normal way

2. Client stub builds message, calls local OS

3. Client's OS sends message to remote OS

4. Remote OS gives message to server stub

5. Server stub unpacks parameters, calls server

6. Server does work, returns result to the stub

7. Server stub packs it in message, calls local OS

(Continued)

August 2005 SIPLab (CERC, WVU) 43


Steps of a Remote Procedure Call
(continued)

• Server's OS sends message to client's OS

• Client's OS gives message to client stub

• Stub unpacks result, returns to client

August 2005 SIPLab (CERC, WVU) 44


Remote Procedure Call
In order to allow servers to be accessed by differing clients, a
number of standardized RPC systems have been created.

Most of these use an interface description language (IDL) to


allow various platforms to call the RPC.

Examples of such systems:


Sun RPC (sometimes called ONC RPC),
Distributed computing environment (DCE),
Microsoft's DCOM (and ActiveX), which is based in part on
DCE
and CORBA.

August 2005 SIPLab (CERC, WVU) 45


Remote Procedure Call
RPC using XML as the IDL, and HTTP as the network
protocol.

The advantage of this system, known as WEB SERVICES, is


simplicity and standardization, the IDL is a text file that is
widely understood, and HTTP is ubiquitous.

An example of such an RPC system is:


SOAP (Simple Object Access Protocol) developed in turn from
XML-RPC.

August 2005 SIPLab (CERC, WVU) 46


CORBA
Common Object Request Broker Architecture (CORBA), is a
standard for software components.

The CORBA standard is created and controlled by the Object


Management Group (OMG).

It defines APIs, communication protocol, and object/service


information models to enable heterogeneous applications
written in various languages running on various platforms to
interoperate.

CORBA therefore provides platform and location transparency


for sharing well-defined objects across a distributed
computing platform

August 2005 SIPLab (CERC, WVU) 47


CORBA ORB Architecture

Reproduced From [Schmidt, D.]

August 2005 SIPLab (CERC, WVU) 48


CORBA ORB Architecture
[Reproduced From [Schmidt, D.]
• Object -- This is a CORBA programming entity that consists of an
identity, an interface, and an implementation, which is known as a
Servant.

• Servant -- This is an implementation programming language entity that


defines the operations that support a CORBA IDL interface. Servants
can be written in a variety of languages, including C, C++, Java,
Smalltalk, and Ada.

• Client -- This is the program entity that invokes an operation on an


object implementation. Accessing the services of a remote object should
be transparent to the caller.
• Ideally, it should be as simple as calling a method on an object.

• The remaining components in the Figure help to support this level of


transparency.

August 2005 SIPLab (CERC, WVU) 49


CORBA ORB Architecture

Reproduced From [Schmidt, D.]


August 2005 SIPLab (CERC, WVU) 50
CORBA ORB Architecture
• Object Request Broker (ORB) -- The ORB provides a
mechanism for transparently communicating client requests
to target object implementations.

• The ORB simplifies distributed programming by decoupling


the client from the details of the method invocations.

• This makes client requests appear to be local procedure


calls.

• When a client invokes an operation, the ORB is responsible


for finding the object implementation, transparently
activating it if necessary, delivering the request to the
object, and returning any response to the caller.

August 2005 SIPLab (CERC, WVU) 51


CORBA ORB Architecture
• ORB Interface -- An ORB is a logical entity that may be
implemented in various ways (such as one or more
processes or a set of libraries).

• To decouple applications from implementation details, the


CORBA specification defines an abstract interface for an
ORB.

• This interface provides various helper functions such as


converting object references to strings and vice versa, and
creating argument lists for requests made through the
dynamic invocation interface described below.

August 2005 SIPLab (CERC, WVU) 52


CORBA ORB Architecture

Reproduced From [Schmidt, D.]


August 2005 SIPLab (CERC, WVU) 53
CORBA ORB Architecture
• CORBA IDL stubs and skeletons -- CORBA IDL stubs
and skeletons serve as the ``glue'' between the client and
server applications, respectively, and the ORB.

• The transformation between CORBA IDL definitions and the


target programming language is automated by a CORBA
IDL compiler.

• The use of a compiler reduces the potential for


inconsistencies between client stubs and server skeletons
and increases opportunities for automated compiler
optimizations.

August 2005 SIPLab (CERC, WVU) 54


CORBA ORB Architecture

Reproduced From [Schmidt, D.]


August 2005 SIPLab (CERC, WVU) 55
CORBA ORB Architecture
• Dynamic Invocation Interface (DII) -- This interface allows
a client to directly access the underlying request
mechanisms provided by an ORB.

• Applications use the DII to dynamically issue requests to


objects without requiring IDL interface-specific stubs to be
linked in.

• Unlike IDL stubs (which only allow RPC-style requests), the


DII also allows clients to make non-blocking deferred
synchronous (separate send and receive operations) and
oneway (send-only) calls.

August 2005 SIPLab (CERC, WVU) 56


CORBA ORB Architecture
• Dynamic Skeleton Interface (DSI) -- This is the server
side's analogue to the client side's DII.

• The DSI allows an ORB to deliver requests to an object


implementation that does not have compile-time knowledge
of the type of the object it is implementing.

• The client making the request has no idea whether the


implementation is using the type-specific IDL skeletons or is
using the dynamic skeletons.

August 2005 SIPLab (CERC, WVU) 57


CORBA ORB Architecture
• Object Adapter -- This assists the ORB with delivering
requests to the object and with activating the object.

• More importantly, an object adapter associates object


implementations with the ORB.

• Object adapters can be specialized to provide support for


certain object implementation styles (such as OODB object
adapters for persistence and library object adapters for non-
remote objects).

August 2005 SIPLab (CERC, WVU) 58


Message Queuing
• Enable Asynchronous Communication among processes.
• Four combinations for loosely-coupled communications using queues.

August 2005 SIPLab (CERC, WVU) 59


Message Queuing: General Architecture

• The relationship between queue-level addressing and network-level


addressing.

August 2005 SIPLab (CERC, WVU) 60


Message Queuing: General Architecture

• The general organization of a message-queuing system with


routers.

August 2005 SIPLab (CERC, WVU) 61


Message Queuing
• Basic interface to a queue in a message-queuing system.

Primitive Meaning
Put Append a message to a specified queue
Block until the specified queue is nonempty, and remove the first
Get
message
Check a specified queue for messages, and remove the first. Never
Poll
block.
Install a handler to be called when a message is put into the
Notify
specified queue.

August 2005 SIPLab (CERC, WVU) 62


Hyper-Linking
A hyperlink (or simply a link), is a reference in a hypertext
document to another document or other resource.

Similar to a citation in literature.

However, combined with a data network and suitable access


protocol, it can be used to fetch the resource referenced.

This can then be saved, viewed, or displayed as part of the


referencing document.

A key part of the foundation of the World Wide Web !

August 2005 SIPLab (CERC, WVU) 63


Markup Language
A mechanism to add meta-information to a body of information.

A language that can be used to annotate or markup other information.

A markup language combines text and extra information about the text.

The extra information, for example about the text's structure or


presentation, is expressed using markup, which is intermingled with the
primary text.

Example: Extensible Markup Language (XML)


HyperText Markup Language (HTML)

and many others…

August 2005 SIPLab (CERC, WVU) 64


Technical Foundations
• Models and Concepts
Theoretical paradigms and ideas
• Issues
Key aspects and issues related to the above concepts
• Methodologies
Concrete solutions and techniques to realize the above concepts
and deal with their issues
• Substrates
Enablers to implement the methodologies
• Medium
Mediums of Communication
• Technology (Standards)
Real-World Implementations of the above concepts and
corresponding methodologies
• Applications and Tools:
Applications built using the above technology

August 2005 SIPLab (CERC, WVU) 65


Substrates
Distributed Computing Systems operate over various
substrates:

Local Area Networks which can form Intranets

Internet
The public Internet which is the “network of networks”.
Ubiquitous in its reach across the world
An example of Wide-Area Networking.

Grids
Networks used to connect high-performance computing
nodes. Grids may use the Internet or dedicated infrastructure.

August 2005 SIPLab (CERC, WVU) 66


Technical Foundations
• Models and Concepts
Theoretical paradigms and ideas
• Issues
Key aspects and issues related to the above concepts
• Methodologies
Concrete solutions and techniques to realize the above concepts
and deal with their issues
• Substrates
Enablers to implement the methodologies
• Medium
Mediums of Communication
• Technology (Standards)
Real-World Implementations of the above concepts and
corresponding methodologies
• Applications and Tools:
Applications built using the above technology

August 2005 SIPLab (CERC, WVU) 67


Mediums
Mediums connect hosts to create substrates.

Wireline
Computer Networks using media such as copper twisted pair and or
fiber optics
Telephone landline networks

Wireless
Wireless LANS, Cellular Phone networks, Satellites

August 2005 SIPLab (CERC, WVU) 68


Technical Foundations
• Models and Concepts
Theoretical paradigms and ideas
• Issues
Key aspects and issues related to the above concepts
• Methodologies
Concrete solutions and techniques to realize the above concepts
and deal with their issues
• Substrates
Enablers to implement the methodologies
• Medium
Mediums of Communication
• Technology (Standards)
Real-World Implementations of the above concepts and
corresponding methodologies
• Applications and Tools:
Applications built using the above technology

August 2005 SIPLab (CERC, WVU) 69


Technology & Standards
HTTP (HyperText Transfer Protocol)

HTTP is a request/response protocol between clients and servers.

An HTTP client, such as a web browser, typically initiates a request by


establishing a TCP connection to a particular port on a remote host
(port 80 by default).

An HTTP server listening on that port waits for the client to send a request
string with elements specified in the protocol.

Upon receiving the request string (and message, if any), the server sends
back a response string, and a message of its own, the body of which is
perhaps the requested file, an error message, or some other
information.

August 2005 SIPLab (CERC, WVU) 70


Technology & Standards
Java

High-Level Language that compiles as “bytecodes” that can run on any


platform with the Java Virtual Machine

J2EE (Java 2 Platform Enterprise Edition):


A set of specifications and platform for creating N-Tier client-server
applications by exploiting the notion of component reuse.

Components are distributed across the client , presentation layer (Java


Server Pages & Java Servlets), business logic layer and data access
layer ( Enterprise Java Beans)

Specifications deal with managing all aspects of component life-cycle and


transactions.

August 2005 SIPLab (CERC, WVU) 71


Technology & Standards
RDBMS (Relational Database Management Systems):
Present the data to the user as relations (a presentation in tabular form, i.e. as a
collection of tables with each table consisting of a set of rows and columns, can
satisfy this property)
Provided relational operators to manipulate the data in tabular form viz. Add,
modify, delete, update etc.

XML (Extensible Markup Language)


An implementation of the Markup Language Concept. Derived from Standard
Generalized Markup Language (SGML)

LDAP (Lightweight Directory Access Protocol)


LDAP defines a protocol for updating and searching directories running over
TCP/IP.
LDAP has been designed for working X.500 directories.
X.500 is the set of ITU-T computer networking standards covering electronic
directory services such as white pages, Knowbot and whois.

August 2005 SIPLab (CERC, WVU) 72


Technology & Standards
Web Services:

A Web service is a collection of protocols and standards used for


exchanging data between applications or systems.

Software applications written in various programming languages and


running on various platforms can use web services to exchange data
over computer networks like the Internet in a manner similar to inter-
process communication on a single computer.

This interoperability (e.g., between Java and Python, or Windows and


Linux applications) is due to the use of open standards.

August 2005 SIPLab (CERC, WVU) 73


Technology & Standards
Web Services Architecture (1)

August 2005 SIPLab (CERC, WVU) 74


Technology & Standards
Web Services Architecture (2)

XML & SOAP:


All data to be exchanged is formatted with XML tags. The encoded
message is transmitted through a transport protocol such as SOAP,
JAX-RPC, or XML-RPC.

WSDL (Web Services Description Language):


The public interface to the web service is described by WSDL. This is an
XML-based service description on how to communicate using the web
service.

UDDI (Universal Description, Discovery, and Integration)


The web service information is published using this protocol. It should
enable applications to look up web services information in order to
determine whether to use them

August 2005 SIPLab (CERC, WVU) 75


Technology & Standards
WAP (Wireless Application Protocol)

Wireless Application Protocol (WAP) is an open international standard for


applications that use wireless communication, for example Internet
access from a mobile phone.

WAP was designed to provide services equivalent to a Web browser with


some mobile-specific additions, being specifically designed to address
the limitations of very small portable devices.

August 2005 SIPLab (CERC, WVU) 76


Technology & Standards
Bluetooth

Bluetooth is an industrial specification for wireless personal area networks


(PANs).

Bluetooth provides a way to connect and exchange information between


devices like personal digital assistants (PDAs), mobile phones, laptops,
PCs, printers and digital cameras via a secure, low-cost, globally
available short range radio frequency.

Bluetooth lets these devices talk to each other when they come in range,
even if they are not in the same room, as long as they are within up to
100 metres (320 feet) of each other, dependent on the power class of
the product.

August 2005 SIPLab (CERC, WVU) 77


Technology & Standards
Wi-Fi ("Wireless Fidelity“)
It is a set of product compatibility standards for wireless local area
networks (WLAN) based on the IEEE 802.11 specifications.

Wi-Fi was intended to be used for mobile devices and LANs, but is now
often used for Internet access.

It enables a person with a wireless-enabled computer or personal digital


assistant (PDA) to connect to the Internet when in proximity of an
access point.

The geographical region covered by one or several access points is called


a hotspot.

August 2005 SIPLab (CERC, WVU) 78


Technical Foundations
• Models and Concepts
Theoretical paradigms and ideas
• Issues
Key aspects and issues related to the above concepts
• Methodologies
Concrete solutions and techniques to realize the above concepts
and deal with their issues
• Substrates
Enablers to implement the methodologies
• Medium
Mediums of Communication
• Technology (Standards)
Real-World Implementations of the above concepts and
corresponding methodologies
• Applications and Tools
Applications built using the above technology

August 2005 SIPLab (CERC, WVU) 79


Applications

World Wide Web

An application whose foundations are based on


client-server model, the Internet, hyperlinks, HTTP
protocol and other key elements.

Unprecedented impact on Collaboration !

August 2005 SIPLab (CERC, WVU) 80


Applications

World Wide Web

Can we enumerate the ways the WWW has


changed our lives ………?

August 2005 SIPLab (CERC, WVU) 81


Applications

World Wide Web


• Web page consists of objects
• Object can be HTML file, JPEG image, Java applet, audio
file,…
• Web page consists of base HTML-file which includes
several referenced objects
• Each object is addressable by a Uniform Resource Locator
• Example URL:

www.someschool.edu/someDept/pic.gif

host name path name

August 2005 SIPLab (CERC, WVU) 82


Applications

World Wide Web


HT
• Web page consists of objects TP
requ
PC running HT est
• Object can be HTML file, JPEG TP
res
Explorer
image, Java applet, audio file,… pon
se
• Web page consists of base HTML-
file which includes several est
eq u
referenced objects T Pr o nse Server
HT r es
p running
• Each object is addressable by a TP Apache Web
HT
Uniform Resource Locator server
• Example URL:
Mac running
Navigator

www.someschool.edu/someDept/pic.gif

host name path name

August 2005 SIPLab (CERC, WVU) 83


Applications

Semantic Web
( from http://infomesh.net/2001/swintro/)

The Semantic Web is a mesh of information linked in a way


as to be easily processed by machines, on a global scale.

Information is represented, identified and stored on the WWW


in a manner by which programs can search and access it
without human intervention.

Information is not just linked but meanings are provided to the


link.

August 2005 SIPLab (CERC, WVU) 84


Applications
Semantic Web: Enabling Standards and Technology
( Tim Berners-Lee http://www.w3.org/2002/Talks/04-sweb/Overview.html)

August 2005 SIPLab (CERC, WVU) 85


Applications

Semantic Web:
URI & Unicode: Actual data and identifier.
XML & Namespaces: XML based annotations to describe data
RDF & RDF Schema Layers: (Resource Description Framework)
A standard for describing information on the Web using tuples. This allows
information to be described in a machine-readable form.
RDF described relationships between information.
Information can be retrieved by searching based on these relationships.

August 2005 SIPLab (CERC, WVU) 86


Applications

Semantic Web: Architecture


Ontology Layer:
More meta-information, such as Transitive property Unique,
Unambiguous, Cardinality, etc
Rules Layer:
General purpose rules languages that allow query and filtering.
Rules layer allows form of Proof without full Logic layer.
Logic Layer:
Universal language for monotonic logic to inference about the information.
Proof & Trust Layers:
A flexible language to express existing systems such that their
“trustworthiness” can be evaluated by programs.
Signature and Encryption:
Essential elements in Securing the layers.

August 2005 SIPLab (CERC, WVU) 87


Applications
Oracle 9iAS: Oracle’s Application Server that implements the
J2EE architecture specifications.

JBoss: Another implementation of the J2EE architecture

MySQL: An implementation of the RDBMS technology

Groupware Systems such as:


Lotus Server & Notes
Microsoft Exchange,Microsoft Project
eGroupware
Novell’s GroupWise
IBM WebSphere Workflow System and MANY OTHERS !

August 2005 SIPLab (CERC, WVU) 88


Work & Organization Theory

Some Prominent Theories about Group Work


([Borghoff & Schlichter])

Conversation Networks & Speech Act Theory:


This theory seeks to model group process in terms of
conversations among participants. The notion of speech as
an action stems from Speech-Act Theory.

August 2005 SIPLab (CERC, WVU) 89


Work & Organization Theory

Some Prominent Theories about Group Work


[Borghoff & Schlichter]

Coordination Theory (Malone & Crowston)

“Coordination can be seen as the process of managing dependencies among


activities” – Malone & Crowston

This theory formalizes dependencies between activities and


provides a framework to analyze and evaluate different
coordination approaches.
Coordination is divided into four basic components: goals,
activities, actors and dependencies.

August 2005 SIPLab (CERC, WVU) 90


Work & Organization Theory

Some Modeling & Specification Formalisms


[Oren and Haller 2005], [Kim and Paik 1997], [Reijers Hajo, A. 2003]

Petri Nets
Provide formal semantics to model workflows and a graphical
notation to express them.

Consistent with the task-oriented nature of workflow.

Allows for a clear distinction between the structure of the


workflow and its dynamic state.

Supports notion of concurrency.

August 2005 SIPLab (CERC, WVU) 91


Work & Organization Theory

Some Modeling & Specification Formalisms

Information Control Nets (ICN)


A mathematical formalism designed to graphically model work
processes.
Unlike Petri Nets ICN were specially created for business
procedures.
Here each procedure is defined by a set of objects ( such as
people, documents ) and set of relations ( precedence and
data access) which link these objects.
The basic elements are activity, procedure, actor, mechanism
and policy which are modeled as a control flow graph.

August 2005 SIPLab (CERC, WVU) 92


Work & Organization Theory

Some Modeling & Specification Formalisms

Yet Another Workflow Language (YAWL)

YAWL is based on Petri nets (workflow nets).


However has additional mechanisms for direct and intuitive
modeling of all workflow patterns.
YAWL can be mapped to Petri nets, but has an independent
semantics.
A YAWL specification is a hierarchical extended workflow net,
consisting of tasks (transitions)and conditions (places).
Tasks are either atomic or composite.

August 2005 SIPLab (CERC, WVU) 93


Work & Organization Theory
Some Modeling & Specification Formalisms
Temporal Logic
Temporal logic is a generic logic for representing and
reasoning about temporal information.

Widely used for formal specification and verification of


concurrent and reactive programs.
Used to model inter-task dependencies in workflows using
computational tree logic, a temporal logic variant.

The approach deals with specifying inter-task dependencies in


a multi-database environment, in which certain transactional
properties of task executions should be ensured.

August 2005 SIPLab (CERC, WVU) 94


Work & Organization Theory

Some Modeling & Specification Formalisms


Transaction Logic
Has been used for modeling, executing and reasoning
about workflows.
It is an extension of classical predicate logic which provides
a logical foundation for state changes in databases and logic
programs.
A workflow is specified as a set of formulas that describe
dependencies between tasks.
Tasks are modeled using predicates, they can be either
atomic or be defined as a sub-procedure (this allows for
compositional workflow modeling).

August 2005 SIPLab (CERC, WVU) 95


Summary
Advances in Various Disciplines (primarily Management
Science, Distributed Computing and Artificial
Intelligence) have had a deep impact on the course of
Collaboration

Design and Development of Collaboration Systems must


leverage this knowledge in devising effective solutions !

August 2005 SIPLab (CERC, WVU) 96


References & Acknowledgement
We would like to acknowledge the following sources of
information on which this presentation’s contents are
based.
Text and pictures have been reproduced as is or with
modifications from the sources below.

1. “Chapter 2: Application Layer” – Presentation Slides


Computer Networking: A Top Down Approach Featuring the Internet, 3rd
edition. Jim Kurose, Keith Ross
Addison-Wesley, July 2004.
All material copyright 1996-2004
J.F Kurose and K.W. Ross, All Rights Reserved

2. Slides from http://www.cs.vu.nl/~ast/books/ds1/


Web Site to book “Distributed Systems: Principles and Paradigms”, Andrew S.
Tanenbaum , Maarten van Steen
Prentice Hall (India) ISBN: 81-203-2215-0

August 2005 SIPLab (CERC, WVU) 97


References & Acknowledgement
(Continued)
3. Lecture Notes on Distributed Systems by Dr.Katerina Goseva-Popstojanova
(LDCSEE, WVU)
http://www.csee.wvu.edu/~katerina/Teaching/CS-757-Fall-2004/Notes-CS-757-Fall-
2004.htm)

4. [Luger, G. 2005] “Artificial Intelligence Structures and Strategies for Complex


Problem Solving” , - George F Luger, 5th Edition, Addison Wesley, 2005, ISBN
032126319

5. From Douglas C Schmidt Tutorial on CORBA http://www.cs.wustl.edu/~schmidt/


corba-overview.html

6. [Borghoff & Schlichter]: Computer Supported Cooperative Work: Introduction to


Distributed Systems, Springer-Verlag 1998, ISBN: 3-540-66984-1.
7. WikiPedia -- Web Encyclopedia. http://www.wikipedia.org

August 2005 SIPLab (CERC, WVU) 98


References & Acknowledgement
(Continued)
8. [Oren & Haller 2005]
“Formal frameworks for workflow modelling”
Eyal Oren Armin Haller DERI Technical Report 2005-04-07, April 2005
Retrieved from www.deri.at/publications/techpapers/documents/DERI-TR-2005-04-07.pdf

9. [Kim and Paik 1997] “Practical Experiences and Requirements on Workflow”


Kwang Hoon Kim & Su-Ki Paik, published in Coordination Technology for
Collaborative Applications eds. Wolfram Conen and Gustaf Neumann, Lecture
Notes in Computer Science Vol 1364, 1997.

10. [Reijers Hajo, A. 2003] “Workflow Modeling “ Chapter 2 in “Design and Control
of Workflow Processes Business Process Management for the Service
Industry”, Lecture Notes in Computer Science, Vol.2617, 2003 Springer.

August 2005 SIPLab (CERC, WVU) 99


Questions & Discussion

Thank You!
Ramana.Reddy@mail.wvu.edu
Sumitra.Reddy@mail.wvu.edu
vijay@csee.wvu.edu

SIPLab: Smart Internet Programming Laboratory


http://siplab.csee.wvu.edu
CERC: Concurrent Engineering Research Center
http://www.cerc.wvu.edu
LDCSEE: Lane Dept. of Computer Science & Electrical Engg. at West
Virginia University, USA
http://www.csee.wvu.edu

August 2005 SIPLab (CERC, WVU) 100

You might also like