Presentation is loading. Please wait.

Presentation is loading. Please wait.

Component Services Tom Perkins - CertSIG. Software Component (Definition) A software component is a system element that –Offers a predefined service –Is.

Similar presentations


Presentation on theme: "Component Services Tom Perkins - CertSIG. Software Component (Definition) A software component is a system element that –Offers a predefined service –Is."— Presentation transcript:

1 Component Services Tom Perkins - CertSIG

2 Software Component (Definition) A software component is a system element that –Offers a predefined service –Is able to communicate with other components Does something Other component Able to communicate with other components

3 Criteria Multiple use Non-context-specific Composable with other components Encapsulated (cannot be investigated through its interfaces) A unit of independent deployment and versioning

4 Components Must be written to a specification (COM, Java Beans, etc) –Adherence to specification turns object into component –Makes object reusable Components may be objects or collections of objects Must adhere to Interface Description Language (IDL) Accessing or sharing components across network links or processes –Serialization (marshalling) required to turn component or one of its interfaces into a bitstream.

5 Component Object Model (COM) Platform for software components Introduced by Microsoft in 1993 Enables –Interprocess communication –Dynamic object creation Umbrella term for several technologies –OLE –OLE Automation –ActiveX –COM+ –DCOM

6 COM A way of using objects in different environments from the one they were created in –Across machine boundaries Implementers must provide well-defined interfaces –Interfaces separate from implementation –You don’t need to know how object is implemented internally –Reuse through interfaces Objects are responsible for their own creation and destruction through reference-counting Replacements –COM .NET –Support for Web Services  Windows Communication Foundation (WCF) DCOM  binary formats; WCF  XML-based SOAP

7 Differences from Object- Oriented Programming Object-Oriented Programming (OOP) –Software should model the real world objects it represents –Focuses on real-world interactions b/w objects –Attempts to create objects from nouns and verbs in a “use case” Software Componentry –Programmers glue together prefabricated components –Like electronics or mechanics –Discourages anthropomorphism –Pessimistic about “end-user” programming

8 3-Tier Approach Presentation Business Logic Data Active Server Pages COM Components DBMS (SQL Server,etc) Implementation Choice Tier Name

9 COM+ 1.0 Object Pooling –Objects kept in a pool until ready to be used Just-In-Time Activation –Minimizes time an object lives and consumes resources –Client can hold reference a long time –But, server creates object only on 1 st method call Role-based Security –Access to parts of component are granted/denied based on role to which client belongs Queued Components –Component execution in async or disconnected mode Loosely-Coupled Events –An object publishes an event, other objects suscribe

10 COM+ 1.5 COM+ components can be configured to run as a –Windows Service Can start when Windows starts Can run with system identity account – has high privileges –Web Service Needs IIS on machine

11 COM+ 2.0 (.NET Framework) Name: COM+2.0 .NET Framework Major upgrade of COM Replaces need for COM Components execute in mangaged CLR –Provide memory management, security, and versioning to the component COM+ 1.0 used for Windows 2000 COM+ 1.5 used for XP and Windows Server 2003

12 Exposing.NET Components COM+ recognizes only COM components.NET component exposed to COM must be exposed as COM component For a COM client to find a.NET Component: –.NET Component must be registered as a COM server in the Registry AKA Assembly Registration Process

13 Calling a.NET Component from COM/COM+ COM Client Registry.NET Component COM+ recognizes only COM components ?? Assembly Registration Process

14 VS-Change Register For COM Interop option on Project|Property Pages|Configuration Properties (slightly different for VS2005) -or- Assembly Registration tool (regasm.exe) -or- Programmatically, use RegistrationServices class of System.Runtime.InteropServices namespace

15 But first … Assembly must be signed –Assembly identity Text Name Version Culture Information –Public key –Optional Digital Signature Assign GUID for assembly itself, each class, each method Assembly

16 Inside the Component’s Registry Entry … InprocServer32 key … Assembly key … registry Entry normally points to DLL used by COM to create component for managed code, contains path to mscoree.dll o knows how to launch a CLR process o and execute a managed DLL o uses Assembly key to find DLL - stores identity of DLL, not path - GAC searched, then others o mscoree creates instance of type o mscoree creates COM-Callable Wrapper (CCW) – proxy b/w COM client and managed code in DLL mscoree.dll COM Client CCW (proxy).Net Component

17 Invoking a.NET Component from COM COM/COM+ RuntimeCommon Language Runtime COM Client.NET Component mscoree.dll Registry GUID CoCreateInstance() DLLGetClassObject() CCW COM Call.NET Call

18 Exporting.Net Components as COM Type Libraries CCW – late binding – type references resolved at runtime Slow, no compile-time checking Alternative – export.NET components as COM type libraries Early binding – faster, compile-time type checking Assembly Registration Process similar Default extension .tlb

19 Architecture of Component Services What are the basic components of COM+ architecture? How is a COM+ application organized? How does COM+ provide component services? How does the.NET Framework interact with COM+?

20 Serviced Components All.NET serviced components must derive from System.EnterpriseServices.ServicedComponent class. Classes must be public and concrete Classes must provide a public default constructor –COM cannot create an object and pass parameters for object creation at the same time.

21 A Basic Serviced Component Declaration ServicedComponent class – has methods but no events or properties – Methods: –Activate() – startup method –CanBePooled() – can object be pooled? –Construct() – gives access to construction string, after constructor –Deactivate() – cleanup operations –DisposeObject() – finalize, removes COM+ reference using System.EnterpriseServices; namespace TEP { public class MySampleSC : ServicedComponent { public MySampleSC() {…} }

22 Declarative Programming Model Uses declarative tags to specify services component receives (transactions, JIT activation, object pooling) Instructs COM+ to accomplish certain tasks Visual C#, declarative tags specified by attributes Attribute values can be modified at run time by reflection Use Component Services administrative tool Can change application’s behavior without compiling

23 Declarative Programming Example All details for enabling transactions done behind the scenes Advantages: –Less code –Reliability – platform should be validated –Flexibility – administrators can reconfigure without recompiling [Transaction(TransactionOption.Required)] public class MySampleSC : ServicedComponent { … }  Component requires Transaction Support

24 COM+ Application Definition: A group of serviced components that perform related functions. Each component consists of interfaces and methods Always stored in a DLL; 2 configurations Server ApplicationLibrary Application runs in its own process COM+ provides surrogate process (dllhost.exe) runs in process of client loaded into process of client

25 COM+ Catalog Stores information about COM+ applications GUID identifies each COM+ application and serviced component Also each’s runtime requirements –If requires Transaction, this is stored –Declarative attributes stored here Physically split –COM+ Registration DB  c:\windows\registration –Windows Registry within key HKEY_CLASSES_ROOT Access and update through Component Services administrative tool – Control Panel

26 Component Services Administration Tool

27 Component Activation – Similar Context COM+COM+ Application Process Context X Enterprise Services Component AComponent B Compatible Contexts? COM+ catalog ObjB = new ComponentB() CoCreateInstance() GUID Runtime Information Y

28 Component Activation – Different Contexts COM+COM+ Application Process Context X Enterprise Services Component AComponent B Compatible Contexts? COM+ catalog ObjB = new ComponentB() CoCreateInstance() GUID Runtime Information N Proxy Interception Context Y

29 Context Definition: A set of runtime properties that define the execution environment for a serviced component Created during activation process Based on configuration of component Objects with similar requirements share a context; incompatible  different contexts

30 Interception A mechanism that allows COM+ to capture calls to any object and execute its own code before passing that call. Example: only users authenticated with Supervisors security role are allowed to call ApproveOrder() method. COM+ intercepts the call and accepts or rejects based on identity of user. Objects in different contexts use a proxy rather than direct calls Available at object level and method level


Download ppt "Component Services Tom Perkins - CertSIG. Software Component (Definition) A software component is a system element that –Offers a predefined service –Is."

Similar presentations


Ads by Google