The Evolution And Implementation Of An Integrat...
When our primary focus is connecting systems, we can measure how successful our integration approach is by how quickly we can wire a new system into an existing technical estate. The systems become the primary value driver inside that estate, and integration becomes a necessary evil to make the systems behave properly. When instead we shift our primary focus to creating clean interfaces over digital capabilities, we measure success by increasing digital agility over time, and those digital capabilities become the primary value driver, arguably even more important than the systems themselves. There's a lot to unpack in that difference, starting with the emphasis on interface over implementation.
The Evolution and Implementation of an Integrat...
Clean interfaces hide implementation details, and one of those implementation details in integration contexts is the choice of programming language. I have yet to see an architecture diagram that puts the primary focus on the programming languages of the systems involved:
Integration interfaces that fail to adapt to users over time, or that change too easily with the underlying systems for implementation convenience, are point-in-time integrations, which are really just point-to-point integrations with multiple layers. They may wear API clothing, but show their true stripes every time a new system is wired into the estate and the API is duplicated or abused to solve an implementation problem. Point-in-time integrations add to inter-system tech debt.
Even more concerning than the accidental complexity needed to run all integration through commercial tooling, though, is the way such a mandate puts the emphasis on implementation over interface, on systems over capabilities.
One team I've interacted with uses Camunda to manage microservices orchestration. Unlike some orchestration tools, you can use Camunda as a Java library with Spring and Spring Boot integrations, making it much easier to use traditional Java software engineering discipline to manage the interface evolution in a general purpose programming language while simplifying certain implementation aspects with a workflow tool (open source, in this case, but a commercial tool would have worked just as well)
Generally speaking, I would be wary of adding much in the way of transformations to the integration DSL, or I would at least be willing to reimplement those transformations in a language like Java over time, as that tends to be where a lot of programming-over-time complexity lives. Transformations represent the buffer between data in the source systems and the interface to that data that consuming systems expect, and therefore has evolutionary pressure from multiple directions: changes in the system of record as well as evolving the interface for consumers. Similarly, I would keep any performance optimizations or resilience code (like caching) in a general purpose language as they often become quite complex over time.
A few years back I worked with a telecom that aspired to provide self-service eCommerce capability to its users for new cell phone purchases. Anyone who has ever worked in the industry understands the challenges involved: buying telco services is fundamentally more complicated than buying retail products because telco services have a lifecycle. For cell phones, the usual customer-facing abstraction for that lifecycle is the plan that details text, data, and voice limits, and how international calls are billed (an enormously complex implementation involving legal and carrier agreements, underwater cables, an entire industry of deep sea cable repairs, and national defense agreements to prevent severing cables, all hidden behind the clean interface of a phone number).
Though it was by no means easy, we worked with the underlying IT organization to create a new set of APIs that more clearly represented eCommerce concerns without all the additional legacy complexity, clean interfaces that translated the leaky abstractions into meaningful capabilities so that eCommerce developers needed no understanding of the billing system mechanics. We had to abstract the complexity of the legacy so that we could create the future of self-service. The architecture diagrams reflected a new way of thinking about the problem, of thinking in terms of digital capabilities instead of underlying systems. We allowed neither downstream complexity nor implementation programming languages to find a home in our diagramming for the eCommerce team:
1: My main critique against Mulesoft's model is the emphasis on implementation concerns, as I believe that leads to viewing integration as a tactical concern. Praful Todkar and Ryan Murray argue for a superficially similar model in their series on building a well-factored service architecture. While I think the line between foundational capabilities and business capabilities in their model is quite fuzzy in practice, I appreciate their emphasis on classification over architectural layering and interface over implementation. Both Mulesoft's three layer architecture and Ryan and Praful's three classifications of services are useful models to think about the right ways to decompose services for composability, but I believe we get significantly more composability by focusing on digital capabilities instead of focusing on implementation concerns like orchestration and connectivity.
AMINI, M., KOJURI, J., MAHBUDI, A., LOTFI, F., SEGHATOLESLAM, A., KARIMIAN, Z., & SHAMS, M. (2013). Implementation and evolution of the horizontal integration at shiraz medical school. Journal of Advances in Medical Education & Professionalism, 1(1), 21-27.
MITRA AMINI; JAVAD KOJURI; ALI MAHBUDI; FARHAD LOTFI; ATEFEH SEGHATOLESLAM; ZAHRA KARIMIAN; MESBAH SHAMS. "Implementation and evolution of the horizontal integration at shiraz medical school". Journal of Advances in Medical Education & Professionalism, 1, 1, 2013, 21-27.
AMINI, M., KOJURI, J., MAHBUDI, A., LOTFI, F., SEGHATOLESLAM, A., KARIMIAN, Z., SHAMS, M. (2013). 'Implementation and evolution of the horizontal integration at shiraz medical school', Journal of Advances in Medical Education & Professionalism, 1(1), pp. 21-27.
AMINI, M., KOJURI, J., MAHBUDI, A., LOTFI, F., SEGHATOLESLAM, A., KARIMIAN, Z., SHAMS, M. Implementation and evolution of the horizontal integration at shiraz medical school. Journal of Advances in Medical Education & Professionalism, 2013; 1(1): 21-27.
During the WIGOS operational phase, NMHSs are expected to take on greater responsibility for the national implementation of WIGOS and use the framework provided by WIGOS to exert leadership in the acquisition and management of meteorological and related environmental observations at the national level. The NMHSs are thus expected to become the key integrators at the national level, both by strengthening their own observing systems in accordance with the WMO Technical Regulations, and by building national partnerships and providing national leadership based on their experience in the acquisition, processing and dissemination of observational data for environmental monitoring and prediction purposes.
WIGOS provides a framework for the integration, coordination and optimized evolution of existing observing systems, which will continue to be owned and operated by a diverse array of organizations and programmes.
One of the highest priorities for WIGOS during this period is the national WIGOS implementation, including necessary capacity development, partnership agreements and integration of observing systems for all application areas.
The WIGOS implementation and further evolution is an integrating activity of all WMO and co-sponsored observing systems. The WMO Executive Council and regional associations, supported by their respective working bodies, have a governing role in the implementation of WIGOS. Technical aspects of the WIGOS implementation are guided by the Infrastructure Commission.
The Vision provides high-level targets to guide the evolution of the World Meteorological Organization (WMO) Integrated Global Observing System (WIGOS) in the coming decades. The aim of this document is to present a likely scenario of how user requirements for observational data may evolve in the WMO domain over the next couple of decades, and an ambitious, but technically and economically feasible vision for an integrated observing system that will meet them.
The Gartner Group first used the acronym ERP in the 1990s to include the capabilities of material requirements planning (MRP), and the later manufacturing resource planning (MRP II), as well as computer-integrated manufacturing. Without replacing these terms, ERP came to represent a larger whole that reflected the evolution of application integration beyond manufacturing.
Both system implementations, in private and public organizations, are adopted to improve productivity and overall business performance in organizations, but comparisons (private vs. public) of implementations shows that the main factors influencing ERP implementation success in the public sector are cultural.
ERP's scope usually implies significant changes to staff work processes and practices. Generally, three types of services are available to help implement such changes: consulting, customization, and support. Implementation time depends on business size, number of modules, customization, the scope of process changes, and the readiness of the customer to take ownership for the project. Modular ERP systems can be implemented in stages. The typical project for a large enterprise takes about 14 months and requires around 150 consultants. Small projects can require months; multinational and other large implementations can take years. Customization can substantially increase implementation times.
Implementing ERP typically requires changes in existing business processes. Poor understanding of needed process changes prior to starting implementation is a main reason for project failure. The difficulties could be related to the system, business process, infrastructure, training, or lack of motivation. 041b061a72