obsydian component model ranjit sahota chief architect obsydian development ranjit sahota chief...

15
Obsydian Obsydian Component Model Component Model Ranjit Sahota Chief Architect Obsydian Development

Upload: clarissa-hampton

Post on 14-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

Obsydian Obsydian Component ModelComponent Model

Obsydian Obsydian Component ModelComponent ModelRanjit SahotaChief ArchitectObsydian Development

Ranjit SahotaChief ArchitectObsydian Development

Page 2: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 22©1998 Synon, Inc. ©1998 Synon, Inc.

Session OutlineSession Outline

OCM Project Goals OCM OCM Architecture Overview OCM Demonstration OCM SummaryOCM Summary OCM Futures OCM FAQ & QuestionsOCM FAQ & Questions

OCM Project Goals OCM OCM Architecture Overview OCM Demonstration OCM SummaryOCM Summary OCM Futures OCM FAQ & QuestionsOCM FAQ & Questions

Page 3: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 33©1998 Synon, Inc. ©1998 Synon, Inc.

OCM Project Goals

Support Component development in ObsydianSupport Component development in Obsydian Support industry leading component modelsSupport industry leading component models

Microsoft COM & Sun JavaBeansMicrosoft COM & Sun JavaBeans OCM Project PhasesOCM Project Phases

1 Import and integrate COM components1 Import and integrate COM components 2 Implement COM components2 Implement COM components 3 Import and integrate JavaBeans components3 Import and integrate JavaBeans components 4 Implement JavaBeans components4 Implement JavaBeans components

Leverage Patterns and componentsLeverage Patterns and components Microsoft DNA and IBM San FranciscoMicrosoft DNA and IBM San Francisco

Page 4: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 44©1998 Synon, Inc. ©1998 Synon, Inc.

Component Based DevelopmentComponent Based Development

Objects are reused at the binary level ( Black Box)Objects are reused at the binary level ( Black Box) Example component models are:Example component models are:

COM, JavaBeans, CORBA, Smalltalk Parts, VBXCOM, JavaBeans, CORBA, Smalltalk Parts, VBX Customization is done at runtime, programmatically Customization is done at runtime, programmatically

using properties, methods and eventsusing properties, methods and events Meta data is accessed using standardized APIsMeta data is accessed using standardized APIs Each component model has different meta models Each component model has different meta models

and APIs to access the meta dataand APIs to access the meta data MS COM is most used model and defacto standardMS COM is most used model and defacto standard

Page 5: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 55©1998 Synon, Inc. ©1998 Synon, Inc.

Microsoft COM OverviewMicrosoft COM Overview

Defacto Industry Standard Component ModelDefacto Industry Standard Component Model MS Architectures and Technologies are COM based MS Architectures and Technologies are COM based

( DNA, DNAFS, DAO, OLEDB, MSMQ, MTS, etc)( DNA, DNAFS, DAO, OLEDB, MSMQ, MTS, etc) Binary, Language, Location Independent ModelBinary, Language, Location Independent Model Type Library API exposes COM meta dataType Library API exposes COM meta data Distributed Deployment & Runtime PolymorphismDistributed Deployment & Runtime Polymorphism COM components can be used from VB, VBA, COM components can be used from VB, VBA,

VBScript, HTML and other COM environmentsVBScript, HTML and other COM environments COM being ported to UNIX and AS/400COM being ported to UNIX and AS/400 COM + is new version of COM that provides more COM + is new version of COM that provides more

system level services for COM developerssystem level services for COM developers

Page 6: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 66©1998 Synon, Inc. ©1998 Synon, Inc.

Example Components

System Level ComponentsSystem Level Components Microsoft OLEDB for Database AccessMicrosoft OLEDB for Database Access Microsoft Message Queue ( MSMQ) Microsoft Message Queue ( MSMQ) Microsoft Cedar for Mainframe AccessMicrosoft Cedar for Mainframe Access

Business ComponentsBusiness Components SAP R3 Business ObjectsSAP R3 Business Objects Microsoft Business Object Framework (BOF)Microsoft Business Object Framework (BOF) Microsoft DNA/FS ( Financial Services)Microsoft DNA/FS ( Financial Services)

Page 7: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 77©1998 Synon, Inc. ©1998 Synon, Inc.

OCM Phase 1 Overview

VB ease of use and C++ generation performanceVB ease of use and C++ generation performance Obsydian Meta Model enhancements for COMObsydian Meta Model enhancements for COM Integration of COM with Obsydian Design Models Integration of COM with Obsydian Design Models Import COM components with COM Import Wizard Import COM components with COM Import Wizard

(DAO, OLEDB, MSMQ, MTS, DirectX, etc)(DAO, OLEDB, MSMQ, MTS, DirectX, etc) View COM components in Repository & BrowsersView COM components in Repository & Browsers Use COM components in Action Diagrams & PanelsUse COM components in Action Diagrams & Panels New component based development capabilitiesNew component based development capabilities Generate Win32 C++ to implement COM appsGenerate Win32 C++ to implement COM apps Patterns + Components = Large Scale ReusePatterns + Components = Large Scale Reuse

Page 8: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 88©1998 Synon, Inc. ©1998 Synon, Inc.

Meta Model EnhancementsMeta Model Enhancements

Component

Package

Interface

Field

Function

PKG component COM PKG interface INT

COM implements INT

INT property FLD

INT method FNC

Page 9: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 99©1998 Synon, Inc. ©1998 Synon, Inc.

OCM Architecture Overview

Architecture Diagram

AD Editor

Panel Editor

Diagrammer

COM TypeLibs

COM+ Store

MS Repository

Java Beans

Java Classes

OMG CORBA

Repository

COM Wizard

Generators

Browser

Java Bean Wizard

Component Manager

RunTime Systems

Page 10: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 1010©1998 Synon, Inc. ©1998 Synon, Inc.

OCM Design NotesOCM Design Notes

VB like syntax in AD with C++ generationVB like syntax in AD with C++ generation Event handling supported for non GUI componentsEvent handling supported for non GUI components Explicit control over component lifetimes Explicit control over component lifetimes Automatic conversions between COM data types Automatic conversions between COM data types

and Obsydian data types and Obsydian data types Generation of C++ code to access Components Generation of C++ code to access Components High speed access using COM vtable early bindingHigh speed access using COM vtable early binding Automatic error handling ( HRESULT)Automatic error handling ( HRESULT)

Page 11: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 1111©1998 Synon, Inc. ©1998 Synon, Inc.

Action Diagram EnhancementsAction Diagram Enhancements

Set MyApp = New Excel.Application

Set TheWorksheets = myApp.Worksheets

Set MyWorksheet = theWorksheets.Item(…)

From (Parameter Mapping) To

Excel.Constants.One Excel.Worksheets.Index

Set MyCells = myWorksheet.Range(…)

Set R3 = New SAP.BusinessObjectFactory

Set R3.Logon = SAP.Values.Logon.True

Set CustomerOrder = R3.GetSAPObject(…)

From To

SAP.Values.CustomerOrder SAP.Constants

ViewX<OrderNo> SAP.CustomerOrder.OrderNo

Page 12: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 1212©1998 Synon, Inc. ©1998 Synon, Inc.

OCM DemonstrationOCM Demonstration

Importing using the COM Import WizardImporting using the COM Import Wizard Viewing components in ObsydianViewing components in Obsydian Browser enhancements for componentsBrowser enhancements for components Action Diagram enhancements for componentsAction Diagram enhancements for components Panel Design enhancements for componentsPanel Design enhancements for components

Page 13: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 1313©1998 Synon, Inc. ©1998 Synon, Inc.

OCM FuturesOCM Futures

COM component implementation from ObsydianCOM component implementation from Obsydian COM based pattern libraries for DNA and MTSCOM based pattern libraries for DNA and MTS COM wizards to help develop components easilyCOM wizards to help develop components easily JavaBeans integration into ObsydianJavaBeans integration into Obsydian JavaBeans implementation from ObsydianJavaBeans implementation from Obsydian San Francisco pattern libraries for JavaBeansSan Francisco pattern libraries for JavaBeans UML Diagramming for COM and JavaBeansUML Diagramming for COM and JavaBeans Enhanced Browsing for COM and JavaBeansEnhanced Browsing for COM and JavaBeans

Page 14: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 1414©1998 Synon, Inc. ©1998 Synon, Inc.

OCM SummaryOCM Summary

Component based development for ObsydianComponent based development for Obsydian COM components viewed and accessed from COM components viewed and accessed from

Obsydian repository as normal design constructsObsydian repository as normal design constructs Panel & AD can integrate and use COM Panel & AD can integrate and use COM

componentscomponents Allows integration of “off the shelf” componentsAllows integration of “off the shelf” components Patterns and components combination for Patterns and components combination for

increased productivity gains increased productivity gains Synon committed to component developmentSynon committed to component development Patterns + Components = Large Scale ReusePatterns + Components = Large Scale Reuse

Page 15: Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

April 21, 2023April 21, 2023 Obsydian OCMObsydian OCM 1515©1998 Synon, Inc. ©1998 Synon, Inc.

OCM FAQ & QuestionsOCM FAQ & Questions

What’s the difference between OLE support and OCM? What’s the difference between ActiveX support and OCM? Can I generate my own COM components from Obsydian? How do I find out more about COM and OLE Automation? How do I find out more about VB and OLE Automation? How does MTS support fit into the OCM picture? How does Obsydian OCM inter-operate with CORBA? What are the cross platform issues with COM? How is component development different than ER?