從企業(yè)的IT戰(zhàn)略角度而言,經(jīng)過多年的發(fā)展,各個企業(yè)都已經(jīng)在不同業(yè)務(wù)支撐領(lǐng)域架構(gòu)了一系列的IT系統(tǒng),甚至是一個完善的企業(yè)架構(gòu),或者是已經(jīng)完成了部門級的垂直整合?墒,在日新月異的商業(yè)環(huán)境下,產(chǎn)品的生命周期變得越來越短,客戶的需求也在隨時變化,新的業(yè)務(wù)模式持續(xù)地醞釀生成。
新的業(yè)務(wù)模式需要新的業(yè)務(wù)流程來支撐,要求更有效率的合作,這不僅僅發(fā)生在同一個垂直的部門內(nèi)部,對跨部門的業(yè)務(wù)合作和整合的需求也被提到議事日程上。有效的部門間合作,或者企業(yè)間的合作,能夠滿足客戶需求并響應(yīng)外界變化的靈活業(yè)務(wù)流程,是現(xiàn)代企業(yè)競爭力的根本。這不僅僅是一個企業(yè)管理和文化能解決的問題,也對企業(yè)的IT系統(tǒng)提出了進(jìn)一步的需求。
隨著全球經(jīng)濟(jì)一體化的深入發(fā)展,敏捷的、不受限制的業(yè)務(wù)集成的需求已經(jīng)成為關(guān)鍵的業(yè)務(wù)需求。企業(yè)希望能夠是吸納集成企業(yè)內(nèi)外的信息,同時又能夠隨時更新這樣的集成。SOA就實(shí)現(xiàn)了企業(yè)的這個想法。
1 SOA簡介
SOA的英文全稱是“Service Oriented Architecture”,也即“面向服務(wù)的架構(gòu)”。這里的服務(wù),可以說是一種既超越具體技術(shù),又包容具體的實(shí)現(xiàn)技術(shù)的業(yè)務(wù)功能。SOA是一個完整的軟件系統(tǒng)建構(gòu)體系,包括運(yùn)行環(huán)境、編程模型、架構(gòu)風(fēng)格和相關(guān)的方法論等。其核心是服務(wù),并涵蓋服務(wù)的整個生命周期,建!_發(fā)—裝配—運(yùn)行—管理。SOA的核心理念是業(yè)務(wù)驅(qū)動,采用松耦合的、靈活的體系架構(gòu)來滿足隨需而變的業(yè)務(wù)需求。SOA的服務(wù)理念思想,本質(zhì)上是一種業(yè)務(wù)和技術(shù)的完全分離,業(yè)務(wù)又能和技術(shù)自由組合的思想,它達(dá)到了目前軟件設(shè)計(jì)思想的最高境界,SOA的出現(xiàn),預(yù)示著一個以服務(wù)為導(dǎo)向的新的IT時代的到來。
2 SOA為企業(yè)帶來革新
隨著行業(yè)發(fā)展越來越專精,越來越多的專業(yè)服務(wù)被提供出來。比如說,自古以來飯店總是要雇用一些洗碗工清潔堆積如山的碗筷?墒乾F(xiàn)在出現(xiàn)了一種專業(yè)服務(wù),回收用過的碗筷,清洗、消毒,然后包裝好派送各個飯店。于是,飯店便無需雇用專門的洗碗工,也無需使用一次性筷子,還可以向消費(fèi)者收取碗筷清潔消毒的費(fèi)用——相當(dāng)于原來的一次性筷子的費(fèi)用,所以消費(fèi)者也不會抱怨。這是一個標(biāo)準(zhǔn)的三贏場景:首先,飯店省去了雇用洗碗工的成本;其次,消費(fèi)者避免使用浪費(fèi)資源并可能有衛(wèi)生問題的一次性筷子;最后,洗碗服務(wù)的提供者也獲得了相應(yīng)的利潤。其中的理念是,飯店要正常經(jīng)營,清潔碗具是每個餐館不得不做的事情。但大家都知道,洗碗并不是餐館最擅長的事,餐館最擅長的事是烹制美食,而專業(yè)的洗碗店最擅長洗碗。所以,自然而然出現(xiàn)的場景是:飯店只做自己最擅長的事——烹制美食,把自己不太擅長的事——洗碗外包給最擅長做這些事的公司——洗碗公司,這樣強(qiáng)強(qiáng)聯(lián)手,給消費(fèi)者提供更好的服務(wù)。
反觀IT業(yè)界,同樣的場景也會發(fā)生。企業(yè)可以使用第三方提供的更好服務(wù)來支持自身業(yè)務(wù)流程實(shí)現(xiàn)的需要,而不用事必躬親,這樣可以大大節(jié)省IT開發(fā)和維護(hù)成本。例如:企業(yè)內(nèi)部資源包括部門資源和共享服務(wù)資源兩部分。在客戶使用這一業(yè)務(wù)流程時,企業(yè)業(yè)務(wù)流程不僅僅是使用自己的既有服務(wù),還整合了供應(yīng)商的服務(wù),進(jìn)而供應(yīng)商又整合了一些外包商的服務(wù)。在這樣一個場景中,供應(yīng)商和外包商提供了流程中的一些專業(yè)服務(wù)使得業(yè)務(wù)流程更加敏捷有效,猶如上面例子中的洗碗店一樣。服務(wù)的核心理念是業(yè)務(wù),服務(wù)定義了一個與業(yè)務(wù)功能或者業(yè)務(wù)數(shù)據(jù)相關(guān)的接口,以及約束這個接口的契約,是粗粒度的。服務(wù)是中立的,不依賴于特定的技術(shù)和平臺。多個服務(wù)可以被組裝成一個業(yè)務(wù)流程,完成一個特定的業(yè)務(wù)功能。由此可見,服務(wù)是可重用的,一個定義良好的服務(wù)可以被用于組裝多個業(yè)務(wù)流程。SOA的概念架構(gòu)模型如圖1所示。
圖1 SOA的概念架構(gòu)模型
3 程序設(shè)計(jì)思想
面向過程語言是最早出現(xiàn)的大眾化的編程語言,C語言是典型的代表,是一種緊密耦合的軟件語言技術(shù),用C語言編寫的應(yīng)用程序完成一大堆函數(shù)的編寫,整個應(yīng)用程序依賴于一些預(yù)先定義的全局變量。函數(shù)的可重用性很差。
面向?qū)ο缶幊虒⒚嫦蜻^程的相關(guān)函數(shù)封裝起來,消除全局變量,形成能夠獨(dú)立調(diào)用的對象。相對于面向過程的含有全局變量的編程,其耦合性已經(jīng)降低。對象可以重用,可以繼承和擴(kuò)展。而對象之間還有相互調(diào)用的現(xiàn)象,還存在一定的耦合性。這些對象只能本地調(diào)用,不能遠(yuǎn)程調(diào)用。
面向組件的編程將面向?qū)ο蟮某绦蜻M(jìn)行封裝,定義一些接口讓外部調(diào)用。但是客戶端和遠(yuǎn)程服務(wù)器端的傳輸協(xié)議是特定的,需要和特定的程序?qū)崿F(xiàn)語言綁定。
從本質(zhì)上來講,面向?qū)ο笫菍γ嫦蜻^程的一次解耦和封裝,就是把面向過程的程序進(jìn)行分解,把邏輯緊密相關(guān)的程序結(jié)合在一起,發(fā)布成獨(dú)立的對象單元,對象單元里面含有API。面向組件的編程是將面向?qū)ο蟮某绦蜻M(jìn)行進(jìn)一步的封裝,發(fā)布成獨(dú)立的組件,里面含有一些粒度大于API的接口。面向組件和面向?qū)ο蟮淖畲髤^(qū)別在于組件是通過傳輸協(xié)議來進(jìn)行遠(yuǎn)程調(diào)用的,組件是和傳輸協(xié)議綁定、應(yīng)用服務(wù)器的端口綁定在一起的。面向服務(wù)的編程是對面向組件的編程的進(jìn)一步解耦和封裝。所謂解耦,就是將業(yè)務(wù)組件和傳輸協(xié)議、端口解耦。也就是說業(yè)務(wù)組件可以自由地綁定各種傳輸協(xié)議。作為面向服務(wù)的編程,由于服務(wù)組件可以和各種傳輸協(xié)議自由綁定。這樣作為服務(wù)的消費(fèi)者,就不需要特別關(guān)心服務(wù)提供者的具體的技術(shù)細(xì)節(jié),只需要知道有這么一個完全和技術(shù)無關(guān)的業(yè)務(wù)接口。SOA的服務(wù)調(diào)用方式如圖2所示。從圖中可以看出,傳輸協(xié)議和位置都是透明的,不論實(shí)際服務(wù)者的傳輸協(xié)議和位置如何修改,客戶端都不需要相應(yīng)的程序。
圖2 SOA的傳輸協(xié)議和位置透明的調(diào)用方式
4 小結(jié)
SOA是為軟件集成而服務(wù)的,它實(shí)現(xiàn)了技術(shù)和架構(gòu)的完全分離,消除了軟件服務(wù)集成的所有障礙?梢灾赜枚x好的服務(wù),無論是包裝已有系統(tǒng)功能,還是新開發(fā)的業(yè)務(wù)功能,甚至是采用合作伙伴所提供的服務(wù)。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SOA在信息化和企業(yè)應(yīng)用中的研究
本文網(wǎng)址:http://www.ezxoed.cn/html/solutions/1401932802.html