Using XML-RPC in Secure Database Administration on the Web

Size: px
Start display at page:

Download "Using XML-RPC in Secure Database Administration on the Web"

Transcription

1 Using XML-RPC in Secure Database Administration on the Web Silvana Solomon Department of Digital Communications University Al.I.Cuza of Iasi, Romania Catalin Varvara RoEduNet Iasi Branch Abstract XML-RPC is a Remote Procedure Calling protocol that works over the Internet. An XML-RPC message is an HTTP-POST request. The body of the request is in XML. A procedure executes on the server and the value it returns is also formatted in XML. Procedure parameters can be scalars, numbers, strings, dates, etc.; and can also be complex record and list structures. The goal of this protocol is to lay a compatible foundation across different environments, no new power is provided beyond the capabilities of the CGI interface. Firewall software can watch for POSTs whose Content-Type is text/xml. We use the XML-RPC technology in order to securely transfer database contents on the Web. 1. Introduction The world gets more and more interconnected nowadays. People communicate by means of computers and there is a strong need for easy, reliable means to control and use the facilities offered by a remote machine. In a stand-alone computer, applications use procedure calls in order to realize their tasks. The same type of service is needed to make use of the capabilities that are accessible from other computers. For example, a computer can provide a service whereby it receives a number representing the year and after some calculations it returns the date of Easter for that year. Both the server machine and the client machine have to agree on the types and number of parameters to be passed and returned as well as on other details. For this, Remote Procedure Call or RPC was created. 2. RPC and XML-RPC 2.1. Overview RPC is a very simple extension to the procedure call idea. It creates connections between procedures that are running in different applications, or on different machines [3]. Conceptually, there's no difference between a local procedure call and a remote one, but they are implemented differently, perform differently and therefore are used for different tasks. RPC is much slower than a local procedure call because of the time required to establish the connection and for communication. Remote calls can be understood on both sides of the connection because the two machines implement the same protocol. The value in a standardized crossplatform approach for RPC is that it allows Unix machines to talk to Windows machines and vice versa. There are numerous possible formats for RPC. XML is a language that had a tremendous development and it has a lot of applications in almost every aspect of computer science. RPC made no exception and the two technologies combined to yield a powerful instrument that can be used on the Web. This is how XML-RPC appeared. XML-RPC is a specification and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet. It is remote procedure calling using HTTP as the transport and XML as the encoding. It is designed to be as simple as possible, while still allowing complex data structures to be transmitted, processed and returned. In XML-RPC, it is easy to pass and return complex data types: arrays or structs can be employed as simple as primitive data types. This way, one can call procedures with very complicated and elaborated returned values or parameters. To what concerns the latter, they can be strongly typed. It is worth mentioning that the use of XML makes it easy to learn and implement. Up to now, there are known implementations in several programming languages. Servers are available for PHP, Frontier, Java, Perl, Tcl and Zope. Client implementations are available for PHP, Frontier, COM, Perl, TCL and Python. There is support for XML-RPC in web browsers such as Netscape. 236

2 2.2. XML-RPC vs. SOAP SOAP (Simple Object Access Protocol) is a protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing remote procedure calls and responses. SOAP makes extensive use of namespacing and attribute specification tags in almost every element of a message. It implements user defined data types, the ability to specify the recipient, message specific processing control, and other features. While XML-RPC wants only to perform remote procedure call at a simple level, still remaining not complicated in format, SOAP reaches for more complex features and has more capabilities. For example, it has named structs and arrays, polymorphic ancestors and enumerations. In XML- RPC, an <array> contains a single <data> element, which can contain any number of s. The most important feature of XML-RPC is its simplicity. As the authors themselves state, it should be an easy to implement protocol that could be quickly adapted to run in different conditions. On the other hand, SOAP goes further and addresses detailed questions and therefore it has more features. Naturally, there is a trade-off for all these. XML- RPC is easy to use but has fewer capabilities, while SOAP provides more utilities and it is less natural to use [2]. SOAP involves significantly more overhead but adds much more information about what is being sent. If complex user defined data types and the ability to have each message define how it should be processed is needed, then SOAP is a better solution. Yet if standard data types and simple method calls are enough then XML-RPC makes applications faster and easier to debug and maintain Current Implementations XML-RPC is currently implemented and used in numerous applications that need to call applications from machines in a network. Web Crossing is well-known collaboration server platform [6], offering complete solutions and many features. It uses XML-RPC to share resources from a Web Crossing server, and to let a server access shared resources from other servers. It has the built-in ability to act as both an XML-RPC server and client. Through XML-RPC, a server can act as a client for another server. Also it allows to create new clients separate from a browser, to share information among servers and to make search requests on multiple co-operating servers. VisualOffice is a web-based groupware solution [5] that enables a company s staff to access their e- mails and collaborate on many tasks from one central location accessible anywhere in the world at anytime. VisualOffice uses XML-RPC internally to exchange information between the different modules, and externally to retrieve information such as news, weather, stocks, etc. For instance, it can get information from each one of them and display a summary of the events, tasks and folders that the user has. Using XML-RPC, VisualOffice can also retrieve external information from news feeds such as television channels and display it to the user. 3. XML-RPC for PHP We use a collection of PHP classes that provides a framework for writing XML-RPC clients and servers in PHP. Files in the distribution are: xmlrpc.inc - the XML-RPC classes. We must include this in our PHP files to use the classes. xmlrpcs.inc - the XML-RPC server class. We must include this too in addition to xmlrpc.inc to get server functionality The two above classes are used as libraries, and are not to be modified. The other next two classes are used in order to create XML-RPC client and server, using the two libraries. server.php - a sample server hosting six functions: 5 functions in order to decode the struct and to create the mysql command, and one to execute and to return the result of one query. client.php - client code to exercise the various functions in server.php Xmlrpc_client - the basic class used to represent a client of an XML-RPC server. Creation The constructor has the following syntax: $client=new xmlrpc_client($server_path, $server_hostname, $server_port); In our example client set up to query the server with the IP address : $client=new xmlrpc_client("rpc/server.php", " ", 80); The server_port parameter is optional, and if omitted will default to 80 when using HTTP and 443 when using HTTPS. The methods of this class used in the project are : send This method takes the form: $response=$client->send($xmlrpc_message, $timeout, $server_method); where $xmlrpc_message is an instance of xmlrpcmsg, and $response is an instance of xmlrpcresp. The $timeout is optional, and will be set to 0 (wait forever) if omitted. 237

3 The server_method parameter is optional, and if omitted will default to 'http'. The only other valid value is 'https', which will use an SSL HTTP connection to connect to the remote server. setdebug $client->setdebug($debugon); $debugon is either 0 or 1 depending on whether you require the client to print debugging information to the browser. The default is not to output this information. The debugging information includes the raw data returned from the XML-RPC server it was querying, and the PHP value the client attempts to create to represent the value returned by the server. This option can be very useful when debugging servers because it allows you to see exactly what the server returns. xmlrpc_server The current implementation of this class has been kept as simple as possible. The constructor for the server basically does all the work. Here's a minimal example: function my_select ($params) {... } $s=new xmlrpc_server (array("db_select" => array("function" => "my_select", "signature" => $my_select_sig, "docstring" => $my_select_doc) ) ); This performs everything you need to do with a server. The single argument is an associative array from method names to function names. The request is parsed and despatched to the relevant function, which is reponsible for returning a xmlrpcresp object, which gets serialized back to the caller. The first argument to the xmlrpc_server constructor is an array, called the dispatch map. In this array is the information the server needs to service the XML-RPC methods you define. The dispatch map takes the form of an associative array of associative arrays: the outer array has one entry for each method, the key being the method name. The corresponding value is another associative array, which can have the following members: function - this entry is mandatory. It must be a name of a function in the global scope which services the XML-RPC method. signature - this entry is an array containg the possible signatures for the method. If this entry is present then the server will check that the correct number and type of parameters have been sent for this method before dispatching it. docstring - this entry is a string containing documentation for the method. The documentation may contain HTML markup. Method signatures. A signature is a description of a method's return type and its parameter types. A method may have more than one signature. Within a server's dispatch map, each method has an array of possible signatures. Each signature is an array of types. The first entry is the return type. For instance, the method my_select(struct) has the signature array($xmlrpcstring, $xmlrpcstruct); and, assuming that it the only possible signature for the method, it might be used like this in server creation: $my_select_sig=array(array($xmlrpcstring, $xmlrpcstruct)); $my_select_doc='when passed a struct containing the parameters of an SQL command, it constructs the query, interrogates the BD and returns the query's result, where the tbl_id is actually the corresponding index of the interrogated table, in an array.'; For convenience the strings representing the XML-RPC types have been encoded as global variables: $xmlrpci4="i4"; $xmlrpcint="int"; $xmlrpcboolean="boolean"; $xmlrpcdouble="double"; $xmlrpcstring="string"; $xmlrpcdatetime="datetime.iso8601"; $xmlrpcbase64="base64"; $xmlrpcarray="array"; $xmlrpcstruct="struct"; Fault reporting. Fault codes for your servers should start at the value indicated by the global $xmlrpcerruser + 1. The general idea of the project's functionality is represented in the scheme below: WebClient1 XML-RPC client XML-RPC server DB server WebClient2 A.The WebClientX will make a request to the 238

4 XML-RPC client through a method called show_products_ofmycompany() for example. The XML-RPC client s functionality is to define the request to an XML-RPC server.the WebClient does not know anything about the database location and type. B. Next, the function which is called show_products_ofmycompany() in XML-RPC client calls a generic function to fill the fields of a struct object, that will look like: $select_param=new xmlrpcval (array( field_list" => new xmlrpcval (""), "tbl_id"=> new xmlrpcval("6"), "where" => new xmlrpcval(""), "group by" => new xmlrpcval(""), "order by" => new xmlrpcval(""), "having" =>new xmlrpcval("") ), "struct" ); In our case the field_list is empty and the XML- RPC server will take it as * argument of the SQL command option. Value 6 for tbl_id is the numeric correspondent of the table to be interrogated. The next steps in the XML-RPC client are : 1. represents a request to an XML-RPC server: $f = new xmlrpcmsg('db_select', array($select_param)); 2. creates an XML string representing the XML-RPC message: htmlentities($f->serialize()); In the XML-RPC request, its header has the form: POST /RPC HTTP/1.0 User-Agent: PHP/4.0.5 Host: Content-Type: text/xml Content-length: 558 The format of the URI in the first line of the header is not specified. For example, empty, a single slash, if the server is only handling XML-RPC calls. However, if the server is handling a mix of incoming HTTP requests, we allow the URI to help route the request to the code that handles XML-RPC requests. (In the example, the URI is RPC, telling to route the request to RPC responder.) A User-Agent and Host must be specified. The Content-type is text/xml. The Content-Length must be specified and must be correct. The payload is in XML, a single <methodcall> structure. The <methodcall> must contain a <methodname> sub-item, a string, containing the name of the method to be called. The string may only contain identifier characters, upper and lowercase A-Z, the numeric characters, 0-9, underscore, dot, colon and slash. It's entirely up to the server to decide how to interpret the characters in a methodname. For example, the methodname could be the name of a file containing a script that executes on an incoming request. It could be the name of a cell in a database table. Or it could be a path to a file contained within a hierarchy of folders and files. If the procedure call has parameters, the <methodcall> must contain a <params> sub-item. The <params> sub-item can contain any number of <param>s, each of which has a. The encapsulated request for the server looks like: <?xml version="1.0"?> <methodcall> <methodname>db_select</methodname> <params> <param> <struct> <member><name>field_list</name> </string> <member><name>tbl_id</name> 6</string> <member><name>where </name> </string> <member><name>group by</name> </string> <member><name>order by</name> </string> <member><name>having</name> </string> </struct> </param> </params> </methodcall> 3. creates the client instance: $client=new xmlrpc_client ("RPC/server.php", " ", 80); 4. sends the encapsulated request to the server. The result is kept in $r variable. $r=$c->send($f); C. Now, the DB_select function will be called in the server. This is the name known by the client, but the server associates to this name a different internal name, my_select. Here we unpack the struct, create the SQL query, executes it and sends back the answer to the client: $sno=$m->getparam(0); // if it's there and the correct type if (isset($sno) && ($sno->scalartyp()=="struct")) 239

5 { //create the SQL query regarding to the SQL //Server- here MySQL //calls a function that will execute effectively the //MySQL command: //query_result($query,$func_name) //returns to the XML-RPC client the result of the //query : new xmlrpcresp($q_result); //where $q_result is the XML-encapsulated //record set; this is done using a function called //rst2xml(&$rst); } D. Here is the response header format for our example: HTTP/ OK Date: Mon, 28 Apr :28:53 GMT Server: Apache/ (Win32) X-Powered-By: PHP/4.0.5 Content-length: 148 Connection: close Content-Type: text/xml Unless there s a lower-level error, always return 200OK. The Content-Type is text/xml. Content-Length must be present and correct. The body of the response is a single XML structure, a <methodresponse>, which can contain a single <params> which contains a single <record> which contains the fields of a recordset and their associated values.. The <methodresponse> could also contain a <fault> which contains a which is a <struct> containing two elements, one named <faultcode>, an <int> and one named <faultstring>, a. A <methodresponse> can not contain both a <fault> and a <params>. The XML-RPC client will get an answer that looks like: <?xml version="1.0" encoding="utf-8"?> <methodresponse> <params> <record1> <pr_id> <int> 1 <int> <pr_id> <prod_code> 0031 </prod_code> <prod_name> Painting cans </prod_name> <prod_measure_unit> liter </prod_measure_unit> <prod_price> <double> <double> </prod_price> </record1> <record2>... </record2> </params> </methodresponse> A secure way to work with a database through XML-RPC. Working with databases in a secure way, through XML-RPC. 4. Conclusion We used the XML-RPC technology in order to make the transfer of a database data on the Web. The approach: The XML-RPC client processes the request data received from the Web client and fills in the fields of a struct object. This one contains the elements of a standard SQL query. Once the Web client s request defined in this way, the struct object is packed in the XML format and sent to the XML-RPC server. Only here the SQL standard query is created in accordance with the database server s type, we make the connection, we obtain the result data. The result data is packed in the XML format and sent via HTTP to the XML- RPC client. This one generates the web page containing the SQL query result and it sends it to the Web-client. The goal of the XML-RPC client here is of a proxy between the Web-client and the XML- RPC server. 240

6 References [1] S. Buraga, Different XML-based Search Techniques on Web", Transactions on Automatic Control and Computer Science, vol.47 (61), No.2, Politehnica Press, Timisoara, 2002 [2] K. Rhodes, XML-RPC vs. SOAP, weblog.masukomi.org/writings/xmlrpc_vs_soap.htm [3] D. Winer, XML-RPC for Newbies, davenet.userland.com/1998/07/14/xmlrpcfornewbi es, 1998 [4] SOAP specification [5] VisualOffice webpage, [6] WebCrossing webpage, [7] XML-RPC Specification [8] Apple Computer, Making XML-RPC and SOAP Requests With AppleScript, 2001 [9] * * * - XML-RPC Tutorial, 241

Using XML-RPC in Secure Database Administration on the Web

Using XML-RPC in Secure Database Administration on the Web Using XML-RPC in Secure Database Administration on the Web Silvana Solomon Department of Digital Communications University Al.I.Cuza of Iasi, Romania Catalin Varvara RoeduNet, Iasi, Romania Remote Procedure

More information

By Lucas Marshall. All materials Copyright Developer Shed, Inc. except where otherwise noted.

By Lucas Marshall. All materials Copyright Developer Shed, Inc. except where otherwise noted. By Lucas Marshall All materials Copyright 1997 2002 Developer Shed, Inc. except where otherwise noted. Using XML RPC with PHP Table of Contents Introduction...1 Compiling PHP with XML RPC Support...2 Dissection

More information

XML in the Development of Component Systems. XML Protocols: XML-RPC

XML in the Development of Component Systems. XML Protocols: XML-RPC XML in the Development of Component Systems XML Protocols: XML-RPC Protocols Distributed computing Components are deployed on different network nodes Object implementations do not share memory Communication

More information

Why SOAP? Why SOAP? Web Services integration platform

Why SOAP? Why SOAP? Web Services integration platform SOAP Why SOAP? Distributed computing is here to stay Computation through communication Resource heterogeneity Application integration Common language for data exchange Why SOAP? Why SOAP? Web Services

More information

INTRODUCTION TO XML-RPC, A SIMPLE XML-BASED RPC MECHANISM

INTRODUCTION TO XML-RPC, A SIMPLE XML-BASED RPC MECHANISM INTRODUCTION TO, A SIMPLE XML-BASED RPC MECHANISM Peter R. Egli INDIGOO.COM 1/11 Contents 1. What is? 2. architecture 3. protocol 4. server implementation in Java 5. Where to use 2/11 1. What is? is a

More information

XML-RPC is very easy to learn and use. You can make good use of this tutorial, provided you have some exposure to XML vocabulary.

XML-RPC is very easy to learn and use. You can make good use of this tutorial, provided you have some exposure to XML vocabulary. About the Tutorial XML-RPC is the simplest XML-based protocol for exchanging information between computers across a network. In this tutorial, you will learn what is XML-RPC and why and how to use it.

More information

Data Transport. Publisher's Note

Data Transport. Publisher's Note Data Transport Publisher's Note This document should be considered a draft until the message formats have been tested using the latest release of the Apache Foundation's SOAP code. When those tests are

More information

ReST 2000 Roy Fielding W3C

ReST 2000 Roy Fielding W3C Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST

More information

Protocol Buffers, grpc

Protocol Buffers, grpc Protocol Buffers, grpc Szolgáltatásorientált rendszerintegráció Service-Oriented System Integration Dr. Balázs Simon BME, IIT Outline Remote communication application level vs. transport level protocols

More information

COMBINATION OF XML-RPC AND MOBILE AGENT TECHNOLOGIES

COMBINATION OF XML-RPC AND MOBILE AGENT TECHNOLOGIES COMBINATION OF XML-RPC AND MOBILE AGENT TECHNOLOGIES Shinichi MOTOMURA The Graduate School of Engineering, Tottori University Tottori University 4 101, Koyama-Minami Tottori, JAPAN motomura@tottori-u.ac.jp

More information

An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development Form Validation Creating templates

An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development Form Validation Creating templates PHP Course Contents An Introduction to HTML & CSS Basic Html concept used in website development Creating templates An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development

More information

Python INTRODUCTION: Understanding the Open source Installation of python in Linux/windows. Understanding Interpreters * ipython.

Python INTRODUCTION: Understanding the Open source Installation of python in Linux/windows. Understanding Interpreters * ipython. INTRODUCTION: Understanding the Open source Installation of python in Linux/windows. Understanding Interpreters * ipython * bpython Getting started with. Setting up the IDE and various IDEs. Setting up

More information

HTTP protocol integration in PerLa

HTTP protocol integration in PerLa Politecnico di Milano Department of Electronics, Information and Bioengineering HTTP protocol integration in PerLa Project for Pervasive Data Management course Federico Monterisi June 9, 2014 F. Monterisi

More information

Foundations of Python

Foundations of Python Foundations of Python Network Programming The comprehensive guide to building network applications with Python Second Edition Brandon Rhodes John Goerzen Apress Contents Contents at a Glance About the

More information

Introduction to Cisco TV CDS Software APIs

Introduction to Cisco TV CDS Software APIs CHAPTER 1 Cisco TV Content Delivery System (CDS) software provides two sets of application program interfaces (APIs): Monitoring Real Time Streaming Protocol (RTSP) Stream Diagnostics The Monitoring APIs

More information

COMMUNICATION PROTOCOLS

COMMUNICATION PROTOCOLS COMMUNICATION PROTOCOLS Index Chapter 1. Introduction Chapter 2. Software components message exchange JMS and Tibco Rendezvous Chapter 3. Communication over the Internet Simple Object Access Protocol (SOAP)

More information

Adapting Functionality for Mobile Terminals

Adapting  Functionality for Mobile Terminals Adapting Email Functionality for Mobile Terminals Jon-Finngard Moe 1, Eivind Sivertsen 1, and Do van Thanh 2 1 Norwegian University of Science and Technology, 7491 Trondheim, Norway {jonfinng, eivindsi}@stud.ntnu.no

More information

Global Servers. The new masters

Global Servers. The new masters Global Servers The new masters Course so far General OS principles processes, threads, memory management OS support for networking Protocol stacks TCP/IP, Novell Netware Socket programming RPC - (NFS),

More information

SOAP Introduction. SOAP is a simple XML-based protocol to let applications exchange information over HTTP.

SOAP Introduction. SOAP is a simple XML-based protocol to let applications exchange information over HTTP. SOAP Introduction SOAP is a simple XML-based protocol to let applications exchange information over HTTP. Or more simply: SOAP is a protocol for accessing a Web Service. What You Should Already Know Before

More information

Distributed Internet Applications - DIA. Web Services XML-RPC and SOAP

Distributed Internet Applications - DIA. Web Services XML-RPC and SOAP Distributed Internet Applications - DIA Web Services XML-RPC and SOAP Introduction A few years ago, most application were: non-distributed, running in an almost homogeneous environment developed with a

More information

3. WWW and HTTP. Fig.3.1 Architecture of WWW

3. WWW and HTTP. Fig.3.1 Architecture of WWW 3. WWW and HTTP The World Wide Web (WWW) is a repository of information linked together from points all over the world. The WWW has a unique combination of flexibility, portability, and user-friendly features

More information

Software Service Engineering

Software Service Engineering VSR Distributed and Self-organizing Computer Systems Prof. Gaedke Software Service Engineering Prof. Dr.-Ing. Martin Gaedke Technische Universität Chemnitz Fakultät für Informatik Professur Verteilte und

More information

Uniform Resource Locators (URL)

Uniform Resource Locators (URL) The World Wide Web Web Web site consists of simply of pages of text and images A web pages are render by a web browser Retrieving a webpage online: Client open a web browser on the local machine The web

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

RPC. Remote Procedure Calls. Robert Grimm New York University

RPC. Remote Procedure Calls. Robert Grimm New York University RPC Remote Procedure Calls Robert Grimm New York University Assignments! You need (more) time for interoperability testing!! Your server should be running by midnight Sunday! Assignment 3 test case posted!

More information

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Minimal List Common Syntax is provided by XML To allow remote sites to interact with each other: 1. A common

More information

Copyright 2014 Blue Net Corporation. All rights reserved

Copyright 2014 Blue Net Corporation. All rights reserved a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed

More information

Web Programming Paper Solution (Chapter wise)

Web Programming Paper Solution (Chapter wise) Introduction to web technology Three tier/ n-tier architecture of web multitier architecture (often referred to as n-tier architecture) is a client server architecture in which presentation, application

More information

SOAP Introduction Tutorial

SOAP Introduction Tutorial SOAP Introduction Tutorial Herry Hamidjaja herryh@acm.org 1 Agenda Introduction What is SOAP? Why SOAP? SOAP Protocol Anatomy of SOAP Protocol SOAP description in term of Postal Service Helloworld Example

More information

Java J Course Outline

Java J Course Outline JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The

More information

Project Title REPRESENTATION OF ELECTRICAL NETWORK USING GOOGLE MAP API. Submitted by: Submitted to: SEMANTA RAJ NEUPANE, Research Assistant,

Project Title REPRESENTATION OF ELECTRICAL NETWORK USING GOOGLE MAP API. Submitted by: Submitted to: SEMANTA RAJ NEUPANE, Research Assistant, - 1 - Project Title REPRESENTATION OF ELECTRICAL NETWORK USING GOOGLE MAP API Submitted by: SEMANTA RAJ NEUPANE, Research Assistant, Department of Electrical Energy Engineering, Tampere University of Technology

More information

Programming the World Wide Web by Robert W. Sebesta

Programming the World Wide Web by Robert W. Sebesta Programming the World Wide Web by Robert W. Sebesta Tired Of Rpg/400, Jcl And The Like? Heres A Ticket Out Programming the World Wide Web by Robert Sebesta provides students with a comprehensive introduction

More information

SOAP Specification. 3 major parts. SOAP envelope specification. Data encoding rules. RPC conventions

SOAP Specification. 3 major parts. SOAP envelope specification. Data encoding rules. RPC conventions SOAP, UDDI and WSDL SOAP SOAP Specification 3 major parts SOAP envelope specification Defines rules for encapsulating data Method name to invoke Method parameters Return values How to encode error messages

More information

Chapter 18 Distributed Systems and Web Services

Chapter 18 Distributed Systems and Web Services Chapter 18 Distributed Systems and Web Services Outline 18.1 Introduction 18.2 Distributed File Systems 18.2.1 Distributed File System Concepts 18.2.2 Network File System (NFS) 18.2.3 Andrew File System

More information

Comprehensive Guide to Evaluating Event Stream Processing Engines

Comprehensive Guide to Evaluating Event Stream Processing Engines Comprehensive Guide to Evaluating Event Stream Processing Engines i Copyright 2006 Coral8, Inc. All rights reserved worldwide. Worldwide Headquarters: Coral8, Inc. 82 Pioneer Way, Suite 106 Mountain View,

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

CERTIFICATE IN WEB PROGRAMMING

CERTIFICATE IN WEB PROGRAMMING COURSE DURATION: 6 MONTHS CONTENTS : CERTIFICATE IN WEB PROGRAMMING 1. PROGRAMMING IN C and C++ Language 2. HTML/CSS and JavaScript 3. PHP and MySQL 4. Project on Development of Web Application 1. PROGRAMMING

More information

Application Level Protocols

Application Level Protocols Application Level Protocols 2 Application Level Protocols Applications handle different kinds of content e.g.. e-mail, web pages, voice Different types of content require different kinds of protocols Application

More information

Client-side SOAP in S

Client-side SOAP in S Duncan Temple Lang, University of California at Davis Table of Contents Abstract... 1 Converting the S values to SOAP... 3 The Result... 3 Errors... 4 Examples... 4 Service Declarations... 5 Other SOAP

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects

Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects Jörg Ritter and Christian Stussak Martin-Luther-University Halle-Wittenberg, Halle 06120, Germany, joerg.ritter@informatik.uni-halle.de,

More information

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion

More information

Aim behind client server architecture Characteristics of client and server Types of architectures

Aim behind client server architecture Characteristics of client and server Types of architectures QA Automation - API Automation - All in one course Course Summary: In detailed, easy, step by step, real time, practical and well organized Course Not required to have any prior programming knowledge,

More information

XML-RPC. The poor man's SOAP

XML-RPC. The poor man's SOAP XML-RPC The poor man's SOAP Copyright 2001, 2009 Adam Tauno Williams (awilliam@whitemice.org) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation

More information

COMS 469: Interactive Media II

COMS 469: Interactive Media II COMS 469: Interactive Media II Agenda Class Roster Course Web Site & Syllabus JavaScript Introduction (ch. 1) gunkelweb.com/coms469 Introduction to JavaScript Chapter One Introduction to JavaScript and

More information

Hands-On Perl Scripting and CGI Programming

Hands-On Perl Scripting and CGI Programming Hands-On Course Description This hands on Perl programming course provides a thorough introduction to the Perl programming language, teaching attendees how to develop and maintain portable scripts useful

More information

Overview and examples SOAP. Simple Object Access Protocol. By Hamid M. Porasl

Overview and examples SOAP. Simple Object Access Protocol. By Hamid M. Porasl Overview and examples SOAP Simple Object Access Protocol By Hamid M. Porasl 1 About this document... 3 2 What is SOAP?... 3 3 SOAP and XML... 3 3.1 XML messaging... 3 3.1.1 RPC and EDI... 3 3.1.2 Several

More information

REST Easy with Infrared360

REST Easy with Infrared360 REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style

More information

PHP: Hypertext Preprocessor. A tutorial Introduction

PHP: Hypertext Preprocessor. A tutorial Introduction PHP: Hypertext Preprocessor A tutorial Introduction Introduction PHP is a server side scripting language Primarily used for generating dynamic web pages and providing rich web services PHP5 is also evolving

More information

APPLICATION LAYER APPLICATION LAYER : DNS, HTTP, , SMTP, Telnet, FTP, Security-PGP-SSH.

APPLICATION LAYER APPLICATION LAYER : DNS, HTTP,  , SMTP, Telnet, FTP, Security-PGP-SSH. APPLICATION LAYER : DNS, HTTP, E-mail, SMTP, Telnet, FTP, Security-PGP-SSH. To identify an entity, the Internet used the IP address, which uniquely identifies the connection of a host to the Internet.

More information

Traditional Web Based Systems

Traditional Web Based Systems Chapter 12 Distributed Web Based Systems 1 Traditional Web Based Systems The Web is a huge distributed system consisting of millions of clients and servers for accessing linked documents Servers maintain

More information

5/19/2015. Objectives. JavaScript, Sixth Edition. Introduction to the World Wide Web (cont d.) Introduction to the World Wide Web

5/19/2015. Objectives. JavaScript, Sixth Edition. Introduction to the World Wide Web (cont d.) Introduction to the World Wide Web Objectives JavaScript, Sixth Edition Chapter 1 Introduction to JavaScript When you complete this chapter, you will be able to: Explain the history of the World Wide Web Describe the difference between

More information

REST Web Services Objektumorientált szoftvertervezés Object-oriented software design

REST Web Services Objektumorientált szoftvertervezés Object-oriented software design REST Web Services Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline HTTP REST REST principles Criticism of REST CRUD operations with REST RPC operations

More information

Connecting with Computer Science Chapter 5 Review: Chapter Summary:

Connecting with Computer Science Chapter 5 Review: Chapter Summary: Chapter Summary: The Internet has revolutionized the world. The internet is just a giant collection of: WANs and LANs. The internet is not owned by any single person or entity. You connect to the Internet

More information

Working with XML and DB2

Working with XML and DB2 Working with XML and DB2 What is XML? XML stands for EXtensible Markup Language XML is a markup language much like HTML XML was designed to carry data, not to display data XML tags are not predefined.

More information

Web Services. GC: Web Services-I Rajeev Wankar

Web Services. GC: Web Services-I Rajeev Wankar Web Services 1 Part I Introduction to Service Oriented Architecture 2 Reference Model (RM) of Service Oriented Architecture (SOA) An abstract framework for understanding significant relationships among

More information

XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web

XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web Web Services. XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web Platform: Windows COM Component Previously

More information

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca CSCI-1680 RPC and Data Representation Rodrigo Fonseca Administrivia TCP: talk to the TAs if you still have questions! ursday: HW3 out Final Project (out 4/21) Implement a WebSockets server an efficient

More information

Web Engineering (CC 552)

Web Engineering (CC 552) Web Engineering (CC 552) Introduction Dr. Mohamed Magdy mohamedmagdy@gmail.com Room 405 (CCIT) Course Goals n A general understanding of the fundamentals of the Internet programming n Knowledge and experience

More information

XEP-0009: Jabber-RPC

XEP-0009: Jabber-RPC XEP-0009: Jabber-RPC DJ Adams mailto:dj.adams@pobox.com xmpp:dj@gnu.mine.nu 2011-11-10 Version 2.2 Status Type Short Name Final Standards Track jabber-rpc This specification defines an XMPP protocol extension

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory SCRIPTING Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Reflection Bindings Serialization Performance, memory Rationale C++ isn't the best choice

More information

Networks, WWW, HTTP. Web Technologies I. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP / 35

Networks, WWW, HTTP. Web Technologies I. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP / 35 Networks, WWW, HTTP Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP 2018 1 / 35 Table of Contents Networks Internet 1 Networks Internet

More information

Compilers Project Proposals

Compilers Project Proposals Compilers Project Proposals Dr. D.M. Akbar Hussain These proposals can serve just as a guide line text, it gives you a clear idea about what sort of work you will be doing in your projects. Still need

More information

CPS122 Lecture: Defining a Class

CPS122 Lecture: Defining a Class Objectives: CPS122 Lecture: Defining a Class last revised January 14, 2016 1. To introduce structure of a Java class 2. To introduce the different kinds of Java variables (instance, class, parameter, local)

More information

Chapter 1 Preliminaries

Chapter 1 Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

Ruby on Rails Welcome. Using the exercise files

Ruby on Rails Welcome. Using the exercise files Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,

More information

Developing a Basic Web Page

Developing a Basic Web Page Developing a Basic Web Page Creating a Web Page for Stephen Dubé s Chemistry Classes 1 Objectives Review the history of the Web, the Internet, and HTML Describe different HTML standards and specifications

More information

Web Technology. COMP476 Networked Computer Systems. Hypertext and Hypermedia. Document Representation. Client-Server Paradigm.

Web Technology. COMP476 Networked Computer Systems. Hypertext and Hypermedia. Document Representation. Client-Server Paradigm. Web Technology COMP476 Networked Computer Systems - Paradigm The method of interaction used when two application programs communicate over a network. A server application waits at a known address and a

More information

Glossary of Exchange Network Related Groups

Glossary of Exchange Network Related Groups Glossary of Exchange Network Related Groups CDX Central Data Exchange EPA's Central Data Exchange (CDX) is the point of entry on the National Environmental Information Exchange Network (Exchange Network)

More information

Attacks Description - Action Policy

Attacks Description - Action Policy Description - Action Policy The following table describes the attack actions under each attack group: ID 16 125 126 121 118 77 129 123 124 120 Protocol Name Name in Export Logs Description Severity Category

More information

Webgurukul Programming Language Course

Webgurukul Programming Language Course Webgurukul Programming Language Course Take One step towards IT profession with us Python Syllabus Python Training Overview > What are the Python Course Pre-requisites > Objectives of the Course > Who

More information

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca CSCI-1680 RPC and Data Representation Rodrigo Fonseca Today Defining Protocols RPC IDL Problem Two programs want to communicate: must define the protocol We have seen many of these, across all layers E.g.,

More information

Piqi-RPC. Exposing Erlang services via JSON, XML and Google Protocol Buffers over HTTP. Friday, March 25, 2011

Piqi-RPC. Exposing Erlang services via JSON, XML and Google Protocol Buffers over HTTP. Friday, March 25, 2011 Piqi-RPC Exposing Erlang services via JSON, XML and Google Protocol Buffers over HTTP 1 Anton Lavrik http://piqi.org http://www.alertlogic.com 2 Overview Call Erlang functions using HTTP POST : Server

More information

DAVID M. KROENKE and DAVID J. AUER. DATABASE CONCEPTS, 7 th Edition. Chapter Seven. Database Processing Applications. Chapter Objectives

DAVID M. KROENKE and DAVID J. AUER. DATABASE CONCEPTS, 7 th Edition. Chapter Seven. Database Processing Applications. Chapter Objectives DAVID M. KROENKE and DAVID J. AUER DATABASE CONCEPTS, 7 th Edition Chapter Seven Database Processing Applications Chapter Objectives Understand and be able to set up Web database processing Learn the basic

More information

PHP and MySQL for Dynamic Web Sites. Intro Ed Crowley

PHP and MySQL for Dynamic Web Sites. Intro Ed Crowley PHP and MySQL for Dynamic Web Sites Intro Ed Crowley Class Preparation If you haven t already, download the sample scripts from: http://www.larryullman.com/books/phpand-mysql-for-dynamic-web-sitesvisual-quickpro-guide-4thedition/#downloads

More information

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id XML Processing & Web Services Husni Husni.trunojoyo.ac.id Based on Randy Connolly and Ricardo Hoar Fundamentals of Web Development, Pearson Education, 2015 Objectives 1 XML Overview 2 XML Processing 3

More information

Web Application Development (WAD) V th Sem BBAITM(Unit-1) By: Binit Patel

Web Application Development (WAD) V th Sem BBAITM(Unit-1) By: Binit Patel Web Application Development (WAD) V th Sem BBAITM(Unit-1) By: Binit Patel Introduction: PHP (Hypertext Preprocessor) was invented by Rasmus Lerdorf in 1994. First it was known as Personal Home Page. Later

More information

Setup and Environment

Setup and Environment Setup and Environment Web Architecture and Information Management [./] Spring 2009 INFO 190-02 (CCN 42509) Erik Wilde, UC Berkeley School of Information [http://creativecommons.org/licenses/by/3.0/] This

More information

COMS 469: Interactive Media II

COMS 469: Interactive Media II COMS 469: Interactive Media II Agenda Project One PHP Preview Project One Grading Methodology Return Project One & Evaluation Sheet Project One Evaluation Methodology Consider each project in and of itself

More information

CS603: Distributed Systems

CS603: Distributed Systems CS603: Distributed Systems Lecture 2: Client-Server Architecture, RPC, Corba Cristina Nita-Rotaru Lecture 2/ Spring 2006 1 ATC Architecture NETWORK INFRASTRUCTURE DATABASE HOW WOULD YOU START BUILDING

More information

WWW, REST, and Web Services

WWW, REST, and Web Services WWW, REST, and Web Services Instructor: Yongjie Zheng Aprile 18, 2017 CS 5553: Software Architecture and Design World Wide Web (WWW) What is the Web? What challenges does the Web have to address? 2 What

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2411

More information

XML 2 APPLICATION. Chapter SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

XML 2 APPLICATION. Chapter SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC. XML 2 APPLIATION hapter SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Objectives You will learn: How to create an XML document. The role of the document map, prolog, and XML declarations. Standalone declarations.

More information

PHP & My SQL Duration-4-6 Months

PHP & My SQL Duration-4-6 Months PHP & My SQL Duration-4-6 Months Overview of the PHP & My SQL Introduction of different Web Technology Working with the web Client / Server Programs Server Communication Sessions Cookies Typed Languages

More information

World Wide Web, etc.

World Wide Web, etc. World Wide Web, etc. Alex S. Raw data-packets wouldn t be much use to humans if there weren t many application level protocols, such as SMTP (for e-mail), HTTP & HTML (for www), etc. 1 The Web The following

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 1, 2017 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2457

More information

Web Engineering (Lecture 08) WAMP

Web Engineering (Lecture 08) WAMP Web Engineering (Lecture 08) WAMP By: Mr. Sadiq Shah Lecturer (CS) Class BS(IT)-6 th semester WAMP WAMP is all-in-one Apache/MySQL/PHP package WAMP stands for: i) Windows ii) iii) iv) Apache MySql PHP

More information

Error Sending Dav Request. Http Code 400 Status 'bad Request'

Error Sending Dav Request. Http Code 400 Status 'bad Request' Error Sending Dav Request. Http Code 400 Status 'bad Request' HTTP status code 100 means that the server has received the request headers, If the request body is large, sending it to a server when a request

More information

https://www.halvorsen.blog Web Services Hans-Petter Halvorsen

https://www.halvorsen.blog Web Services Hans-Petter Halvorsen https://www.halvorsen.blog Web Services Hans-Petter Halvorsen Problem How to Share Data between Devices in a Network? Server(s) Firewalls Security Clients Local Network/Internet Database Routers/Switches,

More information

Objectives. Introduction to HTML. Objectives. Objectives

Objectives. Introduction to HTML. Objectives. Objectives Objectives Introduction to HTML Developing a Basic Web Page Review the history of the Web, the Internet, and HTML. Describe different HTML standards and specifications. Learn about the basic syntax of

More information

Dynamic Documents. Kent State University Dept. of Math & Computer Science. CS 4/55231 Internet Engineering. What is a Script?

Dynamic Documents. Kent State University Dept. of Math & Computer Science. CS 4/55231 Internet Engineering. What is a Script? CS 4/55231 Internet Engineering Kent State University Dept. of Math & Computer Science LECT-12 Dynamic Documents 1 2 Why Dynamic Documents are needed? There are many situations when customization of the

More information

Introduction to Web Services

Introduction to Web Services Introduction to Web Services SWE 642, Spring 2008 Nick Duan April 9, 2008 1 Overview What are Web Services? A brief history of WS Basic components of WS Advantages of using WS in Web application development

More information

The HTTP protocol. Fulvio Corno, Dario Bonino. 08/10/09 http 1

The HTTP protocol. Fulvio Corno, Dario Bonino. 08/10/09 http 1 The HTTP protocol Fulvio Corno, Dario Bonino 08/10/09 http 1 What is HTTP? HTTP stands for Hypertext Transfer Protocol It is the network protocol used to delivery virtually all data over the WWW: Images

More information

(Refer Slide Time: 01:41) (Refer Slide Time: 01:42)

(Refer Slide Time: 01:41) (Refer Slide Time: 01:42) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #14 HTML -Part II We continue with our discussion on html.

More information

Lesson 10 BPEL Introduction

Lesson 10 BPEL Introduction Lesson 10 BPEL Introduction Service Oriented Architectures Module 1 - Basic technologies Unit 5 BPEL Ernesto Damiani Università di Milano Service-Oriented Architecture Orchestration Requirements Orchestration

More information

Policy-based request routing and quality of service in WebSphere Extended Deployment V6

Policy-based request routing and quality of service in WebSphere Extended Deployment V6 Policy-based request routing and quality of service in WebSphere Extended Deployment V6 Skill Level: Intermediate O. Michael Atogi (atogi@us.ibm.com) WebSphere Extended Deployment Development IBM 10 Jan

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

Zend Studio has the reputation of being one of the most mature and powerful

Zend Studio has the reputation of being one of the most mature and powerful Exploring the developer environment RAPID DEVELOPMENT PHP experts consider Zend Studio the most mature and feature-rich IDE for PHP. The latest version offers enhanced database manipulation and other improvements.

More information

Developing a Web Server Platform with SAPI support for AJAX RPC using JSON

Developing a Web Server Platform with SAPI support for AJAX RPC using JSON 94 Developing a Web Server Platform with SAPI support for AJAX RPC using JSON Assist. Iulian ILIE-NEMEDI Informatics in Economy Department, Academy of Economic Studies, Bucharest Writing a custom web server

More information

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

More information