Clean Architecture Patterns, Practices, and #DevSum17

Size: px
Start display at page:

Download "Clean Architecture Patterns, Practices, and #DevSum17"

Transcription

1 Clean Architecture Patterns, Practices, and #DevSum17

2

3

4

5

6

7

8 About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker Pluralsight Author Microsoft MVP ASPInsider Open-Source Software

9 Overview 1. Clean Architecture 2. Domain-Centric Architecture 3. Application Layer 4. Commands and Queries 5. Functional Organization 6. Microservices

10 Focus Enterprise Architecture Line-of-Business Applications Modern equivalent of 3-Layer

11 Focus Generally applicable 6 Key Points Q & A

12 What is Software Architecture? High-level Structure Layers Components Relationships Source: en-us/library/ff aspx

13 Levels of Architectural Abstraction System Sub-systems Layers Components Classes Data and Methods

14 Levels of Architectural Abstraction System Sub-systems Layers Components Classes Data and Methods

15 Messy vs Clean Architecture

16 Messy vs Clean Architecture

17 Messy vs Clean Architecture

18 What Is Bad Architecture? Complex Inconsistent Incoherent Rigid Brittle Untestable Unmaintainable

19 What Is Clean Architecture? Simple Understandable Flexible Emergent Testable Maintainable

20 What Is Clean Architecture? Architecture that is designed for the inhabitants of the architecture not for the architect or the machine

21 What Is Clean Architecture? Architecture that is designed for the inhabitants of the architecture not for the architect or the machine

22 What Is Clean Architecture? Architecture that is designed for the inhabitants of the architecture not for the architect or the machine

23 What Is Clean Architecture? Architecture that is designed for the inhabitants of the architecture not for the architect or the machine

24 What Is Clean Architecture? Architecture that is designed for the inhabitants of the architecture not for the architect or the machine

25 Why Is Clean Architecture Important? Cost/benefit Minimize cost to maintain Maximize business value

26 Decisions, Decisions, Decisions Context is king

27 Decisions, Decisions, Decisions Context is king All decisions are a tradeoff

28 Decisions, Decisions, Decisions Context is king All decisions are a tradeoff Use your best judgement

29 Domain-Centric Architecture

30 Venus Mars Earth Mercury Sun Moon Jupiter Saturn

31 Earth Mars Venus Sun Mercury Jupiter Saturn

32 Venus Earth Mars Earth Mercury Sun Mars Venus Sun Mercury Moon Jupiter Saturn Jupiter Saturn Geocentric Model Heliocentric Model

33 Classic 3-layer Database-centric Architecture UI Business Logic Data Access Database Database

34 Database- vs. Domain-centric Architecture UI Presentation Business Logic Application Data Access Database Database Database Domain Database

35 The first concern of the architect is to make sure that the house is usable, it is not to ensure that the house is made of brick. Uncle Bob

36 Essential vs. Detail Space is essential Usability is essential

37 Essential vs. Detail Building material is a detail Ornamentation is a detail

38 Essential vs. Detail Domain is essential Use cases are essential

39 Essential vs. Detail Presentation is a detail Persistence is a detail

40 Database- vs. Domain-centric Architecture UI Presentation Business Logic Application Data Access Database Database Database Domain Database

41 Hexagonal Architecture answering machine adapter http feed GUI http adapter Application adapter mock telephone database adapter DB app app-to-app adapter test adapter mock database Original source:

42 Onion Architecture User Interface Application Services Domain Services Domain Database Model Application Core web service file DB Original source:

43 Clean Architecture Controllers Use Cases Database Entities Presenter Use case output port I Flow of Control Use case interactor External Interfaces Controller Use case input port I Original source:

44 It s All the Same Thing Hexagonal Onion Clean Original Source:

45 Why Use Domain-Centric Architecture? Pros Focus on essential Less coupling to details Necessary for DDD

46 Why Use Domain-Centric Architecture? Pros Focus on essential Less coupling to details Necessary for DDD Cons Change is difficult Requires extra thought Initial higher cost

47 Application Layer

48 What Are Layers? Levels of abstraction Single-Responsibility Principle Developer roles / skills Multiple implementations Varying rates of change

49 Classic 3-Layer Architecture Users UI Business Logic Data Access Database Dependency

50 Modern 4-Layer Architecture Users Presentation Application Domain Persistence Infrastructure Cross-Cutting Concerns Database OS Dependency

51 Application Layer Users Implements use cases High-level application logic Presentation Application Domain Persistence Infrastructure Cross-Cutting Concerns Database OS Dependency

52 Application Layer Users Knows about domain No knowledge of other layers Contains interfaces for details Presentation Application Domain Persistence Infrastructure Cross-Cutting Concerns Database OS Dependency

53 Layer Dependencies Users Dependency inversion Inversion of control Presentation Application Domain Persistence Infrastructure Cross-Cutting Concerns Database OS Flow of Control Dependency

54 Layer Dependencies Users Dependency inversion Inversion of control Independent deployability Flexibility and maintainability Presentation Application Domain Persistence Infrastructure Cross-Cutting Concerns Database OS Flow of Control Dependency

55 Users Presentation SalesController Application ICreateSaleCommand CreateSaleCommand IDatabaseContext IInventoryClient Domain IDateService DateService Cross-Cutting Concerns Sale Persistence DatabaseContext Database InventoryClient OS Infrastructure Composition Implements

56 Why Use an Application Layer? Pros Focus is on use cases Easy to understand Follows DIP

57 Why Use an Application Layer? Pros Focus is on use cases Easy to understand Follows DIP Cons Additional cost Requires extra thought IoC is counter-intuitive

58 Commands and Queries

59 Command-Query Separation Command Does something Should modify state Should not return a value

60 Command-Query Separation Command Does something Should modify state Should not return a value Query Answers a question Should not modify state Always returns a value

61 Command-Query Separation Command Does something Should modify state Should not return a value (ideally) Query Answers a question Should not modify state Always returns a value Avoid mixing the two!

62 CQRS Architectures Users Presentation Queries Commands Domain Data Access Persistence Database Data Flow

63 CQRS Architectures Users Presentation Queries Commands Domain Data Access Persistence Database Data Flow

64 CQRS Architectures Users Presentation Queries Commands Domain Data Access Persistence Database Data Flow

65 CQRS Architectures Users Presentation Queries Commands Domain Data Access Persistence Database Data Flow

66 CQRS Type 1 Single Database Users Presentation Queries Commands Domain Data Access Persistence Database Data Flow

67 CQRS Type 1 Single Database Users Presentation Queries Commands Domain Data Access Persistence Database Data Flow

68 CQRS Type 1 Single Database Users Presentation Queries Commands Domain Data Access Persistence Database Data Flow

69 CQRS Type 2 Read/Write Databases Users Presentation Queries Commands Domain Data Access Read Database Persistence Write Database Data Flow

70 CQRS Type 2 Read/Write Databases Users Presentation Queries Commands Domain Data Access Read Database Persistence Write Database Data Flow

71 CQRS Type 2 Read/Write Databases Users Presentation Queries Commands Domain Data Access Read Database Persistence Write Database Data Flow

72 CQRS Type 2 Read/Write Databases Users Presentation Queries Commands Domain Data Access Read Database Persistence Write Database Data Flow

73 CQRS Type 2 Read/Write Databases Users Presentation Queries Commands Domain Data Access Read Database Persistence Write Database Data Flow

74 CQRS Type 3 Event Sourcing Users Presentation Queries Commands Domain Data Access Read Database Persistence Event Store Data Flow

75 CQRS Type 3 Event Sourcing Users Events Queries Presentation Commands Domain Sale Created Item 1 Added Item 2 Added Data Access Persistence Payment Made Read Database Event Store Data Flow Sale Completed

76 CQRS Type 3 Event Sourcing Users Events Queries Presentation Commands Domain Sale Created Item 1 Added Item 2 Added Data Access Persistence Payment Made Read Database Event Store Data Flow Sale Completed

77 CQRS Type 3 Event Sourcing Users Presentation Queries Commands Domain Data Access Read Database Persistence Event Store Data Flow

78 CQRS Type 3 Event Sourcing Users Complete audit trail Point-in-time reconstruction Replay events Rebuild production database Presentation Queries Commands Domain Data Access Persistence Read Database Event Store

79 Why Use CQRS? Pros More efficient design Simpler within each stack Optimized performance

80 Why Use CQRS? Pros More efficient design Simpler within each stack Optimized performance Cons Inconsistent across stacks Type 2 is more complex Type 3 might be overkill

81 Functional Organization

82 The architecture should scream the intent of the system! Uncle Bob

83 Bedroom Bath Kitchen Entry Bedroom Dining Room Living Room Utility

84 Material Quantity Cost Appliances 5 $5,000 Cabinets 10 $2,500 Doors 15 $750 Fixtures 12 $2,400 Floors 9 $4,000 Walls 20 $10,000 Windows 8 $2,500

85 Models Views Controllers

86 Models Customers vs Views Controllers Products Vendors

87 Content Controllers Models Scripts Views

88 Content Controllers Models Scripts Views vs Customers Employees Products Sales Vendors

89 So what?

90

91 vs

92 Why Use Functional Organization Pros Spatial locality Easy to navigate Avoid vendor lock-in

93 Why Use Functional Organization Pros Spatial locality Easy to navigate Avoid vendor lock-in Cons Lose framework conventions Lose automatic scaffolding Categorical is easier at first

94 Microservices

95 Components Users UI Sales Support Inventory Business Sales Support Inventory Data Access Sales Support Inventory Database

96 Problem Domain Sales Sales Opportunity Contact Sales Person Product Sales Territory Support Support Ticket Customer Support Person Product Resolution

97 Single Domain Model Customer Sales Territory Sales Opportunity Product Support Ticket Resolution Employee

98 Single Domain Model Customer Sales Territory Sales Opportunity Product Support Ticket Resolution Employee

99 Single Domain Model Customer Sales Territory Sales Opportunity Product Support Ticket Resolution Employee

100 Single Domain Model Customer Sales Territory Sales Opportunity Product Support Ticket Resolution Employee

101 Overlapping Contexts Sales Customer Support Sales Territory Sales Opportunity Product Support Ticket Resolution Employee

102 Bounded Contexts Sales Support Contact Customer Sales Territory Sales Opportunity Product Product Support Ticket Resolution Sales Person Support Person

103 Microservice Architectures Support Sales Inventory Marketing HR

104 Microservice Architectures Support Subdivide system Sales Inventory Marketing HR

105 Microservice Architectures Support Subdivide system Light-weight APIs Sales Inventory Marketing HR

106 Microservice Architectures Support Subdivide system Light-weight APIs Small teams Sales Inventory Marketing HR

107 Microservice Architectures Support Independent Sales Inventory Marketing HR

108 Microservice Architectures Support Independent Similar to SOA Sales Inventory Marketing HR

109 Microservice Architectures Support Independent Similar to SOA Size matters Sales Inventory Marketing HR

110 Why Use Microservices? Pros Less cost for large domains Smaller teams Independence

111 Why Use Microservices? Pros Less cost for large domains Smaller teams Independence Cons Only for large domains Higher up-front cost Distributed system costs

112 Code Demo

113 Where to Go Next? Martin Fowler

114 Where to Go Next? Robert C. Martin

115 Where to Go Next? Eric Evans

116 Where to Go Next? Greg Young Udi Dahan

117 Where to Go Next? Articles Courses Presentations Source Code Videos

118

119 Conclusion

120 Summary Focus on the inhabitants

121 Summary Focus on the inhabitants Domain-centric Architecture Presentation Application Database Domain

122 Summary Focus on the inhabitants Domain-centric Architecture Application Layer Users Presentation Application Domain Persistence Infrastructure Cross-Cutting Concerns Database OS

123 Summary Focus on the inhabitants Domain-centric Architecture Application Layer Commands and Queries Queries Users Presentation Commands Domain Data Access Persistence Database

124 Summary Focus on the inhabitants Domain-centric Architecture Application Layer Commands and Queries Functional Cohesion Products Customers Vendors

125 Summary Focus on the inhabitants Domain-centric Architecture Application Layer Commands and Queries Functional Cohesion Bounded Contexts Sales Marketing Support Inventory HR

126 Feedback Very important to me! One thing you liked? One thing I could improve?

127 Contact Info Matthew Renze Data Science Consultant Renze Consulting Website: Thank You! : )

Clean Architecture Patterns, Practices, and #sddconf

Clean Architecture Patterns, Practices, and #sddconf Clean Architecture Patterns, Practices, and Principles @matthewrenze #sddconf About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker

More information

A Separation of Concerns Clean Architecture on Android

A Separation of Concerns Clean Architecture on Android A Separation of Concerns Clean Architecture on Android Kamal Kamal Mohamed Android Developer, //TODO Find Better Title @ Outware Mobile Ryan Hodgman Official Despiser of Utils Classes @ Outware Mobile

More information

Microservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson

Microservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson Microservices Beyond the Hype SATURN San Diego May 3, 2016 Paulo Merson Our goal Try to define microservice Discuss what you gain and what you lose with microservices 2 Defining Microservice Unfortunately

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

There is no such thing as a microservice!

There is no such thing as a microservice! There is no such thing as a microservice! Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net http://microservices.io http://eventuate.io

More information

SOA Distilled. Udi Dahan The Software Simplist..NET Development Expert & SOA Specialist Microsoft Solutions Architect MVP

SOA Distilled. Udi Dahan The Software Simplist..NET Development Expert & SOA Specialist Microsoft Solutions Architect MVP SOA Distilled Udi Dahan The Software Simplist.NET Development Expert & SOA Specialist Microsoft Solutions Architect MVP Udi Dahan - The Software Simplist Consulting, Mentoring & Training Helping you Keep

More information

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)

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

Build Testable Client and Service Applications

Build Testable Client and Service Applications Build Testable Client and Service Applications Brian Noyes IDesign Inc (www.idesign.net) brian.noyes@idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director MVP

More information

Hi! NET Developer Group Braunschweig!

Hi! NET Developer Group Braunschweig! Hi! NET Developer Group Braunschweig! Über Tobias Dipl. Informatiker (FH) Passionated Software Developer Clean Code Developer.NET Junkie.NET User Group Lead Microsoft PFE Software Development Twitter @Blubern

More information

HEARTLAND DEVELOPER CONFERENCE 2017 APPLICATION DATA INTEGRATION WITH SQL SERVER INTEGRATION SERVICES

HEARTLAND DEVELOPER CONFERENCE 2017 APPLICATION DATA INTEGRATION WITH SQL SERVER INTEGRATION SERVICES HEARTLAND DEVELOPER CONFERENCE 2017 APPLICATION DATA INTEGRATION WITH SQL SERVER INTEGRATION SERVICES SESSION ABSTRACT: APPLICATION DATA INTEGRATION WITH SQL SERVER INTEGRATION SERVICES What do you do

More information

Microservices with Kafka Ecosystem. Guido Schmutz

Microservices with Kafka Ecosystem. Guido Schmutz Microservices with Kafka Ecosystem Guido Schmutz @gschmutz doag2017 Guido Schmutz Working at Trivadis for more than 20 years Oracle ACE Director for Fusion Middleware and SOA Consultant, Trainer Software

More information

Application management in Nokia: Getting the most from Company Apps

Application management in Nokia: Getting the most from Company Apps Application management in Nokia: Getting the most from Case Study 2 Contents 1 Challenge...3 2...5 2.1 Deployment options...5 2.2 App security and authentication...7 2.3 Nokia...7 3 Company Hub...9 3.1

More information

Cisco Tetration Analytics

Cisco Tetration Analytics Cisco Tetration Analytics Enhanced security and operations with real time analytics John Joo Tetration Business Unit Cisco Systems Security Challenges in Modern Data Centers Securing applications has become

More information

Testing NodeJS, REST APIs and MongoDB with UFT January 19, 2016

Testing NodeJS, REST APIs and MongoDB with UFT January 19, 2016 Testing NodeJS, REST APIs and MongoDB with UFT January 19, 2016 Brought to you by Hosted By Bernard P. Szymczak Ohio Chapter Leader HP Software Education SIG Leader TQA SIG Leader Today s Speakers Ori

More information

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

Luckily, our enterprise had most of the back-end (services, middleware, business logic) already.

Luckily, our enterprise had most of the back-end (services, middleware, business logic) already. 2 3 4 The point here is that for real business applications, there is a connected back-end for services. The mobile part of the app is just a presentation layer that is unique for the mobile environment.

More information

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only Chapter 10 Component-Level Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit

More information

Choice, Choices, Choices: Fat versus Thin Clients

Choice, Choices, Choices: Fat versus Thin Clients Choice, Choices, Choices: Fat versus Thin Clients David Moskowitz Productivity Solutions, Inc. David Moskowitz Choices, Choices, Choices: Fat vs. Thin Clients Page 1 Agenda Definitions Myths Choices Approaches

More information

Application Deployment on IBM i

Application Deployment on IBM i Application Deployment on IBM i Mike Pavlak Solution Consultant Agenda Discuss architecture of and IBM i environment Explore what we use at Zend Change Management options Q&A 2 Disclaimer! Eric Ritchie

More information

Vendor: Oracle. Exam Code: 1z Exam Name: Siebel Customer Relationship Management (CRM) 8 Business Analyst. Version: Demo

Vendor: Oracle. Exam Code: 1z Exam Name: Siebel Customer Relationship Management (CRM) 8 Business Analyst. Version: Demo Vendor: Oracle Exam Code: 1z0-219 Exam Name: Siebel Customer Relationship Management (CRM) 8 Business Analyst Version: Demo QUESTION NO: 1 When does data get written to the Siebel database during Task

More information

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812) CSSE 374: Logical Architecture Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu An Engineering Decision Learning Outcomes: O-O Design Demonstrate object-oriented

More information

Reactive Systems. Dave Farley.

Reactive Systems. Dave Farley. Reactive Systems Dave Farley http://www.davefarley.net @davefarley77 Reactive Systems 21st Century Architecture for 21st Century Problems Dave Farley http://www.davefarley.net @davefarley77 http://www.continuous-delivery.co.uk

More information

Architecting and Implementing Domain-driven Design Patterns in.net

Architecting and Implementing Domain-driven Design Patterns in.net Architecting and Implementing Domain-driven Design Patterns in.net Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e WARNING This is NOT simply a shameless plug but a truly

More information

CQRS and Event Sourcing for Java Developers Markus Eisele

CQRS and Event Sourcing for Java Developers Markus Eisele CQRS and Event Sourcing for Java Developers Markus Eisele @myfear Agenda Classical architectures and modernization CRUD vs. CQRS A little example Wrapping it up Classical Architectures Application Server

More information

Service-Based Architecture

Service-Based Architecture Service-Based Architecture Mark Richards Independent Consultant Hands-on So*ware Architect Published Author / Conference Speaker h

More information

Logging, Monitoring, and Alerting

Logging, Monitoring, and Alerting Logging, Monitoring, and Alerting Logs are a part of daily life in the DevOps world In security, we focus on particular logs to detect security anomalies and for forensic capabilities A basic logging pipeline

More information

IBM Application Runtime Expert for i

IBM Application Runtime Expert for i IBM Application Runtime Expert for i Tim Rowe timmr@us.ibm.com Problem Application not working/starting How do you check everything that can affect your application? Backup File Owner & file size User

More information

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries

More information

Docker and Oracle Everything You Wanted To Know

Docker and Oracle Everything You Wanted To Know Docker and Oracle Everything You Wanted To Know June, 2017 Umesh Tanna Principal Technology Sales Consultant Oracle Sales Consulting Centers(SCC) Bangalore Safe Harbor Statement The following is intended

More information

Glass V4, More Info For Your Solution

Glass V4, More Info For Your Solution Glass V4, More Info For Your Solution Mike Edwards Glass @mikeedwards83 @glasslu 1 Glass V4, More Info For Your Solution Modeling Mike Edwards Glass @mikeedwards83 @glasslu 2 Hello! Mike Edwards Sitecore

More information

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS Borland Together FREQUENTLY ASKED QUESTIONS GENERAL QUESTIONS What is Borland Together? Borland Together is a visual modeling platform that enables software teams to consistently deliver on-time, high

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

Improving Application Performance by Submitting Scripts to Batch using Zend Server for IBM i

Improving Application Performance by Submitting Scripts to Batch using Zend Server for IBM i Improving Application Performance by Submitting Scripts to Batch using Zend Server for IBM i Mike Pavlak Solution Consultant mike.p@zend.com Insert->Header 1 & Footer Agenda Overview of Zend Server Advantages

More information

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

Improve SSIS Delivery with a Patterns-Based Approach. Meagan Longoria July 19, 2017

Improve SSIS Delivery with a Patterns-Based Approach. Meagan Longoria July 19, 2017 Improve SSIS Delivery with a Patterns-Based Approach Meagan Longoria July 19, 2017 What If I Told You 90% of your data integration development in SQL Server could be automated? In 5 years, you will be

More information

Dell Digital Signage. One Solution. Infinite Possibilities.

Dell Digital Signage. One Solution. Infinite Possibilities. Dell Digital Signage TM One Solution. Infinite Possibilities. Dell Digital Signage Dell simplifies digital signage by providing the complete digital signage solution hardware, software, and services customized

More information

SharePoint For All. Jennie Delisi Accessibility Analyst Kris Schulze User Experience

SharePoint For All. Jennie Delisi Accessibility Analyst Kris Schulze User Experience SharePoint For All Jennie Delisi Accessibility Analyst Kris Schulze User Experience Question 1 Do you work for the State of MN, county, city, other? (Text field beside other) State of MN executive branch

More information

Scaling Trust with Millions of Containers: Microsegmentation Strategies for Authorization

Scaling Trust with Millions of Containers: Microsegmentation Strategies for Authorization Scaling Trust with Millions of Containers: Microsegmentation Strategies for Authorization 1 About Me Drupal Security Team Database Maintainer Service Mgmt for RHEL/Ubuntu Committer Scalable CGroups Management

More information

Tech Talk Nutanix Calm. Greg Smith, VP Product Marketing Gil Haberman, Director of Product Marketing

Tech Talk Nutanix Calm. Greg Smith, VP Product Marketing Gil Haberman, Director of Product Marketing Tech Talk Nutanix Calm Greg Smith, VP Product Marketing Gil Haberman, Director of Product Marketing Building an Enterprise Cloud One-Click Operations Virtualization Server Data Protection Storage Networking

More information

Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker

Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker 02.03.2017 About Myself DR. ALEXANDER FRIED Chief Technology Officer 2 OUR SOLUTIONS DIGITAL ASSET MANAGEMENT Organize & Share Any File, Any Format,

More information

in Microservices using DDD, Event Sourcing & CQRS Augusto Branquinho Mike Shigueru Matsumoto

in Microservices using DDD, Event Sourcing & CQRS Augusto Branquinho Mike Shigueru Matsumoto in Microservices using DDD, Event Sourcing & CQRS Augusto Branquinho Mike Shigueru Matsumoto 1. Real Wave Modules Marketing Sales Care Technical stack Frontend Integration Backend Payments Insights Integration

More information

Architecting ASP.NET Applications

Architecting ASP.NET Applications Architecting ASP.NET Applications About me Name: Gunnar Peipman Origin: Tallinn, Estonia Work: Architect, developer Microsoft: ASP.NET/IIS MVP Community: Blogger, speaker Blog: http://gunnarpeipman.com

More information

Agile Architecture. The Why, the What and the How

Agile Architecture. The Why, the What and the How Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile

More information

Services Oriented Architecture and the Enterprise Services Bus

Services Oriented Architecture and the Enterprise Services Bus IBM Software Group Services Oriented Architecture and the Enterprise Services Bus The next step to an on demand business Geoff Hambrick Distinguished Engineer, ISSW Enablement Team ghambric@us.ibm.com

More information

ArcSight Activate Framework

ArcSight Activate Framework ArcSight Activate Framework Petropoulos #HPProtect 44% Have trouble managing their SIEM eiqnetworks 2013 SIEM Survey #1 challenge Identification of key events SANS 2012 Log Management and Event Management

More information

5. Application Layer. Introduction

5. Application Layer. Introduction Book Preview This is a sample chapter of Professional PHP - Building maintainable and secure applications. The book starts with a few theory chapters and after that it is structured as a tutorial. The

More information

Copyright Wyyzzk, Inc Version 5.0. Introduction to Software Architecture

Copyright Wyyzzk, Inc Version 5.0. Introduction to Software Architecture Introduction to Software Architecture Lesson Goal & Objectives Understand the purpose of software architecture. Upon completion of the lesson, the participant will be able to: Describe the purpose of software

More information

WEB & MOBILE AUTOMATION

WEB & MOBILE AUTOMATION WEB & MOBILE AUTOMATION 11 th Feb 2017 Presenter: (CoE) 9 Mansi, 5 th Floor, Cross Lane No. 1, Ram Maruti Road, Thane West Email: info@educognitio.com Phone: +91 (0)22 65555131 Web:http://www.educognitio.com

More information

XBS Application Development Platform

XBS Application Development Platform Introduction to XBS Application Development Platform By: Liu, Xiao Kang (Ken) Xiaokang Liu Page 1/10 Oct 2011 Overview The XBS is an application development platform. It provides both application development

More information

Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation

Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation Microservices Autonomous API Gateway Events Service Discovery Circuit Breakers Commands Aggregates Bounded Context Event Bus Domain Events

More information

August, HPE Propel Microservices & Jumpstart

August, HPE Propel Microservices & Jumpstart August, 2016 HPE Propel s & Jumpstart Jumpstart Value Quickly build modern web applications Single page application Modular microservices architecture app generator Modularity provides better upgradeability

More information

Security Challenges: Integrating Apple Computers into Windows Environments

Security Challenges: Integrating Apple Computers into Windows Environments Integrating Apple Computers into Windows Environments White Paper Parallels Mac Management for Microsoft SCCM 2018 Presented By: Table of Contents Environments... 3 Requirements for Managing Mac Natively

More information

HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos

HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos Welcome This presentation will discuss Writing user

More information

Developing Java TM 2 Platform, Enterprise Edition (J2EE TM ) Compatible Applications Roles-based Training for Rapid Implementation

Developing Java TM 2 Platform, Enterprise Edition (J2EE TM ) Compatible Applications Roles-based Training for Rapid Implementation Developing Java TM 2 Platform, Enterprise Edition (J2EE TM ) Compatible Applications Roles-based Training for Rapid Implementation By the Sun Educational Services Java Technology Team January, 2001 Copyright

More information

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture Evaluating a Service-Oriented Architecture Paulo Merson, SEI with Phil Bianco, SEI Rick Kotermanski, Summa Technologies May 2007 Goal: Offer practical information to help the architecture evaluation of

More information

Microsoft 365 powered device webinar series Microsoft 365 powered device Assessment Kit. Alan Maddison, Architect Amit Bhatia, Architect

Microsoft 365 powered device webinar series Microsoft 365 powered device Assessment Kit. Alan Maddison, Architect Amit Bhatia, Architect Microsoft 365 powered device webinar series Microsoft 365 powered device Assessment Kit Alan Maddison, Architect Amit Bhatia, Architect Why did we create the Assessment kit? Assessment objectives Assess

More information

Automated Bundling and Other New Features in IBM License Metric Tool 7.5 Questions & Answers

Automated Bundling and Other New Features in IBM License Metric Tool 7.5 Questions & Answers ILMT Central Team Automated Bundling and Other New Features in IBM License Metric Tool 7.5 Questions & Answers Information These slides were just the deck of the ILMT Central Team Questions&Answers session.

More information

Mastering SOA Challenges more cost-effectively. Bodo Bergmann Senior Software Engineer Ingres Corp.

Mastering SOA Challenges more cost-effectively. Bodo Bergmann Senior Software Engineer Ingres Corp. Mastering SOA Challenges more cost-effectively Bodo Bergmann Senior Software Engineer Ingres Corp. 1 Contents Tell me why? SOA INGRES and SOA SOA Challenges Mastering selected challenges 2 Service-Oriented

More information

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg Building loosely coupled and scalable systems using Event-Driven Architecture Jonas Bonér Patrik Nordwall Andreas Källberg Why is EDA Important for Scalability? What building blocks does EDA consists of?

More information

Logical Architecture & Design Preliminaries

Logical Architecture & Design Preliminaries Logical Architecture & Design Preliminaries CSSE 574: Week 2, Part 4 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu From Requirements to Architecture Customer

More information

Oracle Applications in a Changing Business World. Legacy Oracle Applications Won't Be Around Forever. Will You?

Oracle Applications in a Changing Business World. Legacy Oracle Applications Won't Be Around Forever. Will You? Oracle Applications in a Changing Business World Legacy Oracle Applications Won't Be Around Forever. Will You? Ross Smith Chief Architect July 7, 2017 2 Oracle Applications in a Changing Business World

More information

Object Oriented Analysis and Design - Part2(Design)

Object Oriented Analysis and Design - Part2(Design) Object Oriented Analysis and Design - Part2(Design) Exam A QUESTION 1 Which statement is true about elements within the subsystem and public visibility? A. Only the subset of elements that define the subsystems

More information

Domain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements

Domain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements Domain Driven Design IS An architectural methodology for evolving a software system that closely aligns to business requirements Domain Driven Design IS Domain First Focus on the Object Model Focus on

More information

Oracle Forms and Oracle APEX The Odd Couple

Oracle Forms and Oracle APEX The Odd Couple Oracle Forms and Oracle APEX The Odd Couple About me 2 Francis Mignault CTO and Co-founder, Insum Solutions 30+ years with Oracle DB, 14+ years with APEX. (Forms 2.3 / Oracle 5) Books: Expert Oracle Application

More information

Building flexible and scalable applications

Building flexible and scalable applications Building flexible and scalable applications Using CQRS and Axon Framework Allard Buijze abu@trifork.com @allardbz Allard Buijze CTO of Trifork Amsterdam ~ 15 years of web development experience Strong

More information

FROM LEGACY TO MICROSERVICES Lessons learned on the road to success by Miles & More

FROM LEGACY TO MICROSERVICES Lessons learned on the road to success by Miles & More FROM LEGACY TO MICROSERVICES Lessons learned on the road to success by Miles & More Matthias Krohnen - Miles & More Manager IT, Lead Innovation Lab Torben Jäger - Red Hat Specialist Solution Architect

More information

Announcements. Problem Set 3 due Friday, October 21. Alternate Midterm Times. Drop by office hours! Ask questions at

Announcements. Problem Set 3 due Friday, October 21. Alternate Midterm Times. Drop by office hours! Ask questions at Functions Announcements Problem Set 3 due Friday, October 21 Drop by office hours! Ask questions at cs103@cs.stanford.edu. Alternate Midterm Times Wednesday, October 26, 7:00PM 10:00PM Thursday, October

More information

By Philip Japikse MVP, MCSD.Net, MCDBA, CSM Principal Consultant Pinnacle Solutions Group

By Philip Japikse MVP, MCSD.Net, MCDBA, CSM Principal Consultant Pinnacle Solutions Group By Philip Japikse Phil.Japikse@pinnsg.com MVP, MCSD.Net, MCDBA, CSM Principal Consultant Pinnacle Solutions Group Phone:513-619-6323 Fax:513-791-5202 1 Principal Consultant, Pinnacle Solutions Group, Inc.

More information

REPORT MICROSOFT PATTERNS AND PRACTICES

REPORT MICROSOFT PATTERNS AND PRACTICES REPORT MICROSOFT PATTERNS AND PRACTICES Corporate Headquarters Nucleus Research Inc. 100 State Street Boston, MA 02109 Phone: +1 617.720.2000 Nucleus Research Inc. TOPICS Application Development & Integration

More information

User Interfaces for Web Sites and Mobile Devices. System and Networks

User Interfaces for Web Sites and Mobile Devices. System and Networks User Interfaces for Web Sites and Mobile Devices System and Networks Computer Systems and Networks: Device-Aware Interfaces Interfaces must take into account physical constraints of computers and networks:

More information

MVC The Good, The Bad and the Evil. Hadi Hariri Developer & Technical Evangelist JetBrains

MVC The Good, The Bad and the Evil. Hadi Hariri Developer & Technical Evangelist JetBrains MVC The Good, The Bad and the Evil Hadi Hariri Developer & Technical Evangelist JetBrains http://hadihariri.com http://twitter.com/hhariri

More information

Applying Microservices in Webservices, with An Implementation Idea

Applying Microservices in Webservices, with An Implementation Idea International Conference on Computer Applications 64 International Conference on Computer Applications 2016 [ICCA 2016] ISBN 978-81-929866-5-4 VOL 05 Website icca.co.in email icca@asdf.res.in Received

More information

Securing ArcGIS for Server. David Cordes, Raj Padmanabhan

Securing ArcGIS for Server. David Cordes, Raj Padmanabhan Securing ArcGIS for Server David Cordes, Raj Padmanabhan Agenda Security in the context of ArcGIS for Server User and Role Considerations Identity Stores Authentication Securing web services Protecting

More information

Android PC Splash Brothers Design Specifications

Android PC Splash Brothers Design Specifications Android PC Splash Brothers Design Specifications Contributors: Zach Bair Taronish Daruwalla Joshua Duong Anthony Nguyen 1. Technology background The Android x86 project has been in existence since 2011.

More information

JUNOS SPACE. Product Description. Product Overview

JUNOS SPACE. Product Description. Product Overview DATASHEET JUNOS SPACE Product Overview Juniper Networks Junos Space is an open software platform designed for deploying and creating Juniperdeveloped, partner, and third-party applications. It consists

More information

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application BACKBONE.JS Sencha Touch CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application A RapidValue Solutions Whitepaper Author: Pooja Prasad, Technical Lead, RapidValue Solutions Contents Executive

More information

Gary Winter Eric Wauters Vjeko Babic Mark Brummel

Gary Winter Eric Wauters Vjeko Babic Mark Brummel Gary Winter Eric Wauters Vjeko Babic Mark Brummel DDC is Three Years young! About Me Mark Brummel 15 Years of NAV Experience MVP Since 2006 Co-Founder of Dutch Dynamics Community Co-Founder and CEO of

More information

Creating a Hybrid Gateway for API Traffic. Ed Julson API Platform Product Marketing TIBCO Software

Creating a Hybrid Gateway for API Traffic. Ed Julson API Platform Product Marketing TIBCO Software Creating a Hybrid Gateway for API Traffic Ed Julson API Platform Product Marketing TIBCO Software Housekeeping Webinar Recording Today s webinar is being recorded and a link to the recording will be emailed

More information

Living with HIPAA: Compendium of Next steps from Rural Hospitals to Large Health Systems to Physician Practices

Living with HIPAA: Compendium of Next steps from Rural Hospitals to Large Health Systems to Physician Practices Living with HIPAA: Compendium of Next steps from Rural Hospitals to Large Health Systems to Physician Practices Presented by HIPAA Pros 5th Annual HIPAA Summit Baltimore, Maryland October 31. 2002 Living

More information

TECHNICAL SESSIONS OFFICE DEVELOPMENT

TECHNICAL SESSIONS OFFICE DEVELOPMENT v Hit the ground running with the Microsoft Graph Presented by: Gavin Barron Do you need to get data from a range of Microso3 services? Do you want to enrich your applica&on with data from other parts

More information

What s New in the IBM Lotus Notes Client. Kevin O Connell, Consulting Manager, IBM Asia Pacific

What s New in the IBM Lotus Notes Client. Kevin O Connell, Consulting Manager, IBM Asia Pacific Technical Track What s New in the IBM Lotus Notes Client Kevin O Connell, Consulting Manager, IBM Asia Pacific ID101 What's New in the IBM Lotus Notes Client Kevin O'Connell Asia Pacific Consulting Manager

More information

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps WebSphere Puts Business In Motion Put People In Motion With Mobile Apps Use Mobile Apps To Create New Revenue Opportunities A clothing store increases sales through personalized offers Customers can scan

More information

Site Design. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Site Design. SWE 432, Fall 2017 Design and Implementation of Software for the Web Site Design SWE 432, Fall 2017 Design and Implementation of Software for the Web Today How do you help users understand if it is possible to do what they d like to do? How do you help users find what they

More information

CYBER THREAT INTEL: A STATE OF MIND. Internal Audit, Risk, Business & Technology Consulting

CYBER THREAT INTEL: A STATE OF MIND. Internal Audit, Risk, Business & Technology Consulting CYBER THREAT INTEL: A STATE OF MIND Internal Audit, Risk, Business & Technology Consulting WHO ARE WE? Randy Armknecht, CISSP, EnCE Protiviti Director - IT Consulting randy.armknecht@protiviti.com Albin

More information

Implementing Your BYOD Mobility Strategy An IT Checklist and Guide

Implementing Your BYOD Mobility Strategy An IT Checklist and Guide Implementing Your BYOD Mobility Strategy An IT Checklist and Guide 2012 Enterproid IBYOD: 120221 Content 1. Overview... 1 2. The BYOD Checklist... 1 2.1 Application Choice... 1 2.2 Installation and Configuration...

More information

REALIZE YOUR. DIGITAL VISION with Digital Private Cloud from Atos and VMware

REALIZE YOUR. DIGITAL VISION with Digital Private Cloud from Atos and VMware REALIZE YOUR DIGITAL VISION with Digital Private Cloud from Atos and VMware Today s critical business challenges and their IT impact Business challenges Maximizing agility to accelerate time to market

More information

CS 2530 INTERMEDIATE COMPUTING

CS 2530 INTERMEDIATE COMPUTING CS 2530 INTERMEDIATE COMPUTING Spring 2016 1-8-2018 Michael J. Holmes University of Northern Iowa Object Oriented Concepts In some cases we ll learn the concepts prior to learning the terminology. Other

More information

Web Service. Development. Framework and API. Management. Strategy and Best Practices. Yong Cao The Boeing Company RROI #: CORP

Web Service. Development. Framework and API. Management. Strategy and Best Practices. Yong Cao The Boeing Company RROI #: CORP RROI #: 17-00633-CORP Web Service Development Framework and API Management Strategy and Best Practices Yong Cao The Boeing Company GPDIS_2017.ppt 1 Vision: Service and Web APIs Legacy Apps COTS Web APIs

More information

Sahi. Cost effective Web Automation

Sahi. Cost effective Web Automation Sahi Cost effective Web Automation What is Sahi? Automates web applications Started in 2005 Mature business ready product Aimed at testers in Agile and traditional environments Focus Aimed at testers For

More information

Up and Running Software The Development Process

Up and Running Software The Development Process Up and Running Software The Development Process Success Determination, Adaptative Processes, and a Baseline Approach About This Document: Thank you for requesting more information about Up and Running

More information

The de constructed. Magento module

The de constructed. Magento module The de constructed Magento module James Cowie Technical Team Lead Inviqa t/@jcowie gh/jamescowie 2016 Magento Master mover deconstruct... verb de con struct \ˌdē-kən-ˈstrəkt\ To take apart or examine in

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

API: Design-First Approach Author : Bidyut Bhattacharjee

API: Design-First Approach Author : Bidyut Bhattacharjee Whitepaper API: Design-First Approach Author : Bidyut Bhattacharjee Contents 1. What is an API and Why is it Needed 3 2. 3. 4. What Defines a Good API? API Design-First Approach Summary 3 4-5 6 L&T Infotech

More information

Table of Contents: Toll Free: 1 (855) Mobile: 1 (250)

Table of Contents: Toll Free: 1 (855) Mobile: 1 (250) Table of Contents: Topology:... 2 Hardware Stack:... 3 Rack Images:... 4 Software Stack:... 5 Development Environment:... 5 Roles Summary:... 6 Visual Studio Solution Metrics:... 7 121 SQL Tables / Diagrams

More information

Implementation Architecture

Implementation Architecture Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition

More information

Trade Show Internet White Paper: How to Discuss Your Event s WiFi Needs - A Primer for Event Planners

Trade Show Internet White Paper: How to Discuss Your Event s WiFi Needs - A Primer for Event Planners Trade Show Internet White Paper: How to Discuss Your Event s WiFi Needs - A Primer for Event Planners Table of Contents Executive Summary... 3 5 Steps to Assess Your Event s WiFi Appetite... 4 Bandwidth

More information

Please give me your feedback

Please give me your feedback #HPEDiscover Please give me your feedback Session ID: B4385 Speaker: Aaron Spurlock Use the mobile app to complete a session survey 1. Access My schedule 2. Click on the session detail page 3. Scroll down

More information

Designing Enterprise IT Systems with REST: A (Cloudy) Case Study. Stuart Charlton Chief Software Architect, Elastra

Designing Enterprise IT Systems with REST: A (Cloudy) Case Study. Stuart Charlton Chief Software Architect, Elastra Designing Enterprise IT Systems with REST: A (Cloudy) Case Study Stuart Charlton Chief Software Architect, Elastra Objectives What enterprise problem domains does RESTful architecture handle well? Understanding

More information

Understanding and Documenting Web APIs

Understanding and Documenting Web APIs Understanding and Documenting Web APIs tekom 2017, Stuttgart, Germany Oct 24-26 2017 Anne Tarnoruder SAP Labs Israel Ltd. anne.tarnoruder@sap.com https://www.linkedin.com/in/annetarnoruder/ Part 1. Understanding

More information