1 cse 2102 cse 2102 software and enterprise architectures prof. steven a. demurjian, sr. computer...

104
1 CSE 2102 Software and Enterprise Software and Enterprise Architectures Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-255 Storrs, CT 06269-2155 [email protected] http://www.engr.uconn.edu/ ~steve (860) 486 - 4818 Copyright © 2008 by S. Demurjian, Storrs, CT.

Upload: louisa-davidson

Post on 25-Dec-2015

233 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

1

CSE

2102

CSE

2102

Software and Enterprise ArchitecturesSoftware and Enterprise Architectures

Prof. Steven A. Demurjian, Sr.Computer Science & Engineering Department

The University of Connecticut371 Fairfield Road, Box U-255

Storrs, CT 06269-2155

[email protected]://www.engr.uconn.edu/

~steve(860) 486 - 4818

Copyright © 2008 by S. Demurjian, Storrs, CT.

Page 2: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

2

CSE

2102

CSE

2102

Software Architectures Emerging Discipline in Mid-1990s Software as Collection of Interacting Components What are Local Interactions (within Component)? What are Global Interactions (between Components)? Advantages of SW Architectural Design

Understand Communication/Synchronization Definition of Database Requirements Identification of Performance/Scaling Issues Detailing of Security Needs and Constraints

Towards Large-Scale Software Development For Biomedical Informatics:

What are Architectures for Data Sharing? How is Interoperability Facilitated?

Page 3: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

3

CSE

2102

CSE

2102

Concepts of Software Architectures Exceed Traditional Algorithm/Data Structure

Perspective Emphasize Componentwise Organization and System

Functionality Focus on Global and Local Interactions Identify Communication/Synchronization

Requirements Define Database Needs and Dependencies Consider Performance/Scaling Issues Understand Potential Evolution Dimensions

Page 4: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

4

CSE

2102

CSE

2102

The HTSS Software ArchitectureThe HTSS Software Architecture

ICICICIC

CRCRCRCR

CRCR

CRCR

ILILILIL

ILIL

SDOSDO

SDOSDO EDOEDO

EDOEDO

OrderOrder

PaymentPayment

ItemItemItemDBItemDBLocalLocal

ServerServer

Non-LocalClient Int.

InventoryInventoryControlControl

ItemDBItemDBGlobalGlobalServerServer

OrderDBOrderDB

SupplierDBSupplierDB

CreditCardDBCreditCardDB

ATM-BanKDBATM-BanKDB

IL: Item LocatorIL: Item LocatorCR: Cash RegisterCR: Cash RegisterIC: Invent. ControlIC: Invent. ControlDO: Deli Orderer forDO: Deli Orderer for Shopper/EmployeeShopper/Employee

Page 5: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

5

CSE

2102

CSE

2102

Multiple Backend Database System (MBDS)Multiple Backend Database System (MBDS)

DatabaseController

BackendDatabase Processor

BackendDatabaseProcessor

BackendDatabase Processor

Host/User

Page 6: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

6

CSE

2102

CSE

2102

The MBDS Processes

Get Msg.Put Msg.

RequestPreparation

Post Processing

Get Msg. Put Msg.

DirectoryManagement

Record Processing

ConcurrencyControl

Disk I/O

DatabaseController

BackendDatabase Processor

Page 7: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

7

CSE

2102

CSE

2102

Multiple Processes in MBDS

No. Type SRC DST1 New Request Host ReqP2 Results of Request PoPr Host3 Number of Reqs in Transaction ReqP PoPr4 Aggregate Operators (Sum, etc.) ReqP PoPr6 Parsed Request to Backends ReqP DM12 Backend Aggregate Operator Results RecP PoPr15 Ids for Accessing Database Indexes DM DMs16 Request and Disk Addresses DM RecP21 Ids for Accessing Database Records DM CC22 Locks Obtained: Okay to Execute CC RecP23 Request ID of Finished Request RecP CC

Page 8: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

8

CSE

2102

CSE

2102

Message Passing in MBDS

Get Msg.Put Msg.

RequestPreparation

Post Processing

Get Msg. Put Msg.

DirectoryManagement

Record Processing

ConcurrencyControl Disk I/O

F15 FromOther

BackendE15 To Backend(s)

A1 B3

C4D6

D6,F15E15

G21 H22

I16

J23

K12

K12

K12

Page 9: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

9

CSE

2102

CSE

2102

Software Design Levels Architecturally:

Modules Interconnections Among Modules Decomposition into Subsystems

Code: Algorithms/Data Structures Tasking/Control Threads

Executable: Memory Management Runtime Environment

Is this a Realistic/Accurate View? Yes for a Single “Application” What about Application of Applications? System of Systems?

Page 10: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

10

CSE

2102

CSE

2102

Software Engineering - an Oxymoron? Is there any Engineering? Is there any Science? Collection of Disparate Techniques:

Data-Flow Diagrams E-R Diagrams Finite State Machines Petri Nets UML Class, Object, Sequence, Etc. Design Patterns Model Drive Architectures

What is being “Engineered”? How do we Know we are Done?

E.g. Does Artifact Match Specification?

Page 11: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

11

CSE

2102

CSE

2102

What's Available for Engineering Software? Specification (Abstract Models, Algebraic Semantics) Software Structure (Bundling Representation with

Algorithms) Languages Issues (Models, Scope, User-Defined

Types) Information Hiding (Protect Integrity of Information) Integrity Constraints (Invariants of Data Structures) Is this up to date? What else can be Added to List?

Design Patters Model Driven Architectures XML –Data Modeling and Dependencies Others?

Page 12: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

12

CSE

2102

CSE

2102

Engineering Success in Computing Compilers Have Had Great Success

Originally by Hand Then Compiler Compilers Parser Generators - Lex/Yacc

Solid Science Behind Compilers Regular, Context Free, Context Sensitive

Languages FSAs, PDAs, CFGs, etc.

Science has Provided Engineering Success re. Ease and Accuracy of Modern Compiler Writing

Page 13: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

13

CSE

2102

CSE

2102

History of Programming C - Still Remains Industry Stronghorse

Separate Compilation Decomposition of System into Subsystems, etc. Shared Declarations ADTs in C, But Compiler won't Enforce Them

Modula-II and Ada 83 Had Information Hiding Public/Private Paradigm Module/Package Concepts Import/Export Paradigm

Rigor Enforced by Compiler – but Can’t Bind/Group Modules into Subsystems Precisely Specify Interconnections and Interactions

Among Subsystems and Components

Page 14: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

14

CSE

2102

CSE

2102

‘Recent-Past’ Generation? C++ and Ada95

Considered “Legacy” Languages - Old Java, C# - Are they Headed Toward Legacy?

How do they Rate? What Do they Offer that Hasn't been Offered

Before? What are Unique Benefits and Potential of Java?

What about new Web Technologies? Javascript, Perl, PhP, Phython, Ruby XML and SOAP How do all of these fit into this process? Particularly in Regards to C/S Solutions!

Page 15: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

15

CSE

2102

CSE

2102

What's Next Step? Architectural Description Languages

Provide Tools to Describe Architectures Definition and Communication

Codification of Architectural Expertise Frameworks for Specific Domains DB vs. GUI vs. Embedded vs. C/S Formal Underpinning for Engineering Rigor What has Appeared for Each of these?

Struts for GUI Open Source Frameworks (mediawiki) Wide-Ranging Standards (XML) Model-Driven Architectures What Else???

Page 16: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

16

CSE

2102

CSE

2102

Architectural Styles What are Popular Architectural Styles?

How are they Characterized? Example in Practice

Explore a Taxonomy of Styles Focus on “Micro-Architectures”

Components Flow Among Components Represents “Single” Application

Forms Basis for “Macro-Architectures” System of Systems Application of Applications Significantly Scaling Up

Page 17: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

17

CSE

2102

CSE

2102

Taxonomy of Architectural Styles

Data Flow Systems Batch Sequential Pipes and Filters

Call & Return Systems Main/Subroutines

(C, Pascal) Object Oriented Implicit Invocation Hierarchical Systems

Virtual Machines Interpreters Rule Based Systems

Data Centered SystemsData Centered Systems DBS Hypertext Blackboards

Independent Independent ComponentsComponents Communicating

Processes/Event Systems

Client/ServerClient/Server Two-Tier Multi-Tier

Page 18: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

18

CSE

2102

CSE

2102

Taxonomy of Architectural Styles Establish Framework of …

Components Building Blocks for Constructing Systems A Major Unit of Functionality Examples Include: Client, Server, Filter, Layer, DB

Connectors Defining the Ways that Components Interact What are the Protocols that Mandate the Allowable

Interactions Among Components? How are Protocols Enforced at Run/Design Time? Examples Include: Procedure Call, Event Broadcast,

DB Protocol, Pipe

Page 19: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

19

CSE

2102

CSE

2102

Overall Framework What Is the Design Vocabulary?

Connectors and Components What Are Allowable Structural Patterns?

Constraints on Combining Components & Connectors

What Is the Underlying Conceptual Model? Von Newman, Parallel, Agent, Message-Passing… Are their New Emerging Models? Collaborative Environments/Shareware?

What Are Essential Invariants of a Style? Limits on Allowable Components & Connectors

Common Examples of Usage Advantages and Disadvantages of a Style Common Specializations of a Style

Page 20: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

20

CSE

2102

CSE

2102

Pipes and Filters

Filters: Invariant: Unaware of up and Down Stream

Behavior Streamed Behavior: Output Could Go From

One Filter to the Next One Allowing Multiple Filters to Run in Parallel.

SortSort

SortSort

MergeMerge

Connectors for Flow Streams of I/O

Components with Input and Output

Components are IndependentEntities. No Shared State!

Page 21: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

21

CSE

2102

CSE

2102

Pipes and Filters Possible Specializations:

Pipelines - Linear Sequence Bounded - Limits on Data Amounts Typed Pipes - Known Data Format

What is a Classic Example? Other Examples:

Compilers Sequential Processes Parallel Processes

Page 22: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

22

CSE

2102

CSE

2102

Pipes and Filters - Another Example Text Information Retrieval Systems

Scanning Newspapers for Key Words, Etc. Also, Boolean Search Expressions

Where is Such an Architecture Utilized Today? What is Potential Usage in BMI?

User

SearchSearchControllerController

SearchSearchDBDB

QueryQueryResolverResolver

Term Term ComparatorComparator

DiskDiskControllerController

CommandsCommands

ProgrammingProgrammingControlControl

ResultResult

DataData

Page 23: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

23

CSE

2102

CSE

2102

ADTs and OO Architectures Widespread Usage in the 1990’s Advantages Are Well Known

Disadvantages: Interaction Required Object Identity If Identity Changes, It Is Difficult to Track All

Affected Objects.

obj

obj obj

obj obj

objobj

obj

op

opopop

op

op op

op

opop op

opop

Connectors

Components

Page 24: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

24

CSE

2102

CSE

2102

Implicit Invocation Similar to OO in the Sense that Components Can Call

Services on Other Components How Does this Work?

Components Have List of Events they can Raise and List of Procedures to Handle Events

When Event is Raised, it is Broadcast All Components that Have Procedure to Handle

Broadcast Event will Act Upon it The Component That Raised the Event has no

Knowledge of Which Component(s) will Handle Event

What are Some Examples?

Page 25: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

25

CSE

2102

CSE

2102

Implicit Invocation Advantages

No Need to Know the Targeted Components Single Event can Impact Multiple Components New Event Handlers can Easily be Added New Events Can then be Raised

Disadvantages No Control Over the Order of Processing When an

Event is Raised No Control Over “Who” and “How Many” Process

Events Very Non-Deterministic System Behavior

Page 26: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

26

CSE

2102

CSE

2102

What has OO Evolved Into? What has Classic OO Solution Evolved into Today?

Client (Browser + Struts) Server (Many Variants of OO Languages) Database Server (typically Relational)

Different Style (e.g., Design Pattern) Does Pattern Capture All Aspects of Style? Do we Need to Couple Technology with Pattern?

Item(Phy_Name*, Date*, Item(Phy_Name*, Date*, Visit_Flag, Symptom, Diagnosis, Treatment,Visit_Flag, Symptom, Diagnosis, Treatment, Presc_Flag, Pre_No, Pharm_Name, Medication,Presc_Flag, Pre_No, Pharm_Name, Medication, Test_Flag, Test_Code, Spec_No, Status, Tech)Test_Flag, Test_Code, Spec_No, Status, Tech)

Dr. D, Jan 01, 08Fever, Flu, Bed Rest

No ScriptsNo Tests

Page 27: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

27

CSE

2102

CSE

2102

Layered Systems

Components - Virtual Machine at Each Layer Connectors - Protocols That Specify How Layers

Interact Interaction Is Restricted to Adjacent Layers

Users

Corelevel

Base UtilityUseful Systems

Page 28: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

28

CSE

2102

CSE

2102

Layered Systems Advantages:

Increasing Levels of Abstraction Support Enhancement - New Layers Support for Reuse

Drawbacks: Not Feasible for All Systems Performance Issues With Multiple Layers Defining Abstractions Is Difficult.

Page 29: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

29

CSE

2102

CSE

2102

PatientData

De-identified

Aggregated

Layered Systems in BMI One Approach to Constructing Access to Patient Data for Clinical

Research and Clinical Practice Construct Layered Data Repositories as Below

Each Layer Targets Different User Group Need to Fine Tune Access Even within Layers

Provider

Cl. Researchers

Public Health Researchers

Page 30: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

30

CSE

2102

CSE

2102

ISO as Layered Architecture ISO Open Systems Interconnect (OSI) Model

Now Widely Used as a Reference Architecture 7-layer Model Provides Framework for Specific Protocols (Such

as IP, TCP, FTP, RPC, UDP, RSVP, …)

ApplicationPresentation

SessionTransportNetwork

Data LinkPhysical

ApplicationPresentation

SessionTransportNetwork

Data LinkPhysical

Page 31: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

31

CSE

2102

CSE

2102Application ApplicationPresentation Presentation

Session SessionTransport TransportNetwork Network

Data LinkPhysical

Data LinkPhysical

ISO OSI ModelISO OSI Model

Physical (Hardware)/Data Link Layer Networks: Physical (Hardware)/Data Link Layer Networks: Ethernet, Token Ring, ATMEthernet, Token Ring, ATM

Network Layer Net: The InternetNetwork Layer Net: The Internet Transport Layer Net: Tcp-based NetworkTransport Layer Net: Tcp-based Network Presentation/Session Layer Net: Http/html, RPC, Presentation/Session Layer Net: Http/html, RPC,

PVM, MPIPVM, MPI Applications, E.g., WWW, Window System, Applications, E.g., WWW, Window System,

AlgorithmAlgorithm

Page 32: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

32

CSE

2102

CSE

2102

Repositories

Knowledge Sources Interact With the Blackboard. Blackboard Contains the Problem Solving State Data. Control Is Driven by the State of the Blackboard. DB Systems Are a Form of Repository With a Layer

Between the BB and the KSs - Supports Concurrent Access, Security, Integrity, Recovery

ks8

ks6

ks7

ks1

ks2

ks3

ks4 ks5

Blackboard(shared data)

Page 33: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

33

CSE

2102

CSE

2102

Database System as a Repository

Clients Interact With the DBMS Database Contains the Problem Solving State Data Control is Driven by the State of the Database

Concurrent Access, Security, Integrity, Recovery Single Layer System: Clients have Direct Access Control of Access to Information must be

Carefully Defined within DB Security/Integrity

c8

c6

c7

c1

c2

c3

c4 c5

Database(shared data)

Page 34: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

34

CSE

2102

CSE

2102

Team Project as a Repository

Clients are Providers, Patients, Clinical Researchers Database Underlies Web Portal Simply a Portion of Architecture

Interactions with PHR (Patients) Interactions with EMR (Providers) Interactions with Database/Warehouse (Researchers)

c8

c6

c7

c1

c2

c3

c4 c5

Web PortalShared

Page 35: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

35

CSE

2102

CSE

2102

Interpreters

What Are Components and Connectors? Where Have Interpreters Been Used in CS&E?

LISP, ML, Java, Other Languages, OS Command Line

Data(program state)

Program beinginterpreted

Simulatedinterpretation

engine

Internalinterpreter

state

Inputs

OutputsSelected

instructionSelected

data

Page 36: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

36

CSE

2102

CSE

2102

Java as Interpreter Java as Interpreter

Page 37: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

37

CSE

2102

CSE

2102

Process Control Paradigms

Also: Open vs. Close Loop Systems Well Defined Control and Computational

Characters Heavily Used in Engineering Fields.

Process

ProcessController

Set point

Set point

Input variables

Input variables

Controlledvariable

Controlledvariable

s tomanipulated

variables

s tomanipulated

variables

Controller

With FeedbackWith Feedback

Without FeedbackWithout Feedback

Page 38: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

38

CSE

2102

CSE

2102

Process Architecture: Statechart Diagram?Process Architecture: Statechart Diagram?

Page 39: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

39

CSE

2102

CSE

2102

Breath

Waiting forResp. Signal

Resp Signal

timeout

TriggerLocalAlarm

TriggerRemoteAlarm

Heartbeat

Waiting forHeart Signal

Heart Signal

irregular beat

Alarm Reset

Process Architecture: Activity Diagram?Process Architecture: Activity Diagram? Clear Applicability to Medical Processes that have Clear Applicability to Medical Processes that have

Underlying BMI – Low Level ProcessesUnderlying BMI – Low Level Processes

Page 40: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

40

CSE

2102

CSE

2102

Design Patterns as Software Architectures Emerged as the Recognition that in Object-Oriented

Systems Repetitions in Design Occurred Gained Prominence in 1995 with Publication of

“Design Patterns: Elements of Reusable Object-Oriented Software”, Addison-Wesley “… descriptions of communicating objects and

classes that are customized to solve a general design problem in a particular context…”

Akin to Complicated Generic Usage of Patterns Requires

Consistent Format and Abstraction Common Vocabulary and Descriptions

Simple to Complex Patterns – Wide Range

Page 41: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

41

CSE

2102

CSE

2102

The Observer Pattern Utilized to Define a One-to-Many Relationship

Between Objects When Object Changes State – all Dependents are

Notified and Automatically Updated Loosely Coupled Objects

When one Object (Subject – an Active Object) Changes State than Multiple Objects (Observers – Passive Objects) Notified

Observer Object Implements Interface to Specify the Way that Changes are to Occur

Two Interfaces and Two Concrete Classes

Page 42: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

42

CSE

2102

CSE

2102

The Observer PatternThe Observer Pattern

Page 43: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

43

CSE

2102

CSE

2102

Model View Controller http://java.sun.com/blueprints/patterns/MVC-detailed.html

Page 44: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

44

CSE

2102

CSE

2102

Model View Controller Three Parts of the Pattern:

Model Enterprise Data and Business Rules for Accessing and

Updating Data View

Renders the Contents (or Portion) of Model Deals with Presentation of Stored Data Pull or Push Model Possible

Controller Translates Interactions with View into Actions on

Model Actions could be Button Clicks (GUI), Get/Post http

(Web), etc.

Page 45: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

45

CSE

2102

CSE

2102

Model View Controller http://java.sun.com/blueprints/patterns/MVC-detailed.html

Page 46: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

46

CSE

2102

CSE

2102

UML for System Modeling UML is a Language for Specifying, Visualizing,

Constructing, and Documenting Software Artifacts What Does a Modeling Language Provide?

Model Elements: Concepts and Semantics Notation: Visual Rendering of Model Elements Guidelines: Hints and Suggestions for Using

Elements in Notation References and Resources

Web: http://www.uml.org/ Is UML Sufficient for Complexity of BMI?

Able to Model Information Needs for BMI? Able to Represent Required Architectures?

Page 47: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

47

CSE

2102

CSE

2102

UML UML is a Set of Graphical Specification Languages

(OMG’s Standard Design Language Since November, 1997)

Implementation Diagrams Component Diagrams:

Show the Physical Structure of the Code in Terms of Code Components and Their Dependencies

Deployment Diagrams: Show the Physical Architecture of the Hardware and

Software in the System. They Have a Type and an Instance Version.

Page 48: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

48

CSE

2102

CSE

2102

UML When to Use Deployment Diagrams “… In practice, I haven’t seen this kind of diagram

used much. Most people do draw diagrams to show this kind of information but they are informal cartoons. On the whole, I don’t have a problem with that since each system has its own physical characteristics that your want to emphasize. As we wrestle more and more with distributed systems, however, I’m sure we will require more formality as we understand better which issues need to be highlighted in deployment diagrams.” From “UML Distilled. Applying the Standard

Object Modeling Language”, by Martin Fowler. Addison-Wesley, Object Technology Series, 7th. Reprint June, 1998.

Page 49: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

49

CSE

2102

CSE

2102

Pros and Cons of Graphical ModelingPros and Cons of Graphical Modeling

Advantages: Clear to Show

Structure Excellent

Communication Vehicle

Addresses Different Aspects of Modeling in an Integrated Fashion

Disadvantages: Shows Little (or No)

Details There is a Big Gap

Between Specification and Implementation

Limited by Screen Size & Printable Page

Solution: Associate a Complete Textual Solution: Associate a Complete Textual Specification to Graphical Model that Contains Specification to Graphical Model that Contains

the Necessary Details for Each Elementthe Necessary Details for Each Element

Page 50: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

50

CSE

2102

CSE

2102

Design Concepts Interface Interaction With the Outer World

Signature + Requested Services Type: Abstract Entity - Interface + Semantics Subtype: Inherits the Supertype Definition Class: Implementation of a Type Realization: Relation Between a Type and a Class That

Implements It Subclass: Inherits the Superclass Implementation Instance: Element of a Class

Page 51: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

51

CSE

2102

CSE

2102

UML Diagrammatic Representations Component Diagram: Captures the Physical Structure

of the Implementation Deployment Diagram: Captures the Topology of a

System’s Hardware Collaboration Diagram: Captures Dynamic Behavior

(Message-Oriented) What About Other Diagrams?

State Chart Diagram: Captures Dynamic Behavior (Event-Oriented)

Activity Diagram: Captures Dynamic Behavior (Activity-Oriented)

These and Others Seem too Low Level … What is Role of UML for BMI?

Yet Another Design Artifact Can it be More?

Page 52: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

52

CSE

2102

CSE

2102

Component Diagram Captures the Physical Structure of the Implementation

Page 53: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

53

CSE

2102

CSE

2102

Deployment Diagram Captures the Topology of a System’s Hardware

Page 54: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

54

CSE

2102

CSE

2102

Collaboration DiagramCollaboration Diagram

Page 55: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

55

CSE

2102

CSE

2102

Single and Multi-Tier Architectures Widespread use in Practice for All Types of

Distributed Systems and Applications Two Kinds of Components

Servers: Provide Services - May be Unaware of Clients Web Servers (unaware?) Database Servers and Functional Servers (aware?)

Clients: Request Services from Servers Must Identify Servers May Need to Identify Self A Server Can be Client of Another Server

Expanding from Micro-Architectures (Single Computer/One Application) to Macro-Architecture

Page 56: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

56

CSE

2102

CSE

2102

Single and Multi-Tier Architectures Normally, Clients and Servers are Independent

Processes Running in Parallel Connectors Provide Means for Service Requests and

Answers to be Passes Among Clients/Servers Connectors May be RPC, RMI, etc. Advantages

Parallelism, Independence Separation of Concerns, Abstraction Others?

Disadvantages Complex Implementation Mechanisms Scalability, Correctness, Real-Time Limits Others?

Page 57: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

57

CSE

2102

CSE

2102

Example: Software Architectural StructureExample: Software Architectural Structure

Initial Data Entry Operator

(Scanning & Posting)

10-100MB Network

Advanced Data Entry

Operators

DocumentServerStored

Images/CD

DatabaseServer

RunningOracle

RMI Registry

Functional Server

RMI Act.Obj/Server

RMI Act.Obj/Server

Analyst Manager

Page 58: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

58

CSE

2102

CSE

2102

Business Process ModelBusiness Process Model

Scanner

Licensing

LicensingDivisionScanningOperator

StoredImages

BasicInformation

Entered

DB

CompletedApplications

HistoricalRecords

Printer

New LicensesNew Appointments

FOI

Letters (RequestInformation, etc.)

Licensing DivisionData Entry Operator

SupervisorReview

DB

DB DB

DB

Page 59: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

59

CSE

2102

CSE

2102

Two-Tier Architecture Small Manufacturer Previously on C++ New Order Entry, Inventory, and Invoicing

Applications in Java Programming Language Existing Customer and Order Database Most of Business Logic in Stored Procedures Tool-generated GUI Forms for Java Objects

Page 60: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

60

CSE

2102

CSE

2102

Three-Tier Architecture Passenger Check-in for Regional Airline Local Database for Seating on Today's Flights Clients Invoke EJBs at Local Site Through RMI EJBs Update Database and Queue Updates JMS Queues Updates to Legacy System DBC API Used to Access Local Database

Page 61: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

61

CSE

2102

CSE

2102

Four-Tier Architecture Web Access to Brokerage Accounts Only HTML Browser Required on Front End "Brokerbean" EJB Provides Business Logic Login, Query, Trade Servlets Call Brokerbean Use JNDI to Find EJBs, RMI to Invoke Them

Page 62: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

62

CSE

2102

CSE

2102

Architecture Comparisons Two-tier Through JDBC API is Simplest Multi-tier: Separate Business Logic, Protect Database

Integrity, More Scaleable JMS Queues vs. Synchronous (RMI or IDL):

Availability, Response Time, Decoupling JMS Publish & Subscribe: Off-line Notification RMI

IIOP vs. JRMP vs. Java IDL: Standard Cross-language Calls or Full Java

Functionality JTS: Distributed Integrity, Lockstep Actions

Page 63: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

63

CSE

2102

CSE

2102

Comments on Architectural Styles Architectural Styles Provide Patterns

Suppose Designing a New System During Requirements Discovery, Behavior and

Structure of System Will Emerge Attempt to Match to Architectural Style Modify, Extend Style as Needed

By Choosing Existing Architectural Style Know Advantages and Disadvantages Ability to Focus in on Problem Areas and

Bottlenecks Can Adjust Architecture Accordingly

Architectures Range from Large Scale to Small Scale in their Applicability

We’ll see Examples for BMI Shortly …

Page 64: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

64

CSE

2102

CSE

2102

The Next Big Challenge Macro-Architectures

System of Systems Application of Applications

Involves Two Key Issues Interoperability

Heterogeneous Distributed Databases Heterogeneous Distributed Systems Autonomous Applications

Scalability Rapid and Continuous Growth Amount of Data Variety of Data Types Different Privacy Levels or Ownerships of Data

Page 65: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

65

CSE

2102

CSE

2102

Interoperability: A Classic ViewInteroperability: A Classic View

FDB Global Schema

FederatedIntegration

Local Schema

Local Schema

Local Schema

FDB Global Schema 4

FederatedIntegration

FDB 1Local

SchemaFDB3

Federation Federation

Simple Federation Multiple Nested Federation

Page 66: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

66

CSE

2102

CSE

2102

What is CORBA? Differs from Typical Programming Languages Objects can be …

Located Throughout Network Interoperate with Objects on other Platforms Written in Ant PLs for which there is mapping

from IDL to that Language

Object Request Broker

ApplicationInterfaces

Domain Interfaces

Object Services

Page 67: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

67

CSE

2102

CSE

2102

What is CORBA? Allow Interactions from Client to Server CORBA Installed on All Participating Machines

Client Application Server Application

Client ORB Core Server ORB Core

StaticStub

DII DSISkeleton

ORBInterface

ORBInterface

Object Adapter

Network

IDL - Independent Same for allapplications

There may be multipleobject adapters

Page 68: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

68

CSE

2102

CSE

2102

ClientApplication

IDL file

Stub Skeleton

IDL Compiler IDL Compiler

ORB/IIOP ORB/IIOP

ObjectImplementation

CORBA-Based DevelopmentCORBA-Based Development

Page 69: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

69

CSE

2102

CSE

2102

Information Broker

•Mediator-Based Systems•Agent-Based Systems

Database Interoperability in the Internet Technology

Web/HTTP, JDBC/ODBC, CORBA (ORBs + IIOP), XML

Architecture

Page 70: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

70

CSE

2102

CSE

2102

Java ClientJava ClientLegacyLegacy

ApplicationApplication

JavaJavaWrapperWrapper

Object Request Broker (ORB)Object Request Broker (ORB)

CORBA is the Medium of Info. Exchange

Requires Java/CORBA Capabilities

ORB Integration:Java Client + Legacy ApplicationORB Integration:Java Client + Legacy Application

Page 71: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

71

CSE

2102

CSE

2102

LegacyLegacyApplicationApplication

NetworkNetwork

Java ClientJava Client

Java Application CodeJava Application Code

WRAPPERWRAPPER

Mapping ClassesMapping Classes

JAVA LAYERJAVA LAYER

NATIVE LAYERNATIVE LAYER

Native Functions (C++)Native Functions (C++)RPC Client Stubs (C)RPC Client Stubs (C)

Interactions Between Java ClientInteractions Between Java Clientand Legacy Appl. via C and RPCand Legacy Appl. via C and RPC

C is the Medium of Info. ExchangeC is the Medium of Info. Exchange

Java Client with C++/C WrapperJava Client with C++/C Wrapper

Java Client with Wrapper to Legacy ApplicationJava Client with Wrapper to Legacy Application

Page 72: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

72

CSE

2102

CSE

2102

NetworkNetwork

Java Application CodeJava Application Code

JAVA NETWORK WRAPPERJAVA NETWORK WRAPPER

Mapping ClassesMapping Classes

NATIVE LAYERNATIVE LAYER

JAVA LAYERJAVA LAYER

Native Functions that Native Functions that Map to COTS ApplMap to COTS Appl

Java ClientJava Client Java ClientJava Client

Java Application CodeJava Application Code

JAVA NETWORK WRAPPERJAVA NETWORK WRAPPER

Mapping ClassesMapping Classes

NATIVE LAYERNATIVE LAYER

JAVA LAYERJAVA LAYER

Native Functions that Native Functions that Map to Legacy ApplMap to Legacy Appl

COTS ApplicationCOTS Application Legacy ApplicationLegacy Application

Java is Medium of Info. Exchange - C/C++ Appls with Java Wrappers

COTS and Legacy Appls. to Java ClientsCOTS and Legacy Appls. to Java Clients

Page 73: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

73

CSE

2102

CSE

2102

Java ClientJava Client

LegacyLegacyApplicationApplication

Relational Relational DatabaseDatabase

System(RDS)System(RDS)

Transformed Transformed Legacy DataLegacy Data

Updated Updated DataData

Extract and Extract and Generate DataGenerate Data

Transform andTransform andStore DataStore Data

Java Client to Legacy App via RDBSJava Client to Legacy App via RDBS

Page 74: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

74

CSE

2102

CSE

2102

Driver Driver

Java Application

JDBC API

Driver Manager

Oracle SybaseAccess

Driver

JDBC

Driver Driver

JDBC API Provides DB Access Protocols for Open, Query, Close, etc.

Different Drivers for Different DB Platforms

Page 75: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

75

CSE

2102

CSE

2102

Connecting a DB to the WebConnecting a DB to the Web

Web Server are Stateless

DB Interactions Tend to be Stateful

Invoking a CGI Script on Each DB Interaction is Very Expensive, Mainly Due to the Cost of DB Open

DBMS

Web Server

Browser

Internet

CGI Script Invocationor JDBC Invocation

Page 76: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

76

CSE

2102

CSE

2102

Connecting More EfficientlyConnecting More Efficiently

To Avoid Cost of Opening Database, One can Use Helper Processes that Always Keep Database Open and Outlive Web Connection

Newly Invoked CGI Scripts Connect to a Preexisting Helper Process

System is Still Stateless

DBMS

Web Server

Browser

Internet

CGI Scriptor JDBC Invocation

Helper Processes

Page 77: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

77

CSE

2102

CSE

2102

DB-Internet ArchitectureDB-Internet Architecture

WWW Client(Netscape)

WWW Client(HotJava)

WWW client(Info. Explore)

Internet

HTTP Server

DBWeb Gateway

DBWeb Gateway

DBWeb Gateway

DBWeb Gateway

DBWeb Dispatcher

Page 78: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

78

CSE

2102

CSE

2102

Internet and the Web A Major Opportunity for Business

A Global Marketplace Business Across State and Country Boundaries

A Way of Extending Services Online Payment vs. VISA, Mastercard

A Medium for Creation of New Services Publishers, Travel Agents, Teller, Virtual Yellow Pages,

Online Auctions … A Boon for Academia

Research Interactions and Collaborations Free Software for Classroom/Research Usage Opportunities for Exploration of Technologies in

Student Projects What are Implications for BMI? Where is the Adv?

Page 79: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

79

CSE

2102

CSE

2102

Intranet Decision

support Mfg.. System

monitoring corporate

repositories Workgroups

Server

CorporateNetwork

Server

ServerServer

Corporate

Network

Internet

InternetInternet

Sales Marketing Information Services

Business to Business to BusinessBusiness Information sharing Ordering info./status Targeted electronic

commerce

WWW: Three Market SegmentsWWW: Three Market Segments

Provider Network

Exposure to Outside

Provider Network

Page 80: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

80

CSE

2102

CSE

2102

Information Delivery Problems on the Net Everyone can Publish Information on the Web

Independently at Any Time Consequently, there is an Information Explosion Identifying Information Content More Difficult

There are too Many Search Engines but too Few Capable of Returning High Quality Data

Most Search Engines are Useful for Ad-hoc Searches but Awkward for Tracking Changes

What are Information Delivery Issues for BMI? Publishing of Patient Education Materials Publishing of Provider Education Materials How Can Patients/Providers find what Need? How do they Know if its Relevant? Reputable?

Page 81: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

81

CSE

2102

CSE

2102

Example Web Applications Scenario 1: World Wide Wait

A Major Event is Underway and the Latest, Up-to-the Minute Results are Being Posted on the Web

You Want to Monitor the Results for this Important Event, so you Fire up your Trusty Web Browser, Pointing at the Result Posting Site, and Wait, and Wait, and Wait …

What is the Problem? The Scalability Problems are the Result of a

Mismatch Between the Data Access Characteristics of the Application and the Technology Used to Implement the Application

Page 82: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

82

CSE

2102

CSE

2102

Example Web Applications Scenario 2:

Many Applications Today have the Need for Tracking Changes in Local and Remote Data Sources and Notifying Changes If Some Condition Over the Data Source(s) is Met

To Monitor Changes on Web, You Need to Fire Your Trusty Web Browser from Time to Time, Cache the Most Recent Result, and Difference Manually Each Time You Poll the Data Source(s)

Issue: Pure Pull is Not the Answer to All Problems

Page 83: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

83

CSE

2102

CSE

2102

What is the Problem? Applications are Asymmetric but the Web is Not

Computation Centric vs. Information Flow Centric Type of Asymmetry

Network Asymmetry Satellite, CATV, Mobile Clients, Etc.

Client to Server Ratio Too Many Clients can Swamp Servers

Data Volume Mouse and Key Click vs. Content Delivery

Update and Information Creation Clients Need to be Informed or Must Poll

Page 84: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

84

CSE

2102

CSE

2102

What are Information Delivery Styles? Pull-Based System

Transfer of Data from Server to Client is Initiated by a Client Pull

Clients Determine when to Get Information Potential for Information to be Old Unless Client

Periodically Pulls Push-Based System

Transfer of Data from Server to Client is Initiated by a Server Push

Clients may get Overloaded if Push is Too Frequent

Hybrid Pull and Push Combined Pull First and then Push Continually

Page 85: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

85

CSE

2102

CSE

2102

Publish/Subscribe Semantics: Servers Publish/Clients Subscribe

Servers Publish Information Online Clients Subscribe to the Information of Interest

(Subscription-based Information Delivery) Data Flow is Initiated by the Data Sources

(Servers) and is Aperiodic Danger: Subscriptions can Lead to Other

Unwanted Subscriptions Applications

Unicast: Database Triggers and Active Databases 1-to-n: Online News Groups

May work for Clinical Researcher to Provider Push

Page 86: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

86

CSE

2102

CSE

2102

Design Options for Nodes Three Types of Nodes:

Data Sources Provide Base Data which is to be Disseminated

Clients Who are the Net Consumers of the Information

Information Brokers Acquire Information from Other Data Sources, Add

Value to that Information and then Distribute this Information to Other Consumers

By Creating a Hierarchy of Brokers, Information Delivery can be Tailored to the Need of Many Users

Brokers may be Ideal Intermediaries for BMI! Act on Behalf of Patients, Providers Incorporate Secure Access

Page 87: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

87

CSE

2102

Ubiquitous/PervasiveMany computers and information

appliances everywhere, networked together

Research ChallengesResearch Challenges Inherent Complexity:

Coping with Latency (Sometimes Unpredictable)

Failure Detection and Recovery (Partial Failure)

Concurrency, Load Balancing, Availability, Scale

Service Partitioning Ordering of Distributed Events

“Accidental” Complexity: Heterogeneity: Beyond the Local

Case: Platform, Protocol, Plus All Local Heterogeneity in Spades.

Autonomy: Change and Evolve Autonomously

Tool Deficiencies: Language Support (Sockets,rpc), Debugging, Etc.

Page 88: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

88

CSE

2102

CSE

2102Problem: too many sources,too much information

Internet:Information Jungle

Clean, Reliable,Timely Information,

Anywhere

DigitalEarth

Sensors

PersonalizedFiltering &

Info. Delivery

Infopipes

Resou

rce A

dapta

tion Property Mgmt

Information QualityContinual Queries

Mic

rofe

edba

ck

specializationInfosphereInfosphere

Page 89: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

89

CSE

2102

CSE

2102

ThinClient

WebServer

MainframeDatabase

Server

Current State-of-ArtCurrent State-of-Art

Page 90: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

90

CSE

2102

CSE

2102

Infotaps &Fat Clients

Varietyof Servers

Sensors

DatabaseServer

Many sources

Infosphere Scenario Infosphere Scenario

Page 91: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

91

CSE

2102

CSE

2102

Heterogeneity and Autonomy Heterogeneity:

How Much can we Really Integrate? Syntactic Integration

Different Formats and Models Web/SQL Query Languages

Semantic Interoperability Basic Research on Ontology, Etc

Autonomy No Central DBA on the Net Independent Evolution of Schema and Content Interoperation is Voluntary Interface Technology (Support for Isvs)

DCOM: Microsoft Standard CORBA, Etc...

Page 92: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

92

CSE

2102

CSE

2102

Security and Data Quality Security

System Security in the Broad Sense Attacks: Penetrations, Denial of Service System (and Information) Survivability

Security Fault Tolerance Replication for Performance, Availability, and

Survivability Data Quality

Web Data Quality Problems Local Updates with Global Effects Unchecked Redundancy (Mutual Copying) Registration of Unchecked Information Spam on the Rise

Page 93: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

93

CSE

2102

CSE

2102

Legacy Data Challenge Legacy Applications and Data

Definition: Important and Difficult to Replace Typically, Mainframe Mission Critical Code Most are OLTP and Database Applications

Evolution of Legacy Databases Client-server Architectures Wrappers Expensive and Gradual in Any Case

Page 94: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

94

CSE

2102

CSE

2102

Electronic Medical Record Architectures Provider-Based Systems have Two Variants

All Data In House Larger Providers (Clinics) Control All Own Data Sizeable IT Staff for 24-7 Operations Control of Own Backups

Limited In House – Off Site Storage (Larger, Multi-Site Practices Smaller Providers – Limited IT Staff Desire Out-of-Box Solution Local Data for Ease of Access Remote Storage – Promotes Off-Hours Access

Even 1st Variant – Service for “Backups”

Page 95: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

95

CSE

2102

CSE

2102

Key Challenges to Integrating Data Security and Privacy

PHI and PII HIPAA FERPA WIC, Social Security (Medicaid/Medicare)

regulations State statutes

Alteration/disruption of business practices Unique identification of individuals/cases Accuracy and reliability of data Disparate hardware/software platforms

Page 96: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

96

CSE

2102

CSE

2102

EMR for Large Providers - AllScriptEMR for Large Providers - AllScript

Page 97: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

97

CSE

2102

CSE

2102

EMR for Smaller ProvidersEMR for Smaller Providers

LocalEMR

Provider’s Office

Remote Access

Vendor’s LocationServer/Data Farm

LocalEMR

RemoteEMR

PatientData

Page 98: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

98

CSE

2102

CSE

2102

Integrating Clinical Repositories Provider/Hospital Relationship

Provider has Privileges at Hospital Provider Chooses Office-Based EMR More Easily Integrated with Hospital EMR Emerging at Community Hospital Level

Example: Milford Hospital, MA All Area Providers with Privileges Linked in Ability to See Patient Records, Tests, at Hospital Unclear on Uploads from Providers to Hospital However, No Link to UMass Medical Center (of

which Milford Hospital is Affiliated)

Page 99: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

99

CSE

2102

CSE

2102

Integrating Clinical Repositories

Page 100: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

100

CSE

2102

CSE

2102

Integrating Clinical RepositoriesIntegrating Clinical Repositories

Page 101: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

101

CSE

2102

CSE

2102

Integrating Clinical RepositoriesIntegrating Clinical Repositories

Page 102: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

102

CSE

2102

CSE

2102

NHIN Prototype Phase I

Integrating Clinical RepositoriesIntegrating Clinical Repositories

Page 103: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

103

CSE

2102

CSE

2102

NHIN Prototype Phase II

Integrating Clinical RepositoriesIntegrating Clinical Repositories

Page 104: 1 CSE 2102 CSE 2102 Software and Enterprise Architectures Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut

104

CSE

2102

CSE

2102