Presentation is loading. Please wait.

Presentation is loading. Please wait.

Common and not domain specific separation of interface and implementation generic (do not depend on the client object) how to find services is a different.

Similar presentations

Presentation on theme: "Common and not domain specific separation of interface and implementation generic (do not depend on the client object) how to find services is a different."— Presentation transcript:

1 common and not domain specific separation of interface and implementation generic (do not depend on the client object) how to find services is a different story COS: Common Object Services

2 TECHNOLOGY CORBA 2 Object Request Broker Naming Event Persistent Object Life Cycle Concurrency Externalization Relationship Transaction Query Properties Licensing Security Time TraderCollections Messaging CORBAservices Custom Interfaces Proprietary Interfaces CORBAservices Specializations CORBAfacilities Specializations Application Interfaces User Interface Management Information Management System Management Task Management CORBAman CORBAtel CORBAdomains (Domain Interfaces) CORBAfacilities Others....... CORBA- financials CORBAmed Business Objects Distributed Document Components Common Management Adopted Langauge Mappings: C, C++, Smalltalk, Ada95 Interoperability Protocols: Internet (IIOP GIOP) -- DCE ESIOP CORBAdomains Specializations Internet Mobile Agents Electronic Commerce Spec Now Planned Key

3 Naming Service

4 White pages Binding: name-to-object association Naming context: set of bindings with unique names Resolving: name => object Contexts can be bound in contexts Naming Graph: directed graph where nodes are contexts Compound name: path in naming graph

5 A Naming Graph user home sys lib bin l2 l1 c2 c1 alden bill u1 u2 u3 parent

6 struct NameComponent { string id; string kind; }; typedef sequence Name; enum BindingType {nobject, ncontext}; struct Binding { Namebinding_name; BindingTypebinding_type; }; Some Data Types

7 BindingIterator boolean next_one(out Binding) boolean next_n(long, out BindingList) destroy() Naming Context bind(Name, Object) rebind(Name, Object) bind_context(Name, NamingContext) rebind_context(Name,NamingContext) Object resolve(Name) unbind(Name) NamingContext new_context() NamingContext bind_new_context(Name) destroy() list(long, out BindingList, out BindingIterator) Naming Service Interfaces

8 Interoperable Naming Service Extension of older Naming Service Resolves interoperability issues (e.g. defines equality between CosNaming::NameComponents) Defines an interoperable, stringified form of a CosNaming::Name Defines a URL format for names Allows multiple clients to access a common Initial Naming Context

9 Stringified Names =a.b/./c/.d id kind----------- a b<empty> c d

10 corbaname URL Scheme It allows URLs to denote entries in a Naming Service corbaname syntax = “corbaname:” [“#” ] examples –corbaname:// –corbaname:// –corbaname:///#a/b/c –corbaname:///

11 Naming Service Interfaces (cont’d) NamingContextExt StringName to_string(Name) Name to_name(StringName) URLString to_url(Address, StringName) Object resolve_str(StringName)

12 Obtaining Initial References resolving: Object obj = ORB::resolve_initial_references( “NameService” ); narrowing: NamingContext nc = NamingContextHelper.narrow(obj);

13 Configuring Initial Service Refs. ORB-specific configuration using ORBInitRef –format: -ORBInitRef = –example: -ORBInitRef NameService=IOR:00230021... using ORBDefaultInitRef –format: -ORBDefaultInitRef –example: -ORBDefaultInitRef corbaname://

14 Starting/Connecting to ORBacus Basic Services set CLASSPATH to OBNaming.jar starting the service: java com.ooc.CosNaming.Server -i - OAport 10000 > nameserv.ior connecting to the service: java MyClient -ORBservice NameService `cat nameserv.ior`

15 Trading Object Service

16 It is the CORBA Yellow Pages Advertises services Discovers services

17 A Trader and its Users Trader ExporterImporter Export Import Reply Import Request Service Invocation Service Reply

18 Trading Graph TT T T T To distribute the trading object service To contextualise the offer space

19 Service Description A service is described by a service type which includes: –an interface type –zero or more property type(s)

20 Property Strength (default) mandatoryreadonly mandatory, readonly Increasing Strength

21 IDL for properties Properties are name-value pairs: typedef Istring PropertyName; typedef any PropertyValue; struct Property { PropertyName name; PropertyValue value; };

22 Offering a Service TraderExporter service name object reference property values Offer identifier

23 Selecting a Service Potential Offers Considered Offers Matched Offers Ordered Offers Returned Offers service type constraints preferences search cardinality match cardinality return cardinality

24 Trader Types Query Simple Stand-alone Linked Proxy Full-Service

25 Query/Collection Service

26 Query Service It supports query operations on arbitrary CORBA objects (individually or in a collection) Query Languages: OQL, SQL Query

27 Query Evaluators Object Query Evaluator Client Object Query Evaluator Database

28 Queryable Collections Collections may form: the scope to which a query is applied the result of a query Query Evaluator Queryable Collection query Queryable Collection query

29 Iterator reset next more Collection add_element add_all_elements insert_element_at replace_element_at remove_element_at retrieve_element_at create_iterator CollectionFactory create The Collection Interfaces

30 Queryable Collection QueryEvaluator evaluate QueryManager create Collection Query prepare execute get_status get_result The Query Interfaces

31 Collection Service It supports the creation and manipulation of groups of objects Common collections: sequences, queues, stacks, sets, bags, etc.

32 Collection Properties Ordering of elements Access by key Element equality Uniqueness of entries

33 Query vs. Collection Service The query service only supports a minimalist collection service

34 LifeCycle Service

35 Creating objects Deleting objects Copying objects Moving objects

36 Creating an object HERE THERE Client location of new object entity contacted for creation finding that entity initial values

37 Moving/Copying an object HERE SOMEWHERE THERE ClientDocument location of copied/migrated object entity contacted for copying/migration finding that entity

38 Creating an object HERE THERE Client Factory create_object

39 Deleting an object HERE SOMEWHERE ClientDocument remove

40 Moving/Copying an object HERE SOMEWHERE THERE ClientDocument FactoryFinder move/ copy

41 LifeCycle Service Interfaces FactoryFinder Factoriesfind_factories(Key) GenericFactory booleansupports(Key) Objectcreate_object(Key, Criteria) LifeCycleObject LifeCycleObjectcopy(FactoryFinder, Criteria) voidmove(FactoryFinder, Criteria) voidremove()

42 Moving/Copying an object HERE SOMEWHERE THERE ClientDocument FactoryFinder Factory

43 Externalization Service

44 writing and reading an object’s state to/from an external medium (disk, memory, etc.) externalised form can: –exist for arbitrary amounts of time –be transported by means outside of the ORB –be internalised in a different ORB standard externalisation format related to the Relationship and LifeCycle Services

45 Externalization Service Interfaces Stream IdentifiableObject StreamableFactory Streamable FileStream Factory Stream Factory LifeCycleObject Relationship Role Node StreamIO Key external_form_id externalize_to_stream(StreamIO) internalize_from_stream(StreamIO, FactoryFinder) externalize(Streamable) Streamable internalize(FactoryFinder) begin_context() end_context() write_ ( ) write_object(Streamable) write_graph(Node) read_ () read_object(FactoryFinder, Streamable) read_graph(Node, FactoryFinder) create() create(string) create_uninitialized()

46 Persistent State Service

47 POS Components PDS POM PO Client PID Persistent Object Persistent Data Service Protocol Persistent Identifier Persistent Object Manager Datastore

48 Persistent Object Service (POS) POS is being deprecated by OMG because: –very little use or implementation –generally seen as too complex and imprecisely specified –poor match to current persistence needs –industry now has a better understanding of what is needed and the correct level of abstraction

49 PSS will be a replacement for POS –focuses on “a way for CORBA object implementations to maintain their own persistent state” –simple to use and implement –applicable to existing data storage technologies, but independent of them –efficient –related to: POA, concurrency, transaction, query, OBV, security Persistent State Service (PSS)

50 PSS focus ORB domain External interface Servants Internal interface Datastore domain

51 Relationship Service

52 Object Relationship Graphs folder person book library logo figure document containment reference check_out A role A relationship An entity attribute: due_date 3º 2º 0.. * 1.. 1

53 Key Features explicit representation of entities and relationships arbitrary degree type and cardinality constraints roles and relationships can be extended with attributes and operations high performance can relate immutable objects traversal without activation three levels of service: –base: simple relationships and roles –graph: traversal of graphs of related objects –specific: specialised relationships

54 Flexible multidirectional relationships –object references are unidirectional Third party manipulation –relationship and role objects can be exposed to a third party for manipulation Graph traversal Relationships and roles can have attributes and operations via IDL inheritance Advantages over Object Refs

55 Property Service

56 dynamically associates properties with an object properties are name-value pairs provides “batch” operations clients can access and control property modes and constraints implementations can restrict creation, deletion, modification of properties

57 Some Data Types typedef string PropertyName; struct Property { PropertyName property_name; any property_value; }; enum PropertyModeType { normal, read_only, fixed_normal, fixed_readonly, undefined };

58 Property Service Interfaces PropertySet Factory PropertySetDef Factory PropertySetDef Properties Iterator PropertySet Property PropertyDef PropertyMode creates defining, deleting, enumerating, existence-checking PropertyNames Iterator retrieving constraints, getting and setting property modes

59 Event Service

60 decouples the communication between objects event: a piece of information that is contributed by an event source two event object roles (i.e. suppliers and consumers) suppliers and consumers support standard IDL interfaces two communication initiation approaches (i.e. push and pull) two communication types (i.e. generic and typed)

61 SupplierConsumer Event Object Roles Suppliers –produce event data Consumers –process/use event data

62 SupplierConsumer Push Pull “What’s new?” “News flash” Communication Initiation Approaches Push model –supplier takes initiative Pull model –consumer takes initiative

63 Supplier Consumer Supplier Event Channel Push/Pull Event Channel an intervening object which accepts events and distributes them to other objects (i.e. it is both a supplier and a consumer) it allows multiple suppliers and consumers to communicate asynchronously

64 Communication Types generic –communication via generic push or pull operations; event data packaged in a single parameter typed –communication via operations defined in IDL; event data passed by defined parameters

65 Transaction Service

66 What is a Transaction? A unit of work that is: Atomic Consistent Isolated Durable

67 Why do we need a Transaction Service? It allows transactions to include: Multiple, separately defined ACID objects Objects and resources from the non-object world Note: The Transaction Service supports existing IDL Interfaces

68 Transaction Models The transaction service supports: Flat transactions Nested transactions (optional)

69 Transaction Service Basic Elements Transaction Service Distributed Client/Server Application Transactional Client Recoverable ServerTransactional Server Resource Transactional Object Recoverable Object transaction context

70 Rest of Services

71 Concurrency Service Mediates simultaneous access to resources –makes actions atomic Transactional or non-transactional –if former: uses Transaction Service Serializes transactional and non-transactional clients Coordination of access to resources through locks

72 Concurrency Service (cont’d) lock modes: –read, write, upgrade locks –intention locks (variable granularity) multiple possession of locks two-phase locking nested transactions

73 Time Service obtaining time – UTC representation, 10 -7 seconds unit, AD 1582 - 30,000 range –error estimates ordering time time intervals no support for time zones, dates two main interfaces: –TimeService, TimerEventService

74 Licensing Service mechanism for producers to control the use of their intellectual property may be useful in non-profit organizations policies implemented in terms of: –time (start/duration and expiration) –value mapping (units, concurrent use, metering) –consumers (assignment, reservation)

75 Security Service confidentiality integrity accountability availability

76 Security Service (cont’d) identification, authentication authorization, access control auditing security of communication non-repudiation administration

77 Rounding up Common Object Services –fundamental and basic –facilitate using and implementing objects –interfaces, not implementations –rarely available ‘out of the box’ –subject to changes

78 Information CORBA Services documentation: – IDL: –

Download ppt "Common and not domain specific separation of interface and implementation generic (do not depend on the client object) how to find services is a different."

Similar presentations

Ads by Google