• 沒有找到結果。

TIBCO ActiveSpaces®

N/A
N/A
Protected

Academic year: 2022

Share "TIBCO ActiveSpaces®"

Copied!
57
0
0

加載中.... (立即查看全文)

全文

(1)

Release Notes

Software Release 2.3.0 June 2017

Two-Second Advantage®

(2)

Important Information

SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY (OR PROVIDE LIMITED ADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THE EMBEDDED OR BUNDLED SOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY ANY OTHER TIBCO SOFTWARE OR FOR ANY OTHER PURPOSE.

USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND CONDITIONS OF A LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED SOFTWARE LICENSE AGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE CLICKWRAP END USER LICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOAD OR INSTALLATION OF THE SOFTWARE (AND WHICH IS DUPLICATED IN THE LICENSE FILE) OR IF THERE IS NO SUCH SOFTWARE LICENSE AGREEMENT OR CLICKWRAP END USER LICENSE AGREEMENT, THE LICENSE(S) LOCATED IN THE “LICENSE” FILE(S) OF THE

SOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO THOSE TERMS AND CONDITIONS, AND YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF AND AN AGREEMENT TO BE BOUND BY THE SAME.

This document contains confidential information that is subject to U.S. and international copyright laws and treaties. No part of this document may be reproduced in any form without the written

authorization of TIBCO Software Inc.

TIBCO, Two-Second Advantage, The Power of Now, TIB, Information Bus, Rendezvous, TIBCO Rendezvous, and Messaging Appliance are either registered trademarks or trademarks of TIBCO Software Inc. in the United States and/or other countries.

Enterprise Java Beans (EJB), Java Platform Enterprise Edition (Java EE), Java 2 Platform Enterprise Edition (J2EE), and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the U.S. and other countries.

All other product and company names and marks mentioned in this document are the property of their respective owners and are mentioned for identification purposes only.

THIS SOFTWARE MAY BE AVAILABLE ON MULTIPLE OPERATING SYSTEMS. HOWEVER, NOT ALL OPERATING SYSTEM PLATFORMS FOR A SPECIFIC SOFTWARE VERSION ARE RELEASED AT THE SAME TIME. SEE THE README FILE FOR THE AVAILABILITY OF THIS SOFTWARE VERSION ON A SPECIFIC OPERATING SYSTEM PLATFORM.

THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.

THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO SOFTWARE INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN THIS DOCUMENT AT ANY TIME.

THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY OR INDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE,

INCLUDING BUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES.

Copyright © 1997 - 2017 TIBCO Software Inc. ALL RIGHTS RESERVED.

TIBCO Software Inc. Confidential Information

(3)

Contents

TIBCO Documentation and Support Services. . . .4

Release Notes. . . . 5

New Features. . . .6

Version 2.3.0. . . .6

Version 2.2.1. . . .7

Version 2.2.0. . . .7

Version 2.1.6. . . .8

Version 2.1.5. . . .9

Version 2.1.4. . . .11

Version 2.1.3. . . .13

Version 2.1.2. . . .15

Version 2.1.1. . . .15

Changes in Functionality. . . .17

Version 2.3.0. . . .17

Version 2.2.1. . . .17

Version 2.2.0. . . .17

Version 2.1.6. . . .17

Version 2.1.5. . . .18

Version 2.1.4. . . .21

Version 2.1.3. . . .22

Version 2.1.2. . . .25

Version 2.1.1. . . .26

Deprecated and Removed Features. . . .31

Migration and Compatibility. . . .33

Closed Issues . . . .34

Known Issues. . . .57

(4)

TIBCO Documentation and Support Services

Documentation for this and other TIBCO products is available on the TIBCO Documentation site. This site is updated more frequently than any documentation that might be included with the product. To ensure that you are accessing the latest available help topics, visit:

https://docs.tibco.com

Product-Specific Documentation

Documentation for TIBCO products is not bundled with the software. Instead, it is available on the TIBCO Documentation site. To directly access documentation for this product, double-click the following file:

TIBCO_HOME/release_notes/TIB_activespaces_version_docinfo.html where TIBCO_HOME is the top-level directory in which TIBCO products are installed. On Windows, the default TIBCO_HOME is C:\tibco. On UNIX systems, the default TIBCO_HOME is /opt/tibco.

The following documents for this product can be found on the TIBCO Documentation site:

TIBCO ActiveSpaces® Installation

TIBCO ActiveSpaces® Administration

TIBCO ActiveSpaces® Monitoring and Management Console Guide

TIBCO ActiveSpaces® Developer's Guide

TIBCO ActiveSpaces® C API Reference

TIBCO ActiveSpaces® Java API Reference

TIBCO ActiveSpaces® .NET API Reference

TIBCO ActiveSpaces® Release Notes How to Contact TIBCO Support

For comments or problems with this manual or the software it addresses, contact TIBCO Support:

For an overview of TIBCO Support, and information about getting started with TIBCO Support, visit this site:

http://www.tibco.com/services/support

If you already have a valid maintenance or support contract, visit this site:

https://support.tibco.com

Entry to this site requires a user name and password. If you do not have a user name, you can request one.

How to Join TIBCO Community

TIBCO Community is an online destination for TIBCO customers, partners, and resident experts. It is a place to share and access the collective experience of the TIBCO community. TIBCO Community offers forums, blogs, and access to a variety of resources. To register, go to the following web address:

https://community.tibco.com

(5)

Release Notes

Check the TIBCO Product Support web site at https://support.tibco.com for product information that was not available at release time.

Entry to this site requires a username and password. If you do not have a username, you can request one. You must have a valid maintenance or support contract to use this site.

(6)

New Features

This section lists the new features added in every release of the product.

Version 2.3.0

The following new features have been added to TIBCO ActiveSpaces version 2.3.0.

The as-admin Command

Support for Listing Running Queries

ActiveSpaces now supports the ability to list running queries by using the following command in the

as-admin utility:

show query state 'running'

Support for Cancelling a Query

ActiveSpaces now supports the ability to cancel a running query by using the following command in the as-admin utility:

abort query space <space_name>

Support for Filters in the as-admin Command

The show member and show members commands support the following filters:

member_name

member_id

process_name

process_id

Shared-Nothing Files Clean Up

The old or unused shared-nothing files were not deleted automatically on starting or shutting down a cluster. In this release, you can delete or cleanup such files from the datastore using the new cleanup datastore command from theas-admin utility.

Space Operations

Retrieve a Subset of the Fields in a Space

The GET or QUERY activity can now retrieve only a specific subset of the fields in a space rather than retrieving all the fields from the space.

Support for Filters in GET, LOCK, TAKE, and PUT Operations The filter attribute is added to the following:

GetOptions

PutOptions

TakeOptions

LockOptions

Update a Specific Field in a Tuple Without Using a GET Operation

The update() method can now update the space with a specific field without using a operation.

(7)

Space.update(String filter)

Space.update(Tuple key, Tuple value)

Space.update(Tuple key, Tuple value, PutOptions options)

Remote Client

You Can Control the Proxies That Connect to the Remote Client

You can now specify the number of proxies that get connected to the remote client. The syntax for remote discovery supports the num_connections attribute. For example, tcp://

127.0.0.1:50000;127.0.0.1:51000?remote=true&num_connections=2 .

Version 2.2.1

There are no new features in this release.

Version 2.2.0

The following new features have been added to TIBCO ActiveSpaces version 2.2.0.

Support for Cross-Site Replication

ActiveSpaces now supports replicating transactions and PUT and TAKE operations for all spaces of a metaspace to another metaspace at a different geographical location.

Option to Redirect the Output of as-admin Commands to a Log File

The output of the as-admin commands can be now redirected to a file. You can use the following command line option to as-admin:

-output <filename>

When -output <filename> is entered on the command line when starting as-admin, the specified file is opened and as-admin commands and command results are logged to the file. When -output

<filename> is used in conjunction with the -input <script_file> command line parameter, the script file commands are also redirected to the output log file as they are executed by as-admin. Option for Recovery from Shared-Nothing Files

Recovery now supports a new recovery policy called force_load. Recovering with this option will start data recovery immediately even if there might be data loss. Using this option ignores all checks for required hosts/seeders and fast load is not attempted. This option is useful when changing member or host names. It is also useful when you want to force ActiveSpaces to use old persistence files. Note that the data store directory and file names must be manually renamed to reflect new host (and member) names before attempting a recovery with this policy.

as-admin Command to Clear the Contents of a Space

Added the following command to as-admin which can be used to clear the entire contents of a space or remove content that matches a criteria specified in <filter_string> :

clear space <space_name> [filter <filter_string>]

Enhanced Logging of Commands and their Output at Runtime

The following new commands were added to as-admin to enhance the ability to log commands and their output to a file at runtime:

admin_log [<string>] [append]

admin_log close

(8)

console on

console off

The console on and console off commands toggle between whether or not the results of as-admin commands are displayed on the screen. For the console off command, the as-admin commands are displayed but their results are not. The admin_log command opens a stream to redirect the output of

as-admin into a log file. If you do not specify the <string> for the log file name, any previous log file name, from -output command line option or previous calls to admin_log, will be used. If there wasn’t a previous log file name, the default name of as-admin.log will be used. If the log file name does not contain a path, the log file is opened in the current directory.

Support for Customized Configurations of the ASMM Datastore

You can now customize the configurations of the ASMM datastore with the help of the following properties:

derby.system.home : helps you override the home directory of the embedded Derby DB Home.

asmm.config.xml : Helps you override the default folder for the config.xml installed under ASMM.

For example,

java -Dderby.system.home=/myhome//asmm.conf -Dasmm.config.xml=/myhome/asmm.conf/

config.xml -jar asmm.jar

Version 2.1.6

The following new features have been added to TIBCO ActiveSpaces version 2.1.6.

An API to Provide Additional Information about User Queries

This version introduces the ExplainQuery API to give more information about the cost of execution of a query on each member.

The output of explain query shows the index used, if any. If so, it provides an estimated number of entries to be evaluated. If there is no index used, a table scan is needed; this will be a costly operation as every entry on that member is evaluated. From the output, you can gauge execution cost of the query based on the number of estimated entries to be evaluated.

Added Support for –autojoin.role to the Command-line Options of as-agent.

By specifying -autojoin.role “leech”, as–agent can now be started in such a manner that it will automatically join all spaces as a leech and not as a seeder. This is useful when starting instances of

as-agent which act solely as proxies for remote clients.

Support for Sorting with Snapshot and Prefetch ALL

ActiveSpaces now supports sorting with Snapshot and Prefetch ALL, in both ascending and descending order.

Enhanced Form of Recovering Data in the Fast Recovery Mode

Fast recovery is now possible if the cluster restarts with more members than what were available previously at shutdown time.

LDAP Search Using a Dedicated User

ActiveSpaces now supports LDAP searches using a dedicated user instead of an anonymous login.

Queries in the JDBC Driver Sample supports the LIKE Operator

The clause of the query in the JDBC Driver sample supports the operator.

(9)

C API to compare two tuples

With this version, there is a C API to compare two tuples

Version 2.1.5

The following new features have been added to TIBCO ActiveSpaces version 2.1.5.

Alternative Memory Manager for Linux 64-bit

The Hoard memory manager is offered for the Linux 64-bit platform as an alternative to the operating system's native memory manager for use with ActiveSpaces. Using Hoard over the native manager can reduce memory fragmentation. Detailed information about Hoard can be found at http://

www.hoard.org

To enable the Hoard memory manager, set the environment variable LD_PRELOAD to point to

libhoard.so in the ActiveSpaces /lib directory. With the a Bash shell, issue the following command to do this:

export LD_PRELOAD=$AS_HOME/lib/libhoard.so

Space Clear

The clear function efficiently deletes all of the tuples or a subset of tuples in the space. A filter can be passed into the clear function to define the subset of tuples to erase.

The following methods have been added to the Java API to support the clear function:

Space.clear()

Space.clear(String filter)

In the C API, the following function has been added to support space clear:

tibasSpace_Clear()

In the .NET API, the equivalent functions are as follows:

void Clear()

void Clear(string filter)

The clear function is best effort, meaning that if a tuple is locked or in a transaction by another process or thread, that tuple will not be deleted.

Listeners and Persisters used for shared-all persistence are not notified of deleted tuples to ensure that deletion is as efficient as possible. Shared-nothing persistence however is updated to reflect the deletions.

Fault Tolerant Remote Client

Fault Tolerant Remote Client allows for a remote client to specify multiple proxies so that they are not impacted by failure of a single proxy and can load balance operations across them.

Discovery URL

The syntax for the discovery URL is the same as that for unicast discovery with multiple discovery nodes, with the suffix "?remote=true".

For example,

tcp://localhost:50000;localhost:50001?remote=true

Usage of Listen URL for Remote Client Connections

It is now possible to use the regular listen port for remote client connections. The remote listen option is not removed, because it might be needed where the ActiveSpaces servers have a dual IP configuration.

(10)

This is where the “private” IP is used for intra-server communication only and the “public” IP is available for the remote clients to connect to the metaspace.

Fault Tolerance

For detailed information on how fault tolerance works, see the TIBCO ActiveSpaces Developer’s Guide.

New Redistribution Protocol

The redistribution protocol has been revised to address high latency spikes observed for operations during redistribution. The previous protocol worked by timesharing between redistribution and user operations. If an operation was initiated during the redistribution period, the time sharing technique would cause exceedingly higher than normal latency.

The new protocol works by allowing redistribution and user operations to work concurrently to avoid latency spikes. As a trade-off to minimize its impact to user operation, the total time to redistribute the same amount of data may be higher than before.

New ActiveSpaces Monitoring and Management Utility

ActiveSpaces Version 2.1.5 provides a new version of the ActiveSpaces Monitoring and Management Utility (ASMM). ASMM lets you connect to one or more metaspaces and display information about the metaspaces, metaspace members, and connected spaces. Monitoring information includes detailed statistics about members and spaces and performance graphs for space operations.

The GUI for ASMM has been completely redesigned. There are now two monitoring interfaces: the Admin Interface and the Console Interface. The Admin Interface lets you set up connections to metaspaces and configure services. The Console Interface provides new monitoring capabilities and new Activity Monitors that provide enhanced monitoring of your ActiveSpaces Installation.

Sorted Browsers

ActiveSpaces Version 2.1.5 provides the ability to sort queries that are made using browsers.

The sorting feature is implemented in the filter that is used for specifying a browser query. The filter can now use “order by” statements.

There is no API change. The order by is part of the filter. It is similar to the method used with SQL.

The following are examples of “order by” statements in filters:

order by key

id < 100 order by id

id = 5 and key < 100 order by key

id < 10 order by id, key

Note the following points:

Syntax

<query> order by <field1>, <field2>, . . . needs to be added to the end of the filter.

There is no limit on the number of fields a user can have.

Requirements

A TREE index with fields is used in order by section. The index can be a, b, c and where the order by is performed a, b.

If the index has more than one field and order by is executed only on one field, the sorting will work

(11)

If the order by cannot be satisfied due to requirements 1 or 2 as stated above, then an exception is thrown.

Change in Behavior

Index selection for queries is dictated by the use of order by in the filter. The use of order by in a query filter can override the indices that would normally be used by the query.

Consider the following query:

key<10 order by id

If the user has an index on “key” and another index on “id,” ActiveSpaces will pick the index on “id”

over the index on “key” and perform a table scan to validate “key<10."

Changed Parameters for set file_log Command

The parameters have been changed to the as-admin set file_log command as follows. The command now supports the following log file options:

log_limit <limit> default -1 (no limit) log_count <count> default 1

log_append <boolean> default true Support for OpenSSL 1.0.1j

ActiveSpaces Version 2.1.5 supports OpenSSL 1.0.1j and loads OpenSSL at runtime using dynamic load.

Version 2.1.4

The following new features have been added to TIBCO ActiveSpaces version 2.1.4.

New Cluster Membership Options

New options have been added to provide you with greater stability when network issues occur that could result in an outage. These options apply to cluster members only; remote clients will try to re- establish the connection to the proxy in the background.

Changes in Group Membership Parameters

A new parameter has been added to the MemberDef object to specify how long ActiveSpaces waits for a member to reconnect if it loses connection to the metaspace.

Also, a new parameter has been added to the MemberDef object to specify the number of host

connections that can be lost before ActiveSpaces reacts to connectivity events by putting the cluster in a suspend state. When the cluster is in suspend state, members cannot join or leave the cluster. If the number of host connections is above the threshold, the cluster waits until the connectivity issue is fixed.

Once all cluster members are connected, the cluster continuous functioning as before.

In addition, new functions and methods have been added to support member timeout settings and suspend thresholds.

member_timeout Parameter

The member_timeout parameter specifies how many milliseconds ActiveSpaces waits for a member to reconnect if it loses connection to the metaspace. The default value is 30 seconds.

cluster_suspend_threshold Parameter

The cluster_suspend_threshold parameter specifies the number of host connections that can be lost before the cluster goes into a suspended state. When the cluster is suspended, members cannot leave

(12)

or join the cluster. If connectivity is lost for a seeder member of a space, doing a read/write for that space might cause a protocol timeout.

The default value is -1 (never suspend membership operations).

New Parameters for recover space

New parameters have been added to the as-admin recover space command to define:

What recovery policy to use during recovery.

Whether shared noting files are retained or removed after a successful recovery.

The recover space command now has the following format:

recover space <spacename> [recovery_policy <policy>] [quorum <integer>] [keep_files

<boolean>]

Recovery options

There are four recovery policies as part of the recovery options. When shared-nothing persistence is implemented and recovery is issued and the policy determines when and how recovery can be made.

The policy value can be:

no_data

Recover the space without any data. This is the same as “recover space without data” in previous releases.

data_loss

Recover the space with available data from each seeder. If recovery is done with missing seeders, there is a potential for data loss, because not all members are started to ensure that all data is recovered. This policy ensures best effort recovery with available data.

no_data_loss

Recover the space only if there are enough members to be able to recover the data before shutdown. If there are not enough seeders to recover the previous state of the cluster, recovery throws an exception. This is the same as “recover space with data” in previous releases.

exact_cluster

Recover the space only if all of the members that were active before the shutdown are available in the cluster. This policy enables fast recovery, which is explained in next section. If there are more or less cluster members than before the shutdown, recovery throws an exception.

The previous form of the command—recover space with data— is still supported, but will be deprecated.

Starting with release 2.1.4, the quorum attribute for recover space with data, which specifies the number of seeders required before ActiveSpaces initiates loading of the space when a recovery is done, is no longer required. However, you can still pass the quorum value with the recover command or in the recovery options in the API.

ActiveSpaces stores the seeder information in the shared-nothing persistence file, and uses the information at startup/restart to perform recovery (recover still needs to be issued manually using the API or as-admin).

Option to keep or discard files

The optional [keep_files <boolean>] parameter specifies whether persistence files are retained or deleted

(13)

By default, the keep_files parameter is set to false, which specifies that after a successful recovery, all old files along with shared-nothing files that have an .INVALID extension are removed. Any file that is not in ActiveSpaces name format is not removed.

If you specify true for the keep_files parameter, then all files are retained when the space is recovered.

Support for Fast Recovery

ActiveSpaces 2.1.4 provides a fast recovery mechanism that reduces the number of network hops and the time required for recovery when shared-nothing persistence is used.

For fast recovery to work correctly, users are not allowed to change the following SpaceDef properties:

replication count

eviction policy

distribution policy

distribution/key field

host aware replication

ActiveSpaces performs fast recovery if all of the following conditions are met:

The number of seeders brought back into the clusters equals the number of seeders that failed.

The same set of seeders is present in the cluster (all seeder names are unchanged after the failure).

Fast recovery is only performed with shared-nothing persistence files created by ActiveSpaces 2.1.4 and later releases.

To provide information to the system administrator regarding fast recovery, the as-dump and as- convert utilities have been updated to display a list of the active seeders, and the current space definition (SpaceDef) for the space.

You provide a value defined in this enum when you call the tibas_SpaceRecover() function (C API) or the equivalent Java method in the Java API.

Change in Behavior When Ctrl+C Is Used

For the C language version of as-admin, CTRL+C is now used to exit as-admin at the completion of any command currently executing. It no longer immediately shuts down as-admin.

If it is necessary to abort execution of the C as-admin utility, you can enter the following commands:

CTRL-\

On UNIX, kill -9 <pid>

Support for OpenSSL 1.0.1h

ActiveSpaces version 2.1.4 supports OpenSSL 1.0.1h, and loads OpenSSL at runtime using dynamic load.

Version 2.1.3

The following new features have been added to TIBCO ActiveSpaces version 2.1.3.

Rolling Logs

ActiveSpaces 2.1.3 allows you to set up “rolling logs” so that ActiveSpaces logs do not fill up the host file system. Using this feature, you can specify that log files are rolled over to a new log file when a specified file size is reached. You can specify the log file size, the number of rolling log files allowed, whether to append logs to new files, and the log level to be used for each file.

(14)

New C Admin Commands

ActiveSpaces 2.1.3 includes a new C version of the as-admin utility—as-admin.exe.

This utility is located in the AS_HOME/bin directory and can be invoked by navigating to the /bin directory and entering:

as-admin

The C as-admin utility includes all of the commands that were provided with the Java as-admin utility.

In addition, the C Admin utility adds metaspace commands, space commands, admin routing

commands, logging commands, and miscellaneous commands. Also, it is now possible to execute C as- admin commands from a script file. For information on the new commands, see the TIBCO ActiveSpaces Administration document.

TIBCO ActiveSpaces Hawk Microagent

An ActiveSpaces managed application instrumented with the TIBCO Hawk Application Management Interface (AMI) protocol. The Hawk microagent exposes a set of methods that allow the connected metaspace to be monitored and controlled by TIBCO Hawk tools. The ActiveSpaces Hawk Microagent communicates with the TIBCO Hawk Agent by using TIBCO Rendezvous as the transport for

exchanges of monitored and management data to interact with the Metaspace.

For information on the ActiveSpaces Hawk Microagent, see the TIBCO ActiveSpaces Administration document.

Write-Behind Caching

ActiveSpaces 2.1.3 supports write-behind caching in addition to write-through caching to a back-end database. Write-behind caching provides asynchronous writes to the database for faster performance, and allows writes to be buffered in cache and written to the database later in case the database is down.

The writes to the database are asynchronous to the cache operation. The process is fault-tolerant of Persister failures and seeder failures of the space up to its replication degree.

Ability to Run as-agent as a Windows Service

ActiveSpaces 2.1.3 allows you to run as-agent as a Windows service. For information on this feature, see the ActiveSpaces Administration document.

ASMM Windows Service

ActiveSpaces 2.1.3 allows you to run the Management and Monitoring executable that is associated with ASMM as a Windows service. For information on this feature, see the ActiveSpaces Administration document.

System Performance Monitoring

ActiveSpaces 2.1.3 provides a system performance monitoring feature. You can monitor all members (as-agent, as-admin, and ASMM, and so on, and any client application using ActiveSpaces). For information on this feature, see the ActiveSpaces Administration document.

CURRENT Time Scope Setting for Browsers

When implementing browsers, you can now specify a CURRENT time scope setting. Specifying CURRENT allows client applications to create queries that return large result sets using less resources.

For information on implementing this feature, see the TIBCO ActiveSpaces Developer’s Guide.

(15)

Enhancements for ActiveSpaces Security

ActiveSpaces security now supports using authentication and identity parameters from admin scripts, the as-agent command line and API functions and methods, with secure metaspaces. For information on implementing this feature, see the TIBCO ActiveSpaces Developer’s Guide and the ActiveSpaces Administration document.

Version 2.1.2

The following new features have been added to TIBCO ActiveSpaces version 2.1.2.

ActiveSpaces Routing

Allows you to set up router nodes that send updates from one customer site using any transport mechanism; for example, TCP/IP or an Enterprise Messaging System (EMS).

The routing interface can also be a remote client connection from one site to another or an other transport mechanism that your application implements.

For detailed information on implementing the routing feature, see the Addendum for TIBCO ActiveSpaces 2.1.2 Add-on document.

Version 2.1.1

The following new features have been added to TIBCO ActiveSpaces version 2.1.1.

ActiveSpaces Security

ActiveSpaces now provides security features that allow you to set up a secure ActiveSpaces cluster. You can:

Set up nodes as security domain controllers, which control security within a domain, or as security domain requestors, which request access to a metaspace controlled by a security domain controller.

Use the ActiveSpaces Admin CLI and API sets to configure security settings by creating a security policy file.

Enforce security by generating security token files and distributing them to security domain requesters that need to connect to specified metaspaces in the secure cluster.

Implement user authentication using operating system authentication such as NTLM/Active Directory-Kerberos or UNIX/Linux Pluggable Authentication Modules (PAM) login; or you can use LDAP authentication.

You can also use X509v3 authentication based on verification of the user’s X509 certificate against an LDAP user account using the Simple Authentication and Security Layer (SASL) framework.

Use Access Control Lists (ACLs) to provide granular access control to metaspace/space objects and operations.

Encrypt tuple data (except for key fields and indexes) both in memory and when persisted to local storage.

The ActiveSpaces 2.1.1 security feature is not supported with the ActiveSpaces Monitoring and Management (ASMM) interface.

For detailed information on ActiveSpaces security, see chapter 4 of the TIBCO ActiveSpaces Developer’s Guide, “Implementing ActiveSpaces Security.”

Affinity Feature

The Admin CLI and the ActiveSpaces API set now allow you to define tuple fields as distribution fields.

(16)

Rather than carrying out distribution based on the values of all of the key fields, affinity allows you to distribute only on a subset of the key fields. All of the records with equivalent values for their

distribution fields are seeded by the same node.

The define | create space command in the Admin CLI contains a new parameter, distribution def, which allows you to define distribution fields. Distribution fields must be already defined in the key for the space.

Two new functions have been added to each API set to set and get distribution fields.

Host-Aware Replication Feature

ActiveSpaces now allows you to run seeders in groups to help prevent the loss of replicated data. When groups are used, the data from the seeders in one group will always be replicated on seeders that are in other groups. If a device hosting the seeders in a group goes down, no data loss will occur as the replicated data is guaranteed not to reside on any of the seeders in that group.

Running seeders in groups to prevent the loss of replicated data is useful when:

Several seeders reside on the same physical entity. For example, a computer or rack.

Access to several seeders is through the same physical entity. For example, a network switch.

For detailed information on the feature, see Host-Aware Replication in the TIBCO ActiveSpaces Administration Guide.

(17)

Changes in Functionality

This section lists changes (if any) in functionality since the last major release of this product.

Version 2.3.0

The following changes in functionality have been added to TIBCO ActiveSpaces version 2.3.0.

Improvement in Handling Disk Write Failures

Improvements were made to the way ActiveSpaces handles failures when writing to a disk. The enhanced functionality enables ActiveSpaces to retry a failed attempt at writing to a disk by buffering them in the memory and trying again later.

Version 2.2.1

There are no new changes in functionality in this release.

Version 2.2.0

The following section describes the changes in functionality in version 2.2.0 of TIBCO ActiveSpaces.

Change in the Method Used in C Examples

The C examples now use the more secure fgets() method instead of the gets() method.

Output of the show space Command No Longer Contains Non-Printable Characters

The output of the show space <space_name> entries command of as-admin was modified so that printable characters from char fields are displayed as characters and non-printable characters are displayed as hexadecimal numbers.

Redundant Keyword in the alter space Command is Now Optional

The as-admin command alter space name <space_name> has been updated so that name is now optional.

ASOperations Example Updated to Take A Starting Key

The pm (put multiple) option of the ASOperations example was updated to take a starting key number which allows you to add additional entries instead of always overwriting existing entries.

Space.size() No Longer Performs a Linear Scan

When space.size() is called, the old functionality was to perform a linear scan on the index structure to report the size of the space. This behavior has been changed in this release. The default

implementation of this API now queries the space statistics to obtain the size. To revert to the old mechanism, the API could be invoked with a filter (space.size("")) which uses the linear scan.

Remember that the linear scan can take some time depending on the number of records.

There is no change in functionality when a valid filter is used in the call to space.size(<valid filter>). It still uses linear scan.

Message Displayed when a Signal is Used to Shutdown Processes

In as-agent.exe, as-router.exe, and Java as-agent, when a signal is used to shutdown the processes, a message indicating the shutdown is due to a signal is now output to stderr. Previously there was no indication that the processes were shutdown due to a signal.

Version 2.1.6

The following section describes the changes in functionality in version 2.1.6 of TIBCO ActiveSpaces.

(18)

Changes in Transactions

Transactions have a life cycle that is controlled by begin transaction and commit/rollback of the transaction. The outcome of a transactions is either all-commit or none.

If a transaction gets stuck, or a client application cannot be located, you can use the as-admin to rollback the transaction. This ensures that the entries that are involved in the transaction, rollback to their previous state, and are available for other clients to access.

However, if the client involved in the transaction continues with their operations, and choose to commit at a later stage, an exception is reported indicating that this transaction is already rolled-back by an external tool (as-admin here). To ensure that the outcome of the transaction is either all-

commit or none, when the client intends to commit that transaction, they are going to be rolled-back. If the client decides to rollback, there is no impact and no exception is thrown.

Improvements in the as-admin ‘show space’ Command

Improved the client latency statistics and redistribution percentage information displayed for the as- admin ‘show space’ command.

Changes in the C Version of the ASPerf Example

In the C version of the ASPerf example, asperf-agent.c was changed to ASPerfAgent.c and

asperf-agent.exewas changed to ASPerfAgent.exe. Changes in ASBatchOperations Example

The ASBatchOperations example was updated to be consistent amongst all of the APIs. The Java and .NET versions of the example now use a single level menu and the previous submenu was removed.

Version 2.1.5

The following section describes the changes in functionality in version 2.1.5 of TIBCO ActiveSpaces.

C Changes

New Invocable Parameter for Callback Functions Used with tibas_SetInvocable() and tibas_SetMemberInvocable()

A new Invocable parameter has been added to the callback functions that are passed by the user when calling tibas_SetInvocable() and tibas_SetMemberInvocable(). The name of the invocable is passed to the user function.

typedef void (TIBAS_CALL_API *tibas_invocable)(

tibasSpace space, tibasTuple tuple, tibasTuple context, tibasTuple result, const char* invocable);

typedef void (TIBAS_CALL_API *tibas_memberInvocable)(

tibasSpace space, tibasTuple context, tibasTuple result, const char* invocable);

(19)

Added:

tibasRemoteMemberEvent_GetProxyMembers()

tibasSpaceDefListener_CreateEx()

tibasMember_Create ()

tibasMemberList_Create ()

tibasMetaspace_GetMemberDef()

tibasMetaspace_GetRemoteListen ()

tibasSpace_Clear()

tibasMemberDef_GetContext()

tibasSpaceDef_SetContext ()

tibasMemberDef_GetContext ()

tibasSpaceDef_GetVersionNum ()

tibas_RemoveInvocable()

tibas_RemoveMemberInvocable()

tibasTuple_Compare() Changed:

tibasAction_GetMetaspaceName()

The metaspaceName parameter type has been changed from char** to const char**.

tibasAction_GetSpaceName ()

The spaceName parameter type has been changed from char** to const char**

tibasError_GetMessage()

The message parameter type has been has been changed from char** to const char**

tibasAction_GetStackTrace()

The stackTrace parameter type has been changed from char** to constchar**

tibasSpaceEvent_GetMetaspaceName()

The metaspaceName parameter type has been changed from char** to constchar**

tibasSpaceEvent_GetSpaceName()

The spaceName parameter type has been changed from char** to constchar**

tibasSpaceMemberEvent_GetSpaceName ()

The spaceName parameter type has been changed from char** to constchar**

tibasSpaceRemoteMemberEvent_GetSpaceName()

The spaceName parameter type has been changed from char** to constchar**

tibasMember_GetName()

The memberName parameter type has been changed from char** to constchar**

tibasMember_GetId()

The memberId parameter type has been changed from char** to constchar**

tibasMember_GetHostAddress()

(20)

The hostAddress parameter type has been changed from char** to constchar**

tibasMember_GetDistributionRole()

The spaceName parameter type has been changed from char* to const char*

tibasMember_GetManagementRole()

The memberName parameter type has been changed from char** to constchar**

tibasMember_GetName()

The memberName parameter type has been changed from char** to constchar**

The tibasMetaspace_ReleaseTransaction()

The transactionId parameter type has been changed from char** to constchar**

tibasMetaspace_TakeTransaction()

The transactionId parameter type has been changed from char** to constchar**

tibasMemberDef_GetDiscovery()

The discovery parameter type has been changed from char** to constchar**

tibasMemberDef_GetName()

The name parameter type has been changed from char** to constchar**

tibasMemberDef_GetListen()

The listen parameter type has been changed from char** to constchar**

tibasMemberDef_GetRemoteListen()

The remoteListen parameter type has been changed from char** to constchar**

tibasMemberDef_GetRemoteDiscovery()

The remoteDiscovery parameter type has been changed from char** to const char**

tibasPersister_Create()

A closure parameter has been added. This parameter is a pointer to closure data that is passed to the callback function when the persister is invoked.

tibasSpace_GetName ()

The spaceName parameter type has been changed from char** to constchar**

tibasSpace_GetMetaspaceName()

The metaspaceName parameter type has been changed from char** to constchar**

tibasSpaceDef_GetName()

The spaceName parameter type has been changed from char** to constchar**

tibasSpaceDef_GetIndexDef()

The indexName parameter type has been changed from char** to constchar**

tibasSpaceDef_RemoveIndexDef()

The indexName parameter type has been changed from char** to constchar**

tibasFieldDef_GetName()

The fieldName parameter type has been changed from char** to constchar**

tibasKeyDef_Create()

The parameter type has been changed from to

(21)

The indexName and fieldNames parameters type have been changed from char** to constchar**

tibasIndexDef_GetName()

The indexName parameter type has been changed from char** to constchar**

tibasIndexDef_SetName()

The indexName parameter type has been changed from char** to constchar**

tibasIndexDef_SetFieldNames()

The fieldNames parameter type has been changed from char** to constchar**

tibasTuple_GetString()

The value parameter type has been changed from char** to constchar**

tibasTuple_PutString()

The value parameter type has been changed from char** to const char**

tibasTuple_Eval()

The filter parameter type has been changed from char** to const char**

Removed:

tibasRemoteMemberEvent_GetProxyMember() Changes to the Example Code

The C examples have been updated for the HP-UX, AIX, and Solaris platforms to account for changes in the C API.

Version 2.1.4

The following section describes the changes in functionality in version 2.1.4 of TIBCO ActiveSpaces.

C Changes

The types.h file contains a new _tibasRecoveryPolicy enum that you use to set recovery options:

typedef enum _tibas_recoveryPolicy {

TIBAS_RECOVERY_NO_DATA = 0, TIBAS_RECOVERY_DATA_LOSS = 1, TIBAS_RECOVERY_NO_DATA_LOSS = 2, TIBAS_RECOVERY_EXACT_CLUSTER = 3 } tibas_recoveryPolicy;

Added:

tibasMemberDef_SetMemberTimeout()

tibasMemberDef_SetClusterSuspendThreshold()

tibasMemberDef_GetMemberTimeout

tibasMemberDef_GetClusterSuspendThreshold() Java Changes

Added:

MemberDef setMemberTimeout(long timeout)

long getMemberTimeout()

(22)

MemberDef setClusterSuspendThreshold(int threshold)

int getClusterSuspendThreshold()

Version 2.1.3

The following section describes the changes in functionality in version 2.1.3 of TIBCO ActiveSpaces.

Batch Puts can now take a collection of PutOptions in case each Put requires a different configuration.

C Changes

A new _tibasFileLogOptions structure has been added to enable implementation of rolling log files:

struct _tibasFileLogOptions { const char* filePath;

tibas_logLevel level;

tibas_int limit;

tibas_int fileCount;

tibas_boolean append;

The tibas_timeScope structure has been changed to add a CURRENT time scope setting:

typedef enum _tibas_timeScope {

TIBAS_TIME_SCOPE_ALL = 0, TIBAS_TIME_SCOPE_SNAPSHOT = 1, TIBAS_TIME_SCOPE_NEW = 2, TIBAS_TIME_SCOPE_NEW_EVENTS = 3, TIBAS_TIME_SCOPE_CURRENT = 4 } tibas_timeScope;

Added:

tibasMetaspace_CloseAll()

tibasFileLogOptions_Initialize()

tibas_EnableFileLoggingEx()

tibasSpaceDef_IsHostAwareReplication()

tibasSpaceDef_SetHostAwareReplication()

tibasSpaceDef_GetPhaseRatio()

tibasSpaceDef_SetPhaseRatio()

tibasSpaceDef_GetQueryLimit()

tibasSpaceDef_SetQueryLimit()

tibasSpaceDef_GetFileSyncInterval()

tibasSpaceDef_SetFileSyncInterval()

tibasBrowserDef_SetQueryLimit()

tibasBrowserDef_GetQueryLimit()

tibasServices_ReportState()

tibasServices_SignalStop()

tibasServices_WaitForStop()

tibasListenerDef_SetQueryLimit()

tibasListenerDef_GetQueryLimit()

(23)

tibasSpaceMemberDef_SetDataStore()

tibasSpaceMemberDef_Free()

tibasRouter_Create()

tibasRouter_Free()

tibas_DisableFileLogging()

tibas_EnablePerformanceMonitor()

tibas_IsEnablePerformanceMonitor()

tibas_GetMetaspaceNames()

tibasAction_GetMetaspaceName()

tibasOp_GetTTL()

tibasActionResult_SetFailedEx() Java Changes

The BrowserDef.setRoute method now provides an option to enable or disable routing.

Added:

MetaSpace.closeAll()

ActionResult.SetFailed

ASCommon.EnablePerformanceMonitor()

FileLogOptions.getFile

FileLogOptions.getLimit()

FileLogOptions.set Append()

FileLogOptions.isAppend()

FileLogOptions.setLimit()

SpaceDef.getPhaseCount()

SpaceDef.setPhaseCount()

SpaceDef.getPhaseInterval()

SpaceDef.setPhaseInterval()

setEnablePerformanceMonitor()

SpaceDef.isHostAwareReplication()

SpaceDef.setHostAwareReplication() .NET API Changes

Added:

FileLogOptions.getFilePath()

FileLogOptions.setFilePath()

FileLogOptions.getFileCount()

FileLogOptions.setFileCount()

FileLogOptions.getLimit()

(24)

FileLogOptions.setLimit()

FileLogOptions.getAppend()

FileLogOptions.setAppend()

FileLogOptions.getLevel()

FileLogOptions.setLevel()

SpaceDef.getHostAwareReplication()

SpaceDef.setHostAwareReplication()

SpaceDef.getPhaseCount()

SpaceDef.setPhaseCount()

SpaceDef.getPhaseInterval()

SpaceDef.setPhaseInterval() Admin Language Changes

The C as-admin interface has been introduced. The C as-admin includes all of the commands previously provided by the Java as-admin.

The following as-admin commands have been added with the C as-admin:

execute on member

execute on members

execute on proxy

open name listen

close

show metaspaces

show space stats

show system stats

commit transaction

rollback transaction

show transactions

join space

leave space

show space entries

show space locks

show space members

show space size

unlock space

set event log

set file log

show console log

show event log

(25)

A show members [count] parameter has been added to the show members command.

A show spaces [all] parameter has been added to the show spaces command.

Changes to the Example Code

The example JDBC Driver was updated to provide support for the following:

transactions

DatabaseMetaData

PreparedStatements

select count(*) from <table_name>

Version 2.1.2

The following section describes the changes in functionality in version 2.1.2 of TIBCO ActiveSpaces.

C Changes

The Put options and the Take options now have an extra boolean element—tibas_boolean route—

indicating whether a specified put or take operation should be routed.

struct _tibasPutOptions { tibas_long entryTTL;

tibas_long lockWait;

tibas_boolean lock;

tibas_boolean unlock;

tibas_boolean forget;

tibas_boolean route;

void* resultHandler;

void* closure;

};

struct _tibasTakeOptions { tibas_long lockWait;

tibas_boolean lock;

tibas_boolean unlock;

tibas_boolean forget;

tibas_boolean route;

void* resultHandler;

void* closure;

};

Added:

tibasSpace_SetRouter()

tibasSpaceDef_SetRouted()

tibasRouter_Create()

tibasRouter_Free() Deprecated:

tibasSpaceDef_SetPersisted() Java Changes

A new Router interface has been added to support the ActiveSpaces routing feature. The Router interface is defined as follows:

public ActionResult onOpen (RouterOpenAction openAction);

public ActionResult onClose (RouterCloseAction closeAction);

(26)

public ActionResult onWrite (RouterWriteAction writeAction);

public ActionResult onAlter (RouterAlterAction alterAction);

Added:

SetRouted()

IsRouted()

setRouter()

stopRouter() .NET API Changes Added:

Router.Router Router { set; }

public abstract bool Routed { get; set; } (SpaceDef method, similar to setRouted)

Version 2.1.1

The following section describes the changes in functionality in version 2.1.1 of TIBCO ActiveSpaces.

Change in Default Nullable Setting for Space Fields

With release 2.1.1, the default setting for the as-admin Admin CLI command for defining fields with the

define | create space command or altering a space with the alter space command is “not nullable.”

In prior releases, the default value was nullable. The default setting for defining or altering fields using ActiveSpaces API calls remains “not nullable.”

C Changes

The signature of the tibasAdminExecute() function has been changed. The result parameter is now a pointer to a character buffer that ActiveSpaces allocates to hold the result string.

The new signature is:

tibasAdmin_Execute(tibasAdmin admin, char** result, tibasMetaspace metaspace, const char* cmd) New functions have been added to support the ActiveSpaces security feature and the affinity feature.

Change to Default timescope setting for Browser Definitions

The default timescope value for the BrowserDef object has been changed from ALL to SNAPSHOT.

Change to Default timescope setting for Listener Definitions

The default timescope value for the ListenerDef object has been changed to TIBAS_TIME_SCOPE_NEW_EVENTS.

Added:

tibasMemberDef_GetSecurityPolicyFile()

tibasMemberDef_GetSecurityTokenFile()

tibasMemberDef_GetAuthenticationCallback()

(27)

tibasMemberDef_SetSecurityTokenFile()

tibasMemberDef_SetAuthenticationCallback()

tibasFieldDef_IsEncrypted()

tibasFieldDef_SetEncrypted()

tibas_SetSecurityLogLevel()

tibas_GetSecurityLogLevel()

tibasSpaceDef_SetDistributionFields()

tibasSpaceDef_GetDistributionFields()

tibasMemberDef_SetDataStore()—new for the C API only

tibasMemberDef_GetDataStore()—new for the C API only

tibasSpace_GetMetaspace()

tibasSpace_GetMetaspaceName() Changed:

tibasAdminExecute()

tibasInvokeResultList_GetResults() has been renamed to tibasInvokeResultList_GetReturns().

Java Changes Added:

String MemberDef.getSecurityTokenFile()

String MemberDef.getSecurityPolicyFile()

AuthCallback MemberDef.getAuthenticationCallback()

MemberDef MemberDef.setSecurityPolicyFile(String policyFile)

MemberDef MemberDef.setSecurityTokenFile(String tokenFile)

MemberDef MemberDef.setAuthenticationCallback();

FieldDef.IsEncrypted()

FieldDef.SetEncrypted()

setDistributionFields()

getDistributionFields()

ASCommon.setSecurityLogLevel()

ASCommon.getSecurityLogLevel() .NET API Changes

FieldDef.Encrypted

ASCommon.SecurityLogLevel

SetDistributionFields

GetDistributionFields

MemberDef.DataStore Property

ASSecurityException

(28)

ASSecurityProvider class

AuthenticationInfo class

Abstract Credential class

UserPwdCredential class

X509V3Credential class

AuthenticationCallback Interface Admin Language Changes

The following new commands have been added to support the ActiveSpaces security features:

define | create security_policy

Creates a security policy file that is used to configure security settings for a security domain.

define | create security_token

Creates a security token file that is deployed to requestor nodes that need to access a metaspace in a security domain controlled by a security domain controller.

validate policy_file

Validates the syntax of a specified security policy file.

validate token_file

Validates a specified security token file.

validate truststore

Validates a specified security certificate file.

The following commands have been changed:

The connect command has a two new parameters to support connection as a security domain controller or a security domain requestor:

[security_token <string>] [security_policy <string>]

The define | create space command has a new parameter to support index fields that set up distribution def fields:

distribution_def ('KEY','field0','field1','field2' ...)

Fields that are set up as distribution fields, will have their data stored on the same seeder if their field data is identical.

The show | describe space command now indicates any fields that have been set up as distribution fields.

Changes to the Example Code

The following modifications have been made to the example code provided with TIBCO ActiveSpaces.

The following new security-related examples were added in this release:

examples/c/security/ASDomainController.c

examples/c/security/ASUserAuthenticator.c

examples/dotnet/security/ASDomainController.cs

examples/dotnet/security/ASUserAuthenticator.cs

(29)

examples/java/security/ASUserAuthenticator.java

For documentation on the example security programs, see the Tutorial chapter of the TIBCO ActiveSpaces Developer’s Guide.

AS Performance Examples

A set of ActiveSpaces performance programs has been added in the /tools/asperf subdirectory of each language set's example directory:

C Examples

ASPerf.c

ASPerfAgent.c

ASPerfSlave.c

.NET Examples

ASPerf.cs

ASPerfAgent.cs

ASPerfSlave.cs .NET Examples

ASPerf.java

ASPerfAgent.java Java Examples

ASPerf.java

ASPerfAgent.java

ASPerfSlave.java

For documentation on the example performance programs, see TIBCO ActiveSpaces Developer's Guide.

The parameters for the following example programs were changed to allow operation with the ActiveSpaces security feature:

ASOperations

ASBatchOperations

ASChat

ASQuery

ASPersistence

ASRequestReplyServer

ASRequestReplyClient

InvokeClient

ASBrowser

ASEventBrowser

ASListener

MemberspaceMemberMonitor

(30)

SpaceDefMonitor

SpaceStateMonitor

SpaceMemberMonitor

The Java and .NET InvokeClient examples were modified to match the C InvokeClient example.

The namespace used for the .NET InvocableLibrary was changed to remote to allow the .NET InvokeClient example to be able to interoperate with the Java and C InvokeClient examples.

.NET ASInvocable and ASInvocableMember are now linked with the .NET ASOperations example so that the .NET version of ASOperations can now be used with the InvokeClient example.

Support for the -remote_discovery command line option has been fully removed from the examples. Remote discovery should now be specified using the -discovery command line option giving a value of the form:

tcp://IP:port?remote=true

The default timescope used in the ListenDef object for the Java and .NET examples is now

“new_events”. The Java, .NET, and C examples now all use the same default timescope setting.

The Java, .NET and C examples all use a default timescope setting of SNAPSHOT in the BrowserDef object.

參考文獻

相關文件

Now, nearly all of the current flows through wire S since it has a much lower resistance than the light bulb. The light bulb does not glow because the current flowing through it

In view of the large quantity of information that can be obtained on the Internet and from the social media, while teachers need to develop skills in selecting suitable

(a) the respective number of whole-day and half-day kindergarten students receiving subsidy under the Pre-primary Education Voucher Scheme (PEVS) or the Free Quality

This kind of algorithm has also been a powerful tool for solving many other optimization problems, including symmetric cone complementarity problems [15, 16, 20–22], symmetric

Regarding the course timetable and the commencement arrangement, information will be sent to you via email upon completion of online registration in mid-September 2022.

Feedback from the establishment survey on business environment, manpower requirement and training needs in respect of establishments primarily engaged in the provision of

 Create and present information and ideas for the purpose of sharing and exchanging by using information from different sources, in view of the needs of the audience. 

 Create and present information and ideas for the purpose of sharing and exchanging by using information from different sources, in view of the needs of the audience. 