The Ultimate Guide for Next-gen Architecture TIBCO architecture guide | 2 Purpose, Audience & Objectives This publication guides IT and business professionals on how to introduce a modern application architecture. Learn how to support today’s challenging business initiatives and create an ecosystem of technologies for successful innovative applications. Now is the time. B2C and B2B customers are more and more digitally-enabled across every industry and expect next-generation technologies. This guide begins with why an adoption is needed, what is necessary to embrace the change, and how to achieve next-generation architecture. It discusses how to accelerate to cloud-native architectures with three key components—ending on the 10 recommended steps to adopt a next-generation architecture. Who should read: Objectives of this Guide: • CIO, CTO • IT Leader • Business Architects • Digital Product Leaders • Application Architects • Digital Business Leader • Recommend the best practices to embrace the move to a new type of IT architecture • Enterprise Architects What Will Readers Gain? Learn how to choose the capabilities next-generation of architectures must have and be able to: • Understand current industry trends • Identify agile technologies to fill technical gaps • Follow best practices to create limitless innovative applications TIBCO architecture guide | 3 In this guide Why A Case for Change It’s About People Speed Matters Real-time Capabilities Service in the Cloud New Business Requirements What MASA API Platform Event Processing The Key Principles for Next-Gen Architecture How Adopt a Pragmatic Approach Introduce Cultural Changes Define Your Ecosystem’s Key Components Clearly Define What You Need Shatter the Shale Build Skills Shift Your Mindset Manage and Govern Your APIs Be Pragmatic Create Solutions TIBCO architecture guide | 4 Why You Need to Adopt Next-gen Architecture Disruptive events are reshaping the global economy, and no industry is immune. Many enterprises have discovered their lack of technological agility makes it difficult to quickly adapt to major events like economic downturns, changing customer demands, global pandemics, and natural disasters. Global markets and customers are evolving. Application architecture must evolve to meet the moment of digital business. Progress will never stop or slow down. You need to be able to: n Deliver multi-channel experiences n Scale and grant service availability n Support customer-oriented experiences Recent world events have exposed the fragility of many business and technological working practices; the need for flexibility is driven by a complete reset of business priorities—a top-of-mind priority for most executives. A Case for Change An increasingly digital world is creating new demands on application services to support the latest trends and requirements. Previously, your architectural landscape changed to meet the specifications of mobile devices and cloudbased deployments. Today, you need to add in the latest requirements for exponential growth of IoT and edge devices, hybrid deployments able to handle both on-premises and cloud workloads, and include even serverless computing where machine resources are allocated on demand. The traditional three-tier approach is steadily becoming less relevant due to its limited capability to adapt to a new generation of applications and customers. A recent study from IDC reveals that companies will take advantage of competitors’ weaknesses to capture market shares. This same study highlights that companies have a strong need to take advantage of new emerging technologies. Sustain and adapt your business by evolving on every level: processes, people, and systems. Your business needs a full 360-degree change to create a sustainable foundation for the future. It’s a make-or-break moment where today’s actions decide if you will thrive or be left behind. TIBCO architecture guide | 5 With the recent disruptive events, enterprises fall into distinct types: Those that shrink because they can’t adapt rapidly enough. Those already digitally-enabled that adapt to accelerate growth. Those that invest in innovation to narrow their digital gap. Those that completely upend their business models to explore new opportunities. Those that hold steady and seek cost efficiencies. Those that emphasize new digital services. It’s About People The best businesses are people-centric, where employees and customers are at the heart of everything they do. Internally, people are the ones controlling the business strategies that determine the company’s goals and output. To achieve this, IT systems and applications need to support those goals, but in a way that optimizes the human side of operations. For better insights, more companies are turning to data to support and validate strategic decision-making processes. Analytics tools are increasingly unlocking the value of market segment data, customer behavior and spend metrics, and production and defect data by supporting and critically validating the decision-making process. The reality is that most businesses are not achieving these goals in the way they want. Business teams still find themselves disconnected from application development teams and struggle to get the systems that support them. This disconnect is often caused by differing priorities and resource restrictions, which forces IT to fight to keep up with new requirements while tending to legacy architectures where even the smallest change can have significant ramifications. With the introduction of a citizen developer culture, business users can build solutions in collaboration with IT teams. Equipping IT teams with technologies that build on existing systems, unleash data assets, and integrate with the latest technologies, help create employee synergies that increase productivity, efficiency, and agility. Speed Matters The much-needed paradigm shift won’t only benefit B2C initiatives. It will also have an advantage in building more seamless and flexible B2B applications that offer innovative services and products. TIBCO architecture guide | 6 With changing customer needs and expectations, the application landscape has evolved. Digital innovation is not just about connecting internal systems by wrapping monolithic applications for a limited number of departmental users. Every industry has started to understand the value and need of offering APIs that rapidly scale when needed. There is no choice, and if you’re not up to it, you might as well close up shop. Every digital transformation plan that creates new services or applications, every operational system on-premises or cloudbased, has to be connected and integrated. But integration is just the first step. Volume and speed of data is growing and will only continue; businesses need to be positioned to take advantage. Real-time Capabilities As many industries shift from working in a reactive mode to a much more proactive one, messages need to be processed in real time. As the value of information declines over time, real-time capability is more important than ever. It is critical to process, anticipate, or even predict what will happen next— regardless of whether it’s in banking, manufacturing, retail, or the travel industry. From a business point of view, an opportunity only exists for a limited time, and once the window closes, any action taken won’t produce the same outcome. This can apply to anything from machine maintenance to marketing offers. By processing real-time generated data like vibration levels, electrical current, production quality, and tool utilization, it is possible to predict outcomes by applying machine learning (ML) models that could predict when the machine will need maintenance or upgrade. In retail marketing, you need to be sending offers to potential customers in the shop or at the till because once they’re far away, it’s unlikely they will return. Service in the Cloud With the accelerated pace of digital transformation, CIOs and CTOs are also prioritizing migration of traditional services from on-premises data centers to cloud platforms. They’ve realized that, with the cloud, IT can deploy resources more effectively, releasing staff that used to be dedicated to maintaining in-house data centers, thus gaining more agility with cloud-native architectures where scaling and provisioning is simpler to implement. With cloud-native container-based applications, it is possible to scale when needed, for the time that it’s needed. Additionally, many SaaS providers are offering their services through APIs, and companies with legacy architectures must quickly adapt to avoid lagging behind competitors. In worse cases, companies relying on monolithic applications, where every single functionality is tightly coupled, can incur business interruptions every time a new service is added since it may cause side effects for other parts of the application. Recently, a major semiconductor manufacturer needed to integrate with one of its supplier’s APIs because it planned to decommission the previously used legacy protocol to exchange data. Because the manufacturer had already established a hybrid architecture with an iPaaS, it integrated seamlessly with the supplier within days without incurring any service interruption. TIBCO architecture guide | 7 New Business Requirements With challenging markets, businesses are becoming more demanding in requesting application capabilities that provide rich user experiences, that support new business models, and that ensure real-time intelligence to take advantage of any opportunity. Not in months but days. These new business requirements are frequently hindered by existing applications and architectures. For many years, the approach to create monolithic three-layer applications was the optimal choice, but it’s now an obstacle due to inflexibility of the architecture and years of accumulated technical debt. While these applications are essential to support business operations, they’ve also become a roadblock. There’s no shortcut. Every organization must modernize its application portfolio and deliver new capabilities to enable digital business transformation. TIBCO architecture guide | 8 What: A New Architecture for Today’s Challenges Is simply moving to the cloud enough to keep up with upcoming technologies and becoming future-proof? Unfortunately not. The following application architecture trends identified by Gartner1 can facilitate transformation using a pragmatic, iterative approach: • Mesh app and service architecture (MASA) • API platform strategy • Event-processing architecture Let’s look into each of the components to understand the importance: MASA The MASA architecture codifies the best practices that have emerged over the last few years through digital cloud-native projects. MASA provides the platform to connect people, processes, services, content, devices, and things. It is based on a multidimensional model where an application is made of an interconnected mesh of independent and autonomous apps and services. It often incorporates functions from other applications to create functionality that is shared with other systems via APIs. 1 1 Gartner, Top 3 Trends in Application Architecture That Enable Digital Business, Anne Thomas, Yefim Natis, Mark O’ Neill, 28 October, 2019 As digital services for the end user are separated from systems of record, new services can be added independent of the backend system. The result is greater architectural flexibility. Teams can also decide to develop services in a variety of programming languages of choice, leveraging the strengths of each along with the adopted framework. Because businesses are highly competitive, to differentiate, most need underlying technology to create fast-evolving applications. This requires more frequent updates of new features. A service architecture can address this need by supporting continuous delivery and minimal service interruption. Businesses must have an architecture that supports fast prototyping of new services without long development cycles. They need speed in releasing a quick and dirty version of an application and analyzing data on how the app performs on the market with real customers (or on a selected subset of customers). Those insights can be used to understand what needs to change and what works. Today, being able to prototype, release, test, and refine is an added value that only service architectures can deliver. API Platform APIs are the connective tissue in today’s ecosystems that allow services to exchange information. They are at the core of a service architecture and act as a mediation layer to ensure that TIBCO architecture guide | 9 all connections between apps and services are abstracted and flexible. In a modern architecture, the API-based mediation layer maps “outer APIs,” designed to be published and consumed externally to “inner APIs” attached to internal services and performing specific tasks. However, the increasing number of APIs need to be managed and governed by a platform capable of grouping them into business capabilities: design, build, publish, and consume. With an API platform, it is possible to manage API delivery, publication, and product management, and offer a searchable API marketplace that uses the concept of composable business. APIs aren’t new; to some degree, most companies have already adopted API-first and API-led strategies to encapsulate critical business capabilities and data. Event Processing Businesses want real-time situational awareness so they can respond in the moment to opportunities and threats before it’s too late. This requires the ability to recognize and respond to events, which are business moments in the physical or digital realm. Events are important because real world interactions are eventdriven, and the value of an event is strictly time-limited. The longer you wait to act, the less impact you can have. Events Require Action Imagine that while at the shopping mall you see a promotional video of a new product on a kiosk. At the end of the promotional video, you’re offered a coupon for a discount. You really like the product and apply. Then you start checking your email, but nothing arrives. Then you check again. And again. And again, but receive no coupon. You’re sure that you’re able to receive emails! After some waiting you give up—even if you like the product, you won’t buy it because the full price is too high. There are many other examples with even greater consequences from missing realtime, situational events. This is not to say that older events have no value; events provide context for interpreting what is happening now and determining an appropriate action. The ability to correlate new and past events can often spark insight into next best actions. Think about the possibility of correlating the real-time energy consumption of a plant against past patterns of events. Would it be possible to anticipate events and optimize consumption to decrease cost and avoid wasting energy? Event processing must be part of a modern architecture where people, processes, applications, and analytics can subscribe to and take advantage of real-time data. TIBCO architecture guide | 10 There are a vast range of possibilities for event processing: • Proactive notifications when a certain event occurs • Real-time marketing • Real-time fraud detection • Predictive maintenance • Digital twin understanding • Streaming analytics to improve or speed AI and ML • Edge awareness leading to better services, greater efficiency, cost savings Event processing isn’t a new concept, but it has yet to achieve widespread adoption in enterprise applications—except in a very few specific cases. Often the required skills haven’t been easy to find. But now, with no-coding and visual programming tools, the complexity of implementing event flows is reduced and often possible through simple drag and drop interconnection of specialized components. With the fast pace of modern business, and the requirement to operate 24/7, organizations have a strong need to be able to process real-time information. Their systems need to be as responsive (automatic) as possible to adapt to any new requirement. Must All Three Be the Foundation of Digital Transformation? Mesh application service architecture, APIs, and event processing: all three contribute to creating a well-defined, future-proof ecosystem. All three enable more agile, multichannel capabilities, greater scalability and availability, and faster evolution of applications and processing of events. An architecture formed by these three technologies results in an ideal environment for building responsive next-gen applications that: • Deliver agility at scale by running in the cloud and responding intelligently to events • Implement core business logic within highly flexible digital services built with microservices or miniservices • Evolve through a highly connected foundation of interacting components that are discoverable, manageable, and secure • Support further application patterns and methodologies like composable business to avoid reinventing the wheel What does your enterprise need to be able to transform its current application architectural landscape and ready itself to build a new generation of applications? It needs a vision, a blueprint, and the right technology. If one is missing, you can’t achieve your goal. Some great technologies are ready to support you: APIs, microservices/miniservices, high-performance event brokers like Kafka, Pulsar, containers, or dev-ops. All must work together to create a well-integrated ecosystem. But it’s not only about technology; an important mindset switch for organizations is needed. Many large companies decided to embrace their digital journey by starting with people, and the first step is to “make IT easy” across the entire organization to achieve IT democratization. There’s a strong need for C-levels and business users to accelerate transformation and prepare for exploring and capitalizing on any business opportunity. By the end of 2021, organizations that shift to cloud-centric infrastructures will accelerate twice as fast by deploying their applications on modern architectures. TIBCO architecture guide | 11 The Key Principles for Next-gen Architecture Architectural principles define the fundamental assumptions and requirements of an architecture. Without these principles, the IT organization is without a compass on its journey from present to desired future state. The underlying principles held by business and IT leaders must be respected. They epitomize architectural function and define necessary constraints. A next-gen architecture must be based on: • Cloud-native applications • API-led connectivity • Event-driven design • Open platform Let’s see each of the previous in the context of what technologies are available and why these are so important when defining the desired future architecture. Open Platform The most important principle is interoperability. An open platform allows organizations to immediately and more easily adopt the latest ideas, approaches, and high-quality solutions without relying solely on the skill and knowledge of internal staff. Too often, when internal developers are assigned to build core system frameworks, libraries, and modules, it requires considerable time and effort, and when these components need to be updated with new capabilities or scale up, they hit their limits. Adopting an open platform makes it possible to avoid vendor lock-in and allows organizations to evaluate best-of-breed technologies from vendors offering enterprise ready products. These products also come with necessary support to get up and running quickly and stay up to date on newer versions and features. iPaaS A cloud-native integration platform can integrate a vast amount of systems, accelerate API-led development, and support eventdriven paradigms. An iPaaS should have pre-built connectors for both cloud and on-premises digital products to support incremental transitioning. Legacy systems must still be supported no matter where they run. The integration platform also needs to be tailored for many different user types across the enterprise, including integration specialists, developers, and non-technical integrators to promote collaboration across departments. It should support creation of integration flows for developers who can upload artifacts to the cloud and allow reuse of assets to support composable business concepts and new packaged business capabilities. API Management Platform Additionally, an API management platform manages the entire API lifecycle—from concept to production to retirement. An API management cloud-native solution will allow deployment on a variety of computing platforms. It should provide an edge-caching mechanism to avoid load increases on backend systems and support a wide range of security policy options. A must-have is a customizable developer or partner portal for onboarding and self-service key registration along with rich API documentation features. Since dev-ops practices are so important, the platform must seamlessly support deployment and development tooling. Both iPasS and API management platforms must deliver rich real-time analytics reports for administrators to understand how APIs are performing and detect any bottlenecks. TIBCO architecture guide | 12 Artificial Intelligence and Machine Learning Finally, AI and ML can be applied to traffic pattern identification. API analytics is also a growing trend for determining: • The reasons behind a sudden increase or decrease in traffic • Which APIs have greater traffic and better adoption • Why adoption is increasing API managers will want to understand why certain APIs have sudden increased latency. All those questions can be answered by applying analytics and correlating different factors. AI can also enhance cybersecurity by providing complete visibility into API traffic for detecting and blocking threats. Event Processing With more real-time generated events, event-driven capabilities can determine those that are significant to the immediate context. At the core of any event-driven architecture is a messaging broker. There are both cloud-native and on-premises brokers; what’s important is that they can be integrated with the iPaaS solution. To scale with load, messaging brokers must support modern cloud-native, event-driven, and microservices development. For example: • TIBCO Enterprise Messaging Service: JMS-based solution that offers load-balancing, routing, and fault-tolerant capabilities. • MQTT-based brokers: A lightweight publish-subscribe network protocol used to transport messages between devices, often IoT. • Apache Kafka: Secure, reliable, open-source, real-time streaming data pipelines. • Apache Pulsar: A cloud-native, distributed messaging and streaming platform. Automation Automation modernizes the IT landscape. A next-gen architecture must integrate with robotic process automation (RPA) solutions to automate legacy applications that do not provide access via APIs or other integration endpoints. Companies often struggle with legacy because off-the-shelf software never provided proper APIs. However, relying on RPA exclusively at the expense of an API-led integration will result in increased technical debt, architectural fragility, and cost. RPA is designed to capture the value of automation at the edge of human tasks, not at the core of your processes and architecture. TIBCO architecture guide | 13 How: Steps to Embracing a Next-gen Architecture Journey During 2020, in the pursuit of adopting new business models, we at TIBCO saw increasingly high demand for agility from our customers. This demand underscores how architecture is at the core of business strategy to enable innovation, efficiency, and high-quality services. What does an IT architecture need to be able to support any business initiative? IT should never be an obstacle. Here are the recommendations: 2. Introduce Cultural Changes Next-generation architecture that brings business closer to IT will involve operational changes, such as new best practices, dev-ops, continuous delivery, and continuous modernization. But these changes also require new collaborative mindsets, such as moving from project- to product-driven models. IT needs to create a responsive application architecture with mesh capabilities to provide a highly flexible platform that business users can use to build new applications with reduced time to market. 1. Adopt a Pragmatic Approach Modernize your applications by working incrementally and letting business needs drive your priority list. Many enterprises still rely on monolithic applications that meet business requirements. Because IT needs to support any future business initiative, it should work closely with business users to understand which application initiatives can benefit from a different, more modern architecture and which should be left on legacy architectures. 3. Define Your Ecosytem’s Key Components When building the next-gen architecture, keep in mind the main drivers and what you want to achieve. Carefully select the best technologies that will integrate seamlessly. Technology vendors offer a wide range of tools, systems, and services that can be used to build layered architectures, but focus on cloudenabling solutions: TIBCO architecture guide | 14 • iPaaS with mesh capabilities and out-of-the-box adapters to integrate with multiple systems and data sources • API platform with analytics capabilities • Event processing supporting AI/ML and pluggable highperformance event brokers Take what you need, when you need it, but avoid vendor lock-in. 4. Clearly Define What You Need A next-generation architecture must: • Fit the intended purpose: It should meet the requirements of its users, business users, architects, and ops, and shouldn’t be over-engineered since it would result in a wasted budget, time, and resources. • Align to the strategy: It should be as congruent as possible with the target architectures and roadmaps defined by IT. • Follow a standard: It should adequately address the concerns of those stakeholders with enterprise requirements like high scalability, loose coupling, reliability, and fault-tolerance. It should also have support for polyglot programming and composable and reusable services, and be observable to detect failures early — as well as evolutionary and adaptable. • Fit the budget: It needs to be implementable within a reasonable time and at a reasonable cost. This is the greatest strength of cloud-based architectures. It’s unlikely that a next-generation architecture would be running in an onpremises data center because the cost, time, and effort would not be sustainable. • Be flexible: It needs to take advantage of a choice of multiple cloud offerings, use the best cloud services, and reduce the cost in software development. Multi-cloud adoption will increase drastically. To build highly scalable and reliable applications, the architecture must be designed to maximize flexibility in adopting the best available service and, when necessary, switch to a better one without disrupting the current application. 5. Shatter the Shale It’s highly unlikely that an inflexible, rigid, all-in-one architecture would be the ideal candidate on which to build your future applications. In fact, it would hinder most digital transformation initiatives. Many current applications, like Netflix for example, wouldn’t even exist if it had been built on a traditional threetier architecture. Evaluate your next-gen architecture based on open, rich components. An ideal candidate must facilitate API-led application integration and support API-first strategies. it must also provide technical and cross-cutting services required by various layers of the system, like service discovery, as well as design patterns like circuit breakers, dev-ops, monitoring, logging, distributed tracing, authentication, authorization, and audit. It must also support a pluggable event backbone of choice and an API management platform to manage the entire API lifecycle. All these features improve time to market, the quality of deliverables, and the manageability of a large number of microservices. 6. Build Skills Architects, developers, and integrators will need to develop competency in distributed computing architectures and patterns—such as API design, user experience (UX) design, microservices architecture, integration, and event-driven TIBCO architecture guide | 15 processing. Therefore, it is important to build up those skills and have the underlying architecture supporting business initiatives. Architectures with iPaaS capabilities that have a visual design approach should be preferred. Those can speed up the learning curve, reduce time to market of new or added services, and at the same time reduce development costs. Devops teams must adopt and build skills in continuous integration and continuous delivery (CI/CD) practices that will make them more successful at deployment pipelines, version control, QA, and testing. It automates your entire application release cycle with huge benefits. 7. Shift Your Mindset A significant shift from a project-oriented to a productoriented mindset is currently underway in many organizations. An equally significant cultural change in team roles and responsibilities, business collaboration, and funding models is also occurring. A next-generation architecture must facilitate the creation of products. This shift also impacts how APIs are designed, developed, documented, consumed, and meshed. The platform must provide all the necessary tools to build products with frequent releases in shorter timeframes. The main driver is delivering value to customers, product teams, and organizations, quickly meeting market demands or user expectations instead of executing on an inflexible list of project requirements. Build your architecture to facilitate dev-ops best practices and product developments and support best of breed technologies like APIs, microservices/miniservices, and event processing. 8. Manage and Govern Your APIs It is not enough to just create APIs. You must also manage, govern, and pull them together onto a platform of shared business capabilities on which you can build products for your digital business. An API platform strategy is a management and governance program for designing, building, publishing, and consuming APIs. Without the possibility of governance, your API-first initiatives will soon turn against you and end in total chaos. 9. Be Pragmatic When using internal APIs, the targets are in-house teams with the goal of integrating systems and breaking down data silos. When external, the main targets are customers or business partners with the goal of connecting your services and building engaging experiences. There are multiple approaches to starting an API strategy, but it pays to be pragmatic to maximize revenue and business value. Always design your APIs first and then start developing; this will consistently save you time and money. Campari is one of the largest spirit beverage producers in the world, acquiring 27 companies since 1995. It started its API strategy by first integrating on-premises backend systems, and only then began to focus and develop external APIs for B2B and B2C use cases. TIBCO architecture guide | 16 10. Create Solutions Event-processing architectures use event notifications as a primary mechanism for asynchronously communicating information and triggering application processing. The fast pace of modern business requires improving real-time awareness and decision-making. Intelligent insights, discovered from correlating patterns in business operations, have become a significant differentiator for digital business leaders. Focus on architectural capability to process native events to create: • Decisions at speed: Applying ML/AI models on a continuous stream to immediately recognize patterns, respond to anomalies, or take advantage of an opportunity window. • Improved experiences: While few users want to manually poll for a response, many would like to be notified as soon as the result arrives. This includes services triggering multiple third-party services, location-based alerts, contextual offers, or recommendations applying real-time analytics. • IoT integration: Many IoT sensors and devices generate a continuous stream of data that needs to be processed in real time, when data has the highest value and where any immediate action may be critical to the equipment’s integrity. A next-gen architecture with event-processing capability is the groundwork to creating digital twins in many industries, from manufacturing to F1 racing. It can facilitate edge computing models that pre-process data, apply analytics directly at the edge, and exchange secure data over protected connections. • Agility to build high-performance microservices: A responsive application mesh architecture is at the heart of event-driven patterns and facilitates dev-ops practices with higher release cycles and shorter time to market. TIBCO architecture guide | 17 Becoming a Business Facilitator As the application requirements and needs in the next coming years are set to grow, your underlying architecture must be agile to accommodate any business initiative. Companies must focus on building and adopting these architectures today by starting a platform selection process for best of breed technologies. Innovation will be the driver of the next generation of customers who are already changing their behaviors and service consumption. Business agility has become a business necessity. Disruptions of all types demand that businesses adapt more quickly than ever. The right architecture selection is a key factor and must be a top priority for all CTOs. The good news is that the market offers mature solutions to build the next generation architecture platform for every organization. The right team, strategy, and execution plan can then focus on making the business succeed. Every company is seeking to outperform the competition and, with more options available to customers, it will be hard to gain market share. That’s why appealing and creative services can make all the difference. That’s also why architectures must support multiple pluggable and vendor-agnostic technologies: they need to facilitate change and not hinder any evolution, and at the same time be robust and highly scalable since customers are “always on.” Build your momentum. Visit https://www.tibco.com/solutions/ responsive-application-mesh to learn about the benefits of next-gen architecture to accelerate your enterprise in, redefining your digital business model, pivoting to new verticals, and adapting to changing customer expectations, fluctuating markets, and technology trends. ©2021, TIBCO Software Inc. All rights reserved. TIBCO, the TIBCO logo, Mashery, and TIBCO Cloud are trademarks or registered trademarks of TIBCO Software Inc. or its subsidiaries in the United States and/or other countries. Apache, Kafka, and Pulsar, are trademarks of The Apache Software Foundation in the United States and/or other countries. All other product and company names and marks in this document are the property of their respective owners and mentioned for identification purposes only.