Group 2 Web Service For Collaborative editing Uses scalable Client-Server architecture to minimize network communication and improve reliability Provides.

Slides:



Advertisements
Similar presentations
Enabling Secure Internet Access with ISA Server
Advertisements

Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
Cookies, Sessions. Server Side Includes You can insert the content of one file into another file before the server executes it, with the require() function.
Adding Dynamic Content to your Web Site
 2002 Prentice Hall. All rights reserved. Chapter 9: Servlets Outline 9.1 Introduction 9.2 Servlet Overview and Architecture Interface Servlet and.
An End-User Perspective On Using NatQuery Extraction From two Files T
Medicaid Alternative Benefit Plans (ABP) Processing
1 Configuring Internet- related services (April 22, 2015) © Abdou Illia, Spring 2015.
Remote Unit Testing Brian Pruitt-Goddard Alex Riordan.
1 Configuring Web services (Week 15, Monday 4/17/2006) © Abdou Illia, Spring 2006.
Servlets and a little bit of Web Services Russell Beale.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Jonathan Voigt University of Michigan Soar Workshop 25
An Introduction to Programming with C++ Fifth Edition Chapter 13 Sequential Access Files.
RECRUIT Overview November 29, 2005 Academic Personnel Systems 1 Academic Personnel Systems: RECRUIT Please silence cell-phones.
1 of 6 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
C++ fundamentals.
1 CS428 Web Engineering Lecture 18 Introduction (PHP - I)
1 Enabling Secure Internet Access with ISA Server.
Server Design Discuss Design issues for Servers Review Server Creation in Linux.
Zach Moshe Rotem Naar.  File upload vulnerabilities overview  FUV – detailed overview  Live demonstration  In the future…
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Open Source Server Side Scripting ECA 236 Open Source Server Side Scripting Cookies & Sessions.
CSCI 6962: Server-side Design and Programming Introduction to AJAX.
Section 2.2 Network Forensics TRACKING HACKERS THROUGH CYBERSPACE
Simple Mail Transfer Protocol (SMTP)
1 The following presentation is from the Oracle Webcast “What’s New in P6 EPPM Release 8.1.” As a partner, you may not use the Oracle Power Point template,
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
© 2009 Research In Motion Limited Advanced Java Application Development for the BlackBerry Smartphone Trainer name Date.
Create/edit & upload content Faculty (authors) create (insert) new content or edit (update) existing course content Faculty can transmit the content they.
Introduction to Applets CS 3505 Client Side Scripting with applets.
Java CGI Lecture notes by Theodoros Anagnostopoulos.
Vassil Roussev 2 A socket is the basic remote communication abstraction provided by the OS to processes. controlled by operating system.
10/13/2015 ©2006 Scott Miller, University of Victoria 1 Content Serving Static vs. Dynamic Content Web Servers Server Flow Control Rev. 2.0.
Drinking Water Infrastructure Needs Survey and Assessment 2007 Training.
Drinking Water Infrastructure Needs Survey and Assessment 2007 Website.
1 Welcome to CSC 301 Web Programming Charles Frank.
1 Schlumberger SIM Toolkit in GSM Wilson Cheung Schlumberger Technologies (Asia) Ltd. SIM Toolkit in GSM Wilson Cheung Schlumberger Technologies (Asia)
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 8 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Remote Shell CS230 Project #4 Assigned : Due date :
An Introduction to Programming with C++ Sixth Edition Chapter 14 Sequential Access Files.
Prepared by Emre Aydemir & Arif Çanakoglu CMPE 473 Project
Term project Team 2 ( K.D. Kang, J.H. Lim, Y.J. W ) Online Document Management System.
Unit - III. Providing a Caching Proxy Server (1) A caching proxy server is software that stores (caches) frequently requested internet objects such as.
Fall 2000C.Watters1 World Wide Web and E-Commerce Clients & Client Side Processing.
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
ADVANCED COMPUTER NETWORKS Peer-Peer (P2P) Networks 1.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Field Programmable Port Extender (FPX) 1 NCHARGE: Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
How to maintain state in a stateless web Shirley Cohen
11.1 Silberschatz, Galvin and Gagne ©2005 Operating System Principles 11.5 Free-Space Management Bit vector (n blocks) … 012n-1 bit[i] =  1  block[i]
Library Online Resource Analysis (LORA) System Introduction Electronic information resources and databases have become an essential part of library collections.
FTP Client API FTP in embedded devices Implementing an FTP Client FTP Command APIs Other FTP Client APIs.
Internet and Intranet Protocols and Applications Lecture 6 Application Protocols: Telnet, FTP February 27, 2002 Joseph Conron Computer Science Department.
Mandatory Assignment INF3190. Part 1: Client-server communication via TCP Develop a client-server application in C which allows a client to send UNIX.
File Tracking System Presented by J. Madhusudhana Reddy Asst Mgr(IS)
Remote Api Tutorial How to call WS-PGRADE workflows from remote clients through the http protocol?
Fab25 User Training Cerium Labs LabCollector - LIMS Lynette Ballast.
Text2PTO: Modernizing Patent Application Filing A Proposal for Submitting Text Applications to the USPTO.
Lesson 11. CGI CGI is the interface between a Web page or browser and a Web server that is running a certain program/script. The CGI (Common Gateway Interface)
Some from Chapter 11.9 – “Web” 4 th edition and SY306 Web and Databases for Cyber Operations Cookies and.
Silberschatz and Galvin  C Programming Language Kingdom of Saudi Arabia Ministry of Higher Education Al-Majma’ah University College of Education.
TMG Client Protection 6NPS – Session 7.
WWW and HTTP King Fahd University of Petroleum & Minerals
Web Development Web Servers.
Configuring Internet-related services
Today: Coda, xFS Case Study: Coda File System
Configuration Of A Pull Network.
Presentation transcript:

Group 2 Web Service For Collaborative editing Uses scalable Client-Server architecture to minimize network communication and improve reliability Provides Upload, Download, Find functionality Easily extendable to near real-time “live” collaboration

ARCHITECTURE Web Service Document Repository Editor Line 1 Line 2 Line 3 … Editor Line 1 Line 2 Line 3 … upload download upload

UPLOAD There are 2 options when uploading a file to the web-server: Option 1) Upload the entire file at once Option 2) Upload the file line by line

Option 1 : Upload the entire file Function: int ns__uploadFile(char *fileName, int bytes, char *fileContents, char **status); Uploads the desired file. Entire file is received. If a file with the same name exists on the server, the contents of the file on the server are over written. Input: fileName: name of the file to upload to the web-service bytes:size of the file in bytes fileContents:actual contents of the file to be uploaded (string) Output: - the function can return the following strings 1) "CNO~!" Could Not Open the requested file name 2) "CNW~!" Could Not Write to requested file 3) "OK~!" contents of the file uploaded and written correctly.

Option 2 : Upload the file line by line Function: int ns__startUpload(char *fileName, char **status); Creates a file on the server to be uploaded line by line thus enabling the user to manually manage network flow of traffic. If a file with the same name exists on the server, the contents of the file on the server are over written. Input: fileName: name of the file to upload to the web-service Output: - the function can return the following strings 1) "CNC~!" Could Not Create the requested file on the server 2) "OK~!" contents of the file uploaded and written correctly.. Before the client can begin uploading the file the user must call the following function in order to create the physical file on the server.

Option 2 : Upload the file line by line Function: int ns__upload(char *fileName, char *text, char **result); Uploads a file line by line thus enabling the user to manually manage network flow of traffic. Caller sets the length of line on the client side. Each line is appended to the file created by the startUpload() function. Input: fileName: name of the file to upload to the webservice text: the contents of each line Output: - the function can return the following strings 1) "CNO~!“Could Not Open the requested file name 2) "CNA~!" Could Not Append to requested file 3) "OK~!" contents of the file uploaded and written correctly.. Once the file has been created the user can begin the line by line upload.

DOWNLOAD There are 2 options when uploading a file to the web-server: Option 1) Download the entire file at once Option 2) Download the file line by line

Option 1 : Download the entire file Function: int ns__downloadFile(char *fileName, char **fileContents); Downloads the requested file. Entire file is sent. Input: fileName: name of the file to download from the web-service Output: - the function can return the following strings 1) "DNE~!" the requested file Does Not Exist on the server 2) all contents of the file (as a string)

Option 2 : Download the file line by line Function: int ns__download(char *fileName, long position, int bytes, char **result); Downloads the requested file line by line. The caller sets the length of each line in bytes to be downloaded. This enables the user to manually manage network flow of traffic. Input: filename: Name of the file to download from the web-service position: Position of the next line in the file to download bytes: Size of each line to download Output: - the function can return the following strings 1) "DNE~!" the requested file Does Not Exist on the server 2) "EOF~!" the file has reached the end. 3) actual line of text from the requested file.

FIND

FIND – sending to web-service Function: int ns__setFind(char *sessionID,int offset, char *searchString, char **result); Send the search string to the server as well as the location of the search string in the file. Also sessionID is required to keep track of all the users working on the same file.. Input: sessionID: user’s/clien’s sessionID; offset:location of the seach string in the file (byte offset) searchString: string the user has searched for Output: - the function can return the following strings 1) "OK~!" uploaded all information correctly 2) "NOT OK~!“the information was not uploaded

FIND – receive from the web-service Function: int ns__getFindOffset(char *sessionID,char *result); Sends the client the offset of the last searched string according to the sessionID. Input: sessionID: user’s/client’s sessionID; Output: - the function can return the following strings 1)the offset/byte location of the last search for the given session. 2) "DNE~!" the information for the given session ID Does Not Exist. In other words there were no searches performed yet.

FIND – receive from the web-service Function: int ns__getFindString(char *sessionID,char *result); Sends the client the search string of the last search according to the sessionID. Input: sessionID: user’s/client’s sessionID; Output: - the function can return the following strings 1)the search string of the last search for the given session. 2) "DNE~!" the information for the given session ID Does Not Exist. In other words there were no searches performed yet.

Ideas for extension of web service: To inform web service of local changes: modify upload operation to allow byte offfset of text accumulate changes locally send periodic uploads with incremental changes and byte offsets To receive changes from web service: modify download operation to allow byte offfset of text accumulate changes on web service using log periodically download changes from web service so that client buffer remains up to date