SlideShare uma empresa Scribd logo
1 de 22
Packaging
Your data:
 Accessible, Manageable, and Secure

   Start 12:10
                                 Jack Davis
                                                PM
                        Windows/DevX/AppX/Packaging
Managing Application Content
 Applications today commonly work
 using multiple content streams:
   Text and markup
   Images, pictures, audio, and video
   User settings
   Application states

 App developer’s dilemma:
   “How do I store, access, and manage app data
    that’s contained in multiple content steams?”
Organizing Content and Resources
                         - previously -

        “Flat file”                       Binary
       Organization                   “container” files
  Web browser:                     Client applications:
   • HTML pages – .html              • Word – .doc
   • Image files – .jpg, .png        • Excel – .xls
   • Style Sheets – .css             • PowerPoint – .ppt
   • Video, Audio – .mpeg, .wmv      • Acrobat – .pdf.

  Flat files:                      Binary container files:
    Simple to access                 Easy to move.
    Difficult to move.               Harder to access.
                                     (each format unique, need
                                      special APIs and tools)
“Packaging”
An ISO and ECMA industry-standard
for creating new file formats.
   Open Packaging Conventions (OPC)
   A standalone component of Office Open XML
    ISO 29500-2 Open Packaging Conventions (2008)
    ECMA 376-2 Open Packaging Conventions (2006 & 2008)


         OPC
           ZIP-based container
           Web-accessible content
           Relational organization (optional)
Organizing Content and Resources
 – Open Packaging Conventions –
Current OPC Products and Formats

  Word & Win7 WordPad                         .docx
  Excel                                       .xlsx
  PowerPoint                                  .pptx
  Windows Vista & Windows 7 print pipeline
                                               .xps
  XML Paper Specification
  Visual Studio                               .vsix
  Semblio                                    .semblio
  Forefront Security                           .gfp
  Autodesk AutoCAD                             .jtx
  Siemens/UGS                                  .jtx
  Windows Azure                              .cspkg
  SQL Analysis Services                         ?
Demo

 Packaging provides:
  •   Robustness
  •   Compact Size
  •   Zip functionality
  •   Web accessibility
  •   ISO & ECMA industry-standard acceptance
Packaging “Min Bar”
  Every OPC-based format is a ZIP file!

 The reverse is not necessarily true:
  Not every ZIP file is an OPC package.

 OPC adds two min requirements to Zip:
   All parts (files) in a package must be
   web-accessible:
       Names of all stored parts (files) must be URI/URL-compliant.

   Packages must contain a [Content_Types].xml
Web-Accessible Part Names

All parts (files) stored in a package must be
Web-accessible.
  The names of all stored parts must be
  URI/URL-compliant:
    Example:
          File name:       “my file.txt”
           (space characters are not allowed in URIs/URLs)

          Part name: “my%20file.txt”
           (space characters percent-encoded)
[Content_Types].xml
Every part (file) stored in a package has a
MIME-style media type.
[Content_Types].xml markup is simple:
   Default: associates a generic file "Extension" to a specified
   "ContentType".
   Override: associates a specific "PartName" to a specified
   "ContentType" (overrides any Default extension association).

<?xml version="1.0" encoding="utf-8" ?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
 <Default Extension="htm" ContentType="text/html" />
 <Default Extension="css" ContentType="text/css" />
 <Default Extension="png" ContentType="image/png" />
 <Default Extension="jpg" ContentType="image/jpeg" />
 <Default Extension="mp3" ContentType="audio/mpeg3" />
 <Default Extension="xml" ContentType="application/xml" />
 <Override PartName="/docProps/core.xml"
    ContentType="application/vnd.openxmlformats-package.core-properties+xml" />
</Types>
Packaging Content and Resources

                                   Package

                     PartX
 FileX               ContentType



             FileY                     PartY          Application
                                       ContentType
                                                        Access
                                                     Parts, ContentTypes
     FileZ                PartZ
                         ContentType
Optional Services
 Data compression           Storage and access to
                            “core properties”
 Relational content         metadata.
 associations.
                            Storage and access of
 Digital Signatures         “thumbnail” images.
   Authenticate the         pack:// scheme for
   signing individual
                            web access (managed-code)
   or organization
   Validate that signed     Interleaved content for
   content has not been     streaming consumption.
   altered after signing.
Hierarchical Organization
Conventional file systems, including Zip,
provide a simple hierarchical organization.
OPC Relationships
Relationships allow file formats to organize
content through directed-graph associations.
Relationship Attributes
Relationships are composed of four items:
  Source (part or package root) – implied by reference
  Target (internal part or external resource)
  ID
  Relationship-Type                  T
                                        Target="/images/logo.png"
                  ID="rId1"                 (ContentType="image/png")



                      Type="http://...#required-resource"

        S
Relationships Markup
Example “_rels.rels” file
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
  <Relationship Id="rId3" Type="http://.../extended-properties" Target="docProps/app.xml" />
  <Relationship Id="rId2“ Type="http://.../core-properties" Target="docProps/core.xml" />
  <Relationship Id="rId1" Type="http://.../officeDocument" Target="word/document.xml" />
</Relationships>


Example “word_relsdocument.xml.rels” file
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
 <Relationship Id="rId8" Type="http://.../header" Target="header1.xml" />
 <Relationship Id="rId3" Type="http://.../styles" Target="styles.xml" />
 <Relationship Id="rId7" Type="http://.../endnotes" Target="endnotes.xml" />
 <Relationship Id="rId2" Type="http://.../numbering" Target="numbering.xml" />
 <Relationship Id="rId1" Type="http://.../customXml" Target="../customXml/item1.xml" />
 <Relationship Id="rId6" Type="http://.../footnotes" Target="footnotes.xml" />
 <Relationship Id="rId5" Type="http://.../webSettings" Target="webSettings.xml" />
 <Relationship Id="rId4" Type="http://.../settings" Target="settings.xml" />
</Relationships>
Digital Signatures
         Identifies the content originator.
         Validates that the content has not been altered.

                                              Signing Policy

                                                  List .
                                               of Parts and
                    Package                   Relationships                             Package
                                                 to sign.                                                  Authenticate
                      Relationship                                                Relationship
PartX                                                           PartX                                       & Validate
 MIME=…
ContentType                                                      MIME=…
                                                                ContentType
                                                                                                Digital
                                                                                              Signature
                                                                                                             Content
                                                Sign
                Relationship                                             Relationship



  PartY                                                         PartY
  ContentType                  Relationship
                                                                ContentType                                 Application
                                                                                                              Access
                                                                               Relationship


      PartZ                                                     PartZ                                     Parts, Relationships,
     ContentType                                                ContentType
                                                    X.509                                                    ContentTypes
                                                  Certificate
Optional Services
 Data compression           Storage and access to
                            “core properties”
 Relational content         metadata.
 associations.
                            Storage and access of
 Digital Signatures         “thumbnail” images.
   Authenticate the         pack:// scheme for
   signing individual
                            web access (managed-code)
   or organization
   Validate that signed     Interleaved content for
   content has not been     streaming consumption.
   altered after signing.
Win8 Investigations
 AppModel container (native pack:// scheme)
 Data Protection (encryption / rights management)
 XML Advanced Electronic Signatures (XAdES)
 Enterprise Sign Tool (XML-based signing policies)
 WinVerifyTrust extensions
 Developer APIs for ZIP and Silverlight
 Windows Shell handlers
   IProperties, IThumbnail, IFilter, IPreview

 ISO 29500-2 OPC (2008) updates
 SMPTE Media Package
Designing a File Format
1. Use a package-level relationship to identify a “starting” part.

2. For parts that reference other parts, create a part-level
   relationship to each target resource.
3. Consider using relationship IDs for content references in
   markup to resources.

4. Avoid relative references to resources outside of a Package.
5. For security, consider how the presence of unknown parts or
   relationships should be handled.
      Allow none, allow any, allowed defined extensibility.

6. If the content of the package is not to be edited or modified,
   consider signing parts & relationships with a digital signature.
Open Packaging Conventions
          ISO 29500-2 / ECMA 376-2
 For more information see Wikipedia “OPC” or go to
         http://en.wikipedia.org/wiki/Open_Packaging_Conventions
Open Packaging Conventions - Your Data: Accessible, Manageable, and Secure

Mais conteúdo relacionado

Destaque

14 spazio associazioni_doron
14 spazio associazioni_doron14 spazio associazioni_doron
14 spazio associazioni_doronCarmen Giordano
 
01 specchio specchio delle mie brame atelofobia-maggio2013
01   specchio specchio delle mie brame atelofobia-maggio201301   specchio specchio delle mie brame atelofobia-maggio2013
01 specchio specchio delle mie brame atelofobia-maggio2013Carmen Giordano
 
01 tra il dire e il fare
01  tra il dire e il fare01  tra il dire e il fare
01 tra il dire e il fareCarmen Giordano
 
08 aprile professione_doula
08 aprile professione_doula08 aprile professione_doula
08 aprile professione_doulaCarmen Giordano
 
12 spazio associazioni_spazio_per_noi
12 spazio associazioni_spazio_per_noi12 spazio associazioni_spazio_per_noi
12 spazio associazioni_spazio_per_noiCarmen Giordano
 
Life after campus mtangoo
Life after campus   mtangooLife after campus   mtangoo
Life after campus mtangooStefano Mtangoo
 
Sms English version
Sms English versionSms English version
Sms English versionjojoharsono
 
My seven questions
My seven questionsMy seven questions
My seven questionsfatzbaby
 
Advanced-farm-management-software-farmNXT
Advanced-farm-management-software-farmNXTAdvanced-farm-management-software-farmNXT
Advanced-farm-management-software-farmNXTRazvan Maximiuc
 
Undead计划书
Undead计划书Undead计划书
Undead计划书PandoVince
 
09 spazio associazioni_aibws
09 spazio associazioni_aibws09 spazio associazioni_aibws
09 spazio associazioni_aibwsCarmen Giordano
 
Evaluation question 1[1]
Evaluation question 1[1]Evaluation question 1[1]
Evaluation question 1[1]melvCooalge
 

Destaque (19)

14 spazio associazioni_doron
14 spazio associazioni_doron14 spazio associazioni_doron
14 spazio associazioni_doron
 
01 specchio specchio delle mie brame atelofobia-maggio2013
01   specchio specchio delle mie brame atelofobia-maggio201301   specchio specchio delle mie brame atelofobia-maggio2013
01 specchio specchio delle mie brame atelofobia-maggio2013
 
01 tra il dire e il fare
01  tra il dire e il fare01  tra il dire e il fare
01 tra il dire e il fare
 
Just For Kids Game
Just For Kids GameJust For Kids Game
Just For Kids Game
 
Just For Kids Game
Just For Kids GameJust For Kids Game
Just For Kids Game
 
08 aprile professione_doula
08 aprile professione_doula08 aprile professione_doula
08 aprile professione_doula
 
12 spazio associazioni_spazio_per_noi
12 spazio associazioni_spazio_per_noi12 spazio associazioni_spazio_per_noi
12 spazio associazioni_spazio_per_noi
 
Life after campus mtangoo
Life after campus   mtangooLife after campus   mtangoo
Life after campus mtangoo
 
Australia (1)
Australia (1)Australia (1)
Australia (1)
 
Sms English version
Sms English versionSms English version
Sms English version
 
Just For Kids Game
Just For Kids GameJust For Kids Game
Just For Kids Game
 
How to get your kids back
How to get your kids backHow to get your kids back
How to get your kids back
 
My seven questions
My seven questionsMy seven questions
My seven questions
 
Advanced-farm-management-software-farmNXT
Advanced-farm-management-software-farmNXTAdvanced-farm-management-software-farmNXT
Advanced-farm-management-software-farmNXT
 
Undead计划书
Undead计划书Undead计划书
Undead计划书
 
09 spazio associazioni_aibws
09 spazio associazioni_aibws09 spazio associazioni_aibws
09 spazio associazioni_aibws
 
Naturally diamond
Naturally diamondNaturally diamond
Naturally diamond
 
Evaluation question 1[1]
Evaluation question 1[1]Evaluation question 1[1]
Evaluation question 1[1]
 
La caramellabuona
La caramellabuonaLa caramellabuona
La caramellabuona
 

Semelhante a Open Packaging Conventions - Your Data: Accessible, Manageable, and Secure

Gilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence StrategiesGilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence StrategiesEric Barroca
 
Aras PLM Software Solutions
Aras PLM Software SolutionsAras PLM Software Solutions
Aras PLM Software SolutionsAras
 
The current architecture of TYPO3 5.0
The current architecture of TYPO3 5.0The current architecture of TYPO3 5.0
The current architecture of TYPO3 5.0Robert Lemke
 
Switch to Alfresco with Seed in Australia and New Zealand
Switch to Alfresco with Seed in Australia and New ZealandSwitch to Alfresco with Seed in Australia and New Zealand
Switch to Alfresco with Seed in Australia and New ZealandAlfresco Software
 
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applicationsNuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applicationsNuxeo
 
Papyrus Digital Asset Management
Papyrus Digital Asset ManagementPapyrus Digital Asset Management
Papyrus Digital Asset Managementmjpucher
 
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi (Samsung) - Korea Lin...
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi  (Samsung) - Korea Lin...Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi  (Samsung) - Korea Lin...
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi (Samsung) - Korea Lin...Ryo Jin
 
Switch to alfresco with wasaaiq [compatibility mode]
Switch to alfresco with wasaaiq [compatibility mode]Switch to alfresco with wasaaiq [compatibility mode]
Switch to alfresco with wasaaiq [compatibility mode]Alfresco Software
 
2010 Glossary of E-Publishing Terms
2010 Glossary of E-Publishing Terms2010 Glossary of E-Publishing Terms
2010 Glossary of E-Publishing TermsKrista Coulson
 
AAUP 2011 Ebook Basics Introduction/Handout
AAUP 2011 Ebook Basics Introduction/HandoutAAUP 2011 Ebook Basics Introduction/Handout
AAUP 2011 Ebook Basics Introduction/Handoutearkin
 
CMIS and Interoperability - AIIM 2009
CMIS and Interoperability - AIIM 2009CMIS and Interoperability - AIIM 2009
CMIS and Interoperability - AIIM 2009johnnewton
 
Content extraction with apache tika
Content extraction with apache tikaContent extraction with apache tika
Content extraction with apache tikaJukka Zitting
 
Architecture as Linked Data
Architecture as Linked DataArchitecture as Linked Data
Architecture as Linked DataDanny Greefhorst
 
Presentation kaushal
Presentation kaushalPresentation kaushal
Presentation kaushalAjay Yadav
 
Documentum introduction
Documentum introductionDocumentum introduction
Documentum introductionotnawrup
 
Trekk cross media series using xml to create once - distribute everywhere - e...
Trekk cross media series using xml to create once - distribute everywhere - e...Trekk cross media series using xml to create once - distribute everywhere - e...
Trekk cross media series using xml to create once - distribute everywhere - e...Jeffrey Stewart
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?ukdpe
 
Android application structure
Android application structureAndroid application structure
Android application structureAlexey Ustenko
 
Special Purpose Role-Based Clients for PLM using Aras
Special Purpose Role-Based Clients for PLM using ArasSpecial Purpose Role-Based Clients for PLM using Aras
Special Purpose Role-Based Clients for PLM using ArasAras
 
Aras Role Based Clients
Aras Role Based ClientsAras Role Based Clients
Aras Role Based ClientsProdeos
 

Semelhante a Open Packaging Conventions - Your Data: Accessible, Manageable, and Secure (20)

Gilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence StrategiesGilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence Strategies
 
Aras PLM Software Solutions
Aras PLM Software SolutionsAras PLM Software Solutions
Aras PLM Software Solutions
 
The current architecture of TYPO3 5.0
The current architecture of TYPO3 5.0The current architecture of TYPO3 5.0
The current architecture of TYPO3 5.0
 
Switch to Alfresco with Seed in Australia and New Zealand
Switch to Alfresco with Seed in Australia and New ZealandSwitch to Alfresco with Seed in Australia and New Zealand
Switch to Alfresco with Seed in Australia and New Zealand
 
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applicationsNuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
 
Papyrus Digital Asset Management
Papyrus Digital Asset ManagementPapyrus Digital Asset Management
Papyrus Digital Asset Management
 
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi (Samsung) - Korea Lin...
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi  (Samsung) - Korea Lin...Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi  (Samsung) - Korea Lin...
Introduction to the Tizen SDK 2.0.0 Alpha - Taiho Choi (Samsung) - Korea Lin...
 
Switch to alfresco with wasaaiq [compatibility mode]
Switch to alfresco with wasaaiq [compatibility mode]Switch to alfresco with wasaaiq [compatibility mode]
Switch to alfresco with wasaaiq [compatibility mode]
 
2010 Glossary of E-Publishing Terms
2010 Glossary of E-Publishing Terms2010 Glossary of E-Publishing Terms
2010 Glossary of E-Publishing Terms
 
AAUP 2011 Ebook Basics Introduction/Handout
AAUP 2011 Ebook Basics Introduction/HandoutAAUP 2011 Ebook Basics Introduction/Handout
AAUP 2011 Ebook Basics Introduction/Handout
 
CMIS and Interoperability - AIIM 2009
CMIS and Interoperability - AIIM 2009CMIS and Interoperability - AIIM 2009
CMIS and Interoperability - AIIM 2009
 
Content extraction with apache tika
Content extraction with apache tikaContent extraction with apache tika
Content extraction with apache tika
 
Architecture as Linked Data
Architecture as Linked DataArchitecture as Linked Data
Architecture as Linked Data
 
Presentation kaushal
Presentation kaushalPresentation kaushal
Presentation kaushal
 
Documentum introduction
Documentum introductionDocumentum introduction
Documentum introduction
 
Trekk cross media series using xml to create once - distribute everywhere - e...
Trekk cross media series using xml to create once - distribute everywhere - e...Trekk cross media series using xml to create once - distribute everywhere - e...
Trekk cross media series using xml to create once - distribute everywhere - e...
 
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?Mike Taulty TechDays 2010 Silverlight 4 - What's New?
Mike Taulty TechDays 2010 Silverlight 4 - What's New?
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
Special Purpose Role-Based Clients for PLM using Aras
Special Purpose Role-Based Clients for PLM using ArasSpecial Purpose Role-Based Clients for PLM using Aras
Special Purpose Role-Based Clients for PLM using Aras
 
Aras Role Based Clients
Aras Role Based ClientsAras Role Based Clients
Aras Role Based Clients
 

Último

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Último (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

Open Packaging Conventions - Your Data: Accessible, Manageable, and Secure

  • 1. Packaging Your data: Accessible, Manageable, and Secure Start 12:10 Jack Davis PM Windows/DevX/AppX/Packaging
  • 2. Managing Application Content Applications today commonly work using multiple content streams: Text and markup Images, pictures, audio, and video User settings Application states App developer’s dilemma: “How do I store, access, and manage app data that’s contained in multiple content steams?”
  • 3. Organizing Content and Resources - previously - “Flat file” Binary Organization “container” files Web browser: Client applications: • HTML pages – .html • Word – .doc • Image files – .jpg, .png • Excel – .xls • Style Sheets – .css • PowerPoint – .ppt • Video, Audio – .mpeg, .wmv • Acrobat – .pdf. Flat files: Binary container files: Simple to access Easy to move. Difficult to move. Harder to access. (each format unique, need special APIs and tools)
  • 4. “Packaging” An ISO and ECMA industry-standard for creating new file formats. Open Packaging Conventions (OPC) A standalone component of Office Open XML  ISO 29500-2 Open Packaging Conventions (2008)  ECMA 376-2 Open Packaging Conventions (2006 & 2008)  OPC  ZIP-based container  Web-accessible content  Relational organization (optional)
  • 5. Organizing Content and Resources – Open Packaging Conventions –
  • 6. Current OPC Products and Formats Word & Win7 WordPad .docx Excel .xlsx PowerPoint .pptx Windows Vista & Windows 7 print pipeline .xps XML Paper Specification Visual Studio .vsix Semblio .semblio Forefront Security .gfp Autodesk AutoCAD .jtx Siemens/UGS .jtx Windows Azure .cspkg SQL Analysis Services ?
  • 7. Demo Packaging provides: • Robustness • Compact Size • Zip functionality • Web accessibility • ISO & ECMA industry-standard acceptance
  • 8. Packaging “Min Bar” Every OPC-based format is a ZIP file! The reverse is not necessarily true: Not every ZIP file is an OPC package.  OPC adds two min requirements to Zip: All parts (files) in a package must be web-accessible:  Names of all stored parts (files) must be URI/URL-compliant. Packages must contain a [Content_Types].xml
  • 9. Web-Accessible Part Names All parts (files) stored in a package must be Web-accessible. The names of all stored parts must be URI/URL-compliant: Example:  File name: “my file.txt” (space characters are not allowed in URIs/URLs)  Part name: “my%20file.txt” (space characters percent-encoded)
  • 10. [Content_Types].xml Every part (file) stored in a package has a MIME-style media type. [Content_Types].xml markup is simple: Default: associates a generic file "Extension" to a specified "ContentType". Override: associates a specific "PartName" to a specified "ContentType" (overrides any Default extension association). <?xml version="1.0" encoding="utf-8" ?> <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> <Default Extension="htm" ContentType="text/html" /> <Default Extension="css" ContentType="text/css" /> <Default Extension="png" ContentType="image/png" /> <Default Extension="jpg" ContentType="image/jpeg" /> <Default Extension="mp3" ContentType="audio/mpeg3" /> <Default Extension="xml" ContentType="application/xml" /> <Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml" /> </Types>
  • 11. Packaging Content and Resources Package PartX FileX ContentType FileY PartY Application ContentType Access Parts, ContentTypes FileZ PartZ ContentType
  • 12. Optional Services Data compression Storage and access to “core properties” Relational content metadata. associations. Storage and access of Digital Signatures “thumbnail” images. Authenticate the pack:// scheme for signing individual web access (managed-code) or organization Validate that signed Interleaved content for content has not been streaming consumption. altered after signing.
  • 13. Hierarchical Organization Conventional file systems, including Zip, provide a simple hierarchical organization.
  • 14. OPC Relationships Relationships allow file formats to organize content through directed-graph associations.
  • 15. Relationship Attributes Relationships are composed of four items: Source (part or package root) – implied by reference Target (internal part or external resource) ID Relationship-Type T Target="/images/logo.png" ID="rId1" (ContentType="image/png") Type="http://...#required-resource" S
  • 16. Relationships Markup Example “_rels.rels” file <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId3" Type="http://.../extended-properties" Target="docProps/app.xml" /> <Relationship Id="rId2“ Type="http://.../core-properties" Target="docProps/core.xml" /> <Relationship Id="rId1" Type="http://.../officeDocument" Target="word/document.xml" /> </Relationships> Example “word_relsdocument.xml.rels” file <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId8" Type="http://.../header" Target="header1.xml" /> <Relationship Id="rId3" Type="http://.../styles" Target="styles.xml" /> <Relationship Id="rId7" Type="http://.../endnotes" Target="endnotes.xml" /> <Relationship Id="rId2" Type="http://.../numbering" Target="numbering.xml" /> <Relationship Id="rId1" Type="http://.../customXml" Target="../customXml/item1.xml" /> <Relationship Id="rId6" Type="http://.../footnotes" Target="footnotes.xml" /> <Relationship Id="rId5" Type="http://.../webSettings" Target="webSettings.xml" /> <Relationship Id="rId4" Type="http://.../settings" Target="settings.xml" /> </Relationships>
  • 17. Digital Signatures Identifies the content originator. Validates that the content has not been altered. Signing Policy List . of Parts and Package Relationships Package to sign. Authenticate Relationship Relationship PartX PartX & Validate MIME=… ContentType MIME=… ContentType Digital Signature Content Sign Relationship Relationship PartY PartY ContentType Relationship ContentType Application Access Relationship PartZ PartZ Parts, Relationships, ContentType ContentType X.509 ContentTypes Certificate
  • 18. Optional Services Data compression Storage and access to “core properties” Relational content metadata. associations. Storage and access of Digital Signatures “thumbnail” images. Authenticate the pack:// scheme for signing individual web access (managed-code) or organization Validate that signed Interleaved content for content has not been streaming consumption. altered after signing.
  • 19. Win8 Investigations AppModel container (native pack:// scheme) Data Protection (encryption / rights management) XML Advanced Electronic Signatures (XAdES) Enterprise Sign Tool (XML-based signing policies) WinVerifyTrust extensions Developer APIs for ZIP and Silverlight Windows Shell handlers IProperties, IThumbnail, IFilter, IPreview ISO 29500-2 OPC (2008) updates SMPTE Media Package
  • 20. Designing a File Format 1. Use a package-level relationship to identify a “starting” part. 2. For parts that reference other parts, create a part-level relationship to each target resource. 3. Consider using relationship IDs for content references in markup to resources. 4. Avoid relative references to resources outside of a Package. 5. For security, consider how the presence of unknown parts or relationships should be handled.  Allow none, allow any, allowed defined extensibility. 6. If the content of the package is not to be edited or modified, consider signing parts & relationships with a digital signature.
  • 21. Open Packaging Conventions ISO 29500-2 / ECMA 376-2 For more information see Wikipedia “OPC” or go to http://en.wikipedia.org/wiki/Open_Packaging_Conventions

Notas do Editor

  1. Other types of binary container files Java - .jarOpenDocument - .odf
  2. OPC is not a file format in itself – it is a technology for creating new file formats that share a common foundation.
  3. IANA MIME media typeshttp://www.iana.org/assignments/media-types/ The MIME-style media content type identifies the type of data the part contains.MIME media types reduce ambiguities associated with duplications in 2-, 3-, and 4-character filename extensions.
  4. Values for the Relationship “Type”s are defined by the file format and typically express “how” the relationship used. OPC Relationships XML schema is basically simple and easily human-readable: o Only two element types □ A Relationships element that nests one or more Relationship elements. o Each Relationship has three basic attributes: □ “Id” - A unique identifier that can be used to reference the relationship from the XML of the source part. □ “Type” - Expresses the intent of &quot;how&quot; the relationship &quot;target&quot; is used (e.g. &quot;settings&quot;, &quot;styles&quot;, etc.) - Commonly expressed in a form similar to a schema namespace. □ “Target” - URI to the target part or external resource that&apos;s associated with the relationship.
  5. “\\_rels\\.rels” file contains the relationships markup for package-level relationships.“\\word\\_rels\\document.xml.rels” contains the relationships markup for the part “\\word\\document.xml”.OPC Relationships XML schema is basically simple and easily human-readable: o Only two element types □ A “Relationships” (plural) element that nests one or more “Relationship” elements. o Each Relationship has three basic attributes: □ &quot;Id“ - A unique identifier that can be used to reference the relationship from the XML of the source part. □ &quot;Type“ - Expresses the intent of &quot;how&quot; the relationship &quot;target&quot; is used (e.g. &quot;required-resource&quot;, &quot;settings&quot;, &quot;styles&quot;, etc.) - Commonly expressed in a form similar to a schema namespace. □ &quot;Target“ - URI to the target part or external resource that&apos;s associated with the relationship.