New York University

Computer Science Department

Courant Institute of Mathematical Sciences

 

CORBAservices and CORBAfacilities

 

Course Title: Application Servers                                                       Course Number: g22.3033-011

Instructor: Jean-Claude Franchitti                                                        Session: 5

 

 

CORBAservices

 

CORBAservices are widely available object services that virtually all CORBA objects will likely use. Formerly such services were known as Common Object Services and were initially specified in the Common Object Services Specification (or COSS as is still in frequent use). Those services that are currently in the CORBAservices list include:

 

·        Event Notification

·        Persistence

·        Lifecycles

·        Naming

·        Concurrency Control

·        Relationships

·        Transactions

·        Collections

·        Externalization

·        Time

·        Security

·        Query Service

·        Licensing

·        Trading

·        Change Management

·        Properties

 

Event Notification Service:

 

Event Channel Objects:

 

·        Supports Consumers and Suppliers of Events

·        Suppliers and Consumers may Push or Pull events

·        Supports "Typed Events"

·        Non-Typed Events use Any

·        Typed Events are described in IDL

 

Persistence Service:

 

Multiple Persistence Protocols:


 

 

 


Persistent Object Manager (POM)
Assigns persistent objects a PID
POM Identity--state maps back to underlying store (PDS)
Protocol Tag--naming the underlying store (PDS)

 

Three protocol forms are currently specified:

 

Direct Access PSM (DA)

·        IDL-like state definition language--DDL

·        Sun and HP (JOSS)

·        ODMG-93

·        OA specific consortium of PDS’s

·        C++ direct to OODBMS mapping

·        Sun, ODI, O2, Versant, Poet, ….

 

Dynamic Data Objects (DDO)

·        Datastore neutral

·        Structure containing object state

·        IBM, ???

 

Lifecycles Service:

 

Lifecycle Object

Copying (deep and shallow)

Moving

Removing

 

Factory-Finder Object (finds a)

 

Generic Factory

Creation

 

Naming Service:

 

Federated (hierarchic) naming services

 

Naming Context Objects

·        Bind

·        Unbind

·        Rebind

·        Destroy

·        Bind context

·        Bind new context

·        List

 

Name Binding Iterator Object

·        Next one

·        Next n

·        Destroy

 

Designed to work with:

·        NIS+

·        ISO X.500

·        DCE CDS

 

 

Concurrency Control Service:

 

Multiple Reader / Single Writer

Read

Write

Upgrade (upgrade from Read to Write without releasing lock)

Intended Read

Intended Write

 

Hierarchic Granularity Lock Management


 

 

 


Relationships service:

 

Relationships support

Type

Roles

Degree (required relations)

Cardinality (maximum relations)

Semantics (operations and attributes)

Navigation

 

Transaction service:

 

Transaction services

A variety of flat or nested transactions

One or Two phase Commit

Recoverable and non-recoverable transaction objects


 


Transaction Client--requests a transaction

 

Transaction Server--relays a transaction

 

Recoverable Server--commits a transaction

 

Transaction Context--identifies the associated transaction (more than one thread may be involved)

 

Resources--Transaction Service invokes the protocol on the registered resource (prepare, rollback, commit, commit one phase, forget.

 

Collection service:

 

Collection Management Services for such as:

Queues

Lists (or Arrays)

Trees (Graphs?)

Stacks

Sets (and / or Bags)

 

Externalization service:

 

Related to Stringifying Objrefs but would stream Object State.

 

Works on collections of objects.

Externalize (export stream)

Internalize (import stream)

 

Time service:

 

Time: Primarily for synchronizing clocks across multiple machines.

 

Some security ramifications for Trusted Time.

 

Query service:

 

Provides query services on Collections.

 

Currently up for revision so that it works with the Persistent Object Manager.

 

Property service:

 

A property is a:

·        PropertyName

·        PropertyValue

·        A PropertyValue is an Any

 

Properties may have mutually exclusive modes:

·        normal--no restriction: mutable and deletable

·        read-only--deletable but immutable

·        fixed normal--mutable and not deletable

·        fixed read-only--immutable and not deletable

 

Properties includes complete management:

·        iterators

·        factories

·        definitions (PropertyDefs)

·        factories for definitions

·        etc.

 

 

CORBA Facilities

 

CORBAfacilities are commonly occurring object frameworks that many CORBA applications will use. Formerly such Facilities were known as Common Facilities, a term still in fairly wide use. Some facilities that have wide use are known as Horizontal Facilities. Others are expected to see wide use by market, or industry, and these are referred to as Vertical Facilities. Those facilities that are currently in the CORBAfacilities domain include:

 

Horizontal Facilities

User Interface

Information Management

Systems Management

Task Management

 

Vertical Market Facilities

support various vertical market segments:

Healthcare Retailing CAD etc.

 

User Interface Horizontal Facility:

 

The User Interface CORBAfacilities appear as five separate frameworks:

Rendering Management

Compound Presentation Management

User Support Facilities (Help...)

Desktop Management

Scripting

 

These five frameworks are further categorized into three primary areas:

User Interface

·        Interface Style

·        Interface Enablers

·        rendering management

·        compound presentation facility

·        user support facility

·        Work Management System

·        define user's working environment and desktop

·        scripting (task and process automation)

 

Information Management Horizontal Facility:

 

The Information Management facilities appear as seven different frameworks:

Information Modeling (and schemas)

Information Storage and Retrieval

Compound Interchange (documents)

Data Interchange

Information Exchange

Data Encoding and Representation

Time Operations

 

These facilities may be viewed as belonging to categories in a layered architecture, with Information Modeling as its higher layer and Data Encoding and Representation as its lowest layer.

 

Time Operations are orthogonal to the facilities in the diagram.


 

 


Information Modeling defines rules for storing, accessing, and maintaining information.

 

Information Modeling should describe:

object interfaces

relationships between objects

data types and atomic types

 

Information Modeling should address:

Information structuring

Information access

Information integrity

 

Information Storage and Retrieval is a "higher level" facility for storage and retrieval for distributed applications. It would include storage and retrieval for such things as documents, text, graphics and other media. It should also provide for such things as:

initialization service

search service

retrieve service

access control service

termination service

 

Information Interchange assists the interchange of information between users and software components. It consists of several facilities including:

Compound interchange facility

Data interchange facility

Information exchange facility

 

The Compound Interchange facility supports such things as:

binding of data objects to a presentation manager

annotating data objects

converting data objects to different types

on-line and off-line data object exchange

linking storage facility

reference storage format

 

The Data Interchange supports services such as:

Enabling objects to inter-operate through exchange of data. It may entail:

provisions for multiple representation

methods for identifying allowable representations

publication/registration (publish/subscribe)

support for formatted data conversions

 

Data Encoding and Representation sets standards to support practical interworking and interchange of information. Information shared via:

shared storage media

networking protocols

direct programming interfaces

 

The Time Operations Facility provides a standard way to represent a Date/Time Group (DTG) as an instance of a timestamp, a duration of time, and a specific window of time between two timestamps.

 

Systems Management Horizontal Facility:

 

The Systems Management facilities appear in three frameworks:

Management Tools

Collection Management

Control

 

The System Management Facilities provides a set of system utility interfaces (system administration functions).

 

The System Management Facility presupposes four classes (or categories) of users, which includes:

 

computer system administrators

management

application developers

system service providers computer system resource planners

 

Candidates for potential common interfaces include:

 

Policy management

Quality of service management

Instrumentation

Data collection

Security

Collection management

Instance management

Scheduling management

Customization

Event management

 

Task Management Horizontal Facility:

 

The Task Management facilities consist of four frameworks:

Workflow

Agent

Rule Management

Automation

 

Task Management is specified to provide an infrastructure for applications and desktops to model and support user tasks.

 

It appears to include many of the currently "hot topics" in systems development, including:

Workflows facility

Agent facility

Rule Management facility

Automation facility

 

 

Vertical Market Facilities:

 

Various groups are working on Vertical Market Facilities. The list below is illustrative of some of the current groups:

Imagery

Internet (a.k.a. Information Superhighway)

Computer Integrated Manufacturing

Distributed Simulation

Oil and Gas Industry Exploitation [sic] and Production

Finance and Accounting

Application Development

Mapping

Telecommunications

Health Care Providers