COM (and some Corba) Distributed Object Systems 8 DCOM 2. Dynamic Invocation. Dynamic Invocation in COM. Interfaces. Client side

Size: px
Start display at page:

Download "COM (and some Corba) Distributed Object Systems 8 DCOM 2. Dynamic Invocation. Dynamic Invocation in COM. Interfaces. Client side"

Transcription

1 Distributed Object Systems 8 DCOM 2 COM (and some Corba) Dynamic Invocation Containment/Aggregation/Delegation Automation Monikers Piet van Oostrum Oct 7, 2008 Piet van Oostrum 1 Dynamic Invocation in COM Can Dynamic invocation in COM be done as in Corba? Use Request object instead of stub marshalling/protocol remains the same NO! In case of inproc object there is no stub/skeleton involved i.e. call is direct Dynamic invocation through the IDispatch interface Server must implement the IDispatch interface Is used for dynamic programming languages (Visual Basic, scripting languages,... ) Wizards can help you implement IDispatch IDispatch interface often uses special parameter types: VARIANT, BSTRING, SAFEARRAY These are just complicated struct/unions to represent Visual Basic datatypes. Piet van Oostrum 2 Dynamic Invocation The server object must implement this special IDispatch interface (compare Corba s DSI) Every method that the server offers through IDispatch gets a number (index) called DISPID In Corba you use method name, in COM number The server will usually switch on the DISPID GetTypeInfo can be called to get info about the types of the methods (if available usually from a type library) Type Library = file containing compiled IDL (AST) Piet van Oostrum 3 Client side The client can then use this IDispatch interface So the client must be able to call at least one static interface The client must do QueryInterface to get the IDispatch interface method GetIDsofNames is used to couple names of methods and DISPIDs It has an array of names as in parameter and an array of DISPIDs as out parameter The Invoke method is used to make the call The client calls the Invoke method A special VARIANT type is used for the parameters VARIANT contains type info for the marshaller Visual Basic types can be used and some special structs (BSTRING, SAFEARRAY, DATE, DECIMAL) Interfaces Multiple Interfaces If multiple dispinterfaces are defined by the object, one has to be designated as default. This is what Visual Basic uses. The QueryInterface for IDispatch will give the default interface The others can be obtained by explicit QueryInterface Dual Interface A dual interface is an interface that can be called both statically and dynamically It inherits from IDispatch and adds also the static methods This may be important for high performance applications Piet van Oostrum 4 Piet van Oostrum 5 slides8.pdf October 7,

2 IDL notation dispinterface IDL notation dual interface [uuid(3cfdb282-ccc5-11d0-ba0b-00a0c90df8bc)] dispinterface IStat { properties: methods: [id(1)] void init(); [id(2)] void additem(double item); [id(3)] double getavg(); [id(4)] long getnum(); }; [object, uuid(3cfdb282-ccc5-11d0-ba0b-00a0c90df8bc), dual ] interface IStat: IDispatch [id(1)] HRESULT init(); [id(2)] HRESULT additem([in] double item); [id(3)] HRESULT getavg([out] double avg); [id(4)] HRESULT getnum([out] long num); }; Piet van Oostrum 6 Piet van Oostrum 7 Contents Dynamic Invocation Containment/Aggregation/Delegation Automation Monikers Implementation inheritance in COM Microsoft literature about COM discourages inheritance Fragile Base Class problem: Mostly for compiled languages Subclass is dependent of base class (superclass) Later changes to base class may damage subclass if not recompiled The size of objects (i.e. structs or classes) The offsets to "visible" (public or protected) data The offsets to the virtual functions in the vtable Instead of inheritance use Containment/Delegation or Aggregation Please note: In.NET one of the strong points is the possibility to inherit even across programming languages. But there are strong checks at load time. Piet van Oostrum 8 Piet van Oostrum 9 Containment or Delegation Aggregation IUnknown IUnknown IUnknown Interface A Interface B Interface A IUnknown Outer Object Inner Object Interface B Inner Object Outer Object implements A methods and B methods (because interface A extends B) Outer object s implementation of B methods just calls Inner object s B methods void m(int x) { b.m(x); } Inner Object is not aware of the special relationship Inner Object can be considered as a helper object Outer Object Outer object puts inner object s method pointer in its own method table Problem: normally Inner object would return its own IUnknown pointer if QueryInterface is done on interface B Solution: When Outer object creates Inner object, it passes its own IUnknown pointer as Controlling Unknown CoCreateInstance(CLSID_CStat, pouter,... Piet van Oostrum 10 Piet van Oostrum 11 slides8.pdf October 7,

3 Inheritance and Delegation in Corba Delegation can be used when a programming language does not support multiple inheritance A m() C m() n() p() B n() Delegation class A { void m(); } class B { void n(); } class C { private A a; private B b; } C(A a, B b) { this.a = a; this.b = b; } m() { a.m(); } n() { b.n(); } p() {... } Piet van Oostrum 12 Piet van Oostrum 13 Inheritance problem The problem with this solution is that C cannot be used where an A or B is required. A solution is to use interfaces and implementation classes interface A {... } interface B {... } class A_impl implements A {... } class B_impl implements B {... } class C implements A, B { private A_impl a; // or private A a; private B_impl b; // or private B b;... etc... } or even interface C and class C_impl Piet van Oostrum 14 Corba Servant (Inheritance Model) Interface MyInterface Abstract Interface MyInterfaceOperations (generated by IDL compiler) Skeleton MyInterfacePOA implements MyInterfaceOperations Servant extends Skeleton class Operations Skeleton Servant implement. Problem if you want Servant to extend other class Piet van Oostrum 15 Corba Delegation Model (Tie) Servant class doesn t have to extend skeleton Only implement MyInterfaceOperations Servant can inherit from another class IDL compiler generates Tie class that inherits from skeleton Tie class delegates to implementation class Tie+implementation = actual servant Operations Skeleton Tie class (generated by IDL compiler) public class HelloPOATie extends HelloPOA { public HelloPOATie(HelloOperations delegate) { this._impl = delegate; }... public String sayhello () { return _impl.sayhello(); // delegation } // sayhello Servant implement. Delegation Tie Piet van Oostrum 16 Piet van Oostrum 17 slides8.pdf October 7,

4 Corba Delegation Model (Tie) class HelloImpl extends SomeOtherClass implements HelloOperations... method implementations as usual // Server class: create a servant. HelloImpl helloimpl = new HelloImpl(); // create a tie, with servant being the delegate. HelloPOATie tie = new HelloPOATie(helloImpl); COM Dynamic Invocation Containment/Aggregation/Delegation Automation Monikers // obtain the objectref for the tie // this step also implicitly activates the object Hello href = tie._this(orb); Piet van Oostrum 18 Piet van Oostrum 19 (OLE) Automation Automation (formerly known as OLE Automation) is a way to script a program from another program E.g. Microsoft Word: Open a document, insert some text and save it. Usually done from scripting languages, e.g. Visual Basic, Python, Ruby. Application must make its operations available as (Automation) COM interfaces (IDispatch). Collection of interfaces known as OLE. For use in web browsers a stripped down collection is ActiveX. Visual Basic and COM Visual Basic (up to version 6) Developed as COM programming language Seamless integration with COM Dim statvar as Stat.Stat Dim statvar as Object Set statvar = CreateObject("Stat") Set statvar = New Stat.Stat Dim statvar as New Stat.Stat statvar.init statvar.additem 3.14 Set result = statvar.getavg When declared as Object uses runtime resolution When declared as specific class uses compile time resolution Type info comes from Type Library (loaded at compile time or runtime). Piet van Oostrum 20 Piet van Oostrum 21 Automation with Visual Basic Dim Word As Object Dim Doc As Object Dim Spot As Object Set Word = CreateObject("Word.Application") Word.Visible = True Set Doc = Word.Documents.Add() Set Spot = Doc.Range(0, 0) Spot.InsertBefore "Hello From Visual Basic" Doc.SaveAs "test.doc" Doc.Close Word.Quit Early/Late Binding VB looks up the type info from the type library The Windows registry contains mapping from Program Id ("Word.Application") to Class Id The registry contains the location of the type library Variables declared as Object (Dim Word As Object) must be resolved at runtime This is called Late Binding. VB can also do the lookup at compile time: Early Binding: Register the type library at compile time Use: Dim Word As New Word.Application Piet van Oostrum 22 Piet van Oostrum 23 slides8.pdf October 7,

5 Automation with Python Can be used with ActiveState Python, or Standard Python + win32all extensions from win32com.client import Dispatch word = Dispatch("Word.Application") word.visible = True doc = word.documents.add() spot = doc.range(0, 0) spot.insertbefore("hello from Python") doc.saveas("test.doc") doc.close() word.quit() Python/COM observations Python is very simple to use for Automation Python looks up the type library and makes all decisions at runtime You can even do it interactively This makes development and try-out very easy You can also run the makepy script This generates additional Python files containing the methods of the interface (like stubs) At runtime these are used if available This is comparable to Early Binding (faster) Piet van Oostrum 24 Piet van Oostrum 25 Java and (D)COM J-Integra example Originally with Microsoft Java Virtual Machine (now defunct) Visual J or MS Java SDK Almost transparent Java virtual machine does all the administration Build Interface pointers, refcounts etc. Special language extension is used (in specially formatted comments) Jactivex program generates interface and class files from TLB (Type Library) Wrapper classes: CCW (Com callable wrapper) to call Java from COM, JCW (Java callable wrapper) to call COM from Java J-Integra and EZ JCom are commercial implementations of the COM protocol in Java (any Java). import excel.*;... Application app = new Application(); app.setvisible(true); Workbooks workbooks = app.getworkbooks(); Workbook workbook = workbooks.add(null); Sheets worksheets = workbook.getworksheets(); Worksheet sheet = new Worksheet(worksheets.add(null, null, null, null)); Range range = sheet.getrange("a1:c3", null); Object[][] newvalue = { {"abcd", new Boolean(false), new Double(98.0/12)}, {new Date(), new Integer(5454), new Float(22.0/7)}, {new Boolean(true), "xyzt", new Date() } }; range.setvalue(newvalue); // Update the spreadsheet Piet van Oostrum 26 Piet van Oostrum 27 Python OpenOffice.org automation Python OpenOffice.org automation Python as a separate process: Script programmer explicitely writes application startup code. Startup code must connect to Ooo. Code executes slow, as every call to OOo is going through the inter process bridge. Python process must be started separately. Python embedded in OpenOffice.org process: OOo Process Python Process PyUNO Runtime OOo Process PyUNO Runtime Python Code Python UNO component Script must be written as a PyUNO component (adding a coding overhead) OOo listens on an inter process resource (socket or named pipe). This must be switched on seperately either on command line or with the OOo configuration. Piet van Oostrum 28 Piet van Oostrum 29 slides8.pdf October 7,

6 Py-UNO example Py-UNO example import uno # get the uno component context from the PyUNO runtime localcontext = uno.getcomponentcontext() # create the UnoUrlResolver resolver = localcontext.servicemanager \.createinstancewithcontext( "com.sun.star.bridge.unourlresolver", localcontext ) # connect to the running office ctx = resolver.resolve( "uno:socket,host=localhost,\ port=2002;urp;staroffice.\ ComponentContext" ) smgr = ctx.servicemanager # get the central desktop object desktop = smgr.createinstancewithcontext( "com.sun.star.frame.desktop",ctx) # access the current writer document model = desktop.getcurrentcomponent() # access the document s text property text = model.text # create a cursor cursor = text.createtextcursor() # insert the text into the document text.insertstring( cursor, "Hello World", 0 ) Piet van Oostrum 30 Piet van Oostrum 31 Mac OS X Applescript COM tell application "Microsoft Word" set newdoc to make new document insert text "Hello from Applescript" at end of text object of active document save as newdoc file name "test.doc" end tell Dynamic Invocation Containment/Aggregation/Delegation Automation Monikers Piet van Oostrum 32 Piet van Oostrum 33 COM Monikers Moniker Implementation Monikers are (persistent) names for persistent objects If you want to revive a persistent object (e.g. Excel worksheet): Create an object of that class (CoCreateInstance) Force the object to load its persistent data (IPersist...) There can be many parameters to specify where the data comes from, e.g file name, which part of an object E.g. linked worksheet in Word document: filename and range of the worksheet How does Word know what parameters to give and what they mean (especially if it is an unknown class)? The object needs to have this information itself Monikers are used to encapsulate this data Word doesn t have to know all the interfaces of all possible linked objects Client only deals with the IMoniker interface E.g. in Object linking the moniker is stored in the structured document Interface IMoniker: BindToObject binds the moniker to an object BindToStorage binds the Moniker to the Storage of the object 13 more methods Also inherits from IPersistsStream (4 methods) which inherits from IPersist (1 method) Piet van Oostrum 34 Piet van Oostrum 35 slides8.pdf October 7,

7 Moniker use 4. Client invokes methods Moniker Examples File Moniker: contents is a file, persistent data is file name Client A 3. Pointer to interface A is returned via moniker Object Server Item Moniker: describes an item in a composite object, e.g. worksheet in an Excel workbook, persistent data is the item s name and the moniker of the object in which it is contained Composite Moniker: groups together other monikers, e.g. File Moniker, worksheet item and range item. Persistent date: the component monikers Java Moniker: describes a Java class (now defunct): 1. client calls IMoniker:: BindToObject(IID_A) 1 Moniker pointer method call/return 2. Moniker instantiates the object and tells it to load its persistent data Piet van Oostrum 36 Dim dat As Object Set dat = CreateObject("java:java.util.Date") Dim s As String s = dat.tostring Piet van Oostrum 37 Composite Moniker COM Structured Storage Word Structured Storage is used for compound documents These documents can contain other (sub)documents Client IMoniker Grades.xls IMoniker Composite moniker IMoniker Sheet1 IMoniker R1C1:R5C4 E.g. a Word document containing an Excel sheet Each subdocument can be accessed more or less independently COM structured documents work like a filesystem within a file It has streams (file-like) and containers (directory-like) Interface IStream for file-like objects Read, Write, Seek... methods Interface Istorage for the containers CreateStream, OpenStream for Streams in the Storage CreateStorage, OpenStorage for sub-storages methods for renaming, destroying, copying and moving Transaction support (Commit, Revert) Setting the class of an object, getting information... File moniker Item moniker Item moniker Piet van Oostrum 38 Other interfaces to deal with persistence OpenDoc document Piet van Oostrum 39 Structured Storage in general Consists Example of document parts Apple and IBM worked together on OpenDoc compound document architecture document consists of parts different parts can have different part editors part editors work in a part of the visible window parts can have different presentations parts can have different versions Now abandoned (sources are available) Piet van Oostrum 40 Piet van Oostrum 41 - Each having its own part editor slides8.pdf - Which editor is user configurable - Parts may be a container for other parts - Parts execute as part of a process for a October 7, 2008 document 7

8 Presentations Different Part can representations have different presentations What is the problem? Putting parts together in a single document Reinventing the filesystem within a file Better use the real filesystem Or make mountable filesystems No need to rewrite applications Ship a document in a zip file Versioning Use existing tools, like CVS, subversion Contra: not integrated with compound documents Simultaneous access Is usually done with database systems Maybe file access should be upgraded to include transactions Can be done with an additional Transactions layer Part info - Presentation data Piet van Oostrum 42 - Can be stored with the frame Piet van Oostrum 43 View type - Determines the basic kind of presentation Distributed Object Systems 31/03/98 Atze Dijkstra OpenDoc 14 Dept. of Comp.Science, UU slides8.pdf October 7,

What is COM/DCOM. Distributed Object Systems 4 COM/DCOM. COM vs Corba 1. COM vs. Corba 2. Multiple inheritance vs multiple interfaces

What is COM/DCOM. Distributed Object Systems 4 COM/DCOM. COM vs Corba 1. COM vs. Corba 2. Multiple inheritance vs multiple interfaces Distributed Object Systems 4 COM/DCOM Piet van Oostrum Sept 18, 2008 What is COM/DCOM Component Object Model Components (distributed objects) à la Microsoft Mainly on Windows platforms Is used in large

More information

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware Middleware 1 Middleware Lehrstuhl für Informatik 4 Middleware: Realisation of distributed accesses by suitable software infrastructure Hiding the complexity of the distributed system from the programmer

More information

COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES DCOM - COM+ Peter R. Egli INDIGOO.COM. indigoo.com. 1/20 Rev. 1.

COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES DCOM - COM+ Peter R. Egli INDIGOO.COM. indigoo.com. 1/20 Rev. 1. COM, DCOM - COM+ DCOM, COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES Peter R. Egli INDIGOO.COM 1/20 Contents 1. Evolution of COM 2. COM, DCOM, ActiveX, OLE, COM+ 3. Structure of

More information

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15 The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR Chapter 15 Microsoft is continually reengineering its existing application and platform base. Started with VBX, continued with OLE, ODBC, ActiveX,

More information

Infrastructure that supports (distributed) componentbased application development

Infrastructure that supports (distributed) componentbased application development Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication

More information

COM Connect User's Guide. VisualWorks 7.8 P46-0123-07 SIMPLIFICA TION THROUGH I NNOV A TION

COM Connect User's Guide. VisualWorks 7.8 P46-0123-07 SIMPLIFICA TION THROUGH I NNOV A TION COM Connect User's Guide VisualWorks 7.8 P46-0123-07 SIMPLIFICA TION THROUGH I NNOV A TION Copyright 1997 2011 by Cincom Systems, Inc. All rights reserved. This product contains copyrighted third-party

More information

Corba. Corba services. The (very) global picture. Corba. Distributed Object Systems 3 CORBA/IDL. Corba. Features. Services

Corba. Corba services. The (very) global picture. Corba. Distributed Object Systems 3 CORBA/IDL. Corba. Features. Services Distributed Systems 3 CORBA/ Piet van Oostrum Sep 11, 2008 Corba Common Request Broker Architecture Middleware for communicating objects Context Management Group (OMG) Consortium of computer companies

More information

Middleware Lou Somers

Middleware Lou Somers Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,

More information

Introduction. Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications

Introduction. Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications Introduction Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications 1 Computer Software Architecture Application macros and scripting - AML,

More information

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns

More information

Implementation Aspects of OO-Languages

Implementation Aspects of OO-Languages 1 Implementation Aspects of OO-Languages Allocation of space for data members: The space for data members is laid out the same way it is done for structures in C or other languages. Specifically: The data

More information

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur Module 17 Client-Server Software Development Lesson 42 CORBA and COM/DCOM Specific Instructional Objectives At the end of this lesson the student would be able to: Explain what Common Object Request Broker

More information

Elements of Advanced Java Programming

Elements of Advanced Java Programming Appendix A Elements of Advanced Java Programming Objectives At the end of this appendix, you should be able to: Understand two-tier and three-tier architectures for distributed computing Understand the

More information

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling

More information

A Guide to Creating C++ Web Services

A Guide to Creating C++ Web Services A Guide to Creating C++ Web Services WHITE PAPER Abstract This whitepaper provides an introduction to creating C++ Web services and focuses on:» Challenges involved in integrating C++ applications with

More information

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service Achieving Scalability and High Availability Abstract DB2 Connect Enterprise Edition for Windows NT provides fast and robust connectivity

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

Chapter 1 Introduction Guided Analytic Solutions... 1 Configuring DecisionSite for Specific Tasks... 3 Configured End-User Application...

Chapter 1 Introduction Guided Analytic Solutions... 1 Configuring DecisionSite for Specific Tasks... 3 Configured End-User Application... Chapter 1 Introduction Guided Analytic Solutions... 1 Configuring DecisionSite for Specific Tasks... 3 Configured End-User Application... 8 Summary... 9 Who Should Read This Book... 10 How This Book Is

More information

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast. Interprocess communication (Part 2) For an application to send something out as a message, it must arrange its OS to receive its input. The OS is then sends it out either as a UDP datagram on the transport

More information

Interface Definition Language

Interface Definition Language Interface Definition Language A. David McKinnon Washington State University An Interface Definition Language (IDL) is a language that is used to define the interface between a client and server process

More information

ACCESS 2007. Importing and Exporting Data Files. Information Technology. MS Access 2007 Users Guide. IT Training & Development (818) 677-1700

ACCESS 2007. Importing and Exporting Data Files. Information Technology. MS Access 2007 Users Guide. IT Training & Development (818) 677-1700 Information Technology MS Access 2007 Users Guide ACCESS 2007 Importing and Exporting Data Files IT Training & Development (818) 677-1700 training@csun.edu TABLE OF CONTENTS Introduction... 1 Import Excel

More information

Contracts for Services: Needs and Nonsense!

Contracts for Services: Needs and Nonsense! Contracts for Services: Needs and Nonsense! Mark Perreira, Chief Scientist Talking Blocks Slide 1 Agenda Web services and WSDL, today. Defining a contract-based system. The architecture and benefits of

More information

Introduction to Distributed Computing using CORBA

Introduction to Distributed Computing using CORBA Introduction to Distributed Computing using CORBA Rushikesh K. Joshi Dept of Computer Science & Engineering Indian Institute of Technology, Bombay Powai, Mumbai - 400 076, India. Email: rkj@cse.iitb.ac.in

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

CSE 303 Concepts and Tools for Software Development. Magdalena Balazinska Winter 2010 Lecture 19 Inheritance (virtual functions and abstract classes)

CSE 303 Concepts and Tools for Software Development. Magdalena Balazinska Winter 2010 Lecture 19 Inheritance (virtual functions and abstract classes) CSE 303 Concepts and Tools for Software Development Magdalena Balazinska Winter 2010 Lecture 19 Inheritance (virtual functions and abstract classes) Where We Are We have already covered the introduction

More information

Getting Started with the Internet Communications Engine

Getting Started with the Internet Communications Engine Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2

More information

Introduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized

More information

B) Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling

B) Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling A) Recovery Management in Quicksilver 1) What role does the Transaction manager play in the recovery management? It manages commit coordination by communicating with servers at its own node and with transaction

More information

ELEC 377. Operating Systems. Week 1 Class 3

ELEC 377. Operating Systems. Week 1 Class 3 Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation

More information

Keywords Compared in Various Languages

Keywords Compared in Various Languages Keywords Compared in Various Languages Visual Studio 2010 This topic lists common programming tasks that can be summarized with a language keyword. For more information about tasks that need code examples,

More information

El Dorado Union High School District Educational Services

El Dorado Union High School District Educational Services El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.

More information

Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary

Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary C H A P T E R 1 1 Overview of CORBA 11.1 Introduction to CORBA 11.2 CORBA architecture 11.3 Client and object implementations 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary In previous

More information

CHAPTER 13: INTEGRATION OPTIONS

CHAPTER 13: INTEGRATION OPTIONS Chapter 13: Integration Options CHAPTER 13: INTEGRATION OPTIONS Objectives Introduction The objectives are: Describe the concepts of Microsoft Dynamics NAV Web Services. Create a codeunit Web service,

More information

Course: Introduction to Java Using Eclipse Training

Course: Introduction to Java Using Eclipse Training Course: Introduction to Java Using Eclipse Training Course Length: Duration: 5 days Course Code: WA1278 DESCRIPTION: This course introduces the Java programming language and how to develop Java applications

More information

Frameworks For Component-Based Client/Server Computing

Frameworks For Component-Based Client/Server Computing Frameworks For Component-Based Client/Server Computing Scott M. Lewandowski Department of Computer Science Brown University Providence, RI 02912-1910 scl@cs.brown.edu Abstract This paper presents two frameworks

More information

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young 3F6 - Software Engineering and Design Handout 10 Distributed Systems I With Markup Steve Young Contents 1. Distributed systems 2. Client-server architecture 3. CORBA 4. Interface Definition Language (IDL)

More information

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON Revista Informatica Economică, nr. 4 (44)/2007 45 Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON Iulian ILIE-NEMEDI, Bucharest, Romania, inemedi@ie.ase.ro Writing a custom web

More information

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

10266A: Programming in C# with Microsoft Visual Studio 2010

10266A: Programming in C# with Microsoft Visual Studio 2010 10266A: Programming in C# with Microsoft Visual Studio 2010 Course Overview The course focuses on the C# program structure, language syntax, and implementation details with.net Framework 4.0. This course

More information

Distributed Network Management Using SNMP, Java, WWW and CORBA

Distributed Network Management Using SNMP, Java, WWW and CORBA Distributed Network Management Using SNMP, Java, WWW and CORBA André Marcheto Augusto Hack Augusto Pacheco Augusto Verzbickas ADMINISTRATION AND MANAGEMENT OF COMPUTER NETWORKS - INE5619 Federal University

More information

Report of the case study in Sistemi Distribuiti A simple Java RMI application

Report of the case study in Sistemi Distribuiti A simple Java RMI application Report of the case study in Sistemi Distribuiti A simple Java RMI application Academic year 2012/13 Vessio Gennaro Marzulli Giovanni Abstract In the ambit of distributed systems a key-role is played by

More information

Chapter 2: Remote Procedure Call (RPC)

Chapter 2: Remote Procedure Call (RPC) Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC

More information

Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss

Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss Lecture 7: Java RMI CS178: Programming Parallel and Distributed Systems February 14, 2001 Steven P. Reiss I. Overview A. Last time we started looking at multiple process programming 1. How to do interprocess

More information

PIE. Internal Structure

PIE. Internal Structure PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution

More information

Applets, RMI, JDBC Exam Review

Applets, RMI, JDBC Exam Review Applets, RMI, JDBC Exam Review Sara Sprenkle Announcements Quiz today Project 2 due tomorrow Exam on Thursday Web programming CPM and servlets vs JSPs Sara Sprenkle - CISC370 2 1 Division of Labor Java

More information

Building Views and Charts in Requests Introduction to Answers views and charts Creating and editing charts Performing common view tasks

Building Views and Charts in Requests Introduction to Answers views and charts Creating and editing charts Performing common view tasks Oracle Business Intelligence Enterprise Edition (OBIEE) Training: Working with Oracle Business Intelligence Answers Introduction to Oracle BI Answers Working with requests in Oracle BI Answers Using advanced

More information

Distributed Objects and Components

Distributed Objects and Components Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java

More information

DATA 301 Introduction to Data Analytics Microsoft Excel VBA. Dr. Ramon Lawrence University of British Columbia Okanagan

DATA 301 Introduction to Data Analytics Microsoft Excel VBA. Dr. Ramon Lawrence University of British Columbia Okanagan DATA 301 Introduction to Data Analytics Microsoft Excel VBA Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca DATA 301: Data Analytics (2) Why Microsoft Excel Visual Basic

More information

CAPIX Job Scheduler User Guide

CAPIX Job Scheduler User Guide CAPIX Job Scheduler User Guide Version 1.1 December 2009 Table of Contents Table of Contents... 2 Introduction... 3 CJS Installation... 5 Writing CJS VBA Functions... 7 CJS.EXE Command Line Parameters...

More information

UML FOR OBJECTIVE-C. Excel Software www.excelsoftware.com

UML FOR OBJECTIVE-C. Excel Software www.excelsoftware.com UML FOR OBJECTIVE-C Excel Software www.excelsoftware.com Objective-C is a popular programming language for Mac OS X computers. The Unified Modeling Language (UML) is the industry standard notation for

More information

Towards practical reactive security audit using extended static checkers 1

Towards practical reactive security audit using extended static checkers 1 Towards practical reactive security audit using extended static checkers 1 Julien Vanegue 1 Shuvendu K. Lahiri 2 1 Bloomberg LP, New York 2 Microsoft Research, Redmond May 20, 2013 1 The work was conducted

More information

BPM Scheduling with Job Scheduler

BPM Scheduling with Job Scheduler Document: BPM Scheduling with Job Scheduler Author: Neil Kolban Date: 2009-03-26 Version: 0.1 BPM Scheduling with Job Scheduler On occasion it may be desired to start BPM processes at configured times

More information

FileMaker 11. ODBC and JDBC Guide

FileMaker 11. ODBC and JDBC Guide FileMaker 11 ODBC and JDBC Guide 2004 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered

More information

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage Outline 1 Computer Architecture hardware components programming environments 2 Getting Started with Python installing Python executing Python code 3 Number Systems decimal and binary notations running

More information

SL-110: Fundamentals of Java Revision 15 October Sun Educational Services Instructor-Led Course Description

SL-110: Fundamentals of Java Revision 15 October Sun Educational Services Instructor-Led Course Description Sun Educational Services Instructor-Led Course Description Fundamentals of Java SL-110 The Fundamentals of the Java course provides students, with little or no programming experience, with the basics of

More information

A Java-based system support for distributed applications on the Internet

A Java-based system support for distributed applications on the Internet A Java-based system support for distributed applications on the Internet D. Hagimont 1, D. Louvegnies 2 SIRAC Project INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Abstract: We have

More information

Baoming Song. Master of Computer Science

Baoming Song. Master of Computer Science A General Model for Component-based Software by Baoming Song A Thesis Submitted to the Faculty of Computer Science In Partial Fulfillment of the Requirements for the Degree of Master of Computer Science

More information

Agilent PNA Microwave Network Analyzers

Agilent PNA Microwave Network Analyzers Agilent PNA Microwave Network Analyzers Application Note 1408-13 Introduction to Application Development Table of Contents Introduction...3 How to Use this Document...3 Basic Administration...4 Registering

More information

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday Lecture 17: Mobile Computing Platforms: Android Mythili Vutukuru CS 653 Spring 2014 March 24, Monday Mobile applications vs. traditional applications Traditional model of computing: an OS (Linux / Windows),

More information

Course 10266A: Programming in C# with Microsoft Visual Studio 2010 OVERVIEW

Course 10266A: Programming in C# with Microsoft Visual Studio 2010 OVERVIEW Course 10266A: Programming in C# with Microsoft Visual Studio 2010 OVERVIEW About this Course The course focuses on C# program structure, language syntax, and implementation detailswith.net Framework 4.0.

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design

More information

Software Architecture

Software Architecture Software Architecture Lecture 3 Call-Return Systems João Pedro Sousa George Mason University last class data flow styles batch sequential data flow pipe & filter process control Unix pipes process control

More information

IBM BPM V8.5 Standard Consistent Document Managment

IBM BPM V8.5 Standard Consistent Document Managment IBM Software An IBM Proof of Technology IBM BPM V8.5 Standard Consistent Document Managment Lab Exercises Version 1.0 Author: Sebastian Carbajales An IBM Proof of Technology Catalog Number Copyright IBM

More information

Habanero Extreme Scale Software Research Project

Habanero Extreme Scale Software Research Project Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead

More information

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to

More information

Web Services. Distributed Object Systems 11. Web Services, SOAP and NET. Web Applications. Web Services. Web services vs Distributed Objects

Web Services. Distributed Object Systems 11. Web Services, SOAP and NET. Web Applications. Web Services. Web services vs Distributed Objects Distributed Object Systems 11 Web Services, SOAP and NET Piet van Oostrum Web Services Some Definitions A Web Service is a software system designed to support interoperable machine-to-machine interaction

More information

Programming IoT Gateways With macchina.io

Programming IoT Gateways With macchina.io Programming IoT Gateways With macchina.io Günter Obiltschnig Applied Informatics Software Engineering GmbH Maria Elend 143 9182 Maria Elend Austria guenter.obiltschnig@appinf.com This article shows how

More information

Building Web Services with Apache Axis2

Building Web Services with Apache Axis2 2009 Marty Hall Building Web Services with Apache Axis2 Part I: Java-First (Bottom-Up) Services Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, Struts, JSF/MyFaces/Facelets,

More information

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM Ashish Patel, Lead Eclipse Committer for ARM, IBM Corporation Oliver E. Cole, President, OC Systems, Inc. The Eclipse Test and Performance Tools

More information

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies Szolgáltatásorientált rendszerintegráció Comparison of component technologies Simon Balázs, BME IIT Outline Definitions Component technologies RPC, RMI, CORBA, COM+,.NET, Java, OSGi, EJB, SOAP web services,

More information

Adaptable Service Oriented Architectures

Adaptable Service Oriented Architectures Otwarte Studium Doktoranckie 1 Adaptable Service Oriented Architectures Krzysztof Zieliński Department of Computer Science AGH-UST Krakow Poland Otwarte Studium Doktoranckie 2 Agenda DCS SOA WS MDA OCL

More information

Modular Internet Programming with Cells. Ran Rinat Scott Smith http://www.jcells.org

Modular Internet Programming with Cells. Ran Rinat Scott Smith http://www.jcells.org Modular Internet Programming with Cells Ran Rinat Scott Smith http://www.jcells.org Motivations! Persistent language-level network connections è Tightly coupled Internet protocols keep a persistent socket

More information

Basic Unix/Linux 1. Software Testing Interview Prep

Basic Unix/Linux 1. Software Testing Interview Prep Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a

More information

Chapter 1 Fundamentals of Java Programming

Chapter 1 Fundamentals of Java Programming Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The

More information

Course Number: IAC-SOFT-WDAD Web Design and Application Development

Course Number: IAC-SOFT-WDAD Web Design and Application Development Course Number: IAC-SOFT-WDAD Web Design and Application Development Session 1 (10 Hours) Client Side Scripting Session 2 (10 Hours) Server Side Scripting - I Session 3 (10 hours) Database Session 4 (10

More information

Java and ActiveX Projects

Java and ActiveX Projects The Open Group Research Institute Java and ActiveX Projects G.N.Madhusudan Principal Research Scientist The OpenGroup Research Institute g.madhusudan@opengroup.org Web and Security - Outline of Projects

More information

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents Agent Languages Requirements Overview Java Tcl/Tk Telescript Evaluation Franz J. Kurfess, Cal Poly SLO 211 Requirements for agent Languages distributed programming large-scale (tens of thousands of computers)

More information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

Jonathan Worthington Scarborough Linux User Group

Jonathan Worthington Scarborough Linux User Group Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.

More information

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

An introduction to Visual Studio

An introduction to Visual Studio Chapter 1 An introduction to Visual Studio Murach s Visual Basic 2008, C1 2008, Mike Murach & Associates, Inc. Slide 1 Objectives Applied Use Visual Studio 2008 to do any of these operations: Open and

More information

Computer Networks/DV2 Lab

Computer Networks/DV2 Lab Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://ti.uni-due.de/ti/en/education/teaching/ss13/netlab Equipment for each group: - 1 Server computer (OS: Windows Server 2008 Standard)

More information

A Comparative Analysis of Programming Languages for GIS

A Comparative Analysis of Programming Languages for GIS A Comparative Analysis of Programming Languages for GIS Kurt Swendson Department of Resource Analysis, Saint Mary s University of Minnesota, Minneapolis, MN 55404 Keywords: GIS, ArcMap, ArcView, ArcObjects,

More information

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

More information

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS FREQUENTLY ASKED QUESTIONS Secure Bytes, October 2011 This document is confidential and for the use of a Secure Bytes client only. The information contained herein is the property of Secure Bytes and may

More information

"Charting the Course to Your Success!" MOC Programming in C# with Microsoft Visual Studio Course Summary

Charting the Course to Your Success! MOC Programming in C# with Microsoft Visual Studio Course Summary Description Course Summary The course focuses on C# program structure, language syntax, and implementation details with.net Framework 4.0. This course describes the new enhancements in the C# 4.0 language

More information

BarTender s.net SDKs

BarTender s.net SDKs The World's Leading Software for Label, Barcode, RFID & Card Printing White Paper BarTender s.net SDKs Programmatically Controlling BarTender using C# and VB.NET Contents Overview of BarTender.NET SDKs...

More information

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming

More information

Tuple spaces and Object spaces. Distributed Object Systems 12. Tuple spaces and Object spaces. Communication. Tuple space. Mechanisms 2.

Tuple spaces and Object spaces. Distributed Object Systems 12. Tuple spaces and Object spaces. Communication. Tuple space. Mechanisms 2. Distributed Object Systems 12 Tuple spaces and Object spaces Tuple spaces and Object spaces Tuple spaces Shared memory as a mechanism for exchanging data in a distributed setting (i.e. separate from processes)

More information

iphone Objective-C Exercises

iphone Objective-C Exercises iphone Objective-C Exercises About These Exercises The only prerequisite for these exercises is an eagerness to learn. While it helps to have a background in object-oriented programming, that is not a

More information

OpenOffice.org Extensions development in Java with NetBeans in practise. Jürgen Schmidt OpenOffice.org Sun Microsystems, Inc.

OpenOffice.org Extensions development in Java with NetBeans in practise. Jürgen Schmidt OpenOffice.org Sun Microsystems, Inc. OpenOffice.org Extensions development in Java with NetBeans in practise Jürgen Schmidt OpenOffice.org Sun Microsystems, Inc. 1 OpenOffice.org Extensions development in Java with NetBeans in practise Motivation

More information

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Object Oriented Databases OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Executive Summary The presentation on Object Oriented Databases gives a basic introduction to the concepts governing OODBs

More information

Creating and Using Databases for Android Applications

Creating and Using Databases for Android Applications Creating and Using Databases for Android Applications Sunguk Lee * 1 Research Institute of Industrial Science and Technology Pohang, Korea sunguk@rist.re.kr *Correspondent Author: Sunguk Lee* (sunguk@rist.re.kr)

More information

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Hyeon Soo Kim School of Comp. Eng. and Software Eng., Kum Oh National University

More information

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index. Departament d Arquitectura de Computadors Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.html) Local Objects vs. Distributed

More information

Checking Access to Protected Members in the Java Virtual Machine

Checking Access to Protected Members in the Java Virtual Machine Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/

More information

10266 Programming with C# using Microsoft.NET Framework 4

10266 Programming with C# using Microsoft.NET Framework 4 10266 Programming with C# using Microsoft.NET Framework 4 Microsoft - Programação Preço: 1380 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes ) Nível: Intermédio Duração:

More information