Adobe Systems XML Registry Workshop - PowerPoint PPT Presentation

1 / 90
About This Presentation
Title:

Adobe Systems XML Registry Workshop

Description:

The messages are handled in synchronous fashion. 20. HTTP Services ... is available in the RegistryConnect directory, but is not installed with the ... – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 91
Provided by: dua83
Category:

less

Transcript and Presenter's Notes

Title: Adobe Systems XML Registry Workshop


1
Adobe Systems XML Registry Workshop
Day Three
Name Duane Nickull Title Senior Standards
Strategist
2
Q 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?

3
Programmatic Registry clients
  • Getting under the hood..

4
Registry 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.

5
Registry Architecture (re-visited)
HTTP
6
Query Request/Response pair
Query (XML)
Messaging Layer
7
Programming for XML
  • Parsing Overview

8
XML 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.

9
XML 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.

10
Sax Model
Parser Factory
Document Handler
ErrorHandler
DTD Event Handler
EntityResolver
11
Parsing 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/
12
DOM Model
13
ebXML RSS W3C XSD Schema
  • Show v 2.0 Schema - demo

14
ebXML RSS W3C XSD Schema (FQ)
15
ebXML RSS W3C XSD Schema
16
Registry 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.

17
Auditable 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.

18
Classification 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.

19
Registry 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.

20
HTTP 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.

21
Java 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.

22
Java API Class Hierarchy (YDS Client)
23
Microsoft 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.

24
Example 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)

25
Java API example
  • QueryByName.java example

26
HTTP 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
27
JAXR
  • 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.

28
JAXR 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.

29
JAXR 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.

30
JAXR 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.

31
JAXR Architecture
32
Creating 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()

33
Creating 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")

34
JAXR 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

35
JAXR 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

36
Mastering the Registry Environment.
  • A specific look at the Yellow Dragon Software
    v1.0 ebXML Registry Server (Now owned by Adobe
    Systems Inc.)

37
Select Edit or Create Schemes
38
New Classification Scheme Created
39
Entering Content
  • Select Content from top Menu

40
Enter some content (and classify it)
41
Content
  • 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

42
Recap
  • 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.

43
Browsing 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.

44
Classification Tree(Guest View)
45
RIM instance data..
46
Registry Object Properties Screen
47
Administering 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.

48
RA 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

49
Manage 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.

50
Managing 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.

51
Manage 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

52
RA 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.

53
Registry Associations
  • Associations express relationships between
    registry objects, including classification nodes
    and other artifacts.
  • ebXML defines a set of standard associations.

54
ebXML Registry Associations
55
CPSIN 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
56
Association added of Owns
57
Associating an Object
58
Add new Association
59
Select Target
60
Select Association Type
61
It is now associated!
62
Demo subjects
  • Searching
  • Locking Content
  • Updating/version control

63
Registry Deployment Strategies for IT people
  • Ready, set..

64
Getting Started Hints and Tips
65
Initial 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

66
Simple 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

67
More 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.

68
Data Modeling.
69
Data 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)

70
Modeling Methodologies
UMMModeling
Core Components
Payload Metadata
PayloadInstance
PayloadMetadata
Information Components
LegacyData
71
Information Harmonization
UN/CEFACT Core Components
2005
2004
2003
UBL
2002
Existing eBusiness Standards
EDI
HL7
RosettaNet
OAG
xCBL
OTA
SAP
XBRL
72
Implementation Considerations
73
Project 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
74
Brainstorming 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

75
Technical 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.

76
Project Definition
Opportunity Name
  • Pilot Overview
  • Customer Base
  • Win Strategy
  • Technical Overview
  • Teaming Approach
  • Risk Assessments
  • Conclusions/Recommendations

77
Pilot Definition
  • Pilot description
  • Pilot requirements
  • Deliverables
  • Acquisition and pilot milestones
  • Cot Estimate

78
Customer Base
  • Short term
  • Long term
  • Market size/growth rate

79
Win 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?

80
Technical Overview
  • Design Requirements (from Customer Base)
  • Components
  • Interfaces standards, etc.
  • How the components fit together

81
Teaming 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.

82
Risk Assessment
  • Risk area
  • Description of risk
  • Mitigation strategy
  • team with consultants
  • make/buy
  • assume

83
Conclusions/Recommendations
  • Follow-on to pilot other products
  • Main points for management take-away
  • Recommended decision

84
Registry Pre-Pilot Considerations
85
Suggestion 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).

86
Open Discussion
  • Someone to present a suggested or contemplated
    use for XML
  • Discuss as a group
  • Questions

87
Exercises
  • CPSIN Data Model
  • Eds Role example
  • Shared Registry Model

88
Standards
  • 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).

90
DISCUSSION - Q A
Thank you
  • dnickull_at_adobe.com
Write a Comment
User Comments (0)
About PowerShow.com