Software Engineering and Architecture

Slides:



Advertisements
Similar presentations
Siebel Web Services Siebel Web Services March, From
Advertisements

Overview of Web Services
Tuesday, June 10, 2003 Web Services Brief Overview & Security Assertion Coordinator Pattern by Mohammad Abushadi & Riaz Ahmed for Security Group CSE -
Presentation 7 part 2: SOAP & WSDL.
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
General introduction to Web services and an implementation example
1 Understanding Web Services Presented By: Woodas Lai.
RPC Robert Grimm New York University Remote Procedure Calls.
Topics Acronyms in Action SOAP 6 November 2008 CIS 340.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
SOAP, WSDL & introduction to UDDI
.NET Remoting. .Net Remoting Replaces DCOM (Distributed Component Object Model – a proprietary Microsoft technology for communication among software components.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
1 Advanced Programming Topics - II Objectives:  Background  Remoting  Types of remoting  Marshalling  Farmatters  Channels.
Comparison of the RMI and the socket APIs
1 HyCon Framework Overview Frank Allan Hansen and Bent Guldbjerg Christensen ! Run this presentation in presentation mode to watch animations.
CSE 636 Data Integration Web Services.
Practical Issues of RPCCS-4513, D-Term Remote Procedure Call Practical Issues CS-4513 Distributed Computing Systems (Slides include materials from.
Web Services CS Web Services Internet-available services using XML messaging, for computer-computer interaction Not tied to any OS or language Self-describing:
Web Service What exactly are Web Services? To put it quite simply, they are yet another distributed computing technology (like CORBA, RMI, EJB, etc.).
Web Service Implementation Maitreya, Kishore, Jeff.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
Web Services Overview Ashraf Memon. 2 Overview Service Oriented Architecture Web service overview Benefits of Web services Core technologies: XML, SOAP,
1 G52IWS: Distributed Computing Chris Greenhalgh.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
CSC8530 Distributed Systems XML Web Services David Vaglia.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
Copyright © 2013 Curt Hill SOAP Protocol for exchanging data and Enabling Web Services.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
Kemal Baykal Rasim Ismayilov
Advanced Web Technologies Lecture #4 By: Faraz Ahmed.
Web Services An Introduction Copyright © Curt Hill.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
INFSO-RI Enabling Grids for E-sciencE Web Services Mike Mineter National e-Science Centre, Edinburgh.
EGEE is a project funded by the European Union under contract IST Introduction to Web Services 3 – 4 June
Web Services. Web Service: Simple definition : “ Service Offered On the Web “ Technically : “ A Web Service is a programmable application component that.
Software Architecture in Practice Service-Oriented Architectures Web Services and ReST Thanks to Klaus Marius Hansen for ontology figures…
Java Web Services Orca Knowledge Center – Web Service key concepts.
Introduction to Web Services
Sabri Kızanlık Ural Emekçi
WEB SERVICES.
Writing simple Java Web Services using Eclipse
Outline SOAP and Web Services in relation to Distributed Objects
Java RMI CS-328 Internet Programming.
CORBA Alegria Baquero.
What is RMI? Remote Method Invocation
Outline SOAP and Web Services in relation to Distributed Objects
Overview of Web Services
Implementing a service-oriented architecture using SOAP
WEB API.
Inventory of Distributed Computing Concepts and Web services
CORBA Alegria Baquero.
The future of distributed systems architecture
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
WebServices Using JAX-RPC
Distributed System using Web Services
Distributed System using Web Services
Software Engineering and Architecture
Software Engineering and Architecture
Software Engineering and Architecture
Chengyu Sun California State University, Los Angeles
Presentation transcript:

Software Engineering and Architecture Broker IPC over HTTP

Henrik Bærbak Christensen History In the 1990, there was a lot of hype about building distributed systems in the OO paradigm / Broker based CORBA Version 1 - 1991 Microsoft DCOM About the same time  .Net remoting / Java RMI Struggled with firewalls, security issues, architectural mismatch AU CS Henrik Bærbak Christensen

Henrik Bærbak Christensen Broker again CORBA/DCom are Broker implementations IPC Transport bytes TCP-IP based, IIOP protocol (Corba) Marshalling Encode msg IIOP Proxy and Servant Programming IDL compiler, generates ”stub” (proxy) and ”skeleton” (invoker + superclass for servant) Name Services Find object Naming Service (Corba) RMIRegistry (Java) All these mentioned are CORBA’s CS@AU Henrik Bærbak Christensen

Then Came WWW! Web was built for humans to browse web pages But it is a strong infrastructure in its own right Network of named computers URL Well defined protocol HTTP over TPC-IP, … and XML Strong infrastructure support Apache Tomcat, Microsoft IIS, IBM WebSphere, Eclipse Jetty, Java Servlets, … ”Name Service” IPC Marshalling Reliability Learnability CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Many of the pieces WWW as foundation for a Broker? IPC Transport bytes TCP-IP connected machines talking HTTP Marshalling Encode msg XML in HTTP messages Proxy and Servant Programming Missing – not the intent of WWW Location and Naming Find object URLS CS@AU Henrik Bærbak Christensen

The missing piece What to do with no programming / domain layer? Option 1: Program without it Implement ‘doGet’ and ‘doPost’ (servlets), demarshall XML Implement HTTP requests (client), marshall XML Option 2: Make a Broker on top of www Simple Object Access Protocol / SOAP Or FRDS’s URI Tunneling Broker Option 3: Do something completely different  REST… Tedios, error prone, low level Reuse, but... CS@AU Henrik Bærbak Christensen

Simple Object Access Protocol (Simple???) WebServices: SOAP Simple Object Access Protocol (Simple???)

Henrik Bærbak Christensen Broker The Broker implementations IPC Transport bytes TCP-IP based, HTTP protocol Marshalling Encode msg SOAP – on the wire XML format Proxy and Servant Programming WSDL = Web Service Description Language (XML) Location and Naming Find object UDDI = Universal Description, Discovery and Integration CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen The three layers WSDL URLs + SOAP HTTP CS@AU Henrik Bærbak Christensen

Example: TeleMed in SOAP Learning Goal: Produce WSDL for TeleMed I… Browsed heavily to find Eclipse tutorials http://www.vogella.com/tutorials/EclipseWTP/article.html http://www.java2blog.com/2013/03/soap-web-service-example-in-java-using.html Copy-n-Pasted TeleMed interface + few Domain classes into project on a VM (avoid polluting my machine’s IDE) Nullified actual implementations No business functionality, not the architectural question CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen WSDL Operations Data types Binding CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Another example IHE XDSb Repository WSDL CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Why not? Basically WSDL+SOAP+UDDI is the Broker which simply use WWW and HTTP as raw IPC Aka URI Tunneling Avoid the firewall and security issues though But it is heavyweight Tool intensive to make even simple service Bulky message format, low analyzability Does not utilize HTTP’s built-in potential at all, it is just a way to punch through firewalls… CS@AU Henrik Bærbak Christensen

Richardson’s Maturity model From low maturity to high maturity URI Tunnel Just use HTTP as IPC layer SOAP, WSDL, WebServices And our URI Tunnel Broker! HTTP Use CRUD Verbs on resources Hypermedia Use links to define workflows Aka ‘HATEOAS’ Hypermedia HTTP URI Tunnel CS@AU Henrik Bærbak Christensen

FRDS.Broker using HTTP

New Delegates in Broker Easy – Just replace the RequestHandlers with HTTP delegates UniRest SparkJava CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen POST Command Objects All TeleMed method calls are considered command objects that the ClientRequestHandler POST to one particular resource on the HTTP Server POST /tunnel Body: RequestObject AU CS Henrik Bærbak Christensen

Henrik Bærbak Christensen CRH CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen And SRH CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Discussion All methods are translated to POST on a single path /tunnel You can set another path in the Broker, but still That is, the Broker do not use HTTP verbs at all Resources/paths (But it does use the HTTP Status codes) SOAP does the same thing. Hypermedia HTTP URI Tunnel AU CS Henrik Bærbak Christensen

Henrik Bærbak Christensen Discussion Actually the URI Tunnel code is quite a lot smaller than our socket code And it is also multi-threaded, as SparkJava is based on Jetty which has a multi-threaded implementation… Again, reusing well engineered frameworks saves time, money, and agony  CS@AU Henrik Bærbak Christensen