#
Step1. 创建一张表,其中shape用来存放空间数据
CREATE TABLE mylake (
feature_id NUMBER PRIMARY KEY,
name VARCHAR2(32),
shape MDSYS.SDO_GEOMETRY);
Step2. 在user_sdo_geom_metadata
表中插入新记录,用于描述空间字段
INSERT INTO user_sdo_geom_metadata VALUES (
'mylake', //---表名
'shape', //---字段名
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X', 0, 100, 0.05), //---X维最小,最大值和容忍度。
MDSYS.SDO_DIM_ELEMENT('Y', 0, 100, 0.05) //---Y维最小,最大值和容忍度
),
NULL //---坐标系,缺省为笛卡尔坐标系
);
Step3. 创建空间索引
CREATE INDEX mylake_idx ON mylake(shape)
INDEXTYPE IS MDSYS.SPATIAL_INDEX
Step4. 插入空间数据
Oracle Spatial用MDSYS.SDO_GEOMETRY
来存储空间数据,定义为:CREATE TYPE sdo_geometry AS OBJECT (
SDO_GTYPE NUMBER,
SDO_SRID NUMBER,
SDO_POINT SDO_POINT_TYPE,
SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY);
SDO_GTYPE:用四个数字定义了所有的形状
第一位:维数
第二位:线性表示。用于3,4维数据,二维为0
最后两位:Value | Geometry | Description |
---|
00 | UNKNOWN_GEOMETRY | Spatial ignores this value |
01 | POINT | A single point element |
02 | LINE or CURVE | Contains one line string element that may be linear, curved or both |
03 | POLYGON | Contains one polygon element with or without other polygon elements in it |
04 | COLLECTION | A heterogeneous collection of elements |
05 | MULTIPOINT | Contains one or more points |
06 | MULTILINE or MULTICURVE | Contains one or more line string elements |
07 | MULTIPOLYGON | Contains multiple polygon elements that maybe disjoint |
SDO_SRID:坐标系,NULL为笛卡尔坐标系。
SDO_POINT:Oracle Spatial也可定义单个的点,SDO_POINT的定义:
CREATE TYPE sdo_point_type AS OBJECT (X NUMBER,Y NUMBER,Z NUMBER);
如何是二维,Z为NULL。
SDO_ELEM_INFO:每三个值描述一个元素。
第一个值:第一个顶点在SDO_ORDINATES_ARR开始位置
第二个值:元素类型
第三个值:顶点连接方式:1-通过直线连接,2-通过圆弧连接
定义为
CREATE TYPE sdo_elem_info_array AS VARRAY (1048576) of NUMBER;
SDO_ORDINATES:几何图形所有顶点列表。定义为
CREATE TYPE sdo_ordinate_array AS VARRAY (1048576) of NUMBER;
FONT color=#003366>// 插入包含一个岛屿的湖泊
INSERT INTO mylake VALUES(
10,
'Lake Calhoun',
MDSYS.SDO_GEOMETRY(
2003,
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1, 19,2003,1),
MDSYS.SDO_ORDINATE_ARRAY(0,0, 10,0, 10,10, 0,10, 0,0, 4,4, 6,4, 6,6, 4,6, 4,4)
));
// 插入两艘小船
INSERT INTO mylake VALUES(
11,
'The Windswept',
MDSYS.SDO_GEOMETRY(
2003,
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),
MDSYS.SDO_ORDINATE_ARRAY(2,2, 3,2, 3,2, 2,3, 2,2)
)
);
INSERT INTO mylake VALUES(
12,
'Blue Crest',
MDSYS.SDO_GEOMETRY(
2003,
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),
MDSYS.SDO_ORDINATE_ARRAY(7,7, 8,7, 8,7, 7,8, 7,7)
)
);
Step4. 查询
Oracle Spatial查询数据包括二个处理过程:
1.只通过索引查询候选项。通过函数SDO_FILTER实现:
SDO_FILTER(geometry1 MDSYS.SDO_GEOMETRY, geometry2 MDSYS.SDO_GEOMETRY, params VARCHAR2)
geometry1:
必须是被索引的几何数据
geometry2:不一定是表中的空间字段,也不要求被索引
params:Filter类型
querytype=WINDOW:geometry2不要求来自表
querytype=JOIN:geometry2必须来自表
SELECT name boat_name
FROM mylake t
WHERE feature_id = 12
AND SDO_FILTER(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,
mdsys.sdo_elem_info_array(1,1003,1),
mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),
'querytype=WINDOW') = 'TRUE';
2.再检查每个候选项是否和条件精确匹配。通过函数SDO_RELATE实现:
SDO_RELATE(geometry1 MDSYS.SDO_GEOMETRY, geometry2 MDSYS.SDO_GEOMETRY, params VARCHAR2)
params:masktype类型
DISJOINT
— the boundaries and interiors do not intersect
TOUCH
— the boundaries intersect but the interiors do not intersect
OVERLAPBDYDISJOINT
— the interior of one object intersects the boundary and interior of the other object, but the two boundaries do not intersect. This relationship occurs, for example, when a line originates outside a polygon and ends inside that polygon.
OVERLAPBDYINTERSECT
— the boundaries and interiors of the two objects intersect
EQUAL
— the two objects have the same boundary and interior
CONTAINS
— the interior and boundary of one object is completely contained in the interior of the other object
COVERS
— the interior of one object is completely contained in the interior of the other object and their boundaries intersect
INSIDE
— the opposite of CONTAINS
. A INSIDE B
implies B CONTAINS A
.
COVEREDBY
— the opposite of COVERS
. A COVEREDBY B
implies B COVERS A
.
ON
— the interior and boundary of one object is on the boundary of the other object (and the second object covers the first object). This relationship occurs, for example, when a line is on the boundary of a polygon.
ANYINTERACT
— the objects are non-disjoint.
// 选择在定义矩形内的所有小船
SELECT name boat_name
FROM mylake t
WHERE feature_id = 12
AND SDO_FILTER(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,
mdsys.sdo_elem_info_array(1,1003,1),
mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),
'querytype=WINDOW') = 'TRUE'
AND SDO_RELATE(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,
mdsys.sdo_elem_info_array(1,1003,1),
mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),
'masktype=INSIDE querytype=WINDOW') = 'TRUE'
// masktype可联合使用
SELECT feature_id id
FROM mylake t
WHERE feature_id = 12
AND SDO_FILTER(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,
mdsys.sdo_elem_info_array(1,1003,1),
mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),
'querytype=WINDOW') = 'TRUE'
AND SDO_RELATE(t.shape, mdsys.sdo_geometry(2003,NULL,NULL,
mdsys.sdo_elem_info_array(1,1003,1),
mdsys.sdo_ordinate_array(2,2, 5,2, 5,5, 2,5, 2,2)),
'masktype=INSIDE+TOUCH querytype=WINDOW') = 'TRUE'
Oracle Spatial 提供的其他查询函数:
Query | Description |
SDO_NN | Nearest neighbor |
SDO_SDO_WITHIN_DISTANCE | All geometries with a certain distance |
|
Functions | Description |
SDO_GEOM.SDO_MBR | The minimum bounding rectangle for a geometry |
SDO_GEOM.SDO_DISTANCE | The distance between two geometries |
SDO_GEOM.SDO_INTERSECTION | Provides the intersection point of two geometries |
--sunfruit
AGPS——Assisted GPS,用中文来说应该是网络辅助GPS定位系统。通俗的说AGPS是在以往通过卫星接受定位信号的同时结合移动运营的GSM或者CDMA网络机站的定位信息,就是一方面由具有AGPS的手机获取来自卫星的定位信息,而同时也要靠该手机透过中国移动的GPRS网络下载辅助的定位信息,两者相结合来完成定位。与传统GPS(Global Positioning System全球定位系统)首次定位要2、3分钟相比AGPS的首次定位时间最快仅需几秒钟,同时AGPS也彻底解决了普通GPS设备在室内无法获取定位信息的缺陷。
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
/*******************************************************************
* 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照"
* This JavaBean is used to snapshot the GUI in a
* Java application! You can embeded
* it in to your java application source code, and us
* it to snapshot the right GUI of the application
* @see javax.ImageIO
* @author liluqun ([email]liluqun@263.net[/email])
* @version 1.0
*
*****************************************************/
public class GuiCamera
{
private String fileName; //文件的前缀
private String defaultName = "GuiCamera";
static int serialNum=0;
private String imageFormat; //图像文件的格式
private String defaultImageFormat="png";
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
/****************************************************************
* 默认的文件前缀为GuiCamera,文件格式为PNG格式
* The default construct will use the default
* Image file surname "GuiCamera",
* and default image format "png"
****************************************************************/
public GuiCamera() {
fileName = defaultName;
imageFormat=defaultImageFormat;
}
/****************************************************************
* @param s the surname of the snapshot file
* @param format the format of the image file,
* it can be "jpg" or "png"
* 本构造支持JPG和PNG文件的存储
****************************************************************/
public GuiCamera(String s,String format) {
fileName = s;
imageFormat=format;
}
/****************************************************************
* 对屏幕进行拍照
* snapShot the Gui once
****************************************************************/
public void snapShot() {
try {
//拷贝屏幕到一个BufferedImage对象screenshot
BufferedImage screenshot = (new Robot()).createScreenCapture(new
Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
serialNum++;
//根据文件前缀变量和文件格式变量,自动生成文件名
String name=fileName+String.valueOf(serialNum)+"."+imageFormat;
File f = new File(name);
System.out.print("Save File "+name);
//将screenshot对象写入图像文件
ImageIO.write(screenshot, imageFormat, f);
System.out.print("..Finished!\n");
}
catch (Exception ex) {
System.out.println(ex);
}
}
public static void main(String[] args)
{
GuiCamera cam= new GuiCamera("d:\\Hello", "png");//
cam.snapShot();
}
}
--sunfruit
建立存储过程如下,注意这个存储过程建立的时候,不需要像Oracle那样建立返回的游标
开始在Sql 2000按照Oracle那样建立了返回的游标[Sql 2000 的帮助里面也是建立返回的游标的],但是调用总是不成功,后来使用了没有返回游标的存储过程,并且修改了调用存储过程的方式就可以了:
CREATE PROCEDURE PROC_WARE_INFO_STAT
@XX_ID bigint
AS
SELECT * FROM TableName where colname=XX_ID
GO
在调用的时候和Oracle有明显的不同,如下:
Connection connection=xxxxxx;
CallableStatement callableStatement = connection.prepareCall("{call PROC_WARE_INFO_STAT(?) }");
callableStatement.setInt(1,100);
callableStatement.executeQuery();
ResultSet rs = callableStatement.getResultSet();
--sunfruit
建立存储过程,存储过程为:
CREATE OR REPLACE PROCEDURE TESTC(p_CURSOR out TESTPACKAGE.Test_CURSOR) IS
BEGIN
OPEN p_CURSOR FOR SELECT * FROM HYQ.TESTTB;
END TESTC;
可以看到,它是把游标(可以理解为一个指针),作为一个out 参数来返回值的。
在java里调用时就用下面的代码:
package com.hyq.src;
import java.sql.*;
import java.io.OutputStream;
import java.io.Writer;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import oracle.jdbc.driver.*;
public class TestProcedureTHREE {
public TestProcedureTHREE() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, "hyq", "hyq");
CallableStatement proc = null;
proc = conn.prepareCall("{ call hyq.testc(?) }");
proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);
proc.execute();
rs = (ResultSet)proc.getObject(1);
while(rs.next())
{
System.out.println("<tr><td>" + rs.getString(1) + "</td><td>"+rs.getString(2)+"</td></tr>");
}
}
catch (SQLException ex2) {
ex2.printStackTrace();
}
catch (Exception ex2) {
ex2.printStackTrace();
}
finally{
try {
if(rs != null){
rs.close();
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}
catch (SQLException ex1) {
}
}
}
}
在这里要注意,在执行前一定要先把oracle的驱动包放到class路径里,否则会报错的。
王卫乡
随着信息时代的到来,我国各行各业都面临着诸多机遇与挑战,党和政府适时地提出"以信息化带动工业化,发挥后发优势,实现社会生产力的跨越式发展"的伟大战略决策。在近几年的信息化建设中,一些企业在企业信息化建设方面的投入较大,但收效甚微。原因之一在于:缺乏统一的信息化框架、标准和规范。在我国电子商务、电子政务全面发展之际,此框架、标准和规范就显得尤为重要,只有按照统一的框架、标准和规范,才可能避免重复建设、实现信息共享。
目前人们都把电信企业当作是信息化建设的排头兵,这隐含有四层意思:
(1)电信企业是国家信息基础设施的主要建设者和运营者,担负着基础建设的重要使命;
(2)电信业自身的信息化建设能够强化企业自身的管理规范,提高运营效率和综合竞争能力;
(3)电信企业可以利用自身的信息化典范,为其他的企业提供信息化的解决方案,作为一种新的业务为客户提供更好的服务;
(4)电信企业自身的信息化建设更具有推进社会信息化、政府信息化、企业信息化的示范作用。
信息化建设需要规范的业务流程和管理流程做基础,电信运营业务流程最新的国际规范eTOM3.0版对电信相关企业的信息化建设和企业运营至关重要。
一、eTOM中"e"的含义
"eTOM"中的"e"常规指"增强"之意,但它却包含了与业务流程框架有关的很多含义,如:企业流程(Enterprise processes)、电子商务激活(eBusiness enabled)、扩展的(Expanded)、每事(Everything)、每处(Everywhere)、每时(Every time)等。
二、eTOM业务流程框架的目的
eTOM业务流程框架作为电信运营业务流程的向导蓝图和业务及运营支撑系统(分别为BSS和OSS)发展和集成的始发点,有助于推动和发展NGOSS(Next Generation Operations Systems and Software,下一代运营系统和软件)解决方案。对于服务提供商来说,当他们考虑内部流程重组需求、合作关系、联盟以及与其它服务提供商总的工作协议时,eTOM提供了一个中性的参考点。对供应商来说,eTOM框架给出了软件各组件的潜在边界以及支撑产品所需的功能、输入和输出。
eTOM3.0版包含以下内容:
(1)eTOM业务流程框架的角色描述;
(2)服务提供商的电子商务环境和所需的更为复杂的业务关系环境关联模型;
(3)服务提供商的企业流程和子流程在高级层面的业务流程框架和解释的侧重点是自上而下、以顾客为中心、端到端,TOM正逐步向eTOM演变,目前的eTOM业务流程框架对于服务提供商来说是整个企业的框架;
(4)所有流程的分解,从eTOM框架的最高层面的概念视图到工作层面,有选择地给出框架中很多较低层面的流程分解;
(5)流程流向和分解流程的选择描述,包括流程目的或描述、业务规则、高级层面的信息等;
(6)如何运用流程框架。
eTOM的目的是通过对业务流程的实施来管理企业,帮助企业明确目标,确保有关服务交付和支持所有关键的企业支撑系统进行集成。eTOM关注的焦点是:服务提供商使用的业务流程、流程间的联系、接口的识别,即如何利用客户、服务、资源、供应商/合作伙伴以及其它多重流程使用的信息。
eTOM业务流程框架和相关的业务流程模型描述了流程及组成端对端的连接点,描述了运营、战略、基础设施与产品流程区域中开通、保障、计费等客户运营流程流向。eTOM业务流程框架对信息和通信服务、技术管理有特殊意义,这种模型同样适用其它类型的业务。
服务提供商应用这种通用的流程框架,以确保与其它实体交易的高效和有效,确保第三方软件的开发和应用不需太多的客户化定制。在电子商务环境下,对流程的共同理解,此框架在管理信息和通信业务市场中十分关键。企业电子商务集成化已成为强大的流程集成最成功的范例。eTOM不仅是电子贸易或电子商务流程框架,它还支持传统业务流程与电子商务的集成。
三、eTOM是什么
eTOM,是enhanced Telecom Operations Map的英文首字母缩写,英文全称为enhanced Telecom Operations MapTM (eTOM)。The Business Process Framework For The Information and Communication Services Industry,中文意思为增强的电信运营图(eTOM)信息和通信服务行业的业务流程框架。eTOM现在已经发展到3.0版,并已于2002年6月通过电信管理论坛(TM论坛)的批准,正式公开发布。eTOM大大增强了TOM的功能,是服务提供商运营流程实际依照的行业标准。
eTOM是一种业务流程模型或框架,它为服务提供商提供所要求的企业流程。但是,它不是服务提供商的业务模型。它不陈述以下策略:服务提供商的目标客户、服务提供商所服务的市场、服务提供商前景、任务等,业务流程框架是业务模型策略的一部分,是为服务提供商提出计划。
eTOM是基于TOM(Telecom Operation Map)发展而来的,eTOM把TOM扩展到整个企业架构,并陈述对电子商务的影响。虽然eTOM比TOM复杂得多,在某种意义上,eTOM更为直接明了,它消除了TOM中企业管理(公司型)流程、市场营销流程、保留客户流程、供应商和合作伙伴管理流程之间的隔膜等。
很多服务提供商(包括了系统集成商、ASP和软件供应商)指出,在eTOM未被确认前,他们已经在运用eTOM,因为eTOM较好地代表了他们的真实需要,他们在采购软件、设备以及面对业务关系网络与其它服务提供商的接口,都需要行业的标准框架。虽然,很多服务提供商已接受TOM,并把它作为流程框架核心或是作为保持相容性的标准,但大多数服务提供商承认需要进一步扩展TOM,以便反映电子商务集成化和全企业的框架。图1为eTOM业务流程框架0级流程图。
图1: eTOM业务流程框架——0级流程图
图1显示的是eTOM业务流程框架最高层面的概念视图。该视图把战略和生命周期流程从运营流程中分离出来,形成两大流程群组,同时把关键功能区域分成四个横向层面。此外,图1也显示了企业内、外部的相互影响、相互作用的五大实体(客户、供应商/合作伙伴、股东、雇员、其他利益相关者)。图2为eTOM业务流程框架一级流程图。
图2:eTOM业务流程框架—— 一级流程
图2给出了eTOM框架中从0级视图看到的一级流程。该视图称为企业流程框架CEO(即:首席执行官)层面的视图。然而,人们倾向于使用二级流程的一级视图,因为在分析业务时需要这些细节。图2给出了7个纵向流程群组。这些端对端的流程用以支持客户和管理业务。eTOM关注的焦点是以客户运营流程的开通、保障和计费(FAB)为核心。运营支持与就绪流程从FAB实施流程中分出来单列,以增强对FAB中实现支持和自动化的关注,即:对在线和对客户实现即时支持。战略与承诺及两个生命周期管理纵向流程群组也分离出来,因为与运营流程群组不同,它们没有直接支持客户,与运营流程群组有着本质差别,并且工作在不同的业务周期。图2中的横向流程群组区分了功能运营流程和其它类型的业务功能流程,如:市场营销对销售、服务开发对服务配置等。左边的功能流程(在战略与承诺、基础设施生命周期管理、产品生命周期管理纵向流程群组)保证支持和指导运营流程区域的纵向流程工作。
四、TOM与eTOM的比较
服务管理业务流程模型被称之为TOM,是根据服务提供商的运营管理要求,围绕流程、输入、输出和活动开发。它关注的焦点和范围是运营和运营管理,它竭力为电信业服务,支持对服务提供商流程的理解,在业务、运营系统和软件方面为服务提供商的问题提供解决方案。TOM仍然处于eTOM业务流程框架的核心。
TOM2.1版本是TM论坛成员现在认可的业务流程框架或模型。世界各地的服务提供商广泛接受它作为运营业务流程框架,而很多供应商把它作为产品开发和销售的基础。基于以下两点,把TOM的修改称为eTOM。第一,成员们很久以来就想把TOM扩展为全企业业务流程框架;第二,利用电子商务和互联网取得成功很关键。TOM并没有充分地分析电子商务对商业环境、业务驱动力、电子商务流程集成化要求的影响,也没有分析日渐复杂化的服务提供商的业务关系。图3为电信运营图业务流程模型。
图3为电信运营图(TOM)业务流程模型
如图2和图3所示,与TOM相比,eTOM做了以下改善:
(1)把范围扩展到所有的企业流程;
(2)鉴于市场营销在电子商务环境中所处的重要地位,明确标识市场营销流程;
(3)明确标识企业管理流程,以便企业中的每个人都能够确定其关键流程,从而使整个企业都接受流程框架;
(4)把开通、保障和计费(FAB)引入高级层面的框架视图中,从而强调客户优先流程是企业关注的焦点;
(5)定义运营支持与就绪纵向流程群组,此定义可适用于除企业管理以外的所有功能层面。为使电子商务集成和客户自助管理成为现实,企业必须了解自己需要的流程,以保证客户运营支持和客户自助管理;
(6)明确SIP(Strategy, Infrastructure and Product)流程:战略与承诺,基础设施生命周期管理和产品生命周期管理,识别这三种企业流程群组,它们明显区别于客户运营流程;
(7)识别战略和生命周期管理流程的不同周期时间,需要把这些流程从最需要自动化的客户优先运营流程中分离出来,可以通过把战略与承诺和两个生命周期管理流程从日常的客户运营流程中分离来实现。
(8)从关注客户或是面向服务转为面向客户关系管理,强调客户自助管理和控制,增加客户对企业产生的价值,利用信息来为单个客户个性化和客户化,这可以为客户运营功能层面增加更多的元素,更好地代表销售流程,完成市场营销在客户关系管理范围内的集成;
(注意:eTOM对客户关系管理进行了更广泛的定义,比CRM某些定义的范围要大。)
(9)明确了跨技术管理资源的要求(即:应用、计算和网络),由"网络和系统管理"功能流程向"资源管理与运营"集成。它把IT管理引入到该功能层面,与外向流程群组形成对照。
TOM是服务提供商运营管理事实上的行业标准,eTOM与TOM相比保留了TOM中以下优点:
(1)关注于业务流程;
(2)以客户为中心的驱动手段;
(3)自上而下的定位;
(4)通用直白的描述和手段;
(5)本身吸引,服务提供商能立即了解运营的工作方式;
(6)一直关注运营管理;
(7)在服务提供商、供应商和媒体之间广泛使用;
(8)灵活地支持大多数SP的流程模型。
这些优点促使TOM成为运营系统具有推动作用的架构,成为服务提供商的软件解决方案,它仍然作为业务流程框架,并涉及更多的流程和学科。在电子商务环境下,实体间的联系是流程中最重要的环节。eTOM会加强以客户为中心的驱动途径,因为目前和将来的环境能够掌握客户。电子商务使市场从面向供货转为面向需求,或者说由"推向客户"变为"客户拉动"。eTOM中保留自上而下的定位,不仅因为它是TOM的核心概念,而且它是良好的业务流程建模。
五、eTOM的使用对象
eTOM提供了通用的服务提供商企业流程视图,较容易转换成单个提供商的内部手段。
eTOM的优点之一是能为服务提供商根据需要在不同层面广为采用。eTOM也可作为翻译,允许服务提供商参照行业框架绘制其明确流程。当流程样本开发出来,服务提供商就能利用和调整样本以适应自己的业务环境。
eTOM针对的是信息和通信行业广大的专业人员,对于有经验的通信专业人员来说,TOM和eTOM是直观的、强大而通用的服务提供商企业流程。
eTOM针对服务提供商和网络运营商的决策者,需要了解和输入通用的业务流程框架,以较好的性价比实现企业自动化。对于从事业务和运营自动化的专家,它也是很重要的架构。
eTOM将继续为服务提供商和供应商提供一个通用的框架进行讨论,在复杂的行业中讨论复杂的技术和复杂的业务需求。这些复杂性来自:从开发自己的业务和运营系统软件,转向更多的采购和系统集成的方式;服务提供商和网络运营商之间新型的业务关系。
建立新型的业务关系和不进行内部开发是对市场驱动力的回应。市场驱动力要求服务提供商和网络运营商增加业务的范围、缩短新业务投向市场的时间、提高服务速度以及降低系统和运营成本。
eTOM业务流程框架针对服务提供商和网络运营商涉及业务流程重组、运营、采购和其他活动的人员,使他们能了解并推动集成化和自动化进程的通用业务流程框架,参与提供流程、输入、优先级和要求的活动。
eTOM业务流程框架也针对业务和运营管理系统软件的设计者、集成者以及设备供应商,通过了解管理流程和应用需求,为服务提供商和网络运营商带来利润。
eTOM业务流程框架提供一个通用架构,支持大量的集成、合并活动,了解好通用流程和通用流程框架将为合并大大改善集成性能。eTOM适用于所有的电信服务提供商。不是所有供应商都要用到eTOM定义的所有流程。eTOM框架灵活,使服务提供商可以根据模块基础和恰当的具体层面需求来选择所需的流程。
中国中信集团公司管理信息中心 王卫乡博士
近年来,我国电信业发展迅猛,电话普及率已达33.7%,电话用户总数跃居世界第一。与世界发达国家的电信业相比,我国电信运营商在技术设备和网络基础设施等"硬件"方面的差距并不大,但是在业务流程、企业管理和劳动生产率等"软件"方面仍存在较大差距。eTOM将为我国电信业与国际接轨、缩小"软件"差距带来机遇。
eTOM的发展
eTOM,英文全称为enhanced Telecom Operations Map。(eTOM)———The Business Process Framework For The Informationand Communication Services Industry。
中文意思为增强的电信运营图(eTOM)———信息和通信服务行业的业务流程框架.eTOM源自TOM(TelecomOperationsMap)。TOM侧重的是电信运营行业的服务管理业务流程模型,关注的焦点和范围是运营和运营管理。世界各地的服务提供商广泛接受它作为运营业务流程框架,而且很多供应商已把TOM作为产品开发和销售的基础。随着企业在业务中使用因特网、集成电子商务机遇的需要,仅关注运营管理的TOM已显出极大的局限性。TOM没有充分地分析电子商务对商业环境、业务驱动力、电子商务流程集成化要求的影响,也没有分析日渐复杂化的服务提供商的业务关系。因此,TM论坛的成员们很久以来就想把TOM扩展为全企业业务流程框架。eTOM中的e常规指"增强"之意,但它却包含了与业务流程框架有关的很多观念,如:企业流程(Enterpriseprocesses)、电子商务激活(eBusinessenabled)、扩展的(Expanded)、每事(Everything)、每处(Everywhere)、每时(Everytime)等。TOM仍然处于eTOM业务流程框架的核心。
eTOM作为电信运营业务流程向导的蓝图,是NGOSS(NextGenerationOperationsSystemsandSoftware,即下一代运营系统和软件)的重要概念和关键组成元素。NGOSS中的"OSS"虽与通常的"OSS"(OperationSupportSystem)在字面上相同,但是内涵已经发生了很大变化。NGOSS强调包含有文档、模型和代码等知识库的创建,侧重于业务流程和信息模型的定义、系统框架的定义、合作催化试点项目的实施等关键元素。
eTOM是什么
eTOM是一种业务流程模型或框架,它为服务提供商提供所要求的企业流程,但它不是业务模型。
它不陈述以下策略问题:谁是服务提供商的目标客户,服务提供商所服务的市场是怎样的,以及服务提供商的愿景如何、任务是什么等等。
eTOM较好地代表了电信运营业的真实世界,很多服务提供商(包括了系统集成商、ASP和软件供应商)已经在运用eTOM,因为他们在采购软件、设备,以及面对愈加复杂的业务关系网络中与其它服务提供商的接口,都需要行业的标准框架。
对于服务提供商来说,当他们考虑内部流程重组需求、合作关系、联盟以及与其它提供商的总的工作协议时,eTOM提供了一个中立性的参考点。对供应商来说,eTOM框架给出了软件各组件的潜在边界,以及支撑产品所需的功能、输入和输出。
为方便起见,笔者对TM论坛公布的eTOM的0级和1级流程视图进行了组合。eTOM阐述了电信运营商及其所处的经营环境,给出了企业内、外部的相互影响、相互作用的五大实体:客户、供应商/合作伙伴、股东、雇员、其他利益相关者。
eTOM给出了三大流程群组:
1)战略、基础设施和产品;
2)运营;
3)企业管理。
这三大流程群组进一步分解为23个一级流程群组和87个二级流程以及若干三、四级流程;其中7个一级的纵向流程群组,是端对端的流程,用以支持客户和管理业务;16个横向流程群组区分了功能运营流程和其它类型的业务功能流程。eTOM的关注焦点是以客户运营流程的开通、保障和计费(FAB)为核心,运营支持与就绪流程从FAB实施流程中分出来单列,以增强对FAB中实现支持和自动化的关注。
eTOM对我国电信业的意义
我国电信业经过前几年的快速发展,网络基础设施和用户数量都已达到相当大的规模。如何有效地管理和充分利用这些资源(网络基础设施、客户资源、信息资源等)是各电信运营商都要面对的关键问题。eTOM的目的是通过业务流程的实施来管理企业,它涵括了战略、经营和保障等企业的三大高层流程及其相互间的集成。服务提供商需要这种通用的流程框架,以确保有效和高效地与其它实体进行交易和交互,确保第三方软件的开发和应用而不需太多的客户化定制。在电子商务环境下,这种对流程的共同理解,在管理电信业务市场中愈来愈复杂的业务关系中极其重要。
在经济全球化、信息化时代,在电子商务环境下,业务流程已经逐渐取代资金和技术,成为支撑企业赚钱的最主要因素。在价值网中,企业是通过紧密相联的业务流程,把技术、产品和服务,转变为现金。可以说,业务流程已经成为企业核心竞争力的重要组成部分。在同等的人、财、物的投入条件下,不同的业务流程所产生的结果将是完全不同的。eTOM从企业整体和所处的社会经济环境的角度和高度来认识和看待电信企业运营的业务流程框架,对我国电信业的稳步、快速发展将具有深远的现实意义。
在战略流程方面,eTOM体现了对企业资源的全生命周期管理和一体化管理的理念。eTOM明确识别了SIP(Strategy,InfrastructureandProduct)流程群组:战略与承诺,基础设施生命周期管理和产品生命周期管理。战略和生命周期管理流程具有不同的时间周期,需要把这些流程从最需要自动化的客户优先运营流程中分离出来。
在运营流程方面,eTOM体现了面向客户关系管理、对客户提供区别服务和营销的理念。除了FAB外,eTOM还定义了运营支持与就绪纵向流程群组。为使电子商务集成和客户自助管理成为现实,企业必须了解自己需要的流程,以保证直接的、愈来愈多的在线以及客户运营支持和客户自助管理。从关注客户或是面向服务转为面向客户关系管理,强调客户自助管理和控制,增加客户对企业产生的价值,利用信息来为单个客户个性化和客户化。明确了跨技术管理资源的要求(即:应用、计算和网络),由TOM的"网络和系统管理"功能流程向eTOM的"资源管理与运营"集成。
在保障流程方面,eTOM明确标识了企业管理流程,把企业管理流程和运营、战略作为一个整体,以便企业中的每个人都能够确定其关键流程,从而使整个企业都接受流程框架。
eTOM提供了通用的服务提供商企业流程视图,它很容易转换成单个提供商的内部手段。eTOM能为服务提供商根据需要在不同层面广为采用。eTOM的框架很灵活,专门的服务提供商可以根据模块基础和恰当的具体层面需求来选择自己所需的流程。
eTOM为服务提供商和供应商提供了一个通用的框架,便于在复杂的行业中讨论复杂的技术和复杂的业务需求。eTOM从企业整体的角度和高度,全方位地提供了技术人员与管理人员之间沟通的桥梁、语言与规范。而现实情况中,技术人员与管理人员因为看问题的侧重点不同,常常难以进行全面、深入、良好的沟通,难以从不同侧面、不同层次对企业运营的流程达成共识。eTOM特别关注服务提供商使用的业务流程、流程间的联系、接口的识别,如何利用客户、服务、资源、供应商/合作伙伴以及其它多重流程使用的信息。在电子商务的环境下,从业务的各个方面来充分利用信息,实现自动化以提高生产率和收入以及改善与客户的关系尤为重要。
除了电信运营商,eTOM也适用于业务和运营管理系统软件的设计者和集成者,以及设备制造商和供应商。他们通过了解管理流程和应用需求如何共同工作,为服务提供商和网络运营商带来利润,而他们也将从中获利。
几点建议
经过近几年的信息化建设,不少企业在企业信息化方面的投入很大,却见效甚微。原因之一是:缺乏统一的业务流程框架、标准和规范。信息化需要规范的业务流程和管理流程作为基础。在电子商务、电子政务全面出击之际,框架、标准和规范就显得尤其重要;只有按照统一的框架、标准和规范,才可能避免重复建设,实现信息共享。人们都把电信企业当作是信息化建设的排头兵,这实际上隐含有四层意思:1)电信企业是国家信息基础设施的主要建设者和运营者,担负着基础建设的重要使命;2)电信业自身的信息化建设能够强化企业自身的管理规范,提高运营效率和综合竞争能力;3)电信企业可以利用自身的信息化典范,为其他的企业和单位提供信息化的解决方案,为企业开拓新的信息化业务,作为一种新的业务来为客户提供更好的服务;4)电信企业自身的信息化建设更具有推进社会信息化、政府信息化、企业信息化的示范和带头作用。因此,电信企业在信息化建设进程中应该率先垂范,成为"以信息化带动工业化,发挥后发优势,实现社会生产力的跨越式发展"的伟大战略实践的先行者。
在电子商务环境下,业务流程的互动牵动着各企业之间的互动,各经济实体之间的联系是流程中最重要的环节。为此,笔者建议:电信运营商应从业务流程的梳理与再造着手,先梳理然后再造业务流程,理顺业务流程各环节的关系,真正关注客户能够感受到的服务质量。
内部流程的梳理与再造。这是指在企业内部围绕业务流程来安排各项工作,其重点是大规模削减企业组织内部的成本,提高质量和生产率。以eTOM为指导,整体规划,建立比较完善的XSS(XSupportSystems,如OSS,BSS,MSS等)。在软件开发和业务关系方面,无论是服务提供商,还是网络运营商,都要考虑:1)从开发自己的业务和运营系统软件,转向更多的采购和系统集成的方式;2)服务提供商和网络运营商之间新型的业务关系。建立新型的业务关系和不进行内部开发是市场驱动力所致。市场驱动力要求服务提供商和网络运营商增加业务的范围、缩短新业务投向市场的时间、提高服务速度以及降低系统和运营成本。
外部流程的梳理与再造。从改善企业内部的绩效开始,在跨越企业组织界线的操作与处理过程中考虑更多的改良,为企业的运营方式带来突破性的革新。也就是说:通过广泛应用信息技术,重新规划跨越组织界线的业务流程,以实现经营绩效的突破性提升。这须要企业重新审视、梳理整个企业的经营模式,对业务流程和其中各个环节之间的相互关系进行审查,审查的对象不仅仅是企业与客户的关系,还应包括企业与供应商、合作伙伴、员工和竞争对手之间的关系。各电信运营商之间既是竞争对手,同时又是合作伙伴,应该采取有效措施加快和确保电信网络基础设施之间的互联互通。
服务质量和服务等级协议。组织研究和实施"客户QoS(QualityofService)/SLA(ServiceLevelAgreement)管理"。以前,电信运营商只关注网络的QoS,而轻视客户的QoS;今后,电信运营商更需要看重客户能够真正感受到的服务质量(QoS),而不仅仅是网络的QoS。因为,客户能够真正感受到的服务质量,其内涵远远多于网络QoS。这就需要监视、管理和报告在企业的服务描述、客户合同或产品组合中有具体定义的和实际提供给客户的服务质量的对比;同时,关注与企业的业绩、某些专门服务的服务等级协议(SLA)相关的产品与服务,以及其他与服务相关的文档,包括:网络、资源性能和可用性等运营参数,还包含跨服务合同或规则参数的性能;如:订单请求的准时完成率,修复承诺的时间,客户联系的实施等。如果不能满足合同规定的SLA要求,就要采取向客户报告、并对客户进行计费调整等措施,以取得客户的理解和谅解,让客户感到满意。(人民邮电报)
--sunfruit
最近
做了一个资料管理软件用来管理日常资料,编写好了基本功能以后总是感觉这个软件缺少了什么,是的,是全文检索,没有全文检索功能,这个管理软件用到最后也一定对于查找资料相当困难,于是加紧赶工加上了作为基本功能的全文检索。
有人了解检索技术,而且也不是什么高深技术,我也不班门弄斧,就是把原理大概介绍一下,感兴趣的朋友也可以自己尝试编写一下。
全文检索技术其实就是用空间换时间--用硬盘空间换取检索时间。
首先需要字索引,要想建立字索引就需要字库,这个字库其实就是每一个汉字,大概6000个汉字左右吧,再加上a-z,A-Z,0-9,基本上就可以作为字索引的字库了,然后就是利用字库生成字索引。
生成字索引的原来就是以字库为基础,为字库里面的每一个字做索引,在每一个文章里面做匹配,把一个文章里面所有的匹配的位置记录下来,举个例子:比如字库里面的"啊",如果现在要建立"啊"的索引,那么要遍历所有要做索引的文章,把所有的"啊"的位置要记录下来,当然要可以区分位置是哪个文章的,要不然混成一堆,就没有意义了[因为最后检索索引的最终目的是要定位出文章的ID],这样就形成了字索引。依此类推,所有汉字的字索引,索引建立就完成了
检索索引,这个是关键的关键,速度是否快,全看这里,当然索引建立的合理与否也能影响检索速度,举个例子:比如要查询"业务"这个关键词,
首先在字索引中查到"业": 在文件号11111 中的位置有11,40,99 在文件号11112 中的位置有22,33,45
然后在字索引中查到"务": 在文件号11111 中的位置有12,66,100 在文件号11112 中的位置有27,39,60
经过计算会得到命中的文件号为 11111 ,因为业务必须位置号码要连续的出现才算命中
大概的思路就是这样
当然检索技术还会有词索引技术,根据字索引可以进一步生成词索引,并且有切词技术。。。就不多说了
那个资料管理软件的DEMO下载地址 http://www.blogjava.net/sunfruit/archive/2006/04/01/38625.html
DEMO的界面样式如下
检索界面
主界面
注意:使用全文检索的时候,首先要生成索引[在工具菜单栏里面],并且不能重复生成同一个文章的索引,而只能重新生成,这个在生成的时候有选项,因为如果重复生成那么在字索引里面就会重复记录,到时候检索的时候就会检索出来多个同样的文章了
--sunfruit
整天和电脑打交道,信息资料随着时间的推移也积累的越来越多,直到从资料里面找到所需的资料越来越难,于是就编写了一个资料管理软件,用于管理日常资料
说明:
数据库:在数据的存储方面为了方便,使用了Access
JDK :使用的JDK版本是1.5
相关说明:
正本的保存:由于正文包含图片和样式,所以采取了将正文的文档对象序列化到数据库中的方式进行保存和读取
附件的保存:和正文的保存方式一样
由于涉及的功能比较多,所以只是实现了最基本的功能,其他的功能逐步添加和完善,软件的界面样式如下
注:数据检索功能已经完成[使用全文检索技术实现]
自从JDK1.5的推出,JAVA的界面风格比原来漂亮多了
demo下载地址:http://www.fruitres.cn/useruploadfile/4/1473814960_demo.rar
演示地址:http://www.fruitres.cn/useruploadfile/4/1473814960_jnlp.jnlp
使用过程中发现问题欢迎指正和交流
--sunfruit
我们有的时候需要在javascript里面实现延时功能,比如:当某一个按钮按下提交内容以后就马上把状态改为失效,过2秒钟以后再把状态改为有效,才可以进行下一次提交
这个过程就需要延时功能了,这里用到了javascript的setTimeout函数,这个函数的入口参数为2个,第一个参数是需要执行的内容,这个可以是一个URL,也可以是另一个javascript函数,第二个参数是延时的时间数单位是毫秒,下面举个例子
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="javascript">
function r1()
{
setTimeout("r2()",2000);
}
function r2()
{
alert("OK");
}
</script>
</head>
<body>
<input name="uu" type="button" id="uu" value="按钮" onClick="r1();">
<form name="form1" method="post" action="">
</form>
</body>
</html>
执行这个例子的效果是:按钮按下去以后2秒钟“OK”对话框弹出,呵呵用这个特性实现button的失效和有效就简单多了
这里有一个技巧,就是在页面body的onload属性里面加上setTimeout的执行方法,而且setTimeout方法的第一个参数为执行自身页面,这样的效果就是间隔一定时间刷新本页,也许有人问了,html的自身属性就提供定时刷新页面功能,jsp页面的head属性里面也有类似的功能,干嘛这么麻烦使用setTimeout方法
不知道大家注意了没有,不管是使用html的自身提供定时刷新页面功能还是jsp页面head属性里面类似的功能,都会有浏览器发出的“啪啪”的声音,而使用setTimeout则没有这样的声音,所以使用setTimeout方法还是很有用的