SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Interoperability
Eric M. Dashofy*
ICS 221
November 12, 2002
*With special thanks to David Rosenblum from whom some of this material is blatantly stolen.
Overview
Characterization of the Problem
 With a small attempt to taxonomize
Taxonomy of Solutions
Investigation of Specific Solutions
 CORBA, JMS, Siena, and other
middleware
 XML
Definitions
Interoperability
 The ability for two or more (independently-
developed) (software) components to
interact meaningfully
 Communicate meaningfully
 Exchange data or services
Why is Interoperability Important?
One (perhaps the) dominant challenge in
software engineering
 We can’t live without it
 Large systems are no longer built from first principles
(nor can they be)
 We shouldn’t live without it
 Component reuse has the potential for enormous cost
savings
 Cited by Brooks as a potential silver bullet
 We need it to maintain the living we do now
 We are burdened with un-rebuildable legacy systems
 cf. SAABRE, Air Traffic Control
 It is induced by the state of computing now
 Increasing connectivity of computers through the Internet
Is Interoperability the
Problem?
Interoperability is not a problem, it’s a software
quality. The problem in achieving this quality is…
Heterogeneity!
 Components written in different programming languages
 Components running on different hardware platforms
 Components running on different operating systems
 Components using different data representations
 Components using different control models
 Components implementing different semantics or semantic
interpretations
 Components implementing duplicate functionality
 Components implementing conflicting functionality
Another Characterization
Architectural Mismatch [GAO95]
 Components have difficulty interoperating because
of mismatching assumptions
 About the world they run in
 About who is in control, and when
 About data formats and how they’re manipulated
 Also assumptions about connectors
 About protocols (who says what when)
 About data models (what is said)
 Also assumptions about the global configuration
(topology)
 …and the construction process (mostly
instantiation)
Syntactic vs. Semantic
Syntactic compatibility only guarantees that
data will pass through a connector properly
Semantic compatibility is achieved only when
components agree on the meaning of the
data they exchange
Example: UNIX pipes
 Syntactic compatibility established by making all
data ASCII
 Semantic compatibility is not addressed
 Line-oriented data?
 Field-oriented lines?
 Field separators?
Classic Example
Enumerate the interoperability problems here
Are they essential or accidental?
Are they syntactic or semantic?
American electrical plug European electrical outlet
An example of an “essential”
power problem
American electrical plug
Flintstones Power Source
Achieving Interoperability
Component
A
Component
B
?
? ?
Given two components and an arbitrary connector
in between, how can we make them interoperate?
Give some examples of components for A and B.
Shaw’s Taxonomy
form = representation, communication, packaging, semantics
In Detail…
Change A’s form to B’s form
 Usually involves a complete rewrite
 Expensive but do-able
Publish an abstraction of A’s form
 API’s (open or standardized)
 Projections or Views (common in
databases)
(cont).
Transform on the fly
 Big-endian to little-endian translations in
the connector
 REST architectural style
Negotiate a common form
 Requires that one or both components
support multiple forms
 Classic example is modem protocol
negotiation
(cont).
Make B multilingual
 Macintosh “fat binaries”
 “Portable code” that uses #ifdefs
Import/Export Converters
 May be part of A or B, may be developed
by a 3rd
party
 Classic example: word processors,
Alchemy Mindworks’ Graphics Workshop
(cont).
Intermediate form
 Agree on a common form, usually involves some
sort of standardization
 IDL data definitions
 XML schema
 RTF, PostScript, PDF
Wrap Component A
 Machine emulator
 (cf. Playstation emulators, StellaX, SAABRE)
 Piece of code that translates APIs
(cont).
Maintain parallel consistent versions
 Constrain both A and B such that they have
matching assumptions
 Whenever one changes assumptions, make the
corresponding change in the other component
 Delicate, often impractical
Separate essence from packaging
 Research topic
 “A service without an interface”
 Interfaces are provided by “system integrators”
 Variant: exposing multiple interfaces from A
 Variant: A generic interface that can be
transformed into many interfaces automatically
The “Solution”
(as offered by industry)
Middleware
 Buzz: Industry will build you a connector
that makes interoperability magically
appear
 Right?
Hint: Not Exactly 
Middleware
Popular middleware offerings
 CORBA
 COM
 RMI
 JMS
 DCE RPC (aka Xerox Courier, SunRPC, ARPC)
 Microsoft Message Queue
 MQ Series
 Siena
 KnowNow SOAP Routing
 SOAP (is this middleware?)
Focus: CORBA
Common Object Request Broker
Architecture
A middleware standard
 (not implementation)
 from the Object
Management Group
 Like the United Nations
of software organizations
Focus: CORBA
From the spec:
 Object Request Broker, which enables objects to transparently
make and receive requests and responses in a distributed
environment. It is the foundation for building applications from
distributed objects and for interoperability between applications in
hetero- and homogeneous environments. The architecture and
specifications of the Object Request Broker are described in this
manual.
Standard for middleware that enables interoperability
among components with different assumptions about:
 Platform
 Language (type system)
What assumptions are implicit in the OMG
definition?
What is CORBA?
At its core:
 It is RPC with objects
 Along with a fairly competent IDL (interface
definition language)
 Plus some pre-defined services provided by the
middleware and exposed through the
RPC+Objects mechanism (CORBAServices)
 Naming
 Trading
 “Events”
 Etc.
Example
Component
A
Object
B
Public
Interface of B
How do we make this call (one
way only, here)?
Example
Component
A
Object
B
Public
Interface of B
First, we must
turn this interface
into something that
is comprehensible in A’s world
Solution: define the interface in a platform-neutral
interface definition language (IDL)
Why might this be harder than it looks?
Exercise: Convert this Java
signature to be called from C++
public int foo(int p1, Vector v);
public int start(Thread t);
What do we need to know about the source and
target language to do this effectively?
Can I do this for any arbitrary function?
Example cont.
Component
A
Object
B
Public
Interface of B
IDL
Compiler for A-world
IDL
Compiler for B-world
Are these the same?
Example cont.
Component
A
Object
B
Public
Interface of B
Stub
Compiler for A-world
(or maybe…)
B’s
Stub for
A-world
Skeleton
Compiler for B-world
(or maybe…)
Skeleton for
B-world
Example cont.
Component
A
Object
B
Public
Interface of B
B’s
Stub for
A-world
Skeleton for
B-world
Via proprietary
protocol, probably TCP-based
if a network is involved, maybe
through some more efficient
OS-based mechanism like
named-pipes if the call is all
being made on one machine.
NB: B is often
called the “true
object”
Semantic Sugar:
CORBAservices
CORBAservices are basically standardized APIs for
doing common tasks.
The True Objects providing the services are usually
provided by your ORB vendor.
void bind(in Name n, in Object obj)
raises(NotFound, CannotProceed, InvalidName,AlreadyBound);
void rebind(in Name n, in Object obj)
raises(NotFound, CannotProceed, InvalidName);
A snippet of the IDL for the Naming service:
Funny Side-note: IIOP
It turns out that the proprietary protocols
between stubs and skeletons caused
interoperability problems between
ORBS
 Solution: standardize yet another protocol
for Inter-ORB Interoperability
 This became IIOP—the Internet Inter-Orb
Protocol
For Discussion
What kinds of heterogeneity/interoperability
issues are solved by CORBA
Which are not?
Are the problems that are addressed
syntactic or semantic?
Does CORBA induce any additional
assumptions (i.e. does it worsen
interoperability)?
 What assumptions?
 How?
Where does CORBA fit in Shaw’s taxonomy?
Can we taxonomize
middlewares?
RPC with Objects
- CORBA
- COM
- RMI
- SOAP-RPC
Oneway Messages
(low multicast)
- JMS
- MSMQ
- MQ Series
- SOAP (at core)
- CORBA oneway calls
RPC with Services
- DCE RPC
- “Q” (U. Colorado)
- Corba w/C binding
Oneway Messages
(high multicast)
- Siena
- KnowNow SOAP
routing
- Precache Secret Project
(presumably)
Focus: XML
XML: Extensible Markup Language
 Buzz: Finally, a standard for encoding
data! XML will solve your interoperability
problems!
 Right?
Hint: Not exactly 
What is XML?
From the spec:
 Extensible Markup Language, abbreviated XML, describes a class
of data objects called XML documents and partially describes the
behavior of computer programs which process them. XML is an
application profile or restricted form of SGML, the Standard
Generalized Markup Language [ISO 8879]. By construction, XML
documents are conforming SGML documents.
 XML documents are made up of storage units called entities, which
contain either parsed or unparsed data. Parsed data is made up of
characters, some of which form character data, and some of which
form markup. Markup encodes a description of the document's
storage layout and logical structure. XML provides a mechanism to
impose constraints on the storage layout and logical structure.
What assumptions are implicit in the W3C
discussion?
What is XML, really?
A way of organizing and decorating
textual data
Blatantly hierarchical, but works well in
the context of a running document
Supported by meta-languages that
define allowable constructs in the
hierarchy
Example
Eric’s Personal Information,
unstructured.
Eric M. Dashofy, b. 1977 to
father Mark and mother
Susan, currently a
computer scientist at UC
Irvine, hobbies include
playing guitar and making
Star Wars fan-films.
With XML
<person>
<name>
<first>Eric</first>
<mi>M</mi>
<last>Dashofy</last>
</name>
<dob>
<year>1977</year>
</dob>
<father>Mark</father>
<mother>Susan</mother>
<occupation>
<title>Computer Scientist</title>
<location>UC Irvine<location>
</occupation>
<hobby name=“guitar” />
<hobby name=“star-wars-fanfilms” />
</person>
Is this better or worse
than the bio on the
previous slide? Howso?
What can we do with this
bio that we couldn’t with
the previous one?
What assumptions are
being made in this
biography?
What agreement(s) do two
components have to come
to to make use of this bio?
For Discussion
What kinds of heterogeneity/interoperability
issues are solved by XML?
Which are not?
Are the problems that are addressed
syntactic or semantic?
Does XML induce any additional assumptions
(i.e. does it worsen interoperability)?
 What assumptions?
 How?
Where does XML fit in Shaw’s taxonomy?
Future Directions
Interoperability over the Web
 SOAP
 “XML for control instead of data”
 Solves, introduces same issues as XML
 Web Services
 “The Semantic Web”
2nd
Generation Middleware
 Which is largely geared toward interoperability
between 1st
generation middleware packages
Enterprise Application Integration (EAI)
 A whole market driven by people with experience
making systems interoperate

Weitere ähnliche Inhalte

Was ist angesagt?

Information retrieval-systems notes
Information retrieval-systems notesInformation retrieval-systems notes
Information retrieval-systems notesBAIRAVI T
 
Integrative Programming and Technology Chapter 4- Dr. J. VijiPriya
Integrative Programming and Technology Chapter 4- Dr. J. VijiPriyaIntegrative Programming and Technology Chapter 4- Dr. J. VijiPriya
Integrative Programming and Technology Chapter 4- Dr. J. VijiPriyaVijiPriya Jeyamani
 
The vector space model
The vector space modelThe vector space model
The vector space modelpkgosh
 
OODM-object oriented data model
OODM-object oriented data modelOODM-object oriented data model
OODM-object oriented data modelAnilPokhrel7
 
Dbms relational model
Dbms relational modelDbms relational model
Dbms relational modelChirag vasava
 
The semantic web
The semantic web The semantic web
The semantic web ap
 
Relational Database Design
Relational Database DesignRelational Database Design
Relational Database DesignArchit Saxena
 
11. Storage and File Structure in DBMS
11. Storage and File Structure in DBMS11. Storage and File Structure in DBMS
11. Storage and File Structure in DBMSkoolkampus
 
IoT Reference Architecture and Case Studies
IoT Reference Architecture and Case StudiesIoT Reference Architecture and Case Studies
IoT Reference Architecture and Case StudiesSerhiy (Serge) Haziyev
 
CS6010 Social Network Analysis Unit II
CS6010 Social Network Analysis   Unit IICS6010 Social Network Analysis   Unit II
CS6010 Social Network Analysis Unit IIpkaviya
 
Digital ready policymaking and the digital screening process(1)
Digital ready policymaking and the digital screening process(1)Digital ready policymaking and the digital screening process(1)
Digital ready policymaking and the digital screening process(1)PanagiotisKeramidis
 
Chapter 1 Introduction to Information Storage and Retrieval.pdf
Chapter 1 Introduction to Information Storage and Retrieval.pdfChapter 1 Introduction to Information Storage and Retrieval.pdf
Chapter 1 Introduction to Information Storage and Retrieval.pdfHabtamu100
 
Cloud Computing & Big Data
Cloud Computing & Big DataCloud Computing & Big Data
Cloud Computing & Big DataMrinal Kumar
 
Data base management system and Architecture ppt.
Data base management system and Architecture ppt.Data base management system and Architecture ppt.
Data base management system and Architecture ppt.AnkitAbhilashSwain
 
Lectures 1,2,3
Lectures 1,2,3Lectures 1,2,3
Lectures 1,2,3alaa223
 
Terminologies Used In Big data Environments,G.Sumithra,II-M.sc(computer scien...
Terminologies Used In Big data Environments,G.Sumithra,II-M.sc(computer scien...Terminologies Used In Big data Environments,G.Sumithra,II-M.sc(computer scien...
Terminologies Used In Big data Environments,G.Sumithra,II-M.sc(computer scien...sumithragunasekaran
 
Big Data PPT by Rohit Dubey
Big Data PPT by Rohit DubeyBig Data PPT by Rohit Dubey
Big Data PPT by Rohit DubeyRohit Dubey
 
Relational Database.pptx
Relational Database.pptxRelational Database.pptx
Relational Database.pptxSubhamSarkar64
 

Was ist angesagt? (20)

Information retrieval-systems notes
Information retrieval-systems notesInformation retrieval-systems notes
Information retrieval-systems notes
 
Integrative Programming and Technology Chapter 4- Dr. J. VijiPriya
Integrative Programming and Technology Chapter 4- Dr. J. VijiPriyaIntegrative Programming and Technology Chapter 4- Dr. J. VijiPriya
Integrative Programming and Technology Chapter 4- Dr. J. VijiPriya
 
The vector space model
The vector space modelThe vector space model
The vector space model
 
OODM-object oriented data model
OODM-object oriented data modelOODM-object oriented data model
OODM-object oriented data model
 
Dbms relational model
Dbms relational modelDbms relational model
Dbms relational model
 
The semantic web
The semantic web The semantic web
The semantic web
 
Relational Database Design
Relational Database DesignRelational Database Design
Relational Database Design
 
11. Storage and File Structure in DBMS
11. Storage and File Structure in DBMS11. Storage and File Structure in DBMS
11. Storage and File Structure in DBMS
 
IoT Reference Architecture and Case Studies
IoT Reference Architecture and Case StudiesIoT Reference Architecture and Case Studies
IoT Reference Architecture and Case Studies
 
CS6010 Social Network Analysis Unit II
CS6010 Social Network Analysis   Unit IICS6010 Social Network Analysis   Unit II
CS6010 Social Network Analysis Unit II
 
Digital ready policymaking and the digital screening process(1)
Digital ready policymaking and the digital screening process(1)Digital ready policymaking and the digital screening process(1)
Digital ready policymaking and the digital screening process(1)
 
Metadata
MetadataMetadata
Metadata
 
Chapter 1 Introduction to Information Storage and Retrieval.pdf
Chapter 1 Introduction to Information Storage and Retrieval.pdfChapter 1 Introduction to Information Storage and Retrieval.pdf
Chapter 1 Introduction to Information Storage and Retrieval.pdf
 
Cloud Computing & Big Data
Cloud Computing & Big DataCloud Computing & Big Data
Cloud Computing & Big Data
 
Data base management system and Architecture ppt.
Data base management system and Architecture ppt.Data base management system and Architecture ppt.
Data base management system and Architecture ppt.
 
Lectures 1,2,3
Lectures 1,2,3Lectures 1,2,3
Lectures 1,2,3
 
Database systems introduction
Database systems introductionDatabase systems introduction
Database systems introduction
 
Terminologies Used In Big data Environments,G.Sumithra,II-M.sc(computer scien...
Terminologies Used In Big data Environments,G.Sumithra,II-M.sc(computer scien...Terminologies Used In Big data Environments,G.Sumithra,II-M.sc(computer scien...
Terminologies Used In Big data Environments,G.Sumithra,II-M.sc(computer scien...
 
Big Data PPT by Rohit Dubey
Big Data PPT by Rohit DubeyBig Data PPT by Rohit Dubey
Big Data PPT by Rohit Dubey
 
Relational Database.pptx
Relational Database.pptxRelational Database.pptx
Relational Database.pptx
 

Andere mochten auch

Andere mochten auch (17)

CORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBACORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBA
 
Interoperability for Teaming and Autonomy
Interoperability for Teaming and Autonomy Interoperability for Teaming and Autonomy
Interoperability for Teaming and Autonomy
 
Deployment
DeploymentDeployment
Deployment
 
CORBA
CORBACORBA
CORBA
 
EJB 3.1 by Bert Ertman
EJB 3.1 by Bert ErtmanEJB 3.1 by Bert Ertman
EJB 3.1 by Bert Ertman
 
javabeans
javabeansjavabeans
javabeans
 
COM
COMCOM
COM
 
C O R B A Unit 4
C O R B A    Unit 4C O R B A    Unit 4
C O R B A Unit 4
 
Component object model and
Component object model andComponent object model and
Component object model and
 
Corba introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
 
Javabeans
JavabeansJavabeans
Javabeans
 
Distributed objects & components of corba
Distributed objects & components of corbaDistributed objects & components of corba
Distributed objects & components of corba
 
Java beans
Java beansJava beans
Java beans
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
Corba
CorbaCorba
Corba
 
Interoperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System ArchitecturesInteroperable, Extensible and Efficient System Architectures
Interoperable, Extensible and Efficient System Architectures
 

Ähnlich wie Interoperability

Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .netMarco Parenzan
 
Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...IndicThreads
 
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Matthias Noback
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftTalentica Software
 
Melbourne Microservices Meetup: Agenda for a new Architecture
Melbourne Microservices Meetup: Agenda for a new ArchitectureMelbourne Microservices Meetup: Agenda for a new Architecture
Melbourne Microservices Meetup: Agenda for a new ArchitectureSaul Caganoff
 
Integration&SOA_v0.2
Integration&SOA_v0.2Integration&SOA_v0.2
Integration&SOA_v0.2Sergey Popov
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Matthias Noback
 
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Matthias Noback
 
Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructurekaveirious
 
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)Matthias Noback
 
Hexagonal architecture message-oriented software design
Hexagonal architecture   message-oriented software designHexagonal architecture   message-oriented software design
Hexagonal architecture message-oriented software designMatthias Noback
 
Using requirements to retrace software evolution history
Using requirements to retrace software evolution historyUsing requirements to retrace software evolution history
Using requirements to retrace software evolution historyNeil Ernst
 
Presentation
PresentationPresentation
PresentationVideoguy
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011YoungSu Son
 
Parallel Computing 2007: Overview
Parallel Computing 2007: OverviewParallel Computing 2007: Overview
Parallel Computing 2007: OverviewGeoffrey Fox
 
Command & [e]Mission Control: Using Command and Event Buses to create a CQRS-...
Command & [e]Mission Control: Using Command and Event Buses to create a CQRS-...Command & [e]Mission Control: Using Command and Event Buses to create a CQRS-...
Command & [e]Mission Control: Using Command and Event Buses to create a CQRS-...Barney Hanlon
 
Facilitating Busines Interoperability from the Semantic Web
Facilitating Busines Interoperability from the Semantic WebFacilitating Busines Interoperability from the Semantic Web
Facilitating Busines Interoperability from the Semantic WebRoberto García
 

Ähnlich wie Interoperability (20)

Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .net
 
DDD
DDDDDD
DDD
 
Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...
 
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
Hexagonal architecture - message-oriented software design (PHP Barcelona 2015)
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thrift
 
Melbourne Microservices Meetup: Agenda for a new Architecture
Melbourne Microservices Meetup: Agenda for a new ArchitectureMelbourne Microservices Meetup: Agenda for a new Architecture
Melbourne Microservices Meetup: Agenda for a new Architecture
 
Integration&SOA_v0.2
Integration&SOA_v0.2Integration&SOA_v0.2
Integration&SOA_v0.2
 
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...Hexagonal architecture - message-oriented software design (Symfony Live Berli...
Hexagonal architecture - message-oriented software design (Symfony Live Berli...
 
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
Hexagonal architecture - message-oriented software design (PHP Benelux 2016)
 
dot NET Framework
dot NET Frameworkdot NET Framework
dot NET Framework
 
Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructure
 
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
Hexagonal Architecture - message-oriented software design (PHPCon Poland 2015)
 
Hexagonal architecture message-oriented software design
Hexagonal architecture   message-oriented software designHexagonal architecture   message-oriented software design
Hexagonal architecture message-oriented software design
 
Using requirements to retrace software evolution history
Using requirements to retrace software evolution historyUsing requirements to retrace software evolution history
Using requirements to retrace software evolution history
 
MIDELWARE TECH
MIDELWARE TECHMIDELWARE TECH
MIDELWARE TECH
 
Presentation
PresentationPresentation
Presentation
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011
 
Parallel Computing 2007: Overview
Parallel Computing 2007: OverviewParallel Computing 2007: Overview
Parallel Computing 2007: Overview
 
Command & [e]Mission Control: Using Command and Event Buses to create a CQRS-...
Command & [e]Mission Control: Using Command and Event Buses to create a CQRS-...Command & [e]Mission Control: Using Command and Event Buses to create a CQRS-...
Command & [e]Mission Control: Using Command and Event Buses to create a CQRS-...
 
Facilitating Busines Interoperability from the Semantic Web
Facilitating Busines Interoperability from the Semantic WebFacilitating Busines Interoperability from the Semantic Web
Facilitating Busines Interoperability from the Semantic Web
 

Interoperability

  • 1. Interoperability Eric M. Dashofy* ICS 221 November 12, 2002 *With special thanks to David Rosenblum from whom some of this material is blatantly stolen.
  • 2. Overview Characterization of the Problem  With a small attempt to taxonomize Taxonomy of Solutions Investigation of Specific Solutions  CORBA, JMS, Siena, and other middleware  XML
  • 3. Definitions Interoperability  The ability for two or more (independently- developed) (software) components to interact meaningfully  Communicate meaningfully  Exchange data or services
  • 4. Why is Interoperability Important? One (perhaps the) dominant challenge in software engineering  We can’t live without it  Large systems are no longer built from first principles (nor can they be)  We shouldn’t live without it  Component reuse has the potential for enormous cost savings  Cited by Brooks as a potential silver bullet  We need it to maintain the living we do now  We are burdened with un-rebuildable legacy systems  cf. SAABRE, Air Traffic Control  It is induced by the state of computing now  Increasing connectivity of computers through the Internet
  • 5. Is Interoperability the Problem? Interoperability is not a problem, it’s a software quality. The problem in achieving this quality is… Heterogeneity!  Components written in different programming languages  Components running on different hardware platforms  Components running on different operating systems  Components using different data representations  Components using different control models  Components implementing different semantics or semantic interpretations  Components implementing duplicate functionality  Components implementing conflicting functionality
  • 6. Another Characterization Architectural Mismatch [GAO95]  Components have difficulty interoperating because of mismatching assumptions  About the world they run in  About who is in control, and when  About data formats and how they’re manipulated  Also assumptions about connectors  About protocols (who says what when)  About data models (what is said)  Also assumptions about the global configuration (topology)  …and the construction process (mostly instantiation)
  • 7. Syntactic vs. Semantic Syntactic compatibility only guarantees that data will pass through a connector properly Semantic compatibility is achieved only when components agree on the meaning of the data they exchange Example: UNIX pipes  Syntactic compatibility established by making all data ASCII  Semantic compatibility is not addressed  Line-oriented data?  Field-oriented lines?  Field separators?
  • 8. Classic Example Enumerate the interoperability problems here Are they essential or accidental? Are they syntactic or semantic? American electrical plug European electrical outlet
  • 9. An example of an “essential” power problem American electrical plug Flintstones Power Source
  • 10. Achieving Interoperability Component A Component B ? ? ? Given two components and an arbitrary connector in between, how can we make them interoperate? Give some examples of components for A and B.
  • 11. Shaw’s Taxonomy form = representation, communication, packaging, semantics
  • 12. In Detail… Change A’s form to B’s form  Usually involves a complete rewrite  Expensive but do-able Publish an abstraction of A’s form  API’s (open or standardized)  Projections or Views (common in databases)
  • 13. (cont). Transform on the fly  Big-endian to little-endian translations in the connector  REST architectural style Negotiate a common form  Requires that one or both components support multiple forms  Classic example is modem protocol negotiation
  • 14. (cont). Make B multilingual  Macintosh “fat binaries”  “Portable code” that uses #ifdefs Import/Export Converters  May be part of A or B, may be developed by a 3rd party  Classic example: word processors, Alchemy Mindworks’ Graphics Workshop
  • 15. (cont). Intermediate form  Agree on a common form, usually involves some sort of standardization  IDL data definitions  XML schema  RTF, PostScript, PDF Wrap Component A  Machine emulator  (cf. Playstation emulators, StellaX, SAABRE)  Piece of code that translates APIs
  • 16. (cont). Maintain parallel consistent versions  Constrain both A and B such that they have matching assumptions  Whenever one changes assumptions, make the corresponding change in the other component  Delicate, often impractical Separate essence from packaging  Research topic  “A service without an interface”  Interfaces are provided by “system integrators”  Variant: exposing multiple interfaces from A  Variant: A generic interface that can be transformed into many interfaces automatically
  • 17. The “Solution” (as offered by industry) Middleware  Buzz: Industry will build you a connector that makes interoperability magically appear  Right? Hint: Not Exactly 
  • 18. Middleware Popular middleware offerings  CORBA  COM  RMI  JMS  DCE RPC (aka Xerox Courier, SunRPC, ARPC)  Microsoft Message Queue  MQ Series  Siena  KnowNow SOAP Routing  SOAP (is this middleware?)
  • 19. Focus: CORBA Common Object Request Broker Architecture A middleware standard  (not implementation)  from the Object Management Group  Like the United Nations of software organizations
  • 20. Focus: CORBA From the spec:  Object Request Broker, which enables objects to transparently make and receive requests and responses in a distributed environment. It is the foundation for building applications from distributed objects and for interoperability between applications in hetero- and homogeneous environments. The architecture and specifications of the Object Request Broker are described in this manual. Standard for middleware that enables interoperability among components with different assumptions about:  Platform  Language (type system) What assumptions are implicit in the OMG definition?
  • 21. What is CORBA? At its core:  It is RPC with objects  Along with a fairly competent IDL (interface definition language)  Plus some pre-defined services provided by the middleware and exposed through the RPC+Objects mechanism (CORBAServices)  Naming  Trading  “Events”  Etc.
  • 22. Example Component A Object B Public Interface of B How do we make this call (one way only, here)?
  • 23. Example Component A Object B Public Interface of B First, we must turn this interface into something that is comprehensible in A’s world Solution: define the interface in a platform-neutral interface definition language (IDL) Why might this be harder than it looks?
  • 24. Exercise: Convert this Java signature to be called from C++ public int foo(int p1, Vector v); public int start(Thread t); What do we need to know about the source and target language to do this effectively? Can I do this for any arbitrary function?
  • 25. Example cont. Component A Object B Public Interface of B IDL Compiler for A-world IDL Compiler for B-world Are these the same?
  • 26. Example cont. Component A Object B Public Interface of B Stub Compiler for A-world (or maybe…) B’s Stub for A-world Skeleton Compiler for B-world (or maybe…) Skeleton for B-world
  • 27. Example cont. Component A Object B Public Interface of B B’s Stub for A-world Skeleton for B-world Via proprietary protocol, probably TCP-based if a network is involved, maybe through some more efficient OS-based mechanism like named-pipes if the call is all being made on one machine. NB: B is often called the “true object”
  • 28. Semantic Sugar: CORBAservices CORBAservices are basically standardized APIs for doing common tasks. The True Objects providing the services are usually provided by your ORB vendor. void bind(in Name n, in Object obj) raises(NotFound, CannotProceed, InvalidName,AlreadyBound); void rebind(in Name n, in Object obj) raises(NotFound, CannotProceed, InvalidName); A snippet of the IDL for the Naming service:
  • 29. Funny Side-note: IIOP It turns out that the proprietary protocols between stubs and skeletons caused interoperability problems between ORBS  Solution: standardize yet another protocol for Inter-ORB Interoperability  This became IIOP—the Internet Inter-Orb Protocol
  • 30. For Discussion What kinds of heterogeneity/interoperability issues are solved by CORBA Which are not? Are the problems that are addressed syntactic or semantic? Does CORBA induce any additional assumptions (i.e. does it worsen interoperability)?  What assumptions?  How? Where does CORBA fit in Shaw’s taxonomy?
  • 31. Can we taxonomize middlewares? RPC with Objects - CORBA - COM - RMI - SOAP-RPC Oneway Messages (low multicast) - JMS - MSMQ - MQ Series - SOAP (at core) - CORBA oneway calls RPC with Services - DCE RPC - “Q” (U. Colorado) - Corba w/C binding Oneway Messages (high multicast) - Siena - KnowNow SOAP routing - Precache Secret Project (presumably)
  • 32. Focus: XML XML: Extensible Markup Language  Buzz: Finally, a standard for encoding data! XML will solve your interoperability problems!  Right? Hint: Not exactly 
  • 33. What is XML? From the spec:  Extensible Markup Language, abbreviated XML, describes a class of data objects called XML documents and partially describes the behavior of computer programs which process them. XML is an application profile or restricted form of SGML, the Standard Generalized Markup Language [ISO 8879]. By construction, XML documents are conforming SGML documents.  XML documents are made up of storage units called entities, which contain either parsed or unparsed data. Parsed data is made up of characters, some of which form character data, and some of which form markup. Markup encodes a description of the document's storage layout and logical structure. XML provides a mechanism to impose constraints on the storage layout and logical structure. What assumptions are implicit in the W3C discussion?
  • 34. What is XML, really? A way of organizing and decorating textual data Blatantly hierarchical, but works well in the context of a running document Supported by meta-languages that define allowable constructs in the hierarchy
  • 35. Example Eric’s Personal Information, unstructured. Eric M. Dashofy, b. 1977 to father Mark and mother Susan, currently a computer scientist at UC Irvine, hobbies include playing guitar and making Star Wars fan-films.
  • 36. With XML <person> <name> <first>Eric</first> <mi>M</mi> <last>Dashofy</last> </name> <dob> <year>1977</year> </dob> <father>Mark</father> <mother>Susan</mother> <occupation> <title>Computer Scientist</title> <location>UC Irvine<location> </occupation> <hobby name=“guitar” /> <hobby name=“star-wars-fanfilms” /> </person> Is this better or worse than the bio on the previous slide? Howso? What can we do with this bio that we couldn’t with the previous one? What assumptions are being made in this biography? What agreement(s) do two components have to come to to make use of this bio?
  • 37. For Discussion What kinds of heterogeneity/interoperability issues are solved by XML? Which are not? Are the problems that are addressed syntactic or semantic? Does XML induce any additional assumptions (i.e. does it worsen interoperability)?  What assumptions?  How? Where does XML fit in Shaw’s taxonomy?
  • 38. Future Directions Interoperability over the Web  SOAP  “XML for control instead of data”  Solves, introduces same issues as XML  Web Services  “The Semantic Web” 2nd Generation Middleware  Which is largely geared toward interoperability between 1st generation middleware packages Enterprise Application Integration (EAI)  A whole market driven by people with experience making systems interoperate