The MultiHttpServer A Parallel Pull Engine
|
|
|
- Barrie Flynn
- 10 years ago
- Views:
Transcription
1 Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Technical Memo TM The MultiHttpServer A Parallel Pull Engine Christoph Endres [email protected] April 1999 Deutsches Forschungszentrum für Künstliche Intelligenz Postfach Kaiserslautern, FRG Tel.: + 49 (631) Fax: + 49 (631) [email protected] WWW: Stuhlsatzenhausweg Saarbrücken, FRG Tel.: + 49 (681) Fax: + 49 (681) [email protected]
2 Deutsches Forschungszentrum für Künstliche Intelligenz DFKI GmbH German Research Center for Artificial Intelligence Founded in 1988, DFKI today is one of the largest nonprofit contract research institutes in the field of innovative software technology based on Artificial Intelligence (AI) methods. DFKI is focusing on the complete cycle of innovation from world-class basic research and technology development through leading-edge demonstrators and prototypes to product functions and commercialization. Based in Kaiserslautern and Saarbrücken, the German Research Center for Artificial Intelligence ranks among the important Centers of Excellence worldwide. An important element of DFKI's mission is to move innovations as quickly as possible from the lab into the marketplace. Only by maintaining research projects at the forefront of science can DFKI have the strength to meet its technology transfer goals. DFKI has 134 full-time employees, including 111 research scientists with advanced degrees. There are also around 130 part-time research assistants. Revenues of DFKI were about 28 million DM in 1998, originating from government contract work and from commercial clients. The annual increase in contracts from commercial clients was greater than 37% during the last three years. At DFKI, all work is organized in the form of clearly focused research or development projects with planned deliverables, various milestones, and a duration from several months up to three years. DFKI benefits from interaction with the faculty of the Universities of Saarbrücken and Kaiserslautern and in turn provides opportunities for research and Ph.D. thesis supervision to students from these universities, which have an outstanding reputation in Computer Science. The key directors of DFKI are Prof. Wolfgang Wahlster (CEO) and Dr. Walter Olthoff (CFO). DFKI's five research departments are directed by internationally recognized research scientists: Information Management and Document Analysis (Director: Prof. A. Dengel) Intelligent Visualization and Simulation Systems (Director: Prof. H. Hagen) Deduction and Multiagent Systems (Director: Prof. J. Siekmann) Language Technology (Director: Prof. H. Uszkoreit) Intelligent User Interfaces (Director: Prof. W. Wahlster) In this series, DFKI publishes research reports, technical memos, documents (eg. workshop proceedings), and final project reports. The aim is to make new results, ideas, and software available as quickly as possible. Prof. Wolfgang Wahlster Director
3 The MultiHttpServer A Parallel Pull Engine Christoph Endres [email protected] DFKI-TM-99-04
4 This work has been supported by a grant from The Federal Ministry of Education, Science, Research, and Technology (FKZ ITW-9703). c Deutsches Forschungszentrum für Künstliche Intelligenz 1999 This work may not be copied or reproduced in whole or part for any commercial purpose. Permission to copy in whole or part without payment of fee is granted for nonprofit educational and research purposes provided that all such whole or partial copies include the following: a notice that such copying is by permission of the Deutsche Forschungszentrum für Künstliche Intelligenz, Kaiserslautern, Federal Republic of Germany; an acknowledgement of the authors and individual contributors to the work; all applicable portions of this copyright notice. Copying, reproducing, or republishing for any other purpose shall require a licence with payment of fee to Deutsches Forschungszentrum für Künstliche Intelligenz. ISSN
5 The MultiHttpServer A Parallel Pull Engine Christoph Endres [email protected] April 1999 Abstract Internet agents require fast, concurrent access to many web pages. This service should be stable, central, and easy to access independently from the actual implementation language. This paper describes the MultiHttpServer (MHS), a parallel pull engine implemented in Java with a TCP/IP interface for communication with other programs. A second TCP/IP interface provides information for administration purposes. A simple cong-le allows application-oriented tuning of the Multi- HttpServer. An optional JAVA-Servlet can remotely start up the MultiHttpServer on demand. The focus of this report is on a user oriented description of functionality and usage of the system. Sample clients in several languages are discussed. 1 Motivation Internet Agents and Netbots usually deal with numerous information sources, e.g. webpages. Downloading a page is a time consuming operation. On the other hand it is desirable to collect all information required as fast as possible to produce an acceptable runtime behaviour. The idea of parallel pull is to save time by performing download tasks in parallel. It has been successfully used in several applications developed in project PAN (see This memo is primarily intended as a reference for users of the MultiHttpServer. In order to develop his own applications based on the MultiHttpServer, the user should be either familiar with the implementation of TCP/IP clients or use one of the sample clients presented later on. The following sections describe the underlying idea, implementation details, the specication of the MultiHttpServer's communication protocol, and some sample applications. 1
6 request... request request MultiHttpServer server... Request Parsing Request Parsing Request Parsing Request Handler Request Handler Request Handler W W W Figure 1: architecture of a single MultiHttpServer process 2 Architecture of the MultiHttpServer In this section I introduce the architecture of a single MultiHttpServer instance. As discussed later it can be useful depending on the required capacity to have several instances of a MultiHttpServer running. At the moment I focus on the single server instance shown in Figure 1. It has two core components, a server module and several service modules. The server accepts requests from clients 1 by using a TCP/IP interface. For every client connection a service module is generated. The service module consists of two parts. A Request Parsing module controls the dialog protocol with the client and a Request Handler module executes the client's request by accessing the World Wide Web (WWW) in parallel. 3 Stability Problems Parallel execution of requests can be done in two dierent ways: multithreading or concurrent execution of processes. Both approaches are limited by the operating system. Former versions of the MultiHttpServer used multithreading only, which lead to stability problems when the maximum number of threads for one process was reached. Therefore it was necessary to provide a mechanism for creating multiple instances of the multithreaded MultiHttpServer and scheduling the queries. Still it is important to keep in mind that no matter how clever the system resources are used they will always be limited. 1 In this paper I do not distinguish between a human user and a client application when using the word client. 2
7 MultiHttpServer request port number MultiHttpServer user scheduler MultiHttpServer MultiHttpServer dialog MultiHttpServer Figure 2: Request Scheduling 4 Scheduling and forking processes The current version of the MultiHttpServer includes a scheduler which supervises all running MultiHttpServer instances and schedules user queries. Before actually performing his queries the user asks the scheduler which instance of the MultiHttpServer he should use. The scheduler answers by telling the port number of the least busy MultiHttpServer. The user then connects to this port and goes ahead with placing his query. The scheduler regularly (e.g. every three seconds) collects information from the MultiHttpServers about their status (i.e. number of running threads). If for any reason a server does not answer anymore, the scheduler kills it and starts a new one. In general, servers are created and killed depending on how busy the whole parallel pull engine is. The information about how this generating and killing of processes should be done is provided by a cong-le which the user should set up to his requirements and system resources as described in Section 7. The architecture of the cooperation between the scheduler and the instances of the MultiHttpServer is shown in Figure 2. In order to establish a communication to the MultiHttpServer, the user connects to the scheduler via TCP/IP. Thescheduler checks the capacities of all MultiHttpServer running, decides which one should handle the user request, returns the port number, and disconnects the user. The user then connects to the specied port and runs the server protocol as described in the following section. 5 The server protocol In this section I describe the protocol used for communication between the server and the client. It can be used as a short reference for developers. Sample sessions 3
8 are shown in the next section. mode: 2 <one/all> There are two dierent modes for the server protocol, one and all. When starting a session the rst thing one should do is specify the protocol mode to be used. Mode one means that only one of the pages requested is interesting. This is useful if there are several URLs of webpages providing equivalent information, e.g. three dierent weather forecast information services. In the one-mode, they are all requested, but the result of one of them is sucient and information from other sources no longer interesting. As soon as one requested page returns, all other requests will be canceled and all other running threads killed. Information already received from other pages will get lost. Mode all does not kill running threads autonomously. All of the requested pages will be downloaded (unless killed using the kill-command). This mode is used if the information on the requested pages is not equivalent. If no mode is specied, mode all is used by default. get: <URL> [<timeout> [+]] Request a URL. Timeout (in seconds) and additional parameters (in case the requested URL is a cgi-script) can be specied. Examples: get: requests the webpage of DFKI. The information should be obtained no matter how long it takes. get 2 requests the Microsoft webpage. If it takes more than 2 seconds to download, the information is not interesting anymore. get: rst=arthur + last=rimbaud + = + country=fr (the '+' at the end of a line indicates that further parameter specications follow). get: Let us take a closer look at the last two examples. Both request the same page. The rst one by specifying the parameters seperately, one in every line. The parameters are concatenated and written on the URL connection. This is the POST method of the HTTP protocol. The second example directly codes the parameters in the request string using the GET method. Most CGI scripts handle POST and GET methods in the same way if only a few parameters are specied. One of the main dierences is that the POST method can handle much longer parameter inputs, e.g. text. 2 Please not that the colon is part of the command. 4
9 A detailed description of those methods can be found in the HTTP specication 3. authget: <URL><timeout> <login><password> Get a password protected URL using specied login and password. info: <URL> Get available information about a requested URL. show: <URL> Show the output of a requested URL (if available). kill: <URL> Remove a no longer needed page or cancel downloading it. shortinfo Get a short overview of the status of all requested pages. stack Show the URLs of all requested pages. stacksize Return the amount of requested pages. available Return the amount of already received pages. rest Return the addresses of pages still to be expected, i.e. all pages of the stack besides those reaching timeout or not accessible for any other reason. more Return the maximum amount of pages still to be expected. success Return one URL of a received page. If there is no page available yet the return value is 'no'. waitsuccess Return one URL of a received page. Wait until a value can be returned. waitsuccess <timeout> Return one URL of a received page. Wait up to <timeout> seconds for a return value. status: <URL> Show the status of a requested page. Return values are connecting connected receiving received 3 See timeout Error <errorcode> 5
10 accesstrend: <URL> Show the access trend of a requested page. Return values are increasing constant decreasing accessrate: <URL> Show the access rate of a requested page in bytes per second. poud: <URL> Percentage of unfetched data of a requested page. If the size of a page is unknown 4 the return value is set to -1. size: <URL> Show the size of a requested page in bytes. help [<command>] help shows a general help including a list of all available commands, help <command> explains the usage of <command>. version Display version and copyright information. bye Terminate session and close TCP/IP connection. 6 A sample session This section shows an example of a MultiHttpServer session. After obtaining a TCP/IP port number from the scheduler, the client connects to a MultiHttpServer instance. At the beginning of a session, the server displays a prompt MultiHttpServer version 1.0 april 99 Christoph Endres, DFKI GmbH [email protected] Type 'help' for more information -Ok- The client now requests three webpages. get: -Okget: 1 -Okget: Ok- Using the shortinfo-command, the client checks the current status of the pages he requested. 4 The size of a document is an optional header eld in version 1.0 of HTTP. 6
11 shortinfo timeout received received -Ok- The success-command is now usedby the client in order to obtain the URL of one of the successfully received pages. The page is displayed using the show-command. success -Okshow: <HTML> <HEAD> <TITLE>DFKI - WWW: New Version </TITLE> </HEAD> <frameset cols="144,*" border=0 frameborder=0 framespacing=0> <frame src="dfkiweb/menu.htm" name="links" noresize> <frame src="dfkiweb/start.htm" name="rechts"> </frameset> </HTML> -Ok- After obtaining the page, the client removes it from the server and then closes the connection. kill: -Okbye bye -Ok- 7 Conguration The MultiHttpServer is congured by editing a cong le. Here is an example: # # Configfile for the MultiHttpServer # # TCP/IP ports for administrator and user # If no values are specified, the ports 2000 and 2001 are used by default. Admin: 2001 User: 2000 # minimum and maximum instances of MultiHttpServer running in parallel # If unspecified, a minimum of 1 and a maximum of 10 is assumed. 7
12 Instancemin: 2 Instancemax: 5 # set critical value for the load of a MultiHttpServer instance. # Unit is pages per server. # Default value is 50 Load: 25 pps The values to be specied so far are port numbers for administrator and user, a minimal and maximal number of MultiHttpServer instances running concurrently, and a critical value for the load of a server. The latter is used as an indicator for creating new instances of MultiHttpServer at runtime. 8 Using the administrator port By connecting to the administrator port some useful information about the status of the system is provided, e.g. the number of MultiHttpServer-instances currently running and the number of their threads. Example: MultiHttpServer 1.0 (c) DFKI GmbH 1999 running on serv-200. You are connecting from serv-200. Adminport is 2001, userport is From 2 up to 5 MHS instances can be created. Critical load is 5. 2 instances running: 34937: 3 connections, 12 pages : 5 connections, 17 pages Start on demand Using a servlet it is very easy to start up the MultiHttpServer on demand. A JAVA-Servlet enabled Webserver is necessary. An application wanting to use the MultiHttpServer simply creates a http-connection to the startmhs servlet, for instance to: The servlet starts the MultiHttpServer (in case it was not running yet) and returns the number of the client port and the administrator port (which usually is not necessary since one usually knows which ports one specied in the cong le). 8
13 10 Clients Usually the MultiHttpServer is used by other programs, e.g. agents, and not directly by ahuman user. In this section I provide sample code of how to write a client class in dierent languages and demonstrate its usage by a short example application. Clients in other languages are under construction An Eclipse Prolog client The following module species an interface to the MultiHttpServer. It can be used for the development of clients. %% %% MultiHttpClient module %% %% Wilken Schuetz, April 1999 %% % define module and export public functions :- module(multihttpclient). :- export open_connection/3, set_mode/2, get/2, get/3, wait_success/2, show/3,... close_connection/1. :- begin_module(multihttpclient). % connect to Scheduler, obtain session port and open connection open_connection(host,userport,sessionstream):- socket(internet,stream,userstream), connect(stream1,host/userport), read(userstream,sessionport), socket(internet,stream,sessionstream), connect(sessionstream,host/sessionport), skip_prompt(sessionstream). % skip the prompt skip_prompt(service):- repeat, read_string(service,"\n",_,string), String="-Ok-",!. % set session mode. unfortunately, 'mode' is a reserved keyword in eclipse, % so 'set_mode' is used instead. 9
14 set_mode(service, Mode):- concat_string(["mode: ",Mode,"\n"],Command), write(service, Command), flush(service),!, read_string(service,"\n",_,"-ok-"). % request a page get(service,page):- concat_string(["get: ",Page,"\n"],Command), write(service, Command), flush(service),!, read_string(service,"\n",_,"-ok-"). % request a page with specified timeout get(service,page,timeout):- concat_string(["get: ",Page," ",Timeout,"\n"],Command), write(service, Command), flush(service),!, read_string(service,"\n",_,"-ok-"). % wait til one page was successfully obtained wait_success(service,url):- write(service, "waitsuccess\n"), flush(service), read_string(service,"\n",_,url),!, read_string(service,"\n",_,"-ok-"). % show page show(service,url,content):- concat_string(["show: ",URL,"\n"],Command), write(service, Command), flush(service),!, collect(service,content). collect(service, Content) :- read_string(service,"\n",_,line), (Line = "-Ok-" -> Content="" (Line = "-Error-" -> (!,fail) (collect(service,rest), concat_strings(line,rest,content) ) ) ).. 10
15 .. % close connection close_connection(service):- write(service, "bye\n"), flush(service),!, read_string(service,"\n",_,"bye"),!, read_string(service,"\n",_,"-ok-"). The usage of the client module is claried in the following application example. After opening a connection, the client requests several pages, waits for the rst page to be received successfully, reads this page, and closes the connection. :-[multihttpclient]. :- use_module(multihttpclient). test(url,content):- open_connection('serv-200',2000,service), set_mode(service,"one"), get(service," get(service," get(service," wait_success(service,url), show(service,url,content), close_connection(service) A Java Client In this section I present a JAVA client. Please note that although the JAVA SecurityManager does usually not allow applets to arbitrarily connect to sites on the web, it is possible to obtain pages from a MultiHttpServer running on server side. The following class species the client: import java.io.* import java.net.* // The class Text is basically a Vector of Strings with some special features. // It is contained in the MultiHttpServer API. import endres.util.text public class MultiHttpClient Socket s BufferedReader in PrintWriter out // class constructor public MultiHttpClient(String host, int port) establishconnection(host,port) 11
16 // establishing a connection: // get session port from scheduler, open session void establishconnection(string host, int port) try Socket sock = new Socket(host,port) BufferedReader input input = new BufferedReader(new InputStreamReader(sock.getInputStream())) String number = input.readline() int sessionport = Integer.parseInt(number) this.s = new Socket(host,sessionport) this.in = new BufferedReader(new InputStreamReader(s.getInputStream())) this.out = new PrintWriter(s.getOutputStream()) catch (IOException e) // IO functions read and write public void write(string msg) out.println(msg) out.flush() public String read() String line = "" try while(line.length()<1) line = in.readline() catch (IOException e) return line public void catchok() read() // skip promt at session start public void skipprompt() String line while(!(line=read()).equals("-ok-")) // main protocol starts here: get, mode, kill etc. public void get(string url) write("get: "+url) catchok() public void get(string url, int timeout) write("get: "+url+" "+timeout) 12
17 catchok() public void modeall() write("mode: all") catchok() public void modeone() write("mode: one") catchok() public void kill(string url) write("kill: "+url) catchok() public String waitsuccess() write("waitsuccess") String ret = read() catchok() return ret public void bye() write("bye") read() catchok() public Text show(string url) Text ret = new Text() String line write("show: "+url) while(!(line=read()).equals("-ok-")) ret.addline(line) return ret The following application uses the above client for requesting three pages and displaying the rst one successfully received. After nishing this task, the time elapsed is displayed in milliseconds. import java.util.date import endres.util.text public class examplesession public static void main(string args[]) new examplesession() 13
18 public examplesession() Date d = new Date() long start = d.gettime() MultiHttpClient mhc = new MultiHttpClient("serv-200",2000) mhc.skipprompt() mhc.modeone() mhc.get(" mhc.get(" mhc.get(" String page = mhc.waitsuccess() System.out.println("show") Text t = mhc.show(page) t.show(system.out) mhc.kill(page) mhc.bye() System.out.println("Time elapsed: "+(new Date().getTime()-start)+" ms.") 10.3 A Perl 5 client Here is a client for the MultiHttpServer written in the popular script language Perl 5. As in the previous sections, not the full functionality of the protocol is implemented but can be added easily, since the interface functions do not dier much. ## MultiHttpClient ## ## provided by Markus Meyer and Robert Wirth, april 99 package MultiHttpClient use Socket # constructor sub new my $class = shift my $host = shift my $userport = shift my $self = $self->'host' = $host $self->'connected' = 0 # request on userport $iaddr = inet_aton($self->'host') or die "no host: $self->'host'" $paddr = sockaddr_in($userport, $iaddr) $proto = getprotobyname('tcp') socket(pagesock, PF_INET, SOCK_STREAM, $proto) or die "firstconn: $!" connect(pagesock, $paddr) or die "connect: $!" select (PAGESOCK) $ = 1 select (STDOUT) $ = 1 # read from userport $line = <PAGESOCK> 14
19 chop $line $self->'port' = $line close(pagesock) bless($self,$class) # connect for a session sub connect my $self = shift $iaddr = inet_aton($self->'host') or die "no host: $self->'host'" $paddr = sockaddr_in($self->'port', $iaddr) $proto = getprotobyname('tcp') socket(pagesock, PF_INET, SOCK_STREAM, $proto) or die "mainconn: $!" connect(pagesock, $paddr) or die "connect: $!" select (PAGESOCK) $ = 1 select (STDOUT) $ = 1 $self->'connected' = 1 # skip prompt sub collect my $self = shift my $line $line = <PAGESOCK> if (!defined $line) exit 0 while($line ~ '-Ok-') $line = <PAGESOCK> if (!defined $line) exit 0 # set session mode sub mode my $self = shift my $command = shift select PAGESOCK $ = 1 print "mode: $command\n" $line = <PAGESOCK> chop $line return $line ~ '-Ok-' # request a page 15
20 sub get my $self = shift my $okline my $url = shift select (PAGESOCK) $ = 1 print "get: ", $url, "\n" print STDOUT "status: ", $url, " connecting...\n" $okline = <PAGESOCK> if (!defined $okline) exit 0 # wait for success sub waitsuccess my $self = shift my $okline my $address select (PAGESOCK) $ = 1 print "waitsuccess\n" $address = <PAGESOCK> if (!defined $address) exit 0 $okline = <PAGESOCK> if (!defined $okline) exit 0 return $address # show page sub show my $self = shift my $line my $url = shift my $string = "" select (PAGESOCK) $ = 1 print "show: ", $url, "\n" print STDOUT "status: ", $url, " receiving\n" $line = <PAGESOCK> if (!defined $line) exit 0 while($line!~ '-Ok-') 16
21 $string = $string. $line $line = <PAGESOCK> if (!defined $line) exit 0 return $string # kill page sub kill my $self = shift my $okline my $url = shift select (PAGESOCK) $ = 1 print "kill: ", $url, "\n" print STDOUT "killing: ", $url, "\n" $okline = <PAGESOCK> if (!defined $okline) exit 0 # send command for termination sub bye my $self = shift my $okline my $anser select (PAGESOCK) $ = 1 print "bye\n" print STDOUT "bye\n" $answer = <PAGESOCK> if (!defined $answer) exit 0 $okline = <PAGESOCK> if (!defined $okline) exit 0 1 Using the client described above, it is very simple to implement the following small sample session. Please remember that it is necessary to put the location of the Perl interpreter in the rst line. #!/project/pan/perl5/bin/perl -w 17
22 # load module described above use MultiHttpClient # define variables my $client my $address my $content # session $client = new MultiHttpClient('serv-200','2000') $client->connect() $client->collect() $client->mode('one') $client->get(' $client->get(' $client->get(' $address = $client->waitsuccess() print STDOUT $address $content = $client->show($address) print STDOUT $content $client->kill($address) $client->bye() A Soft- and Hardwarerequirements The MultiHttpServer is written in JAVA, i.e. it is platform independent. So far, it was tested under Solaris and Linux, but should run under any operating system providing a JAVA Virtual Machine. B Further Information Further information can be obtained from the MultiHttpServer webpage: C Acknowledgements I like to thank Mathias Bauer for encouraging me to write this paper, Dietmar Dengler and Markus Meyer for interesting discussions on this matter, Wilken Schutz for providing the Prolog client, and Markus Meyer and Robert Wirth for the Perl 5 client. 18
23 The MultiHttpServer A Parallel Pull Engine Christoph Endres [email protected] TM Technical Memo
The MultiHttpServer A Parallel Pull Engine
Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Technical Memo TM-99-04 The MultiHttpServer A Parallel Pull Engine Christoph Endres email: [email protected] April 1999 Deutsches Forschungszentrum
Creating a Simple, Multithreaded Chat System with Java
Creating a Simple, Multithreaded Chat System with Java Introduction by George Crawford III In this edition of Objective Viewpoint, you will learn how to develop a simple chat system. The program will demonstrate
Lesson: All About Sockets
All About Sockets http://java.sun.com/docs/books/tutorial/networking/sockets/index.html Page 1 sur 1 The Java TM Tutorial Start of Tutorial > Start of Trail Trail: Custom Networking Lesson: All About Sockets
Deutsches Forschungszentrum. Intelligenz GmbH. The EMS Model. Jürgen Lind. January 1999. Deutsches Forschungszentrum für Künstliche Intelligenz GmbH
Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Research Report TM-98-09 The EMS Model Jürgen Lind January 1999 Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Postfach 20 80 67608
Division of Informatics, University of Edinburgh
CS1Bh Lecture Note 20 Client/server computing A modern computing environment consists of not just one computer, but several. When designing such an arrangement of computers it might at first seem that
Inheritance and Complementation: A Case Study of Easy Adjectives and Related Nouns
Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Research Report RR-91-30 Inheritance and Complementation: A Case Study of Easy Adjectives and Related Nouns Dan Flickinger and John Nerbonne
Java Network. Slides prepared by : Farzana Rahman
Java Network Programming 1 Important Java Packages java.net java.io java.rmi java.security java.lang TCP/IP networking I/O streams & utilities Remote Method Invocation Security policies Threading classes
Building a Multi-Threaded Web Server
Building a Multi-Threaded Web Server In this lab we will develop a Web server in two steps. In the end, you will have built a multi-threaded Web server that is capable of processing multiple simultaneous
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
Learning Outcomes. Networking. Sockets. TCP/IP Networks. Hostnames and DNS TCP/IP
CP4044 Lecture 7 1 Networking Learning Outcomes To understand basic network terminology To be able to communicate using Telnet To be aware of some common network services To be able to implement client
Orientation Course - Lab Manual
Orientation Course - Lab Manual Using the Virtual Managed Workplace site for the lab exercises Your instructor will provide the following information before the first lab exercise begins: Your numerical
Manual. Programmer's Guide for Java API
2013-02-01 1 (15) Programmer's Guide for Java API Description This document describes how to develop Content Gateway services with Java API. TS1209243890 1.0 Company information TeliaSonera Finland Oyj
Application Development with TCP/IP. Brian S. Mitchell Drexel University
Application Development with TCP/IP Brian S. Mitchell Drexel University Agenda TCP/IP Application Development Environment Client/Server Computing with TCP/IP Sockets Port Numbers The TCP/IP Application
Building Java Servlets with Oracle JDeveloper
Building Java Servlets with Oracle JDeveloper Chris Schalk Oracle Corporation Introduction Developers today face a formidable task. They need to create large, distributed business applications. The actual
Writing a C-based Client/Server
Working the Socket Writing a C-based Client/Server Consider for a moment having the massive power of different computers all simultaneously trying to compute a problem for you -- and still being legal!
Network Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper
WP2 Subject: with the CRYPTO-BOX Version: Smarx OS PPK 5.90 and higher 0-15Apr014ks(WP02_Network).odt Last Update: 28 April 2014 Target Operating Systems: Windows 8/7/Vista (32 & 64 bit), XP, Linux, OS
NetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Introduction to J2EE Development in NetBeans IDE...1 Configuring the IDE for J2EE Development...2 Getting
3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version
Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin [email protected] Carl Timmer [email protected]
Introduction to Java. Module 12: Networking (Java Sockets) Prepared by Costantinos Costa for EPL 233. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 1
Introduction to Java Module 12: Networking (Java Sockets) Prepared by Costantinos Costa for EPL 233 ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 1 What Is a Socket? A socket is one end-point of a two-way
Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide
Oracle Communications WebRTC Session Controller: Basic Admin Student Guide Edition 1.0 April 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved. Disclaimer This document contains proprietary
Sample. WebCenter Sites. Go-Live Checklist
Sample WebCenter Sites Go-Live Checklist Go-Live Checklist The Check-list given here is only indicative. You must consult your infrastructure & development team to develop a full check-list. 1 Ensure that
HP Education Services
HP Education Services itp WebServer Workshop for NonStop Servers (U4160S) Learn the basics of installing, configuring, and securing HP itp WebServer solutions along with the management procedures needed
7 Why Use Perl for CGI?
7 Why Use Perl for CGI? Perl is the de facto standard for CGI programming for a number of reasons, but perhaps the most important are: Socket Support: Perl makes it easy to create programs that interface
Using the AVR microcontroller based web server
1 of 7 http://tuxgraphics.org/electronics Using the AVR microcontroller based web server Abstract: There are two related articles which describe how to build the AVR web server discussed here: 1. 2. An
SimWebLink.NET Remote Control and Monitoring in the Simulink
SimWebLink.NET Remote Control and Monitoring in the Simulink MARTIN SYSEL, MICHAL VACLAVSKY Department of Computer and Communication Systems Faculty of Applied Informatics Tomas Bata University in Zlín
Performance Tuning Guide for ECM 2.0
Performance Tuning Guide for ECM 2.0 Rev: 20 December 2012 Sitecore ECM 2.0 Performance Tuning Guide for ECM 2.0 A developer's guide to optimizing the performance of Sitecore ECM The information contained
HGC SUPERHUB HOSTED EXCHANGE EMAIL
HGC SUPERHUB HOSTED EXCHANGE EMAIL OUTLOOK 2010 MAPI MANUALLY SETUP GUIDE MICROSOFT HOSTED EXCHANGE V2013.5 Table of Contents 1. Get Started... 1 1.1 Start from Setting up an Email account... 1 1.2 Start
Network Communication
Network Communication Outline Sockets Datagrams TCP/IP Client-Server model OSI Model Sockets Endpoint for bidirectional communication between two machines. To connect with each other, each of the client
Background (http://ha.ckers.org/slowloris)
CS369/M6-109 Lab DOS on Apache Rev. 3 Deny Of Service (DOS): Apache HTTP web server DOS attack using PERL script Background (http://ha.ckers.org/slowloris) The ideal situation for many denial of service
Volume SYSLOG JUNCTION. User s Guide. User s Guide
Volume 1 SYSLOG JUNCTION User s Guide User s Guide SYSLOG JUNCTION USER S GUIDE Introduction I n simple terms, Syslog junction is a log viewer with graphing capabilities. It can receive syslog messages
User Manual Document HTTP-Direct / FTPServer and FLASH file system
Smart solutions for comfort and safety User Manual Document HTTP-Direct / FTPServer and FLASH file system Version: 1.6 Date: October 2009 Status: Released Classification: Public HTTP-Direct / FTPServer
www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
Thin@ System Architecture V3.2. Last Update: August 2015
Thin@ System Architecture V3.2 Last Update: August 2015 Introduction http://www.thinetsolution.com Welcome to Thin@ System Architecture manual! Modern business applications are available to end users as
Configuring Nex-Gen Web Load Balancer
Configuring Nex-Gen Web Load Balancer Table of Contents Load Balancing Scenarios & Concepts Creating Load Balancer Node using Administration Service Creating Load Balancer Node using NodeCreator Connecting
Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5
Technical Note Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5 In the VMware Infrastructure (VI) Perl Toolkit 1.5, VMware
Sophos Mobile Control Technical guide
Sophos Mobile Control Technical guide Product version: 2 Document date: December 2011 Contents 1. About Sophos Mobile Control... 3 2. Integration... 4 3. Architecture... 6 4. Workflow... 12 5. Directory
JAVA-BASED FRAMEWORK FOR REMOTE ACCESS TO LABORATORY EXPERIMENTS. Department of Electrical Engineering University of Hagen D-58084 Hagen, Germany
JAVA-BASED FRAMEWORK FOR REMOTE ACCESS TO LABORATORY EXPERIMENTS Christof Röhrig, 1 Andreas Jochheim 2 Department of Electrical Engineering University of Hagen D-58084 Hagen, Germany Abstract: This paper
Stress Testing for Performance Tuning. Stress Testing for Performance Tuning
Stress Testing for Performance Tuning Stress Testing for Performance Tuning A t l o g y s T e c h n i c a l C o n s u l t i n g, R - 8, N e h r u P l a c e, N e w D e l h i Page 1 This Guide is a Sys Admin
Blackboard Learn TM, Release 9 Technology Architecture. John Fontaine
Blackboard Learn TM, Release 9 Technology Architecture John Fontaine Overview Background Blackboard Learn Deployment Model and Architecture Setup and Installation Common Administrative Tasks Tuning Integrating
Getting started with OWASP WebGoat 4.0 and SOAPUI.
Getting started with OWASP WebGoat 4.0 and SOAPUI. Hacking web services, an introduction. Version 1.0 by Philippe Bogaerts [email protected] www.radarhack.com Reviewed by Erwin Geirnaert
Upgrading from Call Center Reporting to Reporting for Call Center
Upgrading from Call Center Reporting to Reporting for Call Center www.nortelnetworks.com 2003 Nortel Networks i Table of Contents Table of Contents Change History...1 How to use this guide...2 Introduction...
Aradial Installation Guide
Aradial Technologies Ltd. Information in this document is subject to change without notice. Companies, names, and data used in examples herein are fictitious unless otherwise noted. No part of this document
13 File Output and Input
SCIENTIFIC PROGRAMMING -1 13 File Output and Input 13.1 Introduction To make programs really useful we have to be able to input and output data in large machinereadable amounts, in particular we have to
Web Server for Embedded Systems
Web Server for Embedded Systems Klaus-D. Walter After the everybody-in-the-internet-wave now obviously follows the everything-in-the- Internet-wave. The most coffee, vending and washing machines are still
Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7.
Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7. This document contains detailed instructions on all features. Table
10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
Deploying Microsoft Operations Manager with the BIG-IP system and icontrol
Deployment Guide Deploying Microsoft Operations Manager with the BIG-IP system and icontrol Deploying Microsoft Operations Manager with the BIG-IP system and icontrol Welcome to the BIG-IP LTM system -
If you have questions or find errors in the guide, please, contact us under the following e-mail address:
1. Introduction... 2 2. Remote Access via PPTP... 2 2.1. Configuration of the Astaro Security Gateway... 3 2.2. Configuration of the Remote Client...10 2.2.1. Astaro User Portal: Getting Configuration
5.0 Secure Meeting Error Messages
Juniper Networks, Inc. 1194 North Mathilda Avenue Sunnyvale, CA 94089 USA 408 745 2000 or 888 JUNIPER www.juniper.net Contents 5.0 Secure Meeting Error Messages...1 Contacting Juniper...1 Administrator
Test Automation Integration with Test Management QAComplete
Test Automation Integration with Test Management QAComplete This User's Guide walks you through configuring and using your automated tests with QAComplete's Test Management module SmartBear Software Release
Atomic Email Hunter Atomic Email Hunter URL Search Hunt Advanced... Keyword Search Common Settings
Atomic Email Hunter Atomic Email Hunter is developed to extract e-mail addresses from the Internet. All you do is supply a URL or some keywords.. It automatically finds the best (relevant) sites and gathers
INTRODUCTION TO WEB TECHNOLOGY
UNIT-I Introduction to Web Technologies: Introduction to web servers like Apache1.1, IIS, XAMPP (Bundle Server), WAMP Server(Bundle Server), handling HTTP Request and Response, installation of above servers
SOA Software API Gateway Appliance 7.1.x Administration Guide
SOA Software API Gateway Appliance 7.1.x Administration Guide Trademarks SOA Software and the SOA Software logo are either trademarks or registered trademarks of SOA Software, Inc. Other product names,
UQC103S1 UFCE47-20-1. Systems Development. uqc103s/ufce47-20-1 PHP-mySQL 1
UQC103S1 UFCE47-20-1 Systems Development uqc103s/ufce47-20-1 PHP-mySQL 1 Who? Email: [email protected] Web Site www.cems.uwe.ac.uk/~jedawson www.cems.uwe.ac.uk/~jtwebb/uqc103s1/ uqc103s/ufce47-20-1 PHP-mySQL
Global Monitoring + Support
Use HyperTerminal to access your Global Monitoring Units View and edit configuration settings View live data Download recorded data for use in Excel and other applications HyperTerminal is one of many
Distance-Learning Remote Laboratories using LabVIEW
Distance-Learning Remote Laboratories using LabVIEW Introduction Laboratories, which are found in all engineering and science programs, are an essential part of the education experience. Not only do laboratories
Outlook Profile Setup Guide Exchange 2010 Quick Start and Detailed Instructions
HOSTING Administrator Control Panel / Quick Reference Guide Page 1 of 9 Outlook Profile Setup Guide Exchange 2010 Quick Start and Detailed Instructions Exchange 2010 Outlook Profile Setup Page 2 of 9 Exchange
10. Java Servelet. Introduction
Chapter 10 Java Servlets 227 10. Java Servelet Introduction Java TM Servlet provides Web developers with a simple, consistent mechanism for extending the functionality of a Web server and for accessing
Contents. 2. cttctx Performance Test Utility... 8. 3. Server Side Plug-In... 9. 4. Index... 11. www.faircom.com All Rights Reserved.
c-treeace Load Test c-treeace Load Test Contents 1. Performance Test Description... 1 1.1 Login Info... 2 1.2 Create Tables... 3 1.3 Run Test... 4 1.4 Last Run Threads... 5 1.5 Total Results History...
Internet Information TE Services 5.0. Training Division, NIC New Delhi
Internet Information TE Services 5.0 Training Division, NIC New Delhi Understanding the Web Technology IIS 5.0 Architecture IIS 5.0 Installation IIS 5.0 Administration IIS 5.0 Security Understanding The
Metalogix Replicator. Quick Start Guide. Publication Date: May 14, 2015
Metalogix Replicator Quick Start Guide Publication Date: May 14, 2015 Copyright Metalogix International GmbH, 2002-2015. All Rights Reserved. This software is protected by copyright law and international
Java CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
Symplified I: Windows User Identity. Matthew McNew and Lex Hubbard
Symplified I: Windows User Identity Matthew McNew and Lex Hubbard Table of Contents Abstract 1 Introduction to the Project 2 Project Description 2 Requirements Specification 2 Functional Requirements 2
Web Services API Developer Guide
Web Services API Developer Guide Contents 2 Contents Web Services API Developer Guide... 3 Quick Start...4 Examples of the Web Service API Implementation... 13 Exporting Warehouse Data... 14 Exporting
FileMaker Server 15. Getting Started Guide
FileMaker Server 15 Getting Started Guide 2007 2016 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and FileMaker Go are trademarks
FileMaker 11. ODBC and JDBC Guide
FileMaker 11 ODBC and JDBC Guide 2004 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered
IUCLID 5 Guidance and Support
IUCLID 5 Guidance and Support Web Service Installation Guide July 2012 v 2.4 July 2012 1/11 Table of Contents 1. Introduction 3 1.1. Important notes 3 1.2. Prerequisites 3 1.3. Installation files 4 2.
DIABLO VALLEY COLLEGE CATALOG 2014-2015
COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy
Upgrading from Call Center Reporting to Reporting for Contact Center. BCM Contact Center
Upgrading from Call Center Reporting to Reporting for Contact Center BCM Contact Center Document Number: NN40010-400 Document Status: Standard Document Version: 02.00 Date: June 2006 Copyright Nortel Networks
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
AN APPLICATION OF INFORMATION RETRIEVAL IN P2P NETWORKS USING SOCKETS AND METADATA
AN APPLICATION OF INFORMATION RETRIEVAL IN P2P NETWORKS USING SOCKETS AND METADATA Ms. M. Kiruthika Asst. Professor, Fr.C.R.I.T, Vashi, Navi Mumbai. [email protected] Ms. Smita Dange Lecturer,
Logging in Java Applications
Logging in Java Applications Logging provides a way to capture information about the operation of an application. Once captured, the information can be used for many purposes, but it is particularly useful
String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivepacket.getaddress(); int port = receivepacket.
164 CHAPTER 2 APPLICATION LAYER connection requests, as done in TCPServer.java. If multiple clients access this application, they will all send their packets into this single door, serversocket. String
Advanced Network Programming Lab using Java. Angelos Stavrou
Advanced Network Programming Lab using Java Angelos Stavrou Table of Contents A simple Java Client...3 A simple Java Server...4 An advanced Java Client...5 An advanced Java Server...8 A Multi-threaded
CA APM Cloud Monitor. Scripting Guide. Release 8.2
CA APM Cloud Monitor Scripting Guide Release 8.2 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is for
Adding Advanced Caching and Replication Techniques to the Apache Web Server
Adding Advanced Caching and Replication Techniques to the Apache Web Server Joachim Marder, Steffen Rothkugel, Peter Sturm University of Trier D-54286 Trier, Germany Email: [email protected], [email protected],
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
Simple Scan to Email Setup Guide
Simple Scan to Email Setup Guide Document Centre 555/545/535 Dc04cc0336 Scan to Email Scanning to email from a Xerox DC 555/545/535 requires the support of external email services on a network. These services
BrightStor ARCserve Backup for Windows
BrightStor ARCserve Backup for Windows Agent for Microsoft SQL Server r11.5 D01173-2E This documentation and related computer software program (hereinafter referred to as the "Documentation") is for the
18.2 user guide No Magic, Inc. 2015
18.2 user guide No Magic, Inc. 2015 All material contained here in is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced by any means. All information
Sentinel Cloud V.3.6 Quick Start Guide
Sentinel Cloud V.3.6 Quick Start Guide 2 Sentinel Cloud Quick Start Guide Software Version This documentation is applicable for Sentinel Cloud 3.6. Document Revision History Part Number 007-012143-001
Bitrix Site Manager ASP.NET. Installation Guide
Bitrix Site Manager ASP.NET Installation Guide Contents Introduction... 4 Chapter 1. Checking for IIS Installation... 5 Chapter 2. Using An Archive File to Install Bitrix Site Manager ASP.NET... 7 Preliminary
Remote Connectivity to XV, XP and epro units running Visual Designer
Intro Remote connectivity is one of the major features of Visual Designer and our new operator interface hardware platforms running that software. The ability to monitor, troubleshoot, edit and administer
Network DK2 DESkey Installation Guide
VenturiOne Getting Started Network DK2 DESkey Installation Guide PD-056-306 DESkey Network Server Manual Applied Cytometry CONTENTS 1 DK2 Network Server Overview... 2 2 DK2 Network Server Installation...
CONNECTING TO DEPARTMENT OF COMPUTER SCIENCE SERVERS BOTH FROM ON AND OFF CAMPUS USING TUNNELING, PuTTY, AND VNC Client Utilities
CONNECTING TO DEPARTMENT OF COMPUTER SCIENCE SERVERS BOTH FROM ON AND OFF CAMPUS USING TUNNELING, PuTTY, AND VNC Client Utilities DNS name: turing.cs.montclair.edu -This server is the Departmental Server
Network/Socket Programming in Java. Rajkumar Buyya
Network/Socket Programming in Java Rajkumar Buyya Elements of C-S Computing a client, a server, and network Client Request Result Network Server Client machine Server machine java.net Used to manage: URL
Requirements Collax Security Gateway Collax Business Server or Collax Platform Server including Collax SSL VPN module
Collax SSL VPN Howto This howto describes the easy configuration of a Collax server as SSL VPN gateway in order to enable external access to selected applications in the company network. Except for a common
CSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution
CSE 452: Programming Languages Java and its Evolution Acknowledgements Rajkumar Buyya 2 Contents Java Introduction Java Features How Java Differs from other OO languages Java and the World Wide Web Java
Mail User Agent Project
Mail User Agent Project Tom Kelliher, CS 325 100 points, due May 4, 2011 Introduction (From Kurose & Ross, 4th ed.) In this project you will implement a mail user agent (MUA) that sends mail to other users.
Customer Tips. Xerox Network Scanning HTTP/HTTPS Configuration using Microsoft IIS. for the user. Purpose. Background
Xerox Multifunction Devices Customer Tips June 5, 2007 This document applies to these Xerox products: X WC Pro 232/238/245/ 255/265/275 for the user Xerox Network Scanning HTTP/HTTPS Configuration using
Link and Sync Guide for Hosted QuickBooks Files
Link and Sync Guide for Hosted QuickBooks Files A How-To Guide for Syncing QuickBooks Files Table of Contents Hosted QuickBooks Files Overview:... 2 Rules Overview:... 2 Link and Sync Hosted QuickBooks
Side-by-side Migration Guide for Snare Server v7
Side-by-side Migration Guide for Snare Server v7 Intersect Alliance International Pty Ltd. All rights reserved worldwide. Intersect Alliance Pty Ltd shall not be liable for errors contained herein or for
Database Access from a Programming Language: Database Access from a Programming Language
Database Access from a Programming Language: Java s JDBC Werner Nutt Introduction to Databases Free University of Bozen-Bolzano 2 Database Access from a Programming Language Two Approaches 1. Embedding
Database Access from a Programming Language:
Database Access from a Programming Language: Java s JDBC Werner Nutt Introduction to Databases Free University of Bozen-Bolzano 2 Database Access from a Programming Language Two Approaches 1. Embedding
