Windows Development Dynadata Copyright, 2014 © DynaData S.A. 1/29.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
CCNA – Network Fundamentals
Lecture 7 Transport Layer
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
IT 210 The Internet & World Wide Web introduction.
Name Resolution Domain Name System.
Jaringan Komputer Dasar OSI Transport Layer Aurelio Rahmadian.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
REST By: Vishwanath Vineet.
Introduction to Information Systems SSD1: Introduction to Information Systems Unit 1. The World Wide Web Unit 2. Introduction to Java and Object- Oriented.
Java Web Services Orca Knowledge Center – Web Service key concepts.
Operating Systems {week 01.b}
Chapter Overview Understanding Windows Name Resolution Using WINS.
Application Layer Functionality and Protocols Abdul Hadi Alaidi
Chapter 7: Transport Layer
Chapter 9: Transport Layer
Tiny http client and server
Servlets.
How HTTP Works Made by Manish Kushwaha.
Instructor Materials Chapter 9: Transport Layer
IS301 – Software Engineering V:
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
z/Ware 2.0 Technical Overview
ARP and RARP Objectives Chapter 7 Upon completion you will be able to:
Object-Oriented Systems Analysis and Design Using UML
Lec 2: Protocols.
Distribution and components
Understand the OSI Model Part 2
Chapter 6 Programming with Office 97
TCP Transport layer Er. Vikram Dhiman LPU.
INTER-PROCESS COMMUNICATION
Introduction to client/server architecture
#01 Client/Server Computing
Subject Name: Computer Communication Networks Subject Code: 10EC71
Chapter 3: Windows7 Part 4.
Intent (Thanks to Jim Fawcett for the slides)
Ch > 28.4.
The Internet and HTTP and DNS Examples
Use Case Modeling.
Service-centric Software Engineering
Application layer Lecture 7.
Network Fundamentals – Chapter 4
CNIT 131 HTML5 – Anchor/Link.
EEC-484/584 Computer Networks
Chapter 2: System Structures
Process-to-Process Delivery:
Introduction to Classes and Objects
Analysis models and design models
TCP and UDP Layer 3 of the TCP/IP protocol stack. Transport layer
HyperText Transfer Protocol
E-commerce Infrastructure Web Servers / Web Clients / Web Browsers
Allocating IP Addressing by Using Dynamic Host Configuration Protocol
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
World Wide Web Uniform Resource Locator hostname [:port]/path
DATA EXCHANGE.
Out-of-Process Components
WEB SERVICES From Chapter 19, Distributed Systems
Applications Layer Functionality & Protocols
Web Servers (IIS and Apache)
Preventing Privilege Escalation
Grid Computing Software Interface
Exceptions and networking
#01 Client/Server Computing
Presentation transcript:

Windows Development Dynadata Copyright, 2014 © DynaData S.A. 1/29

Data Exchange Dynadata Copyright, 2014 © DynaData S.A. 2/29

Data Exchange Overview Clipboard Dynamic Data Exchange (DDE) Component Object Model Object Linking and embedding (OLE) Structured Storage Active technologies Automation COM and MFC ATL Dynadata Copyright, 2014 © DynaData S.A. 3/29

Clipboard I The most common means of inter application communication is the Clipboard. Dynadata Copyright, 2014 © DynaData S.A. 4/29

Clipboard II The process is initiated by the user and has a very simple protocol. When the user requests a cut or copy operation to place data in the Clipboard, the application makes application programming interface (API) calls to empty the Clipboard and then to send data to it. The application provides the single item of data in as many formats as it can, so as to increase the likelihood that the eventual recipient will understand one of them. Dynadata Copyright, 2014 © DynaData S.A. 5/29

Dynadata Clipboard III Possible problems of using huge amounts of system resources in rendering your application's data in many different formats can be avoided by employing the delayed rendering technique. Dynadata Copyright, 2014 © DynaData S.A. 6/29

Clipboard IV Using this technique allows the provider of the data to simply list the formats it supports, but only to have to render the data when another application actually tries to take it from the Clipboard. In this way, data that is never going to be used never needs to be rendered. When the user makes a paste request, the receiving application enumerates the formats of the data in the Clipboard and, having found one it likes, takes the data. Dynadata Copyright, 2014 © DynaData S.A. 7/29

Clipboard Standard Formats I It’s possible to transfer objects in one of a number of standard formats through the Clipboard or a private data type specific to an application or set of applications. Dynadata Copyright, 2014 © DynaData S.A. 8/29

Clipboard Standard Formats II It’s possible to transfer objects in one of a number of standard formats through the Clipboard or a private data type specific to an application or set of applications. Dynadata Copyright, 2014 © DynaData S.A. 9/29

Clipboard Private Formats Windows provides a mechanism to register the names of private formats at run time. Publishing the format means creating a document that gives details of the format and describes how it should be used. Dynadata Copyright, 2014 © DynaData S.A. 10/29

Dynamic Data Exchange (DDE) DDE is a protocol that allows two applications to exchange data in a format that they both understand. These two programs are known as the “server” and the “client”. A single Windows program can be both a client to one program and a server to another, but this requires two different DDE conversations. Dynadata Copyright, 2014 © DynaData S.A. 11/29

Dynamic Data Exchange (DDE) II A server can delivery data to multiple clients, and a client can obtain data from multiple servers, but again, this requires multiple DDE conversations. The DDE protocol was originally implemented using a set of Windows messages and the same set of data formats that the Clipboard uses. Dynadata Copyright, 2014 © DynaData S.A. 12/29

Dynamic Data Exchange (DDE) III To keep each conversation the DDE protocol uses a different window. When a client asks a server for data, it must be able to identify the type of data it wants. A program involved in a DDE conversation need not be specially coded to work with each other. Dynadata Copyright, 2014 © DynaData S.A. 13/29

Dynamic Data Exchange (DDE) (types of conversation) Cold Link Hot Link Warm Link Dynadata Copyright, 2014 © DynaData S.A. 14/29

Initiating DDE Conversation A DDE conversation is initiated by the client program. The client broadcast a message (called WM_DDE_INITIATE) to all current running Windows programs. A DDE server that has this data can respond to this broadcast message and the conversation begins. Dynadata Copyright, 2014 © DynaData S.A. 15/29

Dynadata The DDE Type of Data The DDE protocol identifies the units of data passed between the client and server with a three-level hierarchy of application, topic, and item names. Application name (the name of the server application) Topic name (general classification of data within which multiple data items ) Item name (information related to the conversation topic ) Dynadata Copyright, 2014 © DynaData S.A. 16/29

Dynadata The DDE Type of Data II The application name and topic that define a conversation cannot be changed during the course of the conversation. Values for the data item can be passed from the server to the client, or from the client to the server Data can be passed with any of the standard clipboard formats or with a registered clipboard format. A special, registered format named Link identifies an item in a DDE conversation. Dynadata Copyright, 2014 © DynaData S.A. 17/29

Dynamic Data Exchange (DDE) Server application answer diagram Dynadata Copyright, 2014 © DynaData S.A. 18/29

The DDE Cold Link I WM_DDE_INITIATE A Cold Link conversation begins when a client broadcast a WM_DDE_INITIATE message identifying the application and the topic it requires. The application and topic may be NULL to begin a conversation with any server application or any data topic. Dynadata Copyright, 2014 © DynaData S.A. 19/29

The DDE Cold Link II WM_DDE_INITIATE A server that supports the specified topic respond to the client with a WM_DDE_ACK message. Client Server WM_DDE_ACK WM_DDE_INITIATE (application, topic) Dynadata Copyright, 2014 © DynaData S.A. 20/29

The DDE Cold Link I WM_DDE_REQUEST The client then request a particular data item by posting a WM_DDE_REQUEST message. If the server can supply this data item, it responds by posting a WM_DDE_DATA message to the client. WM_DDE_ACK (positive) WM_DDE_REQUEST (item) WM_DDE_DATA Client Server Dynadata Copyright, 2014 © DynaData S.A. 21/29

The DDE Cold Link II WM_DDE_REQUEST The client must acknowledge to the server that it has received the WM_DDE_DATA message if the server asked this acknowledgment in a flag passed with the WM_DDE_DATA message. A flag passed with the WM_DDE_ACK message indicates a "positive" acknowledgment. Dynadata Copyright, 2014 © DynaData S.A. 22/29

The DDE Cold Link III WM_DDE_REQUEST If the client post a WM_DDE_REQUEST message to the server, and the server cannot supply the request data item, then the server post a “negative” WM_DDE_ACK message to the client. WM_DDE_ACK (negative) WM_DDE_REQUEST (item) Client Server The DDE conversation continues with the client for the same data item or different data item... Dynadata Copyright, 2014 © DynaData S.A. 23/29

The DDE Cold Link WM_DDE_TERMINATE The conversation is terminated when the client and server post each other WM_DDE_TERMINATE message. Client Server WM_DDE_TERMINATE WM_DDE_TERMINATE The server can post the first WM_DDE_TERMINATE message and the client must respond to that. Dynadata Copyright, 2014 © DynaData S.A. 24/29

Dynamic Data Exchange Management Library (DDEML) I More recently, the Dynamic Data Exchange Management Library DDEML API set was introduced to provide isolation both from the actual protocol and also from the implementation of the protocol under Windows. Dynadata Copyright, 2014 © DynaData S.A. 25/29

Dynamic Data Exchange Management Library (DDEML) II The DDEML is a dynamic-link library (DLL) that Win32-based applications can use to share data. The DDEML provides functions and messages that simplify the task of adding DDE capability to a Win32-based application. Instead of sending, posting, and processing DDE messages directly, an application uses the DDEML functions to manage DDE conversations. (A DDE conversation is the interaction between client and server applications.) Dynadata Copyright, 2014 © DynaData S.A. 26/29

Dynamic Data Exchange Management Library (DDEML) III Existing applications that use the message-based DDE protocol are fully compatible with those that use the DDEML. That is, an application that uses message-based DDE can establish conversations and perform transactions with applications that use the DDEML. Dynadata Copyright, 2014 © DynaData S.A. 27/29

Dynamic Data Exchange Management Library (DDEML) IV Because of the many advantages of the DDEML, new applications should use it rather than the DDE messages. To use the API elements of the DDEML, you must include the DDEML header file in your source files, link with the DDEML library, and ensure that the DDEML dynamic-link library is in the system's search path. Dynadata Copyright, 2014 © DynaData S.A. 28/29

Terminating DDE Conversation A DDE conversation is initiated by the client program. The client broadcast a message (called WM_DDE_INITIATE) to all current running Windows programs. A DDE server that has this data can respond to this broadcast message and the conversation begins. Dynadata Copyright, 2014 © DynaData S.A. 29/29