Sie sind auf Seite 1von 60

Cloud Computing

Distributed Computing
It may be defined as any computing that involves multiple computers remote from each other that each have a role in a computation problem or information processing Example: 1. 3-Tier architecture 2. Search for Extra Terrestrial Intelligence (SETI@home project) Thousands of Computers are used to download radio telescopic data

Another Definition
A Distributed System is a collection of independent Computers that appears to its users as a single coherent system

Characteristics of a DS
Multiple Computers Interconnections Look of a Single Coherent System

Parallel Computing
The computing in which more than one CPU is simultaneously used to execute a program is called Parallel Computing Adv: 1. Faster execution of a Program

Distributed vs Parallel Computing


When single CPU Computers are connected in the form of a Network which executes a program in parallel, then it becomes Distributed Processing. So, for some special cases, Parallel Processing becomes Distributed Processing CPUs work simultaneously in PC. Not necessarily in DC. In PC, CPUs have a shared memory. In DC, every CPU has its own private memory.

(contd.)
10 persons pulling a rope to lift a load is PC 10 persons using 10 ropes to lift 10 different loads to consolidate at another place, then it is DC

Distributed Network
Any Network that encompasses various Networks is called Distributed Network Internet is an example Every Network in a DN has its own Network Management Software that monitors data routing, combining and allocating Network bandwidth, Access control etc. A C/S architecture is also an example of DN

Remote Procedure Call


Raw messaging is a bit too low-level for programming
Must wrap up information into message at source Must decide what to do with message at destination May need to sit and wait for multiple messages to arrive

Better option: Remote Procedure Call (RPC)


Calls a procedure on a remote machine Client calls: remoteFileSystemRead(rutabaga); Translated automatically into call on server: fileSysRead(rutabaga);

(contd.)
Implementation:
Request-response message passing (under covers!) Stub provides glue on client/server
Client stub is responsible for marshalling arguments and unmarshalling the return values Server-side stub is responsible for unmarshalling arguments and marshalling the return values.

Marshalling involves (depending on system)


copying arguments passed by reference, etc.

RPC Information Flow bundle


Client (caller) Machine A Machine B Server (callee) return call call

return

Network

send Client Packet Stub Handler receive unbundle mbox2 ret vals

args

Network

bundle ret vals


Server Stub

send

mbox1

unbundle args

receive

Packet Handler

RPC Details
Equivalence with regular procedure call
Parameters Request Message Name of Procedure: Passed in request message Result Reply message Return Address: mbox2 (client return mail box) Input: interface definitions in an interface definition language (IDL)
Contains, among other things, types of arguments/return

Stub generator: Compiler that generates stubs

(contd.)
Output: stub code in the appropriate source language
Code for client to pack message, send it off, wait for result, unpack result and return to caller Code for server to unpack message, call procedure, pack results, send them off

Cross-platform issues:
What if client/server machines are different architectures or in different languages?
Convert everything to/from some canonical form Tag every item with an indication of how it is encoded (avoids unnecessary conversions).

RPC Details (continued)


How does client know which mbox to send to?
Need to translate name of remote service into network endpoint (Remote machine, port, possibly other info) Binding: the process of converting a user-visible name into a network endpoint
This is another word for naming at network level Static: fixed at compile time Dynamic: performed at runtime

(contd.)
Dynamic Binding
Most RPC systems use dynamic binding via name service
Why dynamic binding?
Name service provides dynmaic translation of servicembox Access control: check who is permitted to access service Fail-over: If server fails, use a different one Choose unloaded server for each new client

What if there are multiple servers?


Could give flexibility at binding time

Could provide same mbox (router level redirect)

What if multiple clients?

Choose unloaded server for each new request Only works if no state carried from one call to next

Pass pointer to client-specific return mbox in request

Problems with RPC


Non-Atomic failures
Different failure modes in distributed system than on a single machine Consider many different types of failures
User-level bug causes address space to crash Machine failure, kernel bug causes all processes on same machine to fail Some machine is compromised by malicious party

Before RPC: whole system would crash/die After RPC: One machine crashes/compromised while others keep working Can easily result in inconsistent view of the world
Did my cached data get written back or not? Did server do what I requested or not?

(contd.)
Answer? Distributed transactions/Byzantine Commit

Performance
Cost of Procedure call same-machine RPC network RPC Means programmers must be aware that RPC is not free
Caching can help, but may make failure handling complex

Cross-Domain Communication/Location Transparency


How do address spaces communicate with one another?
Shared Memory with Semaphores, monitors, etc File System Pipes (1-way communication) Remote procedure call (2-way communication)

(contd.)
RPCs can be used to communicate between address spaces on different machines or the same machine
Services can be run wherever its most appropriate Access to local and remote services looks the same

Examples of modern RPC systems:


CORBA (Common Object Request Broker Architecture) DCOM (Distributed COM) RMI (Java Remote Method Invocation)

TPS, MIS, DSS, and AI/ES


Hierarchy:

Information

AI/ES DSS

Less

More

Less

More

Routine

Decision support

Input & output

MIS Data TPS More Less More

Sophistication & complexity of processing & analysis

Less

Transactions
Transactions
Basic business operations such as customer orders, purchase orders, receipts, time cards, invoices, and payroll checks in an organization

Transaction processing systems (TPS)


Perform routine operations and serve as a foundation for other systems

Batch vs. On-Line Transaction Processing


Two types of TPS:
Batch processing
A system whereby business transactions are accumulated over a period of time and prepared for processing as a single unit or batch A system whereby each transaction is processed immediately, without the delay of accumulating transactions into a batch

On-line transaction processing (OLTP)

Batch Schematic

Data entry of accumulated transactions

Input (batched)

Output

On-line Schematic

Terminal Terminal Terminal

Output
Terminal

Immediate processing of each transaction

Terminal Terminal

Integration of TPSs

Applications software

xn=
Schematic

People

Objectives of TPS
Process data generated by and about transactions Maintain a high degree of accuracy Ensure data and information integrity and accuracy Produce timely documents and reports Increase labour efficiency Help provide increased and enhanced service Help build and maintain customer loyalty Achieve competitive advantage

Simplified Overview of a Transaction Processing System

Schematic

Data entry & input

Processing

Documents & reports


Documents: pick list

Internally generated transactions: shipped orders purchase orders employee time cards Externally generated transactions: customer orders vendor invoices customer payments Database update: customer orders inventory purchase orders customers suppliers

Database

cheques to vendors receiving notices paycheques Operational reports: finished product inventory status raw materials; packing materials; spare parts; inventory status

Data Processing Activities Common to TPSs


A transaction processing cycle
Data collection Data editing Data correction Data manipulation Data storage Document production

Schematic

Original data Data collection Data edit

Data correction

Data manipulation
Data storage Document production

Source Data Automation


Source data automation
The process of capturing data at its source with minimal manual effort Data are entered directly into the computer

Point-of-Sale Transaction Processing System


Customers receipt UPC and quantity Inventory database Management information system Exception report

Point-of-sale transaction Scanner Quantity, processing Date, system time UPC UPC Price

Item, quantity, date, time, price


Purchases database

Item database

Control and Management Issues


Business resumption planning
The process of anticipating and providing for disasters.

Disaster recovery
The implementation of the business resumption plan.

Transaction processing system audit


An examination of the TPS in an attempt to answer three basic questions
Does the system meet the business need? What procedures and controls have been established? Are the procedures and controls being properly used?

Traditional TPS Order Processing


Order processing
Processing an order from entry to delivery, including traditional accounting transactions

Schematic

References and Acknowledgements to topics on Distributed Systems


Distributed Systems:Principles and Paradigms by Tanenbaum, Maarten Van Steen; Pearson Education (ISBN: 817808-789-8) Distributed Systems by Sape Mullender; Addison-Wesley (ISBN: 0-201-62427-3) Elements of Distributed Computing by Vijay K. Garg by Wiley (ISBN: 9812-53238-2)

Web2.0
Its a concept It treats network as a platform but the content is not static It allows users to interact and colloborate The original web we know which loads into a browser with static screens

History of Web2.0
Was first used in January , 1999 by Darcy DiNucci. She said The web will be understood not as screenfuls of text and graphics, but as a transport mechanism, the medium through which interactivity happens. It will appear on your Computer Screen, TV Screen, Car dashboard, Cell phone, Hand held game machines, as well as on Microwave oven.

(contd.)
Gained popularity in 2003 when OReilly Media and Media Live hosted first Web2.0 Conference. John Battelle and Tim O Reilly defined Web2.0 as Web as Platform where software applications are built upon the web as opposed to upon the desktop

Characteristics of Web2.0 website


Should be interactive and dynamic with friendly user interface Should deliver web based applications to Internet users and allowing them to make use of these applications through a browser Should implement social networking capabilities allowing users to interact with each other and create friend lists Should be a democratic website where users will be able to add value by interacting with the web based application Should allow its users to exercise various controls over the website data and content (adding/deleting/editing)

Web2.0 technologies (Client side)


AJAX (Asynchronous Java Script and XML) (Ex.: Google Maps, Google Docs) AJAX uses XHTML, CSS, DOM, XML, XSLT(Extensible Style Sheet Language), jQuery(collection of Java Script libraries) Adobe Flex is a technology whose applications are compiled and displayed as Flash within the browser

Web2.0 Technologies (Server side)


PhP, Perl, Python, JSP, ASP.net and JSON (Java Script Object Notation)(Uses constructs of Java Script , but language independent, having parsers for many languages)

Web2.0 concepts
Rich Internet Application : is Web based and uses technologies such as AJAX, Flash etc. Web Oriented Architecture : It offers web services , RSS feeds (Really Simple Syndication), Mash-ups Social Web : Interacts with the end user and makes him/her an integral part

(contd.)
SLATES (Web 2.0 website includes) : Search, Links, Authoring, Tags, Extensions (Adobe Flash Player, Adobe Reader etc.), Signals (RSS feeds etc.)

Web2.0 usage
In Web2.0 applications, the end user is a participant by Blogging, Social networking, Tagging, etc.

Web 2.0 Applications


Marketing Education Philanthropy etc.

Web2.0 vs Web3.0
Web2.0 uses read-write web technology Web3.0 uses Data web technology (AI techniques such as Machine Learning; enables drag and drop in the applications)

References and Acknowledgements for topics on Web 2.0

http://en.wikipedia.org/wiki/Web_2.0

Social Networking (Def.s)


Is the act of interacting and networking with others in a social online environment via the use of a website (Ex.: Myspace, Facebook) The use of a dedicated web site to communicate informally with other members of the site by posting messages, photos etc.

(contd.)
Its a network of a group of individuals who have a set of common interests and objectives

Components of Web2.0 for Social Networks


Communities Blogs Wikis : A set of co-related pages Folksonomy: feature where users can tag their content online and this enables others to easily find and view their content File sharing Mashup: A facility which enables to congregate services from multiple vendors (Google Maps and Location information of a Mobile Phone)

Information Flow in Social Networks

Types and behavior of Social Networks


Social Contact Networks: Orkut, Facebook, Twitter Study Circles: For students such as FledgeWing Social Networks for specialist groups: Linkedln Networks for Fine Arts: Amie Street, Buzznet Police and Military Networks Sporting Networks: Athlinks Mixed Networks: Combination of above Social Networks for the inventors: Technical Forums Shopping and Utility Service Networks

Various Social Networks

Life Cycle of Social Networks

Impact of Social Networks using Web 2.0


89% of physicians use at least one Web2.0 tool in their medical practice Societal website such as Chicago Everyblock : Enables citizens to select safe routes YOUR OWN EXPERIENCE

Future Scope of Web2.0 in Social Networks


Colloborative research in Space exploration, Scientific experimentation, and Social Sciences MAY BE , IT IS WEB3.0 WHICH WILL PUSH THE SCOPE TO NEW HEIGHTS WITH AI TECHNIQUES

Business Analytics of Social Networks using Web2.0


From the behavioral patterns of the people linked with Social Networks, analytical studies can be run to predict social, economical and behavioral patterns of the community as a whole Helps in advertising and promotion Can lead to linking of one social network community with others Producers can target specific Social Networking websites for increasing their business

Benefits and Challenges for Social Networks using Web2.0


People across the World are becoming closer Data Security and Privacy are concerns

References and Acknowledgements for topics on Social Networks

http://www.ibm.com/developerworks/webs ervices/library/ws-socialcollab/index.html