840 likes | 1.18k Views
전자상거래 원론: 제 10 장. XML 과 EDI 를 이용한 전자상거래. 학습 목표. XML의 특징과 전자상거래에서의 필요성에 대해서 이해한다. 전통적인 B2B 전자상거래 기반 기술인 EDI의 특징과 동향에 대해서 정리한다. 전자상거래를 위해서 필요한 XML 핵심 표준에 대해 정리한다. XML기반 전자상거래를 실현하기 위한 표준화의 의미와 동향을 파악한다. 전자상거래 프레임워크의 역할과 주요 프레임워크를 알아본다. 미래 전자상거래 기반으로서의 시맨틱 웹의 가능성을 탐구한다. 본문내용.
E N D
전자상거래 원론: 제10장 XML과 EDI를 이용한 전자상거래
학습 목표 • XML의 특징과 전자상거래에서의 필요성에 대해서 이해한다. • 전통적인 B2B 전자상거래 기반 기술인 EDI의 특징과 동향에 대해서 정리한다. • 전자상거래를 위해서 필요한 XML 핵심 표준에 대해 정리한다. • XML기반 전자상거래를 실현하기 위한 표준화의 의미와 동향을 파악한다. • 전자상거래 프레임워크의 역할과 주요 프레임워크를 알아본다. • 미래 전자상거래 기반으로서의 시맨틱 웹의 가능성을 탐구한다.
본문내용 • 1. 전자상거래와 XML • 2. EDI • 3. XML 핵심 기술 • 4. XML기반 전자상거래 동향 • 5. 시맨틱 웹 • 6. 결론
HTML과 XML XML DTD(Document Type Definition) <!ELEMENT Catalog (Book)+> <!ELEMENT Book (Title,Price)> <!ELEMENT Title (#PCDATA)> <!ELEMENT Price (#PCDATA)> <!ATTLIST Price Unit (W|Y|D) ”W"> Simplification SGML DTD Validation Validation Well-Formed / Validated XML Document HTML XSL <Catalog> <Book> <Title>백과사전</Title> <Price Unit=”W">10000</Price> </Book> </Catalog> <table> <tr> <td>백과사전</td> <td>10000원</td> </tr> </table> Conversion Presentation Store / Manimpulation
XML의 특성 비교 기준 XML SGML HTML SGML을 단순화한 것으로 사례정의 가능 최초의 마크업 표준으로 사례정의 가능 SGML로 정의된 한 사례 상호관계 불가능 (비표준 확장 가능) 확장성 가능 (DTD정의) 가능 (DTD 정의) 단순 복잡도 다소 복잡 매우 복잡 1986년 ISO8879 표준 표준화 V1.0 권고안 (1998.2) 등 V4.01 권고안 (1999) IE5.* 전용 범용 브라우져 가능 불가능 데이터 공유 가능 XSL DSSSL 스타일 처리 CSS 전자상거래 용 도 문서화 프리젠테이션 웹 변화의기본 틀 표준화 주도 기업 경쟁력의 기준 XML사례로 정의된 XHTML 전 망 CALS문서화
Basic XML Standards W3C Recommendations W3C Proposed Recommendations • XML 1.0: 1998.2 • MathML 1.0: 1998.4 • SMIL 1.0: 1998.6 • DOM Level 1 1.0 : 1998.10 • Namespaces in XML: 1999.1 • RDF Model and Syntax: 1999.2 • XSLT 1.0 and XPath 1.0: 1999.11 • XHTML 1.0: 2000.1 • RDF Schema: 2000.3 • DOM Level 2 1.0: 2000.11 • XHTML 1.1 - Module-based XHTML: 2001.5 • XLink 1.0 and XPointer 1.0: 2001.6 • SMIL 2.0: 2001.8 W3C Candidate Recommendations W3C Working Drafts W3C Notes
XML-Related Acronyms XFRML RosettaNet Reg/Rep UDDI DOM WSDL SOAP SAX Schema UML/XMI DTD BizTalk HRXML ebXML WML XLink XSLT NEWSML BPML FPML XSL XQuery XML Pandora’s Box
Traditional EDI EDI-LITE SIMPL-EDI OO Mainstream 1990 UN/EDIFACT 1980 ANSI X.12 GTDI 1970 TDCC 1960 개별기업간
EDI System Architecture 기업B 기업A EDI 변환S/W EDI 변환S/W App1 In-house Format In-house Format App2 EDIFACT EDIFACT VAN
EDI 계층 구조 EDI Semantic Layer Application-level Services EDIFACT EDI Standard Layer ANSI X.12 Electronic Mail X.435, MIME Point to Point EDI Transport Layer FTP WWW HTTP Physical Layer Dial-up Lines, Internet, X.25
EDI Message (PRICAT) UNH+13579+PRICAT:D:96A:UN:EAN006' BGM+9+12345+2' DTM+137:19971116:102' DTM+273:1997111619971215:718' RFF+PL:12333' DTM+171:19971016:102' NAD+BY+5790000000029::9' NAD+SU+5790000000012::9' ... Segments Data Elements
EDI 보급률 95% 98% 5% 2% FORTUNE 1000 OVERALL Using EDI EDI Capable
EDI의 장단점 Advantage • 산업별 표준 • 개방형 국제 표준 • Secure Interchange: Private Network • Legal Interchange • Available Tools and Service Providers • 신뢰성 • Proven Business Benefits • 데이터 입력시의 오류 감소 • 문서 처리를 위한 시간과 비용 절감 Disadvantage • Low Flexibility • Fixed Data Structure • Knowledge embedded in Programs • High Cost of Implementation • Long Time to Implement • Difficulty in Maintaining and Updating the Standards • Difficulty in Version Control • No Provision for Process and Information Exchange
EDI 발전 방향 • 전통적인 EDI의 지속적인 성장 • Batch: 많은 양의 메시지를 모아 일정회수 전송 • Real-time: 메시지 발생 즉시 전송 • Interactive: 즉각적인 응답 • 단순화된 EDI로의 발전 • EDI-LITE: UN/EDIFACT근간의 웹솔루션 • SITPRO: UN/EDIFACT근간의 Aligned Forms 지원 • UKCEDIS: 메시지 교환 전에 마스터파일 교환 • SIMPL-EDI: UN/CEFACT SIMAC • 업무 프로세스에 초점을 맞춘 Open EDI • OO EDI: 객체지향 기법 적용
XML Prolog XML Declaration • <?xml version=“1.0” encoding=“euc-kr”?> Processing Instruction <?xml-stylesheet type=“text/css” href=“greeting.css”?> XML DTD (Document Type Definition) • <!DOCTYPE greeting [ • <!ELEMENT greeting (#PCDATA)> • ]> 내부 정의 • <!DOCTYPE greeting SYSTEM “hello.dtd”> 외부 정의
XML Element Element Content Element Attribute • <Price unit=“W”>1000</Price> Start Tag Start Tag Empty Element <image src=“lake.jpg”></image> <image src=“lake.jpg” /> Attribute Name Attribute Value Attribute • <Quotation text=‘He said, “Not that!”’ /> <Person height=“5'6"” /> Generic Entity Reference 주의: 엘리먼트 이름과 속성이름은 대소문자를 구분합니다.
Element Content Element Content <Book> 제목은 <Title>B2B전자상거래</Title> 이며 저자는 <Author>김형도</Author>입니다. </Book> <Book> <Title>B2B전자상거래</Title> <Author>김형도</Author> </Book> Comment <!-- 이것은 책에 관한 소개입니다. --> Markup이 아닌 문자열로 해석됨 CDATA Section <![CDATA[<greeting>Hello, world!</greeting>]]>
Well-formedness Well-formed Document Sample • XML 선언문 • 하나 이상의 엘리먼트가 존재 • 최상위 엘리먼트가 존재 • Nesting with no overlap • 속성 이름은 엘리먼트 내에서 유일함 • Generic Entity Reference • & < > " ' • ... <?xml version="1.0" standalone="yes" ?> <CUSTOMER> <NAME> <LAST_NAME>Smith</LAST_NAME> <FIRST_NAME>Sam</FIRST_NAME> </NAME> <DATE>October 15, 2001</DATE> <ORDERS> <ITEM> <PRODUCT>Tomatoes</PRODUCT> <NUMBER>8</NUMBER> <PRICE>$1.25</PRICE> </ITEM> <ITEM> <PRODUCT>Oranges</PRODUCT> <NUMBER>24</NUMBER> <PRICE>$4.98</PRICE> </ITEM> </ORDERS> </CUSTOMER> Element Overlapping <Parent> <Child> </Parent> </Child>
경매 XML 문서 사례 <?xml version="1.0" encoding="euc-kr" ?> <!DOCTYPE AUCTIONBLOCK SYSTEM auctionblock.dtd> <AUCTIONBLOCK> <ITEM> <TITLE>Vase and Stones</TITLE><ARTIST>Linda Mann</ARTIST> <DIMENSIONS>20x30 inches</DIMENSIONS> <MATERIALS>Oil</MATERIALS><YEAR>1996</YEAR> <DESCRIPTION>Still Life</DESCRIPTION> <PREVIEW-SMALL src="burl-s.jpg" width="300" height="194" alt="Vase and Stones입니다."/> <BIDS> <BID> <PRICE>6000원</PRICE><TIME>3:02:22 PM</TIME> <BIDDER>Chris</BIDDER><TIMESTAMP>1307</TIMESTAMP> </BID> <BID> <PRICE>5700원</PRICE><TIME>2:58:42 PM</TIME> <BIDDER>John</BIDDER><TIMESTAMP>1315</TIMESTAMP> </BID> <BID> <PRICE>5600원</PRICE><TIME>2:54:32 PM</TIME> <BIDDER>Andrew</BIDDER><TIMESTAMP>1308</TIMESTAMP> </BID> <BID> <PRICE>5500원</PRICE><TIME>2:48:08 PM</TIME> <BIDDER>Chris</BIDDER><TIMESTAMP>1307</TIMESTAMP> </BID> <BID> <PRICE>5000원</PRICE><TIME>2:47:58 PM</TIME> <BIDDER>opening price</BIDDER><TIMESTAMP>1298</TIMESTAMP> </BID> </BIDS> <TIMESTAMP>1315</TIMESTAMP> </ITEM> </AUCTIONBLOCK>
Validation DTD: Document Type Definition <!ELEMENT Catalog (Book)+> <!ELEMENT Book (Title,Price)> <!ELEMENT Title (#PCDATA)> <!ELEMENT Price (#PCDATA)> <!ATTLIST Price Unit (W|Y|D) ”W"> Validation Validation Invalid Document Valid Document <Catalog> <Book page=“257”> <Title>AI</Title> <Price>10000</Price> </Book> </Catalog> <Catalog> <Book> <Title>백과사전</Title> <Price Unit=”W">10000</Price> </Book> </Catalog>
DTD (Document Type Definition) c.dtd <?xml version="1.0" standalone="yes" ?> <!DOCTYPE CUSTOMER SYSTEM “c.dtd”> <CUSTOMER> <NAME> <LAST_NAME>Smith</LAST_NAME> <FIRST_NAME>Sam</FIRST_NAME> </NAME> <DATE>October 15, 2001</DATE> <ORDERS> <ITEM> <PRODUCT>Tomatoes</PRODUCT> <NUMBER>8</NUMBER> <PRICE>$1.25</PRICE> </ITEM> <ITEM> <PRODUCT>Oranges</PRODUCT> <NUMBER>24</NUMBER> <PRICE>$4.98</PRICE> </ITEM> </ORDERS> </CUSTOMER> <!ELEMENT CUSTOMER (NAME, DATE, ORDERS)> <!ELEMENT NAME (LAST_NAME, FIRST_NAME)> <!ELEMENT LAST_NAME (#PCDATA)> <!ELEMENT FIRST_NAME (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT ORDERS (ITEM)*> <!ELEMENT ITEM (PRODUCT, NUMBER, PRICE)> <!ELEMENT PRODUCT (#PCDATA)> <!ELEMENT NUMBER (#PCDATA)> <!ELEMENT PRICE (#PCDATA)>
Attribute Definition 사용 가능한 값 <!ELEMENT month EMPTY> <!ATTLIST month name CDATA #IMPLIED id ID #REQUIRED > 속성값 유형 속성이름
Attribute Definition Samples <!ELEMENT CUSTOMER EMPTY> <!ATTLIST CUSTOMER • id ID #REQUIRED • employer IDREF #IMPLIED • points CDATA “100” • language CDATA #FIXED “EN” • credit (TRUE|FALSE) “TRUE” • contacts NMTOKENS #IMPLIED > Validation <CUSTOMER id=“C123” employer=“C200” points=“155” contacts=“Ringo Harrison” /> <CUSTOMER id=“C200” credit=“FALSE” />
경매 XML 문서 DTD <!ELEMENT AUCTIONBLOCK (ITEM)*> <!ELEMENT ITEM (TITLE,ARTIST,DIMENSIONS,MATERIALS,YEAR, DESCRIPTION,PREVIEW-SMALL,BIDS*,TIMESTAMP)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT ARTIST (#PCDATA)> <!ELEMENT DIMENSIONS (#PCDATA)> <!ELEMENT MATERIALS (#PCDATA)> <!ELEMENT YEAR (#PCDATA)> <!ELEMENT DESCRIPTION (#PCDATA)> <!ELEMENT PREVIEW-SMALL EMPTY> <!ATTLIST PREVIEW-SMALL src CDATA #REQUIRED width CDATA #IMPLIED height CDATA #IMPLIED alt CDATA #IMPLIED> <!ELEMENT BIDS (BID)*> <!ELEMENT BID (PRICE,TIME,BIDDER,TIMESTAMP)> <!ELEMENT PRICE (#PCDATA)> <!ELEMENT TIME (#PCDATA)> <!ELEMENT BIDDER (#PCDATA)> <!ELEMENT TIMESTAMP (#PCDATA)>
XML Schema DTD의 문제점 • XML 구조와는 다른 형태 • 이해하기 어려움 • 독자적인 처리 소프트웨어 필요 • 상속과 같은 객체지향 개념이 없음 • 이름공간 지원이 불가능 • 자료 유형을 정확히 표현하지 못함 • 반복 유형을 정확히 표현하지 못함 XML Schema DTD XML DTD Validation Validation Validation XML Schema 문서사례 XML 문서사례
XPath XPath란 XML 문서의 일부분을 지정하기 위한 표현방법 위치 경로는 상대경로와 절대경로 (/ + 상대경로) 로 표현 상대경로는 /로 구분된 하나 이상의 Step들로 구성됨 하나의 Step은 Axis,Node Test, Predicate 으로 구성됨 DOM Tree catalog Step Sample child::price[attribute::unit=“W”] book Node Test Axis Predicate 절대경로 price title Location Path Sample /catalog/book/* book/* ancestor::catalog/book unit “19000” “B2B EC @ XML” 상대경로 “W”
개념적인 XSL 변환 모델 XSL Formatting XSL Transformation 입력 XML 변환결과 XML 출력
XSLT Sample <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <HTML> <BODY> <TABLE border="1"> <TR style="font-size:12pt; font-family:Verdana; font-weight:bold; text-decoration:underline"> <TD>Price</TD> <TD>Time</TD> <TD>Bidder</TD> </TR> <xsl:for-each select="AUCTIONBLOCK/ITEM/BIDS/BID"> <xsl:sort select="BIDDER"> <TR> <TD>$<xsl:value-of select="PRICE"/></TD> <TD><xsl:value-of select="TIME"/></TD> <TD><xsl:value-of select="BIDDER"/></TD> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet>
DOM (Document Object Model) DOM Tree catalog.xml catalog <?xml version=”1.0”?> <catalog> <book> <title>B2B EC @ XML</title> <price unit="W">19000</price> </book> </catalog> book Parsing price title unit “19000” “B2B EC @ XML” “W”
HTML에서의 문서연결과 링크참조 a.html <HTML> <A href=”a.html”>there</A><BR> <P id=”First”>First</P><BR> <P id=”Second”>Second</P><BR> <P id=”Last”>Last</P><BR> </HTML> b.html <HTML> <A href=”a.html#First”>First</A><BR> <A href=”a.html#Second”>Second</A><BR> <A href=”a.html#Last”>Last</A><BR> </HTML>
XLink를 사용한 속성 정의 <!ELEMENT MyLink ANY> <!ATTLIST MyLink type (simple|extended|locator|arc|resource|title) ‘simple’ href CDATA #REQUIRED role NOTATION #IMPLIED title CDATA #IMPLIED show (embed|replace|new|undefined) #IMPLIED actuate (onLoad|onRequest|undefined) #IMPLIED from NOTATION #IMPLIED to NOTATION #IMPLIED >
XHTML • Bad HTML Pages and Web Browsers • XHTML • All the elements combined with the syntax of XML • Stricter and cleaner version of HTML 4.01 • Processed by all XML-enabled devices • Compatible with backward browsers <TITLE>Bad HTML <HEAD> <TITLE>This is really bad</TITLE> <BODY> <H1>BAD HTML EXAMPLE </BODY> Strong Browsers Weak Browsers
XHTML vs HTML • XHTML documents must be well-formed • <b><i>This text is bold and italic</i></b> • Tag names must be in lowercase • <html><body> <p>This is a paragraph</p> </body></html> • All XHTML elements must be closed • <p>This is a paragraph</p> • Empty Elements must also be closed • This is a break<br /> • This is a break too<br></br> • Attribute names must be in lower case • Attribute values must be quoted • <font color=“red”>…</font> • Attribute minimization is forbidden • The id attribute replaces the name attribute • <img src="picture.gif" id="picture1" /> • The xml:lang attribute must be added for each lang • <div lang=“kr" xml:lang=“kr">김형도!</div>
RDF Data Model • Basic Concepts: A Simple Frame System • Resources • Properties • Statements: Resources + Properties + Literals • Example Creator http://www.w3.org/Home/Lassila Ora Lassila <rdf:RDF> <rdf:Description about="http://www.w3.org/Home/Lassila"> <s:Creator>Ora Lassila</s:Creator> </rdf:Description> </rdf:RDF>
RDF Schema • Specifying • Classes of Resource Types, Property Types • Constraints on the Allowed Combinations • Core Classes: rdf:Resource, rdf:PropertyType, rdfs:Class • Core PropertyTypes: rdf:instanceOf, rdfs:subClassOf • Core Constraints • rdfs:ConstraintPropertyType, rdfs:range, rdfs:domain • Documentation: rdfs:comment, rdfs:label • Collections: rdfs:Collection, rdf:Bag, rdf:Seq, rdf:Alt Resource <rdf:RDF xml:lang="en" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdf:Description ID="MotorVehicle"> <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Description> <rdf:Description ID="Truck"> <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:subClassOf rdf:resource="#MotorVehicle"/> </rdf:Description> MotorVehicle Truck
xCBL 문서 집합 xCBL 3.0 기준 • 문서내용과 전송특성의 분리 • 모듈방식의 개발 • 잘 정립된 국제 표준의 활용 • ISO 8601 (날짜와시간), ISO 31 (측정), ISO 639 (언어), ISO 3166 (국가코드), ISO 4217 (화폐) • 확장성 • 제품과의 독립성
RosettaNet의 개발 대상 Telephone 전자상거래 응용 Business Process 전자상거래 프로세스 Dialog PIP Grammar Framework Words Dictionaries Alphabet HTML/XML Sound 인터넷
RosettaNet PIP 개발 프로세스 Business Process Modeling 목적: 현재 시스템 분석 출력: 현재의 공급체인 프로세스 Business Process Analysis 목적: 정렬 가능성 확인 출력: 가능한 프로세스, 가능한 PIP 리스트와 영향분석 Partner Interface Process (PIP) 목적: 전자상거래 인터페이스 제공 출력: XML문서 + 모델 + 검증도구 Dictionaries 목적: 공통 속성 제공 출력: 속성/값 Implementation Framework 목적: 공통 교환 틀 제공 출력: XML 프로토콜 DTD
RosettaNet 전자상거래 모델 Implementation Framework Dictionaries PIPs Message Processing Message Structure Non Repudiation Authentication Transport Transfer
<Item> <Qty>20</Qty> <Unit>DZ</Unit> <ItemNo>41358</ItemNo> <Description>Pencils</Description> <UnitPrice>9.55</UnitPrice> <TotalPrice>191.00</TotalPrice> </Item> XML/EDI 메시지 Understandable Exchangeable Insertable Validation
XML/EDI 아키텍쳐 웹서버 XML XML/EDI 문서 객체/프로세스/문서라우팅 EDI 웹브라우져 Integrated XML/EDI Business Process Objects 데이터 접근 U/I 형식 데이터 교환 데이터 I/F 객체 템플릿 관리 데이터 교환 포맷 글로벌 저장소 에이전트 프로세스템플릿 템플릿 저장소 EDI DTD’s Templates, Objects SQL/Xbase: Local Data Store Legacy Software 기존 응용
웹 서비스 • A programmable application component accessible via standard Web protocols How to Understand ? Web Service XML URL Agent XML How to Query? How to Publish? 회사B 회사A 등록저장소
웹 서비스 통신규약 구조 Universal Service Interoperability Protocols Web Service Description Language (WSDL) Universal Description, Discovery, and Integration (UDDI) Simple Object Access Protocol (SOAP) Extensible Markup Language (XML) 공통의 인터넷 통신규약 (HTTP, SMTP, TCP/IP)