Using XML Web Services for Information Exchange in America's Shipyards Dr. Thomas Daggett Dr. Margaretha Price Electric Boat Corporation, General Dynamics 1 Agenda ● ISE Project Overview » Business Case » Approach ● Electric Boat’s activities » Product Data Web Service – Architecture – Approach – Products utilized » Information Modeling – – – – Schema architecture and encoding Persistent identifiers (keys) Type checking Associations 2 Integrated Shipbuilding Environment (ISE) Project ● Electric Boat is leading the ISE Project as part of the National Shipbuilding Research Program (NSRP) » Being executed by a consortium of approximately 20 Shipyards, CAD Vendors and Universities » Objective – develop and deploy an interoperability infrastructure and tool set that will result in the integration of shipbuilding systems through the effective use of readily available Web technologies 3 Collaboration in the Large SUPPLIERS DESIGN PARTNERS INFORMATION TECHNOLOGY - Corporate Index/Information Internet CUSTOMERS MARKETING Information - Literature - Specifications - Delivery - Pricing FINANCE Information - Forecast - Actuals - Budgets - Policies/Procedures ENGINEERING Collaboration - Requirements - Specifications - Designs - Quality - Notes - Models PURCHASING EDI MANUFACTURING Collaboration - Forecast - Schedules - Quality - ISO 9000 CUSTOMER SERVICE Collaboration - Product Information - Problem Tracking 4 Integrated Shipbuilding Environment Project Approach ● Develop and demonstrate tools that are low cost » can be selectively used by shipyards to support interoperability » capitalize on XML and related Internet technologies ● Flexibility is critical » allow shipyards to transform their data to/from common information model ● ● ● Drive development of manufacturing standards Construct a single Shipbuilding Information Model Demonstrate and educate U.S. ship building community 5 ISE Business Drivers Co-production Co-design * Web-based system diagrams * Web-based interop with simulation & analysis Logistics Information Support * Web access to as-planned & design product structure * Web-based product model sharing * Browser access to product-related documents ISE Integrated Shipbuilding Environment Product Development Environment Maritime Supply Chain * Web-based supplier catalogs * Shared parts library 6 6 ISE Project: Electric Boat Activities ● Information Modeling » construct Information Models (XML Schema) to describe shipyard product data – capitalize on existing ISO 10303 manufacturing standards (STEP APs) – drive manufacturing standards to support Shipyard data » define a common XML approach – encoding styles and use of Persistent Global identifiers ● Product Data Management (PDM) Web Service » construct a web service that allows querying of a Product Data Virtual Document – SOAP Web Service utilizes Xqueryx to specify query » demonstrate PDM Web Service through Enhanced Product Model (EPM) thin-client application 7 ISE EPM Project: Architecture network Browser EPM User Interface Dynamic Web Pages SOAP Presentation Layer Data Querying Service PDM Data Web Service Layer Product Data Data Layer 8 Web Server Defs EPM Presentation(s) .Jsp Xquery jsp Xqueryx XML EDO Message Bean EDO XML HTML Text Results Only jsp jsp HTML Specific Text xslt Specific PDF xslt Specific xslt PDF jsp EDO SOAP Bean SOAP Server Defs Input SOAP Output SOAP EDOQuery Input (SOAP Server) XML Only jsp Web Server Product Data Data Service Bean EDOExtrt xslt SOAP-based Data Service Queryfltr xslt 9 ISE EPM Project: Infrastructure ● ISE EPM Project utilizes following products: » Apache SOAP Server – SOAP Messaging used between presentation layer and PDM data Web Service » Apache Jakarta (Web/JSP Server) Server – JSPs and XSLT scripts comprise presentation layer » Apache Xalan/Xerces XSLT Engine/XML Parser – XSLT scripts utilized for information model transformation from EB specific form into ISE Information Model form » Oracle 9i XSQL/XSLT Server – used to extract data as XML content » Oracle Transparent Gateway – used to host legacy DB2 database 10 ISE Information Interoperability Parts Parts •ISO •ISO13584 13584 (PLIB) (PLIB) Customer Customer <Part> ----------------------------------------------------------------- Product ProductData Data ISO ISO10303: 10303: •227 Piping •227 Piping • •PDM PDM •216 •216Hull HullForms Forms •218 Structures •218 Structures •209 •209Analysis Analysis (STEP) (STEP) CAM-NC CAM-NC •ISO •ISO14659 14659 (STEP-NC) (STEP-NC) W E B </Part> ISE S E R V I C E S Analysis Analysis <Product Data> ----------------------------------------------------------------- </Product Data > <CAM-NC> ----------------------------------------------------------------- </CAM-NC > Production Production Planning Planning Manufacturing Manufacturing/ / Outfit Outfit <ERP> ----------------------------------------------------------------- Collaboration Collaboration </ERP > ISE Virtual Document ERP ERP •ISO15531 •ISO15531 (ebXML, (ebXML,OAGIS) OAGIS) STEP / XML •Electronic Deliverables •Interoperability (system-to-system) •Data Exchange Life-Cycle Life-Cycle Support Support 11 Schema Modularity and Reusability ● ● Dependencies are from the more specific schemas to the more general schemas Not all schemas are needed for all contexts Configuration mgmts Shapes Person/ Organization Product Data Mgmt (PDM) Materials PDM associations Parts Part definitions Functional design & Simulation Part associations Detailed design 12 Encoding Styles: OSEB & STEP-SOAP ● Object Serialization Early Binding (OSEB) » streamlines the exchange of XML instance files to achieve a flat & size-optimized structure » uses XML Schema attributes for data and references to other entities » mainly used for application to application transfers ● STEP-SOAP » almost always consistent with the SOAP-encoding » XML Schema elements are used for data and references to other entities » elements can be contained or referenced » mainly used for user readability 13 Enterprise Data Objects (EDO) and Keys ● An EDO is a persistent, globally accessible entity that has » a type and an identity ● Each EDO has an EDO Key (of the same type + ”_Key”) » instance files can contain just keys (keys have enough information for retrieving the objects) » keys have server information » keys contain primary key attributes Sample OSEB-encoded EDO key and its object <pdm:Item_Key x-id="i1" x-ob="i2" x-href="www.company.com" Id=”12345"/> <pdm:Item x-id="i2" Name="Pipe" Description="Straight pipe" shp:Representations-r="i3"/> 14 EDO and EDO Keys - cont. In the STEP-SOAP format: » the attributes are contained elements » key attributes are also in the object (instance files can contain just keys, just objects, or both) <pdm:Item_Key id="i1”> <key x-href="www.company.com" Id=”12345"/> </pdm:Item_Key> <pdm:Item id="i2"> <key x-href="www.company.com" Id=”12345"/> <Name>Pipe</Name> <Description>Straight pipe</Description> <shp:Representations> <hsh:Shape_representation href="i3” xsi:nil=“true”/> </shp:Representations> </pdm:Item> 15 Type Checking in STEP-SOAP Is the referenced entity of the right type (or its subtypes)? <shp:Representations> <hsh:Shape_representation id="i3"> <key x-href="www.company.com" Element_id=”111"/> </hsh:Shape_representation> </shp:Representations> Schema <xs:complexType name="Shape_representation"> … </xs:complexType> <xs:element name="Shape_representation" type="hsh:Shape_representation” nillable="true” block="extension restriction”/> <xs:complexType name=”Specific_shape_representation"> <xs:complexContent> <xs:extension base="hsh:Shape_representation"> … </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name = ”Specific_shape_representation" type = ”hsh:Specific_shape_representation" substitutionGroup = "hsh:Shape_representation" nillable = "true" block = "extension restriction"/> 16 Type Checking in OSEB Is the referenced entity of the right type? <pdm:Item x-id="i2" Name="Pipe" Description="Straight pipe" shp:Representations-r="i3"/> <hsh:Shape_representation_Key x-id="i3" x-href="www.company.com" Element_id=”111"/> Schema <xs:element name="uos" type="osb:uos"> … <xs:key name="Shape_representation_Key"> <xs:selector xpath="hsh:Shape_representation_Key| hsh:Specific_shape_representation_Key|…(all subtypes)..."/> <xs:field xpath="@x-id"/> </xs:key> <xs:keyref name=”Item.Representations” refer=“Shape_representation_Key”> <xs:selector xpath=”pdm:Item"/> <xs:field xpath="@shp:Representations-r"/> </xs:keyref> ... </xs:element> 17 Associations among EDO ● ● ● Schemas contain flexible & reusable types Associations among EDO are separated from the types Inverse associations are always available A B import import C (associations) redefine import redefine import A2 B2 import import Context import Other schemas 18 Sample Schema with EDO Associations <pdm:Item x-id="i2" Name="Pipe" Description="Straight pipe" shp:Representations-r="i3"/> Schema <xs:complexType name="Item"> <xs:complexContent> <xs:extension base="edo:Edo"> <xs:attribute name="Name" type="xs:string" use="optional"/> <xs:attribute name="Description" type="xs:string" use="optional"/> </xs:extension> </xs:complexContent> </xs:complexType> Redefined Schema <xs:redefine schemaLocation="../../../../../osb/Edo/Product/Pdm.xsd"> <xs:complexType name=”Item"> <xs:complexContent> <xs:extension base=”Item"> <xs:attribute ref="shp:Representations-r" use="optional"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:redefine> 19 Summary ● Any questions or comments? 20