Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90)

Size: px
Start display at page:

Download "Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90)"

Transcription

1 Proxy Pattern (et Relata) (seen from someone still living in the '70, the '80 and, partly, in the '90) 1

2 Proxy Pattern Pattern Name and Classification (Kategorisierung) Intent (Zweck) Motivation/ Forces (Problem/Kontext/Umfeld) Implementation (Lösung/Umsetzung) Structure Applicability (Szenario/Verwendung) Pros & Cons (Vorteilen/Nachteilen) Related Patterns (Verweise) Code examples 2

3 Pattern Name and Classification Pattern Name: Proxy Pattern (Stellvertreter) Classification: Structural Pattern (structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships between entities.) 3

4 Intent Provide a surrogate or placeholder for another object to control access to it. Use an extra level of indirection to support distributed, controlled, or intelligent access. Add a wrapper and delegation to protect the real component from undue complexity. 4

5 Motivation/Problem You need to support resource-hungry objects, and you do not want to instantiate such objects unless and until they are actually requested by the client. 5

6 Implementation Design a surrogate, or proxy, object that: instantiates the real object the first time the client makes a request of the proxy remembers the identity of this real object and forwards the instigating request to this real object. Then all subsequent requests are simply forwarded directly to the encapsulated real object. 6

7 Implementation Check list Identify the leverage or "aspect" that is best implemented as a wrapper or surrogate. Define an interface that will make the proxy and the original component interchangeable. Consider defining a Factory that can encapsulate the decision of whether a proxy or original object is desirable. The wrapper class holds a pointer to the real class and implements the interface. The pointer may be initialized at construction, or on first use. Each wrapper method contributes its leverage, and delegates to the wrappee object. 7

8 Structure By defining a Subject interface, the presence of the Proxy object standing in place of the RealSubject is transparent to the client. 8

9 Applicability There are four common situations in which the Proxy pattern is applicable. 1)VirtualProxy: A virtual proxy is a placeholder for "expensive to create" objects. The real object is only created when a client first requests/accesses the object. 2)RemoteProxy: A remote proxy provides a local representative for an object that resides in a different address space. This is what the "stub" code in RPC and CORBA provides. 3)ProtectionProxy: A protective proxy controls access to a sensitive master object. The "surrogate" object checks that the caller has the access permissions required prior to forwarding the request. (e.g.: www-proxy) 4)SmartProxy: A smart proxy interposes additional actions when an object is accessed. Typical uses include: Counting the number of references to the real object so that it can be freed automatically when there are no more references (aka smart pointer), Change or augment the behavior of the instantiated object (useful with classes libraries we do not have the source code). Checking that the real object is locked before it is accessed to ensure that no other object can change it. 9

10 Pros & Cons Pro: As seen in Applications, with a Proxy we can implement aspects that are not related with the proper logic of the real object (such as security,logging, pooling caching and the likes) Cons: For each method in the realclass we have to implement a coresponding method in the proxy (possible solution: Dynamic Proxy) 10

11 Related Patterns Adapter provides a different interface to its subject. Proxy provides the same interface as its subject (or a subset, in the case of ProtectionProxy). Decorator provides an enhanced interface (adds one or more responsibility), whereas a proxy controls access to an object. Decorator and Proxy have different purposes but similar structures. Both describe how to provide a level of indirection to another object, and the implementations keep a reference to the object to which they forward requests. 11

12 Code examples C++: Proxy in C++: Before and after Java:Proxy Pattern Java Example 12

13 Design Patterns Considered Harmful (Oh NO... NOT AGAIN!) 13

14 Design Patterns Considered Harmful First, let me quote Prof. Amrhein's slide #3s from DesignPatternEinfuehrung.pdf: Design Pattern sind unabhängig von der konkreten Programmiersprache. Das ermöglicht, dass man zunächst abstrakt über mögliche Lösungen sprechen kann. Damit kann auf hohem Abstraktions-Niveau über verschiedene Alternativen diskutiert werden, also ohne eine konkrete Lösung (Programmcode). And slide #4: Entwickler konnen durch das Kennen vieler Design Pattern dazu verleitet werden, moglichst viele Pattern zu verwenden und dabei ubersehen, dass in ihrem Fall vielleicht eine einfachere, elegantere Losung ohne den Einsatz von Design Pattern sinnvoller gewesen ware. Design Pattern konnen den Code unnotig aufblahen, da durch das Verwenden des Pattern (ev. unnotigerweise) ein allgemeineres Problem gelost wird. Entwurfsmuster garantieren nicht, dass der Entwurf gut ist. Insofern ist die Anwendung zu vieler oder ungeeigneter Entwurfsmuster ein Antimuster. 14

15 Design Patterns Considered Harmful 15

16 Design Patterns Considered Harmful Then let's see what Wikipedia says (This has always bothered me): - A design pattern is not a finished design that can be transformed directly into source or machine code. - By definition, a pattern must be programmed anew into each application that uses it. Since some authors see this as a step backward from software reuse as provided by components, researchers have worked to turn patterns into components.[...] Criticism The concept of design patterns has been criticized in several ways. The design patterns may just be a sign of some missing features of a given programming language (Java or C++ for instance). Peter Norvig demonstrates that 16 out of the 23 patterns in the Design Patterns book (that is primarily focused on C++) are simplified or eliminated (via direct language support) in Lisp or Dylan.[24] Related observations were made by Hannemann and Kiczales who implemented several of the 23 design patterns using an aspect-oriented programming language (AspectJ) [ ].[25] See also Paul Graham's essay "Revenge of the Nerds".[26] Moreover, inappropriate use of patterns may unnecessarily increase complexity.[27] [wikipedia: 16

17 Design Patterns Considered Harmful Paul Graham's essay "Revenge of the Nerds" (2002: considerations still valid!) Greenspun's Tenth Rule: Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp. If you try to solve a hard problem, the question is not whether you will use a powerful enough language, but whether you will (a) use a powerful language, (b) write a de facto interpreter for one, or (c) yourself become a human compiler for one. [ ] For example, in the OO world you hear a good deal about "patterns". I wonder if these patterns are not sometimes evidence of case (c), the human compiler, at work. When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough-- often that I'm generating by hand the expansions of some macro that I need to write. [source: 17

18 Design Patterns Considered Harmful References:

19 Design Patterns Considered Harmful "All problems in computer science can be solved by another level of indirection, except of course for the problem of too many indirections." David Wheeler(*) (*) another immortal quote from the late Prof. Wheeler is Compatibility means deliberately repeating other people's mistakes. 19

Introduction to Software Engineering: Object Design I Reuse & Patterns

Introduction to Software Engineering: Object Design I Reuse & Patterns Introduction to Software Engineering: Object Design I Reuse & Patterns John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from Bruegge & DuToit 3e, Chapter 8,

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

Proxy Design Pattern

Proxy Design Pattern Department of Computer Science University of Pretoria 27 & 28 October 2014 Name and Classification: Proxy (Object Structural) Intent: Provide a surrogate or placeholder for another object to control access

More information

Coordination Patterns

Coordination Patterns Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch

More information

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.

More information

Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt.

Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt. Summer Term 2018 1 Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Proxy Pattern 2 From the client s point of view, the proxy

More information

26.1 Introduction Programming Preliminaries... 2

26.1 Introduction Programming Preliminaries... 2 Department of Computer Science Tackling Design Patterns Chapter 27: Proxy Design Pattern Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 26.1 Introduction.................................

More information

Model-Driven Design Using Business Patterns

Model-Driven Design Using Business Patterns Model-Driven Design Using Business Patterns Bearbeitet von Pavel Hruby 1. Auflage 2006. Buch. xvi, 368 S. Hardcover ISBN 978 3 540 30154 7 Format (B x L): 15,5 x 23,5 cm Gewicht: 1590 g Wirtschaft > Volkswirtschaft

More information

USB. USB Sticks in Design und Qualität

USB. USB Sticks in Design und Qualität USB Sticks in Design und Qualität 148 149 USB Touch Pen touch pen OTG (On-The-Go) USB Stick OTG (On-The-Go) USB Drive USB microsd Karte microsd card Werbefläche advertising space 1, 2, 4, 8, 16, 32 GB

More information

Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt.

Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt. Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Summer Semester 2015 Proxy Pattern From the client s point of view, the proxy

More information

Design Patterns V Structural Design Patterns, 2

Design Patterns V Structural Design Patterns, 2 Structural Design Patterns, 2 COMP2110/2510 Software Design Software Design for SE September 17, 2008 Department of Computer Science The Australian National University 19.1 1 2 Formal 3 Formal 4 Formal

More information

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 6: Design Patterns Links to Design Pattern Material 1 http://www.oodesign.com/ http://www.vincehuston.org/dp/patterns_quiz.html Types of Design Patterns 2 Creational

More information

Summary of the course lectures

Summary of the course lectures Summary of the course lectures 1 Components and Interfaces Components: Compile-time: Packages, Classes, Methods, Run-time: Objects, Invocations, Interfaces: What the client needs to know: Syntactic and

More information

Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt.

Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt. Software Engineering Design & Construction Dr. Michael Eichberg Fachgebiet Softwaretechnik Technische Universität Darmstadt Winter Semester 16/17 Proxy Pattern From the client s point of view, the proxy

More information

THOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS

THOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS THOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS LOGISTICS HW3 due today HW4 due in two weeks 2 IN CLASS EXERCISE What's a software design problem you've solved from an idea you learned from someone else?

More information

1. Übungsblatt. Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte. Beispiellösung

1. Übungsblatt. Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte. Beispiellösung Technische Universität Darmstadt Fachbereich Informatik System Security Lab Prof. Dr.-Ing. Ahmad-Reza Sadeghi Raad Bahmani 1. Übungsblatt Vorlesung Embedded System Security SS 2017 Trusted Computing Konzepte

More information

Das Seminar kann zur Vorbereitung auf die Zertifizierung als Microsoft Certified Solutions Developer (MCSD): SharePoint Applications genutzt werden.

Das Seminar kann zur Vorbereitung auf die Zertifizierung als Microsoft Certified Solutions Developer (MCSD): SharePoint Applications genutzt werden. Developing Microsoft SharePoint Server 2013 Core Solutions MOC 20488 In diesem Seminar erlernen die Teilnehmer Kernfähigkeiten, die fast allen SharePoint-Entwicklungsaktivitäten gemeinsam sind. Dazu gehören

More information

Standardizing the Geospatial Farm

Standardizing the Geospatial Farm Standardizing the Geospatial Farm ESRI User Conference 2016 06-27-2016 / Jim Koob and Gavin Rehkemper / Version 1 Agenda Bayer Crop Science The End Motivation Standardizing the Experiment Sort of Standardizing

More information

Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0

Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0 Auskunftsbegehren gemäß Art 15 DSGVO (Facebook Version englisch) - V1.0 Inhalt 1. Versionsstand dieses Dokuments... 1 1.1 V1.0 Stammfassung... 1 2. Hinweise zu diesem Muster... 1 3. Musterbrief... 2 1.

More information

Search Engines Chapter 2 Architecture Felix Naumann

Search Engines Chapter 2 Architecture Felix Naumann Search Engines Chapter 2 Architecture 28.4.2009 Felix Naumann Overview 2 Basic Building Blocks Indexing Text Acquisition iti Text Transformation Index Creation Querying User Interaction Ranking Evaluation

More information

Material and some slide content from: - GoF Design Patterns Book. Design Patterns #1. Reid Holmes. Lecture 11 - Tuesday October

Material and some slide content from: - GoF Design Patterns Book. Design Patterns #1. Reid Holmes. Lecture 11 - Tuesday October Material and some slide content from: - GoF Design Patterns Book Design Patterns #1 Reid Holmes Lecture 11 - Tuesday October 19 2010. GoF design patterns!"#$%&'()*$+,--&.*' /.&,-("*,0 1-.23-2.,0 4&5,6(".,0

More information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D. Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice

More information

Modern and Lucid C++ for Professional Programmers. Week 15 Exam Preparation. Department I - C Plus Plus

Modern and Lucid C++ for Professional Programmers. Week 15 Exam Preparation. Department I - C Plus Plus Department I - C Plus Plus Modern and Lucid C++ for Professional Programmers Week 15 Exam Preparation Thomas Corbat / Prof. Peter Sommerlad Rapperswil, 08.01.2019 HS2018 Prüfung 2 Durchführung Mittwoch

More information

What s New? SAP HANA SPS 07 SAP HANA tailored data center integration. SAP HANA Product Management November, 2013

What s New? SAP HANA SPS 07 SAP HANA tailored data center integration. SAP HANA Product Management November, 2013 What s New? SAP HANA SPS 07 SAP HANA tailored data center integration SAP HANA Product Management November, 2013 Content This presentation provides an overview of the additional deployment option called

More information

Issues in Distributed Architecture

Issues in Distributed Architecture Issues in Distributed Architecture Simon Roberts Simon.Roberts@earthlink.net Simon Roberts Issues in Distributed Architecture Page 1 Why Do We Need Architecture? Network programming systems usually aren't

More information

Design Patterns. Dr. Rania Khairy. Software Engineering and Development Tool

Design Patterns. Dr. Rania Khairy. Software Engineering and Development Tool Design Patterns What are Design Patterns? What are Design Patterns? Why Patterns? Canonical Cataloging Other Design Patterns Books: Freeman, Eric and Elisabeth Freeman with Kathy Sierra and Bert Bates.

More information

The Strategy Pattern Design Principle: Design Principle: Design Principle:

The Strategy Pattern Design Principle: Design Principle: Design Principle: Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design

More information

The Proxy Pattern. Design Patterns In Java Bob Tarr

The Proxy Pattern. Design Patterns In Java Bob Tarr The Proxy Pattern Intent Provide a surrogate or placeholder for another object to control access to it Also Known As Surrogate Motivation A proxy is a person authorized to act for another person an agent

More information

Factory Method. Comp435 Object-Oriented Design. Factory Method. Factory Method. Factory Method. Factory Method. Computer Science PSU HBG.

Factory Method. Comp435 Object-Oriented Design. Factory Method. Factory Method. Factory Method. Factory Method. Computer Science PSU HBG. Comp435 Object-Oriented Design Week 11 Computer Science PSU HBG 1 Define an interface for creating an object Let subclasses decide which class to instantiate Defer instantiation to subclasses Avoid the

More information

Adapter pattern. Acknowledgement: Freeman & Freeman

Adapter pattern. Acknowledgement: Freeman & Freeman Adapter pattern Acknowledgement: Freeman & Freeman Example Scenario The European wall outlet exposes one interface for getting power The adapter converts one interface into another The US laptop expects

More information

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang

More information

Developing Microsoft Azure Solutions MOC 20532

Developing Microsoft Azure Solutions MOC 20532 Developing Microsoft Azure Solutions MOC 20532 In dem Kurs 20532A: Developing Microsoft Azure Solutions lernen Sie, wie Sie die Funktionalität einer vorhandenen ASP.NET MVC Anwendung so erweitern, dass

More information

Ulrich Stärk

Ulrich Stärk < Ulrich Stärk ulrich.staerk@fu-berlin.de http://www.plat-forms.org 2 Einige Vorurteile Everything in the box is kind of weird and quirky, but maybe not enough to make it completely worthless. PHP: a fractal

More information

OODP Session 4. Web Page: Visiting Hours: Tuesday 17:00 to 19:00

OODP Session 4.   Web Page:   Visiting Hours: Tuesday 17:00 to 19:00 OODP Session 4 Session times PT group 1 Monday 18:00 21:00 room: Malet 403 PT group 2 Thursday 18:00 21:00 room: Malet 407 FT Tuesday 13:30 17:00 room: Malet 404 Email: oded@dcs.bbk.ac.uk Web Page: http://www.dcs.bbk.ac.uk/~oded

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns

More information

TI-No. 4002TI05.doc PAGE NO. : 1/1. Settings after Installation of the Firmware Version 74

TI-No. 4002TI05.doc PAGE NO. : 1/1. Settings after Installation of the Firmware Version 74 TI-No. 4002TI05.doc PAGE NO. : 1/1 DEVELOP Technical Information MODEL NAME : D 4500/5500iD MODEL CODE : 4002/4003 TI-INFO-NO. : 05 DATE : 13.07.2001 SUBJECT : Firmware MSC/Message/IR Version 74 PERFORMANCE

More information

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

SDC Design patterns GoF

SDC Design patterns GoF SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating

More information

Scripted Components: Problem. Scripted Components. Problems with Components. Single-Language Assumption. Dr. James A. Bednar

Scripted Components: Problem. Scripted Components. Problems with Components. Single-Language Assumption. Dr. James A. Bednar Scripted Components: Problem Scripted Components Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar (Cf. Reuse-Oriented Development; Sommerville 2004 Chapter 4, 18) A longstanding

More information

Scripted Components Dr. James A. Bednar

Scripted Components Dr. James A. Bednar Scripted Components Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar SAPM Spring 2012: Scripted Components 1 Scripted Components: Problem (Cf. Reuse-Oriented Development;

More information

M/R for MR. Bild. Market Research powered by Hadoop. nurago - applied research technologies 1. nurago - applied research technologies

M/R for MR. Bild. Market Research powered by Hadoop. nurago - applied research technologies 1. nurago - applied research technologies M/R for MR Market Research powered by Hadoop Bild 1 Who is nurago? founded in early 2007 technology for usability and ad efficiancy research part of USYS Nutzenforschung: Hanover, Hamburg, Berlin, Munich,

More information

Einsatz von Komponenten in JEE am Beispiel von IMIXS

Einsatz von Komponenten in JEE am Beispiel von IMIXS Einsatz von Komponenten in JEE am Beispiel von IMIXS the open source workflow technology Ralph.Soika@imixs.com Imixs Software Solutions GmbH Best IBM Lotus Sametime Collaboration Extension Imixs Software

More information

Übungsstunde: Informatik 1 D-MAVT

Übungsstunde: Informatik 1 D-MAVT Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 18.04.2018 1 Ablauf Sorting Multidimensionale

More information

Contents. 1) Introduction to clustering 2) Partitioning Methods K-Means K-Medoid Choice of parameters: Initialization, Silhouette coefficient

Contents. 1) Introduction to clustering 2) Partitioning Methods K-Means K-Medoid Choice of parameters: Initialization, Silhouette coefficient Contents 1) Introduction to clustering 2) Partitioning Methods K-Means K-Medoid Choice of parameters: Initialization, Silhouette coefficient 3) Expectation Maximization: a statistical approach 4) Density-based

More information

Enabling Flexibility in Process-Aware Information Systems

Enabling Flexibility in Process-Aware Information Systems Enabling Flexibility in Process-Aware Information Systems Challenges, Methods, Technologies Bearbeitet von Manfred Reichert, Barbara Weber 1. Auflage 2012. Buch. xviii, 518 S. Hardcover ISBN 978 3 642

More information

Design Patterns Reid Holmes

Design Patterns Reid Holmes Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary

More information

Object-Process Methodology

Object-Process Methodology Object-Process Methodology A Holistic Systems Paradigm Bearbeitet von Dov Dori, E.F Crawley 1. Auflage 2002. Buch. xxv, 455 S. Hardcover ISBN 978 3 540 65471 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 1890

More information

Virtual Memory. Physical Addressing. Problem 2: Capacity. Problem 1: Memory Management 11/20/15

Virtual Memory. Physical Addressing. Problem 2: Capacity. Problem 1: Memory Management 11/20/15 Memory Addressing Motivation: why not direct physical memory access? Address translation with pages Optimizing translation: translation lookaside buffer Extra benefits: sharing and protection Memory as

More information

Dwg viewer free download vista. Dwg viewer free download vista.zip

Dwg viewer free download vista. Dwg viewer free download vista.zip Dwg viewer free download vista Dwg viewer free download vista.zip free dwg viewer free download - Free DWG Viewer, Free DWG Viewer, DWG Viewer, and many more programsdeep View Free DWG DXF Viewer, free

More information

Slide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D

Slide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D Slide 1 Design Patterns Prof. Mirco Tribastone, Ph.D. 22.11.2011 Introduction Slide 2 Basic Idea The same (well-established) schema can be reused as a solution to similar problems. Muster Abstraktion Anwendung

More information

Fortran? C++? Egal! Ein guter Programmierer kann Spaghetti-Code in jeder Sprache schreiben!

Fortran? C++? Egal! Ein guter Programmierer kann Spaghetti-Code in jeder Sprache schreiben! Fortran? C++? Egal! Ein guter Programmierer kann Spaghetti-Code in jeder Sprache schreiben! Wohl nicht ganz ernstgemeinte Bemerkung eines unbekannten Software-Gurus (Gehört irgendwann Ende der 90er Jahre)

More information

Design of Software Systems (Ontwerp van SoftwareSystemen) Design Patterns Reference. Roel Wuyts

Design of Software Systems (Ontwerp van SoftwareSystemen) Design Patterns Reference. Roel Wuyts Design of Software Systems (Ontwerp van SoftwareSystemen) Design Patterns Reference 2015-2016 Visitor See lecture on design patterns Design of Software Systems 2 Composite See lecture on design patterns

More information

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

Introduction to Design Patterns

Introduction to Design Patterns Introduction to Design Patterns First, what s a design pattern? a general reusable solution to a commonly occurring problem within a given context in software design It s not a finished design that can

More information

Verkürze & optimiere Softwareentwicklungszyklen mit Application Performance Monitoring und DevOps

Verkürze & optimiere Softwareentwicklungszyklen mit Application Performance Monitoring und DevOps Verkürze & optimiere Softwareentwicklungszyklen mit Application Performance Monitoring und DevOps Volker Linz Senior Sales Consultant IT Systems Management Oracle Agenda Herausforderungen in der Softwareentwicklung

More information

Einführung in die Kognitive Ergonomie

Einführung in die Kognitive Ergonomie 185 Vorlesung 10, den 20. Januar 2000 186 185 Vorlesung 10, den 20. Januar 2000 Donnerstag, den 20. Januar 2000 Einführung in die Kognitive Ergonomie Wintersemester 1999/2000 1. Usability Principles (continued)

More information

LilyPond Automated music formatting and The Art of Shipping

LilyPond Automated music formatting and The Art of Shipping LilyPond Automated music formatting and The Art of Shipping Han-Wen Nienhuys LilyPond Software Design Jan Nieuwenhuizen 7th Fórum Internacional Software Livre April 20, 2006. Porto Alegre, Brazil But that

More information

Übungsfragen für den Test zum OMG Certified UML Professional (Intermediate) Download

Übungsfragen für den Test zum OMG Certified UML Professional (Intermediate) Download Die Prüfung zum OCUP (UML Certified UML Professional) besteht aus einem computerbasierten Multiple- Choise-Test, dessen Testfragen aus einem Pool für jeden Kanidaten neu zusammengestellt werden. Die Fragen

More information

FXD A new exchange format for fault symptom descriptions

FXD A new exchange format for fault symptom descriptions FXD A new exchange format for fault symptom descriptions Helmut Wellnhofer, Matthias Stampfer, Michael Hedenus, Michael Käsbauer Abstract A new format called FXD (=Fault symptom exchange Description) was

More information

Component vs. Module

Component vs. Module Component vs. Module Component : non-trivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture. Component can be installed

More information

Mobile Transport Layer

Mobile Transport Layer Mobile Transport Layer 1 Transport Layer E.g. HTTP (used by web services) typically uses TCP Reliable transport between client and server required TCP Stream oriented Network friendly: time-out congestion

More information

What s New? SAP HANA SPS 07 Fuzzy Search (Delta from SPS 06 to SPS 07) SAP HANA Product Management November, 2013

What s New? SAP HANA SPS 07 Fuzzy Search (Delta from SPS 06 to SPS 07) SAP HANA Product Management November, 2013 What s New? SAP HANA SPS 07 Fuzzy Search (Delta from SPS 06 to SPS 07) SAP HANA Product Management November, 2013 Scope The scope of the extended development topic SAP HANA Fuzzy Search covers Fault-tolerant

More information

Structured Peer-to-Peer Services for Mobile Ad Hoc Networks

Structured Peer-to-Peer Services for Mobile Ad Hoc Networks DOCTORAL DISSERTATION Structured Peer-to-Peer Services for Mobile Ad Hoc Networks Dissertation zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften im Fachbereich Mathematik und

More information

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader... Table of Contents Foreword..................... xv About This Book... xvii About The Authors............... xxiii Guide To The Reader.............. xxvii Part I Some Concepts.................. 1 1 On Patterns

More information

The COSA Framework. A Cognitive System Architecture with its implementation based on a CORBA-wrapped SOAR process

The COSA Framework. A Cognitive System Architecture with its implementation based on a CORBA-wrapped SOAR process The COSA Framework A Cognitive System Architecture with its implementation based on a CORBA-wrapped SOAR process Henrik J. Putzer Institut für Systemdynamik and Flugmechanik Universität der Bundeswehr

More information

Design Patterns Revisited

Design Patterns Revisited CSC 7322 : Object Oriented Development J Paul Gibson, A207 paul.gibson@int-edu.eu http://www-public.it-sudparis.eu/~gibson/teaching/csc7322/ Design Patterns Revisited /~gibson/teaching/csc7322/l13-designpatterns-2.pdf

More information

SmartNode 4900 IpChannel Bank

SmartNode 4900 IpChannel Bank For Quick Start Installation SmartNode 4900 IpChannel Bank Quick Start Guide Sales Office: +1 (301) 975-1000 Technical Support: +1 (301) 975-1007 E-mail: support@patton.com WWW: www.patton.com Part Number:

More information

Heresies and Dogmas in Software

Heresies and Dogmas in Software Heresies and Dogmas in Software Development @deanwampler CME Group Technology Conference 2011 Functional Programming for Java Developers Dean Wampler programmingscala.com polyglotprogramming.com/ fpjava

More information

Using Design Patterns in Java Application Development

Using Design Patterns in Java Application Development Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.

More information

1 enum class -- scoped and strongly typed enums

1 enum class -- scoped and strongly typed enums enum class -- scoped and strongly typed enums C - enums mit Problemen: konvertierbar nach int exportieren ihre Aufzählungsbezeichner in den umgebenden Bereich (name clashes) schwach typisiert (z.b. keine

More information

X.media.publishing. Multimedia Systems. Bearbeitet von Ralf Steinmetz, Klara Nahrstedt

X.media.publishing. Multimedia Systems. Bearbeitet von Ralf Steinmetz, Klara Nahrstedt X.media.publishing Multimedia Systems Bearbeitet von Ralf Steinmetz, Klara Nahrstedt 1. Auflage 2004. Buch. xvi, 466 S. Hardcover ISBN 978 3 540 40867 3 Format (B x L): 17,8 x 23,5 cm Gewicht: 2510 g Weitere

More information

TDM+VoIP Smart Media Gateway

TDM+VoIP Smart Media Gateway SmartNode SN11A Series TDM+VoIP Smart Media Gateway Quick Start Guide Important This is a Class A device and is not intended for use in a residential environment. Part Number: MSN11-QS, Rev. C Revised:

More information

AC500. Application Note. Scalable PLC for Individual Automation. AC500-S safety PLC - Overview of changes in Automation Builder 2.1.x and 2.0.

AC500. Application Note. Scalable PLC for Individual Automation. AC500-S safety PLC - Overview of changes in Automation Builder 2.1.x and 2.0. Application Note AC500 Scalable PLC for Individual Automation AC500-S safety PLC - Overview of changes in Automation Builder 2.1.x and 2.0.x ABB Automation Products GmbH Wallstadter Str. 59 D-68526 Ladenburg

More information

CS 251 Intermediate Programming Methods and Classes

CS 251 Intermediate Programming Methods and Classes CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

Egon Borger (Pisa) Capturing Design Pattern Abstractions by ASMs

Egon Borger (Pisa) Capturing Design Pattern Abstractions by ASMs Egon Borger (Pisa) Capturing Design Pattern Abstractions by ASMs Universita di Pisa, Dipartimento di Informatica, I-56127 Pisa, Italy boerger@di.unipi.it visiting SAP Research, Karlsruhe, Germany egon.boerger@sap.com

More information

xpipe Reception of DICOM Data from any Sender via the Internet

xpipe Reception of DICOM Data from any Sender via the Internet 380 xpipe Reception of DICOM Data from any Sender via the Internet xpipe Empfang von DICOM-Daten beliebiger Absender via Internet Authors Affiliation J. Czwoydzinski, R. Eßeling, N. Meier, W. Heindel,

More information

Week - 01 Lecture - 04 Downloading and installing Python

Week - 01 Lecture - 04 Downloading and installing Python Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and

More information

COPYRIGHT: NACHGEDRUCKT ODER SONST REPRODUZIERT WERDEN (Z. B. AUF CD-ROM ODER IM INTERNET).

COPYRIGHT: NACHGEDRUCKT ODER SONST REPRODUZIERT WERDEN (Z. B. AUF CD-ROM ODER IM INTERNET). COPYRIGHT: D EUTSCH DIESE DRUCKSCHRIFT UND ALLE IHRE BESTANDTEILE IST URHEBERECHTLICH GESCHÜTZT. ABBILDUNGEN, GRAFISCHE DARSTELLUNGEN, TEXTE ODER DIE DRUCKSCHRIFT INSGESAMT ODER IN TEILEN DÜRFEN NICHT

More information

QUIZ How do we implement run-time constants and. compile-time constants inside classes?

QUIZ How do we implement run-time constants and. compile-time constants inside classes? QUIZ How do we implement run-time constants and compile-time constants inside classes? Compile-time constants in classes The static keyword inside a class means there s only one instance, regardless of

More information

C1-MFD3-R3. Compatible with navigation systems Volkswagen RNS510, RNS810 Skoda Columbus Seat Trinax

C1-MFD3-R3. Compatible with navigation systems Volkswagen RNS510, RNS810 Skoda Columbus Seat Trinax c.logic lite-interface Compatible with navigation systems Volkswagen RNS510, RNS810 Skoda Columbus Seat Trinax Only for vehicles WITH factory rear-view camera WITH camera control-box Product features full

More information

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1 What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely

More information

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University Introduction to Computers and Programming Languages CS 180 Sunil Prabhakar Department of Computer Science Purdue University 1 Objectives This week we will study: The notion of hardware and software Programming

More information

Design Patterns in C++

Design Patterns in C++ Design Patterns in C++ Structural Patterns Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa March 23, 2011 G. Lipari (Scuola Superiore Sant Anna) Structural patterns March

More information

(D)COM Microsoft s response to CORBA. Alessandro RISSO - PS/CO

(D)COM Microsoft s response to CORBA. Alessandro RISSO - PS/CO (D)COM Microsoft s response to CORBA Alessandro RISSO - PS/CO Talk Outline DCOM What is DCOM? COM Components COM Library Transport Protocols, Security & Platforms Availability Services Based on DCOM DCOM

More information

TriCore TM 1 Pipeline Behaviour & Instruction Execution Timing

TriCore TM 1 Pipeline Behaviour & Instruction Execution Timing Application Note, V 1.1, Jan. 2000 AP32071 TriCore TM 1 Pipeline Behaviour & Instruction Execution Timing TriCore TM 1 Modular (TC1M) Microcontrollers Never stop thinking. TriCore TM 1 Revision History:

More information

Copyright (C) Fujitsu Siemens Computers GmbH 2008 All rights reserved

Copyright (C) Fujitsu Siemens Computers GmbH 2008 All rights reserved Fujitsu Siemens Computers GmbH XHCS-SYS (BS2000/OSD) Version 2.0A June 2008 Release Notice Copyright (C) Fujitsu Siemens Computers GmbH 2008 All rights reserved Release Notice XHCS-SYS V2.0A 1 General

More information

Design and implementation of Virtual Security Appliances (VSA) for SME

Design and implementation of Virtual Security Appliances (VSA) for SME Design and implementation of Virtual Security Appliances (VSA) for SME Prof. Dr. Kai-Oliver Detken, DECOIT GmbH (Germany) Christoph Dwertmann, NICTA (Australia) Table of contents Short introduction of

More information

What s New? SAP HANA SPS 07 Administration & Monitoring (Delta from SPS 06 to SPS 07) SAP HANA Product Management November, 2013

What s New? SAP HANA SPS 07 Administration & Monitoring (Delta from SPS 06 to SPS 07) SAP HANA Product Management November, 2013 What s New? SAP HANA SPS 07 Administration & Monitoring (Delta from SPS 06 to SPS 07) SAP HANA Product Management November, 2013 Content This presentation provides an overview of the changes regarding

More information

SoberIT Software Business and Engineering Institute. SoberIT Software Business and Engineering Institute. Contents

SoberIT Software Business and Engineering Institute. SoberIT Software Business and Engineering Institute. Contents Architecture Description Languages (ADLs): Introduction, Koala, UML as an ADL T-76.150 Software Architecture Timo Asikainen Contents Brief motivation for ADLs General features of ADLs Koala UML as an ADL

More information

1. SQL definition SQL is a declarative query language 2. Components DRL: Data Retrieval Language DML: Data Manipulation Language DDL: Data Definition

1. SQL definition SQL is a declarative query language 2. Components DRL: Data Retrieval Language DML: Data Manipulation Language DDL: Data Definition SQL Summary Definitions iti 1. SQL definition SQL is a declarative query language 2. Components DRL: Data Retrieval Language DML: Data Manipulation Language g DDL: Data Definition Language DCL: Data Control

More information

Using extensible metadata definitions to create a vendor independent SIEM system

Using extensible metadata definitions to create a vendor independent SIEM system Using extensible metadata definitions to create a vendor independent SIEM system Prof. Dr. Kai Oliver Detken (DECOIT GmbH) * Dr. Dirk Scheuermann (Fraunhofer SIT) * Bastian Hellmann (University of Applied

More information

Data Warehousing. Metadata Management. Spring Term 2016 Dr. Andreas Geppert Spring Term 2016 Slide 1

Data Warehousing. Metadata Management. Spring Term 2016 Dr. Andreas Geppert Spring Term 2016 Slide 1 Data Warehousing Metadata Management Spring Term 2016 Dr. Andreas Geppert geppert@acm.org Spring Term 2016 Slide 1 Outline of the Course Introduction DWH Architecture DWH-Design and multi-dimensional data

More information

Continuous Delivery. für Java Anwendungen. Axel Fontaine Software Development Expert

Continuous Delivery. für Java Anwendungen. Axel Fontaine Software Development Expert 07.04.2011 Continuous Delivery für Java Anwendungen Axel Fontaine Software Development Expert twitter.com/axelfontaine www.axelfontaine.com business@axelfontaine.com Ceci n est pas une build tool. Ceci

More information

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008 Distributed Systems Theory 4. Remote Procedure Call October 17, 2008 Client-server model vs. RPC Client-server: building everything around I/O all communication built in send/receive distributed computing

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

Design Patterns. An introduction

Design Patterns. An introduction Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at

More information

SAP HANA Revision Strategy. SAP HANA Product Management May 2014

SAP HANA Revision Strategy. SAP HANA Product Management May 2014 SAP HANA Revision Strategy SAP HANA Product Management May 2014 Table of Contents SAP HANA Revision Understand the difference between Support Package Stack, Support Packages and Revisions SAP HANA Release

More information

The activities described in these upgrade instructions may only be performed by engineers or maintenance/technical staff.

The activities described in these upgrade instructions may only be performed by engineers or maintenance/technical staff. Introduction The upgrade instructions show how to remove the standard power supply and replace it with a hotplug power supply. The following steps only apply to the PRIMERGY 400 and 00 tower servers.!

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

More information

Status of the "H.325 Project"

Status of the H.325 Project Status of the "H.325 Project" Status of the "ITU-T T H.325 Project" Istvan Sebestyen, Siemens AG Dave Lindbergh, Polycom Inc. May 2006 What is H.325?? 3rd Generation of multimedia system and terminal standards

More information