Dynamic Web Pages.

  • 418 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
418
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • CGI is slow ; 웹서버와 CGI 프로그램은 별도의 프로그램이므로 요청이 잇을때마다 CGI 프로그램을 실행시키게 되므로 , 서버의 부담을 가중시켜 속도가 느리다 . 별도의 프로세스에서 CGI 프로그램 실행으로 비교적 느림 the grunt work = You will also have to write a separate CGI program for each different data access, unless you get real clever. Performance enhancement features = Improved performance accessing DB2 using DTW_USE_DB2_PREPARE_CACHE, which takes advantage of your DB2 prepared statements and package cache. = Web server interfaces (APIs), FastCGI, = Reuse of database connections
  • CGI environment variables = AUTH_TYPE( 사용자인증형식 ), CONTENT_LENGTH( 표준입력을 전달되는 질의 문자열의 총 바이트수 ), CONTENT_TYPE(CGI 프로그렘에 전다로디는 데이타의 인코딩 형 식 ), QUERY_STRING(GET 전달 방법에서 질의 문자열이 저장될 환경변수 ), SERVER_NAME( 웹서버의 IP 주소나 도메인명 ), REQUEST_METHOD(Get 또는 Post 요청방법 ) CGI standard input pipe = 웹브라우저에서 전달되는 문자열 스트림  getc(stdin); POST 방식일때 키보드를 통해 입력받음 CGI standard output pipe = CGI 프로그램에서 처리된 결과를 웹서버로 전달하는 문자열 스트림  모니터화면상으로 출력됨
  • the passing of input data from the HTML form to the CGI program <Form METHOD ={get|post} [ENCTYPE= 인코딩형식 ] ACTION={ 폼처리 프로그램의 URL}> </Form> 웹서버가 CGI 프로그램에 인자값을 어떻게 전달할 것인지 결정 get: 웹서버가 CGI 프로그램에 QUERY_STRING 이라는 환경변수로 폼입력값을 전달 post: 웹서버가 CGI 프로그램에 표준입력으로 폼입력값을 전달 특수한 경우 ENCTYPE 을 명시해 인코딩 방법을 달리해 줌 CGI can be slow 웹서버와 CGI 프로그램은 별도의 프로그램이므로 요청이 잇을때마다 CGI 프로그램을 실행시키게 되므로 , 서버의 부담을 가중시켜 속도가 느리다 . 별도의 프로세스에서 CGI 프로그램 실행으로 비교적 느림 Web server API 웹서버를 시작하면서 필요한 루틴을 한 번에 로드하거나 DLL 형식으로 호출하게 되므로 , 여러 단계를 거치지 않고 직접 한들링할 수 잇기 때문에 속도가 빠르다 웹서버와 동등한 위치에서 실행되므로 매우 빠름 WE will see how Net.Data can do all this grunt work for you So that you can focus on what you really care about in the first place: Web Data Access
  • robust and scalable framework ( 강력하고 확장성잇는 ) 강력 (robust) performance improvement A ccessing DB2 using DTW_USE_DB2_PREPARE_CACHE, which takes advantage of your DB2 prepared statements and package cache. Web server interfaces (APIs), FastCGI, Reuse of database connections servlet Ability to invoke Net.Data using Java servlets 확장성잇는 (scalable) multiple platform    AIX ,HP,LINUX,OS/2,OS/390,OS/400,PTX,SUN,Win NT multiple datasource DB2, Oracle, DRDA-enabled data sources, ODBC data sources, as well as flat file and web registry data. multiple language enviroments Java, REXX, Perl, or C++. Easy to use Macro file 을 문법에 맞게 작성하기만 하면 된다 . Extendable multiple platform, multiple datasource, multiple language enviroments Fast high performance macro proceesor A high performance macro interpreter and web application, Net.Data satisfies your clients' need for quick server response Web server interfaces (APIs), FastCGI, and the reuse of database connections caching You want even higher performance? PHP and ASP can connect to DB2 only through ODBC. Net.Data connects natively to DB2, and now in Version 7 it can take advantage of prepare caching to speed-up those SQL queries that are run frequently.
  • features for Lastest version of Net.Data -> FastCGI XML Relational data can be automatically displayed as XML using the new XML Report Block. performance improvement Improved performance accessing DB2 using DTW_USE_DB2_PREPARE_CACHE, which takes advantage of your DB2 prepared statements and package cache. Web server interfaces (APIs), FastCGI, Reuse of database connections servlet Ability to invoke Net.Data using Java servlets multiple platform    AIX ,HP,LINUX,OS/2,OS/390,OS/400,PTX,SUN,Win NT multiple datasource DB2, Oracle, DRDA-enabled data sources, ODBC data sources, as well as flat file and web registry data. static CGI processes 대화형 웹페이지 작성이 매우 어렵다 간단한 폼을 이용한 대화형 웹페이지를 만들 수 도 잇겟지만 , 자바나 자바스크립트처럼 클라이언트쪽에서 바로 액션을 취해 주는 실시간 대화형 웹페이지는 CGI 본래 목적에 어긋나는 처리가 된다 . CGI 는 실제 서버의 응용 프로그램과 웹서버를 연결해 주는 표준이므로 DB 접근이나 어떤 응용 프로그램의 결과를 MIME 을 이용해 웹브라우저에 결과로 서 전달해 주게 된다 . Fast CGI FastCGI FastCGI [ 훼스트 씨지아이 ] 는 대부분의 웹서버에서 응용프로그램을 호출할 때 사용하는 방법인 CGI 의 속도를 증진시키기 위한 프로그래밍 인터페이스이다 . FastCGI 개발자들에 의하면 , 웹사이트로 들어와서 특정 응용프로그램을 사용하는 사용자 요청이 3~30 배정도 더 빠르게 처리될 수 있다고 한다 . FastCGI 는 웹서버의 플러그인 이다 . 이러한 성능향상을 얻기 위해서는 기존의 서버 응용프로그램들에 아주 작은 변경만 하면 된다 . 기본적으로 FastCGI 는 단일 프로세스 내에서 다중 CGI 요청들을 관리하는 프로그램이므로 각 요청에 따른 많은 프로그램 명령어들을 절약한다 . CGI 에서는 각 사용자의 서비스 요청에 대해 웹서버가 제어를 행사하고 , 서비스를 수행하고 , 또 종료하기 위해 , 각기 새로운 프로세스를 만들어야했다 . FastCGI 는 현재 처리되고 있는 모든 요청들이 하나의 프로세스를 공유한다 . CGI 와는 달리 , FastCGI 에서 프로세스는 웹서버에 독립적으로 실행되고 격리되므로 , 좀더 많은 안정성을 제공한다 . FastCGI 는 언어에 독립적이며 , Open Market, Inc., 이 개발하고 판권을 가지고 있었으나 , 무료로 사용할 수 있도록 공개된 표준으로서 제공한다 . FastCGI 는 어떠한 웹서버 또는 플랫폼 에 걸쳐서도 사용될 수 있는 하나의 비독점적 접근방식을 제공한다 . Java servlets(server-side includes), SSI 란…웹서버에서 요청하는 문서 ( 다른 HTML 문서 , 어떤 프로그램 결과값 , SSI 와 관련된 환경변수값 ) 를 포함시켜 주는 기법 SSI enables you to embed a Java Servlet within a HTML document
  • Language Environments Java Applet - DTW_APPLET - Java applet language environment lets you use Java applets in your Net.Data applications. To generate an applet tag, you must provide the applet tag’s qualifiers and the applet’s parameter list Java Application – DTW_JAVAPPS - Net.Data supports your existing Java applications with the Java language environment REXX - DTW_REXX - REXX language environment interprets internal REXX programs that are specified in a FUNCTION block of the Net.Data macro or it can execute external REXX programs stored in a separate file Perl - DTW_PERL - Perl langauge encironment interprets internal Perl scripts that are specified in a FUNCTION block of the Net.Data macro or it execute external Perl scripts stored in separate file System – DTW_SYSTEM – System language environment supports executing commands and calling external program external program? Command ?? User Written - SQL – DTW_SQL - SQL language environment executes SQL statements through DB2 The result of the SQL statement can be returned in a table variable 궁금한것 Java Applet 의 예제 Langauge 와 DB 와의 관계 ( 한가지 언어를 선택하고 한가지 DB 를 선택하는게 아닌거 같다 .)
  • Java virtual machines : Net.Data 는 DB 와 Java virtual machine 의 connection 을 관리한다 . built-in functions 예 :???
  • cgi-directory-name/db2www.exe The path and filename of the Net.Data executable file, servlet class, DLL, or shared library macro-block-name Specifies the name of the HTML block in the referenced Net.Data macro
  • Block = Define, HTML, Function
  • Variable, Function, Report 에 대하여 상세히 살펴보자
  • http://server/Net.Data_invocation_path/filename/block[?name=val&…] ?name=val Specifies one or more optional parameters passed to Net.Data
  • Nn 컬럼 n 에 대한 조회나 함수 호출로부터 리턴된 컬럼명 RERPOT 및 ROW 블록에서 Nn 을 참조할 수 있다 NLIST 함수호출이나 조회의 결과로부터 얻어진 모든 컬럼명의 목록이 들어 잇다 . RERPOT 및 ROW 블록에서 NLIST 을 참조할 수 있다 N_columnName ??? Nn 또는 NLIST 와 다른점은 ? Vn The value for the specified column number n for the current row. VLIST A list of all the field values for the current row being processed in a ROW block. Row 블록내에서 처리중인 현재 행의 모든 필드 값 목록 V_columnName The value for the specified column name for the current row. The variable is not set for undefined column names. A query containing two column names with the same name gives unpredictable results. Consider using an AS clause in your SQL to rename duplicate column names. ROW_NUM 처리중인 현재 행의 번호 (Net.Data 테이블에서 행이 처리될 때마다 Net.Data 가 값을 증가시키는 테이블 변수 ) NUMBER_CLOMNN The number of table columns that Net.Data is processing in the report block; the columns are returned by a function call or query. TOTAL_ROWS The total number of rows a query returns (% 비교 NUMBER_ROWS The number of rows in the table that Net.Data is processing in the REPORT block ) RETURN_CODE The return code returned by a call to a built-in function or a call to a language environment. Net.Data uses this value to process MESSAGE blocks. You can use this variable to determine whether a function call succeeded or failed =------------- LOGIN 유효한 데이타베이스 ㅇ사용자 ID Transaction_Scope Specifies the transaction scope for SQL commands, determining whether Net.Data issues a COMMIT after each SQL command or after all SQL commands in an HTML block complete successfully. SINGLE : Net.Data issues a COMMIT after each SQL command in an HTML block successfully completes. MULTIPLE : Specifies the Net.Data issues a COMMIT only after all SQL commands in an HTML block complete successfully. MULTIPLE is the default.
  • 요기 할차례…… <.User Defined Function > %Function (type) function-name ([usage] [datatype] parameter, …) [RETURNS (return var)] { excutable- statements [report-block] [message-block] }% %{ %Function (DTW_REXX) rexx1 (IN input) returns (result) { %EXEC {testcmd.cmd%} %} Executable statements - The set of laguage statements that is passed to the specified L.E for processing after the variables are substituted and the functions are processed OUT parameter ? Return variable ?
  • language environment A module that provides access from a Net.Data macro to an external data source such as DB2 or a programming language such as Perl. System - System language environment supports executing commands and calling external program Example?? NUMBER_OF_TABLES DTW_NUMBER_OF_TABLES: Net.Data 가 그 함수에서 사용하는 테이블 변수의 개수 TABLE_<i>_NAME DTW_TABLE_I_NAME: function call 에 의해 순서화된 것에 기반한 I 번째 테이블 이름 Number_Of_Columns DTW_tname_NUMBER_OF_COLUMNS: 특정 테이블의 컬럼의 개수 The number of table columns that Net.Data is processing in the report block; the columns are returned by a function call or query. NUMBER_OF_ROWS, DTW_tname_ NUMBER_OF_ROWS : 특정 테이블의 로의 개수 COLMUMN_NAME_<i>, DTW_tname_COLUMN_NAME_I : 특정 컬럼의 컬럼 이름 <column_name>_VALUE_<i> DTW_tname_cname_VALUE_k : 특정 컬럼 , 특정 로의 값 cname – 컬럼이름 , k- 로번호 getNumberOfTables(), - 에플릿 태그에 발견된 테이블의 개수 getTableNames(), - 에플릿 태그에서 발견된 테이블 이름 리스트 getNumberOfColumns(String tableName), - tableName 테이블안의 컬럼 개수 getNumberOfRows(String tableName), - - tableName 테이블안의 로우ㅡ개수 getColumnNames(String tableName), - - tableName 테이블안의 컬럼 이름들 getTable(String tableName) – 테이블의 로와 컬럼의 값들을 포함하는 스트링의 이차배열을 리턴
  • JDBC Driver Manager – JDBC architecture consists of two layers of APIs Driver Manager API – what a JDBC user sees and uses (Driver API – what a JDBC driver implementor sees and implements) JDBC Applet Driver- Type 3 (Net-protocol , all – Java driver) or Type 4(Native-protocol, all –Java driver) -> this drivers are suitable for use by Java applets JDBC Applet Server – the JDBC Applet Driver will access the remote databases by communicating with the JDBC applet server provided by the database system
  • JDBC Driver Manager – what a JDBC user sees and uses JDBC Application Driver – Type 1 (JDBC –ODBC bridge driver) or Type 2 (Native-API , partly-Java driver) -> this drivers are suitable for use by Java application CAE (Cilent Application Enabler) – JDBC Application Driver will access the databases through a CAE provided by the database system
  • Live Connection A Net.Data component that consists of a Connection Manager and multiple cliettes. Live Connection manages the reuse of database and Java virtual machine connections. Improved performance reuse connection Multiple database access each database has its unique cliettes

Transcript

  • 1. -Dynamic Web Pages 데이타베이스 연구실 홍 동 숙
  • 2. Product
    • HTML is static but CGI and Web server APIs aren’t
      • Using HTML, The text and the format of its display remain constant and cannot be changed at run time
      • Using CGI and major Web server APIs, you can execute a server program from an input HTML form and then generate an output HTML report based on the result of that program execution
      • CGI is portable but it can be slow
      • The Web-server unique APIs are fast but they are not portable
    • Net.Data as a Web gateway tool
      • Net.Data does most of the grunt work for you and makes your job much easier when creating dynamic Web pages
      • Net.Data supports major Web server APIs in addition to CGI, provides access to a rich set of databases
      • Net.Data includes some important performance enhancement features
      • Net.Data serves as a good case study that illustrates many of the major issues one faces when designing and implementing a dynamic Web page generation tool
  • 3. CGI(1)
    • CGI allows you to invoke a program from a Web server that normally only knows how to process HTML documents
      • This can be done
        • through a URL directly from a Web browser
        • as an HTML anchor reference
        • as an action attribute of a HTML form
      • http://server-name/cgi-directory-name/cgi-program
    • When receiving such a URL
      • The Web server set up some environment variables and invokes the CGI program
      • The CGI program then reads the environment variables and starts executing
      • The CGI program further reads input data from the Web server through the standard input pipe, and it writes result data to the Web server through the standard output pipe
      • The Web server treats the results as a normal HTML document and returns it to the Web browser for display
  • 4. CGI(2)
    • The common architecture for Web data access using CGI involves two passes
      • In the first pass
        • From a Web browser, the user downloads an HTML form using a URL
        • The user then fills in the input data
      • In the second pass
        • The user submits the HTML form whose action attribute contains a URL that specifies the name of a CGI program
        • The Web server invokes the program that contains a SQL query on a database
        • The CGI program collects the query results and generates a standard HTML report to be returned by the Web server for display to the user
      • Fg 11-1.Web Data Access Using CGI
  • 5. CGI(3)
    • Fg 11-2. HTTP Process Flow Calling CGI
  • 6. CGI(4)
    • As a developer of a CGI-based data access application
      • You must develop or handle
        • the input HTML form
        • the CGI program that accesses databases
        • the passing of input data from the HTML form to the CGI program
        • The generation of an HTML report based on the data access results
        • => All these are tailored for the specific application
      • If another application comes along, you must repeat the whole cycle again for that application
      • CGI can be slow so you will have to worry about replacing CGI with Web server unique APIs and so on
  • 7. NET.DATA(1)
    • Net.Data is a Web gateway tool
      • It provides a robust and scalable framework for creating dynamic Web pages with data originating from a variety of sources
        • Multiple platform : HP, LINUX, OS/2, SUN, WinNT …
        • Multiple datasource ; DB2, Oracle, ODBC data sources …
        • Multiple language environments : Java, REXX, Perl, C++ …
      • It is easy to use, extendable, and fast
      • Fg 11-3. Web Data Access Using Net.Data
  • 8. NET.DATA(2)
    • The development of Net.Data followed the evolution of Web data access
      • Net.Data was first introduced in 1995 to enable Web-based, server-side applications
      • It used static CGI processes and provided access to mainly DB2 databases (it was called DB2 WWW Connection)
      • In 1996, it added support for access to multiple data sources, Web server APIs, live connections, the use of Java applets and JavaScript on the client, and server-side JDBC processing
      • Major action items planned for future releases include visual programming tools, Fast CGI support, Java servlets(server-side includes), performance improvements, additional data sources, and additional platforms
  • 9. The Net.Data Architecture(1)
    • Net.Data applications have a 3-tier architecture
      • Fg 11-5. The Net.Data 3-Tier Architecture
  • 10. The Net.Data Architecture(2)
    • Net.Data applications have a 3-tier architecture
      • Net.Data itself resides on Tier 2, a Web server
      • Net.Data is a Web server program that can be invoked through CGI, a Web-server specific API, or as Java servlets
      • Net.Data applications appear in the form of macro files, which contain HTML forms, SQL queries, and optional function calls(in Java, REXX, Perl, or C)
      • The user of an application invokes it from the client, Tier 1, by using a URL that specifies the Net.Data executable, the name of a macro file, and the input HTML form
      • When the user submits the form, its action causes a certain SQL query to be executed on the database server, Tier 3
      • The result of the query is used to generate an output HTML report for display to the user
  • 11. The Net.Data Architecture(3)
    • Net.Data consists of the major components
      • Fg 11-6. The Net.Data Component Architecture
  • 12. The Net.Data Architecture(4)
    • Net.Data consists of the major components
      • Macro processor
        • It processes macro files, invokes function calls, links to language environments, and generates HTML pages
      • Macro files
        • These are Net.Data applications written by users
      • Function library
        • This contains Net.Data’s built-in functions
      • Language environments
        • These are Net.Data’s backends or databases
      • Live connection
        • It can be used to maintain and manage live connections to databases and Java virtual machines
  • 13. Macro Processing(1)
    • A Net.Data macro file is processed twice by the macro processor during a user session
      • In the first pass
        • From a Web browser, the user invokes the macro processor using a URL that specifies the macro processor, the name of the macro file, and the name of an HTML section that defines the input HTML form
        • The macro processor processes the macro file-specifically, the named HTML section
        • The macro processor generates a standard HTML form to be returned by the Web server for display to the user
      • In the second pass
        • The user submits the HTML form, whose action attribute contains a URL
        • The macro processor again processes the macro file-specifically, the named HTML section-that contains a function call executing a SQL query on a database or invoking a procedure on other backends
        • The macro processor makes the function call, collects the result, and generates a standard HTML report to be returned by the Web server for display to the users
  • 14. Macro Processing(2)
    • Fg 11-7. Net.Data Macro Processing : Report Generation
  • 15. The Macro Processor(3)
    • The macro processor can be invoked by a Web server via a URL
      • This can be done directly by a user, as an HTML anchor reference, or as an action attribute of an HTML form
      • When invoked as a CGI or ICAPI(IBM’s Internet Connection API) application,
        • http://server-name/cgi-directory-name/db2www.exe/macro-filename/macro-block-name
      • When invoked as an NSAPI(Netscape Server API) or ISAPI(Microsoft’s Internet Server API) application,
        • http://server-name/macro-filename/macro-block-name
    • The macro processor processes macro file and performs the following tasks
      • Includes files, defines variable, and defines functions
      • Resolves variable references and invokes function calls
      • Loads in appropriate (language environment) libraries
      • Generates standard HTML pages
  • 16. The Macro File(1)
    • The macro file provides you with the means to add logic, variables, function calls, and reports to otherwise static HTML
    • A macro file consists of macro statements which are denoted by a special macro symbol(% or @)
    • The major type of macro statements :
      • Blocks
        • These are used to define HTML forms and reports, variables, functions and their reports
        • %block-type[(…)] { …%}
      • Function calls
        • These are used to invoke functions
        • @function-name(…)
      • Control statements
        • These can be used to control the flow of macro execution
        • %if … [%elif …] [%else …] %endif
      • Comments
        • %{ … %}
  • 17. The Macro File(2)
    • Three major type of macro blocks :
      • Define
        • This can be used to define variables
      • HTML
        • This is used to define input HTML forms and output HTML reports
      • Function
        • This can be used to define language-environment specific functions
        • Function block may include a Report block and Message block
        • Report block
          • This is used to define the report to be generated
        • Message block
          • This is used to define the message to be displayed in case an error occurs
    • The macro file provides three major expressive capabilities
      • Variable definition and passing
      • Function definition and invocation
      • Report definition
  • 18. The Macro File(3)
    • Net.Data variables
      • can be used to pass values within a macro file or between a macro file and a language environment
      • All variables are character strings (they have no data types)
      • The major kinds of variables :
        • Implicit
          • These contain data returned from SQL queries and from function calls
        • Report
          • These can be used to customize report format
        • SQL
          • These can be used to tailor access to databases
        • User-defined
          • These are user-defined variables
      • User-defined variables can be defined in the Define block, defined in an HTML form’s INPUT or SELECT statement, or passed in as URL data
      • Once defined, user-defined variables can be referenced as $(variable-name) anywhere in the macro file
  • 19. The Macro File(4)
    • Net.Data variables
      • Implicit variables include :
        • $(Nn),$(N_columnName),$(NLIST) contain column names
        • $(Vn),$(V_columnName),$(VLIST) contain column values in the current row
        • $(ROW_NUM) contains the row number of the current row
        • $(NUMBER_COLUMN) contains the number of columns in the result table
        • $(TOTAL_ROWS) contains the number of rows in the result table
        • $(RETURN_CODE) contains the return code for use in the Message block
      • SQL variables include :
        • DATABASE specifies the database to connect to
        • LOGIN specifies the user id
        • PASSWORD specifies the password to be used with the user id
        • TRANSACTION_SCOPE specifies the transaction scope for SQL statements
  • 20. The Macro File(5)
    • Net.Data functions
      • can be used to add logic, access databases, or interact with external programs during macro execution
      • The major types of functions :
        • Math, String manipulation, Table, User-defined
      • User-defined function contains the following information :
        • Language environments, Name (Required)
        • IN, OUT, and INOUT parameters (Optional)
        • Return variable, Executable statements (Optional)
        • Report block, Message block (Optional)
    • Net.Data reports
      • Within a Function block you can use the Report block and Message block to define the report and message to be generated
      • The report block consists of the following :
        • Header, ROW block, Footer
      • The Row block displays HTML formatted data once for each row of data returned from the function call
      • The Message block allows you to associate a message with each return code value generated by the function call and to specify the action for Net.Data
  • 21. Language Environments(1)
    • Net.data provides a rich set of language environments
      • SQL/DB2, Oracle, and Sybase with native access
      • ODBC
      • Java Applet and Java Application
      • REXX and Perl
      • System (C)
    • Users can also build and plug in their own language environment
    • You simply specify the SQL statement to be executed within a function body and then call the function
    • If you want to have more control over data access, you can use the Java Applet (from the client side) or the Java Application (from the server side) language environment
    • The Java Applet language environment can dynamically generate the following parameter specifications for an applet
      • NUMBER_OF_TABLES, TABLE_<i>_NAME, NUMBER_OF_COLUMNS, NUMBER_OF_ROWS, COLMUMN_NAME_<i>, <column_name>_VALUE_<i>
    • Net.Data Java Applet Interfaces :
      • getNumberOfTables(), getTableNames(), getNumberOfColumns(String tableName), getNumberOfRows(String tableName), getColumnNames(String tableName), getTable(String tableName)
  • 22. Language Environments(2)
    • Fg 11-9. Client-Side Application with Java Applet
  • 23. Language Environments(3)
    • Fg 11-10. Server-Side Application with Java Application
  • 24. Live Connection
    • Only one database connection per macro execution
      • Net.Data establishes a connection to a database at the beginning of macro execution
      • Net.Data closes the connection at the end of macro execution
    • Live connection allows you to create and maintain persistent connections
      • Live connection consists of a connection manager and cliettes
      • The connection manager is a separate executable from Net.Data
      • Cliettes are single-threaded processes that the connection manager starts, and they run continuously to service requests
      • Cliettes are
        • made to handle specific language environments
        • pre-started at Web server initialization
        • configurable with a minimum and maximum number of processes
        • pre-connected to specified databases or backends
        • reusable for the same type of connection
    • Live connection provides two major advantages
      • Improved performance
      • Multiple database access
  • 25. Conclusion
    • Net.Data takes the grunt work out of CGI programming and makes life much easier for you in generating dynamic Web pages based on live data
    • Reference sites
      • http://www-4.ibm.com/software/data/net.data/
      • http://www-4.ibm.com/software/data/net.data/docs/index.html
    • 참고
      • DB2 Universal DB V7
        • Packages which include Net.Data
          • DB2 Universal Developer's Edition
          • DB2 Universal Database Workgroup Edition
          • DB2 Universal Database Enterprise Edition (EE)
          • DB2 Universal Database Enterprise-Extended Edition (EEE)
          • DB2 Connect Enterprise Edition
        • Fee download package (you can get it from IBM Web site)
          • DB2 Personal Developer's Edition
      • DB2 Universal DB V5 (you can get it from CD)
        • DB2 Universal Database Workgroup Edition
        • DB2 Universal Database Enterprise Edition