On Line Bloomberg
On Line Bloomberg
7
Product Overview
August 25, 2006
Version 1.0
This Bloomberg Server API documentation is a reference guide for Bloomberg customers and
authorized developers, and is provided for such informational purposes only. The documentation
cannot be released to anyone who is not licensed to receive it from Bloomberg. The documentation
is governed by the Bloomberg Agreement and other agreements with Bloomberg.
BLOOMBERG is a registered trademark of Bloomberg, L.P. in the United States and other countries.
All other trademarks and registered trademarks are the property of their respective owners.
Table of Contents
Table of Contents........................................................................................................................ ii
Customer Support Information.................................................................................................. 4
1 Product Description................................................................................................................ 5
1.1 Overview .......................................................................................................................... 5
1.2 Authorized Users of Server API ....................................................................................... 5
1.3 Server API Product Features ........................................................................................... 7
1.4 Technical Overview.......................................................................................................... 7
1.5 Network Requirements .................................................................................................... 8
1.6 Supported Platforms ...................................................................................................... 10
1.7 Supported Programming Languages ............................................................................. 10
1.8 64-bit Support ................................................................................................................ 11
2 Application Development..................................................................................................... 12
2.1 Client Library.................................................................................................................. 12
2.2 Test Environment........................................................................................................... 12
2.3 Server API Usage Model ............................................................................................... 12
2.4 Building Your Application ............................................................................................... 14
2.5 Preparing Applications for Production............................................................................ 14
3 Implementing your Application ........................................................................................... 15
3.1 User Account Requirements and Recommendations .................................................... 15
3.2 Server API Requirements .............................................................................................. 16
3.3 Multi-User Model ............................................................................................................ 16
3.4 Server Model.................................................................................................................. 18
Appendix A: Security Plan ...................................................................................................... 21
General Questions Related to Your Application ................................................................... 21
Integration of Bloomberg Server API .................................................................................... 21
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service. i
i
Customer Support Information 4
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service. 4
1 Product Description 5
1 Product Description
1.1 Overview
The Bloomberg Server API is a data product that delivers Bloomberg data and third party
data in real-time and static form, plus unparalleled analytical capabilities to drive targeted
business applications. The Server API leverages the Bloomberg Professional API for its core
functionality, with additional features that make it a true server solution. The Server API is
intended to run independently and autonomously, 24x7, with scalable configurations to
support small or large business requirements. Server API is intended to support business
applications for Bloomberg Users only.
1.2.1 Background
The Server API is a technical extension of the Bloomberg Professional terminal API, but
carries its own licensing agreement with Bloomberg. The desktop API that accompanies the
terminal is intended for that user only and is not meant to act as a server based API
connection supporting groups of users. The Server API is specifically intended for that
purpose and differentiates itself from the terminal API at this point. Because the Server API
allows for data distribution, certain control features must be in place within the client's
application to control the flow of data to Bloomberg BBA users only.
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
1 Product Description 6
Server mode is used when you implement an application that runs autonomously on the
server and supports client users that request data from your application and not Bloomberg
directly. Your application may request data on behalf of a group of users, and may do caching
or server side processing prior to dissemination to an “authorized user”. In Server Mode, the
connection with Bloomberg is established on behalf of the server itself. The server carries its
own identity and all data retrieved is based on that identity. This identity is created when the
Server API is installed by using a Bloomberg BBA license that accompanies the Server API
service. This Bloomberg BBA login should be retained by the Server API administrator for
future use.
This implementation allows each authorized user to connect using their personal Bloomberg
BBA license credentials (UUID, SID, SID Instance, etc.). The connection is established
through the Server API session but specifically for the individual user. This mode is designed
for applications that do NO caching, but pass all requests directly back to the authorized user
that initiated the request.
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
1 Product Description 7
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
1 Product Description 8
The Server API process is not intended to be installed on an Open Bloomberg Terminal and
does not require any additional middleware products. The product is available for Windows
Server and a variety of UNIX-like platforms.
All customer or vendor applications that communicate directly with a Server API instance
(that is, they link in the Bloomberg Server API Client Library) must be digitally signed. The
Bloomberg API Software Signing tool offers a simple and fast process for signing
applications. The signing tool takes as inputs, the customer's compiled programs (binaries),
any supporting libraries (.dll or .so), and a Bloomberg supplied vendor-signing certificate.
The Server API process establishes multiple (currently two to four) TCP/IP connections to
Bloomberg API Network from the client's network to Bloomberg's network (i.e., outbound
connections) to ports 8194 and 8195 on published IP addresses in the Bloomberg domain. All
data except for real-time, outbound streaming tick data is encrypted using a mutually
authenticated SSL session.
Server API listens for TCP/IP connections from internal client applications on ports 8194 and
8195. Unlike the connections to the Bloomberg network, these connections are not
encrypted. Figure 1-1 provides a high level illustration of the connectivity surrounding a
Server API instance.
Although your company can have multiple Server APIs, Bloomberg requires
that only one Server API process be running per licensed installation.
Each Server API process has its own serial number and registration key and
Bloomberg only allows one connection for each registration key.
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
1 Product Description 9
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
1 Product Description 10
Kernel 2.6†
Solaris Solaris 8 SPARC
Solaris 9
Solaris 10
† Server API has been tested against a variety of Red Hat and SUSE Linux
distributions based on Linux Kernel 2.4 and 2.6. Only Red Hat and SUSE
distributions are supported. The minimum supported version of GLIBC is 2.3.2.
The optimal hardware requirements for a customer vary depending on the expected usage.
An application that makes infrequent data calls or subscribes to a small number of real-time
tick streams can run on minimal hardware. An application that makes high volume data
requests or subscribes to a large number of real-time tick streams will benefit from more
CPUs, faster clock rates, and more memory. Table 1-3 specifies the minimum hardware
configurations that Server API is supported on.
that applications are provided as either ELF (Solaris/Linux) or PE COFF (Windows) formatted
executable files. Microsoft Visual Studio, Visual Studio .NET and all UNIX linkers generate
files in these formats, and therefore any programming language that is both supported by
these products and supports calling external C functions is in turn supported by Server API.
Therefore, languages like Java and Perl, while they provide mechanisms for calling C
functions, are not supported because they do not provide binaries in one of the above
formats.
The Server API for .NET can be downloaded from {WAPI<GO>} on your Bloomberg terminal.
The COM Data Control for Server API exposes the same programming interface as the
Bloomberg Data Control plus an additional programming interface specific to Server API. See
{WAPI<GO>} for details.
The COM Data Control for Server API can be downloaded from {WAPI<GO>} on your
Bloomberg terminal.
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
2 Application Development 12
2 Application Development
This section summarizes aspects of the Server API development environment. For additional
details and a step-by-step guide to developing Server API-based applications, see the Server
API Developer's Guide.
A user's guide, with examples and a reference manual detailing the function-level interface in
the Bloomberg API C library is provided on the Bloomberg terminal at WAPI<GO>.
Bloomberg recommends that developers work with a separate development installation that
is covered by a Server API Developer license agreement. The recommended process is to
develop your application on a development machine, then move the application to your
production machine.
If you are using the Server Model, the Bloomberg Server API product provides two
permissioning models for controlling access to data. These models are outlined below. For
more details see the Server API Developer's Guide.
The All or None model for controlling access to data is intended for use by firms where the
majority of the server users are trading similar instruments. In this model, Bloomberg verifies
that the user requesting security data is entitled to receive all of the data that is available via
their Server API. If the user is not entitled to data available via their Server API, Bloomberg
will recommend that the user not receive data and return the entitlement IDs for the data
available on the server that a user is not entitled to.
For more information on the All or None Model, see the Server API Developers Guide.
The Product Level model for controlling access to data is intended to provide the granularity
and flexibility required by firms where users of the same Server API trade a variety of
instruments. With this model, clients will be able to submit requests to Bloomberg to
determine:
z The set of entitlements for a security for which the user is enabled.
z The set of entitlements for a security for which the Server API installation is enabled.
It is then expected that the client will verify that a specific user has the necessary
entitlements to receive data when a user requests information for a specific security.
For more information on the Product Level Model, see the Server API Developers Guide.
Independent data requests may be desirable if each user is performing some unrelated work
with respect to other users or if each user wants to use their own preferences and set of
privileges to retrieve data. The downside of this approach is that redundant data requests
may be sent resulting in higher network and processing demands. This also means that
individual sessions would make their own real-time data subscriptions. The permissions
assigned to the Server API process are not used in this model, instead each individual's
permissions are checked when a request is validated.
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
2 Application Development 14
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
3 Implementing your Application 15
Implementing a secure permissioning scheme protects both your firm and Bloomberg from
unauthorized use of data.
Bloomberg requires that you adhere to the data permissioning requirements described in this
section to ensure that data is distributed only to authorized users, computers, and servers, as
described in your contract. Additionally, Bloomberg reserves the right to audit and test your
application to verify that these requirements are being met.
There are two general types of requirements that Bloomberg will need to verify in order to
approve the Server API permissioning system:
z 3.1 User Account Requirements and Recommendations
z 3.2 Server API Requirements
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service. 1
5
3 Implementing your Application 16
Permissioning requirements are different for Server Model and Multi-User Model
applications. In general, Multi-User Model applications must always preserve the separation
between users, while Server Model applications may allow common access to data among
authorized users. In cases where database storage is permitted, permissioning requirements
for accessing data from a database are the same as for accessing the data directly from
Bloomberg.
The Server API Developers Guides provides information on the functions that Bloomberg
provides to facilitate meeting these permissioning requirements.
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
3 Implementing your Application 17
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
3 Implementing your Application 18
Your application must control user’s data entitlements using the Server API tool set. Two
methods are offerered:
z All or None
z Product Level Permissioning
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
3 Implementing your Application 19
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
3 Implementing your Application 20
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.
A: Security Plan 21
A: Security Plan
This section provides a sample of the Security Plan that is included with the Server API
contract.
Date:
Responder Name:
Responder Email:
The following questions apply to customers using Server API for Bloomberg Terminal Users.
Please read the Permissioning section of the Server API Product Overview before answering
these questions.
These questions refer to the Server API application's user accounts, not to the underlying
Bloomberg user accounts.
1. Which type of application will you run? (Refer to the application types in the
Permissioning chapter of the Server API Product Overview, (check only one):
User Management
1. Are any two of your application's user accounts mapped to the Yes No
same UUID or SID?
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service. 2
1
A: Security Plan 22
User Validation
1. Using the Server API Tool Set, are all users validated as Yes No
Bloomberg Users that are logged in to Bloomberg on the same
device where they are running or viewing your application?
User Entitlements
The Bloomberg Server API provides two methods for accessing data: Server Mode and Multi-
User Mode. (See the Server API Product Overview.)
Server Mode
The following questions should be answered if you are implementing this method for
retrieving data, otherwise check “Not Applicable”
1. Using the Server API Tool Set, will your application verify each Yes No
“Bloomberg User's” data entitlements prior to receiving data from
the Server API? Not Applicable
2. If user entitlements are inadequate will your application block that Yes No
user from receiving data from the Server API?
Multi-User Mode
The following question should be answered if you are implementing this method for retrieving
data, otherwise check “Not Applicable”.
1. Will each user connect to Bloomberg and receive data from Yes No
Bloomberg individually, with no data sharing or storage in a central
database? Not Applicable
For 24 hour global customer support call +1 212 318 2000, +44 20 7330 7500, +65 6212 1000,
+81 3 3201 8900 or press the HELP key twice on the BLOOMBERG PROFESSIONAL® service.