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