RESTFul IDEAS

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    RESTFul IDEAS - Presentation Transcript

    1. RESTful IDEAS: Integrated Documentation Environment for Aircraft Support‏ Originally presented at the XML 2007 Conference by: Joel Amoussou, Founder & CEO, Efasoft [email_address]
    2. Agenda Security 5 IDEAS Use Cases 1 S1000D 2 AtomPub and OpenSearch 3 Getting Started 4
    3. How Information is Distributed Today?
      • Shipping of Physical Products
      • Paper, CD-ROM, DVD
      • Four revisions a year
      • Temporary Revisions
      • Online Access
      • Hosted by manufacturers
      • Boeing MPT
      • Airbus|World
    4. Current Digital File Formats S1000D Military Specifications (CALS)‏ ATA iSpec 2200 PDF and Proprietary Formats S1000D
    5. Beyond S1000D: IDEAS IDEAS AtomPub OpenSearch Syndication Federated Search Ex- change Library Services
    6. Maintenance and Flight Operations Airframe Manufacturer Engine Manufacturer Component Manufacturer FAA/Transport Canada Airline Policies & Procedures Feeds Reader Aggregator OpenSearch Client
    7. Distributed Aircraft Manufacturing AtomPub Server Airframer (Systems Integrator)‏ AtomPub Client Partner/Supplier Create content with HTTP POST Get content with HTTP GET Update content with HTTP PUT Delete content with HTTP DELETE
    8. Airline Originated Changes AtomPub Server Airframer/FAA/Suppliers AtomPub Client Airline's Content Repository Create content with HTTP POST Get content with HTTP GET Update content with HTTP PUT Delete content with HTTP DELETE
    9. Syndication-Oriented Architecture (SynOA)‏
      • ROA and SynOA
      • REST
      • Atom
      • AtomPub
      • OpenSearch
      • SOA
      • XML Schema
      • SOAP
      • WSDL
      • UDDI
      • WS-*
      Web Services
    10. What is S1000D? ASD, AIA, and ATA Military and Civil Aviation Open standards (RDF, Dublin Core, XLink, WebCGM, XML Schema)‏ Common Source DataBase (CSDB) and Reuse Metadata Data Module S1000D
    11. S1000D Data Module Identification and Status (data module code, applicability, issue number, etc.)‏ Content (actual maintenance or operation procedure)‏
    12. Sample S1000D Data Module Metadata <dmodule xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://www.purl.org/dc/elements/1.1/&quot;> <rdf:Description> <dc:title>Hydraulic Tank - Clean by ultrasonic</dc:title> <dc:creator>U8234</dc:creator> <dc:subject>Hydraulic Tank - Clean by ultrasonic </dc:subject> <dc:publisher>U8234</dc:publisher> <dc:contributor>U8234</dc:contributor> <dc:date>2007-07-31</dc:date> <dc:type>text</dc:type> <dc:format>text/xml</dc:format> <dc:identifier>8H-A-29-10-05-01A-253B-C</dc:identifier> <dc:language>en-GB</dc:language> <dc:rights>01</dc:rights> </rdf:Description> ... </dmodule>
    13. Sample S1000D Data Module Content <mainfunc> <step1> <para>Clean by ultrasonic.</para> <step2> <para>Press ON to start.</para> </step2> <step2> <para>Monitor the cleaner during operation.<para> </step2> <step2> <para> The cleaner will stop automatically after running for the specified time. <para> </step2> </step1> <mainfunc>
    14. Data Module Code
      • 8H: Model Identification Code
      • A: System Difference Code
      • 29: System (Hydraulic Power)‏
      • 10: Subsystem (Main Hydraulic Power)‏
      • 05: Unit or Component (Hydraulic Tank)‏
      • 01: Disassembly Code (first assembly removed from the tank)‏
      • A: Disassembly Code Variant
      • 253: Information Code (clean by ultrasonic with equipment X)‏
      • B: Information Code Variant (clean by ultrasonic with equipment Y)‏
      • C: Item Location Code (C = Maintenance on the bench)‏
      8H-A-29-10-05-01A-253B-C
    15. S1000D Publication Module (PM)‏ DM Reference DM Reference DM Reference DM Reference DM Reference
    16. S1000D Information Life Cycle DMRL Presentation CSDB Common Source Database Browser-based Interactive Electronic Technical Publication (IETP)‏ Data Modules Requirement List
    17. Sample Atom Feed for S1000D CSDB
      • <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?>
      • <feed xmlns=&quot;http://www.w3.org/2005/Atom&quot;>
      • <title>Example S1000D Feed</title>
      • <link rel=&quot;self&quot; type=&quot;application/atom+xml&quot;
      • href=&quot;http://xyz-aero.com/csdb/feed.atom&quot;/>
      • <updated>2007-11-20T19:30:02Z</updated>
      • <author>
      • <name>XYZ Aero</name>
      • </author>
      • <id>http://xyz-aero.com/csdb</id>
      • <entry>
      • <title>Hydraulic Tank - Clean by ultrasonic with equipment X</title>
      • <link rel=&quot;enclosure&quot; type=&quot;image/png&quot; length=&quot;1337&quot;
      • href=&quot;http://xyz-aero.com/csdb/illustration/icn.png&quot;/>
      • <id>http://xyz-aero.com/csdb/dm/DMC-8H-A-29-10-05-01A-253A-C</id>
      • <updated>2007-11-20T19:30:02Z</updated>
      • <content
      • src=&quot;http://xyz-aero.com/csdb/dm/DMC-8H-A-29-10-05-01A-253A-C.xml&quot; type=&quot;text/xml&quot;/>
      • <summary>
      • Hydraulic Tank – Clean by ultrasonic with equipment X
      • </summary>
      • </entry>
      • ...
      • </feed>
    18. AtomPub Service Document for a CSDB
      • <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?>
      • <service xmlns=&quot;http://www.w3.org/2007/app&quot; xmlns:atom=&quot;http://www.w3.org/2005/Atom&quot;>
      • <workspace>
      • <atom:title>S1000D CSDB</atom:title>
      • <collection href=&quot;http://xyz-aero.com/csdb/dm&quot; >
      • <atom:title>S1000D Data Modules<title>
      • <categories href=&quot;http://www.s1000d.org/cats/dm.cats&quot; />
      • </collection>
      • <collection href=&quot;http://xyz-aero.com/csdb/illustration&quot; >
      • <atom:title>S1000D Illustrations</atom:title>
      • <accept>image/png</accept>
      • <accept>image/jpeg</accept>
      • <accept>image/gif</accept>
      • <accept>image/tif</accept>
      • <accept>image/cg4</accept>
      • <accept>image/cgm</accept>
      • </collection>
      • </workspace>
      • </service
    19. Listing Atom Collection
      • <feed xmlns=&quot;http://www.w3.org/2005/Atom&quot;>
      • <link rel=&quot;first&quot;
      • href=&quot;http://xyz-aero.com/csdb/dm/amm&quot; />
      • <link rel=&quot;next&quot;
      • href=&quot;http://xyz-aero.com/csdb/dm/fim&quot; />
      • <link rel=&quot;last&quot;
      • href=&quot;http://xyz-aero.com/csdb/dm/aipc&quot; />
      • ...
      • </feed>
    20. Posting a Data Module to an Atom Server
      • POST /csdb/dm HTTP/1.1
      • Host: xyz-aero.com
      • Authorization: XYZAeroLogin auth={auth token}
      • Content-Type: application/atom+xml;type=entry
      • Content-Length: nnn
      • Slug: First Post
      • <?xml version=&quot;1.0&quot; ?>
      • <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot;>
      • <title>Hydraulic Tank - Clean by ultrasonic with equipment X</title>
      • <id>http://xyz-aero.com/csdb/dm/DMC-8H-A-29-10-05-01A-253A-C</id>
      • <updated>2007-11-20T19:30:02Z</updated>
      • <author>
      • <name>XYZ Aero</name>
      • </author>
      • <content type=&quot;text/xml&quot;>
      • <dmodule>..</dmodule>
      • </content>
      • <summary>
      • Hydraulic Tank – Clean by ultrasonic with equipment X
      • </summary>
      • </entry>
    21. Data Module Created by an Atom Server
      • HTTP/1.1 201 Created
      • Date: Sun, 11 Nov 2007 19:01:11 GMT
      • Content-Length: nnn
      • Content-Type: application/atom+xml;type=entry;charset=&quot;utf-8&quot;
      • Location: http://xyz-aero.com/csdb/dm/DMC-8H-A-29-10-05-01A-253A-C.atom
      • ETag: &quot;cj373d8762369g&quot;
      • <?xml version=&quot;1.0&quot; ?>
      • <entry xmlns=&quot;http://www.w3.org/2005/Atom&quot;>
      • <title>Hydraulic Tank - Clean by ultrasonic with equipment X</title>
      • <id>http://xyz-aero.com/csdb/dm/DMC-8H-A-29-10-05-01A-253A-C</id>
      • <updated>2007-11-20T19:30:02Z</updated>
      • <author>
      • <name>Aero Tanks</name>
      • </author>
      • <content type=&quot;text/xml&quot;>
      • <dmodule>..</dmodule>
      • </content>
      • <summary>
      • Hydraulic Tank – Clean by ultrasonic with equipment X
      • </summary>
      • </entry>
    22. OpenSearch Description Document
      • <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
      • <OpenSearchDescription
      • xmlns=&quot;http://a9.com/-/spec/opensearch/1.1/&quot;>
      • <ShortName>FAA's ADs Search</ShortName>
      • <Description>
      • Use to search FAA airworthiness directives.
      • </Description>
      • <Tags>airworthiness directives</Tags>
      • <Contact>opensearch.admin@faa.gov</Contact>
      • <Url type=&quot;application/atom+xml&quot;
      • template=&quot;http://faa.gov/ads/
      • ?q={searchTerms}&amp;p={startPage?}&amp;format=atom &quot;/>
      • </OpenSearchDescription>
    23. OpenSearch Atom Search Result
      • <feed xmlns=&quot;http://www.w3.org/2005/Atom&quot;
      • xmlns:opensearch=&quot;http://a9.com/-/spec/opensearch/1.1/&quot;>
      • <title>FAA ADs Search: hydraulic tank</title>
      • <updated>2007-11-20T15:20:02Z</updated>
      • <id>http://faa.gov/ads/hydraulic+tank</id>
      • <opensearch:totalResults>1</opensearch:totalResults>
      • <opensearch:startIndex>1</opensearch:startIndex>
      • <opensearch:itemsPerPage>20</opensearch:itemsPerPage>
      • <opensearch:Query role=&quot;request&quot; searchTerms=&quot;hydraulic tank&quot; startPage=&quot;1&quot; />
      • <link rel=&quot;alternate&quot;
      • href=&quot;http://faa.gov/ads/hydraulic+tank?p=1&quot; type=&quot;text/html&quot;/>
      • <link rel=&quot;self&quot;
      • href=&quot;http://faa.gov/ads/hydraulic+tank?p=1&amp;format=atom&quot; type=&quot;application/atom+xml&quot;/>
      • <link rel=&quot;search&quot; type=&quot;application/opensearchdescription+xml&quot; href=&quot;http://faa.gov/ads/opensearchdescription.xml&quot;/>
      • <entry>... </entry>
      • </feed>
    24. Getting Started IETP Benefits
      • Integrate feeds reader
      • Add OpenSearch provider to browser
      • Configure feeds aggregator
      • Users search multiple repositories
      • Users subscribe to feeds
      • Up-to-date content is always available
      CSDB
      • Generate and serve Atom feeds from your CSDB (XSLT, Abdera)‏
      • Turn your search engine into an OpenSearch provider
    25. S1000D Publication Module (PM)‏
      • <pm xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;>
      • <idstatus>...</idstatus>
      • <content>
      • <pmentry>
      • <title>
      • Hydraulic Tank - Clean by ultrasonic with equipment X
      • </title>
      • <refdm>
      • <xlink:locator xlink:label=&quot;Clean&quot; xlink:href=&quot;DMC-8H-A-29-10-05-01A-253A-C.xml&quot;/>
      • </refdm>
      • </pmentry>
      • <pmentry>
      • <title>
      • Hydraulic Tank - Clean by ultrasonic with equipment Y
      • </title>
      • <refdm>
      • <xlink:locator xlink:label=&quot;Clean&quot; xlink:href=&quot;DMC-8H-A-29-10-05-01A-253B-C.xml&quot;/>
      • </refdm>
      • </pmentry>
      • </content>
      • </pm>
    26. From S1000D PM to Atom Feed with XSLT
      • <xsl:for-each select=&quot;s:pmentry&quot;>
      • <xsl:variable name=&quot;dmc&quot; select=&quot;s:refdm/xlink:locator/@xlink:href&quot;/>
      • <entry>
      • <title><xsl:value-of select=&quot;s:title&quot;/></title>
      • <id>
      • <xsl:value-of select=&quot;concat
      • ('http://xyz-aero.com/csdb/dm/',
      • substring-before($dmc, '.'))&quot;/>
      • </id>
      • <updated>
      • <xsl:value-of select=&quot;current-dateTime()&quot;/>
      • </updated>
      • <content src=&quot;{$dmc}&quot; type=&quot;text/xml&quot;/>
      • <summary>
      • <xsl:value-of select=&quot;s:title&quot;/>
      • </summary>
      • </entry>
      • </xsl:for-each>
    27. Posting to an Atom Server with Abdera
      • String csdb = &quot;http://xyz-aero.com/csdb&quot;;
      • ...
      • Document<Service> serviceDoc = client.get(csdb).getDocument();
      • Service service = serviceDoc.getRoot();
      • Collection collection =
      • service.getWorkspaces().get(0)‏
      • .getCollections().get(0);
      • String uri = collection.getHref().toString();
      • Response response = client. post (uri, entry);
      • if (response.getStatus() == 201)
      • System.out.println(&quot;Data module successfully uploaded!&quot;);
      • else
      • System.out.println(&quot;Data module upload failed!&quot;);
    28. AtomPub Security SSL HTTP Authentication WSSE XML Signature /Encryption Others Security
    29. Signing an Atom Feed with Apache Abdera
      • Abdera abdera = new Abdera();
      • AbderaSecurity abderaSecurity = new AbderaSecurity(abdera);
      • URL url = new
      • URL(&quot;http://xyz-aero.com/csdb/DMC-8H-A-29-10-05-01A-253A-C.atom&quot;);
      • Document<Feed> doc = parser.parse(url.openStream(),url);
      • Feed feed = doc.getRoot();
      • PrivateKey privateKey = ...
      • X509Certificate certificate = ...
      • Signature signature = abderaSecurity.getNewSignature();
      • SignatureOptions options = signature.getDefaultSignatureOptions();
      • options.setSigningKey(privateKey);
      • options.setCertificate(certificate);
      • feed = signature. sign (feed, options);
    30. Verifying a Signature with Apache Abdera
      • ByteArrayInputStream feed = ...
      • Document<Entry> doc = abdera.getParser().parse(feed);
      • entry = doc.getRoot();
      • System.out.println(&quot;Valid signature?: &quot; + signature. verify (entry, null));
    31. Standardization with CMIS 1 AtomPub and SOAP bindings Not all deployed CMS will support CMIS. 2 Vanilla AtomPub client and server can be implemented easily with existing tools (e.g. Apache Abdera). 3 Interoperability issues between Vanilla AtomPub client and CMIS AtomPub server.
    32. Thank You ! [email_address]

    + Joel AmoussouJoel Amoussou, 6 months ago

    custom

    392 views, 1 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 392
      • 392 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories