Download Xellerate 5.0 Developer`s Guide

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Database wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Clusterpoint wikipedia , lookup

Versant Object Database wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Transcript
Applications Anytime Anywhere
Xellerate 5.0
Developer’s Quick-Start Guide
FOR INTERNAL USE ONLY
Document version 1.0
Proprietary and Confidential
Copyright © 2000, Thor Technologies, Inc. All Rights Reserved
Table of Contents
1.0. INTRODUCTION.................................................................................................................. 1
1.1. PRODUCT OVERVIEW ......................................................................................................................... 1
1.2. CLIENT APPLICATION ........................................................................................................................ 2
1.3. MIDDLEWARE SERVER ...................................................................................................................... 3
1.4. DATABASE SERVER ........................................................................................................................... 3
2.0. RUNNING XELLERATE..................................................................................................... 4
3.0. DEVELOPMENT ENVIRONMENT SETUP .................................................................... 7
3.1. OVERVIEW ......................................................................................................................................... 7
3.2. INSTALLING JAVA SDK ..................................................................................................................... 7
3.3. INSTALLING CS-RCS CLIENT ............................................................................................................ 8
4.0. SOURCE CODE OVERVIEW............................................................................................. 9
5.0. BUILDING XELLERATE.................................................................................................. 10
5.1. COMPILATION .................................................................................................................................. 10
5.2. EXECUTION ...................................................................................................................................... 10
6.0. PRODUCTION TEST ENVIRONMENT ......................................................................... 11
7.0. DATABASES AND DATA MODEL ................................................................................. 13
8.0. ORDER DATABASE STRUCTURE AND LOGIC......................................................... 17
8.1. ACCOUNT INFORMATION ................................................................................................................. 17
8.2. ORDER INFORMATION ...................................................................................................................... 18
8.3. ORDER APPLICATION DATA ............................................................................................................ 21
9.0. MIDDLEWARE ARCHITECTURE ................................................................................. 22
9.1. OBJECT MANAGER ........................................................................................................................... 22
9.2. SESSION MANAGER.......................................................................................................................... 22
9.3. DATABASES ..................................................................................................................................... 22
9.4. QUERYING........................................................................................................................................ 22
9.5. SAVING ............................................................................................................................................ 23
9.6. CLIENT SIDE OPERATIONS ............................................................................................................... 23
Xellerate 5.0 Developer’s Quick-Start Guide
1.0. Introduction
The Developer’s Quick-Start Guide provides an introduction to the Xellerate architecture
and will enable you to set up your development environment for Xellerate 5.0. This
document provides an overview of the following topics:
• Development environment setup
• Source code overview
• Building Xellerate
• Databases and data model
1.1. Product Overview
Xellerate 5.0 evolved from CarrierBase 4.0, which is commonly categorized as an order
provisioning software. The goal of the product is to minimize the time between order
acceptance and delivery. It provides a powerful yet simple way of defining, tracking,
forecasting and analyzing business processes. Initially the target market for the product
was the Telecommunications Service Providers. Winstar Wireless, for example, used
CarrierBase and reduced its delivery cycle by 94%, from 39 days to 3 days.
Xellerate 5.0 is a major rewrite of CarrierBase 4.0 to reposition the product for use in the
emerging Application Service Providers (ASPs) market. Various components of the
product are illustrated in the following figure.
Xellerate Core Management Engine
Process/Event Engine
Customer Mgt.
+
Thor Technologies, Inc.
Export/Import Mgr.
+
Automation Mgr.
+
Page 1
Xellerate 5.0 Developer’s Quick-Start Guide
The Xellerate 5.0 Core Management Engine consists of the following
components:
•
•
•
•
Process/Event Engine - allows the administrator to easily set-up and configure
processes on the fly; provides the capability to automate exception handling and
process evaluation; and facilitates the assignment and management of tasks to the
various involved players.
Customer Management - provides a comprehensive representation of all
customer information together with their contacts, order history and outstanding
issues; ties directly into the Process/Event Engine and provides therefore a realtime view of all customer related issues.
Export/Import Manager - allows the administrator to set up complex export and
import processes; is tightly integrated into the Process/Event Engine and provides
therefore a powerful tool for the management of interfaces to other systems.
Automation Manager - allows the administrator to define the automation of any
desired process and also provides the capability to automate export/import
processes.
Development of Xellerate 5.0 included migration of CarrierBase 4.0 from a two-tier
client-server architecture to a three-tier architecture, and rewriting the entire source code
base in Java. Xellerate’s three-tier architecture consists of the client application, the
middleware server and the database server, as illustrated below:
JDBC
Corba
Client
App
Middleware
Server
Database
Server
The middle-tier in this new architecture can be viewed as a combination of some of the
functionality of CarrierBase 4.0 client and the functionality contained in triggers and
stored procedures contained in the CarrierBase 4.0 database
1.2. Client Application
The first tier, client application, corresponds to the Xellerate application, which includes
the GUI component. Xellerate 5.0 client applications never interact directly with the
database. The login process consists of contacting a middleware server, providing the
login credentials, and then letting the middleware server validate them. Queries are
executed and dispatched to the middleware server that retrieves the result set as a return
value. The middleware server saves and deletes at the client's request. The client has no
knowledge of the actual operation being performed.
There are also a few lower-level architectural differences between Xellerate 5.0 and
CarrierBase 4.0. One of the most apparent is that Xellerate forms cannot generate SQL
queries dynamically. Instead, the base query is specified for the form and each field on it
is assigned a column relative to a result set column. In addition, database writes are not
done by the client but dispatched from the client to objects in the middleware that are
designed to accomplish that purpose.
Thor Technologies, Inc.
Page 2
Xellerate 5.0 Developer’s Quick-Start Guide
1.3. Middleware Server
The second tier, middleware server, implements all the business logic. It acts as a bridge
between the client application and the database. This is the only component that has
direct access to the database itself. Upon startup, the server basically consists of a sole
CORBA object that responds to client requests such as logins, queries, saves and deletes.
The server establishes a database connection for every client login and uses it to process
client queries.
For every save or delete made by the client, the middleware creates an object to serve that
request, registers the object with the ORB, and notifies the client that the object is ready
to serve the client's request. The client specifies which record it wishes to operate upon
and then sends all the relevant data to the server for processing. The object created by the
server runs all business rules on the data and then generates and executes the necessary
SQL statements to complete the client's request.
1.4. Database Server
The third tier, database server, implements the Xellerate data model. Xellerate 5.0
database maintains the same data structure used in CarrierBase 4.0 without any triggers,
stored procedures, and views because all of the business logic is implemented in the
middleware. Also, removing the processing load from the database server makes the
application independent from the database implementation and the vendor. Therefore,
application in theory should be able to run on any ANSI SQL compliant database.
Thor Technologies, Inc.
Page 3
Xellerate 5.0 Developer’s Quick-Start Guide
2.0. Running Xellerate
To run the Xellerate 5.0 client from the command line, you need to execute the
following:
Thor.CarrierBase.GUI.tcAppWindow class
Java Thor.CarrierBase.GUIBase.tcAppWindow
This can also take several parameters: -nostartup Xellerate 5.0 allows you to set a startup
window or windows, which are loaded whenever you start the client. This option will
turn those windows off.
-server database name
= Name of the database to be used.
-user login name
= The login name.
-password password
= The login password.
Databases currently in use:
• Thor
• Java
• WinstarTest
• JavaRegressionTest
• WinstarFull
For example:
java Thor.CarrierBase.GUIBase.tcAppWindow –nostartup –server java
–user sa –password sa
An example batch file to run the client is located at:
\\lolita\e$\devel\java\carrierclient.cmd
To be able to run Xellerate using this batch file, first, the developer should map the
network drive (T:\) to the E:\ drive on Lolita as follows:
1. Launch your Windows Explorer.
2. From the Tools menu, select Map Network Drive.
3. From the Drive: drop-down, select T:\.
4. From the Folders drop-down, select \\Lolita\e$
Then the developer must create a shortcut to the Xellerate application as follows:
1. Right-click anywhere on the surface of your desktop.
2. In the context menu that appears, move the mouse pointer over “New” and
select “Shortcut” in the sub-menu. This will bring you to the Create Shortcut
wizard.
3. Type, “T:\Devel\Java\CarrierClient.cmd” into the text box (this
assumes you mapped Lolita to your computer as described above) and click
the Next button.
4. On the next screen, type “Local CarrierBase” into the text box and click the
Finish button.
Before running the Xellerate application, check with your system administrator about
your login information (database name, user id, password). Typically, we use the “Java”
database for testing purposes.
Thor Technologies, Inc.
Page 4
Xellerate 5.0 Developer’s Quick-Start Guide
Finally, double-click on the desktop shortcut labeled, “Xellerate” to run the client. This
will display the following login screen:
Running the client assumes that you are connecting to an already running
Server/Object/Manager. To run it locally, you must execute both the
Thor.ServerManager class and Thor.ObjectManager class. You should
always specify a separate naming context for your server so that it does not interfere with
everyone else. You will need to pass the property CBASE.ContextName with a unique
name (your hostname) to the JVM for both the client and the server by using –D flag
java –DCBASE.ContextName=CRASH Thor.ServerManager
java –DCBASE.ContextName=CRASH Thor.ObjectManager
java –DCBASE.ContextName=CRASH Thor.CarrierBase.GUIBase.tcAppWindow
Thor Technologies, Inc.
Page 5
Xellerate 5.0 Developer’s Quick-Start Guide
After you successfully login to Xellerate, the following explorer screen appears:
For additional information, the complete Thor documentation page is located at:
http://bob/documentation/Java/revisedlibrary/index.html.
This page includes links to the tutorial series and the full API documentation.
Thor Technologies, Inc.
Page 6
Xellerate 5.0 Developer’s Quick-Start Guide
3.0. Development Environment Setup
3.1. Overview
CS-RCS is the current version control system at Thor. This section outlines how the
developers should setup their development environment using CS-RCS. Before installing
the development software check your drive mappings to make sure that the network drive
(T:\) is mapped to the E:\ drive on Lolita.
Before you start development in the Xellerate environment you will need to install the
following software:
• Java 2 SDK ver. 1.2.2_006 – Java Software Development Kit
• RCS ver 2.5 (CS-RCS) – Version Control System
The installation software will require administrative privileges. Please check with your
system administrator about this.
3.2. Installing Java SDK
The Xellerate application currently operates on the JDK 1.2.2 runtime environment. To
install the Java Software Development Kit, run the following executable file located at:
\\lolita\e\Software_Installs\Java\JDK1.2\jdk-1_2_2_006-win.exe.
After the installation, verify that the JDK runtime directory <install_dir>\bin
is in your system’s PATH variable by typing, “echo %path%” at the DOS command
shell. If the \bin subdirectory is not there, then you should add it to your PATH using the
System Properties dialog box from the Windows Control Panel.
Thor Technologies, Inc.
Page 7
Xellerate 5.0 Developer’s Quick-Start Guide
3.3. Installing CS-RCS Client
The CS-RCS version control system enables you to check in/out your Java source code
files. We currently have five projects that are actively being used:
• DataAccess – Lower-level data access components
• Server – The middleware server
• DataObjects – Data objects and translation support
• GUIBase – Core components of the client
• Xellerate – Everything else.
Although work is freely developed in the Xellerate environment, (anyone can work on
anything) several components have been assigned to specific individuals including
DataAccess, Server, DataObjects, and GUIBase. These components are strictly Off Limits
and should not be modified, added, or deleted unless explicitly instructed to do so. Please
see your system administrator if you have any questions.
To install CS-RCS version control software, run the following executable file, located at:
\\lolita\e\Software_Installs\cs-rcs\SETUP.EXE.
At the Component Software RCS Version 2.5.040 Setup dialog box:
1. Select, Workstation Setup to install CS-RCS on an additional workstation in a
networked workgroup environment. The License Agreement window appears.
2. Click the Next button and the User Name dialog box appears.
3. Type your assigned current user name in the appropriate field (or ask your
system administrator if you don’t have one). The Workstation Set up dialog box
appears.
4. At the Common Repository Tree Root field, type \\lolita\e\DEVEL\RCS in
the appropriate field and click the Next button. The Program Location dialog box
appears.
5. Accept the default Destination Folder, c:\program
files\componentsoftware\cs-rcs and then click the Next button. The
system starts copying the appropriate files.
6. Click the Finish button to complete the CS-RCS installation.
7. Click the Yes button to reboot your computer and enable the new settings. The
CS-RCS online help file appears the next time you reboot. You can navigate
through the help topics for additional information or click the Cancel button to
close it.
For more information regarding CS-RCS, refer to the following user documentation
located at: \\lolita\e$\Software Installs\cs-rcs\CS-RCS.DOC
Thor Technologies, Inc.
Page 8
Xellerate 5.0 Developer’s Quick-Start Guide
4.0. Source Code Overview
The complete Xellerate 5.0 source code consists of several JAR files. The source is
divided among the following five CS-RSC projects:
• DataAccess – Low-level data access components
• Server – Middleware server (server .jar)
• DataObjects – Data objects and translation support
• GUIBase – Base classes for the client
• Xellerate5.0a1 – Client code
The projects are setup as a hierarchy, such that DataAccess is independent of other jars.
Server is dependent only on DataAccess. DataObjects requires Server and DataAccess.
GUIBase requires DataObjects, Server and DataAccess. Lastly CarrierBase jar depends
on all other jars.
Development normally takes place within the Xellerate5.0a1 project. Each project is
represented by a Java archive (Jar) file, which collectively forms the following package
hierarchy.
Directory
Xellerate/
Dialogs/
Editors/
Events/
OrderContentItemEvents/
ScheduleItemEvents
Extm/
Forms/
GUIBase/
text/
GUICore/
Images/
DataAcess/
Server/
Util/
Java Package Name
Thor.Xellerate
Thor.Xellerate.Dialogs
Thor.Xellerate.Editors
Thor.Xellerate.Events
Thor.Xellerate.Events.OrderContentItemEvents
Thor.Xellerate.ScheduleItemEvents
Thor.Xellerate.Exlm
Thor.Xellerate.Forms
Thor.Xellerate.GUIBase
Thor.Xellerate.GUIBase.text
Thor.Xellerate.GUICore
Thor.Xellerate.Images
Thor.DataAccess
Thor.Server
Thor.Util
It is easier to use local copies of files that you are actively working on and also with the
class library, located on Lolita e$, for the rest of the classes.
For more information regarding the Xellerate framework (development, Java classes,
components, etc.) please refer to the following tutorial series located at:
http://bob/documentation/Java/revisedlibrary/index.html
Thor Technologies, Inc.
Page 9
Xellerate 5.0 Developer’s Quick-Start Guide
5.0. Building Xellerate
Before compiling any source code files (.java), developers should confirm if their T:
drive is mapped correctly to Lolita e$: and that the following command file is executed at
the command line:
\\lolita\e\DEVEL\Java\classpath.cmd
This will set the classpath variable to point to the appropriate jar files and directories as
required by the application.
If your T: drive is not mapped to Lolita, then copy the classpath.cmd file to your local
drive and modify the first line of the file to reflect your drive mappings. Whereas ‘.’ is
the first entry in the classpath variable and indicates you must compile and execute your
code from the root directory of your Xellerate project. This can be modified to point to
your development directory so that Xellerate can be compiled and executed from
anywhere.
5.1. Compilation
Specify the location of your changes by inserting the working directory in front of the
classpath variable when invoking the Java compiler.
For example,
javac –classpath <local_classpath>;%classpath% *.java
5.2. Execution
Start the Xellerate application by invoking the Java Virtual Machine with the following
command arguments
-DCBASE.ContextName=lolita
The following argument is the entry point to the Xellerate application:
Thor.Xellerate.GUIBase.tcAppWindow
Thor Technologies, Inc.
Page 10
Xellerate 5.0 Developer’s Quick-Start Guide
6.0. Production Test Environment
The following diagram shows how the system architecture is implemented for the
production environment.
Thor Technologies, Inc.
Page 11
Xellerate 5.0 Developer’s Quick-Start Guide
The following diagram shows how the network architecture is implemented.
Thor Technologies, Inc.
Page 12
Xellerate 5.0 Developer’s Quick-Start Guide
7.0. Databases and Data Model
The following diagram shows how the three relationship types are used and how their
cardinality is specified below the connection.
On the following two pages, Diagrams A and B show the database relationship model for
the most important tables. The black boxes indicate the major tables while the white
boxes indicate how the tables are joined between them to show how many-to-many
relationships are implemented.
Diagram A displays the descriptive names of the databases used within the boxes while
Diagram B displays the actual database table names within the boxes.
Thor Technologies, Inc.
Page 13
Xellerate 5.0 Developer’s Quick-Start Guide
Diagram A – Descriptive Names
Thor Technologies, Inc.
Page 14
Xellerate 5.0 Developer’s Quick-Start Guide
Diagram B – Actual Database Table Names
Thor Technologies, Inc.
Page 15
Xellerate 5.0 Developer’s Quick-Start Guide
The following table is a list of database tables used frequently by Xellerate:
(P)rimary
(S)tatic
Table
(J)oin
(D)ynamic
Description
ABT
P
D
Holds all BTNs (Billing Telephone Number) for a given account.
ACN
J
D
Links account and contacts.
ACT
P
D
Account table holds information on entities that order services.
ALN
J
D
Joins ACT (account) and SIT (Site) tables.
ATS
P
D
Stores services or can be ordered by accounts and rates apply.
CLN
J
D
Joins contact (CON) and location (SIT) tables.
CON
P
D
Stores all contacts for the system. Contacts can be related to different entities.
GSC
J
D
Join table between SCH (scheduled items) and CON (contact information).
GSI
P
D
Schedule item assigned to user group.
LOC
P
D
The LOCATION table contains information about client locations.
MIL
P
S
Milestone tables. Milestone keys and names.
MSA
J
S
This table holds the association between milestones and a group of users.
MSG
J
S
Joins MilestoneStatus (MST), status (STA), and user group (USG) tables.
MST
J
S
Joins milestone and status tables.
O2C
J
D
Joins ORC and CON (Contact) tables.
ORC
P
D
ORD
P
D
This entity holds the detail on each order. This could be considered the items section of an invoice.
ORDER contains all information that is necessary to complete an order regardless of the type of service
being ordered.
OSI
J
D
PHO
P
D
PKC
J
S
PKG
P
S
This table keeps track of which types of service go with which package
Consists of names and system keys of service packages, which consist of a group of services from the TOS
table.
This is a universal scheduling table that holds all milestones for all activity in the system. When a service is
ordered, all its corresponding milestones and scheduled dates are inserted in this table. This table supports
group and individual 'To Do' Lists.
This table relates specific orders to milestones
Holds all communication addresses for this contact -- e.g., contact telephone numbers, fax numbers, e-mail,
etc.
SCH
P
D
SIT
P
D
The SIT table contains information about sites. Sites are subsets of locations.
STA
P
S
Status Codes
TOS
P
D
Holds all services and their individual features or properities
UGP
P
S
Defines a group of users
USC
J
D
Joins SCH (schedule item) and CON (contact) tables.
USG
P
S
Join table between users and groups
USI
P
D
Store all user-defined milestones. A user can create and store their reminders and action items.
USR
P
D
Stores all information regarding a user.
Thor Technologies, Inc.
Page 16
Xellerate 5.0 Developer’s Quick-Start Guide
8.0. Order Database Structure and Logic
The following describes the primary tables used in Xellerate:
8.1. Account Information
The account information structure is used for storing information specific to the customer
account. In order for a customer to order any service, the customer’s account information
must be present in the database.
Accounts Table (sysadm.act)
The account table is the top-level table in the Xellerate order hierarchy. The account table
contains information specific an account itself, such as the account name and primary
billing telephone number.
Major fields
Account Key
act_key
Account Billing
Telephone Number
Account Name
act_btn
Agent ID
act_agent_id
act_name
The system-generated (primary) key identifying the
account record.
The account’s primary billing telephone number
The name of the account. This is usually just the
customer’s name.
The name of the account’s agent. If the customer was
brought in by a specific agent, that agent’s name will
be used; if the account was entered directly into
Xellerate without an agent, the System Agent is used
as the agent.
Billing Telephone Number Table (sysadm.abt)
The billing telephone number is used to identify the billing telephone numbers for a
specific account. For most residential accounts, this is the customer’s phone number.
However, many businesses will use multiple billing telephone numbers. Each branch or
division of the business is assigned its’ own billing telephone number, and all of the
services used by that particular unit of the business are billed under that number. Each
account will have at least one billing telephone number entry.
Major fields
Account Key
Billing Telephone
Number Key
Billing Telephone
Number
Thor Technologies, Inc.
act_key
abt_key
abt_btn
The key identifying the account that the billing
telephone number is associated with. This is a foreign
key reference to the act_key in the account table.
The system-generated (primary) key identifies the
Billing telephone number record.
The billing telephone number.
Page 17
Xellerate 5.0 Developer’s Quick-Start Guide
8.2. Order Information
The order-level structure is the next part in an order for a particular service. This
component will contain information about the services the customer has ordered and the
progress of their order.
Order Table (sysadm.ord)
The order table is used to map orders for specific services back to the customer’s account
information, as well as storing customer-provided information about the order. Many
larger business customers use their own internal tracking system for orders, such as
internal order numbers and project numbers stored in the order table. Since orders are not
always placed under the account’s primary agent and billing telephone number, the order
table can be used to assign a different agent and billing telephone number to each order.
However, an order does not necessarily identify an order for a single service; many
requests for several types of services can be included as part of one order.
Major Fields
Order Key
Account Key
ord_key
act_key
Billing Telephone
Number Key
abt_key
Agent Key
act_agent
Project
ord_project
Batch
ord_batch
Customer order
number
ord_cust_or
derno
Thor Technologies, Inc.
A system generated (primary) key that identifies the order.
The key of the account that placed the order. This is a
foreign key that is referenced by the account table.
The billing telephone number for the service requested that
this order would be billed to. This is a foreign key
referenced by the billing telephone number table.
The key of the agent that placed the order for the customer.
Agent information is also stored in the accounts table. This
is a foreign key referenced by the account table. The
act_agent is the act_key of the agent’s account.
An optional customer-supplied field identifying the
customer project that this order is part of.
An optional customer-supplied field identifying the batch
of orders that this order is part of.
An optional customer-supplied field identifying the order
number that the customer is using to identify the particular
order.
Page 18
Xellerate 5.0 Developer’s Quick-Start Guide
Order Content Item Table (sysadm.orc)
The order content item table is part of the request for a specific service. For example: a
calling card or a long-distance number. There is one entry in the order content item table
for every service ordered. The table primarily serves as a link between the account/order
information, service definition, and service-specific information.
Major fields
Type of service
key
tos_key
Package Key
pkg_key
Account Key
act_key
Order Key
ord_key
Order Content
Item Key
Billing
Telephone
Number Key
Order Content
Item Status
orc_key
Service
Identifier
orc_tos_instance
_key
Thor Technologies, Inc.
abt_key
orc_status
Identifies the service that the particular order content
item is an instance of. This is a foreign key referenced
by the tos_key in the Type of Service table.
Identifies the package that the particular order content
item is an instance of. This is a foreign key referenced
by the pkg_key in the Package table.
Identifies the account that ordered the service. This is a
foreign key reference by the accounts table.
Identifies the order that the service was requested under.
This is a foreign key reference by the order table.
This is a system-generated (primary) key that identifies
the order content item.
Identifies the BTN that this service will be billed to.
This is a foreign key reference by the billing telephone
number table.
Indicates the status (Completed, Pending, Rejected,
Suspended, or Cancelled) of the order content item.
Although this isn’t a foreign key reference, the
orc_status should always have an equivalent value in the
sta_status of the STA (Status) table.
Identifies the order content item based on some sort of
unique identifier used by the particular service. For
example, the ANI is used as the service identifier for the
1+ service, while the card number is used for the Calling
Card service.
Page 19
Xellerate 5.0 Developer’s Quick-Start Guide
Service-specific tables
These types of tables may vary from service to service and are not covered in detail by
this document. Examples of service specific tables are sysadm.ani (for the 1+ type of
service), and sysadm.crd (for the Calling Card service). These tables have several
common characteristics such as key columns that are also used in the Order Content Item
table, an identifying key, and several columns containing information about the
configuration of an order for that type of service, such as the card number and pin for the
Calling Card service, or the phone number and carrier for the 1+ service).
Major Fields
Type of service key
tos_key
Package Key
pkg_key
Account Key
act_key
Order Key
ord_key
Order Content Item
Key
Billing Telephone
Number Key
orc_key
Table-specific Key
Varies
Information about
service itself
Varies,
multiple
columns
Thor Technologies, Inc.
abt_key
Identifies the service that the particular order content
item is an instance of. This is a foreign key referenced
by the tos_key in the Type of Service table.
Identifies the package that the particular order content
item is an instance of. This is a foreign key referenced
by the pkg_key in the Package table
Identifies the account that ordered the service. This is a
foreign key referenced by the accounts table.
Identifies the order that the service was requested under.
This is a foreign key referenced by the order table.
System-generated (primary) key identifying the order
content item.
Identifies the BTN that this service will be billed to.
This is a foreign key referenced by the billing telephone
number table.
The key identifying a specific record in the servicespecific table.
This will also vary from service to service. These are
columns unique to that type of service containing
information about the service configuration itself.
Page 20
Xellerate 5.0 Developer’s Quick-Start Guide
8.3. Order Application Data
The following tables are the top-level tables that define how services within Xellerate
function. All orders for a service begin with the selection of a service package that
contains the desired service(s). A specific service is never ordered directly. The service
package contains at least one type of service and may contain several different types of
bundled services. Each service type within a bundled package is given a separate order
content item. Neither the service type or service package contains a great deal of
information. All application data define how orders are processed and grouped under
package and service type tables.
Packages Table (sysadm.pkg)
The package table contains the definitions of the packages that can be ordered in
Xellerate.
Major Fields
Package Key
Package Name
pkg_key
pkg_name
Key identifying the specific package
The name of the package.
Type of Service Table (sysadm.tos)
The type of service table contains the definitions of services that Xellerate provides. The
type of service field does not contain a great deal of information about the service but is
used to group information specific to each process and informs the application what steps
should be performed for the appropriate item.
Major Fields
Type of Service Key
Service Name
tos_key
tos_name
Key identifying the specific service.
The name of the specific service.
Package Service Table (sysadm.pkc)
This table associates packages with the service(s) package. A package generally consists
of one or more services and normally the same service is part of several packages.
Although the package service table does not have a single identifying key, it is the
combination of the service and package key that uniquely identifies an individual record.
Major Fields
Type of Service Key
Package Key
Thor Technologies, Inc.
tos_key
pkg_key
Key identifying the type of service to associate with
the package. It is referenced by the tos_key column in
the tos table.
Key identifying the package to associate with the type
of service. It is referenced by the pkg_key column in
the pkg table.
Page 21
Xellerate 5.0 Developer’s Quick-Start Guide
9.0. Middleware Architecture
The following is an outline of the middleware architecture:
9.1. Object Manager
•
•
•
•
Main point of contact for Client and Server-side objects
Creates and destroys server-side objects
Provides database access for server-side objects
Caches result sets
9.2. Session Manager
•
•
•
•
•
Stores each client session
Stores database connection for each session
Cleans up active objects left by closed client sessions
Checks for dead (abnormally terminated) client sessions
Stores list of active objects for each client session
9.3. Databases
• One database connection per client, created at client startup
• Server-side (whether created for client or server-side use) use same database for
session
• Each database has associated formatter—converts internal storage form of data to
SQL statement form
9.4. Querying
•
•
•
•
•
•
Handled by DataSets on both client and server side (analogous to cursors)
Contains result set data and metadata
Server directly runs queries and accesses dataset
Client has dataset for storage – client database executes queries and returns results
Metadata result sets are cached
Provide facilities for manipulation of individual fields, bulk copy of data, and tracking
of updates
Thor Technologies, Inc.
Page 22
Xellerate 5.0 Developer’s Quick-Start Guide
9.5. Saving
•
•
•
•
•
•
•
•
Handled by DataObjects
Encapsulates one row
Initialized by key value (or group of key values)
Same data manipulation facilities as dataset
Stores internal state (uninitialized, inserting, updating, deleting, locked)
Stores list of all errors encountered
Triggers an event before and after inserting, updating and deleting
Table Data Object
1. Directly extends from the Data Object
2. Specialized for one physical database table
3. Assumes one identifying key
4. Determines SQL operation (inserting vs. updating) from identifying key
5. Uses dataset’s metadata to generate SQL statements
• Link Data Object
1. Directly extends from the Table Data Object
2. Same functionality as Data Object but tailored for tables using multiple keys to
identify a single row.
• Business Object
1. Directly extends from the Data Object
2. Specialized for bundling multiple data objects into a single logical table.
3. Relies on groups of Table Data Objects to perform SQL work.
9.6. Client Side Operations
•
•
•
•
•
Session Object identifies each session.
Client-side objects request server-side peers and bind to them
Hide invocations on server-side objects
Destroy server-side objects after discarded
Dataset client
1. Genuine Dataset
2. Execute Query uses client database to execute query remotely and retrieves
result set.
• Data Object Client
1. Stores associated client-side dataset
2. Upon instantiation, creates server data object and initializes it based on
client-side data.
3. Save and delete bulk-copies client-side dataset to the server, performs the save
or delete and refreshes client-side dataset with server-side changes.
Thor Technologies, Inc.
Page 23