Avancier Methods (AM) Software Architecture Modularity and OO presumptions

Size: px
Start display at page:

Download "Avancier Methods (AM) Software Architecture Modularity and OO presumptions"

Transcription

1 Methods (AM) Software Architecture Modularity and OO presumptions It is illegal to copy, share or show this document (or other document published at without the written permission of the copyright holder Copyright

2 Radically changing gear! Earlier discussion of business architecture This discussion of software architecture Enterprise 10 Business Function Business Function 100 Narrow Business Function Narrow Business Function 1,000 App App 10,000 Deployable Artifact Deployable Artifact Some modular design principles are relevant to both 100,000 Package / Name Space Package / Name Space 1,000,000 Class/Object Class/Object 10,000,000 Operation Operation Copyright

3 Software architecture as the finest-grained enterprise architecture EA regards the enterprise as a system, or a system of systems. Business architecture is highest level business system design Software architecture is lowest level business system design, including the decomposition of an application into components.net Application Assembly Module Name Space Class Operation Java Application JAR Package / Name Space Class Operation Copyright

4 Modular system design Divides the system into components - to perform the required processes Monolithic system Modular system Operation Operation Operation Operation Operation Operation Operation Operation Operation Operation Operation Operation Copyright

5 Modular design questions For 40 years, software gurus have continually revisited modular design and integration questions. How best to scope each module? avoid duplication between modules? separate modules? integrate modules? What principles might help? Copyright

6 Architecture principles promoted in a global organisation 1. Separate concerns (for flexibility and maintainability) 2. Build for competitive advantage / Buy for competitive parity 3. Encapsulate components (for CBD and SOA) 4. Use open APIs for inter-component communication 5. Loosely couple components (for flexibility and availability) 6. Use Event-Driven Architecture for broadcast updates 7. Maintain a single source of truth 8. Design for response time / latency 9. Design for graceful failure informing users 10. Web first: design for browser and client device independence Copyright Limited

7 Encapsulation Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Deliberate repetition of core concepts from day 1 Copyright

8 Encapsulate components ( a building block has a defined boundary ) The enclosure within a component of processes, meaning that the inner workings are invisible to outsiders. The enclosure within a component of data, so the only way to access that data is by using the interface of the component. API API Component Operation Operation Operation Operation Operation Get data Component State Data Operation Copyright

9 Use open APIs for inter-component communication To encapsulate means hiding the internal data and procedures of a system (component or object) behind its interface. The interface is a collection of accessible services. API API specification Operation: Get Address Get Address Address Server Component Operation: Put Address Put Address State Data Copyright

10 /Operation signature Define an operation s signature Name (Input Parameters): Output Reply API Signature API specification Operation: Get Address (Post Code, House Num): Address Operation: Put Address (Address, Post Code): OK or Fail Clients can make it work using only the signature Copyright

11 /Operation semantics or rules Designers have to understand, and ideally document, the rules governing an operation. Semantics Or Rules API specification Operation: Put Address (Address, Post Code): OK or Fail Precondition: Valid Post Code is entered Post condition: Address is added to the Post Code If the preconditions are true, and the operation proceeds to completion, then the post conditions will be true. Copyright

12 Test-driven design using preconditions and post conditions Some programming languages come with tools for specifying preconditions and post conditions, and testing them API API specification Operation: Get Address (Post Code, House Num): Address Precondition: Valid Post Code and House Num are entered Post condition: Correct Address is returned Operation: Put Address (Address, Post Code): OK or Fail Precondition: Valid Post Code is entered Post condition: Address is added to the Post Code Copyright

13 Don t forge the numbers - and NFRs! Some NFRs apply to a whole component But also, each service/operation has its own characteristics API Do you think the two services/operations share these measures? API specification Operation: Get Address (Post Code, House Num): Address Precondition: Valid Post Code and House Name are entered Post condition: Correct Address is returned Operation: Put Address (Address, Post Code): OK or Fail Precondition: Valid Post Code is entered Post condition: Address is recorded against the Post Code Non-functional characteristics Response time = < 3 seconds Throughput = 10 per second Copyright

14 Realisation (software sense) Realisation = providing implementations for services in an interface. Representable in ArchiMate as below Interface Interface Realised by Realised by Component Component Copyright

15 Separation of component, interface and service One component may realise more than one interface. older and newer versions, or full and restricted list of services. R One service can appear in several interfaces. E.g. 1 component 2 interfaces 4 services (one duplicated) CRUD Software Component Required behaviour Interface Physical Structure Software Operation API Software Component Copyright

16 Modularisation in the 1970s Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Copyright

17 1970s Mainframe modular design as in COBOL A COBOL program can delegate work to a reusable component A main program can perform an internal subroutine not encapsulated, since program and subroutine can access the same state data Several programs can call a properly encapsulated external module Computer Memory Main program PERFORM Sub routine CALL Module Both perform and call are local procedure calls, little more than a GO TO and a GO BACK in the memory space of a computer Another Main program CALL Copyright

18 1972 Criteria to Be Used in Decomposing Systems into Modules Parnas introduced the idea of information hiding. API One begins with a list of difficult design decisions. Each module is designed to hide a decision from the others. [e.g. hide] a data structure, its internal links, accessing procedures and modifying procedures. Get data State Data Component Copyright

19 1975 Jackson s modular design patterns Jackson taught us to resolve structure clashes by designing distinct modules to handle I/O data structures complex data types database structures Transaction File File reading module Mainframe software Report File Report writing module Date calculator module Data Access Modules Data Storage Hardware Copyright

20 1979 Three-layer software design pattern Define the I/O data structures Transaction File Report File Mainframe software Define the events and enquiries contained in the input data Define the persistent data structure Event & Enquiry Catalogue I/O modules LPC Event/Enquiry Control Modules LPC Structure the code into layers, so each layer offers services to the layer above. Data Access Modules Data Storage Hardware Copyright

21 Reuse of modules There were many attempts to create a shared module library Enabling programmers to copy a module into their own program Main program Module Library Module Module Success was patchy Around1975, Michael A Jackson reputedly said A module library is the only kind of library that everybody wants to put something in, and nobody wants to take something out of. Copyright

22 Remote Procedure Call Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Copyright

23 1980s: Client-server design The next trend was to physically separate code on end-user client devices from code on database servers. Client Device Network Server Device Copyright

24 When businesses gave client devices to their employees: Enterprise applications had to be divided between modules handling user interface data structures (on client devices) handling business data structures (on database servers). Mainframe External Interface I/O modules Rewrite User Interface Client Device Local call Remote procedure call Network Local call Event/Enquiry Controllers Data Access or Entity Maintenance Redeploy (with luck) Event/Enquiry Controllers Data Access or Entity Maintenance Server Device Copyright

25 Remember LPC versus RPC Local Procedure Call Simple Fast Available Secure Remote Procedure Call More complex Slower Less available Less secure Copyright

26 LPC versus RPC Local Procedure Call 1. The client makes a local procedure call to the server. 2. The server does what is requested 3. The server replies to the client Remote Procedure Call 1. The client makes a local procedure call to the client stub (parameters pushed on to the stack) 2. The client stub packs (marshalls) the parameters into a message and makes an OS call 3. The client's local OS sends the message from to the server s machine 4. The server s local OS passes the incoming packets to the server stub 5. The server stub unpacks (unmarshalls) the parameters from the message 6. The server stub calls the server procedure. 7. The server does what is requested 8. The server replies to the server stub 9. The server stub packs (marshalls) the parameters from the message 10. The server s local OS passes the incoming packets to the server stub 11. The server's local OS sends the message from to the client machine 12. The client stub unpacks (unmarshalls) the parameters into a message 13. The client stub and replies to the client. Copyright

27 How physical distribution influences logical modularisation Local interfaces - fine-grained Get/set customer name Client Get/set address Get/set telephone number Server Object(s) To reduce network chatter, remote interfaces need to be coarse-grained Get/set customer details Server device Get/set customer name Client Remote Facade Get/set address Server Object(s) Get/set telephone number Copyright

28 The OOP revolution Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Copyright

29 Approaching 1990, OOP became fashionable OO programming is different in three ways 1. Many instances (objects) of a module type (class) So many objects can be deployed in parallel 2. A module instance has a unique object identifier So clients can locate an object, and remember it 3. Classes can be related in a class hierarchy So objects of one class can inherit and extend the operations of another more generic class Copyright

30 OO presumption c 1990 Criteria to Be Used in Decomposing Systems into Classes In the decade after Parnas and Jackson, OO guru Bertrand Meyer proposed classes should be abstract data types, which encapsulate a data structure define operations performable on that data structure. Petrol-driven Vehicle Vehicle ID Weight Passengers FuelCap MPG getweight (VID): Weight addpassenger (VID): void getmpg (VID): MPG calcrange (VID): Range Copyright

31 OO presumption c 1990 Class = module type A class is a template for creating objects; It may define data types maintained variables, fields, attributes Customer Number Address Current Debt Credit Status CRM Notes Customer changeaddress (CustomerNumber Address): Done closeorder (CustomerNumber OrderValue): Done getdetails (CustomerNumber): Procedure Procedure Procedure And an interface containing operations External (aka Method or Operation) Internal Procedure (aka Method Body) Copyright

32 OO presumption c 1990 Clients need object identifiers When instantiated in memory an object is an instance of a class; it has Identity unique object Id - used by programmers State unique data values Behaviour general operations Object Id changeaddress (CustomerNumber Address): Done closeorder (CustomerNumber OrderValue): Done Customer Oak Road, Town 0 Excellent Wife called Mary Procedure Procedure getdetails (CustomerNumber): Procedure You call it to do work Using an object/method pair E.g /closeOrder Copyright

33 OO presumption c 1990 One name space Client and server objects work in the same name space So they know and can use each other s class names object identifiers and operation or method names. Object Id Oak Road, Town 0 Maximum Wife Mary Customer changeaddress (CustomerNumber Address): Done closeorder (CustomerNumber OrderValue): Done getdetails (CustomerNumber): Procedure Procedure Procedure Copyright

34 OO presumption c 1990 Stateful objects/modules Stateful objects persist, and retain their state in memory The earliest OO programs handled a few small stateful objects. The case studies were real-time process control systems objects live forever graphical user interfaces - objects deleted when the UI is closed Copyright

35 OO presumption c 1990 The OO envangelist view Objects model real world entities. Objects (like real world entities) are stateful and persist. Databases are merely infrastructure devices and SQL is evil! App Server operation operation Customer Object XXX Oak Road, Town 0 Maximum Wife Mary Class Library Customer Object YYY Ash Road, Town 200 Minimum Rude on the phone operation operation Copyright

36 OO presumption c 1990 Applying the idea to enterprise-scale applications Pure [Distributed Object] implementations are anarchistic. Objects can appear anywhere at any time. No one knows how to get rid of them. Not good for apps w millions of run-time objects. (Client/server survival guide 3 rd edition 1999) App Server operation operation Customer Object XXX Oak Road, Town 0 Maximum Wife Mary operation operation Class Library Customer Object YYY Ash Road, Town 200 Minimum Rude on the phone So there was a need for garbage collection Objects with object identifiers that no other object remembers can be deleted Copyright

37 OO presumption c 1990 Reuse by inheritance Classes can be related in a class hierarchy Objects of a subclass inherit or extend the operations of a super class E.g. you can ask a bowler object to update batting average reply with the player s name Copyright

38 OO presumption c 1990 Intelligent domain objects Domain Objects cooperate to perform a transaction Command :Pupil :School (new) :School (old) pupiltransfer (PupilNum, NewSchoolNum): Error removepupil (OldSchoolNum) addpupil (NewSchoolNum): NoRoomError Copyright

39 OO presumption c 1990 Synchronous request-reply invocations The client sees the communication as synchronous Client objects invoke server objects using an object-method pair an object id and a method or operation name Hold a connection and wait for a reply Copyright

40 OO presumption c 1990 Blocking servers The server sees the communication as synchronous The server blocks all clients bar the current one Copyright

41 OO presumption c 1990 The OO envangelists ambition Turn the world into one big OO program (one name space) Intelligent domain objects can run on different machines And cooperate as though they run on the same machine. Does this mean client objects must remember the network addresses of remote server objects? To be continued Copyright

42 Summary of early OO design presumptions Feature Naming Early OO design presumptions Clients need object identifiers One name space Recent SOA design presumptions? Paradigm Time Location COBOL modules Java objects CORBA Stateful objects/modules Reuse by OO inheritance Intelligent domain objects Request-reply invocations Blocking servers Remember remote addresses Copyright Limited

43 The MVC pattern Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Copyright

44 The MVC pattern: as Martin Fowler introduces it Originally developed for desktop computing in the 1970s. The Model contains Objects representing things that appear on the screen, regardless of the visual format Copyright

45 Adapting the MVC pattern for enterprise applications Separates modules that handle client-side data structures from modules that handle server-side data structures Client device (screen state) receives an input request, may modify it, asks the Model to return or change its state. Controller View after the Model has done its work, organises the state of the Model in the form a client wants to see. Web /app server (session state) Model retrieves state data relevant to the request, can return or change the state of the Model, may hold session data relevant to a client-side form or process Data server (record state) DB Copyright

46 Adapting the MVC pattern for enterprise applications Graphic based on how Fowler represents MVC interactions Client Web/App Server Data HTTP request A Web Server A Controller Model Model Objects Obect A View HTTP response Copyright

47 Adapting the MVC pattern for enterprise applications There are many variations of the pattern Controller View Controller View Controller View Model Model Model Other MVC variants include hierarchical model view controller (HMVC), model view adapter (MVA) model view presenter (MVP), model view viewmodel (MVVM) Copyright

48 MVC in web frameworks (Wikipedia says) Web frameworks divide MVC differently between client and server tiers. Early web frameworks mostly put MVC components on the server. E.g. Ruby on Rails, Django, ASP.NET MVC and Express Client sends hyperlink requests or form input to the controller Client receives a complete and updated web page (or other doc) from the view. Other frameworks allow MVC components to execute partly on the client E.g. AngularJS, EmberJS, JavaScriptMVC and Backbone (also see Ajax). Copyright

49 Footnotes On inheritance and OO-relational mapping Copyright Limited

50 Base class a superclass to which designers can add subclasses that extend, inherit from or derive from the base class. Vehicle Vehicle ID Weight Passengers Petrol-driven Vehicle Vehicle ID Weight Passengers FuelCap MPG getweight (VID): Weight addpassenger (VID): void getweight (VID): Weight addpassenger (VID): void getmpg (VID): MPG calcrange (VID): Range Copyright

51 Abstract or virtual operation an operation for which the signature (name, inputs and outputs) is defined, but not the internal procedure needed to implement the operation. Vehicle Vehicle ID Weight Passengers Petrol-driven Vehicle Vehicle ID Weight Passengers FuelCap MPG getweight (VID): Weight addpassenger (VID): void getweight (VID): Weight addpassenger (VID): void getmpg (VID): MPG calcrange (VID): Range Copyright

52 Abstract or virtual class presents an interface containing nothing but abstract or virtual operations. Vehicle Vehicle ID Weight Passengers Petrol-driven Vehicle Vehicle ID Weight Passengers FuelCap MPG getweight (VID): Weight addpassenger (VID): void getweight (VID): Weight addpassenger (VID): void getmpg (VID): MPG calcrange (VID): Range Copyright

Avancier Methods. Very basic design patterns. It is illegal to copy, share or show this document

Avancier Methods. Very basic design patterns. It is illegal to copy, share or show this document Methods Very basic design patterns It is illegal to copy, share or show this document (or other document published at http://avancier.co.uk) without the written permission of the copyright holder Copyright

More information

Model-View-Control Pattern for User Interactive Systems

Model-View-Control Pattern for User Interactive Systems Model-View-Control Pattern for User Interactive Systems In various forms and guises J. Scott Hawker p. 1 Contents Key Model-View-Control (MVC) concepts Web MVC UI Controller in MVC GRASP Application Controller

More information

Avancier Methods (AM) CONCEPTS

Avancier Methods (AM) CONCEPTS Methods (AM) CONCEPTS Mapping generic ArchiMate entities to and TOGAF meta model entities It is illegal to copy, share or show this document (or other document published at ) without the written permission

More information

Avancier Methods (AM) Software Architecture Diagrams

Avancier Methods (AM) Software Architecture Diagrams Methods (AM) Software Architecture Diagrams in the AM viewpoint library It is illegal to copy, share or show this document (or other document published at http://avancier.co.uk) without the written permission

More information

Software Components and Distributed Systems

Software Components and Distributed Systems Software Components and Distributed Systems INF5040/9040 Autumn 2017 Lecturer: Eli Gjørven (ifi/uio) September 12, 2017 Outline Recap distributed objects and RMI Introduction to Components Basic Design

More information

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI Remote Invocation Today l Request-reply, RPC, RMI Next time l Overlay networks and P2P Types of communication " Persistent or transient Persistent A submitted message is stored until delivered Transient

More information

Client/Server-Architecture

Client/Server-Architecture Client/Server-Architecture Content Client/Server Beginnings 2-Tier, 3-Tier, and N-Tier Architectures Communication between Tiers The Power of Distributed Objects Managing Distributed Systems The State

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

Distributed Objects. Object-Oriented Application Development

Distributed Objects. Object-Oriented Application Development Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming

More information

Elementary Concepts of Object Class

Elementary Concepts of Object Class Elementary Concepts of Object Class Modeling entities and their behaviour by objects. A class as a specification of objects and as an object factory, computation as message passing/function call between

More information

CHAPTER 5 GENERAL OOP CONCEPTS

CHAPTER 5 GENERAL OOP CONCEPTS CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should

More information

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010 Oracle Tuxedo CORBA Technical Articles 11g Release 1 (11.1.1.1.0) March 2010 Oracle Tuxedo CORBA Technical Articles, 11g Release 1 (11.1.1.1.0) Copyright 1996, 2010, Oracle and/or its affiliates. All rights

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN PATTERN - INTERVIEW QUESTIONS DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Overview of Web Application Development

Overview of Web Application Development Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34 Table of Contents Overview Architecture 1 Overview

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Programmazione. Prof. Marco Bertini

Programmazione. Prof. Marco Bertini Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

Patterns Architectural Styles Archetypes

Patterns Architectural Styles Archetypes Patterns Architectural Styles Archetypes Patterns The purpose of a pattern is to share a proven, widely applicable solution to a particular problem in a standard form that allows it to be easily reused.

More information

Distribution and Integration Technologies

Distribution and Integration Technologies Distribution and Integration Technologies Distributed Architectures Patterns and Styles 1 Distributed applications infrastructure ISP intranet wireless backbone desktop computer: server: laptops: tablets:

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

1. Write two major differences between Object-oriented programming and procedural programming?

1. Write two major differences between Object-oriented programming and procedural programming? 1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:

More information

The major elements of the object-oriented model

The major elements of the object-oriented model The major elements of the object-oriented model Abstraction Encapsulation Inheritance Modularity Suggested Reading: Bruce Eckel, Thinking in Java (Fourth Edition) Reusing Classes Hierarchy 2 An abstraction

More information

1.264 Lecture 16. Legacy Middleware

1.264 Lecture 16. Legacy Middleware 1.264 Lecture 16 Legacy Middleware What is legacy middleware? Client (user interface, local application) Client (user interface, local application) How do we connect clients and servers? Middleware Network

More information

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

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

********************************************************************

******************************************************************** ******************************************************************** www.techfaq360.com SCWCD Mock Questions : J2EE DESIGN Pattern ******************************************************************** Question

More information

Architectural Design

Architectural Design Architectural Design Objectives To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture Objectives Architectural Design To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE Dave Clarke 1 THIS LECTURE At the end of this lecture you will know notations for expressing software architecture the design principles of cohesion

More information

Organization of User Interface Software

Organization of User Interface Software Organization of User Interface Software Administration Questions about assignments due and assignments assigned 2 What we will talk about Ways to organize UI code Different models of user interfaces as

More information

Object oriented programming Concepts

Object oriented programming Concepts Object oriented programming Concepts Naresh Proddaturi 09/10/2012 Naresh Proddaturi 1 Problems with Procedural language Data is accessible to all functions It views a program as a series of steps to be

More information

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts

More information

Software Design COSC 4353/6353 DR. RAJ SINGH

Software Design COSC 4353/6353 DR. RAJ SINGH Software Design COSC 4353/6353 DR. RAJ SINGH Outline What is SOA? Why SOA? SOA and Java Different layers of SOA REST Microservices What is SOA? SOA is an architectural style of building software applications

More information

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.

More information

Unit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer

Unit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer Unit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer 1. The term is used to describe a programming approach based on classes and objects is (A) OOP (B) POP (C) ADT (D) SOP

More information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process

More information

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV INTRODUCTION TO Object Oriented Systems 1 CHAPTER 1 Introduction to Object Oriented Systems Preview of Object-orientation. Concept of distributed object systems, Reasons to distribute for centralized objects.

More information

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process Architectural Design Objectives To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural

More information

S1 Informatic Engineering

S1 Informatic Engineering S1 Informatic Engineering Advanced Software Engineering Web App. Process and Architecture By: Egia Rosi Subhiyakto, M.Kom, M.CS Informatic Engineering Department egia@dsn.dinus.ac.id +6285640392988 SYLLABUS

More information

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE Tomas Cerny, Software Engineering, FEE, CTU in Prague, 2014 1 ARCHITECTURES SW Architectures usually complex Often we reduce the abstraction

More information

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2 Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design

More information

Conceptual Framework

Conceptual Framework ArchiMate in a Nutshell v11 Conceptual Framework Generic Meta Model / Framework / Meta Model Creative Commons Attribution-No Derivative Works Licence 2.0 Attribution: You may copy, distribute and display

More information

Migration to Service Oriented Architecture Using Web Services Whitepaper

Migration to Service Oriented Architecture Using Web Services Whitepaper WHITE PAPER Migration to Service Oriented Architecture Using Web Services Whitepaper Copyright 2004-2006, HCL Technologies Limited All Rights Reserved. cross platform GUI for web services Table of Contents

More information

OO Frameworks. Introduction. Using Frameworks

OO Frameworks. Introduction. Using Frameworks OO Frameworks Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Frameworks support reuse of detailed designs and architectures An integrated set of components

More information

CORBA (Common Object Request Broker Architecture)

CORBA (Common Object Request Broker Architecture) CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba

More information

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in

More information

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

5 Distributed Objects: The Java Approach

5 Distributed Objects: The Java Approach 5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having

More information

Reference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003

Reference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003 CS551: Advanced Software Engineering Service-Oriented Architecture Reference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003 Yugi Lee STB #560D (816)

More information

Java Enterprise Edition

Java Enterprise Edition Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data

More information

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1 CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC)

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC) CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2002 Lecture 22: Remote Procedure Call (RPC) 22.0 Main Point Send/receive One vs. two-way communication Remote Procedure

More information

Element: Relations: Topology: no constraints.

Element: Relations: Topology: no constraints. The Module Viewtype The Module Viewtype Element: Elements, Relations and Properties for the Module Viewtype Simple Styles Call-and-Return Systems Decomposition Style Uses Style Generalization Style Object-Oriented

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns

More information

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering IT6801 - SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV /

More information

Basic Properties of Styles

Basic Properties of Styles Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 18 Enterprise Styles/Patterns (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo Basic

More information

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

More information

Web Technologies VU ( ) Vedran Sabol. Nov 13, ISDS, TU Graz. Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, / 60

Web Technologies VU ( ) Vedran Sabol. Nov 13, ISDS, TU Graz. Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, / 60 Web Technologies VU (706.704) Vedran Sabol ISDS, TU Graz Nov 13, 2017 Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, 2017 1 / 60 Outline 1 Separation of Concerns Design Principle 2 Model-View-Controller

More information

Front End Programming

Front End Programming Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

Fast Track to EJB 3.0 and the JPA Using JBoss

Fast Track to EJB 3.0 and the JPA Using JBoss Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity

More information

A Report on RMI and RPC Submitted by Sudharshan Reddy B

A Report on RMI and RPC Submitted by Sudharshan Reddy B A Report on RMI and RPC Submitted by Sudharshan Reddy B Abstract: This report mainly explains the RMI and RPC technologies. In the first part of the paper the RMI technology is briefly explained and in

More information

Software Reuse and Component-Based Software Engineering

Software Reuse and Component-Based Software Engineering Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering

More information

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

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~ 1 Component: Szyperski s definition of a component: A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can

More information

Remote Invocation. Today. Next time. l Indirect communication. l Request-reply, RPC, RMI

Remote Invocation. Today. Next time. l Indirect communication. l Request-reply, RPC, RMI Remote Invocation Today l Request-reply, RPC, RMI Next time l Indirect communication Data representation and marshalling Processes information kept as data structures but sent in msgs as sequence of bytes

More information

ICS 52: Introduction to Software Engineering

ICS 52: Introduction to Software Engineering ICS 52: Introduction to Software Engineering Fall Quarter 2004 Professor Richard N. Taylor Lecture Notes Week 3: Architectures http://www.ics.uci.edu/~taylor/ics_52_fq04/syllabus.html Copyright 2004, Richard

More information

Service-Oriented Architecture (SOA)

Service-Oriented Architecture (SOA) Service-Oriented Architecture (SOA) SOA is a software architecture in which reusable services are deployed into application servers and then consumed by clients in different applications or business processes.

More information

A DEVELOPER S GUIDE TO XP EOL

A DEVELOPER S GUIDE TO XP EOL A DEVELOPER S GUIDE TO XP EOL Everything you need to know. Windows XP is out of support April 9, 2014. Last day of support is April 8, 2014 There are 189 days from Oct. 1, 2013 to Apr. 8, 2014 Including

More information

Chapter 6 Enterprise Java Beans

Chapter 6 Enterprise Java Beans Chapter 6 Enterprise Java Beans Overview of the EJB Architecture and J2EE platform The new specification of Java EJB 2.1 was released by Sun Microsystems Inc. in 2002. The EJB technology is widely used

More information

Web Application Architectures

Web Application Architectures Web Application Architectures Internet Engineering Spring 2018 Bahador Bakhshi CE & IT Department, Amirkabir University of Technology Outline MVC Design Pattern Multilayer Design Microservices Architecture

More information

(9A05803) WEB SERVICES (ELECTIVE - III)

(9A05803) WEB SERVICES (ELECTIVE - III) 1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available

More information

Distributed systems. Distributed Systems Architectures

Distributed systems. Distributed Systems Architectures Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined

More information

Introduction to Software Architecture. The top level... (and design revisited)

Introduction to Software Architecture. The top level... (and design revisited) Introduction to Software Architecture The top level... (and design revisited) 1 What are we doing? System Software Architecture Top-level design software system architecture We use system architecture

More information

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting

More information

Application-Oriented System Design

Application-Oriented System Design Application-Oriented System Design LISHA/UFSC Prof. Dr. Antônio Augusto Fröhlich March 2004 March 2004 http://www.lisha.ufsc.br 29 Application-Oriented Operating Systems "An application-oriented operating

More information

A domain model-centric approach to J2EE development. Keiron McCammon CTO Versant Corporation

A domain model-centric approach to J2EE development. Keiron McCammon CTO Versant Corporation A domain model-centric approach to J2EE development Keiron McCammon CTO Versant Corporation 1 Patterns of Enterprise Application Architecture Martin Fowler, at. al. Overview What is a domain model centric

More information

Using JNDI from J2EE components

Using JNDI from J2EE components Using JNDI from J2EE components Stand-alone Java program have to specify the location of the naming server when using JNDI private static InitialContext createinitialcontext() throws NamingException {

More information

New Programming Paradigms

New Programming Paradigms New Programming Paradigms Lecturer: Pánovics János (google the name for further details) Requirements: For signature: classroom work and a 15-minute presentation Exam: written exam (mainly concepts and

More information

Object- Oriented Design with UML and Java Part I: Fundamentals

Object- Oriented Design with UML and Java Part I: Fundamentals Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html

More information

Design and Information Hiding

Design and Information Hiding Design and Information Hiding 15-214: Foundations of Software Engineering Jonathan Aldrich Related Reading: D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058,

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software Architecture by Tao et al. (Chapters 6 and 7) 1

More information

Does anyone actually do this?

Does anyone actually do this? Session 11: Polymorphism Coding type-dependent logic Virtual functions Pure virtual functions and abstract classes Coding type-dependent logic Suppose we need to do something different depending on what

More information

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring

More information

Remote Procedure Call (RPC) and Transparency

Remote Procedure Call (RPC) and Transparency Remote Procedure Call (RPC) and Transparency Brad Karp UCL Computer Science CS GZ03 / M030 10 th October 2014 Transparency in Distributed Systems Programmers accustomed to writing code for a single box

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : , Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,

More information

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

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution

More information

Agent-Enabling Transformation of E-Commerce Portals with Web Services

Agent-Enabling Transformation of E-Commerce Portals with Web Services Agent-Enabling Transformation of E-Commerce Portals with Web Services Dr. David B. Ulmer CTO Sotheby s New York, NY 10021, USA Dr. Lixin Tao Professor Pace University Pleasantville, NY 10570, USA Abstract:

More information

Kernel Types Simple OS Examples System Calls. Operating Systems. Autumn CS4023

Kernel Types Simple OS Examples System Calls. Operating Systems. Autumn CS4023 Operating Systems Autumn 2017-2018 Outline 1 2 3 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview

More information

Jonathan Haulund. AEHF Program Office United States Air Force. Reuse: Dealing With The Hand You re Dealt

Jonathan Haulund. AEHF Program Office United States Air Force. Reuse: Dealing With The Hand You re Dealt Jonathan Haulund Chieff Software f Engineer AEHF Program Office United States Air Force 1 Definition of software reuse: Check Wikipedia Let s focus on extant code reuse - extending software from an existing

More information

OOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity.

OOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity. OOPS Viva Questions 1. What is OOPS? OOPS is abbreviated as Object Oriented Programming system in which programs are considered as a collection of objects. Each object is nothing but an instance of a class.

More information

Minsoo Ryu. College of Information and Communications Hanyang University.

Minsoo Ryu. College of Information and Communications Hanyang University. Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based

More information