190 likes | 327 Views
Analysis of Potential Role of ESB in caGrid Infrastructure. What Isn’t an ESB. Interoperability Silver Bullet Answer to Prayers Road to Enlightenment “Easy Button” SOA in a Box “42”. What is an ESB. Plumbing Harness Integration and Adapter Engine for heterogeneous services and systems
E N D
What Isn’t an ESB • Interoperability Silver Bullet • Answer to Prayers • Road to Enlightenment • “Easy Button” • SOA in a Box • “42”
What is an ESB • Plumbing Harness • Integration and Adapter Engine for heterogeneous services and systems • Deterministic router/traffic-cop for multi-step processes.
Capabilities Required by caGrid • The following capabilities are important for the caGrid to be able to continue to meet potential future needs of the caBIG program • Interface and Protocol Translation: provides adaptability to other systems • Orchestration/Routing: provides support for complex repeatable business process • Transaction Management: provides reliable process interoperability • Common Services: re-usable capabilities made available using standardized mechanisms • Grid Service Activity Monitoring: provides insight into service’s operational health and status in real-time • De-Coupled Service Implementation: provides for flexibility in deployment of services across the grid
Interface and Protocol Translation • Vital to support interoperability between caGrid services and those not based on caGrid (ex EHRs). • FROM caGrid Service TO non-caGrid Service • FROM non-caGrid Service TO caGrid Service • Would include mitigation/translation between different schemes for • Message payload implementation • Security implementation and policies • Remotable mechanisms • Questions/issues • Can generic/reusable/config based components (or constrained set) be created for each from->to pair • Possible variations for different security mechanisms • Potential semantic and syntactic incompatibilities • Alternative to ESB is to create wrappers on an “as-needed” basis.
Orchestration/Routing • Routing a message through N additional service invocations to create a multi-step process • Routing can be based on • Static rules defined during process design time • Run-time rule evaluation results based on message content • The capability is a foundation for other higher level capabilities (ex Transaction Management). • Questions/Issues • Do reusable multi-step biz processes exist outside of clinical trial’s world? • Executable orchestration definitions usually require developer-like skills (BPEL) and shims/adapters between services • Currently there are a 2 or orchestration/workflow capabilities in caBig (Taverna, ActiveBPEL) that don’t require an ESB. What does the ESB provide?
Transaction Management • Transaction Management treats a process involving multiple service invocations as a single transaction • Capability is possible through use of orchestration/routing capabilities. The transaction rules are part of the defined orchestration rules. • Question/Issues • Requires participating services implement proper transaction logic including possibly compensating transactions for insert and update processes • Most caGrid services are read only and don’t require transaction support • Such capabilities already exist with ActiveBPEL and Taverna. What does the ESB add?
Common Services • ESB nodes could host reusable services for standard run-time tasks • Message Transformation • Message syntactic and semantic validation • Auditing/logging of messages traffic • Pub/Sub “drop box” for distribution of scientific information • Could Move some caGrid infrastructure services inside of an ESB • Index, BPEL Engine/ActiveBPEL, Taverna, CDS, CSM, GTS, Grouper (for sub-grids) • Simplifies deployment and maintenance of caGrid infrastructure • Best suited for JBI Based solutions • Questions/Issues • Would require developing some new services that don’t already exist and/or converting others to live in and ESB container • Would be based ESB based distributed interoperability architecture approach that requires services to operate through an ESB • Would require routing/orchestration to take advantage of common services.
Grid Service Activity Monitoring • Ability to monitor service endpoints • Abstracts health and status update mechanism from underlying service implementations. • Provide intra-grid activity metrics • Ability to add additional monitoring capabilities without changing the underlying services • “Big Picture” of current grid-network status beyond up or down services • Questions/Issues • Would be based ESB based distributed interoperability architecture approach that requires services to operate through an ESB • Too “big brother-ish” for participants?
De-Coupled Service Implementation • Current implementation requires knowledge of the EPR where the service producer is physically running. If EPR is changed then any consumer will break • ESB can provide a proxy “always-there” EPR that consumers use. De-couples logical EPR from physical EPR. • Allow support multiple versions of a grid service to co-exist within a given organization. • Can include endpoint proxies for central caGrid infrastructure services (caDSR, Index, EVS, GME, …) that other caBIG systems rely on. • Questions/Issues • Installation and config will be specific for each ESB node. Who does what and who manages and maintains over time? • Would be based ESB based distributed interoperability architecture approach that requires services to operate through an ESB • Could be done using other proxy mechanism (context switches, web servers, …).
Conclusions • Any one of the desired capabilities could be implemented by alternative mechanisms, however an ESB based solution offers a single integrated delivery solution • A hybrid infrastructure (some grid service behind an ESB, others not) is technically feasible, however some grid wide capabilities would be lost • A full ESB based distributed architecture for intra-grid interoperability presents a large change from the current caGrid infrastructure, however provides a well defined path for future caGrid extensibility
caGrid X - Option 1 • caExchange becomes part of the caGrid infrastructure • Grid is based on WSRF/Globus tech stack. Proxy/Adapters required to put non-WSRF/Globus service on grid • Monitoring tools are TBD depending on CBIIT needs • Potential to move some caGrid infrastructure common services to be run inside the ESB as JBI components • Pros • Maximizes reuse of existing caGrid/caBig investment • Cons • Limits extensibility and adaptability to ability to “wrap” non WSRF/Globus based services. • caExchange is still rather “raw” from a extensibility and maintainability as it rides directly on top of Apache ServiceMix with little tooling support.
caGrid X - Option 2 • Migrate inter-grid interoperability to standard WS-I Basic Profile 1.2 • Create Adapter/Proxy for WSRF/Globus based services. TBD if a single adapter/proxy is possible or one for each service • Requires new Service Registry/Repository based on UDDI but still supporting needed real-time service health and status use cases. • Suggest using an open source, but commercially supported ESB (ex GlassFish ESB, Fuse, ChainBuilder,…) because of generally better tooling and documentation support. • Possible re-use GAARDS for security mechanism • Monitoring tools are TBD depending on CBIIT needs • Pros • Assuming greater potential extensibility/expandability due to basing on WS-I BP 1.2, including bridging to other grids/networks • Lots of existing tooling for creating WS-I BP 1.2 web services • Cons • Substantial change in technical direction that will require re-engineering of many caGrid implementations
caGrid X - Option 3 • Same basic technical pros and cons as Option 2 • Potentially provides a path from caBIG to BIG Health??? • Could provide standardized integration patterns between caBig scientific systems and patient care systems. • Pros • Could helps establish caGrid as the defacto research “network within a network” for HHS? • caGrid lessons learned could help shape NHIN technical direction/implementation (ex constrained semantics approach) • Greater sharing of common efforts (ex security policy and implementation) • Potentially help penetration of both NHIN and caBIG into different organizations. • Could leverage NHIN’s planned product support for the Fed Connect Gateway • Cons • Would tie some aspects of caBIG infrastructure to the programmatic needs and timings of NHIN/FHA • Some policy differences may be non-resolvable from a business needs aspect