Table of Contents
preface xvii
Who should read this book xvii
Conventions xviii
What you need to use this book xix
Code samples xix
Keep in touch xix
acknowledgments xx
author online xxi
Chapter 1
Distributed Computing 1
1.1 Enterprise and information technology
2
1.2 Enterprise applications
3
1.3 What is distributed computing?
3
Application partitioning 5
1.4 Business application architectures
8
The single tier or host-centric architecture 8
The two-tier or client/server architecture 10
The n-tier or network-centric architecture 16
Application server features 19
1.5 Summary
24
Chapter 2
EAServer overview 25
2.1 What is Enterprise Application Server?
26
2.2 What is Jaguar CTS?
27
Jaguar CTS architecture 28
The Jaguar Manager 33
Jaguar components 34
Jaguar client applications 35
2.3 Jaguar and CORBA
38
CORBA 101 39
How Jaguar and CORBA work 41
2.4 Summary
46
Chapter 3
Jaguar CTS basic administration 47
3.1 Installation and setup of Jaguar CTS
48
3.2 Starting and stopping Jaguar CTS
50
Jaguar as an NT service 51
Jaguar as a console application 54
Basic administration of Jaguar CTS 55
Logging into the Jaguar Manager 56
Logging into the Security Manager 57
Getting around in the Jaguar Manager 57
3.3 Servers
60
The jagadmin user id and password 61
Server properties 62
Logging Jaguar CTS activity 62
Listeners 63
Configuring HTTP on Jaguar 69
Logging out of the Jaguar Manager 70
3.4 Summary
70
Chapter 4
Jaguar CTS packages and components 73
4.1 Packages and components
74
4.2 PowerBuilder Jaguar component project
76
4.3 Administering packages in the Jaguar Manager
77
Creating a new package 77
Installing the package on a server 79
Deleting a package 80
Modifying a package 81
4.4 Administering components in the Jaguar Manager
81
Installing components 81
Modifying components 89
Deleting components 90
Adding methods to components 90
Modifying methods on components 94
Deleting methods from components 94
4.5 Summary
94
Chapter 5
Jaguar CTS connection caches 97
5.1 Connection cache administration
100
Creating a connection cache 100
Installing caches in a Jaguar server 102
Modifying a connection cache 103
Deleting a connection cache 109
The Ping utility 109
General guidelines for connection cache installation 110
Adaptive Server Enterprise 111
Oracle 116
Microsoft SQL Server 120
Adaptive Server Anywhere and other ODBC connections 126
5.2 Summary
128
Chapter 6
Building Jaguar CTS components in PowerBuilder 129
6.1 PowerBuilder as a component model
130
Building a custom-user object 130
6.2 The Jaguar component wizards
133
6.3 Building a Hello World object
143
6.4 Deploying the Jaguar object
148
6.5 Adding another Jaguar component
150
6.6 Building a project using the project wizard
151
6.7 Summary
152
Chapter 7
Building a Jaguar CTS client in PowerBuilder 153
7.1 PowerBuilder client applications
154
7.2 Building a Jaguar client in PowerBuilder
154
7.3 The connection object
156
Connection object properties 157
Connection object functions and events 159
Connecting to Jaguar 160
Using the connection wizard 162
Building a custom connection object 170
Connection object error event 173
Connection object error codes 176
The SystemError event 176
7.4 Generating Jaguar proxies
177
7.5 The Hello World client application
183
Connecting to Jaguar 184
Accessing a Jaguar component 185
Running the application 187
7.6 Destroying the Jaguar proxy
189
7.7 Summary
190
Chapter 8
The Jaguar component life cycle 191
8.1 Component-based development
192
8.2 Jaguar CTS components
193
Jaguar component variable space 193
The Jaguar component life-cycle 195
Deactivating and destroying stateful components 202
8.3 Stateful components
210
Setting a component to be stateful 210
Instance timeout property 216
8.4 Stateless components
218
Setting a component to be stateless 219
Early deactivation 222
8.5 Instance pooling
224
Supporting instance pooling 225
Techniques for building pooled components 227
8.6 Managing state for stateless components
233
8.7 Jaguar component types
234
8.8 Summary
247
Chapter 9
Guidelines for building Jaguar components in PowerBuilder 249
9.1 PowerBuilder component interfaces
250
Attributes 252
Functions 253
Events 257
Choosing between events and functions 260
9.2 Calling methods
260
Calling functions or events on Jaguar components 261
9.3 Passing information to methods
263
Restrictions on method arguments 263
Restrictions on method return values 263
Passing NULL values 264
Passing arguments to methods 266
Passing object references 269
Jaguar component validation 271
9.4 PowerBuilder component implementation
273
Inheritance 273
Accessing other PowerBuilder objects 274
Accessing Jaguar objects on the same server 282
Accessing Jaguar objects on a different server 285
9.5 Error handling and logging
286
Adding error handling to the Jaguar base object 289
9.6 Summary
289
Chapter 10
Database connectivity and data retrieval 291
10.1 Connecting to a database
293
Transaction Object 294
DBPARM Options 299
Adding database connectivity to the base Jaguar object 303
Handling database initialization and connectivity 304
10.2 Retrieving data
305
Embedded SQL 306
The DataWindow 310
The DataStore 312
10.3 Data Retrieval using the client/server model
314
10.4 Data retrieval using Jaguar CTS
318
Building a DataStore base object 319
Building the Jaguar component 321
Making the client Jaguar ready 325
10.5 Getting data from a Jaguar component
327
Using the DataWindow on the client 328
Passing back data using a string 328
Using a structure to pass data 331
Using the ResultSet object 335
DataWindow synchronization 337
10.6 Using the DataWindow object notation
338
10.7 DataWindow children
339
10.8 Summary
343
Chapter 11
Jaguar Transactions 345
11.1 Handling data updates
346
Handling updates in a distributed application 348
Updates using embedded SQL 348
Updates using the DataStore 357
11.2 DataWindow synchronization
361
How DataWindow synchronization works 362
Using DataWindow synchronization for updates 366
Using DataWindow synchronization with several targets or sources 371
11.3 Transactions
373
11.4 Jaguar transactions
375
TransactionServer object 378
Adding transaction handling to the Jaguar base object 381
Handling transactions and the component lifecycle 381
Inter-component transactions 384
Setting the Transaction Timeout property 388
11.5 Summary
389
Chapter 12
Jaguar CTS Basic Security 391
12.1 Roles
392
Admin role in Jaguar 392
Debug Role in Jaguar 392
Adding a new role 393
Deleting an existing role 394
Modifying an existing role 395
Assigning users and groups to roles 395
Removing users and groups from roles 397
Refreshing roles 397
12.2 Authentication Support
398
User and group validation 398
Operating system authentication 399
12.3 Securing the Jaguar Manager
403
12.4 Securing the Jaguar server
404
12.5 Securing packages and components
406
Adding roles to packages 407
Removing roles from packages 408
Adding roles to components 409
Removing roles from components 409
Reviewing package and component security 410
12.6 Deploying components in Jaguar
412
12.7 Generating proxies for Jaguar components
413
12.8 Encryption support in Jaguar
413
12.9 Summary
414
Chapter 13
Setting up the development environment and deploying an application 415
13.1 Debugging an application
416
Using the log file 416
The remote debugger 417
13.2 Setting up the development environment
424
PowerBuilder client applications 424
PowerBuilder Jaguar components 428
Building client applications and components 430
13.3 Deploying the application
431
13.4 Runtime monitoring and managing Jaguar
437
Performance considerations 440
13.5 Summary
443
Chapter 14
Asynchronous Processing on Jaguar CTS 445
14.1 Building a multi-threaded PowerBuilder application
448
Threads 448
Shared objects 448
How the shared object handles requests 454
Calling methods on a shared object 455
Server push 457
Building a basic notify object 462
Building a shared object 464
Putting the pieces together 467
Appendix A
Jaguar, PowerBuilder, and CORBA data types 473
Appendix B
TCP/IP primer 477
B.1 TCP/IP
478
The Internet Protocol (IP) 479
Communication between networks 482
Transmission Control Protocol (TCP) 482
B.2 Installing TCP/IP on Windows 95/NT
484
B.3 Using DNS and WINS
488
Appendix C
Where to find additional information 491
C.1 Web sites and news groups
491
PowerBuilder and Jaguar 491
Client/Server 493
CORBA 493
COM/DCOM 493
World Wide Web 493
HTML and JavaScript 494
CGI 494
ISAPI 494
Internet Network Information Center (InterNIC) 494
Security 495
C.2 Magazines and books
495
PowerBuilder 495
Client/Server 496
COM/DCOM 496
CORBA 497
TCP/IP 497
HTML 497
JavaScript 497
Development 498
index 499