1 / 36

Distributed Objects Technologies: .NET and CORBA

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. About Today’s Material.

koren
Download Presentation

Distributed Objects Technologies: .NET and CORBA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 Today’s Material • Some of today’s 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 (Today’s tutorial) CORBA (Today’s tutorial)

  4. ERP & Billing Plant Operations .NET Enterprise Vision UsersAny device,Any place,Any time Roles/ExperiencesGet the right infoTo the right userAt the right time Sales Supply Customer Engineering Operations XML Web ServicesIntegrate and orchestrate business applications and processes Authentication Scheduling Notification Back OfficeHeterogeneous application and server infrastructure Customer Service

  5. 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

  6. .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.

  7. .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

  8. .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

  9. Code Source Code Language Compiler Metadata Execution Native Code JIT Compiler 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

  10. Base Class Library Thread Manager COM Marshaler Type Checker Exception Manager Security Services Debug Services IL to Native Compilers Code Manager Garbage Collector Class Loader CLR Internals

  11. .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

  12. .NET Framework: More generally

  13. .NET Framework Internetand Web Services Framework Features Other Framework Extensions Windows Framework Extensions Standard .NET Framework Windows Other OS Application Reach across Devices

  14. .NET Mobility Framework Internetand Web Services Framework Features Device Vendor Framework Extensions Windows CE Framework Extensions .NET Compact Framework Windows CE Other OS Application Reach across Devices

  15. .NET on non-MS Operating Systems Microsoft’s 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.

  16. 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.

  17. 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.

  18. Server Client Java Object C++ Object Skeleton Stub Object Adapter IIOP ORB ORB CORBA Architecture

  19. 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

  20. 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

  21. (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

  22. 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

  23. CORBA Object Server CORBA Object Interoperable Object Reference Interface IDL C++/Java Implementation Servant

  24. 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

  25. 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.

  26. 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.

  27. Object Invocation Models • Invocation models supported in CORBA

  28. Interoperability • Allow multi-vendor ORB implementations to communicate with each other • General Inter-ORB Protocol (GIOP) message types

  29. Object References • The organization of an IOR with specific information for IIOP

  30. Secure Object Invocation in CORBA

  31. 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

  32. 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/articles/article.tss?l=J2EE-vs-DOTNET)

  33. 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.

More Related