Programming for Chemical and Life Science Informatics
|
|
- Osborn Marsh
- 6 years ago
- Views:
Transcription
1 Programming for Chemical and Life Science Informatics I573 - Week 10 (Web Applications) Rajarshi Guha 31 st March & 2 rd April 2008
2 Outline Web services Overview Software tools Examples REST services
3 Part I Web Services
4 What is a Web Service? Code running on an arbitrary machine that can be accessed in a platform- and language-independent fashion More generally, a WS framework is an XML- based distributed services system Suitable for machine-to-machine interaction Platform and language agnostic Follows standards
5 Basic Architectures: CGI vs WS
6 WS versus CGI When is WS called for? What to make algorithms available avoid downloads avoid support requests if the algorithm takes milliseconds (or longer) it s feasible to make it into a web service Avoid direct database access Why not CGI? Returns HTML (traditionally) Can be a security issues It s possible to use CGI & WS s together
7 What Can WS s Do For Us? Generally we have to get software Might involve compiling, debugging Usually involves administration A web service is basically a set of function calls that a remote user can send output to and get a return value - the RPC view
8 Famous Web Services Google Amazon Access the search engine Get historical data Use their database functionality EBI (UK), KEGG (Japan), IU (USA), NCBI (USA)
9 Web Service Caveats A number of security issues can arise when using web services What s happening to your data after it s sent to the service? Same problem applies to ordinary CGI services Provence - what is the servcie really doing? Requires a network connection Is the service reliable?
10 Web Service Components Server side Web server Application container Service code Client side Some libraries The client code Web servers and application containers are optional Helps to administer a setup (redirection, load balancing etc) As we ll see clients can range from web pages to custom command line code You can work with C, C++, Java, Python, Ruby, Perl, R,.Net, PHP
11 Server Setup Unless we re working a very large WS setup, we can skip the web server setup Since we ll primary focus on Java services, we use an applicatin container - Tomcat A short tutorial on setting up Tomcat is here One of the key components that you need to add to a Tomcat installation is the AXIS libraries These libraries allow us to communicate with the service using the SOAP protocol
12 Writing a Web Service The nice thing about writing a Java web service is that it s no different from writing any other type of Java code No need to bother about SOAP or Tomcat It can get complex, especially when you start using custom classes as input arguments or return values As long a you use Java primitives, there is no extra work So what makes a Java class a web service? It s where it s located that makes it into a web service
13 Writing a Fingerprint Service The CDK provides a fingerprint function Given an IAtomContainer object, returns a BitSet object A BitSet is not a primitive, so we design the service such that it takes a String (SMILES) and returns a String (comma separated values of the bit positions that are set to 1) This approach ensures that any language will be able to communicate with our web service It is possible to return the BitSet directly - and it ll work if your the SOAP library for your language understands what a BitSet is and how to represent it in your language
14 Writing a Fingerprint Service public class CDKws { public String getfingerprintstring(string s, int length, int depth) throws CDKException { String print = ""; IMolecule mol = null; SmilesParser sp = new SmilesParser(); mol = sp.parsesmiles(s); if (mol == null) { throw new CDKException("SmilesParser exception"); } Fingerprinter fprinter = new Fingerprinter(length, depth); try { print = fprinter.getfingerprint(mol).tostring(); } catch (Exception e) { throw new CDKException("Fingerprinter error"); } return(print); } }
15 Writing a Fingerprint Service The code is exactly the same as if it were meant to be a command line program Makes local testing easy Returning a String is easy, but places the burden of parsing on the users side SOAP natively supports arrays. Since arrays are available in all common languages, we could use that to make things more efficient
16 Deploying the Web Service After compiling and testing the class, you will copy the class file to the appropriate Tomcat directory Update a web service deployment descriptor (WSDD) Lets Tomcat know what classes and methods can be accessed as WS s <deployment xmlns=" xmlns:java=" <service name="cdkws" provider="java:rpc"> <parameter name="classname" value="cdkws"/> <parameter name="allowedmethods" value="getfingerprintstring getfingerp </service> <service name="cdkdesc" provider="java:rpc"> <parameter name="classname" value="cdkdesc"/> <parameter name="allowedmethods" value="getdescriptors"/> </service> </deployment>
17 Deploying the Web Service
18 Writing a Web Service Client We can write the client in a variety of languages We ll focus on Python - much less boiler plate code to write If you use Java, you ll need the AXIS libraries in your CLASSPATH For Python you need to install the SOAPpy module or the ZSI module SOAPpy is no longer maintained, but is much easier to use than ZSI
19 Web Service Description Language WSDL is an XML description of a web service Suitable for a parsing (pretty verbose for humans) Given a WSDL document, you can autogenerate code to access the service This essentially lets you look at the service as if it were a local function A WSDL document describes What type of objects the service accepts What type of objecs the service returns What exceptions might occur
20 Web Service Description Language <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions targetnamespace=" xmlns:apachesoap=" xmlns:impl=" xmlns:intf=" xmlns:soapenc=" xmlns:tns1=" xmlns:wsdl=" xmlns:wsdlsoap=" xmlns:xsd=" <!--WSDL created by Apache Axis version: 1.2RC2 Built on Nov 16, 2004 (12:19:44 EST)--> <wsdl:types> <schema targetnamespace=" xmlns=" <import namespace=" <complextype name="cdkexception"> <sequence/> </complextype> </schema> </wsdl:types> <wsdl:message name="cdkexception"> <wsdl:part name="fault" type="tns1:cdkexception"/> </wsdl:message> <wsdl:message name="get3dcoordinatesresponse"> <wsdl:part name="get3dcoordinatesreturn" type="soapenc:string"/> </wsdl:message> <wsdl:message name="get3dcoordinatesrequest"> <wsdl:part name="in0" type="soapenc:string"/> <wsdl:part name="in1" type="soapenc:string"/> </wsdl:message> <wsdl:porttype name="cdkstruct3d"> <wsdl:operation name="get3dcoordinates" parameterorder="in0 in1">
21 Web Service Description Language We can write WSDL documents by hand This is the preferred way of designing web services It s possible to get Tomcat + AXIS to autogenerate WSDL documents for deployed web services This makes life much easier for the most part Certain clients cannot handle the tye of WSDL document that AXIS generates One of the key questions is: where do I find the WSDL document in the first place?
22 Web Service Discovery Web services can be provided by anybody, anywhere How do we know what is available? Universal Description Discovery and Integration XML registry for web services Supports annotation, so you can search for web services Someone must maintain a UDDI registry
23 Web Service Discovery Communication between the client and the UDDI registry is described in the specification Requires library support Java, Python, Perl, Ruby are supported Example UDDI or UDDI-like registries NASA BioMoby
24 Web Service Discovery Once you have the WSDL, you can directly communicate with the WS A conceptually equivalent way, but much more lightweight is to use RSS feeds to list available web services Allows you to keep track of new web services, or changes in WSDL s very easily Someone must collect the WSDL s and there s no standard way to annotate them An example is here
25 WSDL Components Types - used to define custom message types Messages - abstraction of request and response that a client and service need to communicate PortTypes - contains a set of operations, which organize WSDL messages Operation method name PortType Java interface Bindings - binds the PortType to a specific protocol Services - gives you one or more URL s for the service Lets us know where to go to execute CDKstruct3D
26 WSDL Examing the WSDL for the CDKstruct3D services indicates Location of the service It takes 2 inputs, both SOAP encoded String s It returns a SOAP encoded String It may throw an exception called CDKException But the WSDL does not say anything about what the arguments mean! Read the documentation if available Ask the author
27 Simple Object Access Protocol SOAP is an XML message format (encoding) Describes how an object is represented when sent to or received from a service SOAP mesages are sent to and received from a service SOAP is simply a standard way of sending different types of objects to and from web services As with most XML, it s very verbose for humans
28 A SOAP Message 0 or 1 header elements 1 body element Wrapped in an envelope The actual data being transfered is contained within the body Headers can contain Meta-data Security information QoS
29 A SOAP Message <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope SOAP- ENV:encodingStyle=" xmlns:soap-enc=" xmlns:xsi=" xmlns:soap-env=" xmlns:xsd=" > <SOAP-ENV:Body> <ns1:getfingerprintstring xmlns:ns1=" SOAP-ENC:root="1"> <v1 xsi:type="xsd:string">cc=coc</v1> <v2 xsi:type="xsd:int">1024</v2> <v3 xsi:type="xsd:int">6</v3> </ns1:getfingerprintstring> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
30 What Types Does SOAP Support? Specifies a number of built in types int, double, float, boolean, String, Date, arrays Some compound types also allowed Arrays, hashes When making a SOAP request, we need to convert objects to the appropriate SOAP type Specified in the WSDL We use a SOAP toolkit to handle the conversions
31 A Java Client Initialization public CDKwsClient(String host) { String endpoint = " try { Service service = new Service(); call = (Call) service.createcall(); call.settargetendpointaddress( new java.net.url(endpoint)); } catch (Throwable t) { // handle the exception } }
32 A Java Client Calling the Service public String getfpstring(string[] args) { try { call.removeallparameters(); call.setoperationname( "getfingerprintstring" ); call.addparameter( "s", XMLType.XSD_STRING, ParameterMode.IN); call.setreturntype( XMLType.XSD_STRING ); String ret = (String)call.invoke( new Object[] { args[0] }); System.out.println(ret); return ret; } catch (Throwable t) { // handle the error } }
33 Being Lazy This is a lot of tedious code We can use AXIS to generate Java classes from the WSDL java -cp $CLASSPATH org.apache.axis.wsdl.wsdl2java \ -p javaworld.axis.proxy \ This will create a set of classes that correspond to the WSDL components So now the client code simplifies to...
34 Proxy Classes public Vector getfpvector(string[] args) throws Exception { CDKwsServiceLocator service = new CDKwsServiceLocator(); CDKws port = service.getport(); Vector ret = port.getfingerprintvector(args[0]); return ret } The AXIS generated code creates a proxy Rather than dealing with SOAP we now deal with the WS in terms of WSDL Analogous to HTTP - you don t write the raw HTTP request to view Essentially we treat the service as it were a local object
35 Python Web Services Python has a number of ways to deal with WS s SOAPpy - simple to use, no further development ZSI - more comprehensive, steep learning curve Python handling of of SOAP is not as well as developed as for Java But we gin the advanatges of Python
36 A Python Client Client code to use the fingerprint service import SOAPpy if name == main : service = SOAPpy.WSDL.Proxy( \ ) ret = service.getfingerprintstring( CC=COC ) print ret One would expect that calling the Vector version of the web service would return a list object SOAPpy will throw an exception Restricts the use of complex web services
37 More Python Client Fun Very easy to get available methods, parameter names etc >>> from SOAPpy import WSDL >>> service = WSDL.Proxy( >>> service.methods.keys() [u getmolecularweight, u getmolecularformula,... u gethtmlmolecularformula, u gettpsa ] >>> fpmethod = service.methods[ getfingerprintvector ] >>> fpmethod.inparams[0].name u in0 >>> fpmethod.inparams[0].type (u u string ) >>> >>> fpmethod.outparams[0].name u getfingerprintvectorreturn >>> fpmethod.outparams[0].type (u u Vector )
38 Cheminformatics Web Services A number of cheminformatics web services are hosted at IU Cheminformatics web services core.html Database web services db.html Statistical web services statistics.html Documentation and WSDL are available, so you can play around with them
39 Part II Representational State Transfer
40 Actions and Resources The traditional way the WWW was considered was an interconnected set of resources which were viewed A URL represented the location of a thing, or some feature of a thing is the location of a picture of me But we can also do things on the web and so a URL can also represent an action will get a picture of me When we start considering actions on the WWW, we are faced with many approaches Web services are one way
41 Representation State Transfer REST is an alternative network architecture that considers everything to be a uniquely identifiable resources First described by Roy Fielding in his Ph.D. thesis In this context, resources are abstract concepts. In practice what we deal with are representations of resources My picture could be JPEG image Plain text (Base64 encoded) A URL pointing to some actual representation
42 How Do We Do Things? If resources correspond to things, what are the actions? REST largely uses HTTP as a way to specify actions GET retrieve a resource from its URI POST add something to a resource PUT update a resource DELETE delete a resource All actions may not be applicable to all types of resources By have just these 4 operations, we are able to interact with all types of resources Note - how resources are made available is not the concern of REST. A resource could be made available as a CGI, WS, plain file links REST style architecture just ensures that it has a unique address
43 How Do We Do Things? If resources correspond to things, what are the actions? REST largely uses HTTP as a way to specify actions GET retrieve a resource from its URI POST add something to a resource PUT update a resource DELETE delete a resource All actions may not be applicable to all types of resources By have just these 4 operations, we are able to interact with all types of resources Note - how resources are made available is not the concern of REST. A resource could be made available as a CGI, WS, plain file links REST style architecture just ensures that it has a unique address
44 REST Services - 3D Structure Database Database access is a natural REST application A resource exists in a database, and we can create a unique URL for it An HTTP GET on such a URL retrieves the data from the database An address for the 3D structure of PubChem CID Client simply performs a GET on the URL Internally, we query the database and return the structure in SD format Some resource physically exists and we simply provide a way to address it
45 REST Services - 3D Structure Database Database access is a natural REST application A resource exists in a database, and we can create a unique URL for it An HTTP GET on such a URL retrieves the data from the database An address for the 3D structure of PubChem CID Client simply performs a GET on the URL Internally, we query the database and return the structure in SD format Some resource physically exists and we simply provide a way to address it
46 REST Services - Descriptors Given a molecule we would like to evaluate descriptors What are the resources we would like to make available? 1 Specific descriptors for the molecule 2 Values of specific descriptors for the molecule Note that we consider two possible resources, rather than just talk about values By allowing specific descriptors to be resources, we allow more flexibilty
47 REST Services - Descriptors
48 REST Services - Descriptors The resource identified by the previous link is an XML document, that references other resources The current resource is a list of all the descriptors for the specified molecule But we d like more detailed information - what is the value of the descriptor X for the specified molecule? Simply visit the link (say ALogP) and we get another resource (XML document) <DescriptorList> <Descriptor parent="alogpdescriptor" name="alogp" value=" <Descriptor parent="alogpdescriptor" name="alogp2" value=" <Descriptor parent="alogpdescriptor" name="amr" value="6.4383"/> </DescriptorList>
49 What s Happening? So we re able to GET resources Descriptors Descriptor values We can also book mark the results We are not specifying an action to calculate descriptors - rather these things appear to us as if they exist on some part of Internet But we could calculate descriptors for an infinite set of molecules All of them can t be precalculated or stored somewhere! But where does the value come from?
50 What s Happenning? In this case we have a traditional SOAP WS Added a Python CGI frontend The Python CGI decides what resource should be returned by examining the URL Generates the appropriate resource via the WS and returns it You could avoid the Python frontend and just have the web service check the URL and return the appropriate resource
51 Physical versus Logical URL s For the REST DB service, the resource was physically located in a database For the descriptor service, there is no actual descriptor value until we calculate it In both cases, the URL defining the resource is logical If we had to have 17M HTML pages, one for each entry in the DB, it would not be good design We cannot even do that for the descriptor service In both cases, the URL does not reveal implementation details One is using direct SQL queries The other is using a SOAP web service
52 Should Everything be REST? Sometimes it can be tricky to design an application without using actions For certain types of services, how do we send large, structured data? What about services that maintain state? X & data to a OLS regression service? What if we don t need the model just now? Everything need not be REST - it s just one way to design an application But makes life easier for the client No special libraries required Usually resources are in simple, well-known formats Aggregating and manipulation is now a lot easier
53 REST Principles Create a URL to each resource. The resources should be nouns, not verbs Categorize your resources according to whether clients can just receive a representation of the resource, or whether clients can modify (add to) the resource The resource should just return a representation of the resource and invoking the resource should not result in modifying the resource. Design to reveal data gradually. Don t reveal everything in a single response document.
54 REST Principles Create a URL to each resource. The resources should be nouns, not verbs Categorize your resources according to whether clients can just receive a representation of the resource, or whether clients can modify (add to) the resource The resource should just return a representation of the resource and invoking the resource should not result in modifying the resource. Design to reveal data gradually. Don t reveal everything in a single response document.
55 REST Principles Create a URL to each resource. The resources should be nouns, not verbs Categorize your resources according to whether clients can just receive a representation of the resource, or whether clients can modify (add to) the resource The resource should just return a representation of the resource and invoking the resource should not result in modifying the resource. Design to reveal data gradually. Don t reveal everything in a single response document.
56 REST Principles Create a URL to each resource. The resources should be nouns, not verbs Categorize your resources according to whether clients can just receive a representation of the resource, or whether clients can modify (add to) the resource The resource should just return a representation of the resource and invoking the resource should not result in modifying the resource. Design to reveal data gradually. Don t reveal everything in a single response document.
57 Practical REST One of the nicest aspects of REST is that your application can decide what to do by investigating the URL - might mean get the DB record for might mean return a PNG image of How do we handle errors? Use HTTP error codes If the requested resource is unavailable return a 404 (Not Found) If you only support GET, then return a 405 (Method Not Allowed) code for any other method If the URL seems invalid, return 400 (Bad Request)
58 POST versus GET GET interfaces are easy to use - just create a URL with everything in it But most browsers have a limit on the length of a GET request What if you want to send a SD file? What if you want to send CC#CCC? Either limit yourself to a fixed length input Encode URL (but still does not solve URL length limits) Most general approach is to use POST
59 POST versus GET Using POST in place of GET goes against core REST principles But doesn t matter to much, if your service is not databased backed By using POST requests you can send anything of any size to the server Any decent server-side program, should not be bothered if it s a GET or POST request (besides from being able to identify what type of request is made) Downside is that you cannot make a quick test by constructing a URL
60 Less Formal than SOAP (?) SOAP is more formalized since it defines schemata for inputs and outputs of a service (WSDL) Client libraries can automatically generate proxy objects by analyzing WSDL REST interfaces can return anything - have to read the documentation This can be problematic if there is no documentation But at least you can make a request and easily inspect the return value One possibility is WADL - but not a general solution
61 Practical REST - PHP <?php $url = $_SERVER[ PHP_SELF ]; $comps = split("/", $url); $ncomp = count($comps); $id = $comps[ $ncomp-1 ]; $resource = $comps[ $ncomp-2 ]; if ($resource == "db") { // call the DB service } else if ($resource == depict") { // call the depiction service } // return appropriate content-type // and data?>
62 Python Web Applications Web applications can vary in complexity A simple service, with no user front end (i.e. web page) Beautiful web pages with complex database backend Lots of tools to help write these things Generally fall in the realm of web frameworks Django Turbogear We will consider a lower level approach, directly using mod python mod python runs Python code within the Apache server Generally faster than writing Python CGI s - each time such a CGI is called Apache starts a new Python process The nice thing is that beyond some boilerplate, mod python code just reuses your pre-exisiting code
63 Basic mod python Installed on cheminfo. See tutorial Need to update permissions to allow mod python programs to run Edit a file called.htaccess in public html (make it if it s not there) SetHandler mod_python PythonHandler depict PythonDebug On <Files ~ "\.(gif html jpg png css)$"> SetHandler default-handler </Files> depict is the name of the Python program that will be called when a request is made for this directory By default, a method called handler will be called within this program
64 Handlers The underlying philosophy is that Apache will call a specific Python program when it sees a matching URL The program can then analyze the full URL and do what ever it wants In the preceding cases, lets say we put our program under public html/rest/depict When a browser requests rguha/rest/depict, it knows that it should call depict.py (and specifically the default handler) If the request is rguha/rest/depict/foo then the method foo in depict.py is called
65 The Default Handler The default handler is called handler A minimal form of the handler is from mod_python import apache def handler(req): ## do some work ret = do_something() ## set content type req.content_type = text/plain ## send the return value back to the browser req.write(ret) ## signal everything is OK return apache.ok
66 The Environment of a Handler Since the handler is called from Apache, you have access to the Apache environment. Things of interest The URL that was used by the client - allows you to decide what specific request was made and handle it appropriately The requested content types as well as setting the return content type - lets you indicate to the user the specific type of data that is coming back from the result The type of method - GET or POST All of this is provided by an mp request object - i.e., the req argument to a handler
67 Request Objects from mod_python import apache def handler(req): req.content_type = text/plain uri = req.uri if req.method == GET : ret = uri + Got with GET else: ret = uri + Got with POST req.write(ret) return apache.ok In general, there s very little boiler plate code
68 Getting Form Data Form data is easily accessible mod python hides details of GET / POST from you from mod_python import apache def handler(req): ## get first form element called mytextfield formelem = req.form.getfirst( mytextfield, None) ## get all form elements named colorbuttons otherelems = req.form.getlist( colorbuttons ) Must escape and validate data received from forms.
69 Sounds too simple... Handling requests is just the first step For REST services, the return type is usually a simple HTML or XML document or even a bunch of plain text lines Most applications will have some sort of web page frontend Writing dynamic HTML pages can be painful Good idea to use template systems Cheetah Mako Django Templates In general, if it s a large project better to work with a well designed framework that does a lot of the grunt work for you See here for a collection of mod python based REST services
Writing and Using Web Services
Writing and Using Web Services or I don't care where my programs are Rajarshi Guha Indiana University rguha@indiana.edu Overview Two 45 minute sessions, with 15 minute break Some theory, but mainly focus
More informationInvoking Web Services. with Axis. Web Languages Course 2009 University of Trento
Invoking Web Services with Axis Web Languages Course 2009 University of Trento Lab Objective Refresh the Axis Functionalities Invoke Web Services (client-side) 3/16/2009 Gaia Trecarichi - Web Languages
More informationExercise SBPM Session-4 : Web Services
Arbeitsgruppe Exercise SBPM Session-4 : Web Services Kia Teymourian Corporate Semantic Web (AG-CSW) Institute for Computer Science, Freie Universität Berlin kia@inf.fu-berlin.de Agenda Presentation of
More informationCopyright 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 informationIntroduction to Web Services
Introduction to Web Services Motivation The Automated Web XML RPC SOAP Messaging WSDL Description Service Implementation & Deployment Further Issues Web Services a software application identified by a
More informationSriram Krishnan, Ph.D. NBCR Summer Institute, August 2010
Sriram Krishnan, Ph.D. sriram@sdsc.edu NBCR Summer Institute, August 2010 What are Services Oriented Architectures? What are Web services? WSDL (Web Services Definition Language) Techniques for building
More informationSOAP 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 informationGrid-Based PDE.Mart: A PDE-Oriented PSE for Grid Computing
Grid-Based PDE.Mart: A PDE-Oriented PSE for Grid Computing Guoyong Mao School of Computer Science and Engineering Shanghai University, Shanghai 200072, China gymao@mail.shu.edu.cn Wu Zhang School of Computer
More informationWeb Services. GC: Web Services Part 3: Rajeev Wankar
Web Services 1 Let us write our Web Services Part III 2 SOAP Engine Major goal of the web services is to provide languageneutral platform for the distributed applications. What is the SOAP engine? A (Java)
More informationWeb. Web. Java. Java. web. WebService. Apache Axis. Java web service. Applet Servlet JSP SOAP WebService XML J2EE. Web (browser)
Java Web Java web Applet Servlet JSP SOAP WebService XML J2EE WebService Web (browser) WSDL (Web Service Description Language) RPC) SOAP 80 () Apache Axis Apache AxisJavaSOAP (SOAPWeb XML.NET Java) tomcat
More informationIntroduction to Web Service
Introduction to Web Service Sagara Gunathunga ( Apache web Service and Axis committer ) CONTENTS Why you need Web Services? How do you interact with on-line financial service? Conclusion How do you interact
More informationOn the Creation of Distributed Simulation Web- Services in CD++
On the Creation of Distributed Simulation Web- Services in CD++ Rami Madhoun, Bo Feng, Gabriel Wainer, Abstract CD++ is a toolkit developed to execute discrete event simulations following the DEVS and
More informationDeveloping Interoperable Web Services for the Enterprise
Developing Interoperable Web Services for the Enterprise Simon C. Nash IBM Distinguished Engineer Hursley, UK nash@hursley.ibm.com Simon C. Nash Developing Interoperable Web Services for the Enterprise
More informationDevelop Mobile Front Ends Using Mobile Application Framework A - 2
Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 3 Develop Mobile Front Ends Using Mobile Application Framework A - 4
More informationXML Grammar and Parser for the Web Service. Offerings Language
XML Grammar and Parser for the Web Service Offerings Language by Kruti Patel, B. Eng. A thesis submitted to the Faculty of Graduate Studies and Research in partial fulfillment of the requirements for the
More informationFunctional Programming and the Web
June 13, 2011 About Me Undergraduate: University of Illinois at Champaign-Urbana PhD: Penn State University Retrofitting Programs for Complete Security Mediation Static analysis, type-based compiler Racker:
More informationWWW, 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 informationWeb Services Foundations: SOAP, WSDL and UDDI
Web Services Foundations: SOAP, WSDL and UDDI Helen Paik School of Computer Science and Engineering University of New South Wales Alonso Book Chapter 5-6 Webber Book Chapter 3-4 Mike Book Chapter 4-5 References
More informationLesson 14 SOA with REST (Part I)
Lesson 14 SOA with REST (Part I) Service Oriented Architectures Security Module 3 - Resource-oriented services Unit 1 REST Ernesto Damiani Università di Milano Web Sites (1992) WS-* Web Services (2000)
More informationECE450H1S Software Engineering II Tutorial I Web Services
Tutorial I Web Services 1. What is a Web Service? 2. An example Web Service 3. OmniEditor: Wrapping a text editor into a WS 4. OmniGraphEditor: supporting a graphic editor References Gustavo Alonso, Fabio
More informationIntroduction to the Cisco ANM Web Services API
1 CHAPTER This chapter describes the Cisco ANM Web Services application programming interface (API), which provides a programmable interface for system developers to integrate with customized or third-party
More informationSERVICE TECHNOLOGIES 1
SERVICE TECHNOLOGIES 1 Exercises 1 19/03/2014 Valerio Panzica La Manna valerio.panzicalamanna@polimi.it http://servicetechnologies.wordpress.com/exercises/ Outline Web Services: What? Why? Java Web Services:
More informationWDSL and PowerBuilder 9. A Sybase White Paper by Berndt Hamboeck
WDSL and PowerBuilder 9 A Sybase White Paper by Berndt Hamboeck Table of Contents Overview... 3 What is WSDL?... 3 Axis with PowerBuilder 9... 4 Custom Deployment with Axis - Introducing WSDD... 4 Using
More informationWeb Services Amazon Ecommerce Service, Comparison with other Web Services
Web Services Amazon Ecommerce Service, Comparison with other Web Services COV885 Special Tpocis on Computer Applications Dept. Of Comp. Sc. and Engineering, IITD Semester I, 2018 Web Programming: Web Servives
More informationGetting 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 mailto:philippe.bogaerts@radarhack.com http://www.radarhack.com 1. Introduction
More informationProgramming Web Services in Java
Programming Web Services in Java Description Audience This course teaches students how to program Web Services in Java, including using SOAP, WSDL and UDDI. Developers and other people interested in learning
More informationWeb services. In plain words, they provide a good mechanism to connect heterogeneous systems with WSDL, XML, SOAP etc.
Web Services Web Services A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format
More informationDeveloping Web Services. with Axis. Web Languages Course 2009 University of Trento
Developing Web Services with Axis Web Languages Course 2009 University of Trento Lab Objective Develop and Deploy Web Services (serverside) Lab Outline WS Sum Up: WS-protocols Axis Functionalities WSDL2Java
More informationWhat is Web Service. An example web service. What is a Web Service?
What is Web Service Tutorial I Web Services 1. What is a Web Service? 2. An example Web Service 3. OmniEditor: Wrapping a text editor into a WS 4. OmniGraphEditor: supporting a graphic editor References
More informationBEAAquaLogic. Service Bus. Interoperability With EJB Transport
BEAAquaLogic Service Bus Interoperability With EJB Transport Version 3.0 Revised: February 2008 Contents EJB Transport Introduction...........................................................1-1 Invoking
More informationXML for Java Developers G Session 8 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti
XML for Java Developers G22.3033-002 Session 8 - Main Theme XML Information Rendering (Part II) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical
More information04 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 informationProject Sens-ation. Research, Technology: AXIS, Web Service, J2ME
Bauhaus University Weimar Research, Technology: AXIS, Web Service, J2ME Project Sens-ation October 2004 CML Cooperative Media Lab CSCW, Bauhaus University Weimar Outline 1. Introduction, Ideas 2. Technology:
More informationSimple 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 informationReST 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 informationData Access and Analysis with Distributed, Federated Data Servers in climateprediction.net
Data Access and Analysis with Distributed, Federated Data Servers in climateprediction.net Neil Massey 1 neil.massey@comlab.ox.ac.uk Tolu Aina 2, Myles Allen 2, Carl Christensen 1, David Frame 2, Daniel
More informationRESTful Services. Distributed Enabling Platform
RESTful Services 1 https://dev.twitter.com/docs/api 2 http://developer.linkedin.com/apis 3 http://docs.aws.amazon.com/amazons3/latest/api/apirest.html 4 Web Architectural Components 1. Identification:
More informationXML 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 informationDatabase extensions for fun and profit. Andrew Dalke Andrew Dalke Scientific, AB Gothenburg, Sweden
Database extensions for fun and profit Andrew Dalke Andrew Dalke Scientific, AB Gothenburg, Sweden Set the Wayback Machine to 1997! Relational databases - strings and numbers - SQL - clients written in
More informationWeb Services Overview. Marlon Pierce Community Grids Lab Indiana University
Web Services Overview Marlon Pierce Community Grids Lab Indiana University Assignments Download and install Tomcat (again). http://jakarta.apache.org jakarta.apache.org/tomcat/ You will need two tomcat
More informationThis presentation is a primer on WSDL Bindings. It s part of our series to help prepare you for creating BPEL projects. We recommend you review this
This presentation is a primer on WSDL Bindings. It s part of our series to help prepare you for creating BPEL projects. We recommend you review this presentation before taking an ActiveVOS course or before
More informationWeb Services: Introduction and overview. Outline
Web Services: Introduction and overview 1 Outline Introduction and overview Web Services model Components / protocols In the Web Services model Web Services protocol stack Examples 2 1 Introduction and
More informationWeb Services. Grid Computing (M) Lecture 6. Olufemi Komolafe 19 January 2007
Web Services Grid Computing (M) Lecture 6 Olufemi Komolafe (femi@dcs.gla.ac.uk) 19 January 2007 UDDI registry retrieved from a DTD WSDL service definition XML schema definition is a describes structure
More informationImplementation Method of OGC Web Map Service Based on Web Service. Anthony Wenjue Jia *,Yumin Chen *,Jianya Gong * *Wuhan University
Implementation Method of OGC Web Map Service Based on Web Service Anthony Wenjue Jia *,Yumin Chen *,Jianya Gong * *Wuhan University ABSTRACT The most important advantage of web service is the multi-platform,
More informationPublications Office. TED Website - Notice Viewer WS Technical Specifications Document - Appendix D - NoticeViewer
Publications Office Subject NoticeViewer WS API Version / Status 1.03 Release Date 17/02/2017 Filename Document Reference TED_WEBSITE-TSP-Technical_Specifications_Document-v1.03 TED-TSP-Appendix D Table
More informationJava 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 informationIron Scripter 2018: Prequel 3 A commentary
Iron Scripter 2018: Prequel 3 A commentary I ve decided to call these notes A commentary rather than A solution because I m mainly commenting on how to solve the puzzle. The solution you adopt will be
More informationGroovy and Web Services. Ken Kousen Kousen IT, Inc.
Groovy and Web Services Ken Kousen Kousen IT, Inc. ken.kousen@kousenit.com http://www.kousenit.com Who Am I? Ken Kousen Trainer, Consultant, Developer ken.kousen@kousenit.com http://www.kousenit.com @kenkousen
More informationReal Life Web Development. Joseph Paul Cohen
Real Life Web Development Joseph Paul Cohen joecohen@cs.umb.edu Index 201 - The code 404 - How to run it? 500 - Your code is broken? 200 - Someone broke into your server? 400 - How are people using your
More informationWhy 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 informationWeek - 01 Lecture - 04 Downloading and installing Python
Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and
More information4. Java Project Design, Input Methods
4-1 4. Java Project Design, Input Methods Review and Preview You should now be fairly comfortable with creating, compiling and running simple Java projects. In this class, we continue learning new Java
More informationREST - Representational State Transfer
REST - Representational State Transfer What is REST? REST is a term coined by Roy Fielding to describe an architecture style of networked systems. REST is an acronym standing for Representational State
More informationWeb Services Week 10
Web Services Week 10 Emrullah SONUÇ Department of Computer Engineering Karabuk University Fall 2017 1 Recap BPEL Process in Netbeans RESTful Web Services Introduction to Rest Api 2 Contents RESTful Web
More informationJSR 311: JAX-RS: The Java API for RESTful Web Services
JSR 311: JAX-RS: The Java API for RESTful Web Services Marc Hadley, Paul Sandoz, Roderico Cruz Sun Microsystems, Inc. http://jsr311.dev.java.net/ TS-6411 2007 JavaOne SM Conference Session TS-6411 Agenda
More informationGeneral Coding Standards
Rick Cox rick@rescomp.berkeley.edu A description of general standards for all code generated by ResComp employees (including non-programmers), intended to make maintaince, reuse, upgrades, and trainig
More informationweb.py Tutorial Tom Kelliher, CS 317 This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment.
web.py Tutorial Tom Kelliher, CS 317 1 Acknowledgment This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment. 2 Starting So you know Python and want to make
More informationCreating Web Services with Apache Axis
1 of 7 11/24/2006 5:52 PM Published on ONJava.com (http://www.onjava.com/) http://www.onjava.com/pub/a/onjava/2002/06/05/axis.html See this if you're having trouble printing code examples Creating Web
More informationPieces of the puzzle. Wednesday, March 09, :29 PM
SOAP_and_Axis Page 1 Pieces of the puzzle Wednesday, March 09, 2011 12:29 PM Pieces of the puzzle so far Google AppEngine/GWTJ: a platform for cloud computing. Map/Reduce: a core technology of cloud computing.
More informationก. ก ก (krunapon@kku.ac.th) (pongsakorn@gmail.com) ก ก ก ก ก ก ก ก ก ก 2 ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก ก 3 ก ก 4 ก ก 1 ก ก ก ก (XML) ก ก ก ก ( HTTP) ก ก Web Services WWW Web services architecture
More informationDeveloping JAX-RPC Web services
Developing JAX-RPC Web services {scrollbar} This tutorial will take you through the steps required in developing, deploying and testing a Web Service in Apache Geronimo. After completing this tutorial
More informationIntroduction to REST Web Services
Introduction to REST Web Services Asst. Prof. Dr. Kanda Runapongsa Saikaew Department of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Agenda What is REST? REST Web
More informationCS506 Web Design & Development Final Term Solved MCQs with Reference
with Reference I am student in MCS (Virtual University of Pakistan). All the MCQs are solved by me. I followed the Moaaz pattern in Writing and Layout this document. Because many students are familiar
More informationServices Web Nabil Abdennadher
Services Web Nabil Abdennadher nabil.abdennadher@hesge.ch 1 Plan What is Web Services? SOAP/WSDL REST http://www.slideshare.net/ecosio/introduction-to-soapwsdl-and-restfulweb-services/14 http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/
More informationREST 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 information3. ก ก (deploy web service)
ก ก 1/12 5 ก ก ก ก (complex type) ก ก ก (document style) 5.1 ก ก ก ก ก (java object)ก ก ก (xml document ) ก ก (java bean) ก (serialize) (deserialize) Serialize Java Bean XML Document Deserialize 5.1 ก
More informationQuick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul
CIS192 Python Programming Web Frameworks and Web APIs Harry Smith University of Pennsylvania March 29, 2016 Harry Smith (University of Pennsylvania) CIS 192 March 29, 2016 1 / 25 Quick housekeeping Last
More informationLecture 15: Frameworks for Application-layer Communications
Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to
More informationLecture 15: Frameworks for Application-layer Communications
Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to
More information4.1.1 JWS (Java Web Service) Files Instant Deployment
ก ก 1 4 ก ก ก ก ก ก ก ก (SOAP) 4.1 ก ก ก (Create and deploy web service) ก ก ก 2 ก (JWS) ก ก 4.1.1 JWS (Java Web Service) Files Instant Deployment ก Calculator.java ก ก ก ก Calculator.java 4.1 public class
More informationTutorial on Fast Web Services
Tutorial on Fast Web Services This document provides tutorial material on Fast Web Services (it is equivalent to Annex C of X.892 ISO/IEC 24824-2). Some of the advantages of using Fast Web Services are
More informationJAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP
2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries
More informationClient-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 informationLotus Exam Using Web Services in IBM Lotus Domino 7 Applications Version: 5.0 [ Total Questions: 90 ]
s@lm@n Lotus Exam 190-756 Using Web Services in IBM Lotus Domino 7 Applications Version: 5.0 [ Total Questions: 90 ] Topic 0, A A Question No : 1 - (Topic 0) Chris has used Domino Designer 7 to create
More informationModulo II WebServices
Modulo II WebServices Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 2 1 Ementa History
More informationAn Incredibly Brief Introduction to Relational Databases: Appendix B - Learning Rails
O'Reilly Published on O'Reilly (http://oreilly.com/) See this if you're having trouble printing code examples An Incredibly Brief Introduction to Relational Databases: Appendix B - Learning Rails by Edd
More informationWeb Services in Cincom VisualWorks. WHITE PAPER Cincom In-depth Analysis and Review
Web Services in Cincom VisualWorks WHITE PAPER Cincom In-depth Analysis and Review Web Services in Cincom VisualWorks Table of Contents Web Services in VisualWorks....................... 1 Web Services
More informationBiocomputing II Coursework guidance
Biocomputing II Coursework guidance I refer to the database layer as DB, the middle (business logic) layer as BL and the front end graphical interface with CGI scripts as (FE). Standardized file headers
More informationCSCI S-Q Lecture #12 7/29/98 Data Structures and I/O
CSCI S-Q Lecture #12 7/29/98 Data Structures and I/O Introduction The WRITE and READ ADT Operations Case Studies: Arrays Strings Binary Trees Binary Search Trees Unordered Search Trees Page 1 Introduction
More informationAlexa Site Thumbnail. Developer Guide
: Published 2006-August-02 Copyright 2006 Amazon Services, Inc. or its Affiliates AMAZON and AMAZON.COM are registered trademarks of Amazon.com, Inc. or its Affiliates. All other trademarks are the property
More informationComponent-based Grid Programming Using the HOC-Service Architecture
Component-based Grid Programming Using the HOC-Service Architecture Sergei Gorlatch University of Münster, Germany 1 PARALLEL AND DISTRIBUTED COMPUTING: TOWARD GRIDS Demand growing: Grand Challenges: Scientific
More informationPace University. Web Service Workshop Lab Manual
Pace University Web Service Workshop Lab Manual Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University July 12, 2005 Table of Contents 1 1 Lab objectives... 1 2 Lab design...
More informationCOMP102: Introduction to Databases, 23
COMP102: Introduction to Databases, 23 Dr Muhammad Sulaiman Khan Department of Computer Science University of Liverpool U.K. 04 April, 2011 Programming with SQL Specific topics for today: Client/Server
More informationCherryPy on Apache2 with mod_python
Revision History CherryPy on Apache2 with mod_python Revision 1.5 November 9, 2009 Revised by: FB Ferry Boender 1. Introduction I ve recently written a web application using Python using the following
More informationReading How the Web Works
Reading 1.3 - How the Web Works By Jonathan Lane Introduction Every so often, you get offered a behind-the-scenes look at the cogs and fan belts behind the action. Today is your lucky day. In this article
More informationWeb-Based Systems. INF 5040 autumn lecturer: Roman Vitenberg
Web-Based Systems INF 5040 autumn 2013 lecturer: Roman Vitenberg INF5040, Roman Vitenberg 1 Two main flavors Ø Browser-server WWW application Geared towards human interaction Not suitable for automation
More informationCOPYRIGHTED MATERIAL. Contents. Part I: Introduction 1. Chapter 1: What Is XML? 3. Chapter 2: Well-Formed XML 23. Acknowledgments
Acknowledgments Introduction ix xxvii Part I: Introduction 1 Chapter 1: What Is XML? 3 Of Data, Files, and Text 3 Binary Files 4 Text Files 5 A Brief History of Markup 6 So What Is XML? 7 What Does XML
More informationIntro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming
Intro to Programming Unit 7 Intro to Programming 1 What is Programming? 1. Programming Languages 2. Markup vs. Programming 1. Introduction 2. Print Statement 3. Strings 4. Types and Values 5. Math Externals
More informationTPF Users Group Fall 2007
TPF Users Group Fall 2007 z/tpf Enhancements for SOAP Provider Support and Tooling for Web Services Development Jason Keenaghan Distributed Systems Subcommittee 1 Developing Web services for z/tpf Exposing
More informationBEAWebLogic Server. WebLogic Web Services: Advanced Programming
BEAWebLogic Server WebLogic Web Services: Advanced Programming Version 10.0 Revised: April 28, 2008 Contents 1. Introduction and Roadmap Document Scope and Audience.............................................
More informationSOA: Service-Oriented Architecture
SOA: Service-Oriented Architecture Dr. Kanda Runapongsa (krunapon@kku.ac.th) Department of Computer Engineering Khon Kaen University 1 Gartner Prediction The industry analyst firm Gartner recently reported
More information02267: Software Development of Web Services
02267: Software Development of Web Services Week 1 Hubert Baumeister huba@dtu.dk Department of Applied Mathematics and Computer Science Technical University of Denmark Fall 2013 Contents Course Introduction
More informationWeb Service Interest Management (WSIM) Prototype. Mark Pullen, GMU
Web Service Interest Management (WSIM) Prototype Mark Pullen, GMU 1 Presentation Overview Case study: how to build a Web service WSIM architecture overview and issues Basic Web service implementation Extending
More informationBackend Development. SWE 432, Fall Web Application Development
Backend Development SWE 432, Fall 2018 Web Application Development Review: Async Programming Example 1 second each Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy
More informationXML Messaging: Simple Object Access Protocol (SOAP)
XML Messaging: Simple Object Access Protocol (SOAP) Authors Gabriel Toma-Tumbãr: GabrielToma-Tumbar@ucvro Dan-Ovidiu Andrei: DanAndrei@ucvro University of Craiova Faculty of Automation, Computers and Electronics
More informationWeb-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology
Web-APIs Examples Consumer Technology Cross-Domain communication Provider Technology Applications Blogs and feeds OpenStreetMap Amazon, Ebay, Oxygen, Magento Flickr, YouTube 3 more on next pages http://en.wikipedia.org/wiki/examples_of_representational_state_transfer
More informationIntroduction 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 informationAmbientes de Desenvolvimento Avançados
Ambientes de Desenvolvimento Avançados http://www.dei.isep.ipp.pt/~jtavares/adav/adav.htm Aula 20 Engenharia Informática 2005/2006 José António Tavares jrt@isep.ipp.pt 1 Web services standards 2 1 Antes
More informationComputer Components. Software{ User Programs. Operating System. Hardware
Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point
More informationShankersinh Vaghela Bapu Institue of Technology
Branch: - 6th Sem IT Year/Sem : - 3rd /2014 Subject & Subject Code : Faculty Name : - Nitin Padariya Pre Upload Date: 31/12/2013 Submission Date: 9/1/2014 [1] Explain the need of web server and web browser
More information