2014-11-21 64 views
1

背景信息: 正在工作的組織使用Java,Oracle ADF框架,Oracle db/weblogic服務器堆棧。如何構建同一Web應用程序的聯機和脫機版本

新要求 我有一個新項目的棘手要求,使我正在建設離線工作的Web應用程序。按照要求,用戶應該能夠在「在線」模式下點擊「脫機工作」按鈕,並且能夠將應用/或頁面的本地副本獲取到他們的設備。

一旦用戶在下載到本地設備的應用程序的離線版本中完成數據輸入,用戶應該能夠點擊「提交」按鈕並上傳本地詳細信息到服務器(即。到主要的生產服務器,並且在有互聯網連接時完成)。

解決方案正在試圖着手如下:

  1. 我建立一個std Web應用程序在生產線上模式下工作。 它將使用ADF或/ JSF和Oracle數據庫。
  2. 我將爲脫機模式構建一個簡單的應用程序,它將重用 爲在線模式開發的大部分頁面。但數據庫使用 將是一個像hsqldb輕量級的。整個應用程序 將與像jetty這樣的輕量級服務器捆綁在一起。
  3. 整個離線應用程序和服務器將捆綁在一起作爲 一個可執行的jar,可以從任何設備下載和運行。
  4. 該應用程序的本地離線版本將有一個「提交」按鈕。 而上單擊此按鈕時,有互聯網conectivity然後 我們會作出一個Web服務調用到生產服務器,並 數據收集

我的問題提交:

  1. 將我的建議解決方案? ...有一個更好的方法嗎?
  2. hsqldb是離線模式下最輕量級的嵌入式數據庫嗎?
  3. Jetty是一款不錯的輕量級嵌入式網絡服務器嗎?...有更好的 嗎?
  4. 能可執行的JAR可以在任何設備上像 MAC,IOS,Linux的機器人,窗口等
+0

我不確定ADF是否由Jetty支持。在Oracle堆棧外使用Oracle產品通常是一場噩夢。 Oracle ADF不適合這種要求。瞭解HTML5如何處理離線模式。在您的架構中,您錯過了同步策略。是否有理由擁有離線模式? – Sydney 2014-11-21 20:30:51

+0

如果jetty不支持ADF,那麼我可以嘗試使用HTML5/servlet或JSP或JSF。組織希望其員工可以將他們的設備連接到沒有連接並且沒有工作的偏遠地區。在用戶以離線模式嚮應用程序鍵入數據後,用戶可以嘗試上傳坐在本地數據庫中的數據,可以通過SOAP webservice或REST服務與prodserver同步 – user1455719 2014-11-21 21:48:51

回答

2

的方法,我都遵循如下:

  1. 我建我的網頁UI與 正常HTML5頁面內angularjs和託管它在我的WebLogic Server上。
  2. 我爲html頁面寫了一個appcache.manifest文件,該文件描述了應用程序使用的所有的 css/js/image文件。因此,如果頁面 曾被加載到瀏覽器上,那麼該頁面將被緩存在 瀏覽器上。
  3. 我創建了寧靜的服務,用於將數據從 服務器交換到我的html頁面。數據以json格式傳遞,我使用AES加密對json有效負載進行加密 。在客戶端,我用 cryptojs庫來解密其餘服務提供的數據。 how does cryptojs works
  4. 我用pouchdb JavaScript庫用於在瀏覽器數據庫存儲由 用戶提供的數據在本地到(在鉻和Firefox的情況下pouchdb數據存儲到索引資料,它存儲數據到webSQLDB在Safari和其他brwosers的情況下) 。
相關問題