锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
2. 鍦ㄥ垪鍑虹殑蹇嵎閿垪琛ㄤ腑鏌ユ壘鍒幫細(xì)word competion錛屾妸瀹冪殑蹇嵎閿產(chǎn)lt + / 鏀規(guī)垚鍏跺畠鐨勫揩鎹烽敭錛堟庝箞鏀癸紝鍏堟妸姝ゅ揩鎹烽敭鍒犻櫎錛岀偣鍙寵竟鐨勬寜閽?remove binding", 鍐嶉変腑binding鏂囨湰妗嗭紝杈撳叆浣犳兂瑕佺殑蹇嵎閿級銆?
3. 鍦ㄥ垪鍑虹殑蹇嵎閿垪琛ㄤ腑鏌ユ壘鍒幫細(xì)content assist錛屾妸瀹冪殑蹇嵎閿?ctrl + space 鏀規(guī)垚鎴戜滑鎯崇殑鐨?alt + / 鍗沖彲浜嗐?br />
瑙e喅鍔炴硶浜岋細(xì)
window->Preferences->Java->Editor->Content Assist->Advanced
涓婇潰鐨勯夐」鍗elect the proposal kinds contained in the 'default' content assist list: 涓妸 Other Java Proposals 閫夐」鎵撲笂鍕懼氨鍙互浜嗐?
]]>
鏈榪戠殑宸ヤ綔閲嶇偣鏄疻eb Data Mining, 緇忚繃榪戜竴鍛ㄧ殑Paper瀛︿範(fàn)鍚庯紝瀵逛簬Web鏃ュ織鐨勬寲鎺樻湁浜嗕竴浜涙兂娉曘備笅闈㈠氨搴旇鏄敖蹇繘琛屽疄璺點(diǎn)?/span>
浜庢槸錛屼粖澶╁埄鐢ㄦ櫄涓婄殑鏃墮棿錛屾垚鍔熷畨瑁呬簡Weka(version 3.4.12)錛屽浜嶹eka鐨勫畨瑁咃紝鐢變簬Weka鏄竴涓暟鎹寲鎺樿蔣浠訛紝褰撶劧闇瑕佸拰鏁版嵁搴撹繘琛岃繛鎺ワ紝鍥犳闇瑕佷笅杞介┍鍔紝甯哥敤鐨勫強(qiáng)鍏舵敮鎸佺殑鏈夛細(xì)MySQL, HSQL Database, Mckoi SQL Database, RmiJdbc, 闇瑕佹敞鎰忎互涓嬪嚑鐐癸細(xì)
涓.姝e父鎯呭喌涓嬶紝瑕佸湪CLASSPATH娣誨姞涓婇潰涓嬭澆鐨勬暟鎹┍鍔╦ar鍖咃紝浣嗙洰鍓嶇殑闂鏄嵆浣挎紜坊鍔狅紝涔熶細(xì)鎻愮ず“Trying to add JDBC driver: ***Driver - Error, not in CLASSPATH?”絳夌被浼肩殑璇彞錛堟垜鐢ㄧ殑鏄疻indows緋葷粺錛孡inux鏈夊緟浜庡仛瀹為獙紜錛夛紝鎵浠ュ緩璁洿鎺ュ湪鍛戒護(hù)琛岃緭鍏ヨ礬寰勪俊鎭紝濡傦細(xì)java –Xmx128m –classpath "hsqldb.jar;mysql-connector-java-5.15.bin.jar;RmiJdbc.jar;mkjdbc.jar;weka.jar" weka.gui.GUIChooser 錛堟敞錛氭垜灝嗚繖浜涙暟鎹┍鍔╦ia鍖呮斁鍦ㄤ簡Weka瀹夎鐩綍涓嬶級
浜?Weka(Version3.4.12)瀵逛簬RmiJdbc錛屼竴瀹氶夋嫨鐗堟湰2.5錛堢増鏈?.3錛?.2錛?.05鎴戜笅杞藉悗娣誨姞渚濈劧鎻愮ずTrying to add JDBC driver:RmiJdbc.RJDriver - Error, not in CLASSPATH?閿欒錛?.0鐗堟湰鍚屾牱涔熶笉琛岋級錛涘浜嶹eka(version 3.5.5) 瀵逛簬RmiJdbc錛屼竴瀹氶夋嫨鐗堟湰3.05鎴?.5銆?/span>
涓嬮潰鏄浜嶹eka瀛︿範(fàn)鐨勪竴涓棩紼嬪畨鎺掞紝浠ュ仛澶囧繕錛?br />
1錛庝笅杞藉拰瀹夎Weka (4.16-4.21)
2錛庢寜鐓у弬鑰?a title="ppt" >ppt鎻愪緵鐨勪緥瀛愯窇閫歝lustering綆楁硶錛屽茍涓斾簡瑙e畠鐨勫悇欏規(guī)剰涔?4.21-4.30)
3錛庢壘涓鏉傜殑渚嬪瓙錛堜笅杞芥暟鎹泦http://www.cs.waikato.ac.nz/ml/weka/index_datasets.html錛夎窇閫氬茍瑙i噴鍏舵暟鎹剰涔?5.1-5.6)
4錛庢妸涓涓狢lustering綆楁硶鏀瑰啓鎴怘adoop浠g爜榪愯鍦ㄦ湇鍔″櫒涓?5.6-5.20)
For the systems research partitions, we can create our own design, studying the different kinds of design patterns. (e.g.: high-end hardware, low-cost component).
The paper Data-Intensive Supercomputing: The case for DISC gives me an entire impression of a new form of high-performance computing facility, and there are many other aspects that deeply attract me, I've taken notes on this paper as follows:
闃呰Paper錛?/span>
Randal E. Bryant May 10, 2007 CMU-CS-07-128
Question錛?/span>How can university researchers demonstrate the credibility of their work without having comparable computing facilities available?
Describe a new form of high-performance computing facility (Data-Intensive Super Computer) that places emphasis on data, rather than raw computation, as the core focus of the system.
The author inspiration for DISC: comes from the server infrastructures that have been developed to support search over the worldwide web.
This paper outlines the case for DISC as an important direction for large-scale computing systems.
The common role in the computations:
• Web search without language barriers. (No matter in which language they type the query)
• Inferring biological function from genomic sequences.
• Predicting and modeling the effects of earthquakes.
• Discovering new astronomical phenomena from telescope imagery data.
• Synthesizing realistic graphic animations.
• Understanding the spatial and temporal patterns of brain behavior based on MRI data.
Conventional (Current) supercomputers:
are evaluated largely on the number of arithmetic operations they can supply each second to the application programs.
Advantage: highly structured data requires large amounts of computation.
Disadvantage:
1. It creates misguided priorities in the way these machines are designed, programmed, and operated;
2. Disregarding the importance of incorporating computation-proximate, fast-access data storage, and at the same time creating machines that are very difficult to program effectively;
3. The range of computational styles is restricted by the system structure.
The key principles of DISC:
1. Intrinsic, rather than extrinsic data.
2. High-level programming models for expressing computations over the data.
3. Interactive access.
4. Scalable mechanisms to ensure high reliability and availability. (error detection and handling)
1. The Google system actively maintains cached copies of every document it can find on the Internet.
The system constructs complex index structures, summarizing information about the documents in forms that enable rapid identification of the documents most relevant to a particular query.
When a user submits a query, the front end servers direct the query to one of the clusters, where several hundred processors work together to determine the best matching documents based on the index structures. The system then retrieves the documents from their cached locations, creates brief summaries of the documents, orders them with the most relevant documents first, and determines which sponsored links should be placed on the page.
2. The Google hardware design is based on a philosophy of using components that emphasize low cost and low power over raw speed and reliability. Google keeps the hardware as simple as possible.
They make extensive use of redundancy and software-based reliability.
These failed components are removed and replaced without turning the system off.
Google has significantly lower operating costs in terms of power consumption and human labor than do other data centers.
3. MapReduce, that supports powerful forms of computation performed in parallel over large amounts of data.
Two function: a map function that generates values and associated keys from each document, and a reduction function that describes how all the data matching each possible key should be combined.
MapReduce can be used to compute statistics about documents, to create the index structures used by the search engine, and to implement their PageRank algorithm for quantifying the relative importance of different web documents.
4. BigTable: a distributed data structures, provides capabilities similar to those seen in database systems.
The DISC operations could include user-specified functions in the style of Google’s MapReduce programming framework. As with databases, different users will be given different authority over what operations can be performed and what modifications can be made.
The open source project Hadoop implements capabilities similar to the Google file system and support for MapReduce.
Constructing a General-Purpose DISC System錛?/span>
• Hardware Design.
There are a wide range of choices;
We need to understand the tradeoffs between the different hardware configurations and how well the system performs on different applications.
Google has made a compelling case for sticking with low-end nodes for web search applications, and the Google approach requires much more complex system software to overcome the limited performance and reliability of the components. But it might not be the most cost-effective solution for a smaller operation when personnel costs are considered.
• Programming Model.
1. One important software concept for scaling parallel computing beyond 100 or so processors is to incorporate error detection and recovery into the runtime system and to isolate programmers from both transient and permanent failures as much as possible.
Work on providing fault tolerance in a manner invisible to the application programmer started in the context of grid-style computing, but only with the advent of MapReduce and in recent work by Microsoft has it become recognized as an important capability for parallel systems.
2. We want programming models that dynamically adapt to the available resources and that perform well in a more asynchronous execution environment.
e.g.: Google’s implementation of MapReduce partitions a computation into a number of map and reduce tasks that are then scheduled dynamically onto a number of “worker” processors.
• Resource Management.
Problem: how to manage the computing and storage resources of a DISC system.
We want it to be available in an interactive mode and yet able to handle very large-scale computing tasks.
• Supporting Program Development.
Developing parallel programs is difficult, both in terms of correctness and to get good performance.
As a consequence, we must provide software development tools that allow correct programs to be written easily, while also enabling more detailed monitoring, analysis, and optimization of program performance.
• System Software.
System software is required for a variety of tasks, including fault diagnosis and isolation, system resource control, and data migration and replication.
Google and its competitors provide an existence proof that DISC systems can be implemented using available technology. Some additional topics include:
• How should the processors be designed for use in cluster machines?
• How can we effectively support different scientific communities in their data management and applications?
• Can we radically reduce the energy requirements for large-scale systems?
• How do we build large-scale computing systems with an appropriate balance of performance and cost?
• How can very large systems be constructed given the realities of component failures and repair times?
• Can we support a mix of computationally intensive jobs with ones requiring interactive response?
• How do we control access to the system while enabling sharing?
• Can we deal with bad or unavailable data in a systematic way?
• Can high performance systems be built from heterogenous components?
Operate two types of partitions: some for application development, focusing on gaining experience with the different programming techniques, and others for systems research, studying fundamental issues in system design.
For the program development partitions:
Use available software, such as the open source code from the Hadoop project, to implement the file system and support for application programming.
For the systems research partitions:
Create our own design, studying the different layers of hardware and system software required to get high performance and reliability. (e.g.: high-end hardware, low-cost component)
Begin application development by renting much of the required computing infrastructure:
1. network-accessible storage: Simple Storage System (S3) service
2. computing cycles: Elastic Computing Cloud (EC2) service
(The current pricing for storage is $0.15 per gigabyte per day ($1,000 per terabyte per year), with addition costs for reading or writing the data. Computing cycles cost $0.10 per CPU hour ($877 per year) on a virtual Linux machine.)
Renting problems:
1. The performance of such a configuration is much less than that of a dedicated facility.
2. There is no way to ensure that the S3 data and the EC2 processors will be in close enough proximity to provide high speed access.
3. We would lose the opportunity to design, evaluate, and refine our own system.
1. We believe that DISC systems could change the face of scientific research worldwide.
2. DISC will help realize the potential all these data such as the combination of sensors and networks to collect data, inexpensive disks to store data, and the benefits derived by analyzing data provides.
Data distributed over many disks
Compute using many processors
Connected by gigabit Ethernet (or equivalent)
Lots of disks
Lots of processors
Located in close proximity
Conventional Supercomputers |
DISC |
Data stored in separate repository No support for collection or management Brought into system for computation Time consuming Limits interactivity |
System collects and maintains data Shared, active data set Computation colocated with storage Faster access |
Conventional Supercomputers |
DISC |
Programs described at very low level Specify detailed control of processing & communications Rely on small number of software packages Written by specialists Limits classes of problems & solution methods |
Application programs written in terms of high-level operations on data Runtime system controls scheduling, load balancing, … |
Conventional Supercomputers |
DISC |
Main Machine: Batch Access Priority is to conserve machine resources User submits job with specific resource requirements Run in batch mode when resources available Offline Visualization Move results to separate facility for interactive use |
Interactive Access Priority is to conserve human resources User action can range from simple query to complex computation System supports many simultaneous users Requires flexible programming and runtime environment |
Conventional Supercomputers |
DISC |
“Brittle” Systems Main recovery mechanism is to recompute from most recent checkpoint Must bring down system for diagnosis, repair, or upgrades |
Flexible Error Detection and Recovery Runtime system detects and diagnoses errors Selective use of redundancy and dynamic recomputation Replace or upgrade components while system running Requires flexible programming model & runtime environment |
(i) Computation: Distribute problem across many machines
Generally only those with easy partitioning into independent subproblems
(ii) Data: Support shared access to large-scale data set
(i) Enables more demanding computational tasks
(ii) Reduces time required to get data to machines
(iii) Enables more flexible resource management
Designed for “data warehouse” applications
Heavy duty analysis of database
Data distributed over up to 500 Snippet Processing Units
Disk storage, dedicated processor, FPGA controller
User “programs” expressed in SQL
Elastic Compute Cloud (EC2)
Generic Linux cycles for $0.10 / hour ($877 / yr)
Simple Storage Service (S3)
Network-accessible storage for $0.15 / GB / month ($1800/TB/yr)
Hadoop Project
Open source project providing file system and MapReduce
Supported and used by Yahoo
Programming Support
Abstractions for computation & data representation
E.g., Google: MapReduce & BigTable
Usage models
Runtime Support
Allocating processing and storage
Scheduling multiple users
Implementing programming model
Error Handling
Detecting errors
Dynamic recovery
Identifying failed components
5.1 Deriving REST
Two common perspectives on the process of architectural design:
The first is that a designer starts with nothing鈥攁 blank slate, whiteboard, or drawing board鈥攁nd builds-up an architecture from familiar components until it satisfies the needs of the intended system.
The second is that a designer starts with the system needs as a whole, without constraints, and then incrementally identifies and applies constraints to elements of the system in order to differentiate the design space and allow the forces that influence system behavior to flow naturally, in harmony with the system.
REST is based on the latter process.
The following eight sections depict how the applied constraints would differentiate the process view of an architecture as the incremental set of constraints is applied.
From the Null style (Figure 5-1) is simply an empty set of constraints. It is the starting point for our description of REST.
From the client-server architectural style (Figure 5-2)
Separation of concerns is the principle behind the client-server constraints. Perhaps most significant to the Web is that the separation allows the components to evolve independently, thus supporting the Internet-scale requirement of multiple organizational domains.
From the client-stateless-server (CSS) style (Figure 5-3)
Each request from client to server must contain all of the information necessary to understand the request, and cannot take advantage of any stored context on the server.
Session state is kept entirely on the client.
Advantage: ease the pressure of Sever.
Disadvantage: decrease network performance by increasing the repetitive data in a series of requests in clients.
From the client-cache-stateless-server style (Figure 5-4).
Requiring: a response is implicitly or explicitly labeled as cacheable or noncacheable.
Advantage: eliminate some interactions.
Disadvantage: decrease reliability if state data within the cache differs significantly from the data that would have been sent directly to the server.
The central feature that distinguishes the REST architectural style from other network-based styles is its emphasis on a uniform interface between components (Figure 5-6).
The REST interface is designed to be efficient for large-grain hypermedia data transfer, optimizing for the common case of the Web.
REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self-descriptive messages; and, hypermedia as the engine of application state.
From layered system constraints (Figure 5-7).
The layered system style allows an architecture to be composed of hierarchical layers by constraining component behavior such that each component cannot “see” beyond the immediate layer with which they are interacting.
From the code-on-demand style (Figure 5-8).
REST allows client functionality to be extended by downloading and executing code in the form of applets or scripts. This simplifies clients by reducing the number of features required to be pre-implemented. Allowing features to be downloaded after deployment improves system extensibility.
Figure 5-9 depicts the derivation of REST’s constraints graphically in terms of the network-based architectural styles examined in Chapter 3.
5.2 REST Architectural Elements
The nature and state of an architecture’s data elements is a key aspect of REST.
Three fundamental options: 1) render the data where it is located and send a fixed-format image to the recipient; 2) encapsulate the data with a rendering engine and send both to the recipient; or, 3) send the raw data to the recipient along with metadata that describes the data type, so that the recipient can choose their own rendering engine.
浠g悊鍜岀綉鍏充箣闂寸殑鍖哄埆鏄紝浣曟椂浣跨敤浠g悊鏄敱瀹㈡埛绔潵鍐沖畾鐨?/span>
5.3 REST Architectural Views
5.3.1 Process View
5.3.2 Connector View
5.3.3 Data View
4.1 WWW Application Domain Requirements
1. Since participation in the creation and structuring of information was voluntary, a low entry-barrier was necessary to enable sufficient adoption. This applied to all users of the Web architecture: readers, authors, and application developers.
2. Simplicity was also a goal for the sake of application developers.
Extensibility: A system intending to be as long-lived as the Web must be prepared for change.
1. The usability of hypermedia interaction is highly sensitive to user-perceived latency: the time between selecting a link and the rendering of a usable result.
2. The architecture needs to minimize network interactions.
1. The Internet is about interconnecting information networks across multiple organizational boundaries.
2. Suppliers of information services must be able to cope with the demands of anarchic scalability and the independent deployment of software components.
1. Anarchic scalability refers to the need for architectural elements to continue operating when they are subjected to an unanticipated load, or when given malformed or maliciously constructed data, since they may be communicating with elements outside their organizational control.
2. The anarchic scalability requirement applies to all architectural elements.
3. Security of the architectural elements, and the platforms on which they operate, also becomes a significant concern.
4.2 Problem
4.3 Approach
The first step, is to identify the constraints placed within the early Web architecture that are responsible for its desirable properties.
Hypothesis I: The design rationale behind the WWW architecture can be described by an architectural style consisting of the set of constraints applied to the elements within the Web architecture.
The next step, is to identify the properties desirable in an Internet-scale distributed hypermedia system, select additional architectural styles that induce those properties, and combine them with the early Web constraints to form a new, hybrid architectural style for the modern Web architecture.
Hypothesis II: Constraints can be added to the WWW architectural style to derive a new hybrid style that better reflects the desired properties of a modern Web architecture.
The third step, is to use the new architectural style as a guide, we can compare proposed extensions and modifications to the Web architecture against the constraints within the style.
Hypothesis III: Proposals to modify the Web architecture can be compared to the updated WWW architectural style and analyzed for conflicts prior to deployment.
This approach as a single sequence, it is actually applied in a non-sequential, iterative fashion.
4.4 Summary
My approach is to use an architectural style to define and improve the design rationale behind the Web’s architecture, to use that style as the acid test for proving proposed extensions prior to their deployment, and to deploy the revised architecture via direct involvement in the software development projects that have created the Web’s infrastructure.
3.1 Classification Methodology
In order to provide useful design guidance, a classification of architectural styles should be based on the architectural properties induced by those styles.
3.2 Data-flow Styles
Description: In a pipe and filter style, each component (filter) reads streams of data on its inputs and produces streams of data on its outputs, usually while applying a transformation to the input streams and processing them incrementally so that output begins before the input is completely consumed.
Characteristic:
1. One-way data flow network;
2. Zero coupling: a filter must be completely independent of other filters.
Advantage: (by Garlan and Shaw)
1. Simplicity: PF allows the designer to understand the overall input/output of the system as a simple composition of the behaviors of the individual filters.
2. Reusability: any two filters can be hooked together, provided they agree on the data that is being transmitted between them.
3. Extensibility and evolvability: new filters can be added to existing systems (extensibility) and old filters can be replaced by improved ones (evolvability).
4. Verifiability: they permit certain kinds of specialized analysis.
5. User-perceived performance: they naturally support concurrent execution.
6. Configurability: a network of filters is typically arranged just prior to each activation, allowing the application to specify the configuration of filter components based on the task at hand and the nature of the data streams.
Disadvantage:
1. Propagation delay: propagation delay is added through long pipelines;
2. Batch sequential processing occurs if a filter cannot incrementally process its inputs, and no interactivity is allowed.
3. A filter cannot interact with its environment: because it cannot know that any particular output stream shares a controller with any particular input stream.
4. User-perceived performance: these properties decrease user-perceived performance if the problem being addressed does not fit the pattern of a data flow stream.
Characteristic: the uniform pipe and filter style adds the constraint that all filters must have the same interface.
Advantage:
Example: Unix operating system, where filter processes have an interface consisting of one input data stream of characters (stdin) and two output data streams of characters (stdout and stderr).
1. Restricting the interface allows independently developed filters to be arranged at will to form new applications.
2. It also simplifies the task of understanding how a given filter works.
Disadvantage:
It may reduce network performance if the data needs to be converted to or from its natural format.
3.3 Replication Styles
Example: (1) distributed filesystems, such as XMS, and, (2) remote versioning systems, like CVS [www.cyclic.com].
Advantage: Improved user-perceived performance, both by reducing the latency of normal requests and enabling disconnected operation in the face of primary server failure or intentional roaming off the network(綰夸笅婕父).
Concern: Maintaining consistency is the primary concern.
This form of replication is most often found in cases (1) where the potential data set far exceeds the capacity of any one client, as in the WWW, or (2) where complete access to the repository is unnecessary.
Advantage:caching is much easier to implement, doesn’t require as much processing and storage, and is more efficient because data is transmitted only when it is requested.
A typical network-based architectural style: client-stateless-server style (rest rationale).
3.4 Hierarchical Styles
Description:
1. A server component: offering a set of services, listens for requests upon those services.
A client component: desiring that a service be performed, sends a request to the server via a connector.
2. by Andrews:
A client is a triggering process;
A server is a reactive process.
Clients make requests that trigger reactions from servers.
A server is usually a non-terminating process and often provides service to more than one client.
Principle:Separation of concerns.
Simplify the server component in order to improve scalability.
Method: moving all of the user interface functionality into the client component.
The partition between C and S components: It is often referred to by the mechanisms used for the connector implementation, such as remote procedure call or message-oriented middleware.
Layered System:
1. A layered system is organized hierarchically, each layer providing services to the layer above it and using services of the layer below it.
2.Layered systems reduce coupling across multiple layers by hiding the inner layers from all except the adjacent outer layer. In all, in multiple layers, every layer only couples the adjacent outer layer, thus improving evolvability and reusability (e.g., TCP/IP and OSI protocol stacks, and hardware interface libraries).
3. Disadvantage:layered systems add overhead and latency to the processing of data, reducing user-perceived performance.
Layered-Client-Server:
Layered-client-server adds proxy and gateway components to the client-server style.
Client -> Proxy -> Gateway -> Server
A proxy acts as a shared server for one or more client components, taking requests and forwarding them, with possible translation, to server components.
A gateway component appears to be a normal server to clients or proxies that request its services, but is in fact forwarding those requests, with possible translation, to its “inner-layer” servers.
Characteristic: no session stateis allowed on the server component.
Each request from client to server must contain all of the information necessary to understand the request, and cannot take advantage of any stored context on the server. Session state is kept entirely on the client.
Advantage: visibility, reliability, and scalability.
Disadvantage:it may decrease network performance by increasing the repetitive data (per-interaction overhead) sent in a series of requests, since that data cannot be left on the server in a shared context.
Characteristic: the client-cache-stateless-server style derives from the client-stateless-server and cache styles via the addition of cache components.
Description: A cache acts as a mediator between client and server in which the responses to prior requests can, if they are considered cacheable, be reused in response to later requests that are equivalent.
Example: an example system that makes effective use of this style is Sun Microsystems’ NFS.
Advantage: cache components have the potential to partially or completely eliminate some interactions, improving efficiency and user-perceived performance.
Characteristic: the layered-client-cache-stateless-server style derives from both layered-client-server and client-cache-stateless-server through the addition of proxy and/or gateway components.
Example: an example system that uses an LC$SS style is the Internet domain name system (DNS).
Characteristic: minimize the complexity, or maximize the reuse of the client components,andthe application state on server.
Description: each client initiates a session on the server and then invokes a series of services on the server, finally exiting the session. Application state is kept entirely on the server.
Example: when it is desired to access a remote service using a generic client (e.g., TELNET) or via an interface that mimics a generic client (e.g., FTP).
Advantage: (1) easier to centrally maintain the interface at the server, (2) reducing concerns about inconsistencies in deployed clients, and (3) improves efficiency if the interactions make use of extended session context on the server.
Disadvantage:(1) reduces scalability of the server, due to the stored application state, and, (2) reduces visibility of interactions, since a monitor would have to know the complete state of the server.
Characteristic: the remote data access style is a variant of client-server that spreads the application state across both client and server.
Description: a client sends a database query in a standard format, such as SQL, to a remote server. The server allocates a workspace and performs the query,which may result in a very large data set. The client must know about the data structure of the service to build structure-dependent queries.
Advantage:
Eficiency: a large data set can be iteratively reduced on the server side without transmitting it across the network.
Visibility: is improved by using a standard query language.
Disadvantage:
Lacking simplicity: the client needs to understand the same database manipulation concepts as the server implementation
Decreases scalability: storing application context on the server decreases scalability.
Suffered reliability: partial failure can leave the workspace in an unknown state.
3.5 Mobile Code Styles
3.6 Peer-to-Peer Styles
3.7 Limitations
3.8 Related Work