6/03/2011

Java 異質系統整合

最近幫了某家線上音樂公司開發音樂自動化轉檔需求,其中之一功能需求來至四面八方唱片業所倒檔過來資料{xml, music files}。當然系統內部已經有自已統一介面 (interface)去接來至外面倒檔,但是如何處理煩雜的來源?

整理實作問題

  1. 每家XML似乎都是不同的格式,其中有幾家有使用DDEX( Digital Data Exchange)
  2. 每家XML內容龐大
  3. 如何花最小成本開發 (資源極有限)
  4. 日後好維護前提(Orz)

選擇方案

  1. XML Parser
  2. 不管用什麼方法都是累,要摘錄資訊真的太多!

  3. Java Architecture for XML Binding (JAXB)
  4. 想法 XML <-> Binding (Schema) <-> Java

    Sun JAXB

初步實作細節

  1. XML Binding
  2. [code lang="java"] xjc工具可以把schema 自動產生對應java類別 xjc ddex.xsd [/code]

    xjc 有些物件產生並不如預期,只能硬改所產生Code

  3. Transform to java object
  4. [code lang="java"] JAXBContext jc = JAXBContext.newInstance("net.ddex.xml._2010.ern_main._32"); Unmarshaller u = jc.createUnmarshaller(); return (NewReleaseMessage) u.unmarshal(inputStream); [/code]
  5. to business domain
  6. [code lang="java"] 轉換內部系統business domain [/code]

目前架構已經上線了,維護及開發都滿符合預期。

No comments:

Post a Comment