'XML'에 해당되는 글 7

  1. 2009/01/09 XML Validation
  2. 2009/01/09 How can XML be used?
  3. 2009/01/08 What is Web service?
  4. 2008/11/24 [xml]XML 파일 읽어오기
  5. 2008/11/14 VoiceXML이란
  6. 2008/09/06 WSDL 이란(105)
  7. 2008/04/23 A Gentle Introduction to CCXML
2009/01/09 18:10 Voice Portal/Dialog Designer
크리에이티브 커먼즈 라이선스
Creative Commons License
"Well Formed" XML과 DTD에 대한 이야기다.
XML with correct syntax is "Well Formed" XML.
XML validated against a DTD is "Valid" XML.

Well Formed XML documents
"Well Formed" XML document는 correct XML syntax를 가진다.

Syntax rules
- XML document는 root element를 가진다.
- XML elements는 closing tag가 있어야 한다.
- XML tags는 case sensitive 하다.
- XML elements는 properly nested이어야 한다.
- XML attribute values는 quoted 되어야 한다.

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


Valid XML Documents
"Valid" XML document는 Document Type Definition(DTD)의 rules을 따르는 "Well Formed" XML documents를 말한다.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


XML DTD
DTD의 목적은 XML문서의 구조를 정의하기 위한 것이다.

<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>

XML Schema
W3C supports an XML based alternative to DTD called XML Schema

<xs:element name="note"><xs:complexType>
  <xs:sequence>
    <xs:element name="to"      type="xs:string"/>
    <xs:element name="from"    type="xs:string"/>
    <xs:element name="heading" type="xs:string"/>
    <xs:element name="body"    type="xs:string"/>
  </xs:sequence>
</xs:complexType>
</xs:element>

A General XML Validator
XML files의 문법 체크를 도와주기 위하여, XML validator가 있다.
자신이 작성한 XML 소스나 XML파일의 validation을 확인 할 수 있다.


참고 사이트 : w3school












'Voice Portal > Dialog Designer' 카테고리의 다른 글

[eclipse] Workspace Unavailable  (0) 2009/03/11
[eclipse]JVM terminated. Exit code=-1  (0) 2009/03/05
XML Validation  (0) 2009/01/09
How can XML be used?  (0) 2009/01/09
vxml+ccxml can make a call.  (0) 2008/12/03
[java] Javadoc 사용  (0) 2008/11/28
posted by 조금까칠한남자
2009/01/09 16:29 Voice Portal/Dialog Designer
크리에이티브 커먼즈 라이선스
Creative Commons License
아래 글을 읽으면 왜 xml을 사용해야 하는지 느낌이 팍 올 것 같다.
지금 XML을 공부하고 있다면, 왜 XML을 많은 사람들이 사용하는지를 먼저 알아 보는게 좋을 것 같다.

1. XML separates data from HTML.
만약 HTML에서 dynamic data를 보여줄 일이 있을 때, data가 변할 때마다, HTML을 수정해야한다. 그러나. XML을 이용하여 data를 XML파일에 저장한다면, HTML은 layout이나 display에만 신경 쓰고 data는 XML이 신경써주면된다.

2. XML simplifies data sharing
XML data는 text format형식으로 저장되기 때문에, software든 hardware든 서로 독립적인 방식으로 data를 공유할 수 있다. 이것은 서로 다른 application에서 data를 더 쉽게 공유할 수 있게 해준다.

3. XML simplifies data transport
XML은 호환성이 없는 이기종 간의 data 교환을 쉽게 할 수 있도록 해준다.
개발중에 가장 많이 시간을 낭비하는 것 중에 하나는 호환성이 없는 두 시스템간에 data를 교환하는 것이다. XML을 이용하면 이 작업을 간소화할 수 있다.

4. XML simplifies platform changes
software든 hardware든 새로운 시스템으로 업그레이드 할 때는 많은 시간을 소비한다. 엄청난 양의 데이터는 converte되어야만 하고, 호환되지 않는 data는 lost된다. XML data는 text format으로 저장이 되기 때문에, data 누락없이 새로운 시스템으로 확장하거나 업그레이드 할 수 있다.

5. XML makes your data more available
XML이 hardware, software 와 application에 독립적인 이유로, XML은 당신의 data를 더 유용하고 이용가능하게 만들어 준다. 서로 다른 applications은 HTML page에 있는 당신의 data뿐만 아니라, XML data source에도 접근 할 수 있다. XML을 가지고 당신의 data는 모든 "reading machines"에 이용이 가능하다.

6. XML is used to create new internet languages
A lot of new Internet languages are created with XML.

여기 몇가지 예를 들겠다.

 XHTMLthe lastest version of HTML
 WSDLdescribing available web services
 WAP and WML
 markup languages for handheld devices
 RSS language for news feeds
 RDF and OWL
 describing resources and ontology
 SMIL
 describing multimedia for the web

정리를 하면,

If developers do have sense, future applications will exchange their data in XML.

'Voice Portal > Dialog Designer' 카테고리의 다른 글

[eclipse]JVM terminated. Exit code=-1  (0) 2009/03/05
XML Validation  (0) 2009/01/09
How can XML be used?  (0) 2009/01/09
vxml+ccxml can make a call.  (0) 2008/12/03
[java] Javadoc 사용  (0) 2008/11/28
[log4j]DailyRollingFileAppender의 DatePattern 옵션  (0) 2008/11/28
posted by 조금까칠한남자
TAG owl, RDF, RSS, SMIL, WAP, WML, WSDL, xhtml, xml
2009/01/08 10:37 Voice Portal/WAS
크리에이티브 커먼즈 라이선스
Creative Commons License
Web service에 대한 훌륭한 설명이다 ㅎ
아 근데 어디서 가지고 온지 모르겠다... 죄송합니다 ^_______^

web service는 인터넷 상에서 URI로 구분되는 소프트웨어입니다.
이 소프트웨어에서 제공되는 서비스는 XML로 기술된 인터페이스로 정의되어야 하고(WSDL),
이 서비스 정의는 다른 소프트웨어에 의해 검색될 수 있어야 합니다. (UDDI)
이 소프트웨어는 XML message를 통해 인터넷 상의 프로토콜(SOAP)을 통해 호출됩니다.


자 이제 여기서 가지를 펴나가 보자!!

웹 서비스란 무엇인가??

"XML"과 "인터넷 프로토콜"을 통해 "표준화된 방식으로 상호 작용"하는 것이라 볼 수 있는데, 이것은 새로운 기술이기 보다는 기존의 기술들을 새로운 개념으로 적용하는 방법론을 의미한다.

 

웹 서비스 구성 요소와 동작과정을 살펴보면은, 구성요소로는 크게 3가지가 있다.

1. 서비스 제공자

2. 서비스 중개자(UDDI 레지스트리)

3. 서비스 요청자

 

서비스 제공자는 제공하려는 서비스에 대한 정보를 서비스 중개자의 UDDI 레지스트리에 등록(publishing)한다. 서비스 요청자는 자신이 원하는 서비스를 누가 제공하는지 서비스 중개자의 UDDI 레지스트리에서 서비스를 검색(Searching)한다. 서비스 요청자는 서비스 제공자의 WSDL파일을 다운로드 한 후, 서비스의 인터페이스에 맞게 작성한 후에 SOAP를 이용하여 서비스를 요청하고 그 것에 대한 서비스를 받는다.

 

UDDI/SOAP/WSDL이 무엇인지 알아보자.

UDDI

UDDI는 Universial Description, Discovery and Integration의 약자이며, 간단히 설명을 하자면 웹 서비스 검색 및 분류를 위한 것이다. 즉, 인터넷 상의 전 세계 비즈니스 목록에 자신을 등재하기 위한 XML 기반의 레지스트리이다. 이것의 궁극적인 목표는 각 기업들이 웹 상에서 서로를 찾을 수 있도록 함으로써 온라인 트랜잭션을 간략하게 하기 위함이다.

terms에서 말하는 UDDI


제공하는 서비스를 기술(Description)하고, 필요한 서비스를 검색(Discovery)하며, 서비스들을 통합(Integration)함으로써 웹 서비스를 수행하는 핵심 기반 기술.

 

 

SOAP

SOAP는 Simple Object Access Protocol의 약자로써 XML을 기반으로 분산환경에서 정보를 교환하기 위한 통신 프로토콜이다.

SOAP의 가장 중요한 개념은 메시지를 전달할 때, XML을 사용한다는 점이며, SOAP는 프로그래밍 언어에 상관없이 작성 가능하다. 또 개발자는 XML을 숙지할 필요가 없으며, 어느 환경에도 상관없이 동작할 수 있는 상호 운영성을 제공한다.

SOAP Envelope : 최상위 구성 요소로 SOAP헤더와 SOAP 바디 구성 요소를 포함

SOAP Header : Application간에 메시지를 주고 받을 때 포함되는 추가 정보

SOAP Body : Application간에 교환되어야 하는 메시지. xml 문서.

 

WSDL

WSDL은 Web Services Description Language의 약자이며, 웹 서비스 이용자가 쉽고 빠르게 웹 서비스와 연동할 수 있도록 각각의 웹 서비스의 인터페이스에 관한 정보를 표준화된 방식으로 기술하기 위한 표준화된 XML 문서형식이다.

 

간단히 예를 들어보면은, 회사에서 경비를 청구하기 위해서

1. 재무팀에서 제공하는 경비 청구 문서를 받아야 한다.

2. 경비 청구 문서의 빈칸을 알맞게 채운다.

3. 재무팀에 작성한 경비 청구 문서를 보낸다.

4. 경비 청구 문서를 받은 재무팀은 제대로 빈칸을 채웠는지 확인하고, 돈을 준다.


'Voice Portal > WAS' 카테고리의 다른 글

[tomcat] Persistent Session Manager - 끊기지 않는 세션  (0) 2009/07/27
tomcat 6.0 설정  (0) 2009/03/18
What is Web service?  (0) 2009/01/08
[log4j] log4j:ERROR  (0) 2008/12/09
[tomcat] tomcat 6.0 migration guide  (0) 2008/12/08
[log4j] log4j:ERROR LogMananger.repositorySelector  (0) 2008/12/05
posted by 조금까칠한남자
2008/11/24 17:04 Voice Portal/Dialog Designer
크리에이티브 커먼즈 라이선스
Creative Commons License
properties파일을 이용하는 것보다 xml파일을 이용하여 개발 환경을 설정하는게 더 괜찮아서 자료를 한번 찾아보았다.
그런데....xml파일을 생성하는 자료는 많은데 읽어오는 자료가 이렇게 없을 수가..
어찌하였든 검색을 하여 되는 것을 찾아서 테스트를 해봤는데 -0-;;
이거 좀 이상하다...
되기는 되는데;;
뭔가 불편하고... jdom스럽지 않고...
암튼 좀 개선해봐야겠따..

environment.xml 파일
<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : environment.xml
    Created on : 2008년 11월 24일 (월), 오후 2:37
    Author     : Administrator
    Description:
        Purpose of the document follows.
-->

<root>
    <server>
        <serverip>10.1.12.1xx</serverip>
        <serverport>2345</serverport>
    </server>
</root>

GetXML.java
public class GetXML {
    public GetXML(){
      Document doc;
      String xml=".\\data\\environment.xml";       
      try {
       DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
       DocumentBuilder builder = factory.newDocumentBuilder();

       doc = builder.parse(new File(xml));

       Element root = doc.getDocumentElement();

       NodeList n = root.getElementsByTagName("serverip");                                 
       String serverip = ((Element)n.item(0)).getFirstChild().getNodeValue();      
       System.out.println(serverip);
       n = root.getElementsByTagName("serverport");
       String serverport = ((Element)n.item(0)).getFirstChild().getNodeValue();      
       System.out.println(serverport);
      
      }catch(Exception ex){
       ex.printStackTrace();
      }                
    }
}


'Voice Portal > Dialog Designer' 카테고리의 다른 글

[log4j]DailyRollingFileAppender의 DatePattern 옵션  (0) 2008/11/28
/conf/Catalina/localhost의 xml파일  (0) 2008/11/26
[xml]XML 파일 읽어오기  (0) 2008/11/24
XML 관련 심플 예제  (0) 2008/11/24
VoiceXML이란  (0) 2008/11/14
[SVN] Section header expected  (0) 2008/11/08
posted by 조금까칠한남자
TAG Java, JDOM, Reading, SAX, xml
2008/11/14 11:23 Voice Portal/Dialog Designer
크리에이티브 커먼즈 라이선스
Creative Commons License
예전에 한번 정리를 했었는데 솔직히 나도 이해가 가지 않았다.
정리라기 보다는... 흠...
그냥 번역정도...

간단히 VoiceXML이란 무엇인지 확인해보자.

VoiceXML is designed for creating audio dialogs that feature synthesized speech, digitized audio, recognition of spoken and DTMF key input, recording of spoken input, telephony, and mixed-initiative conversations. Its major goal is to bring the advantages of Web-based development and content delivery to interactive voice response applications.

From Webopedia

VXML, or VoiceXML, technology allows a user to interact with the Internet through voice-recognition technology. Instead of a traditional browser that relies on a combination of HTML and keyboard and mouse, VXML relies on a voice browser and/or the telephone. Using VXML, the user interacts with voice browser by listening to audio output that is either pre-recorded or computer-synthesized and submitting audio input through the user's natural speaking voice or through a keypad, such as a telephone.


아핫.. 이런게 audio dialog의 특징들이구나..
흠.. 중간에 이런 설명이 있다.

"recognition of spoken and DTMF key input , recording of spoken input"

우쒸;; DTMF입력도 vxml이 처리하나보다...하앜하앜..
나는 vxml은 output관련된 일만 처리하는 줄 알았는데...
input에 대한 처리도 해주나부다..
예전에도 이 자료를 읽었었는데 그 때는 기초지식 조차 없어서 그냥 넘어갔나봥..ㅠㅜ


일단 지금은 교육 자료를 정리해야 하므로 소스 분석은 나중에 해보자.


참고자료:
http://www.voxeo.com/library/voicexml.jsp








'Voice Portal > Dialog Designer' 카테고리의 다른 글

[xml]XML 파일 읽어오기  (0) 2008/11/24
XML 관련 심플 예제  (0) 2008/11/24
VoiceXML이란  (0) 2008/11/14
[SVN] Section header expected  (0) 2008/11/08
[SVN] Option expected  (4) 2008/11/08
[SVN] svn: No repository found  (0) 2008/11/08
posted by 조금까칠한남자
2008/09/06 03:01 Voice Portal/Dialog Designer
크리에이티브 커먼즈 라이선스
Creative Commons License

WSDL(Web Service Description Language)

1. WSDL 정의
WSDL
표준화된 방식으로 서비스의 인터페이스를 기술하는 XML 기술이다. WSDL 서비스가 호출된 입출력 변수, 함수 구조, 호출의 성질(in only, in/out), 서비스 프로토콜 바인딩을 외부에 표시하는 방식을 표준화한다. WSDL 서로 다른 클라이언트가 서비스를 통해 상호작용하는 방식을 파악하게 해준다.

2. WSDL
특징
-
네트워크 서비스를 기술하기 위한 XML 포맷
-
서비스 제공자가 공개한 인터페이스를 호출하는 방법 설명
- UDDI
저장소에 WSDL 참조가 저장
- CORBA
COM IDL(Interface Definition Lanugage) 유사함

이해를 팍팍 도와주는 간단한 ..

WSDL
간단히 설명하면 서비스 제공자와 서비스를 받는 사람과의 language 또는 약속이라고 생각하면 된다.

"
서비스야 나는 이런 서비스를 받고 싶다. 그러면 어떻게 해야하냐?? "라고 서비스에게 물어보면은 서비스는 "내가 서비스 요청하는 방법(WSDL) 알려줄게 이렇게 준비해서 나한테 보내라~" 라고 합니다. 그럼 나는 서비스가 방법(WSDL) 보고 그것에 맞게 준비를 해서 보내는 것입니다. 그럼 서비스는 이늠시키가 제대로 준비했는지 확인 후에 관련된 서비스를 제공해주는 것입니다.

서비스라고 하니까 거창하기는 하지만... 간단한 결과 값을 얻는 것도 서비스라고 있습니다.

이해를 돕기 위해서 간단하게 설명 드리겠습니다.

서비스는 어떤 2개의 값을 더하는 서비스를 제공하고 있습니다.

public int plus( int a, int b){
return a+b;
}

그리고 서비스를 제공하기 위해서 이와 관련된 WSDL파일을 만들어 놓습니다.

WSDL
에는 여러 가지 정보가 있겠지만 파라미터(int a, int b) 대한 정보도 있습니다. 그런 저는 WSDL파일을 보고 파라미터로 사용할 2개의 값을 서비스 제공자에게 보내줍니다. 그럼 서비스 제공자는 2개의 값을 가지고 plus라는 메소드를 이용해서  return 값을 돌려 줍니다. 이것이 서비스이며...이게 바로 WSDL 역할인 같다.... 같다.... 같다....., 생각이다...


SOAP, WSDL, UDDI
간의 관계는 다음과 같이 설명할 있다.

1.
웹서비스 클라이언트 역할을 하는 애플리케이션은 네트워크 어딘가에 있을 다른 애플리케이션이나 비즈니스 로직의 위치를 알아내야 한다.
2.
클라이언트는 이름별, 카테고리별, 식별 기호별 혹은 지원 규격별 서비스를 위해 UDDI 레지스트리를 조회한다.
3.
일단 위치를 파악하고 나면 클라이언트는 UDDI 레지스트리로부터 WSDL 문서의 위치 정보를 얻는다.
4. WSDL
문서에는 서비스 접속 방법과 XML스키마 내의 요청 메시지 형식에 대한 정보를 포함한다.
5.
클라이언트는 WSDL 있는 XML 스키마에 따라 SOAP메시지를 생성하고, 호스트(서비스가 있는 ) 요청을 보낸다.

 

 

'Voice Portal > Dialog Designer' 카테고리의 다른 글

[SVN] Option expected  (4) 2008/11/08
[SVN] svn: No repository found  (0) 2008/11/08
WSDL 이란  (105) 2008/09/06
Dialog Designer에서 사용하는 클래스 상속 관계  (0) 2008/08/08
Java Heap space  (0) 2008/08/03
Dialog Designer없이 소스로 Variable 생성하는 법  (0) 2008/07/29
posted by 조금까칠한남자
2008/04/23 16:46 Voice Portal/Dialog Designer
크리에이티브 커먼즈 라이선스
Creative Commons License
CCXML Concepts

CCXML은 event-driven을 하게 끔 appications을  build 할 수 있게 해준다. 즉, external events(like call control events) 는 CCXML application에 의해 'caught'되어 질 것이다. 그럼 CCXML application은 각기 다른 액션을 취할 것이다. 그리고 아마도 CCXML session의 상태를 바꿀 것이다. CCXML environment에 의하여 application에서의 전체 상태는 유지될 것이다.
- Create and destory conferences
- Create, destory, and interact with dialogs(for example, a VoiceXML session)
- Accept, merge, redirect, and reject calls
- Join calls to conferences, dialogs, and each other
- Create and interact with other CCXML session
- Interact with the outside wold using HTTP

CCXML Platform는 call control signaling을 이용하여 이런 모든 것들(아래 diagram상에서 dashed line)을 관리할 것이다.(i.e. Session Initiation Protocol(SIP)). CCXML은 실제로 'media'를 다루지 않는다.(i.e. voice and video) CCXML은 call signaling만 다루며 이 call signaling을 다른 'endpoints'와 연결하기 위하여 'media channel'을 이동시키기 위해서 사용할 것이다. CCXML은 다른 components의 능력에 의존적이다. - like dialog(VoiceXML) platform과 conference server.

아래 diagram을 보면 CCXML platform은 multiple CCXML sessions을 다르고 있다. CCXML session은 Web application server로부터 받은 CCXML document 를 실행시킨다. CCXML application은 서로 다른 endpoints들 사이에서 media channels을 관리하기 위하여 SIP signaling을 이용한다. dialog는 VoiceXML platform상에서 돌아가는 VoiceXML dialog를 말한다. Connection은 telephone network로부터 온 call을 말하며 Conference는 다른 채널의 audio를 mixing하는 mixing element를 말한다.

사용자 삽입 이미지





















CCXML applicationss are concerned with different kinds of entities as compared to VoiceXML applications. Within a VoiceXML application, we worry about a session, or dialog, which represents a 'call'. A VoiceXML application is driven by caller interaction, and the VoiceXML. Form Interpretation Algorithm(which controls how a VoiceXML platform collects infromation from the caller)

CCXML에서 우리는 call control과 signaling과 관련된 elements들에 신경을 쓴다. 이런 것들은 events로 전달되어지고, 우리가 core CCXML entities를 관리할 수 있게 해준다.

- Session: CCXML Session은 'owns' connections, conferences and dialogs인 context이다.
- Connections: Connections은 서로 다른 endpoints들 사이에 존재하는 calls이다. 예를 들어, PSTN user와 VoiceXML platform.
- Conferences: Conferences는 서로 다른 endpoints로부터 media의 mixing이라 말한다.
- Dialogs: Dialog는 전통적인 Interactive Voice Response(IVR) systems을 사용하여 구현되어지고 관리되어지는 VoiceXML applications나 dialogs같은 것들을 포함한다.

그러므로  CCXML은 위의 diagram에 있는 dashed line을 creating, moving과 destroying하는 것을 주로 한다.
posted by 조금까칠한남자
prev 1 next