MW+SOA-1 CSE 5810 Middleware, Service-Oriented Architectures and Grid Computing Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-2155 Storrs, CT 06269-2155 [email protected]http://www.engr.uconn.edu/ ~steve (860) 486 - 4818 Special Thanks to Prof. Alex Shvartsman, Keith Bessette, Scot d Prior CSE333 students for providing portions of this materi
160
Embed
MW+SOA-1 CSE 5810 Middleware, Service-Oriented Architectures and Grid Computing Prof. Steven A. Demurjian Computer Science & Engineering Department The.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MW+SOA-1
CSE5810
Middleware, Service-Oriented Architectures and Grid Computing
Prof. Steven A. Demurjian
Computer Science & Engineering DepartmentThe University of Connecticut
† Special Thanks to Prof. Alex Shvartsman, Keith Bessette, Scott Craig and Prior CSE333 students for providing portions of this material.
MW+SOA-2
CSE5810
What is a Distributed Application?What is a Distributed Application? Distributed Computing/Applications are …Distributed Computing/Applications are …
Systems of Systems Interoperation of New & Existing Applications Legacy, Databases, COTS, New Clients, etc. Network Centric Environment
Distributed Computing Applications must …Distributed Computing Applications must … Manage, Control, Access, and Modify Data Allow Humans to Interact with Data Provide High-Availability and Performance Evolvable Over Time
Present & Future Army Systems Exhibit All of Present & Future Army Systems Exhibit All of These Characteristics and More!These Characteristics and More!
MW+SOA-3
CSE5810
JavaClient
JavaClient
LegacyClient
DB Client
COTSClient
What is a Distributed Application?What is a Distributed Application?
What are the Issues?What are the Issues? How Do they Interact? Heterogeneity Security Concerns Different Programmatic
Models Etc. Etc. Etc.
MW+SOA-5
CSE5810
Why is Distributed Computing Needed?Why is Distributed Computing Needed? Today’s Environments Contain Applications … Today’s Environments Contain Applications …
Created with Multiple Prog. Languages Executing on Heterogeneous Platforms Locally and Geographically Distributed
Distributed Computing Applications Must … Distributed Computing Applications Must … Allow Seamless and Transparent Interoperation Provide Tools for Engineers and Users
Result: Inter-Operating Environment Result: Inter-Operating Environment Utilize Information in New/Innovative Ways Leveraged to Increase Productivity Support Diverse User Activities Dynamically Respond to Changes
MW+SOA-6
CSE5810
Striving for New Techniques/TechnologiesStriving for New Techniques/Technologies We Must Diverge from Business as UsualWe Must Diverge from Business as Usual
C Programming with RPC Customized Development without Reuse Solutions that Aren’t Extensible and Evolvable Cobbling Together Solutions w/o Method or
Reason is Unacceptable and Doomed to Fail! We Must Face Today’s RealitiesWe Must Face Today’s Realities
Legacy Code is Fact of Life New Technologies Offer New Challenges Adopt to Leverage Their Benefits We Must Draw Careful Balance to Opt for
Mature Technologies While Targeting Emerging Technologies with Potential!
MW+SOA-7
CSE5810
Who are the Players?Who are the Players? StakeholdersStakeholders
Software Architects (Requirements) System Designers (Solutions) Application Builders (Implementation)
Stakeholders Striving to Provide …Stakeholders Striving to Provide … System Interaction and Information Exchange Utilization of Existing Applications in New and
Innovative Ways End-Users at Various Skill Levels and with Specific End-Users at Various Skill Levels and with Specific
and Limited Access Requirementsand Limited Access Requirements Novice vs. Adept vs. Expert Who Uses What When and for How Long?Who Uses What When and for How Long?
MW+SOA-8
CSE5810
Why a Distributed Application?Why a Distributed Application? Reasons:Reasons:
Data used is Distributed Computation is Distributed Application Users are
Distributed 2 Key Issues for Solution:2 Key Issues for Solution:
Platform-Independent Models and Abstraction Techniques
Hide Low-Level Details Provide a Well-Performing
Solution Works Today and
Tomorrow!
Shared Objects
• Easy to Re-use• Easy to distribute• Easy to maintain
separately, Network separately, Network can partitioncan partition
Concurrent AccessConcurrent Access Only with multiple Only with multiple threadsthreads YesYes
SecureSecure YesYesNot InherentlyNot InherentlyOften Add-On Often Add-On
CapabilityCapability
Fundamental Realities of Distributed Systems
Service Oriented Architecture & Grid Computing
Marc Brooks, The MITRE Corporation
The author's affiliation with The MITRE Corporation is provided for identification purposes only, and is not intended to convey or imply MITRE's concurrence with, or support for, the positions, opinions or viewpoints expressed by the author.
Service Provider Provides a stateless, location transparent business
service
Service Registry Allows service consumers to locate service providers
that meet required criteria
Service Consumer Uses service providers to complete business
processes
ServiceRegistry
ServiceProvider
ServiceConsumer
Find Register
Bind,Execute
SOA Benefits
Business Benefits Focus on Business Domain solutions Leverage Existing Infrastructure Agility
Technical Benefits Loose Coupling Autonomous Service Location Transparency Late Binding
ServiceRegistry
ServiceProvider
ServiceConsumer
Find Register
Bind,Execute
MW+SOA-14
CSE5810
What is a Service Oriented Architecture?What is a Service Oriented Architecture? Solutions that Focus on Services that Need to be Solutions that Focus on Services that Need to be
Available to Meet Need of Users (Entities)Available to Meet Need of Users (Entities) Users are Assumed to be Interacting via Client Users are Assumed to be Interacting via Client
Applications (Browser or Standalone)Applications (Browser or Standalone) Interactions with Services Transparent to Users
(Integrated into Software) Interactions Between Entities Occur via a Message Interactions Between Entities Occur via a Message
Exchange - ConceptualExchange - Conceptual Resources are Software Artifact Accessible via
API Consisting of Services Services are Logical Grouping of Methods
(Functions) that are Available for Use Services are Utilized When Messages are Invoked
Against Them by Outside Users Both Web-Based and Middleware SettingsBoth Web-Based and Middleware Settings
MW+SOA-15
CSE5810
Middleware-Based SOAMiddleware-Based SOA Distributed Object Computing Platforms are Well Distributed Object Computing Platforms are Well
Established in the Field - HistoricallyEstablished in the Field - Historically DCE (Distributed Computing Environment) COM/OLE (Component Object Model/Object
Linking and Embedding) Modern Middleware (JINI, CORBA, .NET):Modern Middleware (JINI, CORBA, .NET):
CORBA –Standards Committee (OMG) Controls Technology – Many Programming Languages
JINI – Sun-Based Product – The Poor Mans CORBA – Java
.NET – Microsoft’s Forward into the Modern Market – C# (we will skip – see slides at end)
MW+SOA-16
CSE5810
What Must All SOA Provide?What Must All SOA Provide? Both Middleware & Web-Based SOAs Must ProvideBoth Middleware & Web-Based SOAs Must Provide
Middle Layer Infrastructure that Provides Bridge Between Software Artifacts Clients and Resources in Middlware Setting Clients (Browsers) and Resources in Web Setting
Allow Software Artifacts (Resources) to Register/Publish their APIs (Services and Methods) for use by Clients/Other Resources
Lookup Service: Middleware for Artifacts (Resources Lookup Service: Middleware for Artifacts (Resources and/or Clients and/or Other Resources) to Interactand/or Clients and/or Other Resources) to Interact Support Dynamic Discovery – Find Services
Based on Attributes and Values Location Transparency to Service Requestors Found Service Sets up Binding Between Service
Consumer and Service Provider
MW+SOA-17
CSE5810
SOA Akin to CBDSOA Akin to CBD
MW+SOA-18
CSE5810
Supplier /Consumer ModelSupplier /Consumer Model
SUPPLY Build New Wrap Existing Buy
CONSUME Assemble Applications
MANAGE Publish Subscribe Catalog Browse
MW+SOA-19
CSE5810
Objectives of SOAObjectives of SOA Can SOAs Support Can SOAs Support Highly-Available Distributed Highly-Available Distributed
ApplicationsApplications?? Can Replicated Services be Registered and Available Can Replicated Services be Registered and Available
for Use by Clients?for Use by Clients? Can SOAs Support a Network-Centric Environment Can SOAs Support a Network-Centric Environment
with with Dynamic Clients and ServicesDynamic Clients and Services?? Will Clients Continue to Operate Effectively if a Will Clients Continue to Operate Effectively if a
Replicated Service FailsReplicated Service Fails?? Can SOAs be Utilized to Can SOAs be Utilized to Maintain Data ConsistencyMaintain Data Consistency
of Replicas?of Replicas? Are SOAs Easy to Learn and Use?Are SOAs Easy to Learn and Use? What is Maturity Level of SOAs Technology?What is Maturity Level of SOAs Technology? How can SOA be Leverage for HIE/HIT?How can SOA be Leverage for HIE/HIT?
MW+SOA-20
CSE5810
Overview of PresentationOverview of Presentation Objective is to Explore CORBA, JINI, and .NETObjective is to Explore CORBA, JINI, and .NET Various Aspects of Three TechnologiesVarious Aspects of Three Technologies
Overall Architecture Interoperability Capabilities Access and Usage
Exploration of Web Service-Oriented ArchitecturesExploration of Web Service-Oriented Architectures What are they? How do they Work? WSOAs + Middleware
Transition to Grid ComputingTransition to Grid Computing What is the Grid? What is its Purpose and Role Grid + SOA + Middleware
Where does Cloud Computing Fit?Where does Cloud Computing Fit?
MW+SOA-21
CSE5810
What is CORBA?What is CORBA? Common Object Request Broker ArchitectureCommon Object Request Broker Architecture Architecture to Allow:Architecture to Allow:
Existing COTS, GOTS, Legacy, DB, etc. to Interact with One Another
Integrate These with New Clients/Servers/Etc. Consists of Following Major ComponentsConsists of Following Major Components
Object Request Broker (ORB): Arbitrate and Interact Role of Lookup for Service Discovery
Interface Definition Language (IDL): Common Definitional Format Means for Different “Software” written in Different
Languages to Interact with One Another
MW+SOA-22
CSE5810
What is CORBA?What is CORBA? CORBA is a CORBA is a
Specification for Specification for InteroperabilityInteroperability
OMG (Object OMG (Object Management Management Group) Supplies a Group) Supplies a Set of Flexible Set of Flexible Abstraction and Abstraction and Concrete ServicesConcrete Services
Vendors Must Vendors Must Follow StandardFollow Standard
CORBA Language MappingsAda
C and C++COBOL
Java to IDLLisp
CORBA Scripting LanguageSmalltalk
OthersPerl
HaskellPythonEiffel
PHP/ORBit
MW+SOA-23
CSE5810
What is CORBA?What is CORBA? Differs from Typical Programming LanguagesDiffers from Typical Programming Languages Objects can be …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
MW+SOA-24
CSE5810
What is CORBA?What is CORBA? CORBA Provides a Robust set of Services (COS)CORBA Provides a Robust set of Services (COS)
Services to Support Integration and Interoperation of Distributed Objects
Services Defined on top of ORB as standard CORBA Objects with IDL interfaces
Vendors Must Implement CORBA Services (COS)
Object Request Broker
FactoryNamingContext
EventChannel
Object Life CycleNamingEventsRelationshipsExternalizationTransactionsTraderQueryProperty
MW+SOA-25
CSE5810
What is CORBA?What is CORBA? Allow Interactions from Client to Server CORBA Allow Interactions from Client to Server CORBA Installed on All Participating MachinesInstalled 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
MW+SOA-26
CSE5810
CORBA: Architectural GoalsCORBA: Architectural Goals SimplicitySimplicity ConsistencyConsistency ScalabilityScalability Usability for End UsersUsability for End Users Usability for AdministratorsUsability for Administrators Usability for ImplementersUsability for Implementers Flexibility of Security PolicyFlexibility of Security Policy Independence of Security TechnologyIndependence of Security Technology Application PortabilityApplication Portability InteroperabilityInteroperability PerformancePerformance Object OrientationObject Orientation
MW+SOA-27
CSE5810
Client
Application
Object
Implementation
ORB
Role of an Object Request Broker (ORB)Role of an Object Request Broker (ORB) ORB Provides the Underlying Infrastructure for ORB Provides the Underlying Infrastructure for
Supporting Interoperating Software Systems Supporting Interoperating Software Systems (Applications) Composed of Distributed Objects(Applications) Composed of Distributed Objects ORB Provides the Basic Request Delivery ORB Provides Interface Definitions
Location is Transparent to the Caller and Object Location is Transparent to the Caller and Object ImplementationImplementation
Caller and the Object Implementation Can be in the Caller and the Object Implementation Can be in the Same Process thru Opposite Sides of the WorldSame Process thru Opposite Sides of the World
ORB Manages Local Location and OptimizationORB Manages Local Location and Optimization
MW+SOA-28
CSE5810
Interface Definition Language, IDLInterface Definition Language, IDL Key Component of CORBA Is the Interface Key Component of CORBA Is the Interface
Definition Language, IDLDefinition Language, IDL Mapping is Available in C, C++, Java, Ada, Etc. IDL Is Independent of Any Language/Compiler Multiple Inheritance Public Interface Oriented Not for Implementation
Primary Support for Interoperability Between Static Primary Support for Interoperability Between Static and Dynamic Request Mechanismsand Dynamic Request Mechanisms
Advantage: Modification of Client Code without Advantage: Modification of Client Code without Impacting of Server Code, and vice-versaImpacting of Server Code, and vice-versa
Disadvantage: Disadvantage: A complete new language with C++ like Syntax Programmers Must Prepare IDL Modules
MW+SOA-29
CSE5810
ClientApplication
ObjectImplementation
ORB
Object reference Object dispatcher
IDL Boundary
Object Call
IDL Boundary
Methods and Data
Request
ORB and High Level View of RequestsORB and High Level View of Requests The Request Consists ofThe Request Consists of
One interfaceOne interface per object adaptorOne interface per object operation
ORB internal interface
DynamicInvoke
ClientStubs
ORBInterface
Client Object Implementation
ImplementationSkeletons
CORBA Components and InterfacesCORBA Components and Interfaces Client Stub: Client Invokes a Particular Object Op.Client Stub: Client Invokes a Particular Object Op. Dynamic Invocation: Run-Time-Construction of Dynamic Invocation: Run-Time-Construction of
Operation InvocationsOperation Invocations Implementation Skeleton: Interface Through Which a Implementation Skeleton: Interface Through Which a
Method Receives a RequestMethod Receives a Request Object Adapter: Provides (De)activation, Object Object Adapter: Provides (De)activation, Object
Creation/Reference Mgmt. for ImplementationsCreation/Reference Mgmt. for Implementations ORB Interface: Common ORB OperationsORB Interface: Common ORB Operations
MW+SOA-31
CSE5810
ClientStubs
ImplementationSkeletons
Client Object Implementation
InterfaceRepository
ImplementationRepository
Access Includes Includes Describes
IDL InterfaceDefinitions
ImplementationInstallation
InterfacesInterfaces Objects are Defined in IDL via InterfacesObjects are Defined in IDL via Interfaces Object Definitions (Interfaces) are Manifested as Object Definitions (Interfaces) are Manifested as
Objects in the Interface Repository, as Client Stubs, Objects in the Interface Repository, as Client Stubs, and as Implementation Skeletonsand as Implementation Skeletons
Descriptions of Object Implementations are Descriptions of Object Implementations are Maintained as Objects in the Impl. RepositoryMaintained as Objects in the Impl. Repository
Implementation RepositoryImplementation Repository Location of
implementation Activation information Administration control Security Resource allocation
MW+SOA-33
CSE5810
ORB Core
ObjectAdapter
Object Implementation
ImplementationSkeletons
Client
DynamicInvoke
ClientStubs
ORBInterface
ObjectRepository
Client SideClient Side Clients Perform Requests Using Object ReferencesClients Perform Requests Using Object References Clients Issue Requests through Object Interface Stubs Clients Issue Requests through Object Interface Stubs
(Static) or DII (Dynamic Invocation Inter.)(Static) or DII (Dynamic Invocation Inter.) Clients May Access General ORB Services:Clients May Access General ORB Services:
Repositories: Interface and ImplementationRepositories: Interface and Implementation Interface RepositoryInterface Repository
Dynamic Client Access to Interface Definitions to Construct a Request
Dynamic Type Checking of Request Signatures Traversal of Inheritance Graphs
Implementation RepositoryImplementation Repository Location of Implementations and Methods Activation Information Administration Control Resource Allocation Security
MW+SOA-36
CSE5810
Client Object
RequestORB
ORB and implementations implemented as libraries (routines) resident in the client.
Three Types of ORBsThree Types of ORBs Single Process Library ResidentSingle Process Library Resident
Client and Implementation ResidentClient and Implementation Resident
Client Object
RequestORB
ORB implemented as libraries (routines) resident in the clients and in the implementations.
MW+SOA-37
CSE5810
Client Object
RequestORB
ORB is implemented as a server (separate process) which brokers requests between client and implementation processes.
ORB is part of the operating system.
Three Types of ORBsThree Types of ORBs Server or Operating System BasedServer or Operating System Based
MW+SOA-38
CSE5810
Implementation is a permanentor resident multi-threadedprocess
Implementation is a singleprocess that is activatedupon the request delivery
Object Implementation
Single Process
Singlemethodinvocation
Object Implementation
Single Process
Method CMethod B
Method A
Three Types of ImplementationsThree Types of Implementations
Single Process “one shot” ObjectSingle Process “one shot” Object
Implementation is a setof processes dedicated toa particular (group of)method(s)
Processes can be distributed
Object Implementation
Process 1
Process 2
Process 3
Method A
Method B
Method C
Three Types of ImplementationsThree Types of Implementations
Multi-Process ObjectMulti-Process Object
MW+SOA-40
CSE5810
Interface Definition Language, IDLInterface Definition Language, IDL Language used to describe the interfaces that client Language used to describe the interfaces that client
objects call and object implementations provide.objects call and object implementations provide. Obeys the same lexical rules as C++, but introduces Obeys the same lexical rules as C++, but introduces
some new keywords.some new keywords. Supports standard C++ preprocessing features.Supports standard C++ preprocessing features. Interfaces can have operations and attributes.Interfaces can have operations and attributes.
Operation declaration consists of a return type, an identifier, a parameter list, and an optional raises expression (exceptions).
Attribute declaration is logically equivalent to declaring a pair of accessor operations. May be declared as readonly.
Interface specifications are placed in a source file Interface specifications are placed in a source file having the extension “.idl”having the extension “.idl”
MW+SOA-41
CSE5810
IDL: Modules and InterfacesIDL: Modules and Interfaces Module: Used to scope IDL identifiers.Module: Used to scope IDL identifiers.
Mapped to C++ namespace with the same name. Mapped to a C++ class if the namespace construct is not supported.
Mapped to Java package with the same name. IDL declarations not enclosed in any module have
global scope when mapped. Interface: Description of set of operations that a Interface: Description of set of operations that a
client may request of an object.client may request of an object. Multiple inheritance supported Interface body may contain the following kinds of
declarations: constant, type, attribute, and operation.
struct FixedLengthStruct { long field1; // 32-bit short field2; // 16-bit};
struct VariableLengthStruct { long field1; // 32-bit string field2;};
Discriminated Unions: Cross between the C Discriminated Unions: Cross between the C unionunion and and switchswitch statements. statements.
Enumerations: Ordered list of identifiers.Enumerations: Ordered list of identifiers. enum quality_t { Poor, Fair, Good, Excellent};
MW+SOA-44
CSE5810
IDL: Complex Types (cont.)IDL: Complex Types (cont.) Sequences: One-dimensional array with maximum Sequences: One-dimensional array with maximum
size (fixed at compile time) and length (set at run size (fixed at compile time) and length (set at run time).time). Unbounded Sequence:typdef sequence<long> longSeq;
Bounded Sequence:sequence<long,10> fieldname;
Strings: Declared using keyword Strings: Declared using keyword string.string. May be May be bounded or unbounded.bounded or unbounded. string name<32>; //bounded
Arrays: Multidimensional, fixed-size arrays of any Arrays: Multidimensional, fixed-size arrays of any IDL data type.IDL data type.
exception OperationTimeout {}; void registerMainWindow( in GUI::MainWindow val, in boolean flag) raises (OperationTimeout); void setMainWindowEnabled( in boolean flag) raises (OperationTimeout);
void registerDialog1( in GUI::Dialog1 val, in boolean flag) raises (OperationTimeout); void setDialog1Enabled( in boolean flag) raises (OperationTimeout); GUI::Dialog1Data_t getDialog1Data() raises (OperationTimeout,
NotAvailable);
void registerDialog2( in GUI::Dialog2 val, in boolean flag) raises (OperationTimeout); void setDialog2Enabled( in boolean flag) raises (OperationTimeout); GUI::Dialog2Data_t getDialog2Data() raises (OperationTimeout,
NotAvailable);};
#endif // SERVER_IDL
A Comparison of Jini and CORBA
Andrew SeeLiyuan YuZhongying WangMichael Collins
What is CORBA?
Common Object Request Broker Architecture (CORBA) specification defines a framework for object-oriented distributed applications..
It is an open standard for heterogeneous computing.
Allows distributed programs in different languages and different platforms to interact as though they were in a single programming language on one computer
Object Request Broker (ORB) A software component that mediates transfer of messages
from a program to an object located on a remote host.
Network Server
12
3execution
4
5
67
0invocation
ORB ORBClient
0. Invocation ( with an object reference)
1. Locate CORBA objects and marshal parameters
2. Network Delay
3. Unmarshal parameters
4. Method Execution
5. Result marshal
6. Network Delay
7. Result unmarshal
CORBA Object
CORBA Objects and IDL
Each CORBA object has a clearly defined interface specified in CORBA interface definition language
(IDL). Distributed objects are identified by object references,
which are typed by the IDL interfaces. The interface definition specifies the member functions
available to the client without any assumption about the implementation of the object.
Example of IDLstockMarket.idl
module stockMarket{
interface StockServer { float getStockValue (in string stockName); void setStockValue (in string stockName, in long value); } …………..}
No Implementation details in IDL
Stub and Skeleton
“Glue” that connects language-independent IDL interface specifications to language –specific implementation
interface Server { string addPlayer(in string p, in string ncRef); };
};
Design Details- UML
Interface generatedBy IDL Compile
Implement by programmer
MW+SOA-61
CSE5810
What is JINI?What is JINI? An Infrastructure for Network Centric Applications in An Infrastructure for Network Centric Applications in
Spontaneous EnvironmentSpontaneous Environment Clients Enter/Leave Network Unpredictably Resources and Services Enter/Leave due to
Failure, Redundancy, Topology Change Both Typify Present/Future Army Systems
Goals of JINIGoals of JINI Plug-and-Play of Clients and Services Erasing Hardware/Software Distinction:
Everything is a Service Enable Spontaneous Network Applications Architecture where Services Define Function Strive for Easy to Use/Understand Technology
MW+SOA-62
CSE5810
Sun’s JINI TechnologySun’s JINI Technology JINI is a Sophisticated Java APIJINI is a Sophisticated Java API Construct Distributed Applications Using JINI by Construct Distributed Applications Using JINI by
Federating Groups of Users Resources Provide Services (Database Access,
Printing, Real-Time Sensor) for Users JINI and StakeholdersJINI and Stakeholders
Core of Technologies to Architect, Design, Implement, and Test Distributed Applications
Construct Software “Resistant” to Failure JINI and UsersJINI and Users
High Availability Through Redundancy Dynamic Responses to User Requests
Regardless of Network & Resource Changes
MW+SOA-63
CSE5810
Java Computing Architecture and JINIJava Computing Architecture and JINI
MW+SOA-64
CSE5810
JINI Components and DependenciesJINI Components and Dependencies
Infrastructure Programming Model
Services
Base Java
Java VM
RMI
Java Security
Java APIs
JavaBeans
JNDI
Enterprise Beans
JTS
JMS
Java + JINI
Discovery/Join Leasing Transaction Manager
Distributed Security
Transactions JavaSpaces
Lookup Events Lookup service
MW+SOA-65
CSE5810
How Does JINI Work?How Does JINI Work? Distributed Application Constructed Using One or Distributed Application Constructed Using One or
More Lookup ServicesMore Lookup Services Lookup Service Support Interactions by Lookup Service Support Interactions by
Client: “Locate/Utilize”“Locate/Utilize” ServicesDiscover, Search for Services, Invocation
Multiple Lookup ServicesMultiple Lookup Services Resources Responsible for Registering All Clients Interact with Multiple Lookups Stakeholders Must Write “Apropos” Code
Discovery Initiates Process for Client or ResourceDiscovery Initiates Process for Client or Resource
MW+SOA-66
CSE5810
Discovery by Resource & ClientDiscovery by Resource & Client
Client
JINILookupService
Resource
Service ObjectService Attributes
JINILookupService
Discovery toRegister Services
Discovery toLocate Services
MW+SOA-67
CSE5810
Basic JINI ConceptsBasic JINI Concepts JINI JINI Lookup ServiceLookup Service Maintains Registry for Maintains Registry for
Available Services of Distributed ApplicationAvailable Services of Distributed Application Resources Provide Resources Provide ServicesServices that that RegisterRegister and and JoinJoin
with JINI Lookup Servicewith JINI Lookup Service Clients Clients DiscoverDiscover and Utilize Services Based on and Utilize Services Based on
Interface of ServicesInterface of Services Ask Lookup for RegisterForCourse(CSE900) Return Proxy for Execution of Service Location of Service Transparent to Client
Locations of Clients, Services, Lookup Service, etc., Locations of Clients, Services, Lookup Service, etc., can Change over Timecan Change over Time
Conceptually, JINI Similar to Distributed OS with Conceptually, JINI Similar to Distributed OS with Dynamically Definable/Changeable ResourcesDynamically Definable/Changeable Resources
MW+SOA-68
CSE5810
Basic JINI ConceptsBasic JINI Concepts A A ResourceResource Provides a Set of Services for Use by Provides a Set of Services for Use by
Clients (Users) and Other Resources (Services)Clients (Users) and Other Resources (Services) A A ServiceService is Similar to a Public Method is Similar to a Public Method
Exportable - Analogous to API Any Entity Utilized by Person or Program Samples Include:
Computation, Persistent Store, Printer, Sensor Software Filter, Real-Time Data Source Anything that is Relevant for Your Domain!
Services: Concrete Interfaces of Components Services Register with Services Register with Lookup ServiceLookup Service
Clearinghouse for Resources to Register Services and Clients to Locate Services
PrinterActions Class enqueuePrintJob dequeuePrintJob getPrinterStatus getPrinterType installPrinter removePrinter startJob cancelJob
Class and Methods Define Servicesto beRegistered
Register Services
Sun’s Initial PerspectiveSun’s Initial Perspective JINI for Hardware Printers, Digital
Cameras, etc. Plug-and-Play on
Network PrinterActions Class Defines PrinterActions Class Defines
the the “Component”“Component” that is that is Registered with JINIRegistered with JINI
MW+SOA-70
CSE5810
Objectives and Utility of JINIObjectives and Utility of JINI For Users, JINI OffersFor Users, JINI Offers
Sharing of Resources (Services) over Network Location Transparency of Users and Services Both Critical for “Moving” Personnel
For Stakeholders, JINI ProvidesFor Stakeholders, JINI Provides Infrastructure for Federating Services in
Distributed Setting Programming Model to Register & Discover
Services Availability of Services Throughout Distributed
SettingLeading to Ease in Constructing, Maintaining, and Leading to Ease in Constructing, Maintaining, and Evolving Network Centric ApplicationsEvolving Network Centric Applications
MW+SOA-71
CSE5810
How Does JINI Work?How Does JINI Work? Resources Discover and Join Lookup ServiceResources Discover and Join Lookup Service When Resources Leave or Fail to Renew Leases When Resources Leave or Fail to Renew Leases
Lookup Service Must Adjust Registry Time Lag Between Departure and Removal of
Services from Registry What Happens When Client Receives Service
Just Prior to Failure? Utilization of Java Exception Handling Client Code Written to Dynamically Adapt
Resource RegisterResource Register Services on Class-by-Class Basis Service Object (Java API - Method Signatures) Optional Descriptive Service Attributes
MW+SOA-72
CSE5810
JINI Concepts and TermsJINI Concepts and Terms RegistrationRegistration of Services via of Services via Leasing MechanismLeasing Mechanism
Resource Leases Services to Lookup Service Resources Renew Services Prior to Expiration If not, Services Become Unavailable Lookup Service Maintains Registry Limit Availability of Services Based on Time,
Workload, User Requirements, etc. Services as Available “Components”
Leasing Supports High-AvailabilityLeasing Supports High-Availability Registration and Renewal Process Upon Failure, Services Removed from Registry
Clients, Resources, Lookup Can Occupy Same or Clients, Resources, Lookup Can Occupy Same or Different Computing NodesDifferent Computing Nodes
MW+SOA-73
CSE5810
JINILookupService
Printer Resource
Service ObjectService Attributes
Leasing/Lease Renewal
PrinterActions Class enqueuePrintJob dequeuePrintJob getPrinterStatus getPrinterType installPrinter removePrinter startJob cancelJob
Class and Methods Define Servicesto beRegistered
Registration & LeasingRegistration & Leasing FOREVER or EXPIRATION DATE (millisecs)FOREVER or EXPIRATION DATE (millisecs) Renewal Must Occur Prior to ExpirationRenewal Must Occur Prior to Expiration JINI Provides Lease Renewal Manager to Allow JINI Provides Lease Renewal Manager to Allow
Resource to Delegate Renewal ResponsibilityResource to Delegate Renewal Responsibility
Lease for 5 minutes (3000000 msec) Must Renew Before 5 Minutes Expire If Not Renewed, Lookup Removes If Failure, Lookup May Still Supply Service Until Expiration (5 mins) Client MUST be SMART!
MW+SOA-74
CSE5810
JINI Support for Distributed ComputingJINI Support for Distributed Computing
Legacy
Legacy
COTS
COTS
Database
Legacy COTS
Database
Resources Provide ServicesJava
Client
JavaClient
LegacyClient
DatabaseClient
COTSClient
ClientsUsingServices
JINI LookupService
JINI LookupService
RedundantLookups
MW+SOA-75
CSE5810
Component Perspective and JINIComponent Perspective and JINI Resources as ComponentsResources as Components
Resources Provide Services What Service Provides: Component Interface Clients, Servers, Resources, Use Component
Interface to Design/Construct Functionality
Legacy
COTS
Legacy COTS
Database
JavaClient
JINI LookupService
Constructed via Services of Legacy, COTS, Database, etc.Lookup Registered ServicesFunctionality via Service ReuseServices as Component APIs
MW+SOA-76
CSE5810
Two Example ResourcesTwo Example Resources University ApplicationUniversity Application
Students can Register/Drop Courses and Check the Schedule/Catalog
Faculty can Alter Course DB and Check the Schedule/Catalog
Military Application - Database of PartsMilitary Application - Database of Parts Ability to Requisition/Add/Delete Parts Different User Authority Based on Rank
For Both:For Both: Client to JINI to Discover Services Client to Resource for Method Invocation
(Resembles RMI)
MW+SOA-77
CSE5810
What Does an Actual System Look Like?What Does an Actual System Look Like?
1. Client Invokes AddCourse(CSE900) on Resource2. Resource Returns Status of Invocation
Service Invocation via Proxy by Transparent RMI Call
Service Object
Service Attributes
Registry of Entries
MW+SOA-79
CSE5810
Services of Military ApplicationServices of Military Application Query Service: Query Service:
GetParts: Queries DB for Parts GetRequisition: Queries DB for Requisition GetReqParts: All Requisition Details for a
Particular Part Update Service:Update Service:
WriteParts: Store Part to DB WriteRequisition: Requisition Changes to DB DeletePart: Deletes Part from DB DeleteRequisition: Deletes Requisition from DB
Other Services/Methods OmittedOther Services/Methods Omitted Notice: These are Just Public Methods Organized into Notice: These are Just Public Methods Organized into
Logical GroupingsLogical Groupings JINI Allows Searching of Groupings by ServiceJINI Allows Searching of Groupings by Service
MW+SOA-80
CSE5810
Execution Process of Client using JINIExecution Process of Client using JINI
USR6 CreateRequisition(Token, Tank Details, Harris)
MW+SOA-81
CSE5810
Services ConsoleServices Console
MW+SOA-82
CSE5810
Services GUIServices GUI
Jini
Jini Background
Embedded hardware is network-centric, not disk-centric
Networks are dynamic; so is Jini Object interface; not network protocol Service: A network-accessible device that
provides a useful function Client: Any user who requests services
Runtime Architecture
Federation of servicesNo central authority
Lookup ServiceDirectory of currently available servicesServices can be searched by clientsExecution of services is independent of JiniAs backup, Jini also allows network protocol
How Jini Works
Separation of Interface & Implementation
Services may grant varying access to clientsEntire service is downloaded and run locallyService object is a proxy to remote server
Methods are remote calls to service, which actually does the work
Both local and remote objects share work
Separation of Interface & Implementation
Client is not required to know network protocol between proxy & service
Service responsible for service object; may communicate using RMI, CORBA, DCOM, etc.
Jini Program Design
PlayerOne player for all Games
GamesSeparate communication from game specific rulesGeneralize common game tasks
Add/remove a player Take a turn Update Player state
Design – Games Interface
Game
InterfaceRemoteGame
InterfaceGameProxy
AbstractGameBasicGameProxy
TurnBasedGame
GuessingGame Hangman Blackjack
HangmanProxy BlackjackProxy
Design – Players
InterfacePlayer
PlayerImpl(terminal based)
GuiPlayer(GUI based)
Terminal and GUI based clients have same functionality.
Implementation
Server
Jininame service
Register
Lease
Remote Game
GameProxy
Player
Lookup
GameProxy
GameProxy
addPlayer,
TakeTurn
addPlayer,
TakeTurn
(local processing)
Implementation – Code samples
Creating the server-side object:Game impl = new GuessingGame();
The rules for the game could be in the RemoteGame implementation, or the Game Proxy, or split between them.
MW+SOA-96
CSE5810
Web Service Oriented Architectures (WSOA)Web Service Oriented Architectures (WSOA) An SOA is often Cast in a Web-Based SettingAn SOA is often Cast in a Web-Based Setting Possible Services include:Possible Services include:
Data Transfer (e.g. FTP) or Storage Service Troubleshooting Service
Service Operations (Messages) are Encapsulated Service Operations (Messages) are Encapsulated Behind a Message-Oriented Service InterfaceBehind a Message-Oriented Service Interface Hides Details of Service Implementation/Location Assumes an Architecture for Access Provides a Logical View that is Message-Oriented Available Service/Messages are Descriptively
Supplied for Purpose of Discovery/Lookup Network-Oriented Scalable – Add New Services/Extend Existing
Services for New/Improved Functionality
MW+SOA-97
CSE5810
WSOA in PracticeWSOA in Practice From From Web Services Architecture, W3C
A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.
MW+SOA-98
CSE5810
Web Services Architecture from W3CWeb Services Architecture from W3C Complex Complex
Architecture with Architecture with Many Different Many Different Capabilities and Capabilities and Features Features Open Ended
(Like Web) Target Multiple
Domains/Usages Current Web and Current Web and
Future (Emerging?) Future (Emerging?) Semantic WebSemantic Web
MW+SOA-99
CSE5810
Another WSOA ExampleAnother WSOA Example
From: http://www.service-architecture.com/
MW+SOA-100
CSE5810
Another WSOA ExampleAnother WSOA Example
From: http://www.service-architecture.com/
Service Oriented Architecture & Grid Computing
Marc Brooks, The MITRE Corporation
The author's affiliation with The MITRE Corporation is provided for identification purposes only, and is not intended to convey or imply MITRE's concurrence with, or support for, the positions, opinions or viewpoints expressed by the author.
What is Grid Computing?
“A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities.”-”The Grid: Blueprint for a New Computing Infrastructure”, Kesselman & Foster
Source: “What is the Grid? A Three Point Checklist”, Ian Foster, Argonne National Laboratory & University of Chicago
Criteria for a Grid*:1. Coordinates resources that are not subject
to centralized control.2. Uses standard, open, general-purpose
protocols and interfaces.3. Delivers nontrivial qualities of service
Grid Computing Benefits
Exploit Underutilized resources CPU Scavenging, Hotspot leveling
Resource Balancing Virtualize resources across an enterprise
Data Grids, Compute Grids
Enable collaboration for virtual organizations
Two Key Grid Computing Groups
The Globus Alliance (www.globus.org) Composed of people from:
Argonne National Labs, University of Chicago, University of Southern California Information Sciences Institute, University of Edinburgh and others.
OGSA/I standards initially proposed by the Globus Group Based off papers “Anatomy of the Grid” & “Physiology of the Grid”
The Global Grid Forum (www.ggf.org) History
First meeting in June of 1999, Based off the IETF charter Heavy involvement of Academic Groups and Industry
(e.g. IBM Grid Computing, HP, United Devices, Oracle, UK e-Science Programme, US DOE, US NSF, Indiana University, and many others)
Process Meets three times annually Solicits involvement from industry, research groups, and academics
SOA Standards WSDL UDDI BPEL WS-Profile WS-Security WS-Choreography
And many others…
Grid Standards OGSI
Extension to WSDL
WS-Resource WS-ResourceLifetime WS-
ResourceProperties WS-
RenewableReferences WS-ServiceGroup WS-BaseFaults
Grid and Web Services Standards
Convergence of Core Technology Standards allows Common base for Business and Technology Services
Grid
OGSi
GT2
GT1
Web HTTPWSDL,
SOAP
WS-*
Have beenconverging
WSRF
Started far apart in
applications &
technology
XML
BPEL
WS-I Compliant
TechnologyStack
Service Oriented Architecture
“What is Service-Oriented Architecture?”. Hao He. http://webservices.xml.com/lpt/a/ws/2003/09/30/soa.html
“Service-Oriented Architecture: A Primer”. Michael S. Pallos. http://www.bijonline.com/PDF/SOAPallos.pdf
“The Benefits of a Service-Oriented Architecture”. Michael Stevens. http://www.developer.com/design/article.php/1041191
Web Services Specifications - http://www.w3.org/2002/ws/
Grid Computing
Global Grid Forum (http://www.ggf.org)
The Globus Alliance ( http://www.globus.org)
“The Physiology of the Grid”. Ian Foster, Carl Kesselman, Jeffrey M. Nick, Steven Tuecke. http://www.globus.org/research/papers/ogsa.pdf
“The Anatomy of the Grid”. Ian Foster, Carl Kesselman, Steven Tuecke. http://www.globus.org/research/papers/anatomy.pdf
Web Services Resource Framework - http://www.globus.org/wsrf/
What is the Grid?
• The World Wide Web provides seamless access to information that is stored in many millions of different geographical locations
• In contrast, the Grid is an emerging infrastructure that provides seamless access to computing power and data storage capacity distributed over the globe.
• The term Grid was coined by Ian Foster and Carl Kesselman (Grid bible “The Grid: blueprint for a new computing infrastructure”).
• The name Grid is chosen by analogy with the electric power grid: plug-in to computing power without worrying where it comes from, like a toaster.
• The idea has been around under other names for a while (distributed computing, metacomputing, …).
•This time, technology is in place to realise the dream on a global scale.
What is the Grid?
• The Grid relies on advanced software, called middleware, which ensures seamless communication between different computers and different parts of the world
How will it work?
• The Grid search engine will not only find the data the scientist needs, but also the data processing techniques and the computing power to carry them out
• It will distribute the computing task to wherever in the world there is spare capacity, and send the result to the scientist
How will it work?The GRID middleware:• Finds convenient places for the scientists “job” (computing task) to be run
• Optimises use of the widely dispersed resources
• Organises efficient access to scientific data
• Deals with authentication to the different sites that the scientists will be using
• Interfaces to local site authorisation
and resource allocation policies
• Runs the jobs
• Monitors progress
• Recovers from problems
… and ….
Tells you when the work is complete and transfers the result back!
What are the challenges?
Must share data between thousands of scientists with multiple interests
Must link major computer centres, not just PCs
Must ensure all data accessible anywhere, anytime
Must grow rapidly, yet remain reliable for more than a decade
Must cope with different management policies of different centres
Must ensure data security: more is at stake than just money!
Must be up and running by 2007
Benefits for Science
• More effective and seamless collaboration of dispersed communities, both scientific and commercial
• Ability to run large-scale applications comprising thousands of computers, for wide range of applications
• Transparent access to distributed resources from your desktop, or even your mobile phone
• The term “e-Science” has been coined to express these benefits
Grid projects in the world
•NASA Information Power Grid•DOE Science Grid•NSF National Virtual Observatory•NSF GriPhyN•DOE Particle Physics Data Grid•NSF TeraGrid•DOE ASCI Grid•DOE Earth Systems Grid•DARPA CoABS Grid•NEESGrid•DOH BIRN•NSF iVDGL
• Medical/Healthcare (imaging, diagnosis and treatment )
• Bioinformatics (study of the human genome and proteome to understand genetic diseases)
• Nanotechnology (design of new materials from the molecular scale)
• Engineering (design optimization, simulation, failure analysis and remote Instrument access and control)
• Natural Resources and the Environment (weather forecasting, earth observation, modelingand prediction of complex systems)
Medical/Healthcare Applications
“The Grid makes it possible to use large collections of images in new, dynamic ways, including medical diagnosis.”
“The ability to visualise 3D medical images is key to the diagnosis of pathologies and pre-surgical planning”
“The Grid will enable a standardized, distributed digital mammography resource for improving diagnostic confidence"
Quotes from: http://gridoutreach.org.uk
• Digital image archives
• Collaborative virtual environments
• On-line clinical conferences
Bioinformatics
“Every time a new genome is sequenced the result is compared in a variety of ways with other genomes. Each code is made of 3.5 billion pairs of chemicals…”
• Capturing the complex and evolving patterns of genetic information, determining the development of an embryo
• Understanding the genetic interactions that underlie the processes of life-form development, disease and evolution.
Nanotechnology
“The Grid has the potential to store and analyze data on a scale that will support faster, cheaper synthesis of a whole range of new materials.”
Quotes from: http://gridoutreach.org.uk
• New and 'better' materials
• Benefits in pharmaceuticals, agrochemicals, food production, electronics manufacture from the faster, cheaper discovery of new catalysts, metals, polymers, organic and inorganic materials
Natural Resources/Environment
“Federations of heterogeneous databases can be exploited through the Grid to solve complex questions about global issues such as biodiversity.”
Quotes from: http://gridoutreach.org.uk
• Modeling and prediction of earthquakes
• Climate change studies and weather forecast
• Pollution control
• Socio-economic growth planning, financial modeling and performance optimization
Precursors of the Grid
• SETI@home: sharing of spare PC processing power to analyze radio signals
• Napster: sharing of data (music) between computers
• Entropia DCGrid: commercial solution for sharing workstations within a company
The difference:The Grid CERN is developing will combine resources at major computer centers, and require dedicated equipment and sophisticated middleware to monitor and allocate resources
SETI@home: a grassroots Grid
>1 million years of computer processing time
>3.5 million have downloaded the screensaver
>30 Teraflops rating (ASCI White = 12 Teraflops)
Spawned a cottage industryXpulsar@home, Genome@home, Folding@home, evolutionary@home, FightAIDS@home, SARS@home...
Spawned a real industryEntropia, United Devices, Popular Power...
Major limitations:Only suitable for “embarrasingly parallel” problemsCycle scavenging relies on goodwill
Spinoff from SETI@home
Who will use Grids?
• Computational scientists & engineers: large scale modeling of complex structures
• Experimental scientists: storing and analyzing large data sets
• Collaborations: large scale multi-institutional projects
• Corporations: global enterprises and industrial partnership
• Environmentalists: climate monitoring and modeling
• Training & education: virtual learning rooms and laboratories
MW+SOA-125
CSE300
Comments on Grid ComputingComments on Grid Computing What is Applicability of Grid Computing to the What is Applicability of Grid Computing to the
Medical Domain and its Applications?Medical Domain and its Applications? Let’s Review Three Other Presentations BrieflyLet’s Review Three Other Presentations Briefly
• An abstract framework for understanding significant relationships among the entities of some environment.
• Consists of a minimal set of unifying concepts, axioms and relationships within a particular problem domain.
• Is independent of specific standards, technologies, implementations, or other concrete details.
Reference Model
Service Oriented Architecture
• Service Oriented Architecture is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.
• Goal of this reference model is to define the essence of Service Oriented Architecture
Why Service Oriented Architecture?
• Drivers:• Large scale Enterprise systems• Internet scale provisioning of services• Reduce the cost of doing business
• Benefits• Build scalable, evolvable systems
• Scalable because minimizes assumptions
• Manage complex systems• Encourage re-use of business function
Why is it different?
• SOA reflects the reality of ownership boundaries• CORBA, RMI, COM, DCOM, etc. all try to
implement transparent distributed systems• Ownership is of the essence in SOA
• SOA is task oriented• Services are organized by function
• Getting something done
• SOA is inspired by human organizations• It worked for us, it should work for machines
What is not in the RM
• Service composition• Choreography, orchestration• Process Oriented Architecture
• Organizational framework• Who is doing what to whom
• Specific technologies• not even specific architectures
Key concepts
Service
• A mechanism to enable access to one or more capabilities• using a prescribed interface • consistent with constraints and
policies as specified by the service description.
Visibility
• Awareness• Service description
• Discovery
• Willingness• Policy & contract
• Reachability• Communication
Visibility is the relationship between service participants that is satisfied when they are able to interact with each other
InteractionInteracting with a service involves performing actions against the service
The extent to which one system can effectively interpret information from another system is governed by thesemantic engagement of the various systems.The semantic engagement of a system is a relationship between the system and information it may encounter.
Real World EffectThe purpose of using a capability is to realize one or more real world effects. At its core, an interaction is “an act” as opposed to “an object” and theresult of an interaction is an effect (or a set/series of effects).
The real world effect is couchedin terms of changes to the state shared bythe participants and stakeholders ina service interaction
About Services
Conditions and Expectations
• Policy• Constraint representing the
intention of a participant in a service
• Contract• Constraint representing an
agreement between two or more participants.
DescriptionThe service description represents the informationneeded in order to use, manage or provide a service.
• Service reachability• Service Functionality• Service Policies• Service Interface
Execution ContextThe execution context is the set of infrastructure elements,process entities, policy assertions and agreements that areidentified as part of an instantiated service interaction,and thus forms a path between those with needs and thosewith capabilities
Is a Reference Model an Ontology?
• Establishing a vocabulary• A lot of definitions
• The RM glossary has 28 entries
• Formality was considered• Audience is not formal• Mechanical processing of RM not expected
What about UML
• UML obvious choice for an architecture spec
• But,• Inheritance (is-a) relationship almost never
used• Extraneous precision
• E.g. we tried to define Service, not count the number of service providers
• It’s so ugly <duck/>
An early concept map
Concepts MapsConcepts maps were excellent graphical indices to text
What is .NET?What is .NET? .NET is Microsoft’s Solution to Enterprise Computing .NET is Microsoft’s Solution to Enterprise Computing
and Interoperabilityand Interoperability Aimed to Compete with Java/J2EEAimed to Compete with Java/J2EE Interoperability: Old (CORBA, COM) & New (RMI)Interoperability: Old (CORBA, COM) & New (RMI) Provides Uniform Programming Environment via Provides Uniform Programming Environment via
Extension of C - C#Extension of C - C#
MW+SOA-150
CSE300
.NET Architecture and Usage.NET Architecture and Usage Three Level ArchitectureThree Level Architecture XML and DataSet as Objects of InteractionXML and DataSet as Objects of Interaction
Business TierBusiness Tier Data TierData Tier
Presentation TierPresentation Tier
Windows Forms
Web Forms
Business to Business
Data Object (Class)
DataSet
DataSetDataSet
InternetInternetIntranetIntranet
Data AdapterData Adapter
Data AdapterData Adapter
(BizTalk, for example)
XML
MyApp.Exe
IE
MW+SOA-151
CSE300
What are .Net Components?What are .Net Components? CTS (Common Type System) CTS (Common Type System)
Defines Common Standard for Languages CLR (Common Language Runtime)CLR (Common Language Runtime)
Manages the Execution of a .Net Application Provides Cross Platform Support By Ensuring
Type Safety, Code Verification, Exception Handling Garbage Collection and Memory Management Note: Akin to Java Runtime Environment
ASP.NETASP.NET This Component Provides a Layer of Classes for
Web Services
MW+SOA-152
CSE300
What are .Net Components?What are .Net Components? Windows FormsWindows Forms
Provides A Layer Of Classes For The Windows User Interface
ADO.NETADO.NET Provides Classes for Data Access Including
Database and XML Base Class LibraryBase Class Library
Low Level Classes Capture Core .Net Functionality
Provides Infrastructure for Construction of Remaining .net Framework Classes
MW+SOA-153
CSE300
Remoting in .NetRemoting in .Net Remoting Makes an Object in One Process Available Remoting Makes an Object in One Process Available
to an Application in Another Process (Akin to RMI)to an Application in Another Process (Akin to RMI) Marshalling Enables a Controlled Data Marshalling Enables a Controlled Data
Communication Between the 2 ProcessesCommunication Between the 2 Processes Marshalling an Object Can Occur in 2 WaysMarshalling an Object Can Occur in 2 Ways
Marshall By Value: Server Creates a Copy of the Object and Passes the
Copy to the Client Marshall By Reference:
Server Creates a Reference of the Object and Sends this Reference to the Client
MW+SOA-154
CSE300
Remoting in .NETRemoting in .NET
When a client calls an object marshalled by reference of the object in the client’s application domain and the client uses that proxy to access that original object on
the server
MW+SOA-155
CSE300
Remoting in .NETRemoting in .NET
When a client calls an object marshaled by value the server creates and exact copy and sends that copy to the client. The client then uses the data of the object
and executes the required functionality directly within the client’s own process without making any
additional calls to the server
MW+SOA-156
CSE300
Recall Similarity to RMI in JavaRecall Similarity to RMI in Java
Start rmiregistery
Unmarshall UnmarshallMarshall Marshall
NDR NDR NDR NDR
Stub Stub Skel Skel
Transport Transport Transport Transport
HelloApplet HelloImpl
Hello
1 2 3
4
5
ServerClient
RMI Layer
rmic HelloImpl.java
Java Objects in JVMs (on Different Computers) Java Objects in JVMs (on Different Computers) Transparently Invoke Each Other's MethodsTransparently Invoke Each Other's Methods
Web Services ASP.NETWeb Services ASP.NET Communication Based on Open ProtocolsCommunication Based on Open Protocols
Data via XML Schema via XSD
Other Supported Protocols Inlcude:Other Supported Protocols Inlcude: UDDI DISCO WSDL SOAP
MW+SOA-158
CSE300
ADO.NET ArchitectureADO.NET Architecture
MW+SOA-159
CSE300
CORBA vs. JINI vs. .NETCORBA vs. JINI vs. .NET Important to Differentiate BetweenImportant to Differentiate Between
Standard (CORBA) – Vendors Implement Technologies (JINI, .NET)
Many Different Pros and Cons w.r.t. Infrastructure, Many Different Pros and Cons w.r.t. Infrastructure, Usage, Environment, Interoperability, Ease of Use, Usage, Environment, Interoperability, Ease of Use, Programming Requirements, etc. etc. etc.Programming Requirements, etc. etc. etc.
Many Different Perspectives to Compare Capabilities Many Different Perspectives to Compare Capabilities and Functionalities of Technologiesand Functionalities of Technologies
What about Other Approaches?What about Other Approaches? Terrific Presentation by D. Schmidt Combines Patterns and Middleware http://www.cs.wustl.edu/~schmidt/patterns-