org.cougaar.core.blackboard

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Science » Cougaar12_4 » org.cougaar.core.blackboard 
org.cougaar.core.blackboard
This package contains the Cougaar publish/subscribe {@link org.cougaar.core.service.BlackboardService}.

The standard agent contains a {@link org.cougaar.core.blackboard.StandardBlackboard} component that provides the {@link org.cougaar.core.service.BlackboardService}, which is a wrapper around the {@link org.cougaar.core.blackboard.Subscriber} class. The StandardBlackboard creates the {@link org.cougaar.core.blackboard.Distributor}, which manages the subscribers, and the special {@link org.cougaar.core.blackboard.Blackboard} subscriber to maintain a view of all blackboard objects and invoke {@link org.cougaar.core.domain.Domain} {@link org.cougaar.core.domain.LogicProvider}s. Each subscriber has a set of {@link org.cougaar.core.blackboard.Subscription}s that are known only to that subscriber. A subscriber registers with the distributor to receive blackboard add/change/remove notification "tuples". When a subscriber wishes to modify the blackboard contents, it must start a distributor transaction, fill an envelope with add/change/remove tuples, and finish the distributor transaction. The distributor also coordinates periodic persistence and ensures that blackboard updates are thread-safe.

For more detail, see the Cougaar Developers' Guide.

Java Source File NameTypeComment
ABATranslation.javaInterface A community membership change description for an org.cougaar.multicast.AttributeBasedAddress , used by org.cougaar.core.domain.Domain org.cougaar.core.domain.ABAChangeLogicProvider s.
AckDirectiveMessage.javaClass A MessageManager delivery acknowledgement if non-lazy persistence is enabled.
AckSet.javaClass A bit set for keeping track of sequence numbers, used by the MessageManager .

This is similar to a BitSet, but has a shifting base index.

ActiveSubscriptionObject.javaInterface Marker interface for blackboard objects that react to a org.cougaar.core.service.BlackboardServiceorg.cougaar.core.service.BlackboardService.publishAdd , org.cougaar.core.service.BlackboardService.publishChange , or org.cougaar.core.service.BlackboardService.publishRemove calls.
AddEnvelopeTuple.javaClass An EnvelopeTuple indicating that an object has been added to the blackboard.
AnonymousChangeReport.javaClass A change report for an anonymous (unspecified) change.
Blackboard.javaClass A Subscriber created by the StandardBlackboard that maintains a view of all published objects, invokes org.cougaar.core.domain.Domain org.cougaar.core.domain.LogicProvider s, and monitors community membership changes.
BlackboardAlert.javaClass A generic blackboard alert object used to notify agent or plugin about anomalous data on an agent's blackboard.
BlackboardAlertRelay.javaClass Implementation of a relay class that contains a BlackboardAlert object as its content.
BlackboardClient.javaInterface Required service requestor API for the org.cougaar.core.service.BlackboardService .
BlackboardClientComponent.javaClass This component is a standard base class for Component s that use the BlackboardService .

Plugins are the most common example of such components.
ComponentPlugin is an extension of this class.

Create a derived class by implementing setupSubscriptions() and execute().

Note that both "precycle()" and "cycle()" will be run by the scheduler.

BlackboardException.javaClass An unchecked exception thrown when there is a problem detected by blackboard interactions.
BlackboardForAgent.javaInterface This service is used by agent components to manage the blackboard.
BlackboardServesDomain.javaInterface A org.cougaar.core.domain.Domain s view of the blackboard.
BlackboardServiceProvider.javaClass The service provider for the BlackboardService , BlackboardQueryService , and BlackboardMetricsService .

All operations are backed by the org.cougaar.core.blackboard.Distributor .

BulkEnvelopeTuple.javaClass An EnvelopeTuple indicating that a collection of objects have been added to the blackboard.
ChangeEnvelopeTuple.javaClass An EnvelopeTuple indicating that an object on the blackboard has been modified.
ChangeReport.javaInterface A marker interface for describing a change to an object on the blackboard.

ChangeReports are published by using org.cougaar.core.service.BlackboardService.publishChange(ObjectCollection) and are viewed by using CollectionSubscription.getChangeReports(Object) .

Subclasses describe specific types of changes.

The hashCode and equals methods should compute their return values based on the type and not any specific (old) value which may be stored in the object.

Claimable.javaInterface An object "claimed" by a single actor, typically a plugin instance.
ClaimableHolder.javaInterface An indirect holder of a Claimable .
ClaimableImpl.javaClass Implementation of the Claimable API.
ClaimableImplBeanInfo.javaClass A BeanInfo property description for ClaimableImpl .
CollectionSubscription.javaClass A subclass of Subscription that maintains a Collection of blackboard objects matching the filter predicate, plus ChangeReport s for the objects changed since the last transaction.
DeltaSubscription.javaClass A subscription that only tracks add/change/remove deltas.

See CollectionSubscription for a system property that identifies subscriptions that could potentially be changed to DeltaSubscriptions.

We subclass IncrementalSubscription to both reuse code and to make it easy for existing plugins to switch over to this class.

Directive.javaInterface A blackboard object that directly corresponds to an inter-agent Message.
DirectiveImpl.javaClass A standard base class for Directive s.
DirectiveMessage.javaClass A org.cougaar.core.mts.Message containing Directive s.
Distributor.javaClass The Distributor coordinates blackboard transactions, subscriber updates, and persistence.
Envelope.javaClass A container for blackboard add/change/remove EnvelopeTuple s of a single transaction.
EnvelopeMetrics.javaClass Contains metrics on transaction open and close timestamps.
EnvelopeMetricsSubscription.javaClass A Subscription that collects EnvelopeMetrics .
EnvelopeTuple.javaClass A container for a tranaction's add/change/remove of a single object.
IncrementalSubscription.javaClass A CollectionSubscription that records add/change/remove deltas.
InitializeSubscriptionEnvelope.javaClass A special blackboard-internal Envelope used to initialize a Subscription .

Any transaction envelopes received by the client for a newly created subscription prior to this envelope are ignored.

MessageManager.javaInterface A message acknowledgement manager used by the org.cougaar.core.blackboard.Distributor 's non-lazy persistence mode to ensure that unacknowledged messages are persisted.
MessageManagerImpl.javaClass A message acknowledgement manager used by the Distributor 's non-lazy persistence mode to ensure that unacknowledged messages are persisted.
NewDirective.javaInterface Modifiable interface for a Directive .
ObjectTracker.javaClass A generic object tracker which is currently used to identify CollectionSubscription s that could be converted into DeltaSubscription s.
OverrideChangeReport.javaInterface A ChangeReport that should override old ones in the same transaction.
PersistenceEnvelope.javaClass An Envelope sent by persistence to restore a rehydrated blackboard.
PrivilegedClaimant.javaInterface A marker interface for Subscriber s that are allowed to modify Claimable blackboard objects even if they are not the owner (typically just the Blackboard ).

Note that Claim warnings are currently just warnings, regardless of how scary looking they are.

Publishable.javaInterface An optional marker interface for objects that can be published to the blackboard.

NOTE: at some point, only Publishable objects will be admitted to the blackboard.

PublishableAdapter.javaClass A useful base class for objects which implement the Publishable interface.
PublisherInfo.javaClass A data structure returned by PublisherSubscription .
PublisherSubscription.javaClass A subscription that tracks the plugin publisher and add/change stacks for UniqueObjects.
PublishException.javaClass An IllegalArgumentException for invalid or failed publish operations.
PublishHistory.javaClass A record of the recent publication history, enabled by the org.cougaar.core.blackboard.Distributor 's "keepPublishHistory" option, that can be used to help debug apparently anomalous publish events.
PublishStack.javaClass A stacktrace holder for Blackboard "savePriorPublisher" tracking of blackboard objects and their publishers.
QuerySubscription.javaClass A lightweight CollectionSubscription used to take a single "query" snapshot of the blackboard.
QuiescenceMonitor.javaClass The QuiescenceMonitor is used by the Distributor to determine if an agent is quiescent.

The QM tracks which blackboard clients we care about quiescence for, and numbers incoming and outgoing messsages for those we care about.

RemoveEnvelopeTuple.javaClass An EnvelopeTuple indicating that an object has been removed from the blackboard.
ReservationManager.javaClass The ReservationManager coordinates org.cougaar.core.blackboard.Distributor persistence to ensure that only one agent can persist at a time, and that an agent preparing to persist will not block other agents from persisting.

Persistence reservations indicate that a persistence instance wishes to take a snapshot of its agent.

StandardBlackboard.javaClass This component advertises the BlackboardService and manages the Blackboard .
Subscriber.javaClass The standard implementation of the org.cougaar.core.service.BlackboardService .
SubscriberException.javaClass An exception thrown by a Subscriber .
Subscription.javaClass A filtered view of the blackboard that is updated between org.cougaar.core.service.BlackboardService transactions.
SubscriptionException.javaClass An unchecked exception thrown when a problem is detected by subscription mechanisms.
SubscriptionWatcher.javaClass A callback for org.cougaar.core.service.BlackboardService.registerInterest subscription or alarm activity.

On the SubscriptionWatcher.signalNotify callback, the watcher should schedule itself to run in a separate thread, e.g.

TimestampedEnvelope.javaClass An envelope that records the subscriber name, time of "openTransaction()", and time of "closeTransaction()".
TimestampEntry.javaClass The creation time and most recent modification time for a org.cougaar.core.util.UniqueObject on the blackboard.
TimestampSubscription.javaClass A Subscription that tracks UniqueObject publishAdd and most recent publishChange timestamps.
TodoSubscription.javaClass A subscription that queues objects, such as Alarms and other non-blackboard callbacks, for processing in the plugin's "execute()" thread.

TodoSubscriptions are typically used for Alarm callbacks, for example:

 public class MyPlugin extends ComponentPlugin {
 private TodoSubscription expiredAlarms;
 protected void setupSubscriptions() {
 expiredAlarms = (TodoSubscription) 
 blackboard.subscribe(new TodoSubscription("x"));
 // wake up in 10 seconds
 getAlarmService().addRealTimeAlarm(
 new MyAlarm(System.currentTimeMillis() + 10000));
 }
 protected void execute() {
 if (expiredAlarms.hasChanged()) {
 System.out.println("Due alarms: "+expiredAlarms.getAddedCollection());
 }
 }
 private class MyAlarm extends AlarmBase {
 // optionally add fields here, e.g.
Transaction.javaClass Required transaction support to record a thread's active Subscriber and maintain attached ChangeReports.
UniqueObjectSet.javaClass A custom java.util.Set that maintains a java.util.Map -like associations from UID s to UniqueObject s.
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.