Message Brokers Application Servers Transport The Layers
- 格式:pdf
- 大小:27.59 KB
- 文档页数:12
4th Workshop on Advanced Research and Technology in Industry Applications (WARTIA 2018)Study and Analysis on Web Methods BrokerChen ChenDalian Institute of Science and Technology, Dalian, China***************Keywords: WebMethods Broker, Analysis, performanceAbstract: This paper describes the information about how to administer and manage webMethods Broker. It describes how to create and manage Brokers on a broker server, set up access permissions, and monitor document traffic, and points out that the system administrator who is responsible for configuring and monitoring webMethods Broker, assumes basic concepts of webMethods Broker architecture, and the systems on which you are running the webMethods Broker software meet or exceed the recommended system requirements outlined in the webMethods System Requirements spreadsheet on the webMethods Advantage Web site. The paper provides Broker Security Model, and describes how webMethods Broker security works and its performance.1. IntroductionWebMethods Broker is the primary component in what is referred to as the “message backbone” in a webMethods integration environment. Along with other webMethods components, webMethods Broker facilitates asynchronous, message-based integration using the publish-and-subscribe model.The publish-and-subscribe model is a specific type of message-based solution in which applications exchange messages (called documents in webMethods) through a third entity called a broker.2. Broker MonitorBroker Monitor (awbrokermon) is a separate process that runs on the machine that hosts Broker Server. It has three functions:It starts Broker Servers.It monitors the state of the Broker Servers running on the host machine and automatically attempts to restart them if they fail.It logs status messages about the Broker Servers.Broker Monitor listens for requests from administrative clients (such as the Broker user interface in My webMethods) on port 6850. This port assignment is fixed and cannot be reassigned. Although a computer can host multiple instances of Broker Server, it can host only one instance of Broker Monitor. This one instance monitors all Broker Servers that run on the machine.2.1. How Broker Monitor Starts Broker ServersThe Broker Monitor configuration file points to the Broker Servers that reside on the host machine. When you start Broker Monitor, it reads this configuration file and automatically starts all of the Broker Servers that are identified in the file.The Broker Monitor’s configuration file is updated automatically when you install Broker Server on the host machine and when you define additional instances of Broker Server using the server_config utility. You do not edit this file manually.Figure 1. Broker Monitor monitors all Broker Servers on the host machine.2.2. How Broker Monitor Monitors the State of Broker ServersWhen Broker Monitor starts a Broker Server, it internally captures the process ID that the operating system assigns to the server process. Using this ID, Broker Monitor continually monitors the server’s run state. If the server exits unexpectedly (i.e., it is not stopped in a controlled way through the Broker user interface or the server_config utility), Broker Monitor automatically attempts to restart it. To avoid the situation where Broker Monitor keeps restarting a Broker Server that is unable to stay up and running, Broker Monitor will not restart a Broker Server that has experienced three unexpected exits within a five minute period.2.3. Status Messages Logged by Broker MonitorBroker Monitor maintains a log file in which it records the following events for the Broker Servers that it monitors:Broker Server is launched (by Broker Monitor).Broker Server exits unexpectedly.Broker Server is stopped by an administrative action.On a Windows machine, this information is also written to the Windows event log and can be viewed through the Windows Event Viewer (e.g., Start > Settings > Control Panel > Administrative Tools > Event Viewer). On a UNIX machine, this information is written to the system log, /etc/syslog.conf.3. Managing webMethods Broker ServersThe Broker Server is a container-like process that hosts one or more Brokers. It manages the communication, memory management, and queue storage functions for all the Brokers that it hosts.3.1. The Data DirectoryEvery Broker Server has it own data directory, which holds the Broker Server’s configuration file and its log files. Frequently, the data directory also holds the Broker Server’s queue storage files, but often these files are placed on a separate (usually faster) storage device.3.2. The Configuration File (awbroker.cfg)The Broker Server configuration file (awbroker.cfg) contains parameters that define a single Broker Server instance. The configuration file resides in the Broker Server’s data directory and supplies information such as the Broker Server’s license key, base port, and the location of its queue storage files. Most parameters in the configuration file can be displayed and modified using the Broker user interface in My webMethods. Certain parameters, however, can only be modified usinga command-line utility or by editing the awbroker.cfg file directly.3.3. Broker Server Communication PortsWhen you install Broker Server or create a new Broker Server with the server_config utility, you specify the server’s base port. Broker Server uses the base port for non-SSLcommunications. It uses the two ports immediately below the base port for SSL-based communications. By default, port 6849 is the Broker Server base port. If you do not explicitly assign a base port when you install orcreate a Broker Server, it uses the default port 6849 for non-SSL requests and ports 6848 and 6847 for SSL requests.4. Managing BrokersA Broker is an entity that resides on a Broker Server. When a client connects to BrokerServer, it specifies the Broker with which it wants to interact.A Broker contains three key types of objects: Document types, which define the kinds of documents that clients of the Broker can exchange.Client groups, which are objects that represent a set of client properties and permissions. Any client that connects to a Broker must declare the client group to which it belongs. If the Broker Server on which the Broker is running is SSL enabled, an access control list (ACL) can be assigned to the client group. By restricting access to a client group, you restrict access to the Broker.Clients, which are state objects that represent the client programs that connect tothe Broker. The state object maintains a client’s list of subscriptions and its queue. If a client program connects to the Broker as an “explicit destroy” client, the Broker maintains the state object even if the client program is physically disconnected from the Broker.4.1. Creating a BrokerWhen you install Broker Server using the webMethods Installer, the Installer creates one Broker, called “default,” on the Broker Server. You can use the following procedure to create additional Brokers on the Broker Server if necessary. You can also use this procedure to add a Broker to a Broker Server that you have created using the server_config utility. Unlike the installation process, the server_config utility does not install a default Broker on a new Broker Server. You must explicitly create the Broker yourself.4.2. Deleting a BrokerUse the following procedure to delete a Broker from a Broker Server. When you delete a Broker, you immediately disconnect and delete all clients that exist on it. You also permanently delete all of its client groups and document types.4.3. Managing TransactionsTransaction processing allows a Broker client to group the events it publishes as a single unit of work called a transaction. A transaction either completes successfully, is rolled back to some known earlier state, or it fails. Once all of the documents that make up a transaction have been published, delivered, or received, the Broker client ends the transaction. A transaction can be ended by committing the transaction or aborting the transaction. The Broker’s transaction manager coordinates and controls the transactions that are initiated by Broker clients. Transactions that run under the Broker transaction manager include transactions initiated by regular Broker transactional clients, as well as regular and XA transactions that are initiated by the Broker JMS API. You use the transaction controls in My webMethods to monitor and manage transactions that are running under the transaction manager on the Broker. These controls allow you to monitor the activity of transactions as they execute and take action against transactions that do not appear to be running correctly.4.3.1 Viewing Running TransactionsIf a client has started a transaction on the Broker, that transaction appears on the Transactions tab. The transaction disappears from this tab when the client explicitly ends the transaction. In many cases, transactions complete too quickly to be viewed in the Transactions tab. However, the list is useful for monitoring the state of long‐running transactions and for spotting transactions that havebecome hung in the system. To view transactions running on Broker:In My webMethods: Messaging > Broker Servers > Brokers.In the Brokers List, click the Broker whose transactions you want to view. If the Broker does not appear in the list, use the Search tab to locate it.On the Broker Details page, click the Transactions tab. The transaction list at the bottom of this tab displays transactions that are currently running on the Broker.4.3.2 Configuring the Transaction Timeout OptionsFor transaction processing, you can configure the Broker to monitor the length of time between stages of a transaction and to take a prescribed action if a transaction exceeds a specified period of time. When a transaction exceeds the specified time limit , the Broker automatically performs a commit or roll back for the transaction. Whether the Broker performs a commit or roll back depends on how you have configured the transaction timeout options. Transactions that expire and are completed by the Broker are considered to be heuristically completed, meaning that the decision to perform a commit or roll back did not come from the client. As required by the XA Specification, the Broker maintains a record of heuristically completed transactions in a log.5. Managing QueuesThis managing queues describes how to view the list of documents in a queue and examine the content of the documents themselves, also explains how to delete documents from a queue, move documents from one queue to another, and insert documents into a queue. A queue contains the published documents to which a client subscribes. A document remains in the queue until the client retrieves it (and acknowledges that it has retrieved the document successfully) or until the document expires. Each client has one queue, which is part of its client‐state object. Each queue has a storage type which determines whether documents in the queue are saved in local memory (volatile storage) or are saved to disk (guaranteed storage). The storage type for a queue also dictates the lifecycle of the client. The lifecycle determines whether the Broker maintains state information for a client, including queue contents, after the client disconnects.My webMethods maintains statistics for a queue, including:The total number of documents in the queue, including the number of documents available for delivery and the number of unacknowledged documents in the queueThe last time a document was placed in the queueThe last time a client retrieved a document from the queueThe size of the queueYou might want to take corrective or preventive action based on the queue statistics. For example, if the statistics indicate that the queue contains a large number of documents and it is been a long time since a client program retrieved a document, you might want to verify that the client program is running properly.If you want to view the contents of a client’s queue, you can browse the queue. When you browse a queue, you retrieve a list of the documents in the queue. For each document, My webMethods specifies the acknowledgement status of the document, the document size, and the document’s sequence number.6. ConclusionBased on the above content, this paper proposes Broker Security, which describes how webMethods Broker security works. It describes the Broker security model, and explains how to configure SSL for Broker. The usage and set up of keystore files and Access Control Lists, which are key elements of the Broker security model, are covered in detail. The chapter also covers the Broker utilities used to implement security, and the step-by-step procedures for implementing all aspects of Broker SSL security, so the paper proposes the Broker Security Model.6.1 Broker Security ModelBroker installation as well as Broker data. The security model uses Secure Sockets Layer (SSL) to:Authenticate Broker Servers and clients. Authentication is the process of validating the identity of an entity attempting to establish a connection. The Broker security model provides referenceintegrity through SSL, guaranteeing the identity of a Broker Server to a requesting client, and optionally, that of a client to a Broker Server.Authorize administrative access to a Broker Server and client access to Broker objects and data.Authorization is the process of granting (or denying) access permissions. The Broker security model authorizes access permissions by comparing a client’s SSL identity against a list of identities contained in an Access Control List (ACL). If the client’s SSL identity matches one of those listed, it is granted permission; if not, it is denied permission.Allow secure sharing of data between Brokers in Broker territories or connected by a Brokergateway. In the Broker security model, you can also set access permissions to control which Brokers can join a territory, and whether a Broker in another territory connected by a gateway is allowed to access data.6.2 Securing Broker System Components●Broker Server●Clients, including the Broker user interface and Broker command-line utilities●Remote Broker gateway●Remote Brokers within territories●Securing the Broker Server●Securing the Broker User Interface●Managing Territories●Managing Gateways●Configuring the Forwarding Mode●Using My webMethods with JMSMy webMethods provides a broad range of capabilities for Broker metadata export and import, allowing you to save entire hierarchies of Broker objects and their relationships in XML files. You can import that data in whole or part to other locations in your Broker network. webMethods Broker consists of two main components: Broker Server, the run-time component with which publishers and subscribers interact, and the Broker user interface, the administrative component that runs on My webMethods Server.Broker Monitor monitors all of the Broker Servers running on the machine where it is installed. It will automatically attempt to restart any Broker Server that stops running. In solutions based on this model, applications that produce information send the information to the broker entity and applications that require the information connect to the broker and retrieve the information they need.References[1]Gregor Hohpe’ Bobby Woolf. Enterprise Integration Patterns Designing Buildings and Deploying Messaging Solutions, America: Addison Wesley. 2003.[2]Dai Lusi, Liao Wen?het Tian hong elai.Research of B2B E-commerce System Model Based on Web Service.Transactions of Nanjing University of Aeronautics& Astronautics, 2003’ (7):118-122.[3]Web Methods Modeler User’s Guide. Web Methods, Inc, 2006.。
WebSphere_Message_Broker_介绍1.WebSphere Message Broker的总体介绍IBM WebSphere Message Broker最主要的功能是消息选路、消息传送、消息扩展和发布/订阅。
显然,这些功能使WebSphere Message Broker成为实现ESB业务集成的首选。
下面是WMB的体系结构图:1.1. 消息路由WebSphere Message Broker具备传送选择功能,采用移动电话、遥测装置和互联网技术从而提供强劲的集成能力,使您能够随时、随地的安全管理业务。
WMB提供了智能路由功能,根据消息的内容进行灵活而高性能的决策,从而将消息发送到相关的目的地1.2. 消息传送和扩展对于处理中的消息进行转换和扩展是WebSphere Message Broker一个重要的功能。
该功能勿需在应用程序中附加任何逻辑即可实现业务集成。
消息可以在应用程序间以不同的格式转换。
例如,一个旧有系统的自定义格式可以转化成XML消息,供Web服务使用。
WMB提供各种消息格式定制和解析服务,支持各个应用的数据导入导出,并提供多种数据格式服务,其中包括:●用户自定义格式,既用户可以为每一种应用定制自己的消息格式,通过这种消息格式来连接原有的旧的应用;●XML/SOAP格式,对XML的支持包括Schema, DTD以及Generic XML;●面向纪录的信息格式,如C的头文件、COBOL Copybook、CSV、TDS、CWF、MIME等;●业界标准格式,如SWIFT、EDIFACT等;1.3. 发布/订阅发布/订阅提供了一种消息传送方式,即消息被发送给所有订阅了某一特定主题的应用程序。
通过发布/订阅和相关的多播技术实现了以业务为核心的改进的消息流。
1.4. Message Broker基本组成WebSphere Message Broker原则上包括两个部分:一个开发环境和一个运行环境:●开发环境——在此环境中开发出消息流应用程序,用于将逻辑提供给代理。
WebSphere Enterprise Service BusAn edition of WebSphere Enterprise Service BusTechnical detail∙What is an ESB?∙What are the IBM ESB offerings?∙When do I use WebSphere ESB, WebSphere Message Broker or WebSphere DataPower?∙How do WebSphere ESB, WebSphere Message Broker, and WebSphere DataPower interoperate?∙What is a Federated ESB?∙What tools do you use with Message Broker?∙What tools do you use with WebSphere ESB?∙Do I need WebSphere MQ if I have WebSphere Message Broker?∙Do I need WebSphere ESB if I already use WebSphere Application Server?∙If WebSphere Process Server is powered by ESB technologies; do I need to buy WebSphere ESB as well?∙Is WebSphere ESB a better solution for a small or medium business to choose to improve business flexibility than WebSphere Business Integration Server Express?What is an ESB?An Enterprise Service Bus (ESB) is a flexible connectivity infrastructure for integrating applications and services. An ESB can power your Services Oriented Architecture (SOA) by reducing the number, size, and complexity of interfaces between those applications and services.An ESB performs the following:∙Routing messages between services∙Converting transport protocols between requester and service∙Transforming message formats between requester and service∙Handling business events from disparate sourcesAn ESB should allow your organization to focus on your core business needs rather that the IT Infrastructure required connecting the programs together. An ESB should allow you to add new services, or make changes to existing services, with little or no impact to the use of existing services.What are the IBM ESB offerings?IBM offers three ESB products: IBM WebSphere ESB, IBM WebSphere Message Broker, IBM WebSphere DataPower Integration Appliance XI50. Selecting an ESB to power your SOA depends upon your requirements. WebSphere ESB is a platform-based ESB and optimized with WebSphere Application server for an integrated SOA platform. WebSphere Message Broker is a platform-independent based ESB and is built for universal connectivity and transformation in heterogeneous IT environments. WebSphere DataPower Integration Appliance XI50 is an appliance-based ESB and is built for simplified deployment and hardened security. Customers face a wide range of ESB requirements from the simple to the complex.When do I use WebSphere ESB, WebSphere Message Broker or WebSphere DataPower?When to Use WebSphere ESB?∙You use WebSphere Application Server and/or your team has skills with WAS Administration and Java coding∙You are now or planning on developing business process using WebSphere Process Server (WebSphere ESB and WPS have common tooling, programming model, and runtime)∙You are integrating with ISV business applications hosted on WAS or 3rd party solutions which extend and support WAS∙You are focused on standards based interactions using XML, SOAP, and WS∙You want to mediate between Web services and existing systems using JMS and WebSphere JCA Adapters∙Reliability and extensive transactional support are key requirements∙You want to minimize your server investment by co-hosting WebSphere services and ESB in one application serverWhen to Use WebSphere Message Broker?∙You are currently using WebSphere Message Broker but not as an ESB∙You have extensive heterogeneous infrastructures, including both standard and non-standards-based applications, protocols, and data formats- You have extensive MQ skills and infrastructure- You are using Industry formats such as SWIFT, EDI, HL7∙You are implementing a wide range of messaging and integration patterns - Complex event processing, message splitting and aggregation∙You need extensive pre-built mediation support∙You have very complex transformation needs∙Reliability and extensive transactional support are key requirements∙To achieve very high-performance with horizontal and vertical scalingWhen To Use WebSphere DataPower?∙Ease of use is a pre-dominant consideration- Simple experience of drop-in installation and admin-based configuration with no or minimal development required∙You are transforming between XML-and-XML or XML-and-any other format∙Your interaction patterns are relatively simple∙Your mediation requirements are met by the existing DP mediations and minimal extensibility is needed∙You are using XML-based or WS-Security extensively∙You require use of advanced Web services standards∙You need to minimize message latency when adding an ESB layer∙You are doing extensive XML processing combined with high performance requirements ∙Your ESB must be in production very quicklyHow do WebSphere ESB, WebSphere Message Broker, and WebSphere DataPower interoperate?Within a federated ESB model, one may choose a particular ESB based upon their specific requirements. Customers can make WebSphere ESB and Message Broker work together via MQ Link, JMS, and Web services (SOAP over HTTP protocols or JMS over either WebSphere MQ or JMS). WebSphere Message Broker and WebSphere DataPower now have a single tool and security policy description for optimal security requirements. With a simple click with WebSphere Message Broker, DataPower will perform WS-Security processing. Applications and message flows will remain unchanged.What is a Federated ESB?Larger, heterogeneous enterprises often appear as a federation of somewhat autonomous domains based on lines of business, functional or governance areas. In such environments, some services may be shared or reused only within a single domain, while others may be shared or reused throughout the enterprise. In these situations, we recommend some form of ESB federation that matches the needs of the domain federation. ESB federation allows different ESB products to be used in different domains, allowing an optimal match between domain requirements and product capabilities. The roadmap and reference architecture should provide guidelines and even options for product selection for any given domain to ensure enterprise-wide optimization. We further recommend use of a federated service registry and repository to assist enterprise-wide management and governance of reusable services across the enterprise.What tools do you use with Message Broker?WebSphere Message Broker includes the WebSphere Message Broker toolkit which is based on the Rational Software Development Platform which itself is built on Eclipse. The toolkit runs on either Windows or Linux on Intel, and enables the customer to configure the system, develop the message flows and manage deployed environments. The toolkit also provides visibility of adapters (remote or local) in a Broker message flow.What tools do you use with WebSphere ESB?WebSphere Integration Developer, or WID, is the tool for use with both WebSphere ESB and WebSphere Process Server. WID is designed to be an easy-to-use tool, targeted at the Integration Developer. WID is built on the Rational Software Development Platform which itself is built on Eclipse. WID does not require the user to be a Java developer in order to build and deploy mediations; however it can be integrated with Rational Application Developer (RAD) for those customers who wish to write their own Java code.Do I need WebSphere MQ if I have WebSphere Message Broker?WebSphere Message Broker and WebSphere MQ address different business needs. WebSphere MQ provides secure and reliable connectivity between application and systems, supported on more than 80 platform configurations. This provides the ability to move data unchanged between virtually all business environments likely to be deployed in a business infrastructure. WebSphere Message Broker is used as a transport for moving data between applications, but it is capable of performing additional tasks through understanding of data formats, allowing it to provide intelligent routing and transformation of XML data formats. Businesses will still see a need for WebSphere MQ to connect up the multiple different environments that make up the typical ITinfrastructure deployed around an enterprise, but are likely to see a need for an ESB to add value in environments where it can act on the structured data being exchanged between standards-based applications.Do I need WebSphere ESB if I already use WebSphere Application Server?Because WebSphere ESB is built on WebSphere Application Server, through their WebSphere ESB license; customers are able to utilize WebSphere Application Server function. In addition, WebSphere ESB also includes additional functions not supplied with WebSphere Application Server. WebSphere ESB is likely to appeal to many WebSphere Application Server customers who are looking to integrate applications running in their enterprise, who do not want to implement the integration required to link the applications by coding bespoke application logic, either within the application programs themselves or by coding additional adapter logic. WebSphere ESB will allow the integration of applications with minimal programming, with the integration logic being performed on the data 'in-flight' between applications.If WebSphere Process Server is powered by ESB technologies; do I need to buy WebSphere ESB as well?WebSphere Process Server is powered by the same technology available with WebSphere ESB. This capability is part of the underlying functionality of WebSphere Process Server and no additional license for WebSphere ESB is required for WebSphere Process Server to take advantage of these capabilities. However customers may choose to deploy additional standalone licenses of WebSphere ESB around their enterprise to extend the connectivity reach of the process integration solutions powered by WebSphere Process Server. For example, WebSphere ESB could be installed closer to an SAP application to host a WebSphere Adapter for SAP and to transform SAP messages before sending that information across the network to a business process choreographed by WebSphere Process Server.Is WebSphere ESB a better solution for a small or medium business to choose to improve business flexibility than WebSphere Business Integration Server Express?WebSphere ESB solves a different aspect of integration than WebSphere BI Server Express or WebSphere BI Server Express Plus. WebSphere ESB provides integration focused on standards based applications and services. WebSphere BI Server Express is designed for integrating inefficient stand-alone manual processes that might involve business processes which span multiple applications and systems, including packaged applications. As part of the product license, some adapters are included with WebSphere BI Server Express to facilitate the connection and integration of key packaged applications. Therefore the scope and capabilities of the expected use of WebSphere BI Server Express is different to the capability set for WebSphere ESB, which is more directly focused on the rapid integration of applications and services built to comply with web services standards requiring minimal integration programming. However WebSphere ESB can also make use of WebSphere adapters to integrate with external applications, but these must be purchased at additional cost.。
练习1 入门1.1 构建和执行简单消息流在此练习中,您将构建并执行一个简单的消息流。
消息流就像程序一样,只不过是使用可视化范式开发的。
该流将会部署到执行它的Broker 的执行组中。
然后,可用于处理消息。
新消息流或已更改消息流的部署无需重新启动 Broker 或执行组。
部署单元是代理程序归档文件(BAR)。
代理程序归档文件的文件扩展名是“bar”。
实际上,它是一个带有部署描述符的 zip 文件,在部署描述符中,可以覆盖消息流的某些属性。
代理程序归档文件将包含要部署到特定Broker 中特定执行组的工件。
它包含消息流、消息集、XSL 变换(XSLT) 样式表、Java™ 归档 (JAR) 和 XML 模式或 WSDL 文件。
此外,还可能会包含相关源文件。
在向此 BAR 文件添加消息流时,将对此消息流执行其他验证。
然后,会将 BAR 文件部署到 Broker。
工件的最终验证由 Broker 完成。
如果 Broker 发现任何错误,那么这些错误将在事件日志中报告反馈。
对于这些练习存在一项约定:使用红框来标识特定区域,并在要输入消息和/或采取操作时使用粗体字符。
红线可用于在构建消息流时指示节点的放置位置。
快速启动区域中提供了更多图标。
它们是:∙桌面∙Internet Explorer∙记事本∙Windows® Explorer∙显示事件日志和服务∙IBM® DB2® Command Center∙Windows 命令窗口∙RfhUtil(来自 SupportPac™ IH03)∙NetTool 的链接(开放式源代码,也可用于测试 HTML 和 SOAP 消息)系统是 Windows XP Service Pack 3 (SP3)。
IBM 软件包括 IBM WebSphere® MQ V7.0.1、WebSphere Message Broker V8.0 和 DB2 V9.7。
AIX平台下Message Broker安装指南作者:IBM公司联系方式:*************.com创建时间:2005-9-22版本号:V1.01问题列表 (1)2安装MQ (1)1.1 安装WebSphere MQ for AIX Server。
(2)1.2 安装WebSphere MQ Fixpack (2)1.3 验证安装: (2)3安装DB2 (3)3.1 安装DB2 UDB for AIX Enterprise Server (3)3.2 安装DB2 Fix pack (3)3.3 验证DB2安装 (4)4安装Agent controller (5)5安装Message Broker (5)5.1 前提条件 (5)5.2 开始安装 (5)5.3 安装MB补丁包 (6)5.4 验证MB的安装 (6)1问题列表1.执行mqsi命令时提示jvmlib.o找不到,无法load,使所有mqsi命令都无法执行。
解决办法:安装MB前一定要保证系统已经安装Java Runtime Environment 1.3.1,如果没有安装,就会报这个错。
2.创建Broker时报如下错误:BIP2321E: Database error: ODBC return code '-1'.The message broker encountered an error whilst executing a database operation. The ODBC return code was '-1'. See the following messages for information obtained from the database pertaining to this error.Use the following messages to determine the cause of the error. This is likely to be such things as incorrect datasource or table names. Then correct either thedatabase or message broker configuration.BIP2322E: Database error: SQL State 'IM003'; Native Error Code '80'; Error Text'Specified driver could not be loaded'.The error has the following diagnostic information:SQL State 'IM003' SQL Native Error Code '80' SQL Error Text 'Specified drivercould not be loaded'This message may be accompanied by other messages describing the effect on the message broker itself. Use the reason identified in this message with the accompanying messages to determine the cause of the error.BIP8040E: Unable to connect to the database.The database cannot be accessed with the userid and password that were specifiedwhen the broker was created.Check that the database is running, that an ODBC connection has been created andthat the userid and password pair specified for ODBC connect on the mqsicreatecommand are capable of being used to connect to the database using an ODBC connection. Also ensure that the database has a adequate number of database connections available for use.解决办法:a)保证.odbc.ini文件中指定的ODBC驱动库在路径上:Driver=/home/db2inst1/sqllib/lib/libdb2.a。
ESB在实际项目中的应用---- WebSphere Message Broker讲座提纲:1、WebSphere Message Broker In troducti ona) ESB Overviewb) Message Broker Overviewc) Message Broker Performa nee Report 2、ESB Project Shari ng讲座内容:1、Message Broker 是建立在MQ基础之上的。
【说明消息中间件对于MB 是何等的重要,可靠的传输是前提、是基础。
】2、Busin ess In tegrati on Refere neeArchitecture上面是IBM 的业务集成参考架构,而下面的图则用IBM 的产品充满了整个架构3、ESB 所处的位置,作为连接层,组织服务请求方和服务提供方之间的信息Portal ; Service4、 ESB解决连接性问题PtaWorm鼎eSMerr Srudioippl 爬秋an SerP»rrn»r Sewicei■mJrwtt ApfActflwi Z D^taFid 曰£^!W>nt>tD«kVeBSpbvr* Bi SenrufFcurNf*fiianAppTlc^ksn and Data Act M t S«JVICM WUt皓片 HATS DB2 UW 曲hwPcxral ServerM PtrfofTfliftce Marugemenc ServiceIntegratora) Decouple interfaces from application. 注意:当前的项目中,总是在对付接口】b) Enable all applications to communicate with each other regardless ofi. Programming languages ii. System Platforms iii. Programming models iv. Protocols v. Data formats可以在以上 5 层无关性的前提下,应用程序互相通讯。
Broker 模式采用broker 模式对分布式计算进行简单模拟。
系统在一个进程内模拟分布式环境,因此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现request 和response 的转发。
采用broker 模式对分布式计算进行简单的模拟,要求如下:设计四个server,一个server 接收两个整数,求和并返回结果,一个server 接收两个整数,求差并返回结果,一个server 接收两个整数,求积并返回结果,一个server 接收两个整数,求商并返回结果。
客户端通过ID 访问所需的服务,即:将服务ID 和将两个整数发送给Broker,由broker 找到正确的服务器并将整数发送给相应的服务器,服务器计算结果,再将结果交给broker 转发给客户,客户显示结果。
搭建Broker 系统框架按照Broker 模式的要求,实现Client,Broker,Server 三种组件(设计为三个class),不要求设计Client-side Proxy 和Server-side Proxy。
必须实现如下功能:•Server 可以注册到Broker(使用ID 号)•Broker 为Server 提供注册服务•Broker 可将client 的request 转发到正确的server•Broker 可见server 的response 转发到clientmain 函数实现如下功能:•创建一个broker 对象•创建两个server 对象并注册到broker•创建一个client 对象•接收用户输入,由Client 发起request,并等待response•输出response详细实现:Broker.javaimport java.util.Vector;public class Broker{// 记录server的ID号,从0递增private int serverID;// 将所有注册的server保存到vector容器内private Vector<Server> serverVector;public Broker(){serverID = 0;serverVector = new Vector<Server>();}// 为server提供注册broker的功能,为每个server设置一个从0递增的ID 号public void Register(Server s){serverVector.add(serverID, s);serverID++;}// broker根据server的ID号获得response,以便转发给客户端显示结果public int GetResponseByRequestId(int x, int y, int id){Server s = (Server) serverVector.get(id);s.GetRequest(x, y);return s.SetResponse();}}Server.javapublic class Server {private int firstNum;private int secondNum;private int serverID;private int rusult;// 每次新增server,都要给他一个IDpublic Server(int id){this.serverID = id;}// server获得request,即获取传入的两个整数public void GetRequest(int num1, int num2){this.firstNum = num1;this.secondNum = num2;}// 根据ID号调用对应的服务计算结果,得到response public int SetResponse(){if (serverID == 0){rusult = firstNum + secondNum;return rusult;}else if(serverID == 1){rusult = firstNum - secondNum;return rusult;}else if(serverID == 2){rusult = firstNum * secondNum;return rusult;}else{rusult = firstNum / secondNum;return rusult;}}}Client.javaimport java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.DecimalFormat;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class Client extends JFrame implements ActionListener{/****/private static final long serialVersionUID = 1L;private int firstNum;private int secondNum;private int serverID;private int rusult;private Broker broker;private JButton submitBtn;private JButton clearBtn;private JTextField firtInput;private JTextField secInput;private JTextField displayResult;// 提供加、减、乘、除四种服务供用户选择private String[] item = { "addition", "subtraction", "multiplication","division" };private JComboBox<String> combobox = new JComboBox<String>(item);public Client(Broker b){this.setTitle("Broker Pattern");broker = b;// 添加各种组件并注册相应的监听器setLayout(new GridLayout(5, 1));JPanel panel = new JPanel();panel.setLayout(new GridLayout(1, 2));JPanel panel2 = new JPanel();panel2.setLayout(new GridLayout(1, 2));JLabel label1 = new JLabel("First Number");firtInput = new JTextField();JLabel label2 = new JLabel("Second Number");secInput = new JTextField();panel.add(label1);panel.add(firtInput);panel2.add(label2);panel2.add(secInput);JPanel panel3 = new JPanel();panel3.setLayout(new GridLayout(1, 2));JLabel label3 = new JLabel("Server");panel3.add(label3);panel3.add(combobox);JPanel panel4 = new JPanel();panel4.setLayout(new GridLayout(1, 2));submitBtn = new JButton("Sunmit");clearBtn = new JButton("Clear");submitBtn.addActionListener(this);clearBtn.addActionListener(this);panel4.add(submitBtn);panel4.add(clearBtn);JPanel panel5 = new JPanel();panel5.setLayout(new GridLayout(1, 2));JLabel label5 = new JLabel("Result:");displayResult = new JTextField();displayResult.setEditable(false);panel5.add(label5);panel5.add(displayResult);add(panel);add(panel2);add(panel3);add(panel4);add(panel5);}// 实现监听事件处理程序public void actionPerformed(ActionEvent e)if (e.getActionCommand() == "Sunmit"){try{int a = Integer.parseInt(firtInput.getText().trim());int b = Integer.parseInt(secInput.getText().trim());// 发送请求,包含两个整数以及服务IDSetRequest(a, b, combobox.getSelectedIndex());// 获得由broker转发的response并显示到客户端int out = GetResponse();displayResult.setText(Integer.toString(out));} catch (Exception ex){JOptionPane.showMessageDialog(null,"Your input should be a type of integer!");}}else if (e.getActionCommand() == "Clear"){ // 清空输入框firtInput.setText("");secInput.setText("");displayResult.setText("");}}// 添加request,发送两个整数以及server的ID号public void SetRequest(int num1, int num2, int id){this.firstNum = num1;this.secondNum = num2;this.serverID = id;}// 获取broker转发的response,记录计算结果public int GetResponse(){rusult = broker.GetResponseByRequestId(firstNum, secondNum, serverID);return rusult;public static void main(String[] args){Broker b = new Broker();final Client client = new Client(b);// totalServer记录提供的服务总数int totalServer = client.item.length;// 为每个server注册broker,ID号依次为0到maxIDfor (int i = 0; i < totalServer; i++){Server server = new Server(i);b.Register(server);}client.setVisible(true);client.setSize(300, 200);// client.pack(); //自动调节窗口大小client.setDefaultCloseOperation(EXIT_ON_CLOSE);}}运行效果:。
IBM_ESB介绍ThankYou!Thistime,therequestispassedthroughaMediationModule.TheMediationModule usesaMessageLoggerMediationPrimitivetologthemessagetoadatabase.TheRequestcontinuesonitswayasbefore:passedtotheimporttobesenttoXQuote.Thistime,whentherequestpassesthroughtheMediationModule,aDataBaseLookupPrimitiveisusedtolookuptheuseridinatableof“gold”users,thenaFilterisappliedIftheuserisagoldcustomer,therequestwillbepassedtoadifferentexternalWebService(offeredbyXIgnite)otherwiseitwillcontinueasbefore.Becausethemessageformatsdiffer,therequestisfirstpassedthroughanXSLTPrimiti vethatwilltransformthemessageusinganXPathexpression.Th eresponsefromXIgnitewillalsoneedtobetransformedaspart oftheMediationsothattheformatisasexpected.WebSphere ESBisdesignedtobeeasytousefrombothatoolsandaruntimeperspective.WebSphereIntegrationDeveloper,thetoolthatworkswithWebSphereESB,isbuiltforanintegrationdeveloper—some onewhounderstandsITsystemsandarchitecturesbutwhoisnotaJavadeveloper.BothWESBandWIDaredesignedtohelpcustom ersgetupandrunningquicklyandeasily,withcomprehensiveout oftheboxdocumentationandasimplifiedandvisualdevelopmentenvironment.Avisualcompositionmodelallowseasyorchestrationofmediationfunctions.Thefactthatthetoolisrolebasedmakesadministrationmucheasier.AdditionalNotes:Themediatio nfloweditorprovidesauniformapproachtoauthortheprocessingofmessage-basedone-waymodel(message-oriented)andrequest-responsebasedtwo-waymodel(service-oriented).WebSphereESBa ndWebSphereIntegrationDeveloperaresoldseparately.WIDcosts$3500/perseat.Forplanningpurposes,pricesforWebSphereESBareprojectedtobe$25KperCPU,however,thisissubjecttochange.Additionalinformationaboutlistedfeatures:Gain supportforavarietyofmessagingprotocolsincludingJMS1.1JMS1.1providedbyWebSphereApplicationServerCanexploitavarietyoftransports,includingTCP/IP,SSL,andHTTP(S)Allowsint eroperationwiththeWebSpherefamily,eg,WAS,MQ,Message/Event BrokersUtilizeabroadrangeofinteractionmodels(request/reply,point-to-point,publish/subscribe,etc.)tomeetyourrequire mentsLeverageadvancedWebservicessupporttoincorporateleadingedgecapabilitiesSOAP/HTTP,SOAP/JMS,WSDL1.1UDDI3.0ServiceRegistry,WebServicesGatewayWS-StandardsincludingWS-Security,WS-AtomicTransactionsTakeadvantageofacomprehensivec lientspackagetoextendyourenvironmentMessageServiceClientforC/C++extendstheJMSmodelformessagingtonon-JavaapplicaapplicationstoparticipateinJMS-basedinformationflowsWebServicesClientisaJAX-RPC-likewebservicesclientforC++toenabl esuserstoconnecttoWebserviceshostedonWebSpherefromwithinaC++environmentJ2EEclientsupportfromWebSphereApplicationServer,includingWebservicesClient,EJBClient,andJMSCli entAdditionalNotesforPossibleQuestions:Q.WhatareyourplansforaServicesRegistry?A.Todayyoucanstoreandlocate informationaboutservicesthroughtheIBMWebSphereUDDIRegistry.Youcandiscoverservicesintheregistrywhendevelopingnewservices,andatrun-timeyourmediationscanaccesstheregistry.Inthenearfuture,aServicesRegistryinWebSphereESBwill allowyoutolocateandmanageservicesinyourregistrythrough aflexibleregistrationandqueryinterfaceeitherthroughaUI oranAPIthatcanbeusedinpackagedorcustomtools.Longerterm,you’llbeabletointegrateyourserviceregistryentitiesan dyourgeneralmetadataandworkwiththemasaunit,e.g.,throughsharedclassificationschemes,acommonapproachtoqueryinga ndmanipulatingyourmetadataandregistrycontent.Additionalinformationaboutlistedfeatures:GainsupportforavarietyofmessagingprotocolsincludingJMS1.1JMS1.1providedbyWeb SphereApplicationServerCanexploitavarietyoftransports,includingTCP/IP,SSL,andHTTP(S)AllowsinteroperationwiththeWebSpherefamily,eg,WAS,MQ,Message/EventBrokersUtilizeabroadrangeofinteractionmodels(request/reply,point-to-point,publish/subscribe,etc.)tomeetyourrequirementsLeverageadvance dWebservicessupporttoincorporateleadingedgecapabilitiesSOAP/HTTP,SOAP/JMS,WSDL1.1UDDI3.0ServiceRegistry,WebServicesGatewayWS-StandardsincludingWS-Security,WS-AtomicTrans actionsTakeadvantageofacomprehensiveclientspackagetoexte ndyourenvironmentMessageServiceClientforC/C++extendstheJMSmodelformessagingtonon-Javaapplications.MessageServiceapplicationstoparticipateinJMS-basedinformationflowsWebServicesClientisaJAX-RPC-likewebservicesclientforC++toenablesuserstoconnectto WebserviceshostedonWebSpherefromwithinaC++environmentJ2EEclientsupportfromWebSphereApplicationServer,includingWebservicesClient,EJBClient,andJMSClientAdditionalNotesforPossibleQuestions:Q.WhatareyourplansforaServicesRegistry?A.Todayyoucanstoreandlocateinformationaboutser vicesthroughtheIBMWebSphereUDDIRegistry.Youcandiscovers ervicesintheregistrywhendevelopingnewservices,andatrun-timeyourmediationscanaccesstheregistry.Inthenearfuture,aServicesRegistryinWebSphereESBwillallowyoutolocatea ndmanageservicesinyourregistrythroughaflexibleregistrati onandqueryinterfaceeitherthroughaUIoranAPIthatcanbeusedinpackagedorcustomtools.Longerterm,you’llbeableto integrateyourserviceregistryentitiesandyourgeneralmetadataandworkwiththemasaunit,e.g.,throughsharedclassificationschemes,acommonapproachtoqueryingandmanipulatingyourmetadataandregistrycontent.Beyonditsintelligentconnectivityandeaseofusebenefits,WebSphereESBisdesignedtoimproveyourtimetovalue.Asacosteffectivesolutionforservicesintegration,WESBisdesignedtomakeSOA“real”andassuchwisintegration,WESBisdesignedtomakeSOA“real”andassuchwillallowyoutoLeverageyourSOAITinvestmentsbyquicklybuildingaflexibleintegrationinfrastructuretoextendthevalueofyourexistinginvestments,regardlessofvendor.Itsmodularapproachsupportsabilitytostartsmallandgrowasfastasthebusinessrequires,andtheextensivebusinessandITstandardssupportfacilitategreaterinteroperability&portability.FirstclasssupportforhundredofISVsolutionsthroughextensiveWebSpher eAdaptersupportandthenumerousWASandMQpartnersintheWeb SpherePartnerecosystemmakeiteasytoconnecttoyourexistingassets.Pre-builtmediationfunctionssavetimeandmoneybecauseverylittleadditionaldevelopmentisrequired.Furthermore,w ithWebSphereESByousavetimewhenyoucanchangeyourserviceinteractionswithouttakingyoursystemdown.AdditionalNotes:CompleteMediationlist,delliveredateGA:XSLTMessageLoggerM essageRouterFailStopDatabaseLookupCustomComponentFinally, WebSphereESBofferswhatsimilarofferingsdonot—seamlessintegrationwiththeWebSpherePlatform.AsImentionedbefore,WebS phereESBisbuiltontopofWebSphereApplicationServerNetworkDeployment.Assuch,itinheritsallofthemarket-leadingqualitiesofservice,includingscalability,clustering,andfail-over,uutilizesthecommonWebSphereAdministrativeConsoletoenabl esystemmanagementacrossWebSphereApplicationServer,WebSphereESB,andWebSphereProcessServer,andaaddressesend-to-endsecurityrequirementsonauthentication,resourceaccesscontrol,dataintegrity,confidentiality,privacy,andsecureinteroperabilityBecauseWebSphereESBisbuiltonthisfoundation,customers caneasilyextendtoleverageWebSpherePlatformasneedsdictate.CustomerswiththerightskillscantakefulladvantageoftheunderlyingcapabilitiesofWebSphereApplicationServerNetworkDeployment.ExtendyourexistingWebSphereMQmessagingfoundationtointegratenewenvironmentsinanopen,standards-basedway.Finally,ccommontoolingandadministrationmeansthemovefromWebSphereESBtoWebSphereProcessServerispainless.WebSphereESBintegrateswithotherIBMSoftwareofferings,aswell,includingIBMTivolisecurity,directory,andsystemsmanagementofferings.WESBincludesTivoliAccessManager,foroptionaluse,todeliverasecure,unifiedandpersonalizedexperiencethatwillhelpmanagegrowthandcomplexity,anditintegrateswithIBMTivoliCompositeApplicationManagerforSOAforaddedmonitoringandmanagementcapabilities.Managingcompositeapplicationsbasedonserviceorientedarchitecturespresentamixofnewandtraditionalchallenges,asservicesneedtobetreatedbythemanagementinfrastructureasfirst-classmanagedobjects,conformingtodefinedservicecharacteristics.IBMTivoliCompositeApplicationManagerforSOAhelpsyoumonitor,manageandcontroltheseservice-basedapplications.ThissolutionisintegratedwiththeIBMTivoliEnterprisePortal,whichenablesend-to-endresource,application,transactionandservicemanagementacrossyourITinfrastructure.Attheoperationallevel,eachmodulemapstoasingleWebSphereapplication.AdminpanelsallowsimplenavigationtoandcontroloftheseapplicationsScenario1demonstratesthecapabilitiesofWebSphereESBwhenusedalone.Itassumesthatalmostalloftheinterfacesareservices-based(eitherSOAP/JMSorSOAP/HTTP).ItcanalsotalktoWebSphereMQorWebSphereMessageBrokeroranadapterifitneedstotalktoanysystemthatisnotusingtheWebServicesorJMSmodel.Solution:ShareTraderutilizedWebSphereESBtoimplementanEnterpriseServiceBusthat:RoutesincomingrequestsfromtheWebsitetotheappropriateservicebasedonthecustomer’sstatususingcontentbasedroutingTransformstherequesttotheappropriateformatforthetargetdestinationusingXSLTandprotocoltransformationandroutesrequestbacktosourceEnablesShareTradertoseamlesslytransitionserviceendpoints.ShareTraderrecentlymovedfromaninternallyprovidedstockquoteservicetoamoredependableexternalproviderwithoutanyimpacttotherestoftheoffering.NotethatWindows2000supporthasbeenremoved!!ThisisduetoMicrosofthavingdroppedsupportforthisplatformrecently.LinuxonpSeriescomingpostGA.Solaris10supportcomingpostGA.NotethatWindows2000supportisgone!!ShipswithWebSphereMQV6–ifV5.3isnotdetectedthenV6isinstalled.IBMESB案例分享民航航空安全系统整合技术⽅案民航信息建设要求利⽤现代信息技术建⽴完整的⾼速⽹络交换平台建⽴⾼效、及时、准确、完整、统⼀的民航安全运⾏管理信息系统满⾜各种应⽤系统集成的需要完整的管理机制满⾜运⾏和维护的需要航安系统整合实现框架⽅案总结-民航航空安全系统整合技术⽅案⾸先保证在⼀个异构的环境中实现信息稳定、可靠的传输屏蔽掉⽤户实际中的硬件层、操作系统层、⽹络层等相对复杂、烦琐的界⾯,为⽤户提供⼀个统⼀、标准的信息通道,保证⽤户的逻辑应⽤和这些底层平台没有任何关系提供⼀个基于application-hub的先进应⽤整合理念,最⼤限度地减少应⽤系统互联所⾯临的复杂性基于WBI系统的实现维护都相对简单,保证每⼀个应⽤系统的更新和修改都能够实时地实现,当新的应⽤系统出现时能够简便的纳⼊到整个IT环境当中,与其它的应⽤系统相互协作,共同为⽤户提供服务,是我们实现企业应⽤互联和流程管理的最佳实现⽅案中国⼈民银⾏国库信息处理系统建设⽬标国库信息处理系统(TreasuryInformationProcessingSystem)是⼀个以国库横⾏联⽹的业务流程和⼯作流程为基础,连接税务、财政、国库及商业银⾏等业务部门的信息集成处理系统,⽤于传递、处理税款缴纳、划分、⼊库、退库、对账、业务监管、统计分析等各项业务的电⼦信息。
Message brokerMessage broker is an intermediary program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the re-ceiver.Message brokers are elements in telecommuni-cation networks where software applications communi-cate by exchanging formally-defined messages.Message brokers are a building block of Message oriented middle-ware.1PatternA message broker is an architectural pattern for mes-sage validation,transformation and routing.[1]It medi-ates communication amongst applications,minimizing the mutual awareness that applications should have of each other in order to be able to exchange messages,ef-fectively implementing decoupling.The purpose of a broker is to take incoming messages from applications and perform some action on them.The following are examples of actions that might be taken in by the broker:•Route messages to one or more of many destinations •Transform messages to an alternative representation •Perform message aggregation,decomposing mes-sages into multiple messages and sending them to their destination,then recomposing the responses into one message to return to the user•Interact with an external repository to augment a message or store it•Invoke Web services to retrieve data •Respond to events or errors•Provide content and topic-based message routing us-ing the publish–subscribe pattern2Broker functionalitySome messaging functions do not require an intermediary message broker.For example,end-point objects can take the roles of publisher and subscriber,as in the observer design pattern.Message brokers are used to decouple end-points and/or meet specific non-functional require-ments and/or facilitate reuse of intermediary functions.For example,a message broker may be used to manage a workload queue or message queue for multiple receivers, providing reliable storage,guaranteed message delivery and perhaps transaction management.3List of message broker software•Apache ActiveMQ•Apache Kafka•Apache Qpid•Celery•Cloverleaf(E-Novation Lifeline)•Comverse Message Broker(Comverse Technology)•Financial Fusion Message Broker(Sybase)•Fuse Message Broker(enterprise ActiveMQ)•Gearman•HornetQ(Red Hat)•IBM Integration Bus•JBoss Messaging(JBoss)•JORAM•Microsoft BizTalk Server(Microsoft)•Microsoft Azure Service Bus(Microsoft)•Open Message Queue•Oracle Message Broker(Oracle Corporation)•QDB(Apache License2.0,supports message replayby timestamp)•RabbitMQ(Mozilla Public License,written inErlang)•SAP PI(SAP AG)•Spread Toolkit•Tarantool,a NoSQL database,with a set of storedprocedures for message queues•WSO2Message Broker•Enduro/X Transactional Message Queue(TMQ) 125FOOTNOTES 4See also•Publish–subscribe pattern•Comparison of business integration software•Message-oriented middleware5Footnotes[1]“Hub and Spoke[or]Zen and the Art of Message BrokerMaintenance”.Enterprise Integration Patterns.2003-11-12.Retrieved2010-10-14.3 6Text and image sources,contributors,and licenses6.1Text•Message broker Source:https:///wiki/Message_broker?oldid=728749996Contributors:Jimfbleak,Pratyeka,Abdull, Kmorozov,Pablomartinez,Terber,Sadads,Huon,NickPenguin,Pmerson,CharlotteWebb,Vernetto,Fordsfords,Lmxspice,Willpwillp, Blefever,Repat,Leonard^Bloom,Tripzero,DumZiBoT,Ost316,Addbot,Poco a poco,Dawynn,Roloreaper,4th-otaku,AnomieBOT, Jim1138,Jcboileux,FrescoBot,Heironymouscoward,RedBot,Surement,Mean as custard,TheCatholicHeretic,Bomazi,Boblefevere, Praneesha,ClueBot NG,MelbourneStar,Ymblanter,Pacerier,Clearhat,BattyBot,Frosty,François Robere,Murthy33,Yaaska alaaska, Davidtinker,Tbeen,WPGA2345,Moritz Lenz,Sthankachan,Iabdlkrm,Chandler321,3gg5amp1e,Tiffanyguerrero,Drverne,OnionRing and Anonymous:486.2Images•File:Bus_icon.svg Source:https:///wikipedia/commons/c/ca/Bus_icon.svg License:Public domain Contributors:No machine-readable source provided.Own work assumed(based on copyright claims).Original artist:No machine-readable author provided.Booyabazooka assumed(based on copyright claims).6.3Content license•Creative Commons Attribution-Share Alike3.0。