ICS 221 Winter 2001 Interoperability & Middleware
Interoperability
! The ability of independently-developed Interoperability & Middleware components to interact and cooperate with each other ! The ability of components to exchange data and services David S. Rosenblum ! For example … ICS 221 Winter 2001
American electrical plug European electrical outlet
Why Is Interoperability Interoperability and Important? Software Architecture
! Interoperability is becoming a dominant (if not the dominant) challenge for software AA ??BB engineering
! Component-based software engineering ! Connectors ! Increased levels of software reuse ! What kind of connector is needed to allow A to ! Exploiting legacy applications interoperate with B? ! The World Wide Web ! What are its properties? ! Distributed software engineering
! Engineering of distributed software
! Distributed engineering of software The connector must resolve
! Engineering of software for automated distribution and architectural mismatch between A & B deployment
Architectural Mismatch Assumptions Leading to (Garlan, Allen, Ockerbloom 1995) Architectural Mismatch (I)
! Architectural mismatch refers to a ! Assumptions about the nature of the mismatch between assumptions made components by different components about the ! substrate on which component is built structure of the system and the nature ! control model ! data model of the environment in which they ! Assumptions about the nature of the operate connectors
! protocols
! data model
© 2001 David S. Rosenblum 1 ICS 221 Winter 2001 Interoperability & Middleware
Assumptions Leading to Syntactic and Semantic Architectural Mismatch (II) Interoperability
! Assumptions about the global configuration ! Syntactic compatibility only guarantees that
! topology data will pass through a connector properly
! presence of certain components or connectors ! Semantic compatibility is achieved only when components agree on the meaning of the ! absence of certain components or connectors data they exchange ! Assumptions about the system construction ! Example: American & European electricity process ! Example: UNIX pipes ! order in which elements are instantiated ! Syntactic compatibility established by making all ! order in which elements are combined data ASCII
! Semantic compatibility is not universal
! Line-oriented data? Field-oriented lines? Field separators?
Approaches to Achieving Interoperability (Shaw) Approaches 1 & 2
1. Change A’s form to B’s form ! Complete rewrite of A or B ! Use standard architecture-specific frameworks
! Component & middleware standards (OLE, ActiveX, COM, DCOM, CORBA, JavaBeans, OpenDoc) ! Client/server builders (e.g., Powerbuilder)
! Class frameworks (MFC) ! UNIX pipes 2. Publish abstraction of A’s form ! Uniform distribution format
! Adobe Acrobat, MIME, Rich Text Format (RTF) ! Open interfaces ! Introspection/reflection ! Views and projections
! This is commonly found in databases form = representation, communication, packaging, semantics
Approach 3 Approaches 4 & 5
3. Transform on the fly 4. Negotiate common form
! Data filters ! Modem protocol negotiation ! Convert big-endian to little-endian within communication protocol ! Mediators 5. Make B multilingual ! Encapsulate connection policies in separate integration components (Sullivan and Notkin) ! Parts capable of interacting in different forms
! Provide agents that synthesize information across ! Cross-platform parts
heterogeneous data sources (Wiederhold) ! “Fat binaries”
! Scripts and other externally-imposed controls ! Portable UNIX code
! Event-based integration (SoftBench, ToolTalk, Castanet)
! Scripting languages: Tcl, Perl, Javascript
! Multimedia browsers (Mosaic, IE, Netscape)
© 2001 David S. Rosenblum 2 ICS 221 Winter 2001 Interoperability & Middleware
Approach 6 Approach 7
6. Provide import/export converters 7. Introduce intermediate form ! Standalone conversion tools ! Exchange representations ! Graphic format converters (GIF/JPG/PS/PBM/PCX/TIFF) ! Interface description language (IDL) ! Incoming/outgoing converters ! Standard distribution forms ! Conversion plug-ins (MS Word/WordPerfect, MS Powerpoint/Harvard Graphics) ! RTF, PDF, HTML, external data representation
! Procedure call conversions, Ada “pragma interface”
! Marshaling/unmarshaling of data
! Object serialization/deserialization
Approaches 8 & 9 Approach 10
8. Use wrapper 10. Separate B’s essence from its ! Wrappers and filters packaging ! Adapters ! ! CORBA Basic Object Adapter (BOA) Separate decisions about internal ! Adapters and adapter classes in Java and JavaBeans functionality from decisions about ! Web browsers “packaging” or interaction style with rest ! Emulation of system ! WinTel emulators for Mac, SunOS ! Both these decisions are currently made by ! X Windows emulators for WinTel component provider
9. Parallel consistent versions ! Both these decisions must be currently ! Maintain two synchronized versions understood by system integrator
! Must constrain both A & B to match assumptions
Example of Separating Distributed Object Technology Packaging from Essence and Middleware
! Component provider provides essence ! An layer of software that resides between
! compute the 200-day moving average of a stock applications and the network in order to price facilitate interoperability of distributed application components ! System integrator provides packaging ! An important enabling technology for ! synchronous procedural invocation interoperability in distributed software ! and/or asynchronous event-based update systems ! and/or ActiveX control ! Marriage of client/server technology with ! and/or CORBA IDL-based stub/skeleton interface object-oriented design and analysis ! … ! The “objects” can be anything from data structures to million-line legacy systems
© 2001 David S. Rosenblum 3 ICS 221 Winter 2001 Interoperability & Middleware
Middleware and Architecture Current Technology (I)
! CORBA ! Reconciling architectural models with ! COM+/DCOM and their ancestors component interoperability standards and standard design notations ! OpenDoc ! Explicit connectors ! SOM ! Architectural style ! ODP ! Research project: Architectural modeling ! Enterprise JavaBeans in UML
! MOM/Event Messaging Middleware ! Research project: ARABICA and ROBUSTA ! Publish/Subscribe Middleware beanboxes for JavaBeans
Middleware and Architecture Middleware-Induced Styles (II) (Di Nitto & Rosenblum 1999)
! Reconciling architectural models with ! The choice of a specific middleware can middleware infrastructures have an impact on the architecture of ! Software engineering principle encourages the software system architects/designers to defer implementation decisions ! and vice versa
! But many design decisions constrain the ! An intuitive example
choice of implementation technologies ! A three-tier client/server architecture ! Research project: Architectural support for implemented on top of an event-based middleware-induced styles middleware...
Modeling Middleware-Induced Styles in ADLs Findings
! Focus of Paper ! We could not find a consensus on the semantics provided for ADLs ! Language constructs for defining styles ! None of the languages we studied suits our ! Language constructs for creating architectures starting from styles requirements
! Deficiencies in languages’ expressive power ! Why? Most ADL research has ignored ! Issues of implementation conformance ! Restrictions in the semantics ! Mapping to middleware technologies
! An exception is [Dashofy, Medvidovic, Taylor 99]
© 2001 David S. Rosenblum 4 ICS 221 Winter 2001 Interoperability & Middleware
Interoperability at Implications of Internet Scale Internet Scale on Event Notification
! Huge numbers of hosts and users ! Event interaction becomes too burdensome
! Vast numbers of events for applications to manage on their own
! Heterogeneity
! Increased importance of ! Thus, a separate event notification service is
! Network latency required
! Autonomy
! Resource accounting ! But, event technologies originally designed ! Security for LANs don’t scale ! Mobility
SIENA SIENA Event Notification (Carzaniga, Rosenblum, Wolf 2000) Infrastructure
Subscribe Interested Interested Interested Notify Interested PartyParty PartyParty Unsubscribe Advertise ObjectObject ofof ! Provides ObjectObject ofof InterestInterest ! Storage of advertisements Publish Interest Interest ! Storage of subscriptions
! Efficient delivery of notifications Unadvertise ! Research challenge: what is an appropriate architecture for this infrastructure?
Architectural Advantages of Event-Based Interoperability
! Loose coupling between components
! Publishers need not know identity/location of subscribers
! Subscribers need not know identity/location of publishers ! Scalability
! Load on publishers and subscribers is constant as number of publishers and subscribers grows
! But the load on the pub/sub infrastructure grows …
© 2001 David S. Rosenblum 5