Distributed Objects Technologies: .NET and CORBA - PowerPoint PPT Presentation

About This Presentation
Title:

Distributed Objects Technologies: .NET and CORBA

Description:

Distributed Objects Technologies:.NET and CORBA Naim R. El-Far, PhD Candidate TA for SEG3202 Software Design and Architecture with N. El-Kadri (Summer 2005) – PowerPoint PPT presentation

Number of Views:107
Avg rating:3.0/5.0
Slides: 37
Provided by: NaimR
Category:

less

Transcript and Presenter's Notes

Title: Distributed Objects Technologies: .NET and CORBA


1
Distributed Objects Technologies.NET and CORBA
  • Naim R. El-Far, PhD Candidate
  • TA for SEG3202 Software Design and Architecture
    with N. El-Kadri (Summer 2005)
  • Tutorial 4 of 4 24/6/2005

2
About Todays Material
  • Some of todays material has been adapted from
    presentations by D. Schmitt of Microsoft, and Dr.
    I. Stoica of UC Berkeley.

3
In Perspective
  • Client/Server Architecture (Tutorial 1)
  • N-Tier Architecture (Tutorial 2)
  • Concept of Distributed Objects (Tutorial 3)
  • Technologies for Distributing Objects
  • Java RMI ? J2EE (Tutorial 3)
  • .NET (Todays tutorial)
  • CORBA (Todays tutorial)

4
(No Transcript)
5
.NET Enterprise Vision
UsersAny device,Any place,Any time
Roles/ExperiencesGet the right infoTo the right
userAt the right time
Sales
Customer
Supply
Engineering
Operations
XML Web ServicesIntegrate and orchestrate
business applications and processes
Authentication
Scheduling
Notification
Back OfficeHeterogeneous application and server
infrastructure
Customer Service
6
What is .NET?
  • A generic term for the MS vision
  • The successor to Windows DNA
  • Sometimes applied to product names
  • Such as Windows .NET Server
  • A specific software framework
  • Includes a common runtime
  • Common across OS and dev language
  • Includes baseline dev tools in an SDK
  • Includes powerful dev environment
  • Visual Studio .NET

7
.NET Workings
  • An evolution from COM/DCOM ? Windows DNA ? .NET
  • Platform-independent
  • Internet integration
  • Security
  • Primary Components
  • Common Language Infrastructure (CLI)
    specifications for a runtime environment,
    including a common type system, base class
    library, and a machine-independent intermediate
    code known as the Common Intermediate Language
    (CIL) MSIL.
  • Common Language Runtime (CLR) Runtime
    environment to run any CIL code that adheres to
    CLI specs usually through JIT compilation.

8
.NET Workings
  • All CIL is self-describing through .NET metadata.
  • Language implementation ? CIL ? CLR ? MSIL ? .NET
    languages
  • .NET assemblies, DLL or EXE for Win32. The .NET
    unit of deployment, versioning and security (64
    bit public/private key).
  • All code is compiled, not interpreted
  • Converted to native machine code at install time
    (via NGEN) or run time (via JIT compiler)
  • Static code management
  • Versioning, localizing, and signing
  • Configurable assembly resolver
  • Global assembly cache (GAC)
  • Dynamic code management
  • Memory allocation with garbage collection
  • Lifecycle management via reference tracking
  • Thread pooling

9
.NET Workings
  • Fine-grained code access security
  • Augments OS security (user credentials)
  • Ensures that code only performs operations
    allowed by policies set by user or administrator
  • Based on code source, publisher signature, and
    other evidence
  • Flexible deployment
  • Simple XCOPY (since not bound to Windows
    registry)
  • Windows installer
  • Auto-deploy (aka no-touch or zero-impact)
  • Flexible remoting
  • Includes XML/SOAP and binary
  • Remoting model is easily extended
  • Integrates with web services

10
Compilation Execution
AssemblyUnit of deployment, similar to DLL or
EXE with added metadata
Compilation
Saved in cache An assembly can also be
pre-compiled as part of deployment
Before installation or the first time each method
is called
11
CLR Internals
12
.NET Structure CLR and Win32 Services
Same class library across all programming
languages
C
VB
J...
Enterprise Services
Connects .NET to COM for transactional
components and other enterprise services
ADO.NET
ASP.NET
CLR
Connects .NET to data providers, including XML
documents
Active Directory
MSMQ
COM
IIS
WMI
Win32
Provides WebForms for thin clients, plus web
services via HTTP
13
.NET Framework More generally
14
.NET Framework
Internet and Web Services
Other Framework Extensions
Framework Features
Windows Framework Extensions
Standard .NET Framework
Windows
Other OS
Application Reach across Devices
15
.NET Mobility Framework
Internet and Web Services
Device Vendor Framework Extensions
Framework Features
Windows CE Framework Extensions
.NET Compact Framework
Windows CE
Other OS
Application Reach across Devices
16
.NET on non-MS Operating Systems
  • Microsofts Shared Source Initiative
  • Rotor Microsoft shared-source version of .NET
    for FreeBSD
  • Mono Novell (formerly by Ximian) open-source
    version of .NET for GNU/Linux, UNIX, Mac OS X,
    and Windows based computers.
  • Portable .NET is part of the DotGNU project.

17
(No Transcript)
18
Introduction to CORBA
  • Common Object Request Broker Architecture (CORBA)
  • A standard for software componentry.
  • Created and controlled by the Object Management
    Group (OMG).
  • Defines APIs, communication protocol, and
    object/service information models to enable
    heterogeneous applications written in various
    languages running on various platforms to
    interoperate ? platform and location transparency
    for sharing well-defined objects across a
    distributed computing platform.
  • CORBA "wraps" code written in some language into
    a bundle containing additional information on the
    capabilities of the code inside, and how to call
    it. The resulting wrapped objects can then be
    called from other programs (or CORBA objects)
    over the network.
  • CORBA can be considered as a machine-readable
    documentation format.
  • Interface Definition Language (IDL) to specify
    the interfaces that objects will present to the
    world.
  • A "mapping" from IDL to a specific implementation
    language like C or Java. Standard mappings
    exist for Ada, C, C, Lisp, Smalltalk, Java, and
    Python. There are also non-standard mappings for
    Perl and Tcl implemented by ORBs written for
    those languages.

19
High-Level Overview of CORBA
  • CORBA applications are composed of objects.
  • For each object type you define an interface in
    OMG IDL.
  • CORBA Separation of interface from
    implementation.
  • Well-defined, strict interfaces.
  • Hidden implementation.
  • Clients access objects only through their
    advertised interface.

20
CORBA Architecture
21
Stub
  • Provides interface between client object and ORB
  • Marshalling client invocation
  • Unmarshalling server response

Server
Client
Java Object
C Object
Skeleton
Stub
Object Adapter
IIOP
ORB
ORB
22
Skeleton
  • Provides iterface between server object and ORB
  • Unmarshaling client invocation
  • Marshaling server response

Server
Client
Java Object
C Object
Skeleton
Stub
Object Adapter
IIOP
ORB
ORB
23
(Portable) Object Adapter (POA)
  • Register class implementations
  • Creates and destroys objects
  • Handles method invokation
  • Handles client authentication and access control

Server
Client
Java Object
C Object
Skeleton
Stub
Object Adapter
IIOP
ORB
ORB
24
Object Request Broker (ORB)
  • Communication infrastructure sending messages
    between objects
  • Communication type
  • GIOP (General Inter-ORB Protocol)
  • IIOP (Internet Inter-ORB Protocol) (GIOP on
    TCP/IP)

Server
Client
Java Object
C Object
Skeleton
Stub
Object Adapter
IIOP
ORB
ORB
25
CORBA Object
Server
CORBA Object
Interoperable Object Reference
Interface IDL
C/Java Implementation
Servant
26
Example of CORBA Services
  • Naming Keeps track of association between object
    names and their reference. Allows ORB to locate
    referenced objects
  • Life Cycle Handles the creation, copying,
    moving, and deletion objects
  • Trader A yellow pages for objects. Lets you
    find them by the services they provide
  • Event Facilitates asynchronous communications
    through events
  • Concurrency Manages locks so objects can share
    resources
  • Query Locates objects by specified search
    criteria

27
Remote Invocation in CORBA
  • Oversimplification
  • Client first obtains its object reference (E.g.
    Naming Service and the Trader Service).
  • Remote invocation local invocation
    substituting the object reference for the remote
    instance.
  • ORB examines the object reference and discovers
    that the target object is remote ? routes the
    invocation out over the network to the remote
    object's ORB.

28
Remote Invocation in CORBA
  • In more detail
  • IDL ? the client knows exactly which operations
    it may invoke, what the input parameters are, and
    where they have to go in the invocation
  • IIOP (ORBs may use other protocols)
  • Although the ORB can tell from the object
    reference that the target object is remote, the
    client can not.

29
Object Invocation Models
  • Invocation models supported in CORBA

Request type Failure semantics Description
Synchronous At-most-once Caller blocks until a response is returned or an exception is raised
One-way Best effort delivery Caller continues immediately without waiting for any response from the server
Deferred synchronous At-most-once Caller continues immediately and can later block until response is delivered
30
Interoperability
  • Allow multi-vendor ORB implementations to
    communicate with each other
  • General Inter-ORB Protocol (GIOP) message types

Message type Originator Description
Request Client Contains an invocation request
Reply Server Contains the response to an invocation
LocateRequest Client Contains a request on the exact location of an object
LocateReply Server Contains location information on an object
CancelRequest Client Indicates client no longer expects a reply
CloseConnection Both Indication that connection will be closed
MessageError Both Contains information on an error
Fragment Both Part (fragment) of a larger message
31
Object References
  • The organization of an IOR with specific
    information for IIOP

32
Secure Object Invocation in CORBA
33
CORBA Application
  • Define interface using IDL
  • Compile interface
  • Implement interface
  • Instantiate server
  • Register object as a CORBA object
  • Instantiate client
  • Invoke CORBA object
  • Example using a Java client and server

34
(No Transcript)
35
J2EE vs. .NET
  • Cola vs. Pepsi
  • Are you starting from scratch?
  • Are you migrating from a legacy system?
  • One day, J2EE and .NET will become legacy
    systems.
  • Past, Present, and Future.
  • Web Services ?? Body Organs
  • For more details (a little out of date by
    comprehensive http//www.theserverside.com/articl
    es/article.tss?lJ2EE-vs-DOTNET)

36
Where does CORBA fit it?
  • Purpose of CORBA
  • IIOP, a pillar of CORBA
  • J2EE support for IIOP
  • .NET support for IIOP (IIOP.NET, Janeva)
  • CORBA, J2EE, and .NET like everything else, the
    mix depends on your purpose, the past, the
    present, and the future of your system.
Write a Comment
User Comments (0)
About PowerShow.com