University of Genoa Course of Software Engineering II 01-02

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Web Service Architecture
Introduction to .NET Framework
Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
COM vs. CORBA.
RPC Robert Grimm New York University Remote Procedure Calls.
Remote Procedure Call (RPC)
The road to reliable, autonomous distributed systems
CORBA - Common Object Request Broker Architecture.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
Technical Architectures
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Introduction to Enterprise JavaBeans. Integrating Software Development Server-side Component Model Distributed Object Architecture –CORBA –DCOM –Java.
Distributed Object Computing Weilie Yi Dec 4, 2001.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 COM/DCOM n Part of Project Presentation (Concept Outline)
Interpret Application Specifications
Introducing the Common Language Runtime for.NET. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Introducing the Common Language Runtime. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution engine.
Client/Server Software Architectures Yonglei Tao.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
DCOM Technology. What is DCOM? DCOM is just COM with a longer wire DCOM is just COM with a longer wire DCOM extends COM to support communication among.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
1 Modular Software/ Component Software 2 Modular Software Code developed in modules. Modules can then be linked together to produce finished product/program.
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
Common Object Request Broker Architecture (CORBA) CS-328.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Lecture 15 Introduction to Web Services Web Service Applications.
DCOM (Overview) by- Jeevan Varma Anga.
COM/DCOM Implementation Basics of: Object creation and access Object Reuse Interface referencing.
Introduction to COM and DCOM Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie.
COMCOM omponent bject odel After this presentation, you will: Be Able To: Conceptual understanding of COM How it works, What it’s used for Decode Acronyms.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Information Management NTU Interprocess Communication and Middleware.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
COM / DCOM Xiaolan Lu Mingzhen Wang Dong Xie. Why COM / DCOM?  Challenges facing the software industry  Component software provides a solution  General.
Seminarium on Component-based Software Engineering Feraaz Imami LIACS – Leiden University Fall 2005 Component Object Model (COM)
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Component Object Model(COM)
Java Distributed Object System
WWW and HTTP King Fahd University of Petroleum & Minerals
Common Object Request Broker Architecture (CORBA)
The Client/Server Database Environment
Distribution and components
Out-of-Process Components
Inventory of Distributed Computing Concepts and Web services
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Interpreter Style Examples
Inventory of Distributed Computing Concepts
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Quality Assurance for Component-Based Software Development
Out-of-Process Components
Presented By Justas Raslanas
Presentation transcript:

University of Genoa Course of Software Engineering II 01-02 Elisabetta Parodi

Summary 1/2 Introduction COM Walking towards COM Introducing COM Terminology COM Binary Standard Interface Component Object Library COM Server COM Object COM Technologies Example

Summary 2/2 DCOM Global Overview References Introducing DCOM DCOM Architecture Location Independence Connection Management Security Global Overview Weaknesses of COM/DCOM Comparison of DCOM, CORBA, RMI References

Introduction : walking towards COM 1/2 Windows purpose : moving integration between applicative functions to O.S. level  it needs effective communication mechanisms between applications COM OLE DDE clipboard

Introduction : walking towards COM 2/2 DLLs are a good starting point for modularity problems : physical location dependency version management we need a better communication mechanism. An object-based and synchronous client-server technology facilitates: robustness API’s homogeneity physical location independency splitting into components

Introducing COM COM : Component Object Model (1992) component software architecture that allows applications and systems to be built from components supplied by different software vendors supports : interoperability and reusability benefits : maintainability and adaptability however, in order to interact, components must adhere to a binary structure specified by Microsoft

COM Terminology Interface a group of related functions that specifies a contract Class named, concrete implementation of one or more interfaces Object an instance of a COM class Component binary unit of code that creates COM objects

COM Binary Standard A standard way to : lay out virtual function tables (vtables) in memory call functions through the vtables  any language that can call functions via pointers (C,  C++, Small Talk, Ada, and even Basic) can be used to write components that can interoperate with other components written into the same binary standard

Interface 1/3 collection of functions by which applications interact with each other and with the system strongly typed contract between software components to provide a small but useful set of semantically related operations (methods) : Component Object Design definition of an expected behavior and expected responsabilities

Interface 2/3 remember : considered logically immutable reason : removing the potential for version incompatibility new functionality : can be exposed through a different interface is not a class is not a component object denotes behavior only, not state component objects can implement multiple interfaces is strongly typed

Interface 3/3 identified by an IID must derive from Iunknown : one special interface to implement some essential functions: all component objects are required to implement it three methods : QueryInterface allows clients to dynamically discover whether or not an interface is supported by a component object; if so, it returns an interface pointer from a component object AddRef simple reference counting methods Release

Component Object Library A system component that provides the mechanics of COM: provides the ability to make IUnknown calls across processes encapsulates all the “legwork” associated with launching components and establishing connections between components

Creating a component object Application CLSID DLL .EXE Component Object Library CLSID Registration DB CLSID

COM server In general : some piece of code that implements some component object such that the Component Object Library and its services can run that code and have it create component objects Three ways in which a client can access COM objects provided by a server: In-Process Server Local Object Proxy Remote Object Proxy

Local Server Process Client Process Remote Machine In-Process Object Stub Cient Application In-Process Server Local Server COM RPC Local Object Proxy Remote Machine Remote Server Process COM Remote Object Remote Object Proxy Stub RPC Remote Server COM

COM object In general : some function that produces a defined output, given tah the input meets predefined parameters. COM encapsulates the function, only giving the client of an object acces to the object interface(s). All COM objects : are registered with a component database have no identity

4) Call interface members Client Application Object 3) Get object interface pointer return to client Server 1) Create Object 2) Locate Implementation COM What happens when a client wishes to create and use a COM object?

When an application uses a COM object: 1) initializes the system : CoInitialize 2) calls CoCreateInstance (exported by COMPOBJ.DLL) passing the CLSID of the used object; CoCreateInstance :  uses the registry to discover which server implements the desidered class asks the server to create an instance  receives from the server a pointer to the IUnknown interface 3) uses IUnknown.QueryInterface to access the wanted interface 4) uses Addref and Release to manage the object lifecycle 5) in the end calls CoUninitialize

COM Technologies Interfaces and API functions that expose operating system services, as well as other mechanisms necessary for a distributed environment : Type Information Structured Storage and Persistence Monikers Uniform Data Transfer Connectable Objects

Example : AMF Bowling Center System 1/6 In 1998 AMF Bowling rearchitected their international bowling center operations software using ActiveX controls and COM components. We’ll see : the container supporting the AMF BOSS System, version 1.0

Example : AMF Bowling Center System 2/6 The AMF container

Example : AMF Bowling Center System 3/6 Building blocks : Microsoft ActiveX controls implement user interface for each primary functional area Component Object Model objects  used by the controls to perform processing

Example : AMF Bowling Center System 4/6 The container : needs to know enough about any ActiveX control offers its services via interfaces communicates with each control by using an agreed upon COM interface manages all ActiveX controls and their relationships supports add-in COM objects

Example : AMF Bowling Center System 5/6 Architectural requirements : ability for customers to upgrade their system isolated development of new modules Solution : COM deployed in a traditional client/server environment

Example : AMF Bowling Center System 6/6 CContainer Handles Messages for Creates/Destroys CDynDlgbar CCentralManageActiveXControls Manages uses Creates/Destroys Creates/Destroys CCentralManageDlgbars uses uses IManageDlgbars IManageActiveXControls

Introducing DCOM An extension to COM that allows network-based component interaction COM : processes can run on the same machine but in different address spaces DCOM extension : allows processes to be spread across a network DCOM (1995) is a seamless evolution of COM  you can take advantage of your existing investment in COM-based applications, components, tools and knowledge

DCOM Architecture Component COM Component Object Security Provider DCE RPC Protocol Stack DCOM network- protocol Component DCOM sits right in the middle of the components fo your application; it provides the invisible glue that ties things together.

Location Independence Conflicting design constraints… … with DCOM are easy to work around, because the details of deployment are not specified in the source code : DCOM completely hides the location of a component in practice, however, applications need to consider the two primary constraints of a network connection: bandwidth latency  preferred transport protocol : UDP

Connection Management DCOM : manages connections to components that are dedicated to a single client, as well as components that are shared by multiple clients, by mantaining a reference count on each component uses an efficient pinging protocol to detect if clients are still active takes advantage of Windows NT support for multiprocessing for enhancing applications’ scalability

Security by Configuration 4) Fail or allow call 3) Is user in the list? 2) Authenticate user DCOM obtains user name

Security on the Internet DCOM uses the security framework provided by Windows NT , this supports multiple security providers including : Windows NT NTLM authentication protocol the Kerberos Version 5 authentication protocol distributed password authentication secure channel security services a DCE-compliant security provider

Weaknesses of COM/DCOM COM/DCOM is hard to use COM is not robust enough for enterprise deployments  Microsoft is walking to turn COM and the MTS into one programming model that will simplify the lives of developers building distributed, enterprise-wide COM applications COM/DCOM are best supported on Windows 95 and NT platforms low cost development tools provide the ability to build and access COM components for Windows platforms, for other platforms the prices are considerably more expensive

Comparison of DCOM, CORBA, RMI Java RMI comes from JavaSoft CORBA is a specification resulting from OMG DCOM comes from Microsoft Their main goal : to provide an infrastructure to enable writing distributed applications with relative ease, although they do so in different ways

Java RMI Very easy to use Remoteable interfaces have a special exception Supports object-by-value Versioning is built into serialization Callbacks are blocked in synchronized methods Not always intuitive Not available to other languages There are limited development tools Performance can be slow as you scale

CORBA 1/2 Architecture for system composition Has a standard terminology for concepts Declarative interfaces separate the interface from the implementation Provides mappings from IDL to C, C++, SmallTalk and Java Supports : evolvable and marshallable data design portability standard interoperability protocols Scalable for large systems

CORBA 2/2 No inheritance for Exceptions Objects cannot support two versions of the same interface IDL is not internationalized Divergent security mechanisms (Kerberos, SSL) Few advanced services C++ mapping has complicated memory management rules Limited developer tools (usually just an IDL compiler) Limited concurrency model

DCOM Lots of tools, books and developers Separates interface from implementation Good integration of automation objects with VisualBasic and Java Good set of compound document interfaces Microsoft depends on it working Minimal support on non-Microsoft platforms Hard to keep registry consistent Reference counting is a problem Client has to choose the interaction model

So, What Shall I Use? 1/2 Requirement : no recompilation moving applications to various platforms  the Java/CORBA solution may be more appropriate then COM Requirement : interaction with DCOM objects  pure DCOM solution

So, What Shall I Use? 2/2 Requirement : distributed application written entirely in Java  RMI for its ease of programming Requirement: plug-in components created by third parties  components may be based around a DCOM or CORBA interface

References 1/2 http://www.microsoft.com/ Main source : terminology, technical documentation, example from official Microsoft site www. sei.cmu.edu/str/descriptions/com_body.html The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense. I found some interesting documentation in their Software Technology Review www2.umassd.edu/coursepages/SoftwareArchitecture/paul-com/ University of Massachussets, lessons of the module of Software Architecture about COM.

References 2/2 http://www.whatis.techtarget.com/ An IT company which offers targeted industry-specific search engines that deliver access to relevant information on the Web. I found here useful explanation about DDE, OLE, MTS, ActiveX. http://www.webopedia.com/ Online dictionary and search engine for computer and Internet technology. Introduzione a COM – seminario di E. Lodolo From a lesson at University of Genoa : introduction about COM and Windows fundamentals

THE END T H E E N D

Clipboard The simplest mechanism available to exchange data between applications running in hte Windows environment A section of computer memory that temporarily stores data especially to facilitate its movement or duplication back

DDE : Dynamic Data Exchange An asynchronous message-based communication protocol An interprocess communication (IPC) system built into the Macintosh, Windows, and OS/2 operating systems Enables two running applications to share the same data Example : DDE makes it possible to insert a spreadsheet chart into a document created with a word processor. Whenever the spreadsheet data changes, the chart in the document changes accordingly. Still used by many applications Supplanted by OLE  provides greater control over shared data. back

OLE : Object Linking & Embedding A compound document standard developed by Microsoft Corporation Enables you to create objects with one application and then link or embed them in a second application. Embedded objects retain their original format and links to the application that created them. back

DLL : Dynamic Link Library Two kinds of executables in Windows: EXE DLL Functions exported from a DLL are linked at runtime, not during compilation. We have two linking modalities for a DLL: static link : when application is loaded dynamic link : at any time by API’s LoadLibrary, GetProcAddress, FreeLibrary Advantages: modularity, code sharing,substitutability. back

VMT : Virtual Method Table 1/2 Virtual methods can be redefined in derived classes. Virtual methods calls are solved at execution time (late binding)  indirect jump  (small) overhead In compiled object languages virtual methods are implemented by VMT : a function pointer table one VMT for each class instance : data structure holding an object state  its first field is a pointer to the VMT of the class to which the object owns all instances of the same class point to the same VMT

VMT : Virtual Method Table 2/2 I1 : C1 implementations Pointer to VMT Attribute 1 Attribute 2 Attribute 3 …………………… VMT of class C1 Pointer to function 1 Pointer to function 2 Pointer to function 3 I2 : C1 Pointer to function 4 Pointer to VMT Attribute 1 Attribute 2 Attribute 3 …………………… back

MTS : Microsoft transaction Server 1/2 A container for in-process server side components. A component-based programming model. An MTS component is a type of COM component that executes in the MTS run-time environment. What does it do? Allows you to define and use transactions within COM objects Enforces modelling based on components – just as COM

MTS : Microsoft transaction Server 2/2 Handles communication between components through DCOM and HTTP protocols Uses roles and packages Uses Just In TIME (JIT) Activation Surrogate Process (MTS.EXE) Microsoft Distributed Transaction Coordinator (MS DCT) Run-time divided into three parts : MTS Explorer back

ActiveX 1/2 Technology developed by Microsoft for sharing information among different applications Outgrowth of OLE and COM  supports new features that enable it to take advantage of the Internet Not a programming language but a set of rules for how applications should share information

ActiveX 2/2 ActiveX control similar to Java applet but : full access to the Windows operating system limitated to Windows environments can be developed in a variety of languages back