Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Similar documents
Appendix A - Glossary(of OO software term s)

Application Servers in E-Commerce Applications

Deccansoft Software Services. J2EE Syllabus

Client/Server-Architecture

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

Today: Distributed Objects. Distributed Objects

presentation DAD Distributed Applications Development Cristian Toma

Course Content for Java J2EE

Distributed Middleware. Distributed Objects

(9A05803) WEB SERVICES (ELECTIVE - III)

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

Oracle 10g: Build J2EE Applications

Java Enterprise Edition

CAS 703 Software Design

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Component-Based Software Engineering. ECE493-Topic 5 Winter Lecture 26 Java Enterprise (Part D)

DS 2009: middleware. David Evans

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Electronic Payment Systems (1) E-cash

Advanced Lectures on knowledge Engineering

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

CO Java EE 7: Back-End Server Application Development

index_ qxd 7/18/02 11:48 AM Page 259 Index

Enterprise Web based Software Architecture & Design

Chapter 10 Web-based Information Systems

The Umbilical Cord And Alphabet Soup

Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture

CHAPTER 2. Introduction to Middleware Technologies

Enterprise Software Architecture & Design

Advanced Topics in Operating Systems

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Designing a Distributed System

Advanced Java Programming

Problems in Scaling an Application Client

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

Chapter 4 Communication

BEAWebLogic. Server. Introduction to WebLogic Server and WebLogic Express. Version 8.1 Revised: June 28, 2006 Part Number:

Middleware Mediated Transactions & Conditional Messaging

Communication. Distributed Systems Santa Clara University 2016

Chapter 6 Enterprise Java Beans

Distributed Environments. CORBA, JavaRMI and DCOM

SAI/ST course Distributed Systems

Introduction to componentbased software development

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

Java EE 7: Back-End Server Application Development

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

PLATFORM TECHNOLOGY UNIT-5

Introduction to Web Services & SOA

3C05 - Advanced Software Engineering Thursday, April 29, 2004

Verteilte Systeme (Distributed Systems)

Introduction to Web Services & SOA

Data Management in Application Servers. Dean Jacobs BEA Systems

BEA WebLogic Server. and BEA WebLogic Express. Introduction to BEA WebLogic Server 6.1

DISTRIBUTED COMPUTING

Patterns Architectural Styles Archetypes

Integrating Legacy Assets Using J2EE Web Services

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

CHAPTER - 4 REMOTE COMMUNICATION

BEA WebLogic. Server. Introduction to WebLogic Server and WebLogic Express

1.264 Lecture 16. Legacy Middleware

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

UNIT 4 CORBA 4/2/2013 Middleware 59

Notes General. IS 651: Distributed Systems 1

Data Presentation and Markup Languages

Course title: ADVANCED WEB TECHNOLOGIES AND SERVICES

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

WebSphere 4.0 General Introduction

NetBeans IDE Field Guide

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~

Enterprise JavaBeans. Layer:01. Overview

Chapter 2 Distributed Information Systems Architecture

Enterprise Java Security Fundamentals

Distributed Objects. Object-Oriented Application Development

Chapter 2 Distributed Computing Infrastructure

Middleware definitions and overview

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

REST Easy with Infrared360

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

1Z Oracle. Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

COMMUNICATION PROTOCOLS

5/19/2015. Objectives. JavaScript, Sixth Edition. Introduction to the World Wide Web (cont d.) Introduction to the World Wide Web

Applications MW Technologies Fundamentals. Evolution. Applications MW Technologies Fundamentals. Evolution. Building Blocks. Summary.

Web Services. GC: Web Services-I Rajeev Wankar

JAYARAM. COLLEGE OF ENGINEERING AND TECHNOLOGY Pagalavadi, Tiruchirappalli (An approved by AICTE and Affiliated to Anna University)

Essential Software Architecture

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Connecting ESRI to Anything: EAI Solutions

Enterprise JavaBeans (I) K.P. Chow University of Hong Kong

Ch04 JavaServer Pages (JSP)

Outline. Project Goal. Overview of J2EE. J2EE Architecture. J2EE Container. San H. Aung 26 September, 2003

Lecture 15: Network File Systems

JDBC Today C HAPTER 1 INTRODUCTION

COWLEY COLLEGE & Area Vocational Technical School

K L M N O P Q R S T U V W X Y Z

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Transcription:

Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion Take a bluebook and return it with your discussion answers at the end of class One page for each discussion, please be brief and clear. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th Final slides have 'Spring 2018' in chapter title IS 651: Distributed Systems 1

IS 651: Distributed Systems Chapter 2: The Evolution of Distributed Systems Jianwu Wang Spring 2018

Learning Outcomes After learning chapter 2, you should be able to Understand the different generations of distributed systems and the reason for the evolution Understand new terms from the chapter: middleware, remote procedure call (RPC), message-oriented, Transaction, etc. Write XML documents and validate them using DTD IS 651: Distributed Systems 3

Basic Timeline of Distributed System Evolution IS 651: Distributed Systems 4

Mainframe (1960s) Punch Card A typical mainframe architecture IS 651: Distributed Systems 5

Client/Server (1970s) Minicomputers: smaller computers (not Personal Computer yet) Ethernet: form local-area networking (LAN) X.25: wide-area networking (WAN) service Client server architecture A client is a requestor process and server is a responder process One machine could be both client and server Beginnings of the Internet ARPANET TCP/IP stack IS 651: Distributed Systems 6

2 and 3-tier Systems (1980s) Personal Computer NetWare file servers Network file system (NFS) Remote procedure call (RPC) 3-tier system: with an architectural middle tier, called the application server, and associated middleware Middleware A 2-tier system IS 651: Distributed Systems 7

Middleware Middleware is the software layer that lies between the operating system and the applications on each side of a distributed computer network Middleware offers general services that can be used by many applications Remote procedural call (RPC) Distributed cache Message queue Major types of middleware Remote procedural call middleware Message-oriented middleware IS 651: Distributed Systems 8

Remote Procedure Call (RPC) Middleware The application calls the remote procedure locally at the stub The stub intercepts calls that are for remote servers Marshalling: pack the parameters into a message Make a system call to send the message The RPC Runtime handles message sending The interface definition language (IDL) handles message translation RPC hides heterogeneity among the computers and handles the communication across network IS 651: Distributed Systems 9

Messaging Modes of Communication Synchronous (blocking) RPC protocol is synchronous When a client makes a remote call, the calling process blocks or waits until it gets a reply Asynchronous The calling process just goes back to processing and is interrupted with a callback message when it does get the response Message-oriented protocol supports it communication from client to server (for both synchronous and asynchronous) IS 651: Distributed Systems 10

Distributed File Systems A type of RPC middleware Allows users to mount directories from remote computers into their own local directory, so they appears as local NFS: network file system XDR: external data representation NFS distributed file system protocol stack IS 651: Distributed Systems 11

Transaction Middleware A database RPC middleware uses an explicit 3-tier architecture Transaction processing monitor (TPM) at middleware tier Tier 1 Tier 2 Tier 3 IS 651: Distributed Systems 12

Transactions All the participating operations on (distributed) resources should either succeed or fail and recover together 2-Phase Commit commit-request phase: TPM request all the servers to commit and wait responses commit phase: TPM decides either commit or abort based on responses A transaction is a unit of work with the following ACID properties ATOMICITY: A transaction should be done or undone completely and unambiguously CONSISTENCY: A transaction should transform the system from one consistent state to another consistent state ISOLATION: Each transaction should appear to execute independently of other transactions that may be executing concurrently in the same environment DURABILITY: The effects of a completed transaction should always be persistent IS 651: Distributed Systems 13

Object-Oriented RPC Middleware RPC-based distributed systems based on object-oriented programming principles Two technologies Common Object Request Broker Architecture (CORBA): a standard designed to facilitate the communication of systems that are deployed on diverse platforms Distributed Component Object Model (DCOM): a proprietary Microsoft technology for software distributed across several networked computers to communicate with each other IS 651: Distributed Systems 14

CORBA Skeleton: stub for server object Object request broker (ORB) Mediates a method call from one object to another local/remote object Internet inter-orb protocol (IIOP) Allows ORBs from different vendors to communicate over the Internet The client cannot tell whether the target object it communicates with is local or remote common object request broker architecture (CORBA) IS 651: Distributed Systems 15

Message-Oriented Middleware (MOM) Point-to-point messaging (PTP): 1 to 1 Messages are sent to a queue, rather than directly to the intended receiver Message Queues (MQ). Publish/Subscribe messaging (pub/sub): M to N MOM is based on RPC MOM uses queues to give asynchronous communication from the viewpoint of the sender and receiver IS 651: Distributed Systems 16

Point-to-point Messaging (PTP) Example MQSeries shows how P2P architecture and asynchronous communication are achieved using RPC protocols Message channel agent (MCA): controls message sending and receiving IS 651: Distributed Systems 17

Pub/Sub The Pub/Sub model is an excellent message delivery model appropriate for multiple senders and multiple recipients Each publisher can send out messages for multiple topics Each subscriber can decide which topics he/she is interested IS 651: Distributed Systems 18

Database Access via ODBC It shows a client-side type of middleware Open Database Connectivity (ODBC) A standard programming language middleware API for accessing database management systems The same client application uses the different ODBC drivers to access different types of databases Java Database Connectivity (JDBC): an API for Java IS 651: Distributed Systems 19

N-tier Systems (1990s) N-tier systems are not a different approach than 3-tier systems, they are just an elaboration of the same pattern Web server: serves content to the web using http protocol Application server: hosts and exposes business logic and processes IS 651: Distributed Systems 20

LAMP Web Scripting with N-tier Systems L the operating system. L stands for Linux as the most common one, but any operating system can be used such as Windows. A the web sever. A stands for Apache HTTP Server, as the most popular open source web server, but any web server may be used. M the database. M stands for MySql as a popular open-source relational database, but any database may be used. P the scripting language. P originally stood for Perl which is a popular scripting language and oddly enough, many scripting languages begin with P such as Python and PHP. Any scripting language may be used, however, such as Ruby and JavaScript. Scripting languages are characterized as interpreted and dynamically typed. IS 651: Distributed Systems 21

MEAN Web Scripting with N-tier Systems M MongoDB, a NoSQL database. E Express.js, a web application framework that runs on Node.js A Angular, a JavaScript MVC framework that runs in browser JavaScript engines N Node.js, an execution environment for event-driven server-side and networking applications MEAN applications can be written in one language, namely JavaScript, for both server-side and client-side execution environments. An open source project by IS students: https://github.com/rogueriderhood/mean-project/ IS 651: Distributed Systems 22

J2EE (Enterprise Edition) Application Server Java naming and directory interface (JNDI): A naming service for containers The Java messaging service (JMS): MOM service offered by Java frameworks Remote method invocation (RMI): Java framework version of object-oriented RPC Servlet Container: a server-side software component for objects to receive a requests and generate responses. A servlet is often built as Java Server Pages (JSPs) Enterprise JavaBeans (EJB) : a server-side software component for business logic It is still widely used and can provide Web services IS 651: Distributed Systems 23

Services (2000s) Standard service contracts Participants have agreements They should also be discoverable by using some kind of registry or directory Loose coupling The participants have minimal dependencies on each other Encapsulation Services should hide their logic from the outside world as a black box This increases reusability and increases composability Services should also have location transparency where users do not care where the services are located Statelessness Keep track of as little state as possible This is a requirement for loose coupling and encapsulation IS 651: Distributed Systems 24

Extensible Markup Language (XML) Markup language: text document with annotation (normally using tags) HyperText Markup Language (HTML) EXtensible Markup Language (XML) EXtensible HyperText Markup Language (XHTML) etc. XML documents form a tree structure Well-formed XML VS. Valid XML XML validation Document type definition (DTD) XML Schema IS 651: Distributed Systems 25

Well-formed XML It contains only properly encoded, legal Unicode characters None of the special syntax characters (<, &) appear except when performing their markup-delineation roles The begin, end, and empty-element tags that delimit the elements are correctly nested, with none missing and none overlapping The element tags are case-sensitive - the beginning and end tags must match exactly There is a single "root" element that contains all the other elements IS 651: Distributed Systems 26

Valid XML The declaration in line 1 is contains question mark characters and is called a processing instruction. It references the version and encoding for the XML document. Line 2 has a reference to an external DTD file that contains the DTD. It can replaced by embedding DTD content Line 3 is the root tag for the document. Note that it contains an attribute. Any XML tag may have an attribute and it must be quoted. Note that even though item is repeated, it uses the same tag. Never create tags like item1, item2, etc. IS 651: Distributed Systems 27

Document Type Definition (DTD) The declaration of the DTD in the XML document has the syntax where SYSTEM refers to that fact that the DTD is a private implementation for this document rather than a standard. It would change to PUBLIC if it was a standard. < DOCTYPE root-element SYSTEM "URI" > DTDs do not have XML syntax. They have their own syntax. The!ELEMENT declares an element (also called a tag). The child elements of a tag are declared as an ordered list in parentheses. If an element can be repeated 1 or more times, it must have a plus sign (+) after it. The character star (*) means 0 or more and so makes elements optional. A leaf node of the hierarchy is declared #PCDATA which means parsed character data and it is the text of the content. The < and > are XML entities for the less than and greater than (< >) characters. XML markup characters cannot be used because they would confuse a parser, so these pre-defined entities must replace them. There are no data types in DTDs. Everything is text. The!ATTLIST declares an attribute for an element and typically declares it as CDATA which means character data. This means that the XML parser does not parse it. One can require a document to have an attribute in order to be valid by using #REQUIRED. IS 651: Distributed Systems 28

DTD Example Validation command: $>xmllint --noout --valid shiporder.xml IS 651: Distributed Systems 29

Demo Well-form check command xmllint --noout shiporder.xml xmllint --noout shiporder-not-well-formed.xml xmllint --noout shiporder-well-formed-not-valid.xml Validation check command xmllint --noout --valid shiporder.xml xmllint --noout shiporder-well-formed-not-valid.xml IS 651: Distributed Systems 30