©scilabs 2002 open communications interface (oci) vienna plenary meeting ©scilabs ingenieros s.l....

30
©SCILabs 2002 www.SCILabs.es Open Communications Interface (O Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002 www.SCILabs.es Miguel Segarra José Antonio Clavijo HRTC

Post on 20-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Open Communications Interface (OCI)

Vienna Plenary Meeting

©SCILabs Ingenieros S.L. 2002 www.SCILabs.es

Miguel SegarraJosé Antonio Clavijo

HRTC

Page 2: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Speech Contents

• Introduction• Open Communications

Interface• Conclusions

Page 3: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Introduction

• What is OCI?• Constraints

Introduction Open Comm. Intf. Conclusions

Page 4: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

What is OCI?

Introduction Open Comm. Intf. Conclusions

(RT)ORB

GIOP

TCP/IP IIOP

Hardcoded in the broker

(RT)ORB

TCP/IP ATM

GIOP

Transport plug-in

• In doing this we must allow independent implementations which are substituable and interoperable

Page 5: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

What is OCI?

• The OCI defines common interfaces for pluggable transports

Introduction Open Comm. Intf. Conclusions

(RT)ORB

TCP/IP ATM

GIOP

Stubs/Skels

OCI Vendor independent interface

ORB Transport

Layer

Network Transport Layer

Page 6: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

What is OCI?

• OCI establishes a separation between the inter-ORB transport protocol (GIOP) and the underlying network transport protocol (TCP/IP and others)

Introduction Open Comm. Intf. Conclusions

Page 7: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

What is OCI?

• We need OCI because1. We may not have access to

the ORB internals to hook a new transport protocol (e.g. We do not have the ORB source code)

2. We can develop a transport protocol plug-in and use it with several ORBs

Introduction Open Comm. Intf. Conclusions

Page 8: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Constraints

• OCI supports reliable connection-oriented transports

• For non-reliable non-connection-oriented protocols, the plug-in must take care of reliability and connection management.

Introduction Open Comm. Intf. Conclusions

Page 9: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Open Communications Interface

• OCI is based in nine types of interfaces

• Five of them must be implemented by the developer to build a new transport plug-in

• Interfaces: buffer, transport, connector, acceptor, connector and acceptor factories, connector and acceptor factory registries, info objects

Introduction Open Comm. Intf. Conclusions

Page 10: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Open Communications Interface

ORB

Conn. Fact. Reg. Acc. Fact. Reg.

CLIENT SIDE SERVER SIDE

Conn. Fact. Acc. Fact.AcceptorConnector Transport

TCP/IPConn. Fact.

TCP/IP Acc. Fact.

TCP/IP Acceptor

TCP/IP Connector

TCP/IP Transport

1 1n n

creates

ABSTRACT

IMPLEMENTATION

Introduction Open Comm. Intf. Conclusions

Page 11: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Open Communications Interface

• The initial reference to the factory registries is obtained via the ORB’s resolve_initial_references() method.

– “OCIConFactoryRegistry”– “OCIAccFactoryRegistry”

Introduction Open Comm. Intf. Conclusions

Page 12: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::Buffer

interface Buffer {readonly attribute unsigned long length;attribute unsigned long pos;void advance(in unsigned long delta);unsigned long rest_length();boolean is_full();};

Introduction Open Comm. Intf. Conclusions

Page 13: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::Transport

interface Transport {readonly attribute ProtocolId id;readonly attribute ProfileId tag;readonly attribute OCI::Handle handle;void close();void shutdown();void receive(in Buffer buf, in boolean block);boolean receive_detect(in Buffer buf, in boolean block);void receive_timeout(in Buffer buf, in unsigned long timeout);void send(in Buffer buf, in boolean block);boolean send_detect(in Buffer buf, in boolean block);void send_timeout(in Buffer buf, in unsigned long timeout);TransportInfo get_info();};

Introduction Open Comm. Intf. Conclusions

Page 14: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::TransportInfo

interface TransportInfo {readonly attribute ProtocolId id;readonly attribute ProfileId tag;readonly attribute ConnectorInfo connector_info;readonly attribute AcceptorInfo acceptor_info;string describe();void add_close_cb(in CloseCB cb);void remove_close_cb(in CloseCB cb);};

Introduction Open Comm. Intf. Conclusions

Page 15: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::CloseCB

interface CloseCB {void close_cb(in TransportInfo transport_info);};

Introduction Open Comm. Intf. Conclusions

Page 16: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::Connector

interface Connector {readonly attribute ProtocolId id;readonly attribute ProfileId tag;Transport connect();Transport connect_timeout(in unsigned long timeout);ProfileInfoSeq get_usable_profiles(in IOR ref, in CORBA::PolicyList policies );boolean equal(in Connector con);ConnectorInfo get_info();};

Introduction Open Comm. Intf. Conclusions

Page 17: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::ConnectorInfo

interface ConnectorInfo {readonly attribute ProtocolId id;readonly attribute ProfileId tag;string describe();void add_connect_cb(in ConnectCB cb);void remove_connect_cb(in ConnectCB cb);};

Introduction Open Comm. Intf. Conclusions

Page 18: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::ConnectCB

interface ConnectCB {void connect_cb(in TransportInfo transport_info);};

Introduction Open Comm. Intf. Conclusions

Page 19: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::Acceptor

interface Acceptor {readonly attribute ProtocolId id;readonly attribute ProfileId tag;readonly attribute OCI::Handle handle;void close();void listen();Transport accept(in boolean block);Transport connect_self();void add_profiles(in ProfileInfo profile_info, inout IOR ref);ProfileInfoSeq get_local_profiles(in IOR ref);AcceptorInfo get_info();};

Introduction Open Comm. Intf. Conclusions

Page 20: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::AcceptorInfo

interface AcceptorInfo {readonly attribute ProtocolId id;readonly attribute ProfileId tag;string describe();void add_accept_cb(in AcceptCB cb);void remove_accept_cb(in AcceptCB cb);};

Introduction Open Comm. Intf. Conclusions

Page 21: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::AcceptCB

interface AcceptCB {void accept_cb(in TransportInfo transport_info);};

Introduction Open Comm. Intf. Conclusions

Page 22: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::AccFactory

interface AccFactory {readonly attribute ProtocolId id;readonly attribute ProfileId tag;Acceptor create_acceptor(in ParamSeq params) raises(InvalidParam);AccFactoryInfo get_info();};

Introduction Open Comm. Intf. Conclusions

Page 23: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::AccFactoryInfo

interface AccFactoryInfo {readonly attribute ProtocolId id;readonly attribute ProfileId tag;string describe();};

Introduction Open Comm. Intf. Conclusions

Page 24: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::AccFactoryRegistry

interface AccFactoryRegistry {void add_factory(in AccFactory _factory) raises(FactoryAlreadyExists);AccFactory get_factory(in ProtocolId id) raises(NoSuchFactory);AccFactorySeq get_factories();};

Introduction Open Comm. Intf. Conclusions

Page 25: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::ConFactory

interface ConFactory {readonly attribute ProtocolId id;readonly attribute ProfileId tag;ConnectorSeq create_connectors(in IOR ref, in CORBA::PolicyList policies);boolean equivalent(in IOR ior1, in IOR ior2);unsigned long hash(in IOR ref, in unsigned long maximum);ConFactoryInfo get_info();};

Introduction Open Comm. Intf. Conclusions

Page 26: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::ConFactoryInfo

interface ConFactoryInfo {readonly attribute ProtocolId id;readonly attribute ProfileId tag;string describe();void add_connect_cb(in ConnectCB cb);void remove_connect_cb(in ConnectCB cb);};

Introduction Open Comm. Intf. Conclusions

Page 27: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::ConFactoryRegistry

interface ConFactoryRegistry {void add_factory(in ConFactory _factory) raises(FactoryAlreadyExists);ConFactory get_factory(in ProtocolId id) raises(NoSuchFactory);ConFactorySeq get_factories();};

Introduction Open Comm. Intf. Conclusions

Page 28: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

OCI::Current

interface Current : CORBA::Current {TransportInfo get_oci_transport_info();AcceptorInfo get_oci_acceptor_info();};

Introduction Open Comm. Intf. Conclusions

Page 29: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Conclusions

• The OCI allows to create a transport plug-in for different ORBs that enable application interoperation through that transport.

Introduction RT CORBA Dev. Conclusions

Page 30: ©SCILabs 2002 Open Communications Interface (OCI) Vienna Plenary Meeting ©SCILabs Ingenieros S.L. 2002  Miguel Segarra José

©SCILabs 2002

www.SCILabs.es

Thank you!

Introduction RT CORBA Dev. Conclusions