SAM Developer Documents:
------------------------
- Prerequisites in order to be productive as a sam
developer; intended audience for
further
documentation
(i.e., what we
assume you already know, that we will NOT be documenting)
- cvs
- understanding of
product packaging techniques,
product
environment bootstrapping
(specifically as
related to ups/upd)
- subprojects may
require knowledge about:
CORBA, oracle
(sql in general), x509, globus, condor, grid protocols, xml, java, ???
>>> this
probably needs to be done from scratch.
- Automated Documententation generation:
We believe it is
necessary to spend some time investigating and
configuring a set
of tools for automatic code documentation generation,
so that the public interfaces,
methods, etc., for
all modules are
documented in a consistent way as part of
the package release
procedure.
o python clients: pydoc, ?
o IDL: idldoc, ?
o c++: ???
o java: javadoc, ?
Once these tools
are in place, each component should include
standardized
documentation on:
a) IDL-based
(public) interfaces (via idldoc-like tool)
b) API-based
(public) interfaces (via CommandParser tools)
c) internal
(private) interfaces (via pydoc/javadoc/???-like tool)
- DEVELOPER OVERVIEW DOCUMENTATION:
--------------------------------
- Additional
documents that need to be written and/or pulled
together from
existing documents, which describe more of the
technical
"how and why" behind-the-scenes issues not covered
in the automated
docs.
o Overview: How the pieces fit together
- diagram
showing the major SAM components and how
they fit
together
o Overview: SAM CORBA Infrastructure
- IDL naming conventions
- corba structure
wrappers
- corba exception handling
- automarshalling proxies and servants
o Overview: Server Instantiation and
Configuration Tools
-
sam_bootstrap/sam_config
- serverRun/jim_config
o Overview: Packaging Standards
- sam_util
- standardized GNUmakefile targets
o Overview: API Command Suite ToolChest (for
python apps)
-
sam_common_pylib/SamCommand/ suite of utilities
o Overview: Monitoring Tools
- samTV
- jim/grid monitoring
o Overview: Test Tools
-
sam_test_tools
- dbserver unit tests
- sam_common_pylib unit tests
o Overview: Data Movement
- sam_cp
& protocols
o Overview: Local Job Scheduler Adaptation
-
sam_batch_adapter
- COMPONENT DOCUMENTATION:
-------------------------
Preliminary Component Breakdown:
Core SAM
INFRASTRUCTURE:
Corba
Infrastructure:
dbProxy (autoMarshall)
corbaStruct wrappers
exception handling
python API
Infrastructure:
commandParsing tools
DB - (oracle)
Servers:
DBServer
dimension parser
dbServerBase
dbServerGen
Station
smaster
fss
stagers
Name Server
Logger
Optimizer
(MIS)
Clients
Libraries (sam_common_pylib,
sam_client_cpplib)
Packages:
sam_user_pyapi, sam_admin_pyapi, sam_mis_pyapi
Experiment specific: sam_manager, AC++
sam_project_editor, sam_farm_request
Major
Utilities:
samTV
sam_cp +
transfer protocols
sam_bootstrap
(sam_products, init_sam)
sam_config
test_harness
JIM
Infrastructure
xmldb
(client/server)
configuration
(jim_config)
GSI
(sam_gsi_config, cron jobs)
middleware
(globus, condor)
Client suite
Submission site
suite
Broker site
Monitoring
suite
current state
(push/pull models)
history
web
interface (jim_www)
Execution site
suite
Fabric
interface (jim_job_managers)
Fabric
management (jim_sandbox)
Registration
services (jim_advertise)