Distributed Applications. Python
|
|
|
- Candace Rice
- 10 years ago
- Views:
Transcription
1 Distributed Applications with Python Dr Duncan Grisby
2 Part one Technologies
3 Outline 1. Introduction 2. A simple example 3. XML-RPC details 4. CORBA details 5. Comparisons and summary 3
4 About me BA and PhD at the University of Cambridge Computer Laboratory. Worked at AT&T Laboratories Cambridge before its closure in April Founder of Apasphere Ltd. Interested in contract offers... Main author of omniorbpy Apasphere but I m trying very hard to be unbiased. 4
5 Introduction 1. What is a distributed system? 2. Why would we want one? 3. Distributed system technologies 4. XML-RPC 5. SOAP 6. CORBA 5
6 What is a distributed system? A system in which not all parts run in the same address space... and normally across more than one computer. Complex concurrency latency nasty failure modes... 6
7 So why bother? There s more than one computer in the world. They solve some real problems Distributed users Load balancing Fault tolerance Distributed computation... It s a challenge. 7
8 Technologies Sockets RPC Sun RPC, DCE, XML-RPC, SOAP Single language distributed objects Java RMI, DOPY, Pyro Cross-language distributed objects DCOM, CORBA Message-oriented middleware, mobile agents, tuple spaces,... 8
9 RPC Remote Procedure Call Model networked interactions as procedure calls. Natural model for many kinds of application. Totally inappropriate for some things. Considered at least as early as 1976 White, J.E., A high-level framework for network-based resource sharing, Proceedings of the National Computer Conference, June Requires: server addressing model, transport protocol, data type marshalling. 9
10 Object Oriented RPC Obvious extension of RPC to support objects. Exactly analogous to the difference between procedural and object oriented programming. In a remote method call, choice of object is implicit in the object reference. Object references are first class data types: they can be sent as method arguments. Requires: object addressing model, transport protocol, marshalling. 10
11 What is XML-RPC? Very simple RPC protocol HTTP for server addressing and transport protocol. XML messages for data type marshalling. Limited range of simple types. Stable specification Perhaps too stable. Implementations in many languages. Fork from an early version of SOAP... 11
12 What is SOAP? It depends who you ask! Started life as an RPC protocol using HTTP/XML. Moving away from that, towards a general message framing scheme. As of SOAP 1.2, no longer stands for Simple Object Access Protocol. A plethora of related specifications: XML Schema, WSDL, UDDI,... Specification and implementations in flux. 12
13 Schemas, WSDL and UDDI XML Schema Used in SOAP to define types. WSDL Web Services Description Language Wraps up information about types, messages and operations supported by a service, and where to find the service. UDDI Universal Description, Discovery and Integration Framework for describing, finding services. 13
14 What is CORBA? Common Object Request Broker Architecture. i.e. a common architecture for object request brokers. A framework for building object oriented distributed systems. Cross-platform, language neutral. Defines an object model, standard language mappings,... An extensive open standard, defined by the Object Management Group. 14
15 Object Management Group Founded in The world s largest software consortium with around 800 member companies. Only provides specifications, not implementations. As well as CORBA core, specifies: Services: naming, trading, security,... Domains: telecoms, health-care, finance,... UML: Unified Modelling Language. MDA: Model Driven Architecture. All specifications are available for free. 15
16 Python XML-RPC xmlrpclib xmlrpc/ Part of Python standard library since 2.2. Very Pythonic and easy-to-use. 16
17 Python SOAP SOAP.py pywebsvcs.sourceforge.net Similar in style to xmlrpclib. Not actively maintained. ZSI, Zolera SOAP Infrastructure pywebsvcs.sourceforge.net again. Most flexible and powerful option. Currently not particularly Pythonic. 17
18 Python SOAP cont d SOAPy soapy.sourceforge.net Supports WSDL, XML Schema Client side only. 4Suite SOAP Part of 4Suite Server. From the SOAP as message framing camp. No RPC. 18
19 Python CORBA omniorbpy omniorb.sourceforge.net Based on C++ omniorb. Multi-threaded. Most complete and standards-compliant. orbit-python orbit-python.sault.org Based on C ORBit. Single-threaded. Fnorb Pure Python (recent development). Dead for a long time. Newly open source (Python style). 19
20 A simple example 1. Specification 2. XML-RPC implementation 3. SOAP implementation 4. CORBA implementation 5. Comparison 20
21 Specification We want an adder service with operations: add: add two integers. add_many: take a list of integers and return their sum. accumulate: add a single argument to a running total, return the new total. reset: reset the running total to zero. 21
22 XML-RPC server 1 #!/usr/bin/env python 2 import operator, xmlrpclib, SimpleXMLRPCServer 3 4 class Adder_impl: 5 def init (self): 6 self.value = def add(self, a, b): 9 return a + b def add_many(self, a_list): 12 return reduce(operator.add, a_list, 0) def accumulate(self, a): 15 self.value += a 16 return self.value def reset(self): 19 self.value = 0 20 return xmlrpclib.true adder = Adder_impl() 23 server = SimpleXMLRPCServer.SimpleXMLRPCServer(("", 8000)) 24 server.register_instance(adder) 25 server.serve_forever() 22
23 XML-RPC client >>> import xmlrpclib >>> adder = xmlrpclib.server(" >>> adder.add(123, 456) 579 >>> adder.add("hello ", "world") Hello world >>> adder.add_many([1,2,3,4,5]) 15 >>> adder.add_many(range(100)) 4950 >>> adder.accumulate(5) 5 >>> adder.accumulate(7) 12 >>> adder.reset() <Boolean True at 819a97c> >>> adder.accumulate(10) 10 >>> adder.accumulate(2.5)
24 XML-RPC request POST / HTTP/1.0 Host: pineapple:8000 User-Agent: xmlrpclib.py/1.0b4 (by Content-Type: text/xml Content-Length: 191 <?xml version= 1.0?> <methodcall> <methodname>add</methodname> <params> <param> <value><int>123</int></value> </param> <param> <value><int>456</int></value> </param> </params> </methodcall> 24
25 XML-RPC response HTTP/ OK Server: BaseHTTP/0.2 Python/2.2c1 Date: Thu, 28 Feb :47:05 GMT Content-type: text/xml Content-length: 123 <?xml version= 1.0?> <methodresponse> <params> <param> <value><int>579</int></value> </param> </params> </methodresponse> 25
26 XML-RPC notes We didn t have to tell XML-RPC the names of the functions, or their argument types. Dynamic dispatch/typing just like Python. Not necessarily a good thing in a distributed system... XML-RPC has no equivalent of None. reset() has to return something. 26
27 SOAP server (SOAP.py) 1 #!/usr/bin/env python 2 import operator, SOAP 3 4 class Adder_impl: 5 def init (self): 6 self.value = def add(self, a, b): 9 return a + b def add_many(self, a_list): 12 return reduce(operator.add, a_list, 0) def accumulate(self, a): 15 self.value += a 16 return self.value def reset(self): 19 self.value = adder = Adder_impl() 22 server = SOAP.SOAPServer(("", 8000)) 23 server.registerobject(adder) 24 server.serve_forever() 27
28 SOAP client >>> import SOAP >>> adder = SOAP.SOAPProxy(" >>> adder.add(123, 456) 579 >>> adder.add("hello ", "world") Hello world >>> adder.add_many([1,2,3,4,5]) 15 >>> adder.add_many(range(100)) 4950 >>> adder.accumulate(5) 5 >>> adder.accumulate(7) 12 >>> adder.reset() >>> adder.accumulate(10) 10 >>> adder.accumulate(2.5)
29 SOAP request POST / HTTP/1.0 Host: pineapple:8000 User-agent: SOAP.py (actzero.com) Content-type: text/xml; charset="utf-8" Content-length: 492 SOAPAction: "" <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle=" lsoap.org/soap/encoding/" xmlns:soap-enc=" soap.org/soap/encoding/" xmlns:xsi=" MLSchema-instance" xmlns:soap-env=" g/soap/envelope/" xmlns:xsd=" a"> <SOAP-ENV:Body> <add SOAP-ENC:root="1"> <v1 xsi:type="xsd:int">123</v1> <v2 xsi:type="xsd:int">456</v2> </add> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 29
30 SOAP response HTTP/ OK Server: <a href=" py 0.9.7</a> (Python 2.2c1) Date: Thu, 28 Feb :07:38 GMT Content-type: text/xml; charset="utf-8" Content-length: 484 <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle=" lsoap.org/soap/encoding/" xmlns:soap-enc=" soap.org/soap/encoding/" xmlns:xsi=" MLSchema-instance" xmlns:soap-env=" g/soap/envelope/" xmlns:xsd=" a"> <SOAP-ENV:Body> <addresponse SOAP-ENC:root="1"> <Result xsi:type="xsd:int">579</result> </addresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 30
31 SOAP notes Dynamic dispatch/typing like XML-RPC. WSDL would allow us to specify function names and types. Except that none of the Python SOAP implementations support it fully. SOAP does have the equivalent of None. The SOAP encoding is much bigger and more complex than the XML-RPC encoding. 31
32 CORBA interface Types and interfaces must be defined. CORBA Interface Definition Language, IDL. Serves as formal documentation for the service, too. Can be avoided if there s a really good reason. 1 module Snake { 2 interface Adder { 3 typedef sequence<long> LongSeq; 4 5 long add(in long a, in long b); 6 long add_many(in LongSeq a_list); 7 long accumulate(in long a); 8 void reset(); 9 }; 10 }; 32
33 CORBA server 1 #!/usr/bin/env python 2 import sys, operator, CORBA, Snake POA 3 4 class Adder_impl(Snake POA.Adder): 5 def init (self): 6 self.value = def add(self, a, b): 9 return a + b def add_many(self, a_list): 12 return reduce(operator.add, a_list, 0) def accumulate(self, a): 15 self.value += a 16 return self.value def reset(self): 19 self.value = orb = CORBA.ORB_init(sys.argv) 22 poa = orb.resolve_initial_references("rootpoa") 23 obj = Adder_impl()._this() 24 print orb.object_to_string(obj) 25 poa._get_the_poamanager().activate() 26 orb.run() 33
34 CORBA client >>> import CORBA, Snake >>> orb = CORBA.ORB_init() >>> obj = orb.string_to_object("ior: ") >>> adder = obj._narrow(snake.adder) >>> adder.add(123, 456) 579 >>> adder.add("hello ", "world") Traceback (most recent call last):... CORBA.BAD_PARAM: Minor: BAD_PARAM_WrongPythonType, COMPLETED_NO. >>> adder.add_many([1,2,3,4,5]) 15 >>> adder.add_many(range(100)) 4950 >>> adder.accumulate(5) 5 >>> adder.accumulate(7) 12 >>> adder.reset() >>> adder.accumulate(10) 10 34
35 CORBA request/response CORBA uses an efficient binary format. Request: f GIOP e fe25 177e...%.~ 3c <..2u b c add...{... Response: f GIOP C... Tools like Ethereal ( will pick it apart if you need to know what it means. 35
36 XML-RPC details 1. Types 2. Faults 3. Clients and servers 4. Extensions 36
37 XML-RPC types Boolean xmlrpclib.true or xmlrpclib.false Integers Python int type. Floating point Python float type. Beware rounding errors! Strings Python string type. ASCII only. 37
38 XML-RPC types Array Python sequence type (list, tuple) containing conformable values. Struct Python dictionary with string keys, conformable values. Date xmlrpclib.datetime instance. Construct with seconds since epoch, time tuple, ISO 8601 string. Binary xmlrpclib.binary instance. Construct with string, read from data. 38
39 XML-RPC faults Any server function can raise xmlrpclib.fault to indicate an error. Constructor takes integer fault code and a human-readable fault string. Access with faultcode and faultstring. Uncaught Python exceptions in server functions are turned into Faults. The system may also raise xmlrpclib. ProtocolError if the call failed for some HTTP/TCP reason. 39
40 XML-RPC clients Clients create a proxy to a server: proxy = xmlrpclib.serverproxy(" Method names may contain dots: a = proxy.foo() b = proxy.bar.baz.wibble() https accepted if your Python has SSL support: proxy = xmlrpclib.serverproxy(" 40
41 XML-RPC servers SimpleXMLRPCServer included in Python 2.2: server = SimpleXMLRPCServer.SimpleXMLRPCServer(("", port)) Usually specify empty string as host name. Use specific interface name/address to restrict calls to a particular interface. Register an instance instance = MyServerClass() server.register_instance(instance) All of instance s methods available (except those prefixed with _ ). Sub-instances for dotted method names. Only one instance can be registered. 41
42 XML-RPC servers Instance with a dispatch method: class MyServer: def _dispatch(method, params): print "The method name was", method # Do something to implement the method... Register separate functions: server.register_function(pow) def doit(a, b): return a - b server.register_function(doit, "subtract") 42
43 XML-RPC extensions services/xmlrpcextensions system.listmethods return list of available functions. system.methodsignature return the signature of the specified method, as a list of strings. system.methodhelp return a help string for the specified method. system.multicall call a list of methods in sequence, returning all the results. 43
44 CORBA details 1. IDL and its Python mapping 2. CORBA object model 3. Object Request Broker 4. Portable Object Adapter 44
45 Interface Definition Language IDL forms a contract between the client and object. Mapped to the target language by an IDL compiler. Strong typing. Influenced by C++ (braces and semicolons sorry!). module Snake { interface Adder { long accumulate(in long a); void reset(); }; }; 45
46 IDL Facilities All types and interfaces are specified in IDL. Base types: integers, floating point, strings, wide strings. Constructed types: enumerations, sequences, arrays, structures, discriminated unions, fixed point, interfaces. Interfaces: operations, attributes, exceptions. Dynamic types: Any, TypeCode. 46
47 IDL Example module Example { struct Person { string name; unsigned short age; }; enum DwellingKind { house, flat, cottage, castle }; struct Dwelling { DwellingKind kind; Person owner; unsigned long number_of_rooms; }; interface Auction { readonly attribute Dwelling lot; readonly attribute float high_bid; boolean bid(in Person who, in float amount); }; interface AuctionHouse { Auction SellDwelling(in Dwelling to_sell, in float reserve); }; }; 47
48 IDL to Python Standard Python language mapping: python_language_mapping.htm Map IDL to Python with an IDL compiler... $ omniidl -bpython example.idl Use the mapped types from Python... >>> import Example >>> fred = Example.Person("Fred Bloggs", 42) >>> residence = Example.Dwelling(Example.cottage, fred, 3) >>> residence.number_of_rooms 3 >>> auctioneer = # Get AuctionHouse object from somewhere >>> auction = auctioneer.selldwelling(residence, ) >>> auction.bid(example.person("joe Smith", 28), ) >>> auction._get_high_bid()
49 ORB and POA The Object Request Broker (ORB) holds everything together. Not a stand-alone process library code in all CORBA applications. Provides basis for network-transparency, object model, etc. The Portable Object Adapter (POA) supports server code. Supports activation of servants i.e. implementation objects. On-demand activation, default servants, flexible servant locators. 49
50 Standard CORBA services Naming Tree-based hierarchy of named objects. Supports federation. Notification Asynchronous event filtering, notification. Interface repository Run-time type discovery. Security Encryption, authentication, authorisation, non-repudiation... Object trading, Transaction, Concurrency, Persistence, Time,... 50
51 Part two Solving real problems
52 Common Problems 1. Finding services/objects 2. Transferring bulk data 3. Event notification 4. State and session management 52
53 Finding things Low-tech Hard-coded URIs. Write URIs / CORBA IORs to a file. Look-up by name CORBA Naming service. UDDI. Ad-hoc name service. Look-up by properties CORBA Trader service. UDDI. How do you know how to use it once you ve got it? 53
54 Bulk data Lists / sequences Simple, but can t cope with really large items. Iterator pattern in CORBA. struct GameInfo { string name; Game obj; }; typedef sequence <GameInfo> GameInfoSeq; interface GameFactory {... GameInfoSeq listgames(in unsigned long how_many, out GameIterator iter); }; interface GameIterator { GameInfoSeq next_n(in unsigned long how_many, out boolean more); void destroy(); }; Socket transfer, FTP, etc. 54
55 Event notification Blocking calls Return when event occurs. Interacts badly with timeouts. Callbacks Service calls client when event occurs. Firewall issues (CORBA bidir GIOP). Tricky with web services. CORBA Event / Notification services Push or pull transmission and reception. Event filtering. Manage scalability issues. MOM: IBM MQSeries, MSMQ,... 55
56 State and session management How do you create and track server-side state? Don t if you can help it! CORBA Factory pattern. RPC uses explicit cookies to identify state. How do you get rid of state? Distributed garbage collection is hard! No complete solution. Must think about it on a per-application basis. Reference counting and pinging, evictor pattern, timeouts,... 56
57 Conclusion 1. Comparisons 2. My recommendations 3. General hints 4. Further resources 57
58 Comparisons Like Python itself, XML-RPC and SOAP use dynamic typing. Good for fast prototyping but can you really trust your clients? Distribution turns a debugging issue into a security issue. Robust code has to check types everywhere. CORBA uses static interfaces and typing. Have to specify interfaces in advance. CORBA runtime checks types for you. You have to document the interfaces anyway. Any provides dynamic typing if you need it. 58
59 Comparisons XML-RPC and SOAP only specify transfer syntax. Different implementations use different APIs. Not an issue with Python XML-RPC since everyone uses xmlrpclib. Definitely an issue with SOAP. CORBA has standard language mappings and object model. Python source code is portable between different Python ORBs. Object model and API is the same for all languages. 59
60 Comparisons XML-RPC and SOAP are procedural Addressing on a per-server basis. No implicit state in function calls. Using explicit state in all calls can become tricky. CORBA is object-oriented Object references are first-class data types. Application entities can be modelled as objects. Managing large numbers of objects can be tricky. 60
61 Comparisons CORBA uses a compact binary format for transmission. Efficient use of bandwidth. Easy to generate and parse. XML-RPC and SOAP use XML text. Egregious waste of bandwidth. Easy-ish to generate, computationally expensive to parse. Easy for a human to read not this human! CORBA is times more compact, times faster. 61
62 My recommendations Use XML-RPC if your requirements are really simple. performance is not a big issue. Use CORBA if object orientation and complex types are important. interoperability is important. performance is important. CORBA s services solve many of your problems. 62
63 My recommendations Use SOAP if you like tracking a moving standard :-) you want to be buzzword-compliant. Use sockets if you need to stream binary data. you can t afford any infrastructure. Use something else if it fits neatly with your application. Use a combination of things if it makes sense to do so. 63
64 General hints Design for distribution. Think carefully about latency. Often better to send data which may not be needed than to have fine-grained interfaces. Use exceptions wisely (if the platforms provides them). Avoid generic interfaces (e.g. ones which use CORBA Any) if possible. Don t forget security requirements! Write your code in Python! 64
65 Further resources Programming Web Services with XML-RPC, by Simon St. Laurent, Joe Johnston and Edd Dumbill. O Reilly. Advanced CORBA Programming with C++, by Michi Henning and Steve Vinoski. Addison-Wesley. Don t be put off by the C++ in the title most of the content is applicable to any language. Besides, it s fun to see how much harder things are for C++ users. 65
66 CORBA resources Python CORBA tutorial CORBA IDL to Python language mapping, python_language_mapping.htm CORBA specifications, 66
67 Conclusion There are a lot of options out there. Despite the web services hype, CORBA and other established technologies are the best solution to many real-world problems. The value of web services is not as a replacement for CORBA, but an addition. Web services proponents could learn a lot from CORBA, if only they looked. 67
Middleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
Infrastructure that supports (distributed) componentbased application development
Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication
What is a Web service?
What is a Web service? Many people and companies have debated the exact definition of Web services. At a minimum, however, a Web service is any piece of software that makes itself available over the Internet
Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University
Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns
What is in a Distributed Object System? Distributed Object Systems 5 XML-RPC / SOAP. Examples. Problems. HTTP protocol. Evolution
Distributed Object Systems 5 XML-RPC / SOAP Piet van Oostrum What is in a Distributed Object System? Wire (transport) protocol Marshalling standard Language bindings Middle-ware (ORB) Interface specification
The omniorbpy version 3 User s Guide
The omniorbpy version 3 User s Guide Duncan Grisby (email: [email protected]) Apasphere Ltd. July 2009 Changes and Additions, June 2007 Updates for omniorbpy 3.1. Changes and Additions, June 2005 New
CORBAservices. Naming. Part of the CORBA Naming Service Interface in IDL. CORBA Naming Service
CORBAservices CORBAservices are general purpose and application independent services. They resemble and enhance services commonly provided by an operating system: Service Collection Query Concurrency Transaction
Types of Cloud Computing
Types of Cloud Computing (SaaS)Software as a Service XaaS (PaaS) Platform as a Service (IaaS) Infrastructure as a Service Access to Cloud computing Service Web URL (standard HTTP methods) web brower HTTP
Lesson 4 Web Service Interface Definition (Part I)
Lesson 4 Web Service Interface Definition (Part I) Service Oriented Architectures Module 1 - Basic technologies Unit 3 WSDL Ernesto Damiani Università di Milano Interface Definition Languages (1) IDLs
Python. Network. Marcin Młotkowski. 24th April, 2013
Network 24th April, 2013 1 Transport layer 2 3 4 Network layers HTTP, POP3, SMTP, FTP Transport layer TCP, UDP Internet User Datagram Protocol (UDP) Features of UDP Very easy Unreliable: no acknowledgment,
Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures
Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable
Call Detail Record Access Service Part No. 520-0015-01R01
Call Detail Record Access Service Part No. 520-0015-01R01 Summary Objective WSDL URL (Testing) WSDL URL (Hosting Production) Endpoint URL (Testing) Endpoint URL (Hosting Production) Namespace URI Service
Corba. Corba services. The (very) global picture. Corba. Distributed Object Systems 3 CORBA/IDL. Corba. Features. Services
Distributed Systems 3 CORBA/ Piet van Oostrum Sep 11, 2008 Corba Common Request Broker Architecture Middleware for communicating objects Context Management Group (OMG) Consortium of computer companies
1.Remote Procedure Call...3. 1.1.Basics...3. 1.2.1.Requests...5. 1.2.2.Types...8. 1.2.3.Response...11. 1.2.4.Strategies/Goals...14 1.2.5.FAQ...
XML-RPC This section demonstrates XML remote procedure calls. Table of contents 1.Remote Procedure Call...3 1.1.Basics...3 1.2.XML-RPC Specification 1...4 1.2.1.Requests...5 1.2.2.Types...8 1.2.3.Response...11
Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications
Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to
Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary
C H A P T E R 1 1 Overview of CORBA 11.1 Introduction to CORBA 11.2 CORBA architecture 11.3 Client and object implementations 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary In previous
A Signing Proxy for Web Services Security. Dr. Ingo Melzer RIC/ED
A Signing Proxy for Web Services Security Dr. Ingo Melzer RIC/ED What is a Web Service? Infrastructure Web Service I. Melzer -- A Signing Proxy for Web Services Security 2 What is a Web Service? basic
Unit IV: SOAP protocol, XML-RPC, HTTP, SOAP faults and SOAP attachments, Web services, UDDI, XML security
Unit IV: SOAP protocol, XML-RPC, HTTP, SOAP faults and SOAP attachments, Web services, UDDI, XML security 1. RPC (Remote Procedure Call) It is often necessary to design distributed systems, where the code
Middleware and the Internet
Middleware and the Internet Middleware today Designed for special purposes (e.g. DCOM) or with overloaded specification (e.g. CORBA) Specifying own protocols integration in real world network? Non-performant
WEB SERVICES. Revised 9/29/2015
WEB SERVICES Revised 9/29/2015 This Page Intentionally Left Blank Table of Contents Web Services using WebLogic... 1 Developing Web Services on WebSphere... 2 Developing RESTful Services in Java v1.1...
Web Services. Distributed Object Systems 11. Web Services, SOAP and NET. Web Applications. Web Services. Web services vs Distributed Objects
Distributed Object Systems 11 Web Services, SOAP and NET Piet van Oostrum Web Services Some Definitions A Web Service is a software system designed to support interoperable machine-to-machine interaction
CORBA Programming with TAOX11. The C++11 CORBA Implementation
CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy
Introduction into Web Services (WS)
(WS) Adomas Svirskas Agenda Background and the need for WS SOAP the first Internet-ready RPC Basic Web Services Advanced Web Services Case Studies The ebxml framework How do I use/develop Web Services?
Distributed Network Management Using SNMP, Java, WWW and CORBA
Distributed Network Management Using SNMP, Java, WWW and CORBA André Marcheto Augusto Hack Augusto Pacheco Augusto Verzbickas ADMINISTRATION AND MANAGEMENT OF COMPUTER NETWORKS - INE5619 Federal University
Fundamentals of Web Programming a
Fundamentals of Web Programming a Universal Description, Discovery, and Integration Teodor Rus [email protected] The University of Iowa, Department of Computer Science a Copyright 2009 Teodor Rus. These
Web Services Implementation: The Beta Phase of EPA Network Nodes
Web Services Implementation: The Beta Phase of EPA Network Nodes Connie Dwyer and Chris Clark U.S. Environmental Protection Agency, 1200 Pennsylvania Avenue, N. W., Washington, D.C. [email protected]
CSC 551: Web Programming. Spring 2004
CSC 551: Web Programming Spring 2004 Java Overview Design goals & features platform independence, portable, secure, simple, object-oriented, Programming models applications vs. applets vs. servlets intro
Middleware and the Internet. Example: Shopping Service. What could be possible? Service Oriented Architecture
Middleware and the Internet Example: Shopping Middleware today Designed for special purposes (e.g. DCOM) or with overloaded specification (e.g. CORBA) Specifying own protocols integration in real world
Interface Definition Language
Interface Definition Language A. David McKinnon Washington State University An Interface Definition Language (IDL) is a language that is used to define the interface between a client and server process
Features of The Grinder 3
Table of contents 1 Capabilities of The Grinder...2 2 Open Source... 2 3 Standards... 2 4 The Grinder Architecture... 3 5 Console...3 6 Statistics, Reports, Charts...4 7 Script... 4 8 The Grinder Plug-ins...
Modern Web Development From Angle Brackets to Web Sockets
Modern Web Development From Angle Brackets to Web Sockets Pete Snyder Outline (or, what am i going to be going on about ) 1.What is the Web? 2.Why the web matters 3.What s unique about
Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture
Introduction to CORBA 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture 1. Introduction CORBA is defined by the OMG The OMG: -Founded in 1989 by eight companies as a non-profit
T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm
T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm Based on slides by Sasu Tarkoma and Pekka Nikander 1 of 20 Contents Short review of XML & related specs
Web services (WS) Outline. Intro on Middleware SOAP, HTTP binding WSDL UDDI Development tools References
Web services (WS) Outline Intro on Middleware SOAP, HTTP binding WSDL UDDI Development tools References 2 Programming Trends Programming languages and software system evolve towards: higher levels of abstraction
CORBA Objects in Python
CORBA Objects in Python Jason Tackaberry ([email protected]) April, 2000 Algoma University College Supervised by George Townsend Table of Contents 1. Introduction...1 1.1. Trends in Distributed Objects...1
What is Distributed Annotation System?
Contents ISiLS Lecture 12 short introduction to data integration F.J. Verbeek Genome browsers Solutions for integration CORBA SOAP DAS Ontology mapping 2 nd lecture BioASP roadshow 1 2 Human Genome Browsers
Web Services Advanced Topics
Web Services Advanced Topics Where things are now and where they are going Version 9 Web Services Advanced Topics WSAdvanced-2 Enterprise Web Services Industry trends and organizations Security and Reliability
Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component
Limitations of Object-Based Middleware Object-Oriented programming is a standardised technique, but Lack of defined interfaces between objects It is hard to specify dependencies between objects Internal
Introduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized
4. Concepts and Technologies for B2C, B2E, and B2B Transaction
4. Concepts and Technologies for B2C, B2E, and B2B Transaction 4.4 Exchanging Information within Open Business Communities 4.4.1 Pre-Internet B2B standards: EDI, Interactive EDI, Universal EDI, OpenEDI
Web services can convert your existing applications into web applications.
i About the Tutorial Web services are open standard (XML, SOAP, HTTP, etc.) based web applications that interact with other web applications for the purpose of exchanging data Web services can convert
Internationalization and Web Services
Internationalization and Web Services 25 th Internationalization and Unicode Conference Presented by Addison P. Phillips Director, Globalization Architecture webmethods, Inc. 25 th Internationalization
VoIP LAB. 陳 懷 恩 博 士 助 理 教 授 兼 所 長 國 立 宜 蘭 大 學 資 訊 工 程 研 究 所 Email: [email protected] TEL: 03-9357400 # 255
SIP Traversal over NAT 陳 懷 恩 博 士 助 理 教 授 兼 所 長 國 立 宜 蘭 大 學 資 訊 工 程 研 究 所 Email: [email protected] TEL: 03-9357400 # 255 Outline Introduction to SIP and NAT NAT Problem Definition NAT Solutions on NTP VoIP
Event-based middleware services
3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events
ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:
Java WebService BENEFITS OF ATTENDANCE: PREREQUISITES: Upon completion of this course, students will be able to: Describe the interoperable web services architecture, including the roles of SOAP and WSDL.
REST web services. Representational State Transfer Author: Nemanja Kojic
REST web services Representational State Transfer Author: Nemanja Kojic What is REST? Representational State Transfer (ReST) Relies on stateless, client-server, cacheable communication protocol It is NOT
Introduction to Distributed Computing using CORBA
Introduction to Distributed Computing using CORBA Rushikesh K. Joshi Dept of Computer Science & Engineering Indian Institute of Technology, Bombay Powai, Mumbai - 400 076, India. Email: [email protected]
3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young
3F6 - Software Engineering and Design Handout 10 Distributed Systems I With Markup Steve Young Contents 1. Distributed systems 2. Client-server architecture 3. CORBA 4. Interface Definition Language (IDL)
What is COM/DCOM. Distributed Object Systems 4 COM/DCOM. COM vs Corba 1. COM vs. Corba 2. Multiple inheritance vs multiple interfaces
Distributed Object Systems 4 COM/DCOM Piet van Oostrum Sept 18, 2008 What is COM/DCOM Component Object Model Components (distributed objects) à la Microsoft Mainly on Windows platforms Is used in large
How To Create A C++ Web Service
A Guide to Creating C++ Web Services WHITE PAPER Abstract This whitepaper provides an introduction to creating C++ Web services and focuses on:» Challenges involved in integrating C++ applications with
Java Web Services Training
Java Web Services Training Duration: 5 days Class Overview A comprehensive look at the state of the art in developing interoperable web services on the Java EE 6 platform. Students learn the key standards
MIDDLEWARE 1. Figure 1: Middleware Layer in Context
MIDDLEWARE 1 David E. Bakken 2 Washington State University Middleware is a class of software technologies designed to help manage the complexity and heterogeneity inherent in distributed systems. It is
C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.
Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object
Virtual Credit Card Processing System
The ITB Journal Volume 3 Issue 2 Article 2 2002 Virtual Credit Card Processing System Geraldine Gray Karen Church Tony Ayres Follow this and additional works at: http://arrow.dit.ie/itbj Part of the E-Commerce
Accessing Data with ADOBE FLEX 4.6
Accessing Data with ADOBE FLEX 4.6 Legal notices Legal notices For legal notices, see http://help.adobe.com/en_us/legalnotices/index.html. iii Contents Chapter 1: Accessing data services overview Data
Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies
Szolgáltatásorientált rendszerintegráció Comparison of component technologies Simon Balázs, BME IIT Outline Definitions Component technologies RPC, RMI, CORBA, COM+,.NET, Java, OSGi, EJB, SOAP web services,
What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
What is Middleware? Application Application Middleware Middleware Operating System Operating System Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
Developing Java Web Services
Page 1 of 5 Developing Java Web Services Hands On 35 Hours Online 5 Days In-Classroom A comprehensive look at the state of the art in developing interoperable web services on the Java EE platform. Students
Service-Oriented Architecture and Software Engineering
-Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based
Message Containers and API Framework
Message Containers and API Framework Notices Copyright 2009-2010 Motion Picture Laboratories, Inc. This work is licensed under the Creative Commons Attribution-No Derivative Works 3.0 United States License.
pyownet Documentation
pyownet Documentation Release 0.10.0 Stefano Miccoli March 30, 2016 Contents 1 Contents 3 1.1 Introduction............................................. 3 1.2 Installation..............................................
Chapter 7, System Design Architecture Organization. Construction. Software
Chapter 7, System Design Architecture Organization Object-Oriented Software Construction Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) Overview Where are we right
Writing Grid Service Using GT3 Core. Dec, 2003. Abstract
Writing Grid Service Using GT3 Core Dec, 2003 Long Wang [email protected] Department of Electrical & Computer Engineering The University of Texas at Austin James C. Browne [email protected] Department
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
Alternatives to SNMP and Challenges in Management Protocols. Communication Systems Seminar Talk 10 Francesco Luminati
Alternatives to SNMP and Challenges in Management Protocols Communication Systems Seminar Talk 10 Francesco Luminati Introduction Structure Network management Management approaches SNMP Alternatives: NetConf
Chapter 2: Remote Procedure Call (RPC)
Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC
Mixing Python and Java How Python and Java can communicate and work together
Mixing Python and Java How Python and Java can communicate and work together EuroPython 2009 (June 30th 2009, Birmingham) Andreas Schreiber German Aerospace Center (DLR), Cologne,
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords Author: Paul Seymer CMSC498a Contents 1 Background... 2 1.1 HTTP 1.0/1.1... 2 1.2 Password
Using web service technologies for incremental, real-time data transfers from EDC to SAS
Paper AD08 Using web service technologies for incremental, real-time data transfers from EDC to SAS Andrew Newbigging, Medidata Solutions Worldwide, London, UK ABSTRACT Data collected in EDC systems is
Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON
Revista Informatica Economică, nr. 4 (44)/2007 45 Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON Iulian ILIE-NEMEDI, Bucharest, Romania, [email protected] Writing a custom web
Integration of Nagios monitoring tools with IBM's solutions
Integration of Nagios monitoring tools with IBM's solutions Wojciech Kocjan IBM Corporation [email protected] 1 Agenda Introduction Integration bottlenecks Why open standards? CIM and WBEM Open
socketio Documentation
socketio Documentation Release 0.1 Miguel Grinberg January 17, 2016 Contents 1 What is Socket.IO? 3 2 Getting Started 5 3 Rooms 7 4 Responses 9 5 Callbacks 11 6 Namespaces 13 7 Using a Message Queue 15
CORBA. BY VIRAJ N BHAT www.caip.rutgers.edu/~virajb
CORBA BY VIRAJ N BHAT www.caip.rutgers.edu/~virajb Topics to be covered Remote Procedure Calls. Conceptual overview of CORBA CORBA IDL Understanding the Broker-OA and BOA Interoperability Applications
SOA Myth or Reality??
IBM TRAINING S04 SOA Myth or Reality Jaqui Lynch IBM Corporation 2007 SOA Myth or Reality?? Jaqui Lynch Mainline Information Systems Email [email protected] Session S04 http://www.circle4.com/papers/s04soa.pdf
The HTTP Plug-in. Table of contents
Table of contents 1 What's it for?... 2 2 Controlling the HTTPPlugin... 2 2.1 Levels of Control... 2 2.2 Importing the HTTPPluginControl...3 2.3 Setting HTTPClient Authorization Module... 3 2.4 Setting
File Transfer Service (Batch SOAP) User Guide. A Guide to Submitting batches through emedny FTS
File Transfer Service (Batch SOAP) User Guide A Guide to Submitting batches through emedny FTS June 1, 2013 TABLE OF CONTENTS TABLE OF CONTENTS 1 Introduction... 4 2 Requirements... 5 2.1 Exchange mailboxes...
Web Services Technologies
Web Services Technologies XML and SOAP WSDL and UDDI Version 16 1 Web Services Technologies WSTech-2 A collection of XML technology standards that work together to provide Web Services capabilities We
COMPARISON OF SOAP BASED TECHNOLOGIES:.NET REMOTING AND ASP.NET WEB SERVICES
JOURNAL OF AERONAUTICS AND SPACE TECHNOLOGIES JULY 2006 VOLUME 2 NUMBER 4 (23-28) COMPARISON OF SOAP BASED TECHNOLOGIES:.NET REMOTING AND ASP.NET WEB SERVICES Güray Turkish Air Force Academy Computer Engineering
Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure
University of California at Berkeley School of Information Management and Systems Information Systems 206 Distributed Computing Applications and Infrastructure Layering a computing infrastructure Middleware
Software Development around a Millisecond
Introduction Software Development around a Millisecond Geoffrey Fox In this column we consider software development methodologies with some emphasis on those relevant for large scale scientific computing.
000-284. Easy CramBible Lab DEMO ONLY VERSION 000-284. Test284,IBM WbS.DataPower SOA Appliances, Firmware V3.6.0
Easy CramBible Lab 000-284 Test284,IBM WbS.DataPower SOA Appliances, Firmware V3.6.0 ** Single-user License ** This copy can be only used by yourself for educational purposes Web: http://www.crambible.com/
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
A Java proxy for MS SQL Server Reporting Services
1 of 5 1/10/2005 9:37 PM Advertisement: Support JavaWorld, click here! January 2005 HOME FEATURED TUTORIALS COLUMNS NEWS & REVIEWS FORUM JW RESOURCES ABOUT JW A Java proxy for MS SQL Server Reporting Services
Introduction to the. Barracuda Embedded Web-Server
Introduction to the Barracuda Embedded Web-Server This paper covers fundamental concepts of HTTP and how the Barracuda Embedded Web Server can be used in an embedded device. Introduction to HTTP Using
Research on the Model of Enterprise Application Integration with Web Services
Research on the Model of Enterprise Integration with Web Services XIN JIN School of Information, Central University of Finance& Economics, Beijing, 100081 China Abstract: - In order to improve business
Using Open Source Software for SOA
Using Open Source Software for SOA Adrian Trenaman, Principal Consultant, IONA Technologies. [email protected] Open source software for SOA IONA Technologies 2005 1 Introduction This presentation
JVA-561. Developing SOAP Web Services in Java
JVA-561. Developing SOAP Web Services in Java Version 2.2 A comprehensive look at the state of the art in developing interoperable web services on the Java EE 6 platform. Students learn the key standards
Cloud Computing & Service Oriented Architecture An Overview
Cloud Computing & Service Oriented Architecture An Overview Sumantra Sarkar Georgia State University Robinson College of Business November 29 & 30, 2010 MBA 8125 Fall 2010 Agenda Cloud Computing Definition
-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6<6725$*
-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6
Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models
Table of Contents J2EE Technology Application Servers... 1 ArchitecturalOverview...2 Server Process Interactions... 4 JDBC Support and Connection Pooling... 4 CMPSupport...5 JMSSupport...6 CORBA ORB Support...
