SharePoint 2010 provides a site template that's built for delivering search results. You can use this template to create a branded search experience or to customize how results appear. You can choose among three search center site templates:
-
Basic Search Center delivers a stripped down search experience in one page. This site template uses Web Part pages and is essentially a team site specialized for search.
-
Enterprise Search Center provides multiple pages for displaying search results. This site template uses publishing pages, which make it easier to brand and customize than Basic Search Center.
-
FAST Search Center is used with the add-on search product FAST Search for SharePoint 2010 to provide enhanced search results. Very large enterprises use the FAST search product. Any search solutions you create with SharePoint 2010’s default search options continue to work even if your company chooses to deploy FAST.
You can create a new site using one of the search center templates. To configure your site collection to use your search center site, enter the relative URL to your search center in the Search Settings page. Anytime someone executes a search on your site, she's directed to the search results site.
Your search center doesn’t have to be in the same site collection. You can create a new site collection using one of the search center templates and then configure multiple site collections to use that same search center.
Individual search boxes found on the master page, in page layouts, or placed directly on web pages can be configured to use the default settings or have their own custom settings.
The meat and potatoes of the search experience aren’t the search center; it’s the Search Web Parts that are used to display search results. These Web Parts can be configured to meet almost any search requirement you can dream up.
This is the results page from the search center in Edit mode. The page has seven Web Parts on the page, each one with its own set of configuration options. Don’t want your results page to include People Matches? Delete that Web Part from the page.
You aren’t restricted to using the Search Web Parts in the search center. You can create your own search results page and add the Search Web Parts to the page.
Configure Your SharePoint 2010's Site Search Settings
The search box is just a text box with the prompt Search This Site inside it. Immediately, you can create a custom search results page, define the set of scopes that appear in the drop-down list next to the search box, and determine whether the search drop-down list appears on the page. You set all these options for search in one place, but first you have prep work to do.
By default, the search box is configured to use your site’s search configuration settings. To configure your site’s search settings:
Choose Site Actions→Site Settings to browse to the Site Settings page for your site collection.
The Site Settings page appears.
In the Site Collection Administration section, click the Search Settings link.
The Search Settings page appears.
(Optional) On the Search Settings page, select the Enable Custom Scopes radio button if you want to use a search center.
All your site’s searches will use SharePoint’s default search page. By choosing to use custom search drop-down lists, you can target your search results to a search center, which is essentially a custom search results page.
In the Site Search Dropdown Mode section, select the option that describes how you want all the search boxes in the site to behave.
For example, if you want all the search boxes to show Scope drop-down lists, choose Show Scope Dropdowns from the list.
Choose the option that you want to be the default for all search boxes in your site. You can configure individual search boxes to behave differently in the pages or page layouts where you use them.
Set the default search box target results page by entering the path to a custom search results page in the text box.
By default, all search results for contextual searches, meaning searches that use SharePoint’s default search drop-down options, target SharePoint’s default search results page. With this option, you can choose to target another page, such as the page you entered in Step 3.
5. Assembly Programming Principles
The previous chapters have covered the ARM instruction set, and using the ARM assembler. Now we are in a position to start programming properly. Since we are assuming you can program in BASIC, most of this chapter can be viewed as a conversion course. It illustrates with examples how the programming techniques that you use when writing in a high-level language translate into assembler.
5.1 Control structures
Some theory
A program is made up of instructions which implement the solution to a problem. Any such solution, or algorithm, may be expressed in terms of a few fundamental concepts. Two of the most important are program decomposition and flow of control.
The composition of a program relates to how it is split into smaller units which solve a particular part of the problem. When combined, these units, or sub-programs, form a solution to the problem as a whole. In high-level languages such as BASIC and Pascal, the procedure mechanism allows the practical decomposition of programs into smaller, more manageable units. Down at the assembly language level, subroutines perform the same function.
Flow of control in a program is the order in which the instructions are executed. The three important types of control structure that have been identified are: the sequence, iteration, and decision.
An instruction sequence is simply the act of executing instructions one after another in the order in which they appear in the program. On the ARM, this action is a consequence of the PC being incremented after each instruction, unless it is changed explicitly.
The second type of control flow is decision: the ability to execute a sequence of instructions only if a certain condition holds (e.g. IF...THEN...). Extensions of this are the ability to take two separate, mutually exclusive paths (IF...THEN...ELSE...), and a multi-way decision based on some value (ON...PROC...). All of these structures are available to the assembly language programmer, but he has to be more explicit about his intentions.
Iteration means looping. Executing the same set of instructions over and over again is one of the computer's fortes. High-level languages provide constructs such as REPEAT..UNTIL and FOR...NEXT to implement iteration. Again, in assembler you have to spell out the desired action a little more explicitly, using backward (perhaps conditional) branches.
Some practice
Having talked about program structures in a fairly abstract way, we now look at some concrete examples. Because we are assuming you have some knowledge of BASIC, or similar high-level language, the structures found therein will be used as a starting point. We will present faithful copies of IF...THEN...ELSE,FOR...NEXT etc. using ARM assembler. However, one of the advantages of using assembly language is its versatility; you shouldn't restrict yourself to slavishly mimicking the techniques you use in BASIC, if some other more appropriate method suggests itself.
Position-independence
Some of the examples below (for example the ON...PROC implementation using a branch table) may seem slightly more complex than necessary. In particular, addressing of data and routines is performed not by loading addresses into registers, but by performing a calculation (usually 'hidden' in an ADR directive) to obtain the same address. This seemingly needless complexity is due to a desire to make the programs position-independent.
Position-independent code has the property that it will execute correctly no matter where in memory it is loaded. In order to possess this property, the code must contain no references to absolute objects. That is, any internal data or routines accessed must be referenced with respect to some fixed point in the program. As the offset from the required location to the fixed point remains constant, the address of the object may be calculated regardless of where the program was loaded. Usually, addresses are calculated with respect to the current instruction. You would often see instructions of the form:
.here ADD ptr, pc, #object-(here+8)
to obtain the address of object in the register ptr. The +8 part occurs because the PC is always two instructions (8 bytes) further on than the instruction which is executing, due to pipelining.
It is because of the frequency with which this calculation crops up that the ADR directive is provided. As we explained in Chapter Four, the line above could be written:
ADR ptr, object
There is no need for a label: BASIC performs the calculation using the current value of P%.
Instead of using PC offsets, a program can also access its data using base-relative addressing. In this scheme, a register is chosen to store the base address of the program's data. It is initialised in some position-independent way at the start of the program, then all data accesses are relative to this. The ARM's register-offset address mode in LDR and STR make this quite a straightforward way of accessing data.
Why strive for position-independence? In a typical ARM system, the programs you write will be loaded into RAM, and may have to share that RAM with other programs. The operating system will find a suitable location for the program and load it there. As 'there' might be anywhere in the available memory range, your program can make no assumptions about the location of its internal routines and data. Thus all references must be relative to the PC. It is for this reason that branches use offsets instead of absolute addresses, and that the assembler provides the
LDR <dest>,<expression>
form of
企业经营流程重组是一项复杂的企业工程,它的实施需要利用先进的流程建模和分析手段来描述、分析和评价经营流程。目前已经出现了许多有效的建模方法和仿真工具。但大多数方法不能直接利用优化后的模型对流程进行有效的控制和管理,其建模、分析与模型的实施相脱离。传统的建模平台因此缺乏柔性难以反映流程的动态性。工作流技术覆盖了流程建模、模型分析、模型执行和模型维护的整个企业经营流程重组的生命周期,可以改善上述不足。
本文结合协同时光中间件产品Synchro Workflow与Synchro BPM的应用实例,解析工作流与流程重组之间的关系。
1) 协同工作流Synchro Workflow和流程建模
企业建模的根本任务,就是帮助企业优化流程,以更低的成本、更高的效率为客户提供质量更好的产品和服务,但是许多建模方法往往将重点放在可视化的符号上,忽视对业务流程本质的抽取和分析。使用这样的建模工具,根本不可能对流程进行实质性的简化和优化。作为有效的动态流程建模体系,也不应该是简单的企业活动执行工具。
协同工作流Synchro Workflow借用有向图、Petri Net、对象模型的形式语言文法表示以及基于目标的知识表示等工作流系统。它们一般都有可视化的流程建模工具,能够以比较直观、易于使用、易于修改以便能够适应不断变化的工作环境的要求方式对实际的业务流程进行建模,并得到相应的形式化表示。同时工作流模型对流程有比较强的描述能力,提供自由工作流、手工工作流、退回、回退等符合国内国情的工作流实际需求。
2) 协同工作流Synchro Workflow与流程仿真
企业流程是一个存在很多不确定因素的复杂系统。流程的许多方面是定性的,因此不适于也很难用解析的数学模型对它们进行描述和分析,此时仿真是一种可行的流程抽象和分析手段。工作流模型的仿真分析是与企业经营流程重组应用密切相关的一个关键技术。
Synchro Workflow仿真工具能够直观显示流程某些参数不同运行时的状态,可以方便用户对于流程运行的理解 ,使仿真建模者与领域用户能更好地配合。但传统的流程建模工具与仿真软件之间很少有联系或交互能力,用大多数的仿真语言需要许多流程建模的技能。
3) 协同工作流Synchro Workflow与流程分析
协同工作流Synchro Workflow具有较强的流程分析和评价能力。为此对较复杂的系统这里引入面向对象的思想。面向对象的思想贴近人类思维,它具有丰富的语义。面向对象技术与工作流的结合研究有两种方法。其一是工作流模型用面向对象编程的方法实现,将流程包含的各种概念及其相互关系以对象的形式加以描述。另一种方法是用面向对象技术为流程建模,可用多个对象集合有效地描述流程。