| By Yurdaer Doganata, Lev Kozakov, Mirko Jahn | Article Rating: |
|
| October 29, 2007 06:45 AM EDT | Reads: |
24,420 |
OSGi Service Adaptor for UIMA Framework
The general
architecture of the OSGi Service Adaptor layer for UIMA Framework is
similar to the one depicted in Figure 2, where the Java application
framework is represented by the UIMA Framework, and the 3rd party
components are, actually, UIMA analytic components. As we described
earlier in the section 4, the Adaptor adds the services layer to each
UIMA analytic component, so that each component registers itself as an
OSGi service in the OSGi registry (see Figure 5). We call this
operation publishing of UIMA analytic components. Applications find
components as services via the adaptor API, and get the UIMA analytic
component descriptor and the component bundle class loader, which are
necessary for running the analytic in the UIMA Framework. The rest of
the control flow is similar to the basic control flow shown in the
Figure 4.
This section describes the implementation of the OSGi Service
Adaptor for UIMA Framework in more details. The Adaptor is responsible
for:
a) Allowing UIMA applications to manage OSGi bundles encapsulating
analytics and other resources. The management capabilities include
locating UIMA component bundles and loading them into the OSGi
container to make them available for deployment by UIMA Framework. This
mechanism is based on the OSGi Framework API.
b) Providing UIMA applications with easy access to shared resources of
UIMA component bundles in order to deploy and use them in UIMA
Framework. The shared resources include component descriptors,
component class space, metadata and others. This mechanism is based on
the OSGi services registered by each analytic component bundle, as
detailed further in this section.
Each UIMA analytic component bundle registers its OSGi services including the component reference service and one additional service for each its public component descriptor. UIMA analytic components that register their OSGi service objects are active components, as opposed to inactive components, like type systems or other resource bundles. The OSGi Service Adaptor API provides dynamic access to registered UIMA component services through the OSGi Service Registry.
Figure 5. Basic control flow of a UIMA application in OSGi environment
Logically, the OSGi Service Adaptor comprises the following functional elements:
A.
UIMA Services Integrator - responsible for tracking all standard
Adaptor services and notifying applications of UIMA service
availability events. This module also provides convenient access to all
standard Adaptor services.
B. UIMA Configurator - responsible for managing UIMA component bundles
and notifying applications of UIMA component life cycle events.
C. UIMA Component Services - responsible for providing access to
shared resources of UIMA component bundles, loaded into the OSGi
container.
D. UIMA Component Registry - responsible for looking-up UIMA component bundles loaded into the OSGi container.
UIMA Services Integrator monitors all standard Adaptor services by using the OSGi ServiceTracker capabilities and makes its own OSGi service available only when all other standard Adaptor services are available. The Integrator also monitors its own OSGi service and notifies subscribed applications of the UIMA service availability events.
UIMA Configurator combines several functions:
a) discovering new UIMA component bundle files in the designated directory;
b) installing UIMA component bundles in the OSGi container upon application request;
c) automatically activating UIMA components installed in the OSGi container;
d) monitoring UIMA component life cycle changes and notifying subscribed applications of UIMA component events
The Configurator registers its own OSGi service that allows installing UIMA component bundles and subscribing for UIMA component events.
UIMA Component Services define the API for accessing shared resources of UIMA component bundles, including:
• component bundle class loader - the bundle class loader established by OSGi container;
• component UID - a unique identifier of a component bundle;
• component metadata, such as symbolic name, version and properties;
• component descriptor(s), called specifications; each component may have one or more public UIMA descriptors (specifications).
The Component Services also provide the API for publishing UIMA components, i.e. registering OSGi services that belong to UIMA component bundles. Each active UIMA component bundle registers two or more OSGi services at the start-up: (1) component reference service, providing access to component bundle resources, and (2) component specification service(s) for each its public UIMA component descriptor. UIMA component publishing is done by the UIMA Component Publisher OSGi service, which is a part of the Component Services.
UIMA Component Registry defines the API for looking-up instances of UIMA component services in the OSGi Service Registry. The Component Registry allows to look-up both UIMA component references and specifications based on internal bundle ID, component UID and various metadata.
The Figure 6 shows the layered run-time architecture and bundle level dependencies of a modular UIMA application in the OSGi container. The OSGi Service Adaptor includes the API bundle, the implementation bundle and the component service object incorporated in each active component bundle. The bundles in the application layer depend on both the Adaptor API and the UIMA runtime. The active component bundles, like UIMA analytic components, depend on the Adaptor API, the UIMA runtime and their specific resources, like type systems. The Adaptor API bundle does not have any bundle level dependencies on the UIMA runtime or components. The Adaptor implementation bundle depends on the UIMA runtime. Finally, the UIMA runtime does not know anything about the analytic components or their resources.
For more information about the OSGi Service Adaptor for UIMA Framework see [17]. The OSGi Service Adaptor for UIMA Framework is available for download at IBM alphaWorks [18].
Figure 6. Layered run-time architecture of modular UIMA application in OSGi container
Published October 29, 2007 Reads 24,420
Copyright © 2007 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Yurdaer Doganata
Dr. Doganata is the manager of the Information Management Solutions group at the Watson Research Center in Hawthorne, New York. He received B.S. and M.S. degrees from the Middle East Technical University, Ankara, Turkey, and a Ph.D. degree from the California Institute of Technology, Pasadena, California, all in electrical engineering. He joined the Watson Research Center as a research staff member in 1989 and worked on projects in many diverse areas, including high-speed switching systems, multimedia servers, intelligent transportation systems, multimedia collaborative applications, eservices, and information search and retrieval systems for technical support. His current work involves designing and prototyping innovative solutions, applications, tools, and utilities in the area of unstructured information management. Dr. Doganata hold several patents and research awards and is the author of numerous papers. http://yurdaer.doganata.us
More Stories By Lev Kozakov
Dr. Lev Kozakov is a research staff member at IBM T.J. Watson Research Center and is a member of the dBlue project architecture and research teams. He has worked in many areas, including dynamic systems, applied statistics, information management systems, man-machine interface, medical software, computer telephony, and design patterns. Lev holds a number of patents and is the author of several publications.
More Stories By Mirko Jahn
Mirko Jahn worked for several years as an independent software consultant and tutor before joining the Unstructured Information Management Architecture (UIMA) group at IBM Research. At present, his major research areas cover component-based development strategies, component repositories, and migration approaches toward modular applications, along with service-oriented architecture. Mr. Jahn is heavily involved in making use of OSGi component-based developement
standards in UIMA.
- The Top 150 Players in Cloud Computing
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- Industry Experts Discuss the State of Cloud Computing
- Cloud Expo New York Call for Papers Now Open
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- US Federal Government is Major Cloud Computing Innovator
- Google Wave
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Adaptivity & Cloud Computing: Exclusive Q&A with CEO Tony Bishop
- 4th International Cloud Expo: Photo Album
- The Top 150 Players in Cloud Computing
- SYS-CON.TV: Cloud Computing Expo Power Panel
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- 1st Annual GovIT Expo: Letter from the Technical Chair
- Industry Experts Discuss the State of Cloud Computing
- Deputy CIO of the CIA to Keynote 1st Annual GovIT Expo
- SOA World Power Panel on SYS-CON.TV
- CIA was Headed to an Enterprise Cloud All Along: Jill Tummler Singer
- Cloud Expo New York Call for Papers Now Open
- 1st Annual Government IT Conference & Expo: Themes & Topics
- Stock in Focus: Dragon Capital
- The i-Technology Right Stuff
- Who Are The All-Time Heroes of i-Technology?
- Get the Message
- Where Are RIA Technologies Headed in 2008?
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- Five Reasons Why Web 2.0 Matters
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December
- SOA World Conference & Expo SYS-CON.TV Power Panel Live From Times Square









Cloud computing is a game changer. The cloud ...





















