Distributed Architecture Philosophy Why asynchronous messaging?

Slides:



Advertisements
Similar presentations
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Advertisements

Database Architectures and the Web
Service Oriented Architecture Terry Woods Session 50.
Chapter 3 Database Architectures and the Web Pearson Education © 2009.
Technical Track Session Service-Oriented Architecture Terry Woods.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
PZ13B Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ13B - Client server computing Programming Language.
Technical Architectures
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
Apache Axis: A Set of Java Tools for SOAP Web Services.
Tutorials 1 1.What is the definition of a distributed system? 1.A distributed system is a collection of independent computers that appears to its users.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
SOA, EDA, ECM and more Discover a pragmatic architecture for an intelligent enterprise, to maximize impact on the business Patrice Bertrand Software Architect.
.NET Mobile Application Development Remote Procedure Call.
Enterprise Resource Planning
Chapter 3 Database Architectures and the Web Pearson Education © 2009.
SOA, BPM, BPEL, jBPM.
The Design Discipline.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
Database Architectures and the Web Session 5
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Introduction to distributed systems Dr. S. Indran 23 January 2004.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
9/5/2012ISC329 Isabelle Bichindaritz1 Web Database Environment.
FIORANO FOR SAAS.  Fiorano addresses the need for integration technology that bridge the gap between SaaS providers and Consumers.  Fiorano enables.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Lecture 15 Introduction to Web Services Web Service Applications.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Asynchronous Communication Between Components Presented By: Sachin Singh.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: JMS.
AUTHORS: MIKE P. PAPAZOGLOU WILLEM-JAN VAN DEN HEUVEL PRESENTED BY: MARGARETA VAMOS Service oriented architectures: approaches, technologies and research.
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
Core Indigo Patterns Ted Neward
Kuali Rice Evolving the Technology Framework for Kuali Applications Brian McGough (Indiana University) Aaron Godert (Cornell University) Warner Onstine.
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Standards for Technology in Automotive Retail STAR Update Michelle Vidanes STAR XML Data Architect April 30 th, 2008.
Enterprise Integration Patterns CS3300 Fall 2015.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
REST By: Vishwanath Vineet.
Chapter 6: Using Middleware Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt October 20, 2008.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
JDBC Chapter 1 JDBC Introduction
1 SERVICE ORIENTED ARCHITECTURE ANTHONY GACHANGO D61/70547/2008 DIS 601.
Basics of SOA Testing Assurance Services Unit 24 February 2016.
SOA & Event Driven Architecture Steve Else, Ph.D., Certified Enterprise Architect, SOA COP Srinidhi Boray, Certified Enterprise Architect, Ingine, Inc.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
Protocol Architectures. Simple Protocol Architecture Not an actual architecture, but a model for how they work Similar to “pseudocode,” used for teaching.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Database Architectures and the Web
WEB SERVICES.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Database Architectures and the Web
#01 Client/Server Computing
Enterprise Application Architecture
Inventory of Distributed Computing Concepts and Web services
Inventory of Distributed Computing Concepts
Service Oriented Architecture (SOA)
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Strategic Sponsors Sponsors and Partners Gold Sponsors Silver Sponsors.
Inventory of Distributed Computing Concepts
#01 Client/Server Computing
Presentation transcript:

Distributed Architecture Philosophy Why asynchronous messaging?

As selected from the ten fallacies of enterprise computing:  The network is reliable  Latency is zero  Topology doesn’t change  The network is homogeneous  The system is finished From Ted Neward’s book: Effective Enterprise Java

Ted Neward’s Item 19:  Prefer data-driven communication over behavior-driven communication  This means is better to interact remotely by sending documents (data-driven) than it is to invoke methods (behavior-driven) remotely on a distributed object  Ted listed three primary reasons to prefer data-driven to behavior-driven – I’ve added several more…

Ted’s three reasons:  Evolution  distributed object interfaces are brittle because interface consuming code becomes very intimately intertwined with the details of the remote interface (i.e., very high coupling)  the two (interface provider and interface consumer) must carefully be evolved in lock step  XML documents in practice are easier to evolve so as to not break existing deployed code  whereas trying to manage versions of component interfaces over time can become intractable  Intermediaries  filtering, routing, bridging, transformation, processing hook points, etc., can be transparently interposed in the middle  Recoverable operations  easier to build auditing systems  reliable queued backing of messaging makes it easier to build multi- resource transactional systems that support roll-back

My additional reasons:  Less network chattiness  Ted Neward’s Item 18 – Prefer context-complete communication styles  sending context-complete documents evokes less chattiness than calling various methods on a remote interface (unfettered OOP design becomes a definite detriment here)  Non-programmer business analyst can understand XML documents and messaging  web services and other various distributed object RPC are for geeks only (and even they struggle with the complex ws* stack)  OOP approach offers no advantage across distributed computing boundaries  OOP is good for internal app design but offers no value to distributed systems

Still more reasons:  Publish/subscriber pattern is easy to implement with messaging approach  Messaging is symmetrically bi-directional  Event-driven distributed systems are thus readily possible  Messaging is loosely coupled  With RPC, every direct end-point to end-point coupling in the system introduces fragility/brittleness in the overall system topology design  It pays to be oblivious as to who is getting your messages and what they’re doing with them

Ted Neward’s Item 20:  Avoid waiting for remote service request to respond  Learn to build distributed components that behave asynchronously when interacting with the network  My embellishments:  Use a design that separates and centralizes the concern of communication layer exception handling from business logic processing (i.e., remote interface methods that throw RPC i/o related exceptions are bad and to be avoided)  Asynchronous RPC by itself can be semantically dangerous – prefer asynchronous queued messaging instead

Author: Roger Voss August 14, 2006