o c i w e b . c o m 1113
Index
Symbols
_add_ref() operation 283, 325_id() operation 114, 116–117, 119, 166, 275, 346, 741–742, 1015_refcount_value() operation 283_remove_ref() operation 283, 325_set_policy_overrides() operation 179_tao_add_to_IOR_table() operation 1006_unchecked_narrow() operation 299–300, 302, 347_validate_connection() operation 194, 209
A
abstract factory pattern 15abstract value types 288acceptor 566acceptor pattern 15access identity 929
1114 o c i w e b . c o m
A
ACE 634, 660service configurator 20, 28, 538–550, 552–561, 567, 617, 624, 641, 663, 672, 687,
690, 692_make_resources() operation 542ACE_Dynamic_Service class 560ACE_FACTORY_DECLARE macro 556ACE_FACTORY_DEFINE macro 557ACE_Service_Config class
close() operation 547open() operation 545–546, 567, 576–577, 617–618process_directive() operation 547reconfigure() operation 547, 561
ACE_Service_Object class 542, 549–550, 552, 554ACE_STATIC_SVC_DECLARE macro 556ACE_STATIC_SVC_DECLARE_EXPORT macro 556ACE_STATIC_SVC_DEFINE macro 557ACE_STATIC_SVC_REQUIRE macro 557ACE_SVC_NAME macro 555, 557Client_Strategy_Factory class 541commanding 547configuring clients and servers 537control options 543DELETE_OBJ macro 555DELETE_THIS macro 555destructor 553dynamic directive 541, 553, 557example
dynamic service 557static service 558
factories 538finalizer 553fini() operation 554–555framework 543helper macros 556info() operation 559init() operation 553instance() operation 560loading service objects 544obtaining services 560options 541ORB initialization options 106, 108, 543–544, 563–564, 571, 914, 1006
ORBServiceConfigLoggerKey 543
o c i w e b . c o m 1115
A
ORBSvcConf 543ORBSvcConfDirective 543
remove directive 547, 553Resource_Factory class 540, 542, 551resume directive 547–548, 559Server_Strategy_Factory class 541service finalization 553service initialization 553service manager 560service objects 549, 552service state 559static directive 540, 553, 555, 558, 663, 672suspend directive 547–548, 559
ACE classesACE_Acceptor 370–371ACE_Addr 384, 422, 474, 810ACE_Data_Blocks 627ACE_Dynamic_Service 434, 560ACE_Event_Handler 406, 409, 414–415, 443, 453, 462, 528–529, 552–553ACE_MEM_Acceptor 364ACE_MEM_Connector 365ACE_Message_Blocks 627–628, 646ACE_QtReactor 636ACE_Reactor 366–368, 376–377, 379, 412–413, 544, 553, 625–626ACE_Select_Reactor 519, 653ACE_Service_Config 433–434, 544–547, 561, 567, 576–577, 612, 617–618
close() operation 547open() operation 545–546, 567, 576–577, 617–618reconfigure() operation 547, 561
ACE_Service_Config classprocess_directive() operation 547
ACE_Service_Object 406, 428–430, 435, 542, 549–550, 552–555, 557–558, 625,664–665, 688, 750, 816
ACE_Service_Repository 430ACE_Shared_Object 552–553ACE_Singleton 296ACE_SOCK_Acceptor 364ACE_SOCK_Connector 365ACE_Static_Svc_Descriptor 429–430, 432–433, 554–555, 557ACE_Strategy_Acceptor 364, 367–368, 370–371, 378, 392ACE_Strategy_Connector 365, 390–393, 395, 398–399ACE_Svc_Handler 406–408, 448
1116 o c i w e b . c o m
A
ACE_Task 406, 408–409, 411–412, 508, 724–725ACE_TP_Reactor 519ACE_UNIX_Addr 368, 378, 380, 382–383, 385, 401, 411, 414, 416ACE_XtReactor 637–638
ACE librariesACEXML 68ACEXML_Parser 68
ACE macros__ACE_INLINE__ 95ACE_ANY_EXCEPTION 125, 127, 134, 137–140ACE_CATCH 124–131, 134–140, 146ACE_CATCHALL 125, 127, 129, 134ACE_CATCHANY 125, 127, 129, 134, 137–140ACE_CHECK 125, 127–129, 132–140, 406ACE_CHECK_RETURN 125, 127, 132–137, 406ACE_COMPILE_TIMEPROBES 25ACE_DECLARE_NEW_CORBA_ENV 123, 133, 135–140, 638ACE_DECLARE_NEW_ENV 123ACE_DEFAULT_LOGGER_KEY 545, 612ACE_DEFAULT_MAX_SOCKET_BUFSIZ 610, 615ACE_ENDTRY 124, 127, 129–131, 134–140, 637–638ACE_ENV_ARG_DECL 103–104, 123, 388–389, 419–420, 424ACE_ENV_ARG_DECL_NOT_USED 123ACE_ENV_ARG_DECL_WITH_DEFAULTS 123ACE_ENV_ARG_PARAMETER 124, 126–128, 135, 137–140, 456ACE_ENV_BKWD_COMPAT 21, 122ACE_ENV_SINGLE_ARG_DECL 123–124, 129–133, 269, 389–390, 405–406,
419–420, 427ACE_ENV_SINGLE_ARG_DECL_NOT_USED 124, 269ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS 124ACE_ENV_SINGLE_ARG_PARAMETER 124, 126, 128, 133–140, 454ACE_FACTORY_DECLARE 429, 556–558, 634ACE_FACTORY_DEFINE 429, 557, 634ACE_HAS_EXCEPTIONS 21, 103, 122ACE_HAS_FL 25ACE_HAS_NO_THROW_SPEC 125ACE_HAS_QT 26ACE_HAS_TK 26ACE_HAS_XML_SVC_CONF 549ACE_HAS_XT 25–26ACE_IPC_SAP 448, 474ACE_LACKS_RTTI 22
o c i w e b . c o m 1117
A
ACE_MAX_DGRAM_SIZE 343ACE_NDEBUG 22ACE_NO_INLINE 22ACE_PRINT_EXCEPTION 125–127, 129–131, 134–140ACE_RETHROW 124, 131ACE_STATIC_SVC_DECLARE 429, 432, 556, 558, 634ACE_STATIC_SVC_DECLARE_EXPORT 432, 556, 558, 634ACE_STATIC_SVC_DEFINE 557, 634ACE_STATIC_SVC_REQUIRE 432, 557, 559, 634ACE_SVC_NAME 555, 557ACE_THROW 34, 101, 103–104, 124–125, 129, 131–133, 250–254, 256–259,
264–265, 268–271, 274–276, 286, 307–310, 323–324, 424–427, 633ACE_THROW_RETURN 124, 132–133ACE_THROW_SPEC 34, 101, 103–104, 125, 250–254, 256–259, 264–265, 268–
271, 274–276, 286, 307–310, 323–324, 633ACE_TRY 19, 21, 123–141, 146, 304, 309, 633, 637–638, 779–780ACE_TRY_CHECK 125–126, 128–129, 133–140, 637–638ACE_TRY_CHECK_EX 125, 135–137, 140ACE_TRY_ENV 19, 21, 123–125, 127–128, 132, 304, 309, 633, 779–780ACE_TRY_EX 123–125, 130, 135–136, 140ACE_TRY_NEW_ENV 123, 126–127ACE_TRY_THROW 124, 129–131, 140ACE_TRY_THROW_EX 124, 130–131, 140DELETE_OBJ 429, 555, 559, 634DELETE_THIS 429, 555, 559, 634
ACE_ROOT environment variable 32, 45, 94, 98, 106activate() operation 35, 239, 260, 411–412, 666, 709, 725–727, 873, 896, 999,1015activate_object_with_id() operation 166, 346, 1015activate_object_with_id_and_priority() operation 201, 209, 237activate_object_with_priority() operation 200–201, 237activation 166activation mode
NORMAL 1010PER_CLIENT 1010
activation-per-AMI-call strategy 166active demultiplexing 10, 15, 524, 573–574, 667–669, 676, 678, 681, 684, 686active object map 166, 318, 668, 671, 675, 685
parameters 671active object pattern 15adapter pattern 15ADAPTIVE Communication Environment (ACE)
1118 o c i w e b . c o m
A
See ACEadd_client_request_interceptor() operation 254add_constraints() operation 883add_filter() operation 883add_ior_component() operation 270add_ior_interceptor() operation 269–270add_server_request_interceptor() operation 259Advanced CORBA Programming Using TAO course xxxivAdvanced CORBA Programming with C++ book xxv, xxxi, xxxiv, 7, 31,112–113, 153, 180, 292, 356, 626, 705, 736, 849, 1004advanced resource factory 624, 639–640
Advanced_Resource_Factory class 336, 339, 341options 655
alert protocol 956AMH
See asynchronous method handling (AMH)AMI
See asynchronous method invocation (AMI)ami build flag 26ANY_EVENT type 865, 871asymmetric encryption 948asynchronous invocations 215asynchronous method handling (AMH) 145, 480asynchronous method invocation (AMI) 149, 152, 292
activation-per-AMI-call strategy 166associating replies with requests 165callback 150–151, 169, 171drawbacks 152example 169exception replies 158ExceptionHolder class 152, 155–156, 158IDL compiler 152local interfaces 316processing sendc_ operation 167reply handler 156, 159
exception 157, 164non-exception 157, 161
request delivery 176sendc_ prefix 151, 153, 167servant-per-AMI-call strategy 166server-differentiated-reply strategy 166synchronous IDL operation 156
o c i w e b . c o m 1119
B
audio/video streaming service 703, 1039ORB service libraries 703
auditing 931identity 929
AV streamsSee audio/video streaming service
B
BAD_INV_ORDER exception 144–145, 484–485, 528BAD_PARAM exception 144, 271basic filter builder
real-time event service (RTES) 788basic object adapter (BOA) 10bi-directional GIOP
BidirectionalPolicyValue 189See also general inter-ORB protocol (GIOP), bi-directional
bindings 712, 727–729, 943–944, 949, 1003–1004, 1007, 1073explicit 10, 195, 209indirect 1003, 1005
bit-mask filters 790real-time event service 790
blocking strategy 646BOA
See basic object adapter (BOA)Bolton, Fintan xxv, xxxiBorland 19, 37–39, 41, 43, 45, 52, 57, 63bridge pattern 15BUFFER_MESSAGE_COUNT 186–187BUFFER_TIMEOUT 186–187buffering
oneways 186requests 195
BufferingConstraint policy 186–188build flags 20, 27–28, 295, 301, 303
corba_messaging 20, 27, 69, 188, 229fakesvcconf 20, 28fast 23fl_reactor 20, 25, 67, 640include_env 19, 21, 122
1120 o c i w e b . c o m
B
inline 19, 22, 54–56, 58, 71–72, 75–76, 85–86, 95, 99interceptors 20, 28interface_repo 20, 27minimum_corba 20, 25, 27–28, 67, 69, 190–191, 229, 244optimize xx, 19, 22, 85purify 20, 23, 85qt_reactor 20, 26quantify 20, 23–24, 85, 929rt_corba 20, 27, 229rtti 19, 22, 85tk_reactor 20, 26, 640, 660xt_reactor 20, 25
building 17–28$ACE_ROOT/ace/config.h 21, 96, 122, 303, 549, 636, 638$ACE_ROOT/bin/generate_export_file.pl 106, 556$ACE_ROOT/bin/svcconf-convert.pl 549$ACE_ROOT/include/makeinclude/macros.GNU 21, 83, 87, 303, 966$ACE_ROOT/include/makeinclude/macros.GNU file 21, 83, 87, 303$ACE_ROOT/include/makeinclude/platform_macros.GNU 21, 83, 303$ACE_ROOT/include/makeinclude/rules.bin.GNU 88$ACE_ROOT/include/makeinclude/rules.common.GNU 87$ACE_ROOT/include/makeinclude/rules.lib.GNU 88$ACE_ROOT/include/makeinclude/rules.local.GNU 88$ACE_ROOT/include/makeinclude/rules.nested.GNU 88$ACE_ROOT/include/makeinclude/rules.nolocal.GNU 88$ACE_ROOT/include/makeinclude/rules.nonested.GNU 89$ACE_ROOT/include/makeinclude/wrapper_macros.GNU 87$TAO_ROOT/rules.tao.GNU 89$TAO_ROOT/taoconfig.mk 89ACE and TAO 17, 1029
Borland C++ 1030, 1049–1054configuring source code 1051setting up environment 1051verify build 1053
from source code distribution 1029UNIX 83, 1029, 1031–1040Visual C++ 1029, 1041
build libraries 1045configure source code 1043custom version 1041set up your environment 1043verify build 1045
o c i w e b . c o m 1121
C
cross compilationlibraries and executables 1060
LynxOS 1065, 1068VxWorks 1060
MakeProjectCreator (MPC) 18, 31, 44, 47, 68, 76messaging 20, 27security libraries 965
UNIX variants 966Windows 967
template repository 86templates 86
Buschmann, Frank 15, 351, 505, 515, 519byte-order flag 335, 651
C
C++ language mapping 12, 1079CORBA compliance 1079exceptions 1080modules 1080
C++ Network Programming bookVolume 1 (C++NPv1) 15, 352, 473, 476Volume 2 (C++NPv2) 15, 352, 498, 510, 519
cache_maximum() operation 630caching
cache_maximum() operation 630management 629max_muxed_connections() operation 630strategies 629
catior utility 271CCM
See Object Management Group (OMG) specificationsCDR
See common data representation (CDR)CEC_Factory class 749, 758–761, 763–764, 766–771CECConsumerControl option 754, 758–759CECConsumerControlPeriod option 754, 759CECDispatching option 749, 752, 756, 760–761CECDispatchingThreads option 749, 752, 760–761CECProxyConsumerCollection option 755, 762–763
1122 o c i w e b . c o m
C
CECProxyConsumerLock option 753, 764CECProxySupplierCollection option 755, 765–766CECProxySupplierLock option 753, 767CECReactivePullingPeriod option 757, 768CECSupplierControl option 754, 769–770CECSupplierControlPeriod option 754, 770CECUseORBId option 757, 771certificates 949, 958
authority 950, 959commands summary 964creating requests 960issuing 962multiple authorities 970self-signed 950signing requests 962
ciphertext 947client interceptors 244–245, 251, 263client propogated priority model 232client strategy factory 513–514, 520–524, 539, 541, 687–698, 973
cached connection strategy 643Client_Strategy_Factory class 501, 513–514, 516, 521, 524, 541, 687, 694, 696–
698, 980ORBServiceConfigLoggerKey option 543, 567, 612
connect strategy 692, 696create_ft_service_retention_id_lock() operation 688interface definition 688multiplexing strategies 689options 693
ORBClientConnectionHandler 373, 452, 500–501, 513–514, 516, 520–521,523–524, 691, 694
ORBConnectStrategy 513, 524, 693, 696, 973, 975, 978, 980ORBProfileLock 501, 689, 697ORBTransportMuxStrategy 504, 513, 521, 690, 698
profile locking 688, 697TAO_Wait_Strategy class 690, 692transport multiplexing 689wait strategy 690, 694
Client_Strategy_Factory class 513–524ClientInitializer class 253ClientInterceptor class 250ClientRequestInfo interface 247
get_effective_component() operation 269
o c i w e b . c o m 1123
C
code set 635identifiers and translators 635
codec (coder/decoder) 262codec_factory() operation 262, 266CodecFactory reference 262–263
codepointsdiffserv 221
collocation 9event channel 744notification channels 896objects 568, 574, 746optimization 524–525
COMM_FAILURE exception 113, 117, 126, 142, 1011common data representation (CDR) 328–329, 539
conversion allocators 626common secure interoperability (CSI) packages 933–934, 937–938
CSI 0 933, 937CSI 1 933, 937CSI 2 933, 937
complianceSee CORBA compliance
concurrency xxxiv, 4, 11, 14, 537, 663, 665behavior 677, 682server 665strategy 666
concurrency control service 4, 703, 1039ORB service libraries 703
concurrency models 342, 348, 374, 397, 496–499, 501–507, 510–517, 566reactive 374, 397, 497–499, 501, 506thread-per-connection 342, 348, 374, 397, 412–413, 497, 501–504, 667, 683, 748thread-pool 497, 505–510, 520, 525wait-on-leader-follower 497, 510–513, 515–517, 521, 523–524, 694–695wait-on-reactor 497, 514–515wait-on-read 510–514
concurrency-strategy template 373, 396configuration xxvi, xxix, 5, 537
event channel servantsreal-time event service (RTES) 799
source codeUNIX 1033See also building 1033
conjunction groups 791
1124 o c i w e b . c o m
C
connect strategies 523–524, 692blocking 524connect-strategy template 396leader-follower 523reactive 523
connect_push_supplier() operation 739, 802connect_sequence_push_consumer() operation 894connect_structured_push_consumer() operation 872connect_structured_push_supplier() operation 866connecting and disconnecting
notification service 873–874real-time event service (RTES) 782
connection timeout 182connection_caching_strategy_type() operation 630connector pattern 15consumer and supplier control options 753, 820
CECConsumerControl 754CECConsumerControlPeriod 754CECSupplierControl 754CECSupplierControlPeriod 754ECConsumerControl 821, 824ECConsumerControlPeriod 821, 825ECObserver 829ECSupplierControl 821ECSupplierControlPeriod 821
consumer proxies 774ConsumerAdmin interface 844, 851, 871, 877, 884, 893–894context_data field 252context_id field 252CORBA 1004
architecture 7, 196compliance xxv, 7, 11, 14, 1073, 1075–1084
C++ language mapping 1079core 1075–1076DII COE 1083naming service 1080notification service 1081real-time CORBA 1078security 1082value types 289
CORBA::Any 262, 737CORBA::Boolean 276
o c i w e b . c o m 1125
C
CORBA::OctetSeq 266core 1075–1076
specification 150environment parameter 93
exceptions 21, 112, 120, 122–125, 127, 146fault tolerance xx–xxigateway 806interoperability 1075interworking 1075minimum 25object 9, 143, 573, 616, 705, 746real-time 69, 73, 144–145, 193–215, 219–242, 348, 416, 497, 503, 507
See also real-time CORBAsecurity
module 13OpenSSL 1082
services 12specifications
See Object Management Group (OMG) specificationssystem exceptions 113
CORBA Component Model (CCM) specificationSee Object Management Group (OMG) specifications
CORBA Programming with C++ course xxv, xxxi, xxxiv, 7, 31, 112–113,153, 180, 292, 356, 626CORBA Programming with Java course xxxivcorba_messaging build flag 20, 27, 69, 188, 229corbaloc object URL 706, 714–717, 721, 728
example 716rir protocol 716
corbaname object URL 634, 647, 717–720, 723, 727, 1080example 718
create 183create_cached_connection_lock() operation 630create_channel() operation 864, 897create_filter() operation 882create_ft_service_retention_id_lock() operation 688create_lf_strategy() operation 626create_mutex() operation 205create_POA() operation 179, 197, 200, 206create_policy() operation 177–178, 181, 183, 185, 188, 190, 978–979, 981create_priority_banded_connection_policy() operation 209create_proxy() operation 292, 296–297, 299–300, 302, 304–305, 309
1126 o c i w e b . c o m
D
create_reference_with_id_and_priority() operation 201, 237create_reference_with_priority() operation 201, 237creating
event channel 744servants 799
creation-strategy template 372, 395cross compilation
See buildingCSI
See common secure interoperability (CSI) packagesCSI ECMA protocol 934, 938Current interface 166, 203, 234, 273, 317, 982, 985, 988, 1082custom factory 651custom interoperable object reference (IOR)
parsers 632customer support
See supportcustomizing
access to services 702ACE and TAO builds
See buildingEvent structure 786filters 795
D
DARPASee Defense Advanced Research Projects Agency (DARPA)
datagram inter-ORB protocol (DIOP) 11, 330, 341–343, 436, 439, 453, 588,593, 651
DIOP_Factory 651DIOP_Factory class 342endpoints 593
DCE common inter-ORB protocol (DCE-CIOP) 933, 937, 1082deadline timeouts 797–798debugging
ACE_NDEBUG macro 22debug build flag 22
default proxy factory 297, 299default_filter_factory() operation 882
o c i w e b . c o m 1127
D
Defense Advanced Research Projects Agency (DARPA) 3DELETE_OBJ macro 429DELETE_THIS macro 429demarshaling 105, 142, 166, 524, 573–574demultiplexing 663
active 10, 15, 668–669dynamic hash 668–669linear search 668strategies 667
Design Patterns:Elements of Reusable Object-Oriented Softwarebook 15, 352destroy() operation 36, 116–117, 321destroy_mutex() operation 205destroying
notification channel 875differentiated services 221
codepoints (DSCP) 221diffserv field (DF) 221
DIISee dynamic invocation interface (DII)
DII COECORBA compliance 1083
DIIPollable interface 317–318DIOP
See datagram inter-ORB protocol (DIOP)DIOP_Factory class 342direct mapping 217–218directives 540, 547
dynamic 331–332, 501, 541–542, 553, 557components 542
resume 548, 559static 501, 540–541, 553, 561, 624, 663, 687, 749, 815suspend 548, 559
DiscardPolicy property 854disconnect_push_consumer() operation 739–740, 779, 802disconnect_sequence_push_consumer() operation 892disconnect_structured_push_consumer() operation 867–869disconnect_structured_push_supplier() operation 860–861, 873disconnecting
notification serviceconsumers 873suppliers 874
1128 o c i w e b . c o m
E
disjunction group 791dispatching
events 752module 775
real-time event service (RTES) 775options
CECDispatching 749, 752, 756, 760–761CECDispatchingThreads 749, 752, 760–761DispatchingThreads 901ECDispatching 815, 818, 823, 826–827ECDispatchingThreads 818, 826–827MTDispatching 901, 909
strategiesevent channel 752multithreaded 752, 818options
CECDispatching 752CECDispatchingThreads 752
priority 818reactive 752, 818
DispatchingThreads option 901distribution model
pull 736push 736
DNSSee domain name servers (DNS)
DOC Group xix–xx, xxiv, xxxi–xxxii, 3, 6, 1083domain name servers (DNS) 333, 580, 586, 598–599dynamic 550
hash 105, 669, 675, 678, 680–681, 684, 686service example 557threads 205
dynamic invocation interface (DII) 9, 12, 150, 316DynamicAny module 317
E
EC_Factory interface 815, 818ECDispatching option 815, 818, 823, 826–827ECDispatchingThreads option 818, 826–827
o c i w e b . c o m 1129
E
ECFiltering option 788, 794, 815, 819, 828ECObserver option 803, 819, 829ECProxyConsumerLock option 820, 830ECProxySupplierLock option 820, 835ECScheduling option 819, 828, 836ECSupplierFiltering option 819, 839ECTimeout option 818, 840ECUseORBId option 819, 841em3 build type 43, 63endpoint-specific options 593end-to-end priority propagation 14, 195, 208environment
LynxOS 1065cross compilation 1066
VxWorks 1057environment specific inter-ORB protocol (ESIOP) 327–328
DCE 327environment variables 32, 1032
ACE_ROOT 32, 45, 94, 98, 106, 1032ImplRepoServiceIOR 1006ImplRepoServicePort 596InterfaceRepoServicePort 914LD_LIBRARY_PATH 32MAKEFLAGS 83–84, 122, 786NameServiceIOR 707, 715NameServicePort 605, 707, 713PATH 23, 550–551, 580, 592, 598–599, 608, 617, 632, 676TAO_IDL_PREPROCESSOR 52, 96, 98
See also IDL compilerTAO_IDL_PREPROCESSOR_ARGS 98
See also IDL compilerTAO_ORB_DEBUG 578TAO_ORBSVCS 750, 816, 966–967, 1039TAO_ROOT 32, 45, 94, 96, 98, 967, 1032, 1046, 1053TradingServicePort 619
error handling 111–147ACE exception handling macros 122ACE_TRY/ACE_CATCH blocks
multiple 134nested 136
errno 145error number codes 145
1130 o c i w e b . c o m
E
guidelines 137simulating exceptions 132TAO error number codes 145throwing exceptions with ACE_THROW 129without exception handling 120
ESIOPSee environment specific inter-ORB protocol (ESIOP)
establish_components() operation 268ETCL
See extended trader constraint language (ETCL)etherealize 575event channel 776
attributes 801consumer_poa 746consumer_reconnect 746–747disconnect_callbacks 746–747supplier_poa 746supplier_reconnect 746–747
CEC_Factory 749, 758–761, 763–764, 766–771collocating 744communication 737consumer and supplier control options 753consumer proxy 739creation and destruction 737, 744disconnecting supplier 739example 800implementation 737locating 744locking options 752managing own servants 744object 737options
CECConsumerControl 754, 758–759CECConsumerControlPeriod 754, 759CECDispatching 749, 752, 756, 760–761CECDispatchingThreads 749, 752, 760–761CECProxyConsumerCollection 755, 762–763CECProxyConsumerLock 753, 764CECProxySupplierCollection 755, 765–766CECProxySupplierLock 753, 767CECReactivePullingPeriod 757, 768CECSupplierControl 754, 769–770
o c i w e b . c o m 1131
E
CECSupplierControlPeriod 754, 770CECUseORBId 757, 771ECDispatching 815, 818, 823, 826–827ECDispatchingThreads 818, 826–827ECFiltering 788, 794, 815, 819, 828ECObserver 803, 819, 829ECProxyConsumerLock 820, 830ECProxySupplierLock 820, 835ECScheduling 819, 828, 836ECSupplierFiltering 819, 839ECTimeout 818, 840ECUseORBId 819, 841
proxy 738pull model support 747resource factory 749–750, 815
CEC_Factory 749, 758–761, 763–764, 766–771EC_Factory 815member functions 750options 757, 823
setting attributes 746, 801supplier proxy 743typed 737
event correlationreal-time event service (RTES) 775
event filtering 735, 848adding to consumer 883adding to supplier 881notification service 848
event service xx, xxix, xxxiv, 13, 735–737, 747, 750–771, 774, 778, 846, 852compatability with notification service 897connecting to the channel 742CosEvent_Service 737creating an event channel 737creating servants 744decoupled supplier consumer 735dispatching 752event filtering 735Event_Service 776example 737, 744ORB service libraries 703overview 736proxy colleciton options 754
1132 o c i w e b . c o m
E
pull model support 747push
consumer interface 741distribution model 736supplier interface 740
pushing events 738red-black tree 755servant-related functions 751specification 737starting CosEvent_Service server 737structured event types 735supplier 735
event structurereal-time event service 784
event suppliernotification service 861
Event_Service 776, 814command line options 814
EventBatch data type 848EventChannel interface 776–777, 800, 803, 807, 814, 844, 850, 853, 855, 864,870, 885, 888, 893, 897EventHeader structure
members 785real-time event service 785
EventSourceID 778, 785EventType 778, 785example xxviii, 32, 169–176, 239, 249
asynchronous method invocation (AMI) 169building 39collocated notification channel example 896corbaloc object URL 716corbaname object URL 718event channel
local 800event service collocation example 744getting started 31IDL compiler 95implementation repository 1013interface repository 916local interface 322locality constrained 322logging 305
o c i w e b . c o m 1133
E
messaging 169multiple protocol endpoint 595multithreading 499, 504, 507naming sevice 708notification service 859pluggable protocols 353, 359portable interceptors 269
client-side recursion 274simple authentication interceptor 249using the codec 262
real-time CORBA 199, 236, 239real-time event service (RTES) 776
local event channel 800running 39security 973send_message() operation 36servant manager 318ServantLocator class 318service configurator 558setting up your environment 32smart proxies 306–313tao_imr program 1022TAO_Naming classes 724value type 282
ExceptionHolder class 152, 155–156, 158exceptions 19, 21, 112–129, 132–134, 137–142, 145–146, 853, 1033, 1035, 1057–1058, 1067, 1077, 1080
alternatives 120BAD_INV_ORDER 144–145, 484–485, 528BAD_PARAM 144, 271BAD_QOS 858catching 114, 117COMM_FAILURE 113, 117, 126, 142, 1011completed() operation 115CORBA 113
COMM_FAILURE 1011OBJECT_NOT_EXIST 1014–1015TRANSIENT 1010
example 126, 137–139INV_OBJREF 113, 143location code 141MARSHAL 278, 316, 455, 572
1134 o c i w e b . c o m
F
minor codes 141minor() operation 115, 141multiple blocks 134nested blocks 136NO_IMPLEMENT 317, 986–987OBJECT_NOT_EXIST 113, 320, 484, 1014–1015returning values 132side effects 128, 139simulating 122system 113thread-related operations 484throwing 129TIMEOUT 143TRANSIENT 113, 117, 142–143, 609, 669–671, 680, 684, 975, 1004, 1010–1011UNKNOWN 142user 118
explicit binding 10, 195, 209extended trader constraint language (ETCL) 703, 848–849, 882, 884
F
factory 745Advanced_Resource_Factory class 639, 656–657, 659, 661client strategy 513–514, 520–524, 539, 541, 687–693, 973initialization 665resource 623–632, 635–643, 649–650, 652, 654–655, 657–661Resource_Factory class 332, 353, 513, 523server strategy 144, 412, 499, 502–503, 539, 541, 566, 663–666, 668, 670–672, 683Server_Strategy_Factory class 499, 501, 503–504, 541, 663, 673–686
fakesvcconf build flag 20, 28fast build flag 23fault-tolerant CORBA xx–xxifeature control
real-time event service 818feature_file option 44, 68federating event channels
IP multicast 812mechanism 813real-time event service 804selection mechanism 813
o c i w e b . c o m 1135
G
UDP 808FIFO
See first in first out (FIFO) strategyfiltering
by event type 789by source ID 789construction 795correlation 787disjunction groups 791
example 791real-time event service 790
fini() operation 435, 554–555first in first out (FIFO) strategy 629fl_reactor build flag 20, 25, 67, 640flushing strategies 522–523
blocking 522leader-follower 522reactive 522
footprint 539, 573, 639, 678, 839, 1031, 1037minimizing library size 1037–1038reduction xx, 5, 15, 120, 166, 316, 513, 539, 573, 639, 678, 698, 839
minimum_corba build flag 20, 25, 27–28, 67, 69, 190–191, 229, 244forward declaration 913Free Software Foundation’s GNU Public License (GPL) xxxvii, xxxixfrequently asked questions (FAQ) xxxi
G
Gamma, Erich 15, 352general inter-ORB protocol (GIOP) 284, 327–329, 332, 335, 338, 343–344
bi-directional 14, 149, 189–191BidirectionalPolicyValue 189BiDirPolicy 191security 191
lite 329version 1.2 189
generic event communication 737generic security service (GSS) procotol 938get_client_policy() operation 317get_domain_managers() operation 317
1136 o c i w e b . c o m
G
get_effective_component() operation 269, 271get_event_channel() operation 864, 870get_interface() operation 317get_policy() operation 317, 936get_policy_overrides() operation 317get_proxy() operation 297–298get_qos() operation 857get_slot() operation 273getting started 31–40ghs build type 44GNU Make xxvi, 18–19, 21–28, 37–39, 41, 43, 83–84, 86–89, 122, 229, 303
build flags 83ami xxix, 26corba_messaging 20, 27, 69, 188, 229debug 22, 85exceptions 21, 122fakesvcconf 20, 28fast 23, 85fl_reactor 20, 25, 67, 640include_env 19, 21, 122inline 19, 22, 54–56, 58, 71–72, 75–76, 85–86, 95, 99interceptors xxix, 5, 20, 28, 315, 575, 933, 936interface_repo 20, 27minimum_corba 25, 27optimize xx, 19, 22, 85probe 20, 25profile 25purify 20, 23, 85qt_reactor 20, 26quantify 20, 23–24, 85, 929repo 20, 22, 67, 85–87rt_corba 20, 27, 229rtti 19, 22, 85shared_libs 20, 24, 85shared_libs_only 24, 85smart_proxies 20, 27, 295, 301, 303static_libs 20, 24, 85–86static_libs_only 20, 24, 85–86TAO_IDLFLAGS 96threads 23tk_reactor 20, 26, 640, 660xt_reactor 20, 25
o c i w e b . c o m 1137
H
compiling 86gprof program 25include 87–89linking 86Makefile 84TAO_BASE_LIBS macro 89TAO_CLNT_LIBS macro 89TAO_SRVR_LIBS macro 89
GNU Public License (GPL) xxxvii, xxxixgnuace build type 38, 43, 45, 52–53, 55–57, 63GoF
See Design Patterns:Elements of Reusable Object-Oriented Software bookgprof program 25
H
half-sync/half-async pattern 15handle_events() operation 461, 514, 519handle_input() operation 358–359, 362, 370–371, 409, 412–413, 451, 462, 519handle_timeout() operation 528hash() operation 317hashing
perfect 10Helm, Richard 15, 352Henning, Michi xxv, xxxiHerron, Thomas 328Huston, Steve 15, 352, 473, 476, 498, 510, 519
I
id_to_reference() operation 357, 1014IDL
See interface definition language (IDL)IDL compiler 9, 33, 93–109, 112, 152
exception handling 103GI option 323Gsp option 298–300operation lookup strategy 104options 96–109
1138 o c i w e b . c o m
I
back-end processing 106code generation 102code suppression 108collocation strategy 105
output and reporting 109output files 94–95, 99preprocessing 96smart proxies 292, 300–301starter code 100
IDL to C++ mapping 4IFR_Service
multithreaded 914IFR_Service class 913–914, 916, 923IIOP
See internet inter-ORB protocol (IIOP)implementation repository 570, 596, 1003, 1005–1009, 1012, 1014–1020,1023–1024
abnormal shutdown 1011activate_object_with_id() operation 1015activation mode 1008
AUTO_START 1005MANUAL 1005NORMAL 1005, 1010PER_CLIENT 1005, 1010
client requests 1010COMM_FAILURE exception 1011create IMRified object reference 1009, 1016direct binding 1003directives 1019–1020
add 1019auto_start 1019ior 1009, 1019list 1019remove 1020shutdown 1020udpate 1020
example 1013tao_imr 1022
id_to_reference() operation 1014ImplRepo_Service class 582, 596, 620, 1006
command line options 1023ImplRepoServiceIOR environment variable 1006
o c i w e b . c o m 1139
I
ImplRepoServicePort environment variable 596ImR_Activator
command line options 1024indirect binding 1003, 1005interoperable object reference (IOR)
IMRified 1003, 1009LOCATION_FORWARD 1010–1012OBJECT_NOT_EXIST 1014ORBEndpoint option 1015ORBUseIMR option 1005, 1009, 1014PER_CLIENT 1010persistence 1018
memory map 1019object 1004, 1006PERSISTENT 1004, 1013registering portable object adapter (POA) 1007
server shutdown 1011starting 1015tao_imr utility 1005, 1009, 1011, 1014, 1019–1020TRANSIENT exception 1010USER_ID 1013working directory 1008
ImplRepoServiceIOR environment variable 1006IMRified interoperable object reference (IOR) 1009include_env build flag 19, 21, 122info() operation 559, 561init() operation 435–436, 553, 723–724inline build flag 19, 22, 54–56, 58, 71–72, 75–76, 85–86, 95, 99installation
ACE and TAO 1029system requirements 18See also building 18
instance() operation 299, 302, 544, 560interceptors
See portable interceptorsinterceptors build flag 28interface definition language (IDL) xxiv, xxxiv, xxxix–xl, 9, 33, 159
back-end options 106C++ mapping 4, 93, 112collocation strategy options 105compiler
See IDL compiler
1140 o c i w e b . c o m
I
compiler front end (CFE) xxxix–xldefinitions 169environment variables 98preprocessing options 96pseudo (PIDL) 27–28, 182, 186, 199, 244, 246–247, 267, 273, 315starter implementation files 100stubs and skeletons 9suppression options 108tao_idl program 33–34, 52, 58, 93–102, 105, 107–108, 171, 914
interface repository xxix, 27, 114, 911–913, 917, 923–924, 1038command line options 913compliance 1075, 1077example 916forward declaration 913IFR_Service class 913–914, 916, 923implementation 913InterfaceDef 912InterfaceRepoServicePort environment variable 914Repository object 912RepositoryId 247–248, 912–913tao_ifr program 913–915, 923
options 915interface_repo build flag 20, 27InterfaceRepoServicePort environment variable 914interfaces
CORBA::Current 166, 203, 234, 273, 317, 982, 985, 988CORBA::Current interface 317CORBA::DIIPollable 317–318CORBA::DIIPollable interface 318CORBA::DynamicAny 317CORBA::InterfaceDef 912CORBA::LocalObject class 268, 319, 323, 325CORBA::Policy 318CORBA::PolicyCurrent 166, 179, 239, 241, 317–318, 597CORBA::PolicyList 178–179, 181–183, 185, 187, 190, 201, 206, 208, 210–211,
215, 223–224, 233, 236, 240–242, 321, 420, 494, 979, 981, 1013CORBA::PolicyManager 178, 181, 185, 188, 223, 317–318CORBA::Pollable 317–318CORBA::PollableSet 317–318CORBA::PortableServer 317CosEventComm::PushConsumer 741
741
o c i w e b . c o m 1141
I
push() operation 741CosEventComm::PushSupplier 740CosNaming::NamingContextExt 720–721CosNotifyChannelAdmin::ConsumerAdmin 844, 851, 871, 877, 884, 893–894CosNotifyChannelAdmin::EventChannel 850, 853, 855, 864, 870, 885, 888, 893,
897CosNotifyChannelAdmin::ObtainInfoMode 880CosNotifyChannelAdmin::ProxyConsumer 848, 865, 880, 889CosNotifyChannelAdmin::ProxySupplier 848, 871–872, 880, 894CosNotifyChannelAdmin::SequenceProxyPushConsumer 845, 848, 863, 865–
867, 886, 889, 891, 895CosNotifyChannelAdmin::SequenceProxyPushSupplier 845, 860, 866, 871–872,
885, 894PortableInterceptor::IORInfo 268, 270PortableInterceptor::PICurrent 246, 273–276, 278PortableServer::ServantLocator 318–319, 321RTCORBA::NetworkPriorityMapping 225–227RTCORBA::RTORB 197RtecEventChannelAdmin::EventChannel 776–777, 800, 803, 807, 814RtecEventComm::PushConsumer 779, 781RtecEventComm::PushSupplier 777–778
InterFilterGroupOperator class 850, 865, 871, 889, 894Internet Engineering Task Force (IETF) 221internet inter-ORB protocol (IIOP) 327–336, 338–339, 342–346, 348, 689
client strategy factory 689endpoints 589
example 594IIOP_Factory class 332, 651IIOP_Lite_Factory class 651lite 330–331, 335, 651–652magic number 335options 334portspan option 334, 344, 589–590, 594
interoperable object reference (IOR) 586, 608, 616, 632, 673–674, 676, 688,708, 801, 1015
client strategy factory 688custom parsers 632directive 1009formats 600, 632interceptors 267, 278resource factory 632table 1015
1142 o c i w e b . c o m
J
inter-process communiation (IPC) xxxiv, 11, 212, 327, 330, 335, 337–338,473–474, 592, 608, 651–652
local 588interval timeouts
real-time event service (RTES) 797Introduction to CORBA course xxxivIntroduction to Real-Time Systems course xxxvinversion
priority xx, 4, 697invocation
asynchronous 215dynamic 12oneway 14, 150–151, 183–188, 203, 215, 292, 341–343, 345, 347–348, 478, 512,
527, 593reliable oneway 215static 12
IORSee interoperable object reference (IOR)
IORInfo interface 268, 270IORTable class 1014IPC_SAP class 473–474is_a() operation 317is_equivalent() operation 317, 416, 423is_nil() operation 484
J
JacORB xxii, xxxii, xxxivJava Reflection API 911jitter 4Johnson, Ralph 15, 352
K
Kerberos 934, 938, 947kernel and system configuration 1063
VxWorks 1055Klinker, Paul 328
o c i w e b . c o m 1143
L
L
latency 4LD_LIBRARY_PATH environment variable 32leader-follower
pattern 505strategy 523, 628, 646
least frequently used (LFU) strategy 625, 629, 640, 656least recently used (LRU) strategy 625, 629–630, 640, 656LFU
See least frequently used (LFU) strategylibraries xxvi
minimizing size 1037–1038TAO_PortableGroup 345TAO_Strategies 69, 331, 336, 339, 341–342, 433, 501, 639
licensing xxiii–xxiv, xxxvii, xxxix–xliiiFree Software Foundation’s GNU Public License (GPL) xxxvii, xxxixterms xxiii
life cycle service xxxiii, 703, 1039ORB service libraries 703
Linux xxxiii, 31, 86, 450, 965lite protocols 652load balancing service xxi, xxvii, 13, 294, 586, 688, 703, 1004, 1012, 1039
ORB service libraries 703local interfaces 280, 315–317, 319, 323, 325
_add_ref() operation 325_remove_ref() operation 325asynchronous method invocation (AMI) 316C++ mapping 316CORBA component model (CCM) 315CORBA::LocalObject class 316–317, 319dynamic invocation interface 316example 322local keyword 316object 315ORB mediation 316postinvoke() operation 318preinvoke() operation 318reference counting 325servant activation 318servant locator 318
1144 o c i w e b . c o m
M
unconstrained interface 316locality constrained 316–317, 319, 323, 325
example 322location codes 141LOCATION_FORWARD 142, 245, 688, 697, 1004, 1006, 1010–1012locking
lock() operation 204option
real-time event service (RTES) 820strategies 537
log service xxviii, 13ORB service libraries 703
logical AND groupsreal-time event service (RTES) 792
LRUSee least recently used (LRU) strategy
LynxOS iv, 532, 1030, 1063, 1065, 1067–1071, 1083cross compilation 1066
building libraries and executables 1068environment 1066
kernel and system configuration 1063native compilation 1063
building libraries and executables 1065environment 1065
using ACE and TAO 1063
M
magic number 335, 351, 651MAIN_THREAD_MODEL policy 489, 493–494, 496Makefile 87
corba_messaging 20, 27, 69flags 83, 85includes 87
MAKEFLAGS environment variable 83–84, 122, 786MakeProjectCreator (MPC) xlii, 18–19, 31, 44, 47, 68, 76
ACE base projects 68adding a new type 75base project files 48base workspace files 48
o c i w e b . c o m 1145
M
build typeem3 43, 63ghs 44gnuace 38, 43, 45, 52–53, 55–57, 63nmake xxvi, 19, 37, 41, 43, 45, 49, 57va4 44vc6 38, 43, 46–47, 49, 57, 63, 71vc7 43, 49, 57, 63vc71 38, 44, 57
command line 44custom types 64defaults 70documentation 72example 72feature file 67feature_file option 44, 68header files 71IDL files 72inline files 71input file syntax 49Make Project Creator (mpc) 31, 37, 40Make Workspace Creator (mwc) 38mpc.pl 42–45, 47, 81mwc.pl 38, 42, 44–48, 50, 81options
feature_file 44, 68noreldefs 45, 50notoplevel 45recurse 45, 50static_only 46template 45–47, 49, 53–54, 56, 58–60, 62, 66, 71, 73–76, 78ti 45–47value_project 45, 47value_template 46–47
ORB services base projects 70resource files 72source files 71supported build tools 43TAO base projects 69template 75
managing connectionsreal-time event service 782
1146 o c i w e b . c o m
M
mappingdirect 218IDL to C++ 4
MARSHAL exception 278, 316, 455, 572marshaling 9, 105, 142, 166, 262, 328–329, 350, 524, 568, 572–574, 626, 786match_prefix() operation 437–438, 633max_muxed_connections() operation 630maxPriority constant 202mcast option 581messaging 149–191, 328
activation-per-AMI-call strategy 166associating replies with requests 165asynchronous requests 186bi-directional general inter-ORB protocol (GIOP) 189BidirectionalPolicyValue 189BUFFER_MESSAGE_COUNT 186–187BUFFER_TIMEOUT 186–187buffered oneway request 186BufferingConstraint policy 186–188callback solution 151client-side policy management 178connection timeout 182
ConnectionTimeout policy 182controlling the delivery of AMI-based requests 176corba_messaging build flag 229create_policy() operation 177–178, 181, 183, 185, 188, 190creating a reply-handler class 159drawbacks to using AMI 152exception
ExceptionHolder class 152, 155–156, 158replies 158reply-handler functions 164
oneway requests 186policy
creating 177destroying 180management 177
quality of service (QoS) 180reply
handler 156–157, 159timeouts 180
request
o c i w e b . c o m 1147
M
delivery 176timeouts 180
secure 932sendc_ prefix 151, 153server-differentiated-reply strategy 166server-side policy management 179specification 193SYNC_NONE 187synchronous IDL operation 156SyncScope policy 176, 183–185, 187TAO.pidl 186
Microsoft Foundation Classes (MFC) 728, 1042minimizing size 25
libraries 1037–1038minimum_corba build flag 20, 25, 27–28, 67, 69, 190–191, 229, 244, 1038See also footprint
minor() operation 116minPriority constant 202MIOP
See multicast inter-ORB protocol (MIOP)MMAPFilePrefix option 340MMAPFileSize option 340MPC
See MakeProjectCreator (MPC)mpc.pl 42–45, 47, 81msg_wfmo reactor 660MTDispatching option 901, 909MTListenerEval option 909MTSourceEval option 909multicast 570, 579, 581, 596, 605, 707, 711, 731, 805, 812, 923, 1006, 1024, 1056
naming service 711, 714service discovery 581VxWorks 1056
multicast inter-ORB protocol (MIOP) xxi, xxvii, 330, 344–348multiplexing strategies 520–521multithreading 475
client thread 476collocation optimization 524concurrency models
wait-on-leader-follower 515wait-on-reactor 514wait-on-read 510
1148 o c i w e b . c o m
N
connect strategiesblocking 524leader-follower 523reactive 523
example 499, 504, 507exceptions
thread-related operations 484flushing strategy 522guideline 485, 495interleaving ORB events 526main thread model 492multiplexing strategies 521multithreaded select reactor 518ORB-controlled model 489POA threading model 493polling loop 485request invocation 477–478select reactor 518server thread 476shutting server down 526single thread model 491threading behavior options 517thread-pool reactor 519transport multiplexing strategies 520wait strategies 520
Mutex object 204named 228
mwc.pl 38, 42, 44–48, 50, 81
N
name() operation 256, 268NameServiceIOR environment variable 707, 715NameServicePort environment variable 605, 707, 713naming service 115, 560, 701–702, 705–721, 723–731, 733–734, 749, 815, 1039,1084
client source code 710command line options 730compliance 1080corbaloc object URL 715
o c i w e b . c o m 1149
N
corbaname object URL 717discriminating between multiple services 712environment variables
NameServiceIOR 707example 708
TAO_Naming classes 724multicast 711, 714NameServiceIOR environment variable 707, 715NamingContextExt interface 720–721NamingViewer utility 728nsadd utility 727nsdel utility 727–728nslist utility 727object URLs 715options
ORBDefaultInitRef 706ORBInitRef 706ORBMulticastDiscoveryEndpoint 707ORBNameServicePort 707
ORB service libraries 703resolve_initial_references() operation 706resolving 706root naming context 737TAO_Naming_Server 724, 726TAO-specific classes 723utilities 727
NamingViewer 728nsadd 727nsdel 727nslist 727
NamingContextExt interface 720–723NamingViewer utility 728National Science Foundation (NSF) 3native compilation
LynxOS 1063negating the logic of filters
real-time event service (RTES) 793nested upcalls 14, 512, 514–516nesting groups
real-time event service (RTES) 793NetworkPriorityMapping interface 225–227NetworkPriorityMappingManager class 226–228
1150 o c i w e b . c o m
N
new_for_consumers() operation 871, 893new_for_suppliers() operation 865, 889NMake 19, 37, 41, 43, 45, 49, 57
nmake build type xxvi, 19, 37, 41, 43, 45, 49, 57See also building xxvi
no operation (NOOP) strategy 630NO_IMPLEMENT exception 317, 986–987non_existent() operation 317NON_RETAIN policy 318, 321NOOP
See no operation (NOOP) strategynoreldefs option 45, 50NORMAL activation mode 1010notification service xxi, 843–845, 848–849, 851–852, 855, 857–860, 862–863,865, 882–883, 886, 897, 900, 902, 904, 906, 908–909, 1081
856adding subscriptions 877administration properties 855architecture 844collocated 896compatability with event service 897conflict resolution 857connecting
consumers 873suppliers 874
destroying the notification channel 875developing structured event supplier 887disconnecting
consumers 873suppliers 874
event consumer 893event filtering 848, 881, 883
consumer 883supplier 881
event supplier 861, 887example 859features 845implementing intefaces
sequence push consumer 891sequence push supplier 886structured push consumer 868structured push supplier 860
o c i w e b . c o m 1151
N
limitsMaxConsumers 855MaximumBatchSize 854MaximumEventsPerConsumer 854MaxQueueLength 855MaxSuppliers 855
lookupthreads 904managing connections 873negotiating quality of service (QoS) 857notification administration properties 855
MaxConsumers 855MaxQueueLength 855RejectNewEvents 855
notify managerresource factory options 899
Notify_Service server 860, 863, 896–898obtain_subscription_types() 851offer_change() 851offers and subscriptions 875, 879options
MTDispatching 901, 909MTListenerEval 909MTSourceEval 909
ORB service libraries 703PacingInterval property 854quality of service (QoS)
get_qos() 857properties 884
accessing and modifying 856DiscardPolicy 854
AnyOrder 854DeadlineOrder 854FifoOrder 854LifoOrder 854PriorityOrder 854
MaximumBatchSize 854MaximumEventsPerConsumer 854OrderPolicy 853
AnyOrder 853DeadlineOrder 853FifoOrder 853PiorityOrder 853
1152 o c i w e b . c o m
N
PacingInterval 854PriorityOrder 853setting in a structured event header 856StopTime 853Timeout 853
support 852quality of service (QoS) properties 852, 856, 884resuming consumer connections 874sequence push
consumer interface 891supplier interface 886
setting quality of service (QoS) 856structured event 846–847
consumer 870supplier 861type 846
structured pushconsumer 868
offer_change() 868push_structured_event() 868
supplier 860subscriptions 850, 875, 879
adding to consumer 877subscription_change() operation 851
suspendingconsumer connections 874supplier connections 874
transmitting an EventBatch 886unsupported quality of service (QoS) exceptions 857
Notify_Service server 860, 863, 896–898command line options 897–898starting 860
notoplevel option 45nsadd utility 727nsdel utility 727–728nslist utility 727null filters
real-time event service (RTES) 795
o c i w e b . c o m 1153
O
O
object adaptersee portable object adapter (POA)
object bindingdirect 1003indirect 1003
Object Computing, Inc. (OCI) i, xviii, xx–xxii, xxiv–xxv, xxxi–xxxiii, 3, 6,17–19object factories 538–539Object Management Group (OMG) specifications
C++ Language Mapping (formal/03-06-03) 1080C++ Language Mapping (formal/99-07-41) 12, 122, 279, 1079–1080CORBA 2.6 (formal/01-12-35) 12, 243, 279, 315, 328, 479, 706, 911, 1074CORBA 3.0 (formal/02-09-02) 149–150, 191CORBA 3.0 (formal/02-12-06) 601CORBA Components (formal/02-06-65) 315Event Service (formal/01-03-01) 735Naming Service (formal/02-09-02) 705, 1080Notification Service (formal/02-08-04) 858, 1081Real-Time CORBA (formal/02-08-02) 12, 1078Real-Time CORBA (ptc/99-06-02) 193Security Service (security/00-12-02) 927Unreliable Multicast Inter-ORB protocol (MIOP) (ptc/01-11-08) xxvii
object referenceSee interoperable object reference (IOR)
object URL 715corbaloc 706, 714–717, 721, 728corbaname 632, 634, 647, 717–720, 723, 727
object URLs 715–720OBJECT_NOT_EXIST exception 113, 320, 484, 1014–1015objects-by-value (OBV)
See value typesobservers
custom gateways 803real-time event service (RTES) 803
obtain_notification_push_consumer() operation 865, 867, 889obtain_notification_push_supplier() operation 871, 894obtain_offered_types() operation 852, 876, 879, 881obtain_subscription_types() operation 851, 879, 881ObtainInfoMode interface 880
1154 o c i w e b . c o m
O
OctetSeq 262–263, 266offer_change() operation 851, 868–869, 875–876, 880–881, 892OMG
See Object Management Group (OMG)oneway invocation 14, 150–151, 183–188, 203, 215, 292, 341–343, 345, 347–348,478, 512, 527, 593open source software xxiiiOpenSSL 330, 926, 946, 955, 958–960, 962–969, 988, 994, 996, 998operating systems
Linux xxxiii, 31, 86, 450, 965LynxOS 1063, 1065–1066, 1068QNX 335UNIX xx–xxi, 11, 18–19, 34, 38, 83, 94, 97, 109, 330, 335–339, 342, 345, 380,
542, 556, 563, 565, 576, 591, 606, 923, 965, 969VxWorks 576, 724Windows xxi, 18, 31–32, 34, 38, 53, 78, 83, 107, 109, 556, 728, 965, 967, 1018–
1019operations 437–438, 633
_add_ref() 283, 325_id() 114, 116–117, 119, 166, 275, 346, 741–742, 1015_refcount_value() 283_remove_ref() 283, 325_rep_id() 116–117, 119_set_policy_overrides() 179_tao_add_to_IOR_table() 1006_unchecked_narrow() 299–300, 302, 347_validate_connection() 209activate() 35, 239, 260, 411–412, 666, 709, 725–727, 873, 896, 999, 1015activate_object_with_id() 166, 346, 1015activate_object_with_id_and_priority() 201, 237activate_object_with_priority() 200–201, 237add_client_request_interceptor() 254add_constraints() 883add_filter() 883add_ior_component() 270add_ior_interceptor() 269–270add_server_request_interceptor() 259cache_maximum() 630codec_factory() 262, 266connect_push_consumer() 747connect_push_supplier() 739, 747, 802connect_sequence_push_consumer 894
o c i w e b . c o m 1155
O
connect_structured_push_consumer() 872connect_structured_push_supplier() 866connection_caching_strategy_type() 630create_cached_connection_lock() 630create_channel() 864, 897create_filter() 882create_ft_service_retention_id_lock() 688create_lf_strategy() 626create_mutex() 205create_POA() 179, 197, 200, 206create_policy() 177–178, 181, 183, 185, 188, 190, 978–979, 981create_priority_banded_connection_policy() 209create_proxy() 292, 296–297, 299–300, 302, 304–305, 309create_reference_with_id_and_priority() 201, 237create_reference_with_priority() 201, 237default_filter_factory() 882destroy() 36destroy_mutex() 205disconnect_push_consumer() 739–740, 779, 802disconnect_push_supplier() 739–740disconnect_sequence_push_consumer() 892disconnect_structured_push_consumer() 867–869disconnect_structured_push_supplier() 860–861, 873establish_components() 268fini() 435, 554–555get_client_policy() 317get_domain_managers() 317get_effective_component() 269, 271get_event_channel() 864, 870get_interface() 317get_policy() 317, 936get_policy_overrides() 317get_proxy() 297–298get_qos() 857get_slot() 273handle_events() 461, 514, 519handle_input() 358–359, 362, 370–371, 409, 412–413, 451, 462, 519handle_timeout() 528hash() 317id_to_referenceI() 357, 1014info() 559, 561init() 435–436, 553, 723–724
1156 o c i w e b . c o m
O
instance() 299, 302, 544, 560is_a() 317is_equivalent() 317, 416, 423is_nil() 484lock() 204match_prefix() 633max_muxed_connections() 630name() 256, 268new_for_consumers() 871, 893new_for_suppliers() 865, 889non_existent() 317obtain_notification_push_consumer() 865, 867, 889obtain_notification_push_supplier() 871, 894obtain_offered_types() 852, 876, 879, 881obtain_subscription_types() 851, 879, 881offer_change() 851, 868–869, 875–876, 880–881, 892ORB_init() 127–128, 144, 199, 248, 254, 332, 563–566, 571, 714, 745parse_string 633parse_string() 424, 427, 633perform_work() 164, 168, 481–486, 493, 496, 505, 512, 515, 526–527, 529post_init() 248, 253–254, 259, 269–270postinvoke() 318–320pre_init() 248, 254, 269preinvoke() 318–319process_directive() 547pthread_create() 509purge_percentage() 630push() 739, 775, 779–780, 782, 792push_structured_event() 866, 868–869, 873push_structured_events() 890, 892, 895rebind() 748receive_exception() 245receive_other() 245receive_reply() 245receive_request() 246receive_request_service_context() 246reclaim_reactor() 626reconfigure() 547, 561register_proxy_factory() 296–297release() 325, 484resolve() 738
o c i w e b . c o m 1157
O
resolve_initial_references() 220, 226, 275, 316, 355, 580, 597, 706–707, 715–716,723, 942, 946, 990
resume_connection() 874run() 35, 168, 354, 357, 487, 505, 725select() 351, 518–519, 660send_exception() 246send_other() 247send_poll() 245send_reply() 246send_request() 245set_policy_overrides() 179, 317, 935, 942, 946set_slot() operation 273shutdown() 483–484, 487, 527–529, 991–992, 997string_to_object() 275, 346–347, 360, 405, 583, 608, 632–633, 647, 706–707, 714–
718subscription_change() 851, 860–861, 872, 877–878, 880–881, 886–887, 895suspend_connection() 874svc() 412, 451, 724–725TaggedComponent() 271target_is_a() 257thread-related 481to_CORBA() 203, 216, 225, 227to_native() 203, 216to_network() 225, 227to_url() 721try_lock() 204unlock() 204–205unregister_proxy_factory() 296–297, 305use_locked_data_blocks() 628validate_connection() 317WaitForMultipleObjects() 351, 660work_pending() 164, 481, 483–485, 526–527
optimize build flag xx, 19, 22, 85options 1024
BUFFER_MESSAGE_COUNT 186–187BUFFER_TIMEOUT 186–187CECConsumerControl 754, 758–759CECConsumerControlPeriod 754, 759CECDispatching 749, 752, 756, 760–761CECDispatchingThreads 749, 752, 760–761CECProxyConsumerCollection 755, 762–763CECProxyConsumerLock 753, 764
1158 o c i w e b . c o m
O
CECProxySupplierCollection 755, 765–766CECProxySupplierLock 753, 767CECReactivePullingPeriod 757, 768CECSupplierControl 754, 769–770CECSupplierControlPeriod 754, 770CECUseORBId 757, 771DispatchingThreads 901ECDispatching 815, 818, 823, 826–827ECDispatchingThreads 818, 826–827ECFiltering 788, 794, 815, 819, 828ECObserver 803, 819, 829ECProxyConsumerLock 820, 830ECProxySupplierLock 820, 835ECScheduling 819, 828, 836ECSupplierFiltering 819, 839ECTimeout 818, 840ECUseORBId 819, 841MTDispatching 901, 909MTListenerEval 909MTSourceEval 909SSLAuthenticate 1001SSLCertificate 1000SSLNoProtection 1000SSLPrivateKey 1001
options 1000tp 660
ORB 539, 566, 664–665configuring real-time CORBA 230connection management 569controlling service configurator 567core 10, 14debugging 568endsystem 8initialization 738initialization options 563–620interface definition 564Java xxii, xxxii, xxxivmediation 316optimizing request processing 568options
ORBCDRTradeoff 568, 572ORBCollocation 525, 564, 568, 573
o c i w e b . c o m 1159
O
ORBCollocationStrategy 106, 108, 564, 569, 574–575ORBDaemon 543, 567, 576, 602ORBDebug 564, 566, 568, 577ORBDebugLevel 566, 568, 578, 611, 972ORBDefaultInitRef 564, 569, 579–582, 584–585, 597–598, 604, 706–707,
715, 717, 719, 1006ORBDottedDecimalAddresses 333, 569, 586–587ORBEndpoint 144, 333–334, 337–338, 340–342, 344, 346, 348, 353, 356, 376,
379, 388, 424, 436, 438–439, 564, 566, 569–570, 582, 584, 586–595,601, 713–716, 733, 1006, 1015
ORBId 564–566, 757, 819ORBInitRef 144, 275, 277, 424, 438, 564, 570, 579–582, 584, 597–600, 604–
605, 608, 620, 632, 647, 706, 713–715, 717, 720, 1006–1010, 1016–1018
ORBListenEndpoints 564, 586ORBNameServicePort 570, 603, 605, 707, 713ORBNodelay 569, 606ORBNoProprietaryActivation 564, 607ORBObjRefStyle 568, 570, 608–609ORBRcvSock 564, 569, 610ORBServerId 564, 611ORBSingleReadOptimization 613–614ORBSndSock 569, 615ORBStdProfileComponents 569, 616, 621ORBSvcConf 543, 567, 617, 750, 815, 974–975ORBSvcConfDirective 543, 567, 618ORBUseIMR 570, 620, 1005, 1007, 1009–1010, 1014, 1016–1018, 1022–1023ORBUseSharedProfile 621
protocol selection 569protocols 631reactor type 517real-time 199, 203, 225, 230request processing 488service libraries 586, 703
audio/video streaming 703concurrency control 703event 703life cycle 703load balancing 703log 703naming service 703notification service 703
1160 o c i w e b . c o m
O
object trading 703property 703real-time event service 703
scheduling 704real-time scheduling 704security 704time 704
shutdown 526–529thread-related operations 481wait_for_completion parameter 481, 483–484, 487, 527–528
ORB_CTRL_MODEL policy 489, 493–495orb_identifier 564–565ORB_init() operation 127–128, 144, 199, 248, 254, 264, 332, 354, 360, 432, 563–566, 571, 714, 745ORBActiveHintInIDs option 671, 673ORBActiveHintInPOANames option 670, 674ORBActiveObjectMapSize option 671, 675ORBAllowReactivationOfSystemIDs option 672–673, 676ORBCDRTradeoff option 568, 572ORBClientConnectionHandler option 373, 452, 500–501, 513–514, 516,520–521, 523–524, 691, 694, 696ORBCollocation option 525, 564, 568, 573ORBCollocationStrategy option 106, 108, 564, 569, 574–575ORBConcurrency option 499, 501, 503–504, 666, 677ORBConnectionCacheLock option 628, 631, 643, 657ORBConnectionCacheMax option 631, 644ORBConnectionCachePurgePercentage option 631, 645, 656ORBConnectionPurgingStrategy option 630, 640, 656ORBConnectorLock option 642–643ORBConnectStrategy option 513, 524, 693, 696, 973, 975, 978, 980ORBDaemon option 543, 567, 576, 602ORBDebug option 564, 566, 568, 577ORBDebugLevel option 566, 568, 578, 611, 972ORBDefaultInitRef option 564, 569, 579–582, 584–585, 597–598, 604, 706–707, 715, 717, 719, 1006ORBDottedDecimalAddresses option 333, 569, 586–587ORBEndpoint option 144, 333–334, 337–338, 340–342, 344, 346, 348, 353, 356,376, 379, 388, 424, 436, 438–439, 564, 566, 569–570, 582, 584, 586–595, 601, 713–716,733, 1006, 1015ORBFlushingStrategy option 513, 523, 628, 646
blocking strategy 646leader_follower strategy 646
o c i w e b . c o m 1161
O
reactive strategy 646ORBId option 564–566, 757, 819ORBImplRepoServicePort option 570, 596ORBInitializer class 248, 259, 269, 275ORBInitInfo class 248ORBInitRef option 564, 570, 579–582, 584, 597–600, 604–605, 608, 620ORBInputCDRAllocator option 501, 627–628, 640, 643, 657ORBIORParser option 635, 647ORBListenEndpoints option 564, 566, 570ORBLogFile option 568, 602ORBMulticastDiscoveryEndpoint option 570, 603ORBMuxedConnectionMax option 648ORBNameServicePort option 570, 603, 605, 707, 713ORBNativeCharCodeSetId option 636ORBNativeWCharCodeSetId option 636ORBNetworkPriorityMapping option 226, 230ORBNodelay option 569, 606–607, 613–614, 621ORBNoProprietaryActivation option 564, 570ORBObjRefStyle option 568, 570, 608–609ORBPersistentIDPolicyDemuxStrategy option 670, 678ORBPOALock option 501, 666, 679ORBPOALockType option 666ORBPOAMapSize option 670, 680ORBPolicyManager option 178, 181ORBPriorityMapping option 220, 230, 232ORBProfileLock option 501, 689, 697ORBProtocolFactory option 331–332, 336, 339, 341–342, 345, 353, 588, 632,651–652, 974–975, 977–978, 980
DIOP_Factory 651IIOP_Factory 651IIOP_Lite_Factory 651SHMIOP_Factory 651SSLIOP_Factory 651UIOP_Factory 651UIOP_Lite_Factory 651
ORBPurgePercentage option 631, 644–646ORBRcvSock option 564, 569, 610, 615ORBReactorMaskSignals option 646–647, 653ORBReactorThreadQueue option 658–659ORBReactorType option 500–501, 517–518, 520, 618, 640, 660–661ORBSchedPolicy option 231–232ORBScopePolicy option 231–232
1162 o c i w e b . c o m
P
ORBServerId option 564, 570, 611ORBServiceConfigLoggerKey option 543, 567, 612ORBSingleReadOptimization option 569ORBSndSock option 569, 615ORBStdProfileComponents option 569, 616, 621ORBSvcConf option 543, 567, 617, 750, 815, 974–975ORBSvcConfDirective option 543, 567, 618ORBSystemIDPolicyDemuxStrategy option 672, 681ORBSystemidPolicyDemuxStrategy option 672, 681ORBThreadFlags option 667, 682ORBThreadPerConnectionTimeout option 503–504, 667, 671, 673, 683ORBTradingServicePort option 570, 619ORBTransientIDPolicyDemuxStrategy option 671, 684ORBTransportMuxStrategy option 504, 513, 521, 690, 698ORBUniqueIDPolicyReverseDemuxStrategy option 672, 685ORBUseIMR option 570, 620, 1005, 1007, 1009–1010, 1014, 1016–1018, 1022–1023ORBUserIDPolicyDemuxStrategy option 672, 686ORBUseSharedProfile option 621ORBWCharCodeSetTranslator option 654OrderPolicy property 853
P
PacingInterval property 854parse_string() operation 424, 427, 633PATH environment variable 23–24, 1032–1033, 1043, 1051, 1060, 1065, 1068Pattern-Oriented Software Architecture:Patterns for Concurrentand Networked Objects (POSA2) book 15, 351, 505, 515, 519, 658patterns 15
abstract factory 15, 352acceptor 15, 351active object 15, 666adapter 15asynchronous completion token (ACT) 167bridge 15component configurator 351connector 15, 351, 454half-sync/half-async 15leader/follower 505
o c i w e b . c o m 1163
P
manager 352proxy 15reactor 15, 351service configurator 15, 351, 634, 737strategy 15, 352template method 352, 451, 454, 463, 473thread-specific storage (TSS) 15
perfect hashing 10, 105, 668See also gperf
perform_work() operation 164, 168, 481–486, 493, 496, 505, 512, 515, 526–527, 529per-hop-behavior (PHB) 221persistence
XML 1019persistent state service xxi, xxvii, 13PHB
See per-hop behavior (PHB)PICurrent interface 246, 273–276, 278platform support xxvi, xxix, 5platform_macros.GNU file 83, 85, 122platforms
supported xxxiipluggable protocols xx, xxvii, xxix, 5, 11, 143, 327–328, 330–331, 338, 346–351,363, 386, 474, 566, 581, 588, 599, 651, 664, 690, 1078–1081
acceptor 364, 366acceptor typedefs 368accept-strategy template 372address definition 332, 337, 340, 342, 344–345building 331client invocation 359combining protocols 348concurrency-strategy template 373, 396configuring SHMIOP factory 340connection
handler 365, 406request 358
connector 364, 388connector typedefs 390connect-strategy template 396constructor 416creation-strategy template 372, 395declaring 332, 336
1164 o c i w e b . c o m
P
developing 349dynamic loading 433endpoint 365, 415example 353, 359framework 362guidelines 337identifier tags 351loading 331, 339, 341, 343, 345member functions 374, 397, 409, 421, 435, 446pluggable-acceptor
close() operation 380constructor 374create_profile() operation 381destructor 375endpoint_count() operation 385is_collocated() operation 384object_key() operation 385open() operation 376open_default() operation 379
pluggable-connectcheck_prefix() operation 404
pluggable-connection-handleractivate() operation 411add_transport_to_cache() operation 414constructor 409handle_close() operation 412handle_input() operation 413open() operation 410resume_handler() operation 414svc() operation 412
pluggable-connectorclose() operation 399connect() operation 400constructor 397create_profile() operation 402destructor 398make_profile() operation 405object_key_delimiter() operation 405open() operation 398
pluggable-endpointaddr_to_string() operation 417duplicate() operation 418
o c i w e b . c o m 1165
P
hash() operation 418is_equivalent() operation 416next() operation 417reset_hint() operation 417
pluggable-profileconstructor 421decode() operation 422encode() operation 422hash() operation 423is_equivalent() operation 423object_key_delimiter() operation 424to_string() operation 427
pluggable-protocol-factoryConstructor 435init() operation 436make_connector() operation 437match_prefix() operation 437options_delimiter() operation 438prefix() operation 438requires_explicit_endpoint() operation 439
pluggable-transportclose_connection() operation 447Constructor 446event_handler_i() operation 453handle_input_i() operation 451messaging_init() operation 453messaging_object() operation 453recv_i() operation 451register_handler_i() operation 452send_i() operation 447send_message() operation 449send_message_shared() operation 450send_request() operation 448
profile 365, 418protocol factory 428protocol-specific
parse_options() operation 387requirements 350restrictions 342, 347strategy acceptor template 370strategy connector template 392TAO_Acceptor 364, 366
1166 o c i w e b . c o m
P
TAO_Connector class 364TAO_Endpoint class 365transport 329, 439, 454transport behavior 350using ACE_wrappers 473
POASee portable object adapter (POA)
policiesBidirectionalPolicyValue 189BufferingConstraint 186–188ConnectionTimeout 182DiscardPolicy 854MAIN_THREAD_MODEL 489, 493–494, 496NON_RETAIN 318, 321object-id assignment 1013ORB_CTRL_MODEL 489, 493–495ORBSchedPolicy 231–232ORBScopePolicy 231–232PERSISTENT 1004, 1013PriorityModelPolicy 209PrivateConnectionPolicy 211PROCESS 231RequestProcessingPolicy 321RETAIN 21, 318, 419SCHED_FIFO 231SCHED_OTHER 231SCHED_RR 231scope_policy 231ServantRetentionPolicy 318, 321SERVER_DECLARED 235SINGLE_THREAD_MODEL 489, 494–495SyncScope 176, 183–185, 187SYSTEM 231ThreadPolicy 489, 493–494, 496USE_SERVANT_MANAGER policy 321USER_ID 1013
Policy interface 318PolicyCurrent interface 166, 179, 239, 241, 317, 597PolicyList interface 178–179, 181–183, 185, 187, 190, 201, 206, 208, 210–211,215, 224, 233, 236, 240–241, 420, 494, 979, 981PolicyManager interface 178, 181, 185, 188, 223, 317Pollable interface 317
o c i w e b . c o m 1167
P
PollableSet interface 317–318portability 15portable interceptors xxix, 5, 20, 28, 243–244, 273, 278
client interceptors 244–245, 250–251, 263ClientInitializer class 253ClientInterceptor class 250ClientRequestInfo interface 247
get_effective_component() 269codec (coder/decoder) 262codec_factory() operation 262, 266CodecFactory reference 262–263coders 278context_data field 252context_id field 252decoders 278decoding the tag 271destroy() operation 268example 249, 269
client-side recursion 274simple authentication interceptor 249using the codec 262
extracting tagged information 269get_slot() operation 273installing the interceptor 253, 259interceptors build flag 575, 933, 936IOR interceptors 267–270, 278marshaling 262name() operation 256, 268PortableInterceptor.pidl 246–247, 267PortableInterceptor::Current interface 273PortableInterceptor::IORInfo interface 268PortableInterceptor::PICurrent interface 246, 273–276, 278PortableServer module 260post_init() operation 248pre_init() operation 248receive_exception() operation 245receive_other() operation 245receive_reply() operation 245receive_request() operation 246receive_request_service_context() operation 246registering interceptors 248
IOR 269
1168 o c i w e b . c o m
P
request interceptors 244request parameters 247send_exception() operation 246send_other() operation 247send_poll() operation 245send_reply() operation 246send_request() operation 245server interception points 246server request interceptors 246, 255–256, 266server-side interceptor 255service context 261set_slot() operation 273tagged components 267TAO_Local_RefCounted_Object 268target_is_a() operation 257
portable object adapter (POA) xixactive object map 166, 318, 668, 671, 675, 685manager 574, 664, 745, 781, 800map 668map options 670persistence 1007policy
MULITPLE_ID 685PERSISTENT 678, 680SYSTEM_ID 675TRANSIENT 680UNIQUE_ID 685USER_ID 673, 675
portable priorities 195PortableServer module 289, 346–347
interfaces 317PortableServer::ServantActivator interface 318PortableServer::ServantLocator interface 318–319, 321
portspan option 334, 344, 589–590, 594POSA2
See Pattern-Oriented Software Architecture:Patterns for Concurrent and Net-worked Objects (POSA2) book
post_init() operation 248, 253–254, 259, 269–270postinvoke() operation 318–320pre_init() operation 248, 254, 269prefix filter builder
real-time event service (RTES) 788
o c i w e b . c o m 1169
P
preinvoke() operation 318–319priority
end-to-end 14, 195, 208inversion 4model 235, 237
client propogated 234server declared 237
timersreal-time event service (RTES) 775
priority mapping 215, 219continuous 216–217custom network 227direct 217linear 218maxPriority 202minPriority 202network 221–223, 225–227NetworkPriorityMapping 225–227NetworkPriorityMappingManager 226–228ORBPriorityMapping 220, 230, 232ORBPriorityRange 199PriorityMapping 202, 204, 220PriorityMappingManager 220
priority propagation 208–209end-to-end 14, 195, 208
priority-banded connections 209PriorityBands 209–210PriorityMapping 202, 204, 220PriorityMappingManager 220PriorityModelPolicy 209PrivateConnectionPolicy 211probe build flag 20, 25process_directive() operation 547profile build flag 25profile locking 688properties
OrderPolicy 853PacingInterval 854Priority 853RejectNewEvents 855Timeout 853
property service 13, 1039
1170 o c i w e b . c o m
P
ORB service libraries 703protocols 592
corbaloc rir 716CSI ECMA 934, 938datagram inter-ORB protocol (DIOP) 11, 330, 341–343, 436, 439, 453, 588, 593,
651DCE Common Inter-ORP protocol (DCE-CIOP) 933, 937environment specific inter-ORB protocol (ESIOP) 327–328factories 365, 631, 652general inter-ORB protocol (GIOP) 284, 327–329, 332, 335, 338, 343–344, 592
lite 329generic security service (GSS) 938internet inter-ORB protocol (IIOP) 327–336, 338–339, 342–346, 348
lite 330–331, 335, 651–652options 334
lite 652magic number 335multicast inter-ORB protocol (MIOP) xxi, xxvii, 330, 344–348pluggable xxvii, 5, 11properties 195, 211
ProtocolProperties 211provided with TAO 330resolve initial reference 580secure inter-ORB protocol (SECIOP) 933–934, 937–938, 987secure socket layer inter-ORB protocol (SSLIOP) 343–344, 589, 592–593, 944–
946, 952, 965–968, 972–975, 977–978, 980, 982, 988–995, 997, 999–1001secure sockets layer (SSL) 11, 330, 343, 592, 927, 938, 946shared memory inter-ORB protocol (SHMIOP) 11, 330, 338–341, 348, 351, 363–
365, 379, 424, 436, 439, 580, 588, 591–592, 594–595, 598–600, 626, 651,691, 715, 721
transmission control protocol/internet protocol (TCP/IP) 8, 212, 327–329, 332,338, 350, 586, 599, 631, 651, 814, 951
UNIX inter-ORB protocol (UIOP) 11, 212–214, 330, 335–338, 363, 368, 374–375,377–388, 390–391, 398–402, 404–405, 408–414, 416–418, 424–425, 427,429–430, 432, 436–439, 446–448, 580, 588, 592, 594–595, 598–600, 626,651–652
unreliable IP multicast protocol (UIPMC) xxvii, 330–331, 344–346, 348user datagram protocol (UDP) 329–330, 341, 343–344, 350, 593, 651, 805, 808–
809, 811–813proxy collection options
CECProxyConsumerCollection 755, 762–763CECProxySupplierCollection 755, 765–766
o c i w e b . c o m 1171
Q
ECProxyPushConsumerCollection 822ECProxyPushSupplierCollection 822real-time event service (RTES) 821
proxy factory adapter 296proxy pattern 15ProxyConsumer interface 848, 865, 880, 889ProxySupplier interface 848, 871–872, 880, 894pseudo-IDL (PIDL) 27–28, 182, 186, 199, 244, 246–247, 267, 273, 315pthread_create() operation 509public-key cryptography 948publish and subscribe paradigm 736
consumers 736suppliers 736
pull model support 736, 747Pure CORBA book 279purge_percentage() operation 630purify build flag 20, 23, 85push consumer interface
real-time event service 779push() operation 739, 775, 779–780, 782, 792push_structured_event() operation 866, 868–869, 873push_structured_events() operation 890, 892, 895PushConsumer interface 779, 781
disconnect_push_consumer() operation 741, 779push() operation 779
PushSupplier interface 740, 777–778
Q
QNX operating system 335QoP
See quality of protection (QoP)Qt GUI toolkit 624, 636, 640qt_reactor build flag 20, 26quality of protection (QoP) policy 976quality of service (QoS) xxi, 149, 176–178, 186, 188, 194–197, 735, 778, 781–783, 788–799, 803, 844–848, 852–853, 855–858, 864–865, 871, 884–885
asynchronous requests 186buffered oneway 186connection timeouts 182
1172 o c i w e b . c o m
R
object reference level 179oneway 185ORB level 178ORBPolicyManager 178, 181policies 176policy framework 197properties
notification service 884RELATIVE_RT_TIMEOUT_POLICY_TYPE 180reliable oneway calls 183request and reply timeouts 180support 852
notification service 852SyncScope 183, 185
SYNC_NONE 183SYNC_WITH_SERVER 184SYNC_WITH_TARGET 184SYNC_WITH_TRANSPORT 184
thread level 179time independent invocation (TII) 149
quantify build flag 20, 23–24, 85, 929Quorum 3
R
Rational Software 23reactive
concurrency model 374, 397, 497–499, 501, 506strategy 646
reactors 15, 517–520ACE_QtReactor class 636ACE_Reactor class 366–368, 376–377, 379, 412–413, 544, 553, 625–626ACE_XtReactor class 637–638management 625msg_wfmo option 660qt_reactor build flag 20, 26reclaim_reactor() operation 626select_mt option 519–520, 640, 660select_st option 500–501, 518, 626, 640, 660thread pool 207
o c i w e b . c o m 1173
R
tk_reactor build flag 20, 26tk_reactor option 640, 660wfmo option 526, 640, 660xt_reactor build flag 20, 25
real-time CORBA xxv, 10, 14, 69, 73, 144–145, 193–215, 219–242, 348, 416, 497,503, 507, 1078
architecture 196–197asynchronous invocations 215communication resources 195configuring 230
ORB 230corba_messaging build flag 229create_mutex() operation 205create_POA() operation 206create_priority_banded_connection_policy () operation 209create_reference_with_id_and_priority() operation 201, 237create_reference_with_priority() operation 201, 237destroy_mutex() operation 205differentiated services (diffserv) 221
codepoints (DSCP) 221diffserv field (DF) 221
dynamic threads 205enabling support in TAO 229end-to-end priority propagation 195, 208example 199, 236, 239explicit binding 195, 209extensions 13, 197features 215general inter-ORB protocol (GIOP) 211–212implementation 215lock() operation 204maxPriority 202minimum_corba build flag 229minPriority 202modules 198Mutex object 197, 204named mutexes 228NetworkPriorityMapping 225–227NetworkPriorityMappingManager 226–228object binding 209operating system 201operating system (RTOS) 201
1174 o c i w e b . c o m
R
ORB 199, 203, 225, 230configuration 230
ORBNetworkPriorityMapping 226, 230ORBPriorityMapping 220, 230ORBPriorityRange 199ORBSchedPolicy 231ORBScopePolicy 231overview 194policies 196
ORBSchedPolicy 231–232ORBScopePolicy 231–232PolicyList 206
portable object adapter (POA) 197, 200portable priorities 195priority mapping 197, 201, 215, 217, 219
continuous 215–217, 230direct 215, 217, 230–231linear 215, 218, 230maxPriority 202minPriority 202network 221–223, 225–227NetworkPriorityMapping 225–227NetworkPriorityMappingManager 226–228ORBPriorityMapping 220, 230, 232ORBPriorityRange 199PriorityMapping 202, 204, 220PriorityMappingManager 220
priority methods 201priority models 235, 237
client propogated 232, 234server declared 235, 237
priority propagation 208–209priority-banded connections 209PriorityBands 209–210PriorityMapping 202, 204, 220PriorityMappingManager 220PriorityModelPolicy 209private connections 211PrivateConnectionPolicy 211PROCESS policy 231processor resources 195protocol
o c i w e b . c o m 1175
R
priorities 195properties 195, 211
ProtocolProperties 211quality of service (QoS) 194
policy framework 197reliable oneway invocation 215request buffering 195resources 195rt_corba build flag 229RT_ORB_Loader 230, 232RTCORBA 198, 416, 497, 503, 507RTCORBA.pidl 199RTCORBA::Current interface 166, 197, 203RTCORBA::RTORB interface 197RTPortableServer extension 10, 69, 197–201, 229, 237RTPortableServer.pidl 199SCHED_FIFO policy 231SCHED_OTHER policy 231SCHED_RR policy 231scheduling service 220scope_policy 231SERVER_DECLARED policy 235server-declared priority model 235ServiceContexts 209shared memory inter-ORB protocol (SHMIOP) 212standard synchronizers 195static threads 205support 229SYSTEM policy 231TAO_HAS_CORBA_MESSAGING macro 229TAO_HAS_MINIMUM_CORBA macro 229TAO_HAS_RT_CORBA macro 27, 229TAO_Local_RefCounted_Object class 220, 226TCPProtocolProperties 212, 221the_priority attribute 204thread lanes 205thread pools 195, 205, 207threadpool reactor 207ThreadpoolId 197, 206ThreadpoolLanes 207ThreadpoolPolicy 206timeouts 215
1176 o c i w e b . c o m
R
to_CORBA () operation 203, 216, 225to_native () operation 203, 216to_network () operation 225transmission control protocol/internet protocol (TCP/IP) 212try_lock() operation 204UNIX inter-ORB protocol (UIOP) 212unlock() operation 205
real-time event service (RTES) xx, xxix, xxxiv, 13, 735, 773–780, 784, 787,793, 796–797, 805–841, 1040
architecture 774attributes 801
consumer_poa 801consumer_reconnect 801disconnect_callbacks 802scheduler 802supplier_poa 801supplier_reconnect 802
bit-mask filters 790connecting 778, 780, 782constructing filters 787consumer proxy 774–775, 779–780, 782, 874CORBA gateway 806deadline timeouts 797disconnecting 782dispatching model 775event
correlation 775, 792data 786dispatching 775, 817–818filtering 775header 785, 806structure 784type 778, 781, 797
event channeldispatching strategy 752resource factory 815
options 823ECConsumerControl 821, 824ECConsumerControlPeriod 821, 825ECObserver 829ECSupplierControl 821ECSupplierControlPeriod 821
o c i w e b . c o m 1177
R
servants 799event structure 784
customizing 786options
TAO_LACKS_EVENT_CHANNEL_ANY 786TAO_LACKS_EVENT_CHANNEL_OCTET_SEQUENCE 786TAO_LACKS_EVENT_CHANNEL_TIMESTAMPS 786
Event_Servicecommand line options 814
EventData 786EventHeader 785EventType special values
ACE_ES_EVENT_ANY 785ACE_ES_EVENT_DEADLINE_TIMEOUT 785ACE_ES_EVENT_INTERVAL_TIMEOUT 785ACE_ES_EVENT_SHUTDOWN 785ACE_ES_EVENT_UNDEFINED 785
example 776local event channel 800
feature control 818locking options
ECProxyConsumerLock 820ECProxySupplierLock 820
optionsECFiltering 819ECObserver 819ECProxySupplierLock 819ECScheduling 819ECSupplierFiltering 819
federating event channels 804, 813IP multicast 812UDP 808
filteringand correlation 787building 788combinations 790complex filters 787conjunction groups 791construction 795custom filters 795disjunction groups 791event type 789
1178 o c i w e b . c o m
R
logical AND groups 792negating the logic of filters 793nesting groups 793null filters 795rejection filters using bit masks 794source ID 789
interval timeouts 797locking options 820managing connections 782observers 803old 703operations
resume_connection() 784suspend_connection() 784
ORB service libraries 703prefix filter builder 788priority timers 775proxy collection options 821push consumer interface 779reconnecting
consumers 783suppliers 783
rejection filters 794resource factory
consumer and supplier control options 820resuming consumers connections 783scheduling
ORB service libraries 704specifying and constructing filters 787subscription and filtering 775supplier proxies 775, 782suspending consumers connections 783timeout 797
events 775, 818real-time scheduling service
ORB service libraries 704rebind() operation 748receive_exception() operation 245receive_other() operation 245receive_reply() operation 245receive_request() operation 246receive_request_service_context() operation 246
o c i w e b . c o m 1179
R
reclaim_reactor() operation 626reconfigure() operation 547, 561record protocol 953recurse option 45, 50, 727red-black tree 755reference counting 325register_proxy_factory() operation 296–297registering interceptors 248
IOR 269regular value types 289rejection filters using bit masks 794RejectNewEvents property 855relationship between ACE and TAO 15RELATIVE_RT_TIMEOUT_POLICY_TYPE interface 178, 180–181release() operation 325, 484reliable oneway invocation 183, 215
SyncScope policy 183remove directive 547, 551reply handler 156–157, 159
exception 164non-exception 161operations 156
repo build flag 20, 22, 67, 85–87Repository 1003RepositoryId 247–248, 912–913request
buffering 195demultiplexing
active 10, 15interceptors 244invocation 477–478
request invocation 477–480request processing 488–496RequestProcessingPolicy policy 321resolve() operation 738resolve_initial_references() operation 220, 226, 262, 275, 316, 355, 580,597, 706–707, 715–716, 723, 942, 946, 990resolve_str() operation 721resource factory 331, 339, 432–433, 501, 522, 541, 623–632, 635–643, 649–650,652, 654–655, 657–661, 750, 752, 815–816, 899
ACE_Data_Blocks 627
1180 o c i w e b . c o m
R
ACE_Message_Blocks 627ACE_QtReactor 636ACE_Reactor 626advanced resource factory options 639, 655Advanced_Resource_Factory class 336, 339, 341–342, 501, 518, 520, 639, 656–
657, 659, 661byte-order flag 335, 651caching strategies 629
cache_maximum() operation 630first in first out 629least frequently used 629least recently used 629max_muxed_connections() operation 630no operation 630
CDR conversion allocators 626Client_Strategy_Factory class 501, 513–514, 516, 521, 524, 541, 687, 694, 696–
698CodeSetId 635common data representation (CDR) 626connection cache management strategies 629connection_caching_strategy_type() operation 630create_cached_connection_lock() operation 630create_lf_strategy() operation 626custom factory 651custom IOR parsers 632default 624event channel 749–757, 800, 815–822general inter-ORB protocol (GIOP) 626, 651input_cdr_allocator_type_locked() operation 627input_cdr_buffer_allocator() operation 627input_cdr_dblock_allocator() operation 627input_cdr_msgblock_allocator() operation 627interface definition 624internet inter-ORB protocol (IIOP) 626lite protocols 652magic number 335, 651match_prefix() 633message flushing strategies 628message flushing strategy 628options 641
notify manager 899ORBConnectionCacheLock 628, 631, 643, 657
o c i w e b . c o m 1181
R
ORBConnectionCacheMax 631, 644ORBConnectionCachePurgePercentage 631, 645, 656ORBConnectionPurgingStrategy 630, 640, 656ORBFlushingStrategy 513, 523, 628, 646ORBInputCDRAllocator 501, 627–628, 640, 643, 657ORBIORParser 635, 647ORBMuxedConnectionMax 631, 648ORBNativeCharCodeSetId 636ORBNativeWCharCodeSetId 636ORBPriorityMapping 220, 230, 232ORBProtocolFactory 331–332, 336, 339, 341–342, 345, 353, 588, 632, 651–
652, 974–975, 977–978, 980ORBPurgePercentage 631ORBReactorMaskSignals 653ORBReactorThreadQueue 658–659ORBReactorType 500–501, 517–518, 520, 618, 640, 660–661
fl 660msg_wfmo 660select_mt 660select_st 660tk_reactor 660tp 660wfmo 660
ORBSchedPolicy 231–232parse_string() 633protocol factory 631, 652purge_percentage() operation 630Qt GUI toolkit 624, 636, 640reactor management 625reclaim_reactor() option 626Resource_Factory class 624, 635–636, 638, 642–650, 652–654select_st option 626svc.conf file 635TAO_CONNECTION_CACHE_MAXIMUM macro 644TAO_Connection_Purging_Strategy object 630TAO_Flushing_Strategy class 628TAO_IOR_Parser class 632TAO_LF_Strategy class 626TAO_QtResource_Factory class 636TAO_Resource_Factory class 624–625TAO_Strategies library 639TAO_Transport_Cache_Manager class 630
1182 o c i w e b . c o m
S
TAO_XT_Resource_Factory class 638UNIX inter-ORB protocol (UIOP) 626, 652use_locked_data_blocks() operation 628WaitForMultipleObjects() operation 660X windows toolkit 636–637Xt 624, 640XtAppContext 638
Resource_Factory class 624, 635–636, 638, 642–650, 652–654resume directive 548resume_connection() operation 874RETAIN policy 21, 318, 419Rohnert, Hans 15, 351, 505, 515, 519root naming context 737RT CORBA
See real-time CORBArt_corba build flag 20, 27, 229RT_ORB_Loader 220, 226, 230, 232RTCORBA module xxv, 10, 14, 69, 73, 144–145, 193–215, 219–242, 348, 416,497, 503, 507RTPortableServer extension 10, 69, 197–201, 229, 237rtti build flag 19, 22, 85Ruh, William 328
S
SCHED_FIFO policy 205, 231–232SCHED_OTHER policy 231SCHED_RR policy 205, 231scheduling service xx, 197, 220, 775–776, 779, 803, 815, 819, 828, 836, 1040Schmidt, Douglas C. xxii, xxxvii–xxxix, 3, 6, 15, 167, 197, 244, 351–352, 473,476, 498, 505, 510, 515, 519scope_policy policy 231SECIOP
See secure inter-ORB protocol (SECIOP)secret-key cryptography 947secure inter-ORB protocol (SECIOP) 933–934, 937–938, 987, 1082
interoperability 933–934, 937–938, 987secure socket layer inter-ORB protocol (SSLIOP) 343–344, 944–946,952, 965–968, 972–975, 977–978, 980, 982, 988–995, 997, 999–1001
endpoints 592
o c i w e b . c o m 1183
S
factory 343options 1000SecurityLevel1 module 982SSLAuthenticate option 1001SSLCertificate option 1000SSLIOP::Current interface 988SSLIOP_Factory 651SSLNoProtection option 1000SSLPrivateKey option 1000–1001
secure sockets layer (SSL) protocol 11, 330, 343, 592, 927, 938, 946–957architecture 951example 956SSLAuthenticate option 1001SSLCertificate option 1000
security 925, 927access identity 929administration 932alert protocol 956application
control 931enforcement 932
architecture 938, 940, 944asymmetric encryption 948audit identity 929auditing 931binding 950
client and target 943building 965
security-aware applications 968UNIX variants 966windows 967
certificate 949, 958authority 950, 959commands summary 964issuing 962multiple authorities 970request 960, 962
change cipher specification protocol 955ciphertext 947common secure interoperability (CSI) packages 933–934, 937–938context information 943controlling
1184 o c i w e b . c o m
S
message protection 976peer authentication 977
creatingcertificate authority 959certificate requests 960
credential 932CSI 0 933, 937CSI 1 933, 937CSI 2 933, 937CSI ECMA protocol 934, 938DCE Common Inter-ORP protocol (DCE-CIOP) 933, 937delegation of attributes 930digital signatures 949distinguished name 950environment setup 938, 958, 969establish trust policy 976example 956, 973
building libraries 977security policy enforcement 989SSL session 956
feature packages 932common secure interoperability (CSI) 937main functionality 934optional 936SECIOP + DCE-CIOP interoperability 937SECIOP interoperability 937security mechanism 937
CSI ECMA protocol 938generic security service (GSS) protocol 938secure sockets layer (SSL) protocol 938simple public key mechanism (SPKM) protocol 937
security replaceability 936ORB services 936security services 936
generic security service (GSS) 938handshake protocol 952identity
attributes 929binding 949certificates 949
implementation architecture 938initiating principal 930
o c i w e b . c o m 1185
S
Kerberos 934, 938, 947key
pair 948removing pass phrases 964server 947
Level 1 934Level 2 935libraries
building 977testing 968
messageauthentication codes 949confidentiality 946controlling protection 976integrity 949protection 976
messaging 932module xxvi, 191, 194, 243, 249, 269, 330–331, 338, 343, 349, 592, 616non-repudiation 930, 933, 936, 985OpenSSL 330, 926, 946, 955, 958–960, 962–969, 988, 994, 996, 998optional packages 936options
SSLAuthenticate 1001SSLCertificate 1000SSLNoProtection 1000SSLPrivateKey 1000–1001
originating principal 930peer authentication 977
controlling 977plaintext 947policy
controlling 926, 931, 976example 977
enforcing 927, 932, 982example 989
establish trust 976principal 929
identification and authentication 929privacy enhanced mail (PEM) 958private key 948privilege attributes 929public key 948
1186 o c i w e b . c o m
S
public-key cryptography 948quality of protection (QoP) 976record protocol 953reference model 929removing key pass phrases 964secret-key cryptography 947secure inter-ORB protocol (SECIOP) 933–934, 937–938, 987secure socket layer inter-ORB protocol (SSLIOP) 972secure sockets layer (SSL) protocol 11, 330, 343, 592, 927, 938, 946–957
architecture 951Security module 976–977, 983SecurityAdmin module 933, 935SecurityLevel1 module 933–935, 945, 982–983, 985, 994–995, 999
Current interface 982SecurityLevel2 module 933, 935, 945, 982, 985–987self-signed certificate 950signing certificate requests 962simple delegation 930symmetric encryption 947ticket 947transparent protection 931transport layer security (TLS) 946unaware 926
application 968example 973
building executables 968Security module 925–946, 958, 965–968, 973, 975–983, 985–987, 989, 993, 995–999, 1034, 1074, 1082–1083SecurityAdmin module 933, 935SecurityLevel1 module 933–935, 945, 982–983, 985, 994–995, 999, 1082
Current interface 982SecurityLevel2 module 933, 935, 945, 982, 985–987, 1082
Current interface 985select reactor
single-threaded 518select() operation 351, 518–519, 660select_mt option 519–520, 640, 660select_st option 500–501, 518, 626, 640, 660send_exception() operation 246send_other() operation 247send_poll() operation 245send_reply() operation 246
o c i w e b . c o m 1187
S
send_request() operation 245sendc_ prefix 151, 153, 167SEQUENCE_EVENT type 865, 871, 889, 894SequenceProxyPushConsumer interface 845, 889SequenceProxyPushSupplier interface 894SequencePushConsumer interface 848, 886, 891, 895servant 169, 171
activationUSE_SERVANT_MANAGER 321
locator 318manager 318, 575
NON_RETAIN 321RequestProcessingPolicy 321ServantRetentionPolicy 321
ServantLocator interface 318–319, 321servant-per-AMI-call strategy 166ServantRetentionPolicy policy 318, 321server concurrency 665server interceptors 266
interception points 246request 246
server strategy factory 144, 412, 499, 502–503, 539, 541, 566, 663–666, 668,670–672, 683–686
default options 672interface definition 664options
ORBActiveHintInPOANames 670, 674ORBActiveObjectMapSize 671, 675ORBConcurrency 499, 501, 503–504, 666, 677ORBPOALock 501, 666, 679ORBPOAMapSize 670, 680ORBSystemidPolicyDemuxStrategy 672, 681ORBThreadFlags 667, 682ORBThreadPerConnectionTimeout 503–504, 667, 671, 673, 683ORBUniqueIDPolicyReverseDemuxStrategy 672, 685ORBUserIDPolicyDemuxStrategy 672, 686
Server_Strategy_Factory class 499, 501, 503–504, 541, 663, 673–686SERVER_DECLARED policy 209, 235–238server-differentiated-reply strategy 166ServerRequestInfo class 247service configurator 538–550, 552–561, 567, 634, 639, 641, 757
configuring TAO clients and server 538
1188 o c i w e b . c o m
S
control options 543creation 554DTD 549initialization and finalization 553interface definition 552manager 560objects 552specializing factories 539state 559static service example 558svc.conf file 28, 336, 345, 501, 504, 520, 540, 544–546, 617, 815, 978, 980See also ACE, service configurator xxix
ServiceContexts 209services 701–704
audio/video streaming 703concurrency control 4, 703, 1039Cos prefix 702customizing access 702event xx, xxix, xxxiv, 13, 703, 735–737, 747, 750–771, 773–780, 787, 803, 846, 852IFR_Service 913–914, 916, 923implementation repository 898, 1003, 1005–1009, 1012, 1014–1020, 1023–1024ImplRepo_Service class 582, 596, 620interface repository xxix, 27, 114, 911–913, 917, 923–924life cycle xxxiii, 703, 1039load balancing xxi, xxvii, 13, 294, 586, 688, 703, 1004, 1012, 1039log xxviii, 13naming 582, 702, 705–721, 723–731, 733–734, 776, 801, 863, 870, 888, 898namingViewer utility 728notification xxi, xxv, xxxiv, 13, 735, 843–845, 848–849, 852, 855, 857–860, 862–
863, 865, 882–883, 886, 897, 900, 902, 904, 906, 908–909, 1039nsadd utility 727nsdel utility 727–728nslist utility 727ORB service libraries 13, 294, 703overview of TAO 701persistent state xxi, xxvii, 13property 13, 1039real-time event service (RTES) xx, xxix, xxxiv, 13, 735, 773–780, 784, 787, 793,
796–797, 805, 1040with scheduling 704
scheduling xx, 197, 220, 775–776, 779, 803, 815, 819, 828, 836, 1040security 704
o c i w e b . c o m 1189
S
selectively building TAO services 1039TAO ORB libraries 703TAO_Naming_Server 724, 726time 13, 180, 1040trading 13, 570, 579–580, 582–584, 598, 619, 701, 746, 1040
set_policy_overrides() operation 179, 317, 935, 942, 946set_slot() operation 273shared memory inter-ORB protocol (SHMIOP) 11, 212, 330, 338–341,348, 351, 363–365, 379, 424, 436, 439, 580, 588, 591–592, 594–595, 598–600, 626, 651,691, 721
endpoint 591example 594
factory 339SHMIOP_Factory class 339, 651
shared_libs build flag 20, 24, 85shared_libs_only build flag 24SHMIOP
See shared memory inter-ORB protocol (SHMIOP)shutdown() operation 483–484, 487, 527–529, 991–992, 997shutting down 526single thread model 491SINGLE_THREAD_MODEL policy 489, 494–495smart proxies xxix, 5, 20, 27, 102, 291–294, 296, 300–304, 306–307, 311–313
$ACE_ROOT/ace/config.h 303$ACE_ROOT/include/makeinclude/platform_macros.GNU 303_unchecked_narrow() operation 299asynchronous method invocation (AMI) 292base_proxy_ variable 298batch processing 294choosing between target objects 294client-side caching 293create_proxy() operation 292, 296–297, 299–300, 302, 304–305, 309creating 299default proxy factory 297, 299example 305–313
logging 305executing a sequence of operations 294factory object 304framework 295get_proxy() operation 297–298IDL compiler 292instance() operation 299, 302
1190 o c i w e b . c o m
S
oneway 292overridden member functions 298proxy factory adapter 296, 299register_proxy_factory() operation 296–297smart proxy base class 297smart proxy class 292, 303, 309smart proxy factory class 299, 304, 308smart_proxies build flag 20, 27, 295, 301, 303Smart_Proxies.h 301tao/corba.h 301tao/Smart_Proxies.h 295TAO_Default_Proxy_Factory class 296TAO_HAS_SMART_PROXIES macro 300–301, 303TAO_Proxy_Factory_Adapter class 296TAO_Smart_Proxy_Base class 295–298, 310unregister_proxy_factory() operation 296–297, 305use cases 292–293writing and using 300
smart_proxies build flag 20, 27, 295, 301, 303specializing factories 539SSI
See static skeleton interface (SSI)SSL
See secure sockets layer (SSL) protocolssl_port option 589SSLIOP
See secure socket layer inter-ORB protocol (SSLIOP)Stal, Michael 15, 351, 505, 515, 519standard synchronizers 195static
invocation 12loading 431threads 205
static skeleton interface (SSI) 9, 12static_libs build flag 20, 24, 85–86static_libs_only build flag 20, 24, 85–86static_only build flag 46strategies 538
activation-per-AMI-call 166blocking 646connect 696first in first out (FIFO) 629
o c i w e b . c o m 1191
S
leader_follower 523, 628, 646least frequently used (LFU) 625, 629, 640, 656least recently used (LRU) 625, 629–630, 640, 656no operation (NOOP) 630reactive 646servant-per-AMI-call 166server-differentiated-reply 166
strategy acceptor template 370strategy connector template 392strategy pattern 15string_to_object() operation 275, 346–347, 360, 405, 583, 608, 632–633, 647,706–707, 714–718structured event types 735STRUCTURED_EVENT type 865–866, 871–872StructuredProxyPushConsumer interface 863, 865–867StructuredProxyPushSupplier interface 845, 871–872, 885StructuredPushSupplier interface 860, 866subscription and filtering
real-time event service (RTES) 775subscription_change() operation 851, 860–861, 872, 877–878, 880–881, 886–887, 895supplier proxies 775
real-time event service 775SupplierAdmin interface 844, 851, 865, 875, 882–883, 889support
commercial xxxiiObject Computing Inc. (OCI) xxxiii
suspend directive 548suspend_connection() operation 874suspending and resuming consumer connections
real-time event service (RTES) 783svc() operation 412, 451, 724–725svc.conf file 28, 339–340, 345, 501, 513, 518, 520, 540, 544–546, 635, 978, 980SYNC_NONE 183–184, 187–188SYNC_WITH_SERVER 184SYNC_WITH_TARGET 184–185SYNC_WITH_TRANSPORT 184synchronizers
standard 195SyncScope policy 176, 183–185, 187
SYNC_NONE 183–184, 187–188SYNC_WITH_TRANSPORT 184–185
1192 o c i w e b . c o m
T
system requirements 18See also building
T
tagged components 267, 269, 616TaggedComponent() operation 271
TAO xxiii, 3, 625architecture 7catior utility 271concurrency models 496contributors 1085–1095design goals 4development history 6high performance 13libraries
TAO_PortableServer 69, 73–74minor codes 141ORB service libraries 13, 294real-time CORBA support 13, 229relationship to ACE 15source code distribution 1045, 1053supported platforms xxxiisystem requirements 18TAO_ROOT environment variable 45, 96, 98version xxxi
TAO classesAdvanced_Resource_Factory 336, 339, 341–342, 501, 518, 520CosEvent_Service 744
command line options 748server 737, 744
InterFilterGroupOperator 850, 865, 871, 889, 894IORTable 1014ORB_Task 73, 508–510ORBInitializer 248, 259, 269, 275ORBInitInfo 248ProxyPushSupplier 743Resource_Factory 332, 345, 353, 513, 523, 624, 635–636, 638, 642–650, 652–654,
974–975, 977–978, 980Server_Strategy_Factory 499, 501, 503–504
o c i w e b . c o m 1193
T
TAO_Accept_Strategy 367, 369, 372TAO_Acceptor 144, 355, 363–364, 366–367, 374, 377, 379, 388, 403, 428, 436–
437, 625, 629TAO_Acceptor_Registry 144, 355, 625TAO_Base_Transport_Property 414TAO_CEC_EventChannel 737, 744TAO_CEC_EventChannel_Attributes 745TAO_CEC_Factory
interface definition 750TAO_Connect_Strategy 389, 688, 692TAO_Connection_Handler 363, 365, 406, 408–410, 412, 443, 445, 462TAO_Connection_Purging_Strategy 625, 629–630TAO_Connector 143, 145, 355, 363–364, 388–389, 397–398, 403, 428, 437, 625,
629TAO_Connector_Registry 143, 145, 355, 625TAO_Creation_Strategy 367–368, 372TAO_Default_Proxy_Factory 296TAO_Default_Resource_Factory 366TAO_EC_Factory 816
dispatching 817servant-related functions 817
TAO_Endpoint 363, 365, 367–368, 384, 389–390, 415–419, 427TAO_Flushing_Strategy 457, 460, 625, 628TAO_GIOP_Synch_Invocation 461TAO_IIOP_Acceptor 356TAO_IIOP_Profile 357, 422, 424TAO_IIOP_Protocol_Factory 354, 432TAO_IOR_Parser 632, 647TAO_LF_Strategy 626TAO_Local_RefCounted_Object 220, 226, 268, 325TAO_MProfile 143, 367–368, 381–383, 388, 419–420TAO_Naming_Client 723TAO_Naming_Server 724, 726TAO_Notify_EventChannelFactory_i 896–897TAO_ORB_Core 144, 366–368, 376, 379, 389–391, 398–399, 408, 410, 419–420,
422, 442–443, 445–446, 448–449, 566, 664–665, 688, 692TAO_Profile 363, 365, 382, 386–387, 389–390, 402–403, 405–406, 418–421, 423–
424, 427TAO_Protocol_Factory 355, 363, 365, 428, 435–436TAO_Proxy_Factory_Adapter 296TAO_QtResource_Factory 636–637TAO_Resource_Factory 624–625
1194 o c i w e b . c o m
T
TAO_Server_Strategy_Factory 374, 397, 664–665TAO_Smart_Proxy_Base 295–298, 310TAO_Synch_Refcountable 442TAO_Transport 363, 389–390, 400, 402, 407, 410, 414, 439, 442–447, 453, 456,
459, 463, 472, 630, 688, 690TAO_Transport_Cache_Manager 414, 442, 444–445, 630TAO_UIOP_Acceptor 367, 374–377, 379–384, 386–387, 437TAO_UIOP_Connector 389–391, 397–400, 403–406, 437TAO_UIOP_Properties 368, 390, 409–410TAO_UIOP_Protocol 429–430, 436–439, 449TAO_UIOP_Protocol_Factory 429–430, 436–439TAO_UIOP_Transport 410, 446, 448–450, 452–453TAO_Unknown_Profile 403TAO_Wait_Strategy 442, 445, 688, 690TAO_XT_Resource_Factory 638–639
TAO configuration 537Client_Strategy_Factory class 501, 513–514, 516, 521, 524, 541, 687, 694, 696–
698, 980directives 540
dynamic 331–332, 501, 541–542, 553, 557compontents 542
resume 548, 559static 501, 540–541, 553, 561, 624, 663, 687, 749, 815suspend 548, 559
object factory 538–539Resource_Factory class 332, 345, 353, 513, 523, 540–542, 550–551, 618, 624,
635–636, 638, 642–650, 652–654, 974–975, 977–978, 980server strategy factory 539Server_Strategy_Factory class 499, 501, 503–504, 541, 663, 673–686specializing factories 539static directive 540
TAO librariesORB service xxvii, xxxiii, 586, 688TAO_BiDirGIOP 190TAO_CosConcurrency 703TAO_CosEvent 703TAO_CosLifeCycle 703TAO_CosLoadBalancing 703TAO_CosNaming 73–74, 86, 108, 703–705TAO_CosNotification 703, 897TAO_CosProperty 703TAO_CosTime 704
o c i w e b . c o m 1195
T
TAO_CosTrading 703TAO_DsEventLogAdmin 703TAO_DsLogAdmin 703TAO_DsNotifyLogAdmin 703TAO_ETCL 703TAO_IORTable 70, 73–74TAO_Messaging xxvi, 69, 176, 188TAO_PortableGroup 331, 345TAO_PortableServer 69, 73–74TAO_RTCORBA 69, 73–74, 145, 220, 226, 229TAO_RTCORBAEvent 73–74TAO_RTEvent 73–74, 703–704, 786–787TAO_RTEventLogAdmin 703TAO_RTOLDEvent 703TAO_RTPortableServer 69, 73–74, 229TAO_RTSched 703–704TAO_RTSchedEvent 704TAO_Security 704TAO_Strategies 69, 331, 336, 339, 341–342, 367, 389, 408, 429, 433, 501, 518,
520, 639, 656–657, 659, 661TAO_Svc_Utils 73–74, 703–704
TAO macrosTAO_BASE_LIBS 89TAO_CLNT_LIBS 89TAO_CONNECTION_CACHE_MAXIMUM 644TAO_CONNECTOR_REGISTRY_NO_USABLE_PROTOCOL 143TAO_DEFAULT_IMPLREPO_SERVER_REQUEST_PORT 596TAO_DEFAULT_NAME_SERVER_REQUEST_PORT 605, 707TAO_DEFAULT_TRADING_SERVER_REQUEST_PORT 619TAO_HAS_AMI 26TAO_HAS_AMI_CALLBACK 26TAO_HAS_AMI_POLLER 26TAO_HAS_CORBA_MESSAGING 27, 229TAO_HAS_INTERCEPTORS 28TAO_HAS_INTERFACE_REPOSITORY 27TAO_HAS_MINIMUM_CORBA 25, 229, 1033, 1038, 1077TAO_HAS_RT_CORBA 27, 229TAO_HAS_SMART_PROXIES 27, 300–303, 307TAO_INVOCATION_LOCATION_FORWARD_MINOR_CODE 142TAO_INVOCATION_RECV_REQUEST_MINOR_CODE 142–143TAO_INVOCATION_SEND_REQUEST_MINOR_CODE 142TAO_MPROFILE_CREATION_ERROR 143
1196 o c i w e b . c o m
T
TAO_PLATFORM_SVC_CONF_FILE_NOTSUP 28TAO_POA_DISCARDING 142TAO_POA_HOLDING 142TAO_RESUME_CONNECTION_HANDLER 414TAO_SRVR_LIBS 89TAO_STD_PROFILE_COMPONENTS 616TAO_TAG_UIOP_PROFILE 375, 398TAO_TIMEOUT_CONNECT_MINOR_CODE 143TAO_TIMEOUT_RECV_MINOR_CODE 143TAO_TIMEOUT_SEND_MINOR_CODE 143TAO_UNHANDLED_SERVER_CXX_EXCEPTION 142
TAO_BiDirGIOP libraries 190tao_idl program 33–34, 52, 58, 93–102, 105, 107–108, 171, 323, 914TAO_IDL_PREPROCESSOR environment variable 52, 96, 98TAO_IDL_PREPROCESSOR_ARGS environment variable 98tao_ifr program 913–915, 923
options 915tao_imr program 1005, 1009, 1011, 1014, 1019–1020TAO_Notify_EventChannelFactory_iclass 896–897TAO_ORBSVCS environment variable 750, 816, 966–967TAO_PortableServer library 69, 73–74TAO_ROOT environment variable 32, 45, 96, 98, 967target_is_a() operation 257TCP/IP
See transmission control protocol/internet protocol (TCP/IP)TCP_NODELAY option 606TCPProtocolProperties 212, 214, 221–224telecom servicesSee log servicetemplate option 85–86, 95, 99testing 1069
building tests 1069running tests 1070
ACE tests 1070ORB Services tests 1072TAO tests 1070
the_priority attribute 203–204, 234, 242THR_BOUND 666, 682THR_DETACHED 666, 682THR_JOINABLE 509–510THR_NEW_LWP 408, 411, 509–510, 667, 682THR_SUSPENDED 682thread pools 195, 197–198, 205–208, 231
o c i w e b . c o m 1197
T
concurrency model 497, 505–507, 520, 525reactor 207, 497, 505–507, 516, 518–520
threading model 493thread-per-connection concurrency model 342, 348, 374, 397, 412–413,497, 501–504, 667, 683, 748ThreadPolicy policy 489, 493–494, 496thread-pool reactor 660ThreadpoolId 197, 206–208, 240ThreadpoolLanes 207ThreadpoolPolicy 206threads 23
dynamic 205lanes 205related operations 481static 205thread specific storage (TSS) 15
ti build flag 45–47time independent invocation (TII) 149time service 13, 180, 1040TimeBase module 180Timeout property 853timeouts 215
real-time event service (RTES) 797TimeT type 180tk_reactor build flag 20, 26, 640, 660TLS
See transport layer security (TLS)to_CORBA() operation 203, 216, 225, 227to_native() operation 203, 216to_network() operation 225, 227to_string() operation 721to_url() operation 721tp option 660trading service 13, 570, 579–580, 582–584, 598, 619, 701, 746, 1040TradingServicePort environment variable 619training xxxiii, xxxv, 6
Advanced CORBA Programming Using TAO xxxivCORBA Programming with C++ xxv, xxxi, xxxiv, 7, 31, 112–113, 153, 180, 292,
356, 626CORBA Programming with Java xxxivIntroduction to CORBA xxxiv, 927Introduction to Real-Time Systems xxxv
1198 o c i w e b . c o m
U
Object Oriented Design Patterns and Frameworks xxxvUsing the ACE C++ Framework xxxiv
TRANSIENT exception 113, 117, 142–143, 609, 669–671, 680, 684, 975, 1004,1010–1011transmission control protocol/internet protocol (TCP/IP) 8, 212, 327–329, 332, 338, 350, 586, 599, 631, 651, 814, 951, 1075transport 358, 365
multiplexing strategies 520transport layer security (TLS) 946try_lock() operation 204type codes
wchar 444, 446, 635–636, 654typed event channels 737
U
UDPSee user datagram protocol (UDP)
UIOP_Factory class 336, 429–430, 651–652UIOP_Lite_Factory class 651UIPMC
See unreliable IP multicast protocol (UIPMC)unconstrained interface 316University of California, Irvine
See DOC GroupUNIX xxvi, 11, 18–19, 34, 38, 83, 94, 97, 109, 335, 339, 556, 563, 565, 590–592, 606,651, 966
building ACE and TAO 1031configuring source code 1033customizing ACE and TAO builds 1037set environment variables 1032verifying build 1036See also building 1037
UNIX inter-ORB protocol (UIOP) 212, 330, 335–339, 342, 345, 374–448,580, 588, 592, 595, 598, 600, 608–609, 651–652, 1080–1081
endpoint 592examples 594
UIOP_Factory class 336, 429–430, 651–652UIOP_Lite_Factory class 651
unlock() operation 204–205
o c i w e b . c o m 1199
V
unmarshaling 657unregister_proxy_factory() operation 296–297, 305unreliable IP multicast protocol (UIPMC) xxvii, 330–331, 344–346, 348use_locked_data_blocks() operation 628USE_SERVANT_MANAGER policy 321user datagram protocol (UDP) 11, 329–330, 341, 343–344, 350, 593, 651, 805,808–809, 811–814USER_ID policy 1013Using the ACE C++ Framework course xxxivutilities
catior 271naming service 727
nslist 727tao_imr 1005, 1009, 1011, 1014, 1019–1020
V
va4 build type 44validate_connection() operation 317value types
abstract value type 288class 282compliance 289defining in IDL 280example 282factory 284implementing 282inheritance 287regular value types 287, 289uses 280value type class 282value type factory 284
value_project option 45, 47value_template option 46–47ValueFactoryBase class 284Vanderbilt University xvii–xviii, xxxvii–xxxviii, 3, 6, 1085
See also DOC Groupvc6 build type 38, 43, 46–47, 49, 57, 63, 71vc7 build type 43, 49, 57, 63vc71 build type 38, 44, 57
1200 o c i w e b . c o m
W
Vinoski, Steve xxv, xxxi, 197, 244Visual C++ xxvi, xxx, 19, 38–39, 41, 43–44, 1041
build libraries 1045configure source code 1043set up your environment 1043verify build 1045
Vlissides, John 15, 352VxWorks iv, 532, 576, 724, 1030, 1055–1061, 1069–1072
environment 1057kernel and system configuration 1055multicast routing 1056using ACE and TAO 1055
W
wait strategies 520, 690wait_for_completion parameter 481, 483–484, 487, 527–528WaitForMultipleObjects() operation 351, 660wait-on-leader-follower concurrency model 497, 510–513, 515–516, 521,523–524, 694–695wait-on-reactor concurrency model 497, 514–515Washington University, St. Louis, Missouri xviii, xxiv, xxxvii–xxxviii, 3, 6
See also DOC Groupwchar type codes 444, 446, 635–636, 654wfmo reactor 526, 640, 660Windows xxi, 31–32, 38, 556
Borland C++ 1049–1054registry persistence 1019
work pending() operation 164, 481, 483–485, 526–527wxWindows 728
X
X windows toolkit 636–637XML service configurator 549–550
syntax 550xt_reactor build flag 20, 25XtAppContext 638