1 G52IWS: Distributed Computing Chris Greenhalgh.

of 24 /24
1 G52IWS: Distributed Computing Chris Greenhalgh

Embed Size (px)

Transcript of 1 G52IWS: Distributed Computing Chris Greenhalgh.

  • G52IWS: Distributed ComputingChris Greenhalgh

  • ContentsDistributed ComputingPre-WS Distributed Computing PlatformsCORBAJava RMIMessage-Oriented MiddlewareCommon Challenges & relation to Web ServicesSupporting protocolsHTTPDNSTCPSee Developing Java Web Services chapter 1See W3C HTTP specifications; see IETF DNS RFCs; See G51WPS notes

  • Distributed ComputingApplicationInternetObjectTCP/IPObjectTCP/IPObjectTCP/IPAfter Developing Java Web Services figure 1.1Objects / services / servers / ports

  • The Importance of Distributed ComputingHigher performance though concurrencyCollaboration between multiple applicationsHigher reliability and availability with replicated servicesScalability through replicationExtensibility through dynamic (re)configurationHigher productivity, shorter development cycles and reduced cost through decomposition & re-use

  • Client-Server ApplicationsServer(e.g. database)ApplicationTCP/IPAfter Developing Java Web Services figure 1.2ApplicationTCP/IPApplicationTCP/IPClients

  • Client-Server1 simple model or building block of distributed computingSingle server exposes common facilities to multiple clientsEach client make explicit requests to the server(s) according the clients requirements/logic2 minimal (two tier) approach to distributed application developmentComplex client with extensive business logic intermingled with presentation & user interactionSimple server (e.g. database) for coordination/persistence (singular server?!)

  • Common Object Request Broker Architecture (CORBA)CORBA Object Request Broker (ORB)Client StubsServer SkeletonsClientsServer objectsCC++JavaCC++JavaIDLIDLIDLAfter Programming Java Web Services figure 1.3Networking

  • CORBA FeaturesOpen standard from the Object Management Group (OMG)OS, programming language and platform independent interfaces defined in CORBA IDL (Interface Definition Language)Rich set of services and featurese.g. lifecycle, events, naming, transactions, securityLocation transparency through location-independent object references

  • CORBA features cont.Network transparency using the IIOP (Internet Inter-ORB Protocol)Remote callback support with asynchronous messagesDynamic invocation interface for run-time interface discovery

  • CORBA issuesHigh initial investment in training, application porting etc.Availability of CORBA services still limited in most implementationsScalability may be limited due to tightly coupled distributed object model (e.g. Direct object invocations)

  • Java Remote Method InvocationJava clientRMI StubsJava RMIServerRMISkeletonRemote Ref. LayerRemote Ref. LayerJRMPAfter Developing Java Web Services figure 1.4

  • Java RMI FeaturesDeveloped by Sun MicrosystemsAllows distributed Java application development with invocation of methods on remote Java objectsi.e. Java objects in other Java Virtual Machines (VMs)Exploits Java Serialization and Java Remote Method Protocol (JRMP)Stub intercepts the client request and passes over RMI/JMRP to server skeleton and hence to server object

  • Java RMI Features cont.Includes a simple registry for non-persistent naming/lookup of remote servicesInteroperates with CORBA using RMI-IIOP (RMI over IIOP) as an alternative to JRMP

  • Java RMI IssuesLimited to the Java Platform (excepting bridging to CORBA/RMI-IIOP)Tend to be tightly coupled via remote object referencesNo specific session management support Each Remote Method Invocation is handled independently

  • Message-Oriented Middleware (MOM)Application APersistenceAdapter APIApplication BMOMinfrastructureAdapter APIAfter Developing Java Web Services figure 1.6Messages sent & received (& transactions contexts)

  • MOM FeaturesLoosely coupled asynchronous communication based on messagesMessages typically sent via queues MOM infrastructure supports reliable delivery, transactions, security.Often used for Enterprise Application IntegrationVarious technology options, including OBM MQSeries, TIBCO, SunONE Message Queue, Java Message Service (JMS) API

  • MOM IssuesAPIs are often proprietary and language-specificMessage formats are often proprietaryMOM infrastructure is often designed to be managed by a single organisation/entity

  • Common Challenges in Distributed ComputingMaintenance of client/server stubs in heterogeneous environmentsQuality of Service goals such as scalability, performance & availability take a lot of workInteroperability between different protocols is almost impossible (e.g. RMI to DCOM)Led to disjoint communities with little/no interoperabilityTypically work well with a local network: not firewall friendly, or easy to access over the Internet

  • Relation to Web ServicesSimilar concerns distributed applicationsGrowing emphasis on composition and re-useGrowing emphasis on platform-neutral and inter-organisational distributionIncreasingly sophisticated architectural & interactional modelsMulti-tier designs within and across organisationsDistributed messaging and complex choreography as well as client-server approaches

  • Supporting standardsHTTPDNSTCP/IP

  • HTTPSimple text-based request/response protocol over TCP/IPMain request types: POST, GETEnd-point identified by http: URLHostOptional non-default port (default 80)PathOptional fragment reference and argumentsSee G51WPS notes on HTTP

  • DNSSimple binary request/response over UDPRequest: asks questions about a domain namee.g. What is the IP address of www.nottingham.ac.ukResponse: returns known information and/or refers request to another DNS server which is more likely to knowUsed for host part of HTTP URLs to identify server IP addressSee G51WPS notes on TCP/IP

  • TCP/IPThe Internet Protocol suiteAn open standard of the Internet Engineering Task Force (IETF).Includes IP host-to-host delivery, globallyUDP unreliable datagram delivery serviceTCP reliable byte stream delivery service to a particular host (IP address) and TCP portICMP control and management messagesSee G51WPS notes on TCP/IP

  • SummaryIts still distributed computingWith added:Inter-organisational emphasisInteroperabilityPlatform/language neutralityBusiness requirementsXML

    G52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: BackgroundG52IWS: Background