Title: Adobe Systems XML Registry Workshop
1Adobe Systems XML Registry Workshop
Day Three
Name Duane Nickull Title Senior Standards
Strategist
2Q A from Days 1 and 2
- Questions.
- Lingering thoughts?
- Anything else we have covered to date?
- Questions for attendees
- How many are programmers?
- How many work with programmers?
- Java? Other languages?
3Programmatic Registry clients
4Registry Services and Client APIs
- ebXML Registry can be reached using communication
methods other than just a web browser. In
accordance with the ebXML Registry Services
Specification 2.5 (ebRS), the registry accepts
requests delivered via - EbXML messages
- SOAP Web Service messages
- HTTP (REST?) messages
- NOTES
- Todays examples are written in Java.
- We will work with ebXML Registry for demo.
5Registry Architecture (re-visited)
HTTP
6Query Request/Response pair
Query (XML)
Messaging Layer
7Programming for XML
8XML Parsers Brief Introduction
- A Parser is really a reader
- Parsing ensures that your XML document is well
formed or valid. - The XML parsing process is strict not much room
for errors. - XML Parsers are relatively new but most major
languages are supported fairly evenly. - SAX and DOM.
- Today focus on Java.
9XML Parsers Brief Introduction
- Sax is event driven (streaming)
- Notifies the application of events (start tag,
end tag, text, etc). - Provides values and other information about these
events. - Fast (little memory).
- Ideal for read only programs.
10Sax Model
Parser Factory
Document Handler
ErrorHandler
DTD Event Handler
EntityResolver
11Parsing using Xerces
try Parser parser ParserFactory.makePars
er(parserName) //factory parser.setDocumentHa
ndler(counter) //set handlers
parser.setErrorHandler(counter) try
//if (validate parser instanceof XMLReader)
// test set features if ( parser
instanceof XMLReader )
((XMLReader)parser).setFeature(
"http//xml.org/sax/features/validation",
validate) //set validation
((XMLReader)parser).setFeature(
"http//xml.org/sax/features/namespaces",
setNameSpaces )
((XMLReader)parser).setFeature(
"http//apache.org/xml/features/validation/schema"
,setSchemaSupport ) ((XMLReader)parser)
.setFeature( //set a DTD handler
"http//apache.org/xml/features/nonvalidating/load
-external-dtd",
setLoadExternalDTD ) catch
(Exception ex) /some code to catch exceptions
here/
12DOM Model
13ebXML RSS W3C XSD Schema
14ebXML RSS W3C XSD Schema (FQ)
15ebXML RSS W3C XSD Schema
16Registry Entry Query
- Allows query for single Entry
- Query by UID most likely, but others allowed
via Registry ObjectFilter. - Can also query by Association Source or
Target. - Use case
- When you have found one object, query to see
what others are Associated with it.
17Auditable Event Query
- AEQ is a basis for content update notification
(Federation Model). - Allows Registry users to subscribe to auditable
events (version 2.5) - Listen for updates to any single or collection
of multiple Registry Objects.
18Classification Node Query
- Finding all objects classified under a certain
Node. - Can query the classification node direct.
- Useful for industry specific, geographical
queries. - Likely to be used by applications to keep updated
on metadata.
19Registry Services
- Registry Web Services WSDL defined.
- Messages from this service are delivered to the
registry server using the SOAP envelope and the
XML request document. - This is the most complex form of communication
with the registry. The messages are handled in
synchronous fashion.
20HTTP Services
- Simplest mode of communication with the registry.
- Messages are delivered to the server using single
or multi-part HTTP requests. - Specified in the next version of the ebXML
Registry Services Specification (Summer, 2003.) - You can retrieve content from the registry using
HTTP by using the following URL - http//localhost9999/urlInterface/getRegistryObje
ct?idurnuuid6e60580b-4538-2615-0c2c-3e034c43044
5 - The object id can be obtained using the web
client, using the property screen. - Also called R.E.S.T. interface.
21Java Client API
- The Yellow Dragon Registry package delivers a
Registry Client API to provide a framework for
developing new registry clients and to simplify
the use of the registry services. - API allows the user to work with Registry
Information Model objects and use client versions
of Lifecycle and Query managers. - Underlying messages and XML are handled
internally in the API. - Current service type used for the API is REST,
with more services to be supported in the future.
22Java API Class Hierarchy (YDS Client)
23Microsoft Client API
- The YDS client package also contains the Registry
Connect component (Microsoft client). - This component is a COM object that allows the
client to reach Yellow Dragon Registry ebXML
services. - The Microsoft client is available in the
RegistryConnect directory, but is not installed
with the registry installation. - Needs to be installed on top of the Microsoft
.NET Framework. - Once installed, you can access the COM object,
documentation, and a sample.
24Example Programmatic Access
- public class QueryByName
-
- RegistryHttpClient client
- public QueryByName(URL endpoint)
-
- this.client new RegistryHttpClient(endpo
int) -
- public RegistryHttpResponse
queryByName(String name) - throws IOException, RegistryHttpException
-
- RegistryHttpRequest request new
RegistryHttpRequest() - request.setInterface(RegistryHttpRequest.IFACE
_QUERY_MANAGER) - request.setMethod(RegistryHttpRequest.METHOD_S
UBMIT_ADHOC_QUERY_REQUEST) - request.setInputStream(createAdhocQueryRequest
(name)) - return this.client.sendRegistryHttpRequest(req
uest) -
25Java API example
26HTTP Client example
- Open c\YDS-Regclient\
- Test against test registry.
ltAdhocQueryRequestgt ltResponseOption returnType
"LeafClass" returnComposedObjec
ts"false" /gt ltFilterQuerygt ltRegistryObjectQuer
ygt ltRegistryObjectFiltergt ltClausegt
ltSimpleClause leftArgument"name"gt
ltStringClause stringPredicate"Equal"gt
Yellow Dragon Software lt/StringClausegt
lt/SimpleClausegt lt/Clausegt
lt/RegistryObjectFiltergt lt/RegistryObjectQuerygt
lt/FilterQuerygt lt/AdhocQueryRequestgt
27JAXR
- Java API for XML registries.
- JAXR enables Java software programmers to use a
single, easy-to-use abstraction API to access a
variety of XML registries. - A unified JAXR information model describes
content and metadata within XML registries (UDDI
or ebXML). - JAXR gives developers the ability to write
registry client programs that are portable across
different target registries.
28JAXR Architecture
- The high-level architecture of JAXR consists of
the following parts - A JAXR client a client program that uses the
JAXR API to access a business registry via a JAXR
provider. - A JAXR provider an implementation of the JAXR
API that provides access to a specific registry
provider or to a class of registry providers that
are based on a common specification.
29JAXR Architecture
- A JAXR provider implements two main packages
- javax.xml.registry, which consists of the API
interfaces and classes that define the registry
access interface. - javax.xml.registry.infomodel, which consists of
interfaces that define the information model for
JAXR. These interfaces define the types of
objects that reside in a registry and how they
relate to each other. The basic interface in this
package is the RegistryObject interface. Its
subinterfaces include Organization, Service, and
ServiceBinding. - A JAXR provider for ebXML registries is available
in open source at http//ebxmlrr.sourceforge.net.
30JAXR Architecture
- The most basic interfaces in the
javax.xml.registry package are - Connection. The Connection interface represents a
client session with a registry provider. The
client must create a connection with the JAXR
provider in order to use a registry. - RegistryService. The client obtains a
RegistryService object from its connection. The
RegistryService object in turn enables the client
to obtain the interfaces it uses to access the
registry.
31JAXR Architecture
32Creating or Looking up a JAXR Connection Factory
- A client creates a connection from a connection
factory. - A JAXR provider may supply one or more
pre-configured connection factories by looking
them up using the Java Naming and Directory
Interface (JNDI) API. - At this release of the Java WSDP, JAXR does not
supply pre-configured connection factories. - Instead, a client creates an instance of the
abstract class ConnectionFactory - import javax.xml.registry. ...
ConnectionFactory connFactory
ConnectionFactory.newInstance()
33Creating a Connection
- Properties props new Properties()
props.setProperty("javax.xml.registry.queryManager
URL", "http//uddi.ibm.com/testregistry/inquiryapi
") props.setProperty("javax.xml.registry.lifeCycl
eManagerURL", "https//uddi.ibm.com/testregistry/p
rotect/publishapi") -
- props.setProperty("com.sun.xml.registry.http.proxy
Host", "myhost.mydomain") props.setProperty("com.
sun.xml.registry.http.proxyPort", "8080")
props.setProperty("com.sun.xml.registry.https.prox
yHost", "myhost.mydomain") props.setProperty("com
.sun.xml.registry.https.proxyPort", "8080")
34JAXR Specifications
- The current version of the JAXR specification
includes detailed bindings between the JAXR
information model and both the ebXML Registry and
the UDDI version 2 specifications. - You can find the latest version of the
specification at - http//java.sun.com/xml/downloads/jaxr.html
35JAXR References
- Java Specification Request (JSR) 93 JAXR 1.0
- http//jcp.org/jsr/detail/093.jsp
- JAXR home page
- http//java.sun.com/xml/jaxr/index.html
- Open Source JAXR Provider for ebXML Registries
- https//sourceforge.net/forum/forum.php?forum_id
197238 - Java Web Services Developer Pack (Java WSDP)
- http//java.sun.com/webservices/webservicespack.
html - Java Technology and XML
- http//java.sun.com/xml/
- Java Technology Web Services
- http//java.sun.com/webservices/index.html
36Mastering the Registry Environment.
- A specific look at the Yellow Dragon Software
v1.0 ebXML Registry Server (Now owned by Adobe
Systems Inc.)
37Select Edit or Create Schemes
38New Classification Scheme Created
39Entering Content
- Select Content from top Menu
40Enter some content (and classify it)
41Content
- http//www.xmethods.net/sd/2001/FedExTrackerServic
e.wsdl - Is in UDDI Registry as uuid437BA31E-EEEA-CC1E-29
CE-45AE79C1FDFB - Accessed by http//www.xmethods.com/ve2/ViewListi
ng.pojsessionidH9ddJwPMteL8xiwBHXBDOwMM(QhxieSRM
)?keyuuid437BA31E-EEEA-CC1E-29CE-45AE79C1FDFB
42Recap
- Learned how to install a Registry
- How to manage users, organizations
- How to work with the classification schemata
- How to enter intrinsic extrinsic objects
- Tomorrow
- How to work with associations, modify content,
lock content, enter company artifacts, associate
processes and ABIEs, Search the Registry and
more.
43Browsing the Registry
- A good Registry Client Design should show users
all registry objects they should see. - Not require advance knowledge of items.
- Shows items via the classification schemes.
44Classification Tree(Guest View)
45RIM instance data..
46Registry Object Properties Screen
47Administering the Registry
- The Registry Administrator (RA) and Contact
Person (CP) for Organization System have
several capabilities within the Administration
menu of the registry that the Registered User
does not.
48RA may..
- Edit Organization Profile
- Classify Organization
- Approve Users Note also used to decline users
- Approve Organizations (Administrator only) Note
also used to decline organization - Manage Users
- Manage Organizations (Administrator only)
- Manage Groups
- Manage Association Types
- Manage Object Types
49Manage Users
- RAs and CPs manage the profile and account status
of people approved to use the Registry. - CPs may only manage users belonging to his/her
organization.
50Managing Users (11179)
- Management options are accessed via the Manage
Users link. - Modifying a user's profile. Simply click on
Modify next to the user profile. All information
may be changed except username and organization.
Once you're done, click Update at the bottom of
the screen. - Disabling a user. Click Disable next to the user
name. A "disabled" user is then given an Enable
option next to his/her username which may be
selected to reactivate the user account. - Select Reset Password next to the user whose
password you wish to reset. A message will be
sent to his/her email address indicating that the
password has been reset. The user should log in
by entering the username as usual and leaving the
Password field blank. As the email advises, the
password should then be changed.
51Manage User Groups
- To add a new group
- Select the Manage Groups option from the
Administration menu, then click the Add New Group
button within the main viewing pane. - Enter a name and description for the group.
- Adding users at this point is optional. To add a
user, select his/her name from the Organization
Users list and click the Add arrow. - Repeat as desired.
- DEMO
52RA functions Manage Association Types
- Recall associations from 11179.
- RA can extend or modify some association types.
- Usually taken from UML model
- A RegistryObject may be associated with 0 or more
other RegistryObjects. - The RIM defines an Association Class.
- An Instance of the Association Class represents
an association between a RegistryObject and
another RegistryObject.
53Registry Associations
- Associations express relationships between
registry objects, including classification nodes
and other artifacts. - ebXML defines a set of standard associations.
54ebXML Registry Associations
55CPSIN Data Model Associations
Case
Process
Disposition
Activity
Event
Charge
responsible agency
place of trial
suspect
Object Role
exhibit
defendant
weapon
Organization
Property
Person
Location
Object
Object Affiliation
owns
has
found at
Associations
56Association added of Owns
57Associating an Object
58Add new Association
59Select Target
60Select Association Type
61It is now associated!
62Demo subjects
- Searching
- Locking Content
- Updating/version control
63Registry Deployment Strategies for IT people
64Getting Started Hints and Tips
65Initial Planning
- Registry Benefit Analysis
- Use of Web Resources
- Data Modeling
- XML tools Integration
- Evaluating Registry Technologies (ebXML, UDDI,
11179) - Re-thinking metadata Models
- Review of XML based standards efforts
- Vendor Products
66Simple First Steps
- Implementing browser compatible elements.
- Positioning for tomorrow
- Reviewing metadata dictionary
- XML generator tools
- XML extraction tools
- Start a pilot with concrete and doable objectives
67More Interesting Questions.
- Web Interface vs. Programmatic Interface?
- Should you require every Registry user to build,
install and configure custom software in order to
interact with the Registry? - Can target Registry support programmatic access
to suite your needs. - Programming language support for programmatic
access? (if tightly bound) - Open Source vs. COTS.
- Staff to run Registry.
68Data Modeling.
69Data Modeling
- What are your object classes?
- What do instance look like? Constrain them with
Metadata. - What are the relationships between the object
classes and instances thereof? Think
Associations (ISO 11179, ebXML Associations). - Integrating new data with old data can be
addressed. (Metadata for EDI????) - Formats for representing in Registry (ML)
70Modeling Methodologies
UMMModeling
Core Components
Payload Metadata
PayloadInstance
PayloadMetadata
Information Components
LegacyData
71Information Harmonization
UN/CEFACT Core Components
2005
2004
2003
UBL
2002
Existing eBusiness Standards
EDI
HL7
RosettaNet
OAG
xCBL
OTA
SAP
XBRL
72Implementation Considerations
73Project Steps
Define business needs
Deploy XML based solutions
Go live
End-Implementation Review
Understanding XML capabilities
Day 1 Requirements definition
Day 8 Solution definition
Day 15 Software Tools Implemented
Day 29 Move to live site / systems
Day x Feedback Forms Returned
Day Live x Review
74Brainstorming on Needs
- Start with One Registry (not multiple).
- Seek user input (create top level classification
for each participant constituency groups). - Suggest ideas for potential pilot programs
- Discuss inter-departmental pilots (linking
metadata between different geographical
jurisdictions OR eGov Departments) - Break into teams, and complete Data Models
- Each team present their findings to the group,
building a stronger case for the presented pilot - Summarize and comment on lessons learned
75Technical Business Interactions
- Application to Application via API use
- Web Security (implications)
- Web browser integration.
- XML and Non-XML Data.
- Software component delivery and deployment
- Meta Objects, searching, creating and
distribution - Creating content from content - advanced Linking
- Delivering XML content to the desktop (?).
- Open MD Repositories, eCo, and DTD's, parsing and
validation - Interoperability with other systems.
76Project Definition
Opportunity Name
- Pilot Overview
- Customer Base
- Win Strategy
- Technical Overview
- Teaming Approach
- Risk Assessments
- Conclusions/Recommendations
77Pilot Definition
- Pilot description
- Pilot requirements
- Deliverables
- Acquisition and pilot milestones
- Cot Estimate
78Customer Base
- Short term
- Long term
- Market size/growth rate
79Win Strategy
- What is our strategy?
- Marketing
- Teaming
- Technical
- Pricing
- Implementation
- What are our strengths? Our weaknesses?
- Likely competitors
- Competitors strengths and weaknesses
- Competitors reputation
- What are our win themes and discriminators?
80Technical Overview
- Design Requirements (from Customer Base)
- Components
- Interfaces standards, etc.
- How the components fit together
81Teaming Approach
- Results of make/buy analyses
- What products/services can we include in our
offering to improve our competitive position? - Within ?
- From external companies/vendors?
- Teaming objectives
- Recommended teammates
- Company A provide consulting
- Company B etc.
82Risk Assessment
- Risk area
- Description of risk
- Mitigation strategy
- team with consultants
- make/buy
- assume
83Conclusions/Recommendations
- Follow-on to pilot other products
- Main points for management take-away
- Recommended decision
84Registry Pre-Pilot Considerations
85Suggestion Information Sharing
- Information sharing is human intensive right now
(think International). - Needs to be scalable (massive amounts of info).
- Can lead to content syndication.
- Can be business information or IP sharing (music,
news, reports, services, security, LE, Emergency
et al).
86Open Discussion
- Someone to present a suggested or contemplated
use for XML - Discuss as a group
- Questions
87Exercises
- CPSIN Data Model
- Eds Role example
- Shared Registry Model
88Standards
- Adoption of standards often lead by US companies,
software vendors. - Some adopt proprietary data formats.
- Our biggest markets determine what technology we
adopt. - Large geographical area advanced
telecommunications infrastructure. - Government can leverage open technologies.
89 Recommendation - Standards
- Not advisable to get locked into proprietary
solutions / platforms. - Open, Global Standards are safe investment.
- For data layer use XML.
- Abstraction from O/S dependency.
- Protect investment by abstracting logic via
APIs. - Think global (hint X12).
90DISCUSSION - Q A
Thank you