CSE 425 Network Programming Lecture 3: Distributed application architecture

Fall - 2013 Hasan Mahmud

Contents • Distributed applications • Architectures of Distributed Applications – 2-Tier Client-Server Architecture • Problem of 2-Tier architecture

– 3-Tier Architecture • 3-Tier Architecture Benefits • 3-Tier and Skills Partitioning

– Peer-to-Peer Computing

• • • • •

General Design Issues of Distributed Applications Basic communication mechanisms A Distributed Component Architecture SOA: Service-Oriented Architecture Essential Networking Technologies in Java CSE 425 | Network programming | Fall - 2013

2

Distributed applications • Motivation – Data, computers and resources, users (clients) are geographically distributed – Improve performance or/and scalability or/and robustness via distributed execution

• Distributed applications on a network of computers (Internet) – Print servers, distributed file systems (DFS), DNS, rlogin; – WWW: web servers and browsers, ftp and mail servers, ftp and mail clients, instance messaging, games, content delivery, webservices, etc. – Financial and commercial applications: E-commerce, banking (OLTP), multimedia, – Remote control and monitoring of networked devices – Scientific and engineering computing CSE 425 | Network programming | Fall - 2013

3

Architectures of Distributed Applications • Two-tier architecture (a.k.a. client-server arch.) – Clients (with UI, GUI) – Servers

• Three-tier architecture – Clients (with UI, GUI) – in the 1st tier – Business logic – in 2nd tier – System services (databases) – in the 3rd tier

• Peer-to-peer architecture – All equal – On structured or unstructured overlay networks

• Service-Oriented Architecture (SOA) – Builds on web-services with well defined interfaces, which can be described, deployed, discovered, bound, composed, invoked – Based on WS technologies and standards CSE 425 | Network programming | Fall - 2013

4

2-Tier Client-Server Architecture • The most commonly used model for distributed applications – Can be applied for a particular request-response interaction

• The client is the entity (process) accessing the remote resource and the server provides access to the resource. • Request / response protocols

CSE 425 | Network programming | Fall - 2013

5

Problem of 2-Tier architecture • Portability – No control over the client operating system and hardware. – Challenging to upload anything to the client if it does not accept.

• Efficiency – A “fat” client may require too much resources on a client machine • Also slow to download (applets)

– Direct SQL access can generate lots of network requests

• Security – the most important – DBAs do not accept the risks of putting the database on the Internet – Internet security should be at the service level, not at the data level

CSE 425 | Network programming | Fall - 2013

6

3-Tier Architecture • User-Interface Tier – The layer of user interaction. – A “thin” client of the business logic servers

• Business Logic Middle-Tier – The business logic layer. It is made up of business objects: inventory control, budget, transaction monitors, ORBs, authentication, etc.

• System Service Tier (e.g. persistent storage) – Objects that encapsulate database routines and interact with DBMS.

CSE 425 | Network programming | Fall - 2013

7

3-Tier Architecture Benefits • Improved performance – Use faster protocols than http or ODBC – Download the GUI (thin client), but leave the rest of the logic on the server or in the middle-tier

• Manage security – The middle-tier are not restricted by applet security rules – The middle-tier can control user authentication, access to resources in the third tier

• Manage user application context – The server can remember user data – The user can access his context from any Web client CSE 425 | Network programming | Fall - 2013

8

3-Tier and Skills Partitioning

CSE 425 | Network programming | Fall - 2013

9

3-Tier Architecture

CSE 425 | Network programming | Fall - 2013

10

Peer-to-Peer Computing •

An application runs on an overlay network – All peers are equal in terms of responsibility, capabilities and functionality (a set of algorithms)



An overlay network is a “virtual” network of nodes created on top of an existing network, e.g. the Internet. – – – – – –



Each node has an ID knows neighbors does not know the global topology communicates as a source and a destination, and also serves as a router in sending data Can provides a Distributed Hash-Table (DHT) functionality

Structured overlay (P2P) networks – peers (and, sometimes, resources) are organized following specific criteria and algorithms, which lead to overlays with specific topologies and properties.



Unstructured overlay networks – do not provide any algorithm for organization or optimization of network connections. – if a peer wants to find a desired piece of data in the network, the query has to be flooded through the network to find as many peers as possible that share the data. – Gnutella CSE 425 | Network programming | Fall - 2013

11

General Design Issues of Distributed Applications

• Quality: – Functional requirements – Non-functional requirements: • • • •

Performance: short response time (or high throughput) Scalability High availability and dependability (trustworthiness) Others

CSE 425 | Network programming | Fall - 2013

12

General Design Issues (cont’d) • Major problem: Communication latency – Affects response time – Issues at client side: • Responsive and informative UI (GUI) • Tolerate long communication latency by caching and/or prefetching and/or multithreading

– Issues at server (and client) side: • Data replication (and caching) • Hide long communication latency by multithreading

• Other problems – Failures – Dynamicity CSE 425 | Network programming | Fall - 2013

13

General Design Issues (cont’d) •

How to achieve good quality? – Balanced distribution of functionality among distributed components – which component does what; loosely coupled – Efficient communication protocols – use less massages – Proper levels of location transparency and location awareness – Data replication and caching – Data replication and caching • Consistency and coherence issues

– Data migration and prefetching – Multithreading, caching and prefetching allow to hide and / or to avoid long communication latencies – Scalability by concurrent execution – multithreading • Servicing of requests in parallel threads • Exploit multicore facilities

– Fault tolerance, failure management CSE 425 | Network programming | Fall - 2013

14

Basic Communication Mechanisms • Message passing over sockets (TCP or UDP) – Application specific request/response protocols

• RPC (Remote Procedure Calls) – RPC – spawn a new process (thread) to handle a request

• RMI (Remote Method Invocation) – The object-oriented analog of RPC in a distributed objectoriented environment – Distributed object architecture

CSE 425 | Network programming | Fall - 2013

15

A Distributed Component Architecture • A middleware that provides ability to built an application of distributed components (objects, web-services), i.e. – To declare, create, name, locate and bind distributed components – To (transparently) invoke methods on the components – To migrate, replicate and keep consistent distributed copies of a component – To manage distributed memory: distributed garbage collection – To automate most of systems functions (deployment, runtime reconfiguration and upgrade, failure management, etc.)

• Defines, specifies and provides services common for most applications, such as naming, deployment, lifetime management, transactions, etc. CSE 425 | Network programming | Fall - 2013

16

SOA: Service-Oriented Architecture • Applications are built of services – Services are built of components – Components are bound – A client interface of a components is bound to a server interface of another component

• Services are loosely-coupled – Expose interfaces – Can be described, discovered, bound, and invoked – Service invocation: • request-response interaction CSE 425 | Network programming | Fall - 2013

17

SOA

CSE 425 | Network programming | Fall - 2013

18

Some Existing Approaches •

CORBA – Common Object Request Broker Architecture from OMG – Heterogeneous – Many implementations exist



.NET (DCOM) – Distributed Component Object Model from Microsoft • Distributed Component Object Model from Microsoft – Homogeneous (“MS-only”)



Java RMI – Homogeneous – Enterprise JavaBeans – A component architecture for building integrated enterprise services based on RMI/IIOP



Web services – SOAP (Simple Object Access Protocol) – a minimal set of conventions and standards for invoking code using XML over HTTP

CSE 425 | Network programming | Fall - 2013

19

Essential Networking Technologies in Java

CSE 425 | Network programming | Fall - 2013

20

CSE 425 Network Programming

Print servers, distributed file systems (DFS), DNS, rlogin;. – WWW: web ... System Service Tier (e.g. persistent storage) .... enterprise services based on RMI/IIOP.

305KB Sizes 0 Downloads 142 Views

Recommend Documents

CSE 425 Network Programming
Remote Method Invocation (RMI), allows one host to run programs on another host that is running a program on a remote host from a local machine. • RMI is a core Java API and class library that allows Java programs running in one Java virtual machin

CSE 4225 Network Programming
Apr 15, 2003 - ... libwww/2.1.4. • Host: www.cafeaulait.org. • \r\n\r\n. Spring'15. CSE 4225 | Network Programming. 11 ... Server: Apache/2.0.40 (Red Hat Linux).

CSE 4225 Network Programming
MarkUp languages – language for describing ... 2 new languages .... PHP. (a) A Web page containing a form. (b) A PHP script for handling the output of the form.

425. Submission_Cenovus.pdf
creates investment certainty;. • gives companies the time and space to innovate;. • incents technological development;. • creates an appropriate carbon price signal; and. • allows Alberta companies to remain competitive in global markets. Pag

Java Network Programming
class ClientTCP { public static void main(String args[]) throws UnknownHostException, IOException {. Socket s=new Socket("www.upv.es",80);. Scanner in=new Scanner(s.getInputStream());. PrintWriter out=new PrintWriter(s.getOutputStream(),true); out.pr

Digest 425.pdf
miRweuli da gadadgmulia princi puli nabijebi. me. joint press statements as part ... 3 U/ID 3228/NKJ. Page 3 of 5. Digest 425.pdf. Digest 425.pdf. Open. Extract.

Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-II.pdf
Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-II.pdf. Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-II.pdf. Open. Extract. Open with. Sign In.

Scheme-SVIIT-CSE-DD_28B.Tech_2BM. Tech_29-CSE-V.pdf
Scheme-SVIIT-CSE-DD_28B.Tech_2BM. Tech_29-CSE-V.pdf. Scheme-SVIIT-CSE-DD_28B.Tech_2BM. Tech_29-CSE-V.pdf. Open. Extract. Open with. Sign In.

Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-VIII.pdf
Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-VIII.pdf. Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-VIII.pdf. Open. Extract. Open with. Sign In.

Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-III.pdf
Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-III.pdf. Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-III.pdf. Open. Extract. Open with. Sign In.

Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-VII.pdf
Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-VII.pdf. Scheme-SVIIT-CSE-DD_28B.Tech_2BMBA_29-CSE-VII.pdf. Open. Extract. Open with. Sign In.

allods hack v 425
... teamspeak 3 icon pack allods-adds ...appsco best iphonecracked apps ... 'n' freeiphoneapp to store businesscards iphoneiphone. bingo bash cydia ... dna points hack android no root. .... online·allots synonyms ·allows synonym·allots. woozworld

MC7404-Network Programming question bank_edited.pdf ...
1. What is meant by Shell in Unix? 2. What is Program and Process in Unix? 3. Give the memory layout of a C program. 4. Explain environment variables in Unix.

Foundations of Python Network Programming, 2nd Edition.pdf ...
Foundations of Python Network Programming, 2nd Edition.pdf. Foundations of Python Network Programming, 2nd Edition.pdf. Open. Extract. Open with. Sign In.

tcl network programming pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. tcl network ...

Advanced Network Programming - Principles and Techniques.pdf ...
Advanced Network Programming - Principles and Techniques.pdf. Advanced Network Programming - Principles and Techniques.pdf. Open. Extract. Open with.

Beej's Guide to Network Programming
Hey! Socket programming got you down? Is this stuff just a little too difficult to figure out from the man pages? You want to do cool Internet programming, but you don't have time to wade through a gob of structs trying to figure out if you have to c

Syllabus-SVIIT-CSE-M.Tech-CSE-I.pdf
Syllabus-SVIIT-CSE-M.Tech-CSE-I.pdf. Syllabus-SVIIT-CSE-M.Tech-CSE-I.pdf. Open. Extract. Open with. Sign In. Main menu.

Parker 425 – Unofficial 3 Laps
Feb 5, 2017 - Jeremiah Watson (32) Apple Valley, CA, ... Alumi Craft Metal Craft Co Inc, Aire Serv of Southern ... Custom. Reid Products Inc, Bf Goodrich, Baja.

Parker 425 – Unofficial 3 Laps
Feb 5, 2017 - Jeremiah Watson (32) Apple Valley, CA, ... Alumi Craft Metal Craft Co Inc, Aire Serv of Southern ... Custom. Reid Products Inc, Bf Goodrich, Baja.

425 -432 Luice Taulu.pdf
yang berasal dari abu vulkan antara lain Andisol, Inceptisol serta Alfisol dan Oxisol (Pasril et al. 1998). Lahan tersebut memiliki tingkat kesuburan tanah yang ...