1 cse 2102 cse 2102 software and enterprise architectures prof. steven a. demurjian, sr. computer...
TRANSCRIPT
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.
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?
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
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
5
CSE
2102
CSE
2102
Multiple Backend Database System (MBDS)Multiple Backend Database System (MBDS)
DatabaseController
BackendDatabase Processor
BackendDatabaseProcessor
BackendDatabase Processor
Host/User
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
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
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
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?
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?
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?
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
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
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!
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???
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
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
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
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
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!
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
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
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
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?
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
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
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
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.
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
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
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
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)
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)
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
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
36
CSE
2102
CSE
2102
Java as Interpreter Java as Interpreter
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
38
CSE
2102
CSE
2102
Process Architecture: Statechart Diagram?Process Architecture: Statechart Diagram?
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
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
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
42
CSE
2102
CSE
2102
The Observer PatternThe Observer Pattern
43
CSE
2102
CSE
2102
Model View Controller http://java.sun.com/blueprints/patterns/MVC-detailed.html
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.
45
CSE
2102
CSE
2102
Model View Controller http://java.sun.com/blueprints/patterns/MVC-detailed.html
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?
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.
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.
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
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
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?
52
CSE
2102
CSE
2102
Component Diagram Captures the Physical Structure of the Implementation
53
CSE
2102
CSE
2102
Deployment Diagram Captures the Topology of a System’s Hardware
54
CSE
2102
CSE
2102
Collaboration DiagramCollaboration Diagram
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
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?
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
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
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
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
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
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
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 …
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
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
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
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
68
CSE
2102
CSE
2102
ClientApplication
IDL file
Stub Skeleton
IDL Compiler IDL Compiler
ORB/IIOP ORB/IIOP
ObjectImplementation
CORBA-Based DevelopmentCORBA-Based Development
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
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
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
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
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
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
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
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
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
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?
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
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?
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
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
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
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
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
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
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.
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
89
CSE
2102
CSE
2102
ThinClient
WebServer
MainframeDatabase
Server
Current State-of-ArtCurrent State-of-Art
90
CSE
2102
CSE
2102
Infotaps &Fat Clients
Varietyof Servers
Sensors
DatabaseServer
Many sources
Infosphere Scenario Infosphere Scenario
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...
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
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
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”
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
96
CSE
2102
CSE
2102
EMR for Large Providers - AllScriptEMR for Large Providers - AllScript
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
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)
99
CSE
2102
CSE
2102
Integrating Clinical Repositories
100
CSE
2102
CSE
2102
Integrating Clinical RepositoriesIntegrating Clinical Repositories
101
CSE
2102
CSE
2102
Integrating Clinical RepositoriesIntegrating Clinical Repositories
102
CSE
2102
CSE
2102
NHIN Prototype Phase I
Integrating Clinical RepositoriesIntegrating Clinical Repositories
103
CSE
2102
CSE
2102
NHIN Prototype Phase II
Integrating Clinical RepositoriesIntegrating Clinical Repositories
104
CSE
2102
CSE
2102