• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            M-A-T Tory's Blog

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              16 隨筆 :: 1 文章 :: 1 評(píng)論 :: 0 Trackbacks

            #

            支持服務(wù) ___________________________
            Various Artist_______http://www.pcgames.com.cn/fight/warcraft/zblx/0604/783821.html

            除運(yùn)行時(shí)基礎(chǔ)設(shè)施和 SOA 核心之外,WebSphere Process Server 還提供了多種服務(wù)組件。支持服務(wù)是所有集成解決方案中都需要的組件,其中包括數(shù)據(jù)轉(zhuǎn)換和同步服務(wù)。

            • 接口映射:現(xiàn)有組件的接口可以在語(yǔ)義上匹配,但是在語(yǔ)法上不匹配(例如,updateCustomer 和 updateCustomerInDB2)。對(duì)于已存在的組件和需要訪問(wèn)的服務(wù)更為如此。接口映射通過(guò)轉(zhuǎn)換這些調(diào)用使您能夠調(diào)用這些組件。此外,可以使用業(yè)務(wù)對(duì)象轉(zhuǎn)換服務(wù)調(diào)用的實(shí)際業(yè)務(wù)對(duì)象參數(shù)。
            • 業(yè)務(wù)對(duì)象映射:可以使用業(yè)務(wù)對(duì)象映射將某種類型的業(yè)務(wù)對(duì)象轉(zhuǎn)換成另一種類型的業(yè)務(wù)對(duì)象。可以通過(guò)多種方式使用這些映射,例如,在接口映射中將某種類型的參數(shù)數(shù)據(jù)轉(zhuǎn)換成另一種類型。
            • 關(guān)系:您可能需要在業(yè)務(wù)集成場(chǎng)景或者不同的后端系統(tǒng)(如 ERP 系統(tǒng)和 CRM 系統(tǒng))中訪問(wèn)相同的數(shù)據(jù)(如客戶記錄)。保持業(yè)務(wù)對(duì)象同步的一個(gè)常見(jiàn)的問(wèn)題就是不同的后端系統(tǒng)使用不同的關(guān)鍵字表示同一對(duì)象。可以使用 WebSphere Process Server 中的關(guān)系服務(wù)建立這些完全不同的后端系統(tǒng)中的對(duì)象之間的關(guān)系實(shí)例。通常在將一種業(yè)務(wù)對(duì)象格式轉(zhuǎn)換成另一種格式時(shí),從業(yè)務(wù)對(duì)象映射中訪問(wèn)這些關(guān)系。
            • 選擇器:可以使用選擇器組件動(dòng)態(tài)選擇和調(diào)用共享同一接口的不同服務(wù)。例如,客戶支持流程在假日期間使用的人工任務(wù)實(shí)現(xiàn)可以與正常工作日中的不同。WebSphere Process Server 提供了一個(gè)基于 Web 的接口,以啟用對(duì)選擇標(biāo)準(zhǔn)和目標(biāo)服務(wù)的動(dòng)態(tài)更新,這意味著,如果啟用對(duì)集成解決方案的動(dòng)態(tài)更改,該選擇器組件還可以調(diào)用隨后部署的模塊。
            • Java:可以使用 Java 組件調(diào)用 Java 代碼。

            服務(wù)組件

            WebSphere Process Server 提供了四個(gè)服務(wù)組件:

            • 業(yè)務(wù)流程:WebSphere Process Server 中的業(yè)務(wù)流程組件實(shí)現(xiàn)了與 Web 服務(wù)業(yè)務(wù)流程執(zhí)行語(yǔ)言(Web Services Business Process Execution Language,WS-BPEL)兼容的流程引擎。可以開(kāi)發(fā)和部署業(yè)務(wù)流程,它支持長(zhǎng)時(shí)間運(yùn)行和短時(shí)間運(yùn)行的業(yè)務(wù)流程以及可伸縮的基礎(chǔ)設(shè)施中的補(bǔ)償模型。您可以在 WebSphere Integration Developer 中創(chuàng)建 WS-BPEL 模型,也可以從在 WebSphere Business Modeler 中創(chuàng)建的業(yè)務(wù)模型導(dǎo)入。
            • 人工任務(wù):人工任務(wù)是 WebSphere Process Server 中的獨(dú)立組件,可以用來(lái)向員工分配任務(wù)或調(diào)用任何其他服務(wù)。此外,人工任務(wù)管理器還支持臨時(shí)創(chuàng)建任務(wù)和跟蹤任務(wù)。可以使用現(xiàn)有的 LDAP 目錄(以及操作系統(tǒng)資源庫(kù)和 WebSphere 用戶注冊(cè)表)訪問(wèn)員工信息。WebSphere Process Server 還支持人工任務(wù)的多級(jí)升級(jí),其中包括電子郵件通知和優(yōu)先級(jí)老化。WebSphere Process Server 包括可擴(kuò)展的 Web 客戶機(jī),可以用于處理任務(wù)或者流程。該 Web 客戶機(jī)基于一組可重用的 Java Server Faces (JSF) 組件,這些組件可以用于創(chuàng)建自定義客戶機(jī)或者將人工任務(wù)功能嵌入其他的 Web 應(yīng)用程序。
            • 業(yè)務(wù)狀態(tài)機(jī):業(yè)務(wù)狀態(tài)機(jī)提供了建模業(yè)務(wù)流程的另一種方式。通過(guò)這種方式,可以根據(jù)狀態(tài)和事件表示公司的業(yè)務(wù)流程,有時(shí)使用這種方式進(jìn)行建模比采用面向圖形的業(yè)務(wù)流程模型簡(jiǎn)單。訂購(gòu)流程就是這樣一個(gè)例子,您可以在訂單處理過(guò)程中的任何時(shí)刻修改或者取消訂單,直到實(shí)際完成訂單為止。
            • 業(yè)務(wù)規(guī)則:業(yè)務(wù)規(guī)則是一種通過(guò)外化業(yè)務(wù)功能實(shí)現(xiàn)和執(zhí)行業(yè)務(wù)策略的方式。這為響應(yīng)更快的業(yè)務(wù)環(huán)境啟用了業(yè)務(wù)流程的動(dòng)態(tài)更改。基于 Eclipse 的桌面工具支持業(yè)務(wù)規(guī)則的創(chuàng)建。在業(yè)務(wù)需求指示時(shí),業(yè)務(wù)分析師可以使用 WebSphere Process Server 提供的基于 Web 的運(yùn)行時(shí)工具更新業(yè)務(wù)規(guī)則,而不會(huì)影響其他服務(wù)。

            可以通過(guò) WebSphere Application Server 管理控制臺(tái)和配置功能的擴(kuò)展配置和管理 WebSphere Process Server 的所有功能。這就為管理整個(gè)應(yīng)用程序堆棧提供了一席之地。



            可以使用 WebSphere Process Server 做些什么?

            事務(wù)、安全性、集群和工作負(fù)載管理:WebSphere Process Server 解決方案使用 WebSphere Application Server 功能,因而向您提供了一個(gè)可伸縮的、可靠的業(yè)務(wù)集成環(huán)境,可以用于事務(wù)、安全性、集群和工作負(fù)載管理。

            完整的 ACID 事務(wù)支持:WebSphere Process Server 為業(yè)務(wù)流程提供了完整的 ACID 事務(wù)支持,既包括短時(shí)間運(yùn)行的流程(端對(duì)端的一個(gè)事務(wù))也包括長(zhǎng)時(shí)間運(yùn)行的流程(多個(gè)流程)。可以在工具中修改事務(wù)邊界來(lái)將業(yè)務(wù)流程中的多個(gè)步驟集中到一個(gè)事務(wù)。此外,它還支持 WS-BPEL 規(guī)范中定義的業(yè)務(wù)流程的靈活補(bǔ)償。

            恢復(fù)管理器與恢復(fù)控制臺(tái):WebSphere Process Server 包括恢復(fù)管理器和恢復(fù)控制臺(tái)。如果在執(zhí)行業(yè)務(wù)集成應(yīng)用程序期間出現(xiàn)故障,則服務(wù)器將檢測(cè)該故障,并允許您(管理員)在恢復(fù)控制臺(tái)管理出錯(cuò)的應(yīng)用程序。

            封裝業(yè)務(wù)功能:WebSphere Process Server 中的唯一體系結(jié)構(gòu)允許將業(yè)務(wù)功能封裝到各個(gè)模塊,然后單獨(dú)進(jìn)行更新。例如,您可以使用包含用于實(shí)際審批的人工任務(wù)的審批模塊,隨后使用包含業(yè)務(wù)規(guī)則的另一個(gè)審批模塊替換它。這一更改對(duì)于該模塊的使用者是完全透明的。此外,封裝的概念確保了數(shù)據(jù)和接口定義在使用它們的位置封裝。例如,可以隱藏如何在模塊內(nèi)的后端系統(tǒng)中表示使用者的細(xì)節(jié),而模塊本身將具有一般業(yè)務(wù)對(duì)象的通用接口作為數(shù)據(jù)公開(kāi)。這一規(guī)范的數(shù)據(jù)表示還啟用了任何給定集成應(yīng)用程序中的高度重用。

            WebSphere Process Server 如何處理現(xiàn)有系統(tǒng)和新的應(yīng)用程序?

            WebSphere Process Server 提供了許多選項(xiàng),可以用于將公司的現(xiàn)有系統(tǒng)與新的集成應(yīng)用程序相集成。

            WebSphere Application Server 消息資源:WebSphere Process Server 使用 WebSphere Application Server 中的消息資源綁定到現(xiàn)有的 WebSphere MQ 網(wǎng)絡(luò)。可以配置 WebSphere Application Server V6 附帶的本機(jī) Java JMS 提供程序,以連接到現(xiàn)有的 WebSphere MQ Queue Manager,這樣您就可以創(chuàng)建 WebSphere MQ 網(wǎng)絡(luò)的擴(kuò)展。

            本機(jī) Web 服務(wù)互操作性:WebSphere Process Server 包含對(duì) Web 服務(wù)的完整支持,其中包括通過(guò) HTTP 對(duì) SOAP 的支持或者通過(guò) JMS 對(duì) SOAP 的支持。WebSphere Process Server 還包括對(duì)導(dǎo)入和導(dǎo)出 WebSphere Process Server 組件、JMS 和 Enterprise Java Session Bean 的支持。

            WebSphere Adapters:WebSphere Adapters 包括特定于應(yīng)用程序的適配器(如用于 Siebel、SAP 或者 PeopleSoft 的適配器),以及技術(shù)適配器(如用于關(guān)系數(shù)據(jù)庫(kù)或者平面文件的適配器)。

            WPS V6運(yùn)行環(huán)境建立在WebSphere應(yīng)用服務(wù)器之上,其最基礎(chǔ)的部分是SOA核心機(jī)制。它基于Web服務(wù)(Web Service)規(guī)范,實(shí)現(xiàn)并規(guī)定了WPS V6中服務(wù)組件的交互方式和統(tǒng)一的業(yè)務(wù)模型,是整個(gè)WPS V6運(yùn)行環(huán)境的基礎(chǔ)。

            • 服務(wù)組件架構(gòu)(Service Component Architecture,SCA)提供了統(tǒng)一的服務(wù)調(diào)用模型。
            • 業(yè)務(wù)對(duì)象(Business Object,BO)提供了統(tǒng)一的業(yè)務(wù)數(shù)據(jù)模型。
            • 通用事件基礎(chǔ)設(shè)施(Common Event Infrastructure,CEI),以統(tǒng)一的事件格式(Common Base Event,CBE)記錄運(yùn)行環(huán)境中的事件,為WebSphere監(jiān)測(cè)器(WebSphere Monitor)提供數(shù)據(jù)存儲(chǔ)。

            在SOA核心機(jī)制之上的是WPS V6的支撐服務(wù),包括:

            • SCA接口轉(zhuǎn)接器(Interface Mediator)提供了SCA接口轉(zhuǎn)接的功能,它可以把同一SCA模塊內(nèi)不同SCA組件接合起來(lái),即使它們的接口并不匹配。接口轉(zhuǎn)接器與業(yè)務(wù)對(duì)象映射服務(wù)(Map Service)以及關(guān)系服務(wù)(Relationship Service)一起,完成接口轉(zhuǎn)接的功能。
            • Selector提供輸入輸出的路由選擇功能,動(dòng)態(tài)決定調(diào)用目標(biāo),降低客戶和調(diào)用目標(biāo)間的耦合度。

            在支撐服務(wù)之上的是WPS V6運(yùn)行環(huán)境進(jìn)行業(yè)務(wù)處理的主體服務(wù)組件,包括

            • 業(yè)務(wù)流程引擎(Business Process Engine,BPE)。
            • 人工任務(wù)管理器(Human Task Manager,HTM)。
            • 業(yè)務(wù)狀態(tài)機(jī)(Business State Machine,BSM)。
            • 業(yè)務(wù)規(guī)則(Business Rules,BR)。

            WPS V6運(yùn)行環(huán)境建立在WebSphere應(yīng)用服務(wù)器之上,其最基礎(chǔ)的部分是SOA核心機(jī)制。它基于Web服務(wù)(Web Service)規(guī)范,實(shí)現(xiàn)并規(guī)定了WPS V6中服務(wù)組件的交互方式和統(tǒng)一的業(yè)務(wù)模型,是整個(gè)WPS V6運(yùn)行環(huán)境的基礎(chǔ)。

            • 服務(wù)組件架構(gòu)(Service Component Architecture,SCA)提供了統(tǒng)一的服務(wù)調(diào)用模型。
            • 業(yè)務(wù)對(duì)象(Business Object,BO)提供了統(tǒng)一的業(yè)務(wù)數(shù)據(jù)模型。
            • 通用事件基礎(chǔ)設(shè)施(Common Event Infrastructure,CEI),以統(tǒng)一的事件格式(Common Base Event,CBE)記錄運(yùn)行環(huán)境中的事件,為WebSphere監(jiān)測(cè)器(WebSphere Monitor)提供數(shù)據(jù)存儲(chǔ)。

            在SOA核心機(jī)制之上的是WPS V6的支撐服務(wù),包括:

            • SCA接口轉(zhuǎn)接器(Interface Mediator)提供了SCA接口轉(zhuǎn)接的功能,它可以把同一SCA模塊內(nèi)不同SCA組件接合起來(lái),即使它們的接口并不匹配。接口轉(zhuǎn)接器與業(yè)務(wù)對(duì)象映射服務(wù)(Map Service)以及關(guān)系服務(wù)(Relationship Service)一起,完成接口轉(zhuǎn)接的功能。
            • Selector提供輸入輸出的路由選擇功能,動(dòng)態(tài)決定調(diào)用目標(biāo),降低客戶和調(diào)用目標(biāo)間的耦合度。

            在支撐服務(wù)之上的是WPS V6運(yùn)行環(huán)境進(jìn)行業(yè)務(wù)處理的主體服務(wù)組件,包括

            • 業(yè)務(wù)流程引擎(Business Process Engine,BPE)。
            • 人工任務(wù)管理器(Human Task Manager,HTM)。
            • 業(yè)務(wù)狀態(tài)機(jī)(Business State Machine,BSM)。
            • 業(yè)務(wù)規(guī)則(Business Rules,BR)。

            3.1 服務(wù)組件架構(gòu)

            SCA(Service Component Architecture) 是一種通用的面向業(yè)務(wù)服務(wù)的組件模型。它使現(xiàn)有的各種服務(wù),包括EJB,Web服務(wù), Java代碼以及業(yè)務(wù)流程執(zhí)行語(yǔ)言(Business Process Execution Language,BPEL)等,有了統(tǒng)一的抽象表示,從而實(shí)現(xiàn)了業(yè)務(wù)邏輯和實(shí)現(xiàn)邏輯的分離。

            posted @ 2006-05-02 22:37 Tory 閱讀(184) | 評(píng)論 (0)編輯 收藏

            Table 1. SOA layers of adoption

            Adoption level Name Description
            1 Implementing individual Web services Creating services from tasks contained in new or existing applications
            2 Service-oriented integration of business functions Integrating services across multiple applications inside and outside the enterprise for a business objective
            3 Enterprise-wide IT transformation An architected implementation enabling integration across business functions throughout an enterprise
            4 On Demand Business Transformation Broad transformation of existing business models or the deployment of new business models

            Table 2. The six approaches to SOA

            Approach Description (typical project owner characterization) Qualifications
            Business process driven My business processes need to tap into resources, and each activity requires the invocation of IT functionality; I want that functionality to be available in a flexible, replaceable way. Top-down
            Tool-based MDA I want to define a model (business model) and then let my tools generate the detail for me. Top-down
            Wrap legacy I have existing systems I have been investing heaviliy on, but they are not resilient. I want new functionality added quickly, but these systems are partitioned. They are silos where functions are locked into them. Bottom-up
            Componentize legacy Decompose the monolithic legacy systems into modules using compiler-based tools. Bottom-up
            Data-driven Provide access to information using services without having to expose schemas or implementation decisions on the provider side. Data-focused
            Message-driven "Just want to have these systems integrate, communicate, over standard, non-proprietary protocols." Service-Oriented Integration of Applications and Systems

            Table 3. Patterns and their corresponding benefits

            Context Pattern Applicability
            Silo; concentrated functionality Hard-coded (not a pattern, but a point in time state) Point in time; low risk; low-changing, high-performance systems
            Distributed; multi-point of access Point-to-point exposure Expose existing functionality rapidly; unlock value fast; access embedded functionality
            Wrap a legacy function and make it callable through Web services Service adaptor Consumer needs access to functionality that is not service-enabled ( access to a legacy system through a service invocation, for example -- a Web service)
            Access a service using its proxy if you do not have direct access to the service provider?s service description and are unable to directly invoke the service Service proxy Provides consumers with an SOA interface
            Provide flexibility in the choice of the service provider Remote service strategy Provides flexibility in changing service providers based on quality of service or functionality considerations. This opens up possibilities in expediting mergers and acquisitions and flexible alteration of the provider when you consolidate application portfolios.
            Eliminate redundant functionality; refactor and consolidate or, in some cases, replace existing systems Single point of access Provides one access point to a number of potential variants in functionality. A service strategy often requires a single point of access.
            One project or LOB at a time, yet relies on others for some functions not yet exposed as services Virtual provider Non-existent providers; ramp up service critical mass
            Single point of access Service integrator Routing, transformation
            General enterprise integration approach Enterprise service bus Mediation; routing; transformation, policies, rules, events; inside the organization or between partners in ecosystem/value-net
            The Nirvana of SOA; dynamic reconfiguration through context-aware services relying on business domain specific capabilities Integrated service ecosystem Provides dynamic configuration capabilities to a set of semantically interrelated industry specific business partners that leverage and recombine the ecosystem capabilities to provide greater value to themselves and the ecosystem as a whole


            Often an initial challenge is the concrete determination of the value proposition for using SOA within a project, line of business, or organization. This has to do with flexibility and the ability to alter the actual service provider who implements a service once their quality of service dwindles or they fail to provide the required functionality. This flexibility, which is the primary value of SOA, is overcome by understanding the steps in achieving flexibility through a remote service strategy. There are two more challenges that we describe and overcome with the use of patterns presented here.


            SOA is a journey of gradual, small transformations that increasingly decouple service descriptions from service implementations offered by multiple service providers. The solutions below are descriptions of how these issues have been recurrently solved and may serve as a pattern to help you on your next project. Like any other pattern, these must also be adapted to fit the context and the forces that shape your individual problem space: the tradeoffs and considerations of your project, whether organizational or technical, make a difference, and you can determine if you need to skip a step from one pattern to another or to partially implement the pattern

            The purely object-oriented strategy pattern primarily relies on inheritance-based polymorphism to create a family of interchangeable algorithms that are swapped out based on context. Rather than have an object hierarchy, in an SOA context, we need to be able to change the service provider with minimal or no impact on the consumer?s perception of the service, thus varying the actual implementer of the service description. The implementer may, in most cases, be a provider of a remote unit of functionality, somewhere in the internal network or Internet. Therefore, for
            example, a service provider for a VerifyAddress service in an OrderEntry application may need to be changed because our quality of service needs have changed due to higher transaction volumes or security constraints. Or, the provider has decided to charge twice the amount for the same basic service, which we have relied on, in the past. Now, we would like to have the flexibility of changing service providers with IT and Business impunity, which means minimal changes to IT systems and no impact on the business or customer experience in their online shopping experience.


            以上是今天看得兩篇英文文章中一些摘要,文章很長(zhǎng),說(shuō)實(shí)話沒(méi)看太明白。只能在文章中找一些比較重要的東西貼在這,希望能有用。
            原文鏈接:http://www-128.ibm.com/developerworks/webservices/library/ws-soa-soi/
            ?????????????????????http://www-128.ibm.com/developerworks/webservices/library/ws-soa-soi2/

            6. 開(kāi)發(fā)過(guò)程

            盡管以服務(wù)為中心的企業(yè)集成在開(kāi)發(fā)階段和普通的應(yīng)用開(kāi)發(fā)并沒(méi)有本質(zhì)的區(qū)別,但是它在角色,職責(zé)、工具和方法還是有不少自己的特色。下圖匯總了本文示例中開(kāi)發(fā)角色,職責(zé),開(kāi)發(fā)方法和工具,僅供大家參考。


            表2:角色劃分和工具支持?

            SOA 的一個(gè)架構(gòu)模板

            SOA 的一個(gè)抽象觀點(diǎn)將它描述為與業(yè)務(wù)過(guò)程結(jié)合在一起的合成服務(wù)的部分分層架構(gòu)。 圖 3 呈現(xiàn)了這種類型的架構(gòu)。

            服務(wù)和組建之間的關(guān)系是,企業(yè)級(jí)的組件(大粒度的企業(yè)或者業(yè)務(wù)線組件)實(shí)現(xiàn)該服務(wù)并且負(fù)責(zé)提供它們的功能和維持它們的服務(wù)質(zhì)量。通過(guò)組合這些公開(kāi)的服務(wù)到合成的應(yīng)用程序,就可以支持業(yè)務(wù)過(guò)程流。綜合的架構(gòu)通過(guò)使用 Enterprise Service Bus(ESB)支持這些服務(wù)、組件和流程的路由、中介和轉(zhuǎn)化。為了服務(wù)質(zhì)量和非功能性的需求,必須監(jiān)視和管理已經(jīng)部署的服務(wù)。


            圖 3:SOA 層
            SOA 層

            對(duì)于每一層,你都必須做設(shè)計(jì)和架構(gòu)決定。因此,為了幫助用文件說(shuō)明你的 SOA,你可能應(yīng)該創(chuàng)建文檔,由每個(gè)層相應(yīng)的部分所組成。

            這里是為你的 SOA 架構(gòu)文檔設(shè)計(jì)的模板:

            1. 范圍 <此架構(gòu)適用于企業(yè)的哪個(gè)領(lǐng)域>
            2. 操作系統(tǒng)層
              1. 打包的應(yīng)用程序
              2. 自定義應(yīng)用程序
              3. 架構(gòu)決策
            3. 企業(yè)組件層
              1. 企業(yè)組件支持的功能范圍
              2. <這個(gè)企業(yè)組件支持業(yè)務(wù)領(lǐng)域、目標(biāo)和過(guò)程>
              3. 關(guān)于控制的決策
                1. <作為這個(gè)客戶端組織內(nèi)部企業(yè)組件來(lái)選擇某物的標(biāo)準(zhǔn)>
              4. 架構(gòu)決策
            4. 服務(wù)層
              1. 服務(wù)分類表
              2. 架構(gòu)決策
            5. 業(yè)務(wù)過(guò)程和合成層
              1. 業(yè)務(wù)過(guò)程可以表現(xiàn)為舞蹈編排(choreographies)
              2. 架構(gòu)決策
                1. <哪一個(gè)過(guò)程需要編排在舞蹈編排里面以及哪一個(gè)鑲嵌在應(yīng)用程序里面?>
            6. 訪問(wèn)或者表現(xiàn)層
              1. <證明這層中 Web 服務(wù)和 SOA 的含意;即便要。例如,在用戶接口級(jí)別上調(diào)用 Web 服務(wù)的 portlet 的使用,以及在此層機(jī)能上的含意。>
            7. 集成層
              1. <包含 ESB 因素>
              1. <我們?nèi)绾未_保使用服務(wù)的客戶端系統(tǒng)級(jí)的一致性(SLA)和服務(wù)質(zhì)量(QoS)?>
              2. 安全問(wèn)題和決策
              3. 性能問(wèn)題和決策
              4. 技術(shù)和標(biāo)準(zhǔn)的局限性以及決策
              5. 服務(wù)的監(jiān)控和管理
                1. 描述和決策

            現(xiàn)在,讓我們更加仔細(xì)的描述一下每一層以及每一層之間的合成。

            層 1:操作系統(tǒng)層。本層包含現(xiàn)有的自定義構(gòu)建的應(yīng)用程序,也叫做 遺留系統(tǒng),包含現(xiàn)有的 CRM 和 ERP 打包應(yīng)用程序,以及 較舊的基于對(duì)象的系統(tǒng)實(shí)現(xiàn),還有業(yè)務(wù)智能應(yīng)用程序。SOA 的復(fù)合層架構(gòu)可以利用現(xiàn)有的系統(tǒng)并且用基于服務(wù)的集成技術(shù)來(lái)集成它們。

            層 2:企業(yè)組件層。本層由那些負(fù)責(zé)實(shí)現(xiàn)功能和保持公開(kāi)服務(wù) QoS 的企業(yè)組件組成。這些特殊的組件是企業(yè)和業(yè)務(wù)單元級(jí)支持的企業(yè)資產(chǎn)的受管理和控制的集合。 同企業(yè)范圍資產(chǎn)一樣,他們通過(guò)架構(gòu)最佳實(shí)踐應(yīng)用程序來(lái)負(fù)責(zé)確保 SLAs 的一致。大多數(shù)情況下,本層使用基于容器的技術(shù),比如實(shí)現(xiàn)組件、負(fù)載均衡、高可用性和工作量管理的應(yīng)用服務(wù)器。

            層 3:服務(wù)層。業(yè)務(wù)選擇來(lái)支持和公開(kāi)的服務(wù)處在這一層。它們可以被 發(fā)現(xiàn)或者直接靜態(tài)綁定,接下來(lái)被調(diào)用,或者可能的話,編排到合成服務(wù)中。這個(gè)服務(wù)公開(kāi)層同樣提供了獲取企業(yè)范圍組件,業(yè)務(wù)單元特定組件,以及有些情況下,特定項(xiàng)目組建的機(jī)制,并且以服務(wù)描述的形式具體化了他們的接口子集。因此,企業(yè)組件使用它們接口提供的功能在運(yùn)行時(shí)提供服務(wù)實(shí)現(xiàn)。在這一層的接口公開(kāi)為一個(gè)服務(wù)描述,在這層中他們被公開(kāi)以提供使用。他們可以獨(dú)立存在或者作為合成服務(wù)。

            層 4:業(yè)務(wù)過(guò)程合成或編排層。第三層中公開(kāi)的服務(wù)的合成和編排在這一層中被定義。通過(guò)配合、編排,服務(wù)被綁定成一個(gè)流程,并且從而作為單獨(dú)的應(yīng)用程序而共同作用。這些應(yīng)用程序支持特殊的用例和業(yè)務(wù)過(guò)程。這里,可視的流程合成工具,比如 IBM? WebSphere? Business Integration Modeler 或者 Websphere Application Developer Integration Edition,都可以用來(lái)設(shè)計(jì)應(yīng)用程序流程。

            層 5:訪問(wèn)或表現(xiàn)層。盡管這一層經(jīng)常超出了圍繞 SOA 討論的范圍,但是它卻變得越來(lái)越有意義。在這里我描述它因?yàn)闃?biāo)準(zhǔn)越來(lái)越集中,比如用于 Remote Portlets Version 2.0 的 Web 服務(wù)和其他技術(shù),這些技術(shù)追求在應(yīng)用程序接口或者表現(xiàn)層來(lái)利用 Web 服務(wù)。你可以把它作為將來(lái)的層用來(lái)滿足將來(lái)的解決方案的需求。注意到以下這兩點(diǎn)是非常重要的:SOA 將用戶接口從組件中分離出來(lái);最終你需要提供從訪問(wèn)路線到服務(wù)或者合成服務(wù)的端到端解決方案。

            層 6:集成(ESB)。這一層使服務(wù)可以集成,通過(guò)引入一系列可靠的性能的集合,比如智能路由,協(xié)議中介和其他轉(zhuǎn)化機(jī)制,經(jīng)常被描述為 ESB(參閱 參考資料)。Web Services Description Language(WSDL)制定了綁定,其包含提供服務(wù)的地址。另一方面,ESB 為集成提供了位置獨(dú)立機(jī)制。

            層 7:QoS。這一層提供了監(jiān)視,管理和維持諸如安全,性能和可用性等 QoS 的能力。這是一個(gè)通過(guò) sense-and-respond 機(jī)制和監(jiān)測(cè) SOA 應(yīng)用程序健康的工具來(lái)進(jìn)行的后臺(tái)處理過(guò)程,包括 WS-Management 和其他相關(guān)協(xié)議的所有的重要的標(biāo)準(zhǔn)實(shí)現(xiàn)以及為 SOA 實(shí)現(xiàn)服務(wù)質(zhì)量的標(biāo)準(zhǔn)。


            ?

            posted @ 2006-05-01 22:35 Tory 閱讀(146) | 評(píng)論 (0)編輯 收藏

                 摘要: 1. 隨機(jī)數(shù)? // Create a random number generator,?? // seeds with current time by default:Random?rand?=?new?Random();????int?i,?j,?k;???//?Choose?value?from?1?to?100:????j?=?rand.nextInt(100)?+?1;2. Aliasi...  閱讀全文
            posted @ 2006-04-24 22:36 Tory 閱讀(317) | 評(píng)論 (0)編輯 收藏

            在本文中,我將談?wù)撊绾螌?Web 服務(wù)及非 Web 服務(wù)的多重 SOA 合并成三維的整合中心來(lái)連接各種后端企業(yè)主機(jī)系統(tǒng),包括:

            • 企業(yè)資源規(guī)劃(Enterprise Resource Planning,ERP)
            • 客戶關(guān)系管理(Customer Relationship Management,CRM)
            • 供應(yīng)鏈管理(Supply Chain Management,SCM)
            • 其它企業(yè)應(yīng)用程序集成(Enterprise Application Integration,EAI)的應(yīng)用程序
            • 虛擬的數(shù)據(jù)庫(kù)管理系統(tǒng)

            我也將討論中心如何接受輸入數(shù)據(jù)——事件和數(shù)據(jù)——來(lái)源于各種資源。我使用 X、Y 和 Z 軸在三維空間中展示圖片。







            什么是 SOA 整合中心?

            SOA 整合中心是 Web 服務(wù)與非 Web 服務(wù)的合并的 SOA 與后端企業(yè)系統(tǒng)的集成。它使得 Web 服務(wù)及非 Web 服務(wù)能夠與運(yùn)行在不同平臺(tái)上的服務(wù)器、主機(jī)和微機(jī)上的企業(yè)系統(tǒng)交互。

            然而,SOA 整合中心不同于面向服務(wù)的整合(service-oriented integration,SOI)。SOI 將 Web 服務(wù)與運(yùn)行在不同平臺(tái)上的主機(jī)系統(tǒng)相整合。它使得 Web 服務(wù)能夠通過(guò)網(wǎng)關(guān)與主機(jī)交互。您需要 ASP.Net 或其它技術(shù)獲取網(wǎng)關(guān)來(lái)執(zhí)行普通的 Web 服務(wù)。

            SOA 是基于一套業(yè)務(wù)流程的 Web 服務(wù)的交互的體系結(jié)構(gòu)。您可以在第一個(gè) SOA 中獲取 Web 服務(wù)來(lái)在第二個(gè) SOA 中復(fù)用代表 Web 服務(wù)的服務(wù)。Web 服務(wù)可能由一些小的 Web 服務(wù)組成,它們將服務(wù)傳遞給客戶。

            您使用描述語(yǔ)言(例如,SOAP)或其它描述交互的方法(例如,REST)來(lái)定義交互。每個(gè)交互都是獨(dú)立且松耦合的,以便每個(gè)交互都能獨(dú)立于任何其它交互。這與依賴網(wǎng)關(guān)來(lái)與 Web 服務(wù)集成的緊耦合的主機(jī)系統(tǒng)形成對(duì)照。







            SOA 層

            我們看一下二維空間中的 SOA 層。之后,我將向您展示為何三維的整合中心是更好的選擇。

            SOA 的 IBM 版本的前五層(請(qǐng)見(jiàn)參考資料)是(從下至上):

            • 操作系統(tǒng)
            • 基于組件的(系統(tǒng))
            • 服務(wù)
            • 業(yè)務(wù)流程
            • 表示層

            第六層是集成體系結(jié)構(gòu)(也作為企業(yè)集成總線(Enterprise Integration Bus)),它垂直覆蓋了前五層。下一層是服務(wù)質(zhì)量、安全、管理及監(jiān)控層。

            顯而易見(jiàn),操作層由 EAI 打包的應(yīng)用程序、遺留、老式的面向?qū)ο蠹吧虡I(yè)智能應(yīng)用程序組成。它們都可以通過(guò)使用 SOI(在項(xiàng)目級(jí)或企業(yè)級(jí))來(lái)同第二層的基于組件的系統(tǒng)相集成。然后,將組件結(jié)合或集成到復(fù)合應(yīng)用程序中來(lái)提供第三層的服務(wù)。

            第四層向您展示了那些服務(wù)是如何根據(jù)一套業(yè)務(wù)流程從一個(gè)流向另一個(gè)的。更高一層通過(guò)遠(yuǎn)程門(mén)戶網(wǎng)站 Web 服務(wù)(Web Services for Remote Portlet,WSRP)標(biāo)準(zhǔn)或其它面向人的表示層的方法來(lái)將 Web 服務(wù)應(yīng)用于應(yīng)用程序接口中。

            二維靜態(tài)的 SOA 可能是有問(wèn)題的。幸好,整合中心的發(fā)展意味著 SOA 將變成三維動(dòng)態(tài)的。







            可復(fù)用的體系結(jié)構(gòu)

            我們假設(shè)該 Web 服務(wù)需要在 .Net 平臺(tái)上或隨后的 WebSphere 平臺(tái)上運(yùn)行前從主機(jī)系統(tǒng)獲取信息。您需要將 Web 服務(wù)與執(zhí)行普通 Web 服務(wù)的主機(jī)網(wǎng)關(guān)相整合。

            所有 Web 服務(wù)彼此以 XML 傳遞信息——多個(gè) SOA 中的業(yè)務(wù)流程應(yīng)當(dāng)如何整合及其在提供的服務(wù)中如何實(shí)現(xiàn)。雖然在多個(gè) SOA 中 Web 服務(wù)是可復(fù)用的,但是我進(jìn)一步將 SOA 處理成可復(fù)用的體系結(jié)構(gòu)。

            我有多個(gè)實(shí)例,它們關(guān)于將可復(fù)用的 SOA 合并成與主機(jī)系統(tǒng)相連的整合中心,我提出如下四步來(lái)創(chuàng)建中心:

            1. 將作為可復(fù)用的體系結(jié)構(gòu)的 SOA 數(shù)組劃分成兩個(gè)模塊。第一模塊主要包括整合 Web 服務(wù)的機(jī)制,而第二個(gè)模塊重在服務(wù)交互。
            2. 為了獲得最佳的速度及可靠性,將每個(gè) SOA 優(yōu)化成更緊湊的形式。檢查可能影響性能的磁盤(pán)碎片空間。
            3. 將 SOA 按照重要性及復(fù)用頻率區(qū)分優(yōu)先次序。檢查用戶對(duì)于更改 SOA 優(yōu)先權(quán)的需求。
            4. 將 SOA 合并成連接到一個(gè)或更多主機(jī)系統(tǒng)的整合中心,這些主機(jī)系統(tǒng)運(yùn)行在不同的平臺(tái)上。檢查先前沒(méi)有被提出的互用性問(wèn)題。






            模塊化的 SOA 庫(kù)

            您可以開(kāi)發(fā)模塊化的和優(yōu)化的 SOA 庫(kù),這些 SOA 被分成了不同類別的層次。每個(gè)類別可以通過(guò)層次最低級(jí)別的 Web 服務(wù)被進(jìn)一步劃分成 SOA 的子組。

            您可以將庫(kù)用作到 Web 服務(wù)應(yīng)用程序的動(dòng)態(tài)鏈接。當(dāng)應(yīng)用程序需要訪問(wèn)模塊化的 SOA 時(shí),它將自己鏈接到庫(kù)中。當(dāng)它不再需要檢索到的 SOA 時(shí),將從庫(kù)中釋放自己,當(dāng)提高速度及性能時(shí)節(jié)省磁盤(pán)空間。

            下列是庫(kù)中模塊化的 SOA 的一些實(shí)例:

            • 衛(wèi)生保健 SOA
            • 零售管理 SOA
            • 物流 SOA
            • 無(wú)線射頻識(shí)別(Radio Frequency Identification,RFID)SOA






            庫(kù)用例

            假設(shè)您使用在庫(kù)中使用最后三個(gè) SOA(零售管理、物流和 RFID)來(lái)開(kāi)發(fā)整合中心并將它們連接到主機(jī)網(wǎng)關(guān)中。今后,用戶的需求改變了——取消零售管理 SOA 并以衛(wèi)生保健 SOA 代替它。

            同時(shí),用新版本更新物流 SOA 使其迎合用戶的需求。在 RFID SOA 中包含新的子組之后,將所有子組區(qū)分優(yōu)先次序并將它們優(yōu)化。







            二維非共享的 SOA

            我們看一下 Blue Repository 中的三個(gè)模塊化的 SOA(零售管理、物流和 RFID)的二維中心(請(qǐng)見(jiàn)圖 1)。所有都連接到主機(jī)網(wǎng)關(guān)中。例如,如果您使用 ASP.Net,那么您可以通過(guò)網(wǎng)關(guān)來(lái)執(zhí)行普通的 Web 服務(wù)。


            圖 1. 非共享的 SOA 的二維中心
            非共享的 SOA 的二維中心

            如您所見(jiàn),SOA 不是共享的。您可以將這三者結(jié)合成復(fù)合應(yīng)用程序以減少到主機(jī)網(wǎng)關(guān)的連接器的數(shù)目。







            二維共享的 SOA

            圖 2 所示,RFID SOA 與物流 SOA 在一邊相交疊。交疊區(qū)域用黃色帶黑色斜線來(lái)顯示。它包含 SOA 用于生成一個(gè)或兩個(gè)服務(wù)的資源。


            圖 2. 共享的 SOA 的二維中心
            共享的 SOA 的二維中心






            代表三維空間中的中心

            您怎樣在二維計(jì)算機(jī)屏幕上設(shè)想三維的中心?處理該問(wèn)題的一種方法是在二維平面中畫(huà)出整合中心的 X、Y 和 Z 軸。另一種方法是使用軟件簡(jiǎn)單地將 2D 圖片轉(zhuǎn)換成 3D 的版本。

            在三維的中心,您可以在不改變 SOA 的情況下將現(xiàn)有的主機(jī)替換成新樣式或另一供應(yīng)商的樣式。另外,您可以重新配置或更改 SOA 的優(yōu)先權(quán)以適合新的或已更新的主機(jī)系統(tǒng)對(duì)于更改用戶及組織的需求的響應(yīng)。







            第一個(gè)三維中心

            考慮如圖 3 所示的三維空間中的整合中心。如您所見(jiàn),RFID SOA 中部分位于物流 SOA 之后。RFID SOA 的隱藏部分用到物流 SOA 的藍(lán)色線畫(huà)出。


            圖 3. 第一個(gè)共享的 SOA 的三維中心
            第一個(gè)共享的 SOA 的三維中心

            如您所見(jiàn),連接器從 RFID SOA 通過(guò)(而不是環(huán)繞)物流 SOA 到主機(jī)網(wǎng)關(guān)。這意味著從 RFID SOA 而來(lái)的連接器與物流 SOA 共享了一些資源。







            第二個(gè)三維中心

            設(shè)想 RFID SOA 的重疊部分在物流 SOA 的前面,但是不是從任一側(cè),如圖 4 所示。這給了 RFID SOA 更多的選擇來(lái)共享物流 SOA 中的大量資源。


            圖 4. 第二個(gè)共享的 SOA 的三維中心
            第二個(gè)共享的 SOA 的三維中心

            如您所見(jiàn),連接器從 RFID SOA 通過(guò)物流 SOA。






            有多少共享的 SOA?

            在三維中心中您可以共享的 SOA 的數(shù)目依賴于項(xiàng)目復(fù)雜性、合并問(wèn)題及業(yè)務(wù)流程中的利弊。向您避免 SOA 的過(guò)量開(kāi)銷(xiāo)一樣,您需要確保在開(kāi)發(fā)的整個(gè)生命周期中不會(huì)在三維空間中發(fā)生中心超負(fù)荷的問(wèn)題。您應(yīng)當(dāng)在周期的每個(gè)時(shí)刻都測(cè)試超負(fù)荷。







            結(jié)束語(yǔ)

            在三維中心中合并 SOA 需要預(yù)先規(guī)劃來(lái)設(shè)置開(kāi)發(fā)和共享的 SOA 的數(shù)目限制。您應(yīng)當(dāng)同業(yè)務(wù)分析師開(kāi)發(fā)組交流有關(guān)各種合并問(wèn)題的信息。您將發(fā)現(xiàn)解決合并問(wèn)題會(huì)使您開(kāi)發(fā)三維中心的工作變得非常容易。您可以開(kāi)發(fā)在中心可復(fù)用和共享的 SOA。分析師將發(fā)現(xiàn)解決該問(wèn)題會(huì)使他們的設(shè)計(jì)和分析三維空間的中心的工作變得非常容易。他們可以確定在不會(huì)導(dǎo)致中心超負(fù)荷的前提下哪個(gè)主機(jī)系統(tǒng)可以連接到中心。

            posted @ 2006-04-24 14:37 Tory 閱讀(171) | 評(píng)論 (0)編輯 收藏

            體系結(jié)構(gòu)中的集成需求

            討論至此,集成已限定為通過(guò)基于組件的服務(wù)進(jìn)行的應(yīng)用程序的集成,但是集成這個(gè)主題比這要寬泛得多。在估計(jì)一個(gè)體系結(jié)構(gòu)的需求時(shí),必須考慮一些集成的類型或“方式”。您必須考慮如下幾方面:

            • 應(yīng)用程序集成
            • 終端用戶界面集成
            • 應(yīng)用程序連接
            • 流程集成
            • 信息集成
            • 構(gòu)建集成開(kāi)發(fā)模型。

            終端用戶界面集成涉及如何集成特定用戶訪問(wèn)的全部應(yīng)用程序和服務(wù)來(lái)提供可用、高效、一致的界面。它是一個(gè)正在發(fā)展的主題,而新的發(fā)展在近期將主要取決于 Portal 服務(wù)器使用方面的進(jìn)展。雖然 Portlet 已經(jīng)可以通過(guò) Web 服務(wù)調(diào)用本地服務(wù)組件,但是新技術(shù)(比如用戶遠(yuǎn)程 Portlet 的 Web 服務(wù))將使內(nèi)容和應(yīng)用程序提供者能夠創(chuàng)建交互式服務(wù),這些服務(wù)在因特網(wǎng)上可以通過(guò) Portal 即插即用,從而為很多新的集成提供了可能。

            應(yīng)用程序連接是一種集成方式,它涉及體系結(jié)構(gòu)必須支持的所有類型的連接。在一個(gè)層次上,這意味著數(shù)據(jù)的同步和異步通信、路由、轉(zhuǎn)換和高速分布、以及網(wǎng)關(guān)和協(xié)議轉(zhuǎn)換器等等。而在另一個(gè)層次上,它還與輸入和輸出或源(sources)和匯(sinks)的虛擬化有關(guān),正如您在 EWA 的通道(Channel)和協(xié)議轉(zhuǎn)換程序(Protocol Handlers)中所看到的。這里的問(wèn)題在于數(shù)據(jù)移入、移出以及在實(shí)現(xiàn)體系結(jié)構(gòu)的框架中移動(dòng)的方式。

            流程集成涉及開(kāi)發(fā)映射到業(yè)務(wù)流程和為業(yè)務(wù)流程提供解決方案的計(jì)算流程、將應(yīng)用程序集成到流程以及集成一些流程與其他一些流程。雖然第一項(xiàng)需求可能看起來(lái)似乎無(wú)關(guān)緊要,不過(guò)就是體系結(jié)構(gòu)提供一個(gè)模擬基本業(yè)務(wù)問(wèn)題的環(huán)境,但是,如果在這一層中不進(jìn)行充分的分析,體系結(jié)構(gòu)的任何實(shí)現(xiàn)注定都將失敗,不管它采用的技術(shù)是多么的巧妙。將應(yīng)用程序集成到流程可能包括企業(yè)中的應(yīng)用程序,也可能涉及調(diào)用遠(yuǎn)程系統(tǒng)中的應(yīng)用程序或服務(wù),而這些遠(yuǎn)程系統(tǒng)多半屬于業(yè)務(wù)合作伙伴。同樣地,流程層集成可能涉及整個(gè)流程的集成而不僅僅是來(lái)自外部源的單個(gè)服務(wù),比如供應(yīng)鏈管理或金融服務(wù)這樣橫跨多個(gè)機(jī)構(gòu)的流程。為了滿足這樣的應(yīng)用程序和流程的集成需求,可以使用像 BPEL4WS 這樣的技術(shù),而應(yīng)用程序框架也可以使用程序配置 Scheme(比如在 EWA 中看到的)。實(shí)際上,可以在底層使用 BPEL4WS 來(lái)構(gòu)造一個(gè)高層配置 Scheme,然后通過(guò)一個(gè)引擎來(lái)驅(qū)動(dòng),這個(gè)引擎不僅提供流管理,而且還提供其他功能。然而,在構(gòu)建這一切之前,您應(yīng)該首先了解體系結(jié)構(gòu)方面的需求,然后,再構(gòu)建合適的基礎(chǔ)架構(gòu)。

            信息集成是一個(gè)流程,其作用在于為所有需要它的應(yīng)用程序提供對(duì)企業(yè)中全部數(shù)據(jù)的一致訪問(wèn),而不管這些應(yīng)用程序是以什么形式需要它,也不受數(shù)據(jù)的格式、來(lái)源或位置的限制。在實(shí)現(xiàn)時(shí),這項(xiàng)需求可能包括 適配器和轉(zhuǎn)換引擎,不過(guò)它通常要比這復(fù)雜。而關(guān)鍵的概念往往是數(shù)據(jù)的虛擬化,這可能包括 數(shù)據(jù)總線(Data Bus)的開(kāi)發(fā),企業(yè)中的所有應(yīng)用程序都通過(guò)標(biāo)準(zhǔn)服務(wù)或接口從數(shù)據(jù)總線中請(qǐng)求數(shù)據(jù)。因此,不管數(shù)據(jù)是來(lái)自電子數(shù)據(jù)表、本地文件、SQL 或 DL/I 數(shù)據(jù)庫(kù),還是來(lái)自內(nèi)存中的數(shù)據(jù)存儲(chǔ),都可以將數(shù)據(jù)提供給應(yīng)用程序。永久存儲(chǔ)中的數(shù)據(jù)格式可能還不為應(yīng)用程序所知。應(yīng)用程序更不知道管理數(shù)據(jù)的操作系統(tǒng),因而訪問(wèn) AIX 或 Linux 系統(tǒng)中的本地文件的方式與這些文件放在 Windows、OS/2、ZOS 或其他系統(tǒng)中時(shí)訪問(wèn)它們的方式相同。同樣地,數(shù)據(jù)的位置也是透明的;由于它是由共同的服務(wù)提供的,所以是由訪問(wèn)服務(wù)而不是由應(yīng)用程序來(lái)負(fù)責(zé)查詢數(shù)據(jù)(無(wú)論是本地的還是遠(yuǎn)程的),然后按照請(qǐng)求的格式提供數(shù)據(jù)。

            應(yīng)用程序開(kāi)發(fā)環(huán)境的最后一項(xiàng)需求是,必須考慮可能在企業(yè)中實(shí)現(xiàn)的集成的所有方式和層次,并且為它們的開(kāi)發(fā)和部署做好準(zhǔn)備。要想真正做到健壯,開(kāi)發(fā)環(huán)境必須包括(和執(zhí)行)一種方法來(lái)明確地規(guī)定如何設(shè)計(jì)和構(gòu)建服務(wù)和組件,以便促進(jìn)重用、消除冗余和簡(jiǎn)化測(cè)試、部署和維護(hù)。

            上面列出的所有集成方式在任何企業(yè)中都有一定程度的體現(xiàn),盡管在某些情況下它們可能是簡(jiǎn)化的,或者沒(méi)有明確地進(jìn)行定義;因而,在著手設(shè)計(jì)新的體系結(jié)構(gòu)框架時(shí),您必須全面的考慮它們。特定的 IT 環(huán)境可能只有很少的數(shù)據(jù)源類型,因此,消息集成可能會(huì)很簡(jiǎn)單。同樣地,應(yīng)用程序連接的作用域可能也很有限。雖然如此,如果希望框架能夠隨著企業(yè)的成長(zhǎng)和變化成功地繼續(xù)得以保持,則框架中的集成功能仍然必須由服務(wù)提供,而不是由特定的應(yīng)用程序來(lái)完成。

            posted @ 2006-04-21 17:35 Tory 閱讀(177) | 評(píng)論 (0)編輯 收藏

            Where storage lives

            It’s useful to visualize some aspects of how things are laid out while the program is running—in particular how memory is arranged. There are six different places to store data: Feedback

            1. Registers. This is the fastest storage because it exists in a place different from that of other storage: inside the processor. However, the number of registers is severely limited, so registers are allocated by the compiler according to its needs. You don’t have direct control, nor do you see any evidence in your programs that registers even exist. Feedback
            2. The stack. This lives in the general random-access memory (RAM) area, but has direct support from the processor via its stack pointer. The stack pointer is moved down to create new memory and moved up to release that memory. This is an extremely fast and efficient way to allocate storage, second only to registers. The Java compiler must know, while it is creating the program, the exact size and lifetime of all the data that is stored on the stack, because it must generate the code to move the stack pointer up and down. This constraint places limits on the flexibility of your programs, so while some Java storage exists on the stack—in particular, object references—Java objects themselves are not placed on the stack. Feedback
            3. The heap. This is a general-purpose pool of memory (also in the RAM area) where all Java objects live. The nice thing about the heap is that, unlike the stack, the compiler doesn’t need to know how much storage it needs to allocate from the heap or how long that storage must stay on the heap. Thus, there’s a great deal of flexibility in using storage on the heap. Whenever you need to create an object, you simply write the code to create it by using new,and the storage is allocated on the heap when that code is executed. Of course there’s a price you pay for this flexibility. It takes more time to allocate heap storage than it does to allocate stack storage (if you even could create objects on the stack in Java, as you can in C++). Feedback
            4. Static storage. “Static” is used here in the sense of “in a fixed location” (although it’s also in RAM). Static storage contains data that is available for the entire time a program is running. You can use the static keyword to specify that a particular element of an object is static, but Java objects themselves are never placed in static storage. Feedback
            5. Constant storage. Constant values are often placed directly in the program code, which is safe since they can never change. Sometimes constants are cordoned off by themselves so that they can be optionally placed in read-only memory (ROM), in embedded systems. Feedback
            6. Non-RAM storage. If data lives completely outside a program, it can exist while the program is not running, outside the control of the program. The two primary examples of this are streamed objects, in which objects are turned into streams of bytes, generally to be sent to another machine, and persistent objects, in which the objects are placed on disk so they will hold their state even when the program is terminated. The trick with these types of storage is turning the objects into something that can exist on the other medium, and yet can be resurrected into a regular RAM-based object when necessary. Java provides support for lightweight persistence, and future versions of Java might provide more complete solutions for persistence. Feedback
            posted @ 2006-04-20 22:40 Tory 閱讀(118) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共2頁(yè): 1 2 
            51久久夜色精品国产| 久久性精品| 久久99热这里只有精品国产| 国产精品久久久久乳精品爆| 潮喷大喷水系列无码久久精品| 伊人久久综合精品无码AV专区| 婷婷久久综合九色综合绿巨人| 激情综合色综合久久综合| 99久久精品免费看国产一区二区三区 | 色99久久久久高潮综合影院| 国产三级精品久久| 久久精品免费网站网| 久久精品国产精品亚洲人人| 久久成人永久免费播放| 久久久久久久久久久免费精品 | 欧美性猛交xxxx免费看久久久| 国产精品无码久久四虎| 久久久WWW成人免费精品| 国产伊人久久| 日日狠狠久久偷偷色综合0| 久久久黄色大片| 国产69精品久久久久777| 国产精品久久久久久福利69堂| 国产欧美久久一区二区| 国产亚洲精午夜久久久久久| 欧美国产成人久久精品| 久久久一本精品99久久精品88| 久久亚洲精品中文字幕| 精品久久久久久中文字幕| 久久久青草青青亚洲国产免观| 国产成人精品久久一区二区三区av| 久久se精品一区精品二区国产| 久久中文字幕无码专区| 久久伊人五月丁香狠狠色| 久久99精品久久久久久hb无码 | 中文字幕乱码久久午夜| 久久精品国产亚洲网站| 亚洲国产精品综合久久一线| 久久人人爽人人爽人人片av高请| 国产精品久久网| 久久成人小视频|