亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        交互流建模語言到PHP開發(fā)環(huán)境的映射

        2019-12-11 01:27:50曹榮凱劉曉燕李丹丹吉春山
        關(guān)鍵詞:服務(wù)器端應(yīng)用程序頁面

        曹榮凱,劉曉燕*,李丹丹,吉春山

        (1.昆明理工大學(xué) 信息工程與自動化學(xué)院, 云南 昆明 650500;2.金川鎳鉆研究設(shè)計院, 甘肅 金昌 737100)

        現(xiàn)今,通過建模方法來實現(xiàn)復(fù)雜的Web應(yīng)用已經(jīng)處于比較重要的位置,許多研究者結(jié)合實踐經(jīng)驗,針對不同的建模方法提出了獨到的映射方法。交互流建模語言(Interaction Flow Modeling Language,IFML)是一種基于圖形化平臺的獨立建模語言,為了更好地對Web應(yīng)用建模,WebRatio公司(http://www.webratio.com)推出了WebRatio工具用于Web應(yīng)用程序的模型驅(qū)動開發(fā),為解決復(fù)雜的Web前端應(yīng)用提供了一個相對完整的方案[1-4]。

        PHP+MySQL是開發(fā)Web應(yīng)用程序的經(jīng)典組合,具有開放源代碼、可以免費下載使用和支持多種操作系統(tǒng)平臺等特點,具有很強(qiáng)的實用性,被國內(nèi)外眾多網(wǎng)站廣泛采用。

        目前國內(nèi)應(yīng)用IFML建模方法來開發(fā)復(fù)雜前端交互的Web應(yīng)用程序的相關(guān)研究非常少,為解決把IFML建模模型平滑過渡到PHP開發(fā)環(huán)境中,本文提出了從IFML模型映射到該開發(fā)環(huán)境的方法,以解決兩個高層開發(fā)環(huán)境下的映射。

        1 IFML模型簡介

        IFML元模型的元素分為3個包:核心包、擴(kuò)展包和數(shù)據(jù)類型包[5-6]。核心包中包含創(chuàng)建用戶交互組件的核心元素如下:

        (1)View Container(視圖容器)是界面的一個元素,包含要顯示的內(nèi)容和支持的交互;

        (2)View Component(視圖組件)是顯示內(nèi)容或接受輸入的界面元素;

        (3)Event(事件)是影響應(yīng)用程序狀態(tài)的事件;

        (4)Action(行為)是由事件觸發(fā)的業(yè)務(wù)邏輯;

        (5)Navigation Flow(導(dǎo)航流)是輸入輸出的介質(zhì),鏈接源傳輸一些與鏈接目標(biāo)相關(guān)的信息;

        (6)Data Flow(數(shù)據(jù)流)是作為先前用戶交互的結(jié)果,在View Components或Action之間傳遞數(shù)據(jù);

        (7)Parameter Binding Group(參數(shù)綁定組)是Parameter Binding的集合,用來表示參數(shù)之間的依賴關(guān)系,即輸入?yún)?shù)和輸出參數(shù)之間的傳遞。

        1.1 核心元素之間的連接關(guān)系

        View Container由一個或多個View Container組成,他們分別用于表示W(wǎng)eb應(yīng)用程序和桌面應(yīng)用程序中的Web頁面和窗口。而一個View Container可以包含一個或多個View Components。

        View Components包含要顯示的數(shù)據(jù)類型,即包含在IFML元模型的擴(kuò)展包中的表單、列表或詳細(xì)信息。輸入和輸出參數(shù)可以與View Components相關(guān)聯(lián),也就是與Parameter Binding Group關(guān)系密切。Data Binding是View Component的一部分,表示域模型元素和View Component之間的關(guān)系。

        Event用于表示View Containers和View Components之間的交互,會使源頁面和目標(biāo)頁面之間進(jìn)行跳轉(zhuǎn)。

        Interaction Flow表示用于連接View Components和View Containers的事件的效果,描述了界面狀態(tài)的變化。IFML中的交互流有兩種類型,即數(shù)據(jù)流和導(dǎo)航流。數(shù)據(jù)流表示由虛線表示的兩個IFML元素之間的數(shù)據(jù)傳輸,而不是由用戶交互引起的;導(dǎo)航流表示由實線表示的組件和容器之間的導(dǎo)航。

        1.2 IFML可視化語法

        IFML提供了一種獨特的、簡明的圖像符號來表示用戶界面各個方面的功能,其模型符號及到PHP的具體約束如表1所示。

        表1IFML模型符號及到PHP代碼定義

        2 PHP簡介

        鑒于IFML的平臺獨立性,可以針對支持用戶交互的任何軟件架構(gòu)來實現(xiàn)。PHP和MySQL代表了最廣泛的網(wǎng)站開發(fā)平臺,托管在所謂的WAMP(Windows,Apache,MySQL,PHP)環(huán)境中。

        PHP腳本可放置于文檔中的任何位置,以 結(jié)尾;PHP 文件的默認(rèn)文件擴(kuò)展名是“.php”,它通常包含HTML標(biāo)簽以及一些PHP腳本代碼;PHP語句以分號結(jié)尾,PHP 代碼塊的關(guān)閉標(biāo)簽也會自動表明分號(因此在PHP代碼塊的最后一行不必使用分號)。

        從IFML模型到PHP所在環(huán)境的映射存在以下難點:

        (1)IFML核心模型過于籠統(tǒng),會出現(xiàn)一種模型對應(yīng)到多種PHP代碼的情況;

        (2)對于一種模型對應(yīng)多種PHP代碼的情況,要根據(jù)具體情況具體分析,會產(chǎn)生分歧;

        (3)PHP模板的建立存在難度,需要適應(yīng)各類需求。

        3 IFML模型映射到PHP開發(fā)環(huán)境的策略

        IFML提供了一組圖形表達(dá)的符號以及映射到不同開發(fā)環(huán)境的機(jī)制,且已經(jīng)有相應(yīng)的工具軟件WebRatio來支持它[7]。

        3.1 映射規(guī)則

        考慮IFML的主要建模元素到PHP開發(fā)環(huán)境建立的映射關(guān)系[8-9]。映射規(guī)則如下:

        (1)View Container映射到PHP開發(fā)環(huán)境即為一個PHP頁面模版。

        (2)Event包括Select Event和Submit Event,相應(yīng)的Select Event 映射到PHP開發(fā)環(huán)境為HTTP獲取請求;Submit Event映射到PHP開發(fā)環(huán)境為HPPT發(fā)布請求。

        (3)Navigation Flow映射到PHP開發(fā)環(huán)境為HTML超鏈接或按鈕。

        (4)Data Flow映射到PHP開發(fā)環(huán)境為請求參數(shù)傳輸?shù)讲樵兂鼋Y(jié)果或其他的頁面。

        (5)Action映射到PHP開發(fā)環(huán)境為PHP腳本。

        (6)Parameter Binding Group映射到PHP開發(fā)環(huán)境也為請求參數(shù)傳輸?shù)讲樵兂鼋Y(jié)果或其他的頁面。

        3.2 IFML模型映射的實現(xiàn)步驟

        動態(tài)網(wǎng)站是一種交互式應(yīng)用程序,其前端允許用戶瀏覽從數(shù)據(jù)庫中動態(tài)提取的內(nèi)容,并執(zhí)行上傳內(nèi)容和下載內(nèi)容。在最簡單的情況下,用戶瀏覽的界面由純HTML文檔組成,由服務(wù)器端程序動態(tài)生成。

        用于說明純HTML Web開發(fā)的示例性平臺,采用PHP服務(wù)器端腳本語言,該語言本地耦合到MySQL關(guān)系數(shù)據(jù)庫。

        3.2.1 View Container映射步驟

        PHP Web站點的典型結(jié)構(gòu)是由多個頁面組成,并且在IFML中對應(yīng)于一組獨立且相互關(guān)聯(lián)的View Container,包括用于動態(tài)數(shù)據(jù)發(fā)布和數(shù)據(jù)輸入的View Components。View Container是由用戶觸發(fā),用戶將HTTP請求發(fā)送到托管應(yīng)用程序的服務(wù)器,服務(wù)器響應(yīng)用戶的請求,然后根據(jù)圖1所示的執(zhí)行步驟處理動態(tài)頁面。

        圖1 IFML模型

        IFML View Containers和View Components到PHP的轉(zhuǎn)換產(chǎn)生了動態(tài)頁面,其結(jié)構(gòu)如下:

        第一步,從HTTP請求中提取用于計算View Components的參數(shù)。第二步,解決與數(shù)據(jù)庫的連接,初步執(zhí)行獲取View Components內(nèi)容所需的數(shù)據(jù)綁定查詢。第三步,HTTP請求中的特定參數(shù)根據(jù)View Container的訪問方式處理所有可計算的View Components。首先,通過檢查請求參數(shù)值的合適條件語句確定最初可計算的View Components,并評估View Components數(shù)據(jù)綁定查詢。此類查詢的輸出用作執(zhí)行其他相關(guān)View Components查詢的輸入。其次,還需要解決由多個備用輸入?yún)?shù)值的View Components引起的沖突,這需要進(jìn)一步的條件語句,根據(jù)所選擇的決策策略區(qū)分最具體的值。最后,已經(jīng)執(zhí)行了可計算View Components的所有數(shù)據(jù)綁定查詢,并且將結(jié)果存儲在適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)中,從中提取其以生成HTML標(biāo)記的動態(tài)部分。第四步構(gòu)建每個View Component的HTML內(nèi)容,將動態(tài)生成的內(nèi)容與靜態(tài)HTML標(biāo)記混合,以實現(xiàn)所需的頁面布局。最后一步,處理前幾個階段中使用的臨時對象。

        3.2.2 Event和Navigation Flows的實現(xiàn)

        Event可以與View Containers和View Components相關(guān)聯(lián),以表示他們之間支持用戶交互。事件的效果則由Navigation Flows表示,該Navigation Flow將Event連接到受其影響的View Container或View Component。Navigation Flow表示為箭頭,將與View Element相關(guān)聯(lián)的事件連接到目標(biāo)View Element。Navigation Flows指定用戶界面的狀態(tài)變化:在計算其內(nèi)容之后,引入Navigation Flows的目標(biāo)View Element;根據(jù)接口的結(jié)構(gòu),Navigation Flow的目標(biāo)View Element可能會保持視圖狀態(tài)或切換到其他視圖狀態(tài)。

        3.2.3 Action的實現(xiàn)步驟

        IFML不會對Actions的內(nèi)部組織建模,而只會模擬他們與用戶界面的相互作用。在PHP純HTML體系結(jié)構(gòu)中,Actions由服務(wù)器端腳本實現(xiàn),服務(wù)器端腳本可以通過合適的API訪問外部系統(tǒng)。

        Action的實現(xiàn)涉及如何實現(xiàn)業(yè)務(wù)邏輯以及如何實現(xiàn)激活它的Event和Navigation Flow。在PHP中,Actions通過服務(wù)器端腳本實現(xiàn)步驟如下:

        第一步,處理請求參數(shù)提取。從要在執(zhí)行業(yè)務(wù)操作的請求中提取由Navigation Flow傳輸?shù)膮?shù)。

        第二步,業(yè)務(wù)邏輯的執(zhí)行。如果Action包含單個操作,則腳本只需使用輸入?yún)?shù)初始化組件,執(zhí)行它并檢查結(jié)果以確定是否正?;虍惓6K止事件。如果Action包含一系列操作,則腳本必須以正確的順序解決操作之間的參數(shù)傳遞。

        第三步,在操作的Navigation Flow上將信息傳送到目標(biāo),顯示結(jié)果頁面。

        4 IFML模型映射舉例說明

        為了說明映射方法的可行性,我們以網(wǎng)上銷售系統(tǒng)中的部分功能為例。該應(yīng)用系統(tǒng)的主要功能為用戶可以在該網(wǎng)站上瀏覽購買商品,管理員可以管理用戶商品,發(fā)布關(guān)于商品的新聞消息等。

        圖1為用戶在選擇商品時所產(chǎn)生的事件與數(shù)據(jù)流傳輸?shù)腎FML模型。與Select Category事件關(guān)聯(lián)的Navigation Flow將View Component Category List與目標(biāo)View Component Product List連接起來,當(dāng)事件發(fā)生時,先計算目標(biāo)View Component的內(nèi)容以顯示所選類別的產(chǎn)品列表;觸發(fā)Select Category事件將會使Product Of Category View Container顯示新的頁面來替換Product Category View Container。Category List和Product List之間的輸入輸出依賴性表示為參數(shù)綁定(由IFML Parameter Binding Group元素表示),用來表示用戶選擇的對象的Selected Category參數(shù)的值與Product List View Component請求的輸入?yún)?shù)Category的值相關(guān)聯(lián)。同理View Component Product List和View Component Product Details也會進(jìn)行同樣方式的交互。

        5 結(jié) 語

        本文提出了從IFML模型映射到PHP所在環(huán)境的規(guī)則和方法,以解決他們之間高層環(huán)境的映射,并說明了實現(xiàn)的具體步驟。下一步要做的研究工作是如何從運行PHP語言的Eclipse工具中將建模語言轉(zhuǎn)換成代碼,最終實現(xiàn)軟件的開發(fā)。

        猜你喜歡
        服務(wù)器端應(yīng)用程序頁面
        大狗熊在睡覺
        刷新生活的頁面
        刪除Win10中自帶的應(yīng)用程序
        電腦報(2019年12期)2019-09-10 05:08:20
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        在Windows中安裝OpenVPN
        網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        同一Word文檔 縱橫頁面并存
        淺析ASP.NET頁面導(dǎo)航技術(shù)
        三星電子將開設(shè)應(yīng)用程序下載商店
        亚洲福利第一页在线观看| 九一九色国产| 97久久超碰国产精品2021| 粗大挺进尤物人妻一区二区| 亚洲av日韩av天堂久久不卡| caoporon国产超碰公开| 在线观看二区视频网站二区| 国产 精品 自在 线免费| 中国人妻与老外黑人| 4444亚洲人成无码网在线观看| 国产一线视频在线观看高清 | 美女胸又www又黄的网站| 老熟妇Av| 国产精品午夜高潮呻吟久久av | 亚洲中文字幕一区高清在线| 亚洲一区二区女搞男| 亚洲精品中文字幕无码蜜桃 | 亚洲天堂一区二区偷拍| 欧美性白人极品1819hd| 久久99热久久99精品| 91久久青青草原线免费| av在线免费播放网站| 伊人久久大香线蕉av五月| 久久综合给合综合久久| 麻豆久久五月国产综合| 91精品蜜桃熟女一区二区| 亚洲成av人片天堂网无码| 少妇spa推油被扣高潮| 亚洲—本道中文字幕久久66| 男女在线免费视频网站| 久久久精品毛片免费观看| 免费看黄a级毛片| 日韩av无码成人无码免费| 熟妇与小伙子露脸对白| av网站在线观看亚洲国产| 久久久久亚洲精品中文字幕| 一本大道久久a久久综合| 亚洲av永久综合网站美女| 麻豆精品国产av在线网址| 国产在线精品欧美日韩电影| 亚洲成AV人片无码不卡|