Home > Articles > Programming > Java

This chapter is from the book

Adapter Analysis

As with any other software development project, analysis is very important for adapter development and maintenance. Understanding the complete integration scenario is fundamental to any adapter analysis methodology or technique. Knowing the objectives of the integration scenario is useful in determining the specific role of the adapters.

Where should a software analyst begin when developing adapters? The analysis is a four-step process, beginning with the business objectives and ending with an analysis model—complete with integration use cases, analysis of application architectures, data models, and API. Following is a series of individual steps and tasks that can be used as a guideline for adapter analysis in general:

  1. Understanding the business objective.

    • Integrate applications to eliminate duplicate data entry and ensuring data integrity.

    • Enable Web-based, service-oriented access to application functions. The services can be used by customers, partners, and internal staff.

    • Enhance applications to support workflow and process automation.

    • Document the business objectives that are driving the integration requirements. It will be useful in calculating the ROI as well as justifying future integration requirements.

  2. Analyze the end-to-end integration scenario.

    • Identify all the applications participating in the integration scenario.

    • If applicable, identify master or controlling applications. Typically, these applications manage master databases and provide unique services.

    • In a peer-to-peer integration model, identify the initiator of integration scenarios. If the initiators are different, based on business rules, a table stating the association between business rules and which application is the initiator when the business rule is asserted.

    • Identify the mismatch between individual data models of all participating applications. This information will be useful for defining the data structures to be exchanged by applications within an integration scenario. Data transformation and validation requirements are derived from this analysis.

    • Document the analysis results, either in a text document with as much detail as possible or using a UML-based development tool. A use case analysis model captures the results of analysis in text form. Use case models identify the relationships between use cases, system boundaries, and entities interacting with the use cases. An example of a use case capturing a simple end-to-end integration scenario is shown in the section on "Documenting Integration Scenario".

  3. Analyze the individual application architecture.

    • Identify the database structures (tables, objects, and so on) of each application required to complete the integration scenario.

    • Identify any available API, staging database tables, and other types of interfaces in the application. These interfaces could be used as points of integration for adapters. If no such interfaces are available, it is a good indication of the effort required to develop integration capabilities for the application.

    • Identify third-party middleware technologies used in multitier applications. Generally, distributed applications are easier to integrate because they have more points of integration tied together by middleware platforms and tools.

    • One of the most important design features that needs research is the applications support for synchronous and asynchronous transactions. Knowing which applications support either or both types of transactions helps in the design of a high-quality adapter. It is quite common for adapters to be burdened with additional work required to handle asynchronous interfaces in a synchronous transaction and vice versa.

    • Document the available points of integration (PIN) and the type of PIN (database table, stored procedure, API, message, and so on). Also, document the business function exposed by the individual PIN. Document the sync-async mismatch between PINs because it will drive the individual adapter designs later in the process.

  4. Identify programming constraints.

    • Many times, integration project teams face the difficult task of integrating old business applications. Not only are the programming language and supporting tools an issue, but also knowledge about its architecture and design. Identifying the constraints, especially with respect to the non-availability of appropriate development tools, needs to be documented very early in the process. Project managers need to treat these as potential risks and try to develop alternate strategies.

    • Differences in programming languages of the business applications should be taken into consideration when identifying constraints. Not all programming languages are easier to deal with when developing adapters. Java provides a JNI interface to call code developed in other languages. However, it is not easy, and not all languages are supported by JNI.

    • The constraints identified by the adapter analysis teams are very useful for project managers in estimating the adapter development efforts as well as setting the right expectations.

This four-step process is very basic and is not supposed to be a full-fledged analysis process. Individual project teams and project managers need to verify whether their analysis process handles some of things stated above.

Documenting the Integration Scenario

Integration scenarios can be simple point-to-point data exchange or complex distributed data synchronization. Other types of integration scenarios include accessing services over the Web or other proprietary platforms. Increasingly, process modeling and automation are seen as means to capture business processes and link them to applications using workflow and other tools.

Each type of integration scenario has unique requirements and can be implemented using different design patterns. But before you know which design patterns to use, it is important to document the integration scenario and identify all the participants as well as the different integration points. A common practice in software analysis today is defining the requirements in use cases. A use case is part of UML specifications, and is more often used to capture user requirements. However, use cases can also be used to capture integration requirements. Requirements of a simple integration scenario are shown in the example use case in Figure 7.4.

Figure 7.4 Example integration use case.

It may look odd at first that the diagram shows two system boundaries. Most business analysts using UML are perhaps used to a single system boundary that defines the business application for which the user requirements are captured. This diagram shows the difference between normal requirements analysis and integration analysis. More complex integration scenarios will have more system boundaries (systems) involved in the use case model.

Another difference is the identification of data structures that need to be exchanged between systems. In Figure 7.4, the data structures are shown as text notes outside the system boundaries. It is important to understand these requirements early on because they may require different project teams to spend significant time later on in supporting the integration projects.

From a project management perspective, a use case model is very useful for understanding the complexity of the integration scenario, the different systems involved, and the points of integration between the systems at a high level without any technical details. Project managers can then begin to estimate the effort and coordinate with other project managers the work required from members of other teams in successfully implementing the integration solution.

Determining Hub and Spoke Scenarios

Sometimes, integration scenarios can be defined as a hub and spoke type of integration scenario. This is usually the case when one application is the master or controlling application, and all other applications are reacting to the state changes of the controlling application. Controlling application could be legacy applications, third-party packages, and even J2EE applications.

In a hub and spoke integration scenario, the controlling application's action determines the effect on all other applications in the scenario. If the controlling application (hub) changes any of its data, other applications (spokes) need to be notified of the change so that they can synchronize their database states as required. Changes to data in other applications besides the controlling application are not part of the integration scenario; they are considered to be local changes.

The benefits of identifying hub and spoke scenarios are evident when selecting integration technologies implementing the solution. However, from a project management perspective, it is quite likely that the project managers responsible for the controlling application (hub) need to take the leadership role and put in extra efforts to coordinate the integration efforts from other teams. Without a defined flow of project management activities, it is difficult to understand and manage the integration project.

Determining Peer-to-peer Scenarios

A different type of integration scenario occurs when all participants have equal responsibilities. In a peer-to-peer integration scenario, the participants synchronize data between their databases by processing data updates from all applications. An update to one application is broadcast to all other applications in the scenario. There is no concept of a master application controlling the chain of events.

Peer-to-peer integration scenarios are more likely to emerge in the context of process automation rather then data integration. Most data-integration scenarios have one application as the data owner, and only this application triggers data updates. The hub and spoke scenario discussed earlier is more suitable for data integration. Examples of peer-to-peer scenarios include workflow and process automation-related integration scenarios in which participating applications are expected to generate events reflecting internal state changes, and to process incoming events by taking appropriate actions. In a workflow automation environment, all applications generate events or they process events and then trigger the associated actions. The coordination and propagation of the events are not controlled by any one application, but depend on a higher-level abstraction of the finite state machine.

In some special cases, one or more of the peers in a peer-to-peer integration scenario is a composite application. A composite application is an aggregation of other applications built to support specific integration requirements. The individual applications that are part of the composite application may have a hub-and-spoke or peer-to-peer relationship with other applications; but for analysis, the composite application can be considered as supporting the peer-to-peer scenario. Composite applications may not be common today, but over time they will be found in most enterprises.

It is always better to separate the peer-to-peer integration scenarios from hub and spoke scenarios. Most adapters only handle data integration. Event processing is not usually considered an adapter function. Sometimes, it is handled by a workflow automation tool, which maintains the state changes on the application's behalf. By identifying the peer-to-peer scenarios project, managers can choose to either enhance the workflow tool if one exists or include the functionality in adapters. Without proper support in the adapter frameworks, however, it is very difficult to have both data integration and event processing implemented as one adapter.

Analyzing Application Architectures

Adapters are part of business applications, so one of the challenges of building adapters for existing applications is having the knowledge of application internals or the architecture. Very often, the application architecture and design are not explicitly documented or modeled. As a result, adapter developers need to spend a significant amount of time understanding the application internals. Integration teams often spend most of their time modeling the database structure and business rules—something that should have been done earlier by the application development teams that maintain the application. Project managers need to consider the impact of this when estimating the integration efforts. Depending on the size of the application, available documentation, and access to resources knowledgeable about the application, the architecture analysis effort can be reasonable or frustrating.

Project managers should not skip this activity because the result is a longer design and development cycle. In other words, the architecture analysis work cannot be avoided. It can be done as part of the integration analysis process or deferred to the development teams. Putting it off to the development teams usually results in a less-than-desirable integration solution.

Analyzing Application Data Models

Data impedance or differences in data models between applications is the classic application integration problem. These issues are complicated by business rules attached to data models. For example, it is quite likely that the structure of an account number column in the accounting database is actually a composite of three business data elements: Customer ID, Geographical Area code, and Account type. These types of data fields and data models pose significant integration challenges during the development and implementation phase. It is not surprising to see integration projects fail due to lengthy implementation cycles as a result of hidden data impedance. Project managers need to understand the significance of these seemingly small technical issues. It is not just about transforming data from one format to another; it involves applying and verifying business rules, as well.

Experienced project managers tend to estimate additional time for data model analysis because generally it is one of those areas that comes back later as a major underestimated factor. The lack of any documentation on the business rules attached with data models means coordination and help from business analysts. Either way, this is a very important task of adapter development, especially when focused on data integration.

Analyzing Application APIs

Sometimes we get lucky, and one such instance in the life of an adapter developer is when applications have a well-defined API. Adapter developers eventually develop a sense of respect for applications with well-documented APIs. However, not all APIs are useful for adapter development. Many times, low-level APIs that work with technical objects instead of higher-level business objects tend to be more work than they're worth. This is not to say that lower-level APIs are not useful, but in the context of adapter development, accessing technical objects such as data rows in an RDBMS table, or data objects in a ODBMS is faster and easier with the native interfaces such as SQL and OQL. Application-level APIs that encapsulate business logic are more useful for adapter development.

In the absence of a higher-level API, a decision needs to be made very early on in the project on the relative use of lower-level APIs in adapter development. If the lower-level APIs are expected to save time and encapsulate the adapter developers from many technical details, there is still value in using the APIs. However, if the difference between native interfaces and the lower-level APIs is not much and the value added by the APIs is more cosmetic, a better strategy would be to build a higher-level API as part of the adapter development project.

In the long term, adapter development time and maintenance time can be reduced by higher-level, business-oriented application APIs. Project managers need to consider and weigh the long-term benefits versus short-term time constraints.

Analyzing Buy versus Build Options

Having a good understanding of the end-to-end integration scenario, individual application architectures, data impedance between applications, availability of clearly defined APIs, and so on should enable project managers to contribute to the buy versus build decision-making process. Many integration solutions are available in the market. Some specialize in data transformation, and others provide integration brokers and application servers capable of simplifying integration.

This book is not about the various decision-making processes involved in selecting integration solutions, but the information generated during the analysis phase outlined in the chapter should enable project managers to contribute to that process. It is always a good strategy to engage application integration vendors and consultants and get the benefit of their expertise in managing and deploying integration solutions. The number of adapter vendors is increasing, and the availability of open standards such as JCA makes adapter development a better-understood technology. It will be easier to buy a JCA-compatible resource adapter and maintain it in-house than build a completely proprietary adapter technology. However, Chapter 10, "Overview of JCA," identifies some areas in which JCA is still missing critical specifications. It is very likely that adapter vendors will fill this gap in JCA specifications with their own proprietary solutions.

Building adapters in-house makes sense, especially when proprietary technology and applications are considered. No one understands the proprietary technologies better than the team that originally developed it. Some adapter vendors will probably provide tools that make JCA resource adapter development easier.

Estimating Adapter Development

Software estimation is always a challenge, and adapter development projects have more variables to consider. The primary variables that affect adapter development include the following:

  • The number of application interfaces (points of interface) to be included in the adapter. A good design principle is to implement not more than three to five interfaces in one adapter. If there are more then five interfaces, it is better to group them by business or technical functions, and implement one adapter for each group. You implement fewer interfaces in one adapter to keep the memory footprint as small as possible. Adapters are expected to scale a lot more than the applications. Hence, the smaller the adapter, the larger the number of instances the JVM can manage. It may not be possible in all cases to break down the adapter functionality into groups for better implementation. The optimum number of interfaces per adapter depends on the specific integration scenario and the technical complexities.

  • The number of data models and databases, differences between them, and resulting data transformation requirements.

  • The differences between the adapter development environment and the application development environment. For example, a JCA adapter developer may need to interface with a C or C++ API to access data objects stored in an object database. These paradigm differences require more time to understand, design, and develop the adapter.

  • Internationalization requirements resulting in DBCS support in adapters and the resulting conversions always create unwanted surprises during development and deployment.

Other factors affect the overall estimation effort, but these depend on the individual team structures, IT environments, and the company culture. The objective of this chapter is to identify areas of concern, not define project management solutions.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020