Verteilte Systeme (Distributed Systems)
Karl M. Göschka Karl.Goeschka@tuwien.ac.at
http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/
Verteilte Systeme (Distributed Systems) Karl M. Gschka - - PowerPoint PPT Presentation
Verteilte Systeme (Distributed Systems) Karl M. Gschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Some slides based on material from this book (Prentice Hall, 2005) 2 Concepts,
http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/
2
6
Communication Processes & Concurrency Naming and Discovery Coordination & Agreement Replication & Consistency Dependability and FT Transactions Security (Persistency, Durability) CORBA J2EE COM+ .NET Web Services GRID P2P Pervasive Multimedia WWW Databases VoIP ...
7
8
9
12
16
22
IDL IDL Compiler Skeleton Code Client Code generates reads Client Server Object Stub Skeleton Object Request Broker In programming language „A“ Stub Code Object Implementation Code In programming language „B“ Language „A“ Compiler and Linker Language „B“ Compiler and Linker
43
Mapping of CORBA object identifiers to servants. a) The POA supports multiple servants. b) The POA supports a single servant.
OID: POA assigned or user assigned Activation explicit or
1. Multiple OIDs single servant 2. One servant for all objects 3. Single servant, many objects and types (DSI) Thread per request, connection,
46
49
Overview of CORBA services.
Provides the current time within specified error margins Time Mechanisms for secure channels, authorization, and auditing Security Facilities for expressing relationships between objects Relationship Facilities for persistently storing objects Persistence Facilities to publish and find the services on object has to offer Trading Facilities for associating (attribute, value) pairs with objects Property Facilities for systemwide name of objects Naming Facilities for attaching a license to an object Licensing Facilities for creation, deletion, copying, and moving of objects Life cycle Facilities for marshaling and unmarshaling of objects Externalization Advanced facilities for event-based asynchronous communication Notification Facilities for asynchronous communication through events Event Flat and nested transactions on method calls over multiple objects Transaction Facilities to allow concurrent access to shared objects Concurrency Facilities for querying collections of objects in a declarative manner Query Facilities for grouping objects into lists, queue, sets, etc. Collection Description Service
62
The difference between language-defined and binary interfaces.
64
~ CORBA interface repository ~ CORBA implementation repository
78
interface construct used to define remote objects remote interface indicates remotely callable object Objects are passed between JVMs Marshaling = serialization (homogeneous)
84
85
proven functionality tested code historical Investment
and robust they work
87
88
93
OMG Tagung, Wien 2001
94
95
Application A Application B
97
Independent Development Third party development Binary integration Component + Component == Component Connection through composition heterogeneous black-box re-use
Banana – gorilla problem Local development Source integration Object + Object != Object Connection through references (homogeneous) white-box re-use through inheritance
Klasse Komponente
98
100% Proportion of application addressed by component
cost-effectiveness
match to requirements, flexibility/speed of change Routine/
Program/ class Coarse-grained component Application package
101
Component Repository Composition environment Run-time environment Component Model Component-based Architecture for field devices
110
EJB – Enterprise Java Beans, RMI – Remote Method Invocation, JNDI – Java Naming and Directory Interface, JMS – Java Messaging Service, JDBC – Access to databases, SQLJ – static embedded SQL for Java, JDO – Java Data Objects, J2EE Connector (for Legacy Integration), JTS/JTA – Java Transaction Service and Java Transaction Architecture.
111
EJB Server EJB Container
Enterprise Beans
Web Container
JSP File Servlet Enterprise Beans
Client Database Server Tier 1 Tier 3 Tier 2
Run-time environment for containers, thread management, OS resources, load balancing, directory service, ... Run-time environment for beans, life-cycle management, instance pooling, distribution, service interfaces (standard and proprietary), e.g. user administration, ... Services: JNDI, JTS, Persistence, JMS, Security Policy, ...
113
Client Server
Application Assembler
EJB
EJB Provider EJB Deployer EJB Container Provider EJB Server Provider
DB EJB Server EJB Container Client
Business Logic
<<uses client contracts>> <<Installing EJB using server tools>>
129
145
146
158
160
171
176
200
202
Assembly
StP ... Web Service (E)JB
implements implements implements
203
204
Messaging Quality
Transport Description
Transports Interface + Bindings Composite XML Non-XML Security Policy Discovery, Negotiation, Agreement Atomic
Choreography Choreography Protocols Protocols State State
Components
Reliable Messaging Transactions
205
Transactions Reliable Messaging
Transports Interface + Bindings Composite XML Non-XML Security Policy Discovery, Negotiation, Agreement Atomic
Choreography Choreography Grouping Grouping
BPEL WS-RM WS-Security* WS-AT, WS-BA,… WSDL* WS-Policy* SOAP, WS-Addressing JMS, RMI/IIOP, .. HTTP, TCP/IP, SMTP, FTP, … UDDI, WS-Addressing, MEX,… WS-C, WS-N*,…
State State
WS-RF
Messaging Quality
Transport Description Components
209
hotel booking a Travel Agent flight booking a hire car booking a Service Client flight booking b hotel booking b hire car booking b
210
211
212
235
Between Web services... ...and as Web services
Can be performed at all compliant environments (portability) Interoperability between heterogeneous environments
Specify constraints of message exchange Are “views” on internal processes
244
245
246
250
252
253
255
256
267
273
277
278
279
280
Essentially everyone, when they first build a distributed application, makes the above eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences. (Peter Deutsch)
281
282
283
284
285
286
consistency model update propagation methods
Primary-backup replication Coordinator-cohort/Update-everywhere replication Active replication Quorum-based protocols Epidemic protocols
distributed object system, file system, database system, service-oriented system, P2P system, etc.
287
288
292
Communication Processes & Concurrency Naming and Discovery Coordination & Agreement Replication & Consistency Dependability and FT Transactions Security (Persistency, Durability) CORBA J2EE COM+ .NET Web Services GRID P2P Pervasive Multimedia WWW Databases VoIP ...
295
306
307