7/31/2019 Php Oracle Connection Magazine Reprint
1/13
4.07
Cutting-Edge Technologies for Web Professionals
The Oracle PHP ConnectionHow to Get Well Connected and
What the Future Holds Once You Are
PHP Databases Special
MaxDB on the Web with PHPAn Introduction to the MaxDB PHP Interface
Slony Replication by ExampleBuilding the Slony Cluster
Ruling the Turf with PHP and IBM DatabasesCapitalize on the Best of Both Worlds
7/31/2019 Php Oracle Connection Magazine Reprint
2/132 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7
Table of Contents
www.php-mag.net
06 Whats New in the PHP Community
23 Slony Replication by Example
Building the Slony ClusterThe ability o providing copies among instances o the
database engine is known as replication. This article talks
about Slony, which is the most popular orm o master-
slave replication used on PostgreSQL today.
by Robert Bernier
05 The Oracle PHP Connection
How to Get Well Connected and What
the Future Holds Once You AreIn this article we take a look the connection methods
used or PHP and Oracle database using the PHP OCI8
extension. Specifcally we cover non-persistent and
persistent connections while oering some suggestions
or choosing the right approach. In addition we will cover
some upcoming eatures in the next major release o the
Oracle database to signifcantly improve scalability o
PHP applications.
by Richard Rendell
PHP Databases Specia
7/31/2019 Php Oracle Connection Magazine Reprint
3/133 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7
April 2007 Issue
16 MaxDB on the Web with PHP
An Introduction to the MaxDB
PHP InterfaceThe article presents an introduction to working with
the PHP interace rom MaxDB. It is intended or PHP
users and developers already amiliar with the use o PHP
extensions and, perhaps, with MaxDB itsel. This article
tells you what you need to install MaxDB PHP, how
you can use its eatures and how you can convert your
MySQL applications to MaxDB PHP.
by Thomas Simenec
37 Ruling the Turf with PHP
and IBM Databases
Capitalize on the Best of Both WorldsWith the release o ibm_db2, PDO_IBM, and PDO_
INFORMIX extensions, IBM has provided a simple
to use, high perorming, and very stable database
connectivity layer to the PHP community. The article
attempts to highlight the IBM value proposition and
provides a perspective straight rom the gatekeepers
o these oerings to enable development o robust,
enterprise class web applications using PHP and IBMdatabases.
by Srini Bhagavan, Kellen Bombardier
7/31/2019 Php Oracle Connection Magazine Reprint
4/13
ant to Sponsor/Exhibit?
mail: [email protected]
one: +91 80 411 24 392/3
R
THIS YEARS MUST ATTEND FOR IT PROFESSIONALSThree Conferences In One Package. Cutting-edge Sessions Delivered byCommunity and Industry Luminaries.
Venue :
Date :
National Science Symposium Centre, IISc, Bangalore, India
28-31 May 2007
%*4$07&35)&108&30'5)3&&*/0/&
XXXKBYJOEJBDPN
Presents
Media Sponsors
YOUR RIGHT TO INFORMATION TECHNOLOGY
Platinum Sponsor Gold Sponsor
http://www.sda-india.com/conferences/jax-india/http://www.eacon-india.com/http://www.eclipseforumindia.com/http://www.sda-india.com/conferences/jax-india/7/31/2019 Php Oracle Connection Magazine Reprint
5/13
The Oracle PHP Connection PHP Databases Special
I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7 5
PHP applications o all types and sizes are being built
using the Oracle database. Using the ree Oracle Express
Edition (XE) and the equally ree SQL Developer or
JDeveloper, getting up and going with Oracle has never been
more accessible--or cheaper! Whether you are building aprototype, or a business critical PHP application the initial
step to using all that database technology is to connect to
it. The choice o connection method and how you manage
database connections in the PHP application can have a
dramatic eect on perormance. So here we will explore
the ways in which you can connect to an Oracle database
rom your PHP application, including the types o Oracle
connections, environment variables and semantics o each
connection method. Finally we will take a look at scalability
o PHP applications and the Oracle connection pooling
approach specifcally developed to increase perormance o
multi-process clients such as PHP.
OverviewWhen I initially got involved in our PHP eorts one o the
most interesting aspects was discovering what customers
were actually doing with PHP and Oracle. Customers were
showing us their wow actor with Oracle and PHP long
beore well, those other wow guys. Heres just some o
The Oracle PHP Connection
By Richard Rendell
In this article we take a look the connection methods
used or PHP and Oracle database using the PHP OCI8
extension. Specifcally we cover non-persistent and
persistent connections while oering some suggestions
or choosing the right approach. In addition we will coversome upcoming eatures in the next major release o the
Oracle database to signifcantly improve scalability o PHP
applications.
How to Get Well Connected and Whatthe Future Holds Once You Are
the categories and types o PHP applications our customers
are building using the Oracle database:
Enterprise portals
Content and Records ManagementTrading and web commerce
Multimedia
Spatial
OLAP and Business Intelligence
Lie Sciences
Pharmaceuticals
Education
Data warehousing and mining
Some o these applications contain over a million lines o
PHP code and at least as many users. Also, several open source
projects have chosen to add Oracle as a supported database. Mostrecently the olks at Drupal were kind enough to write about
their experiences doing exactly that in the Oradrup project [1].
Since this article is on PHP connections toOracle databases, an exposure to PHP andthe PHP OCI8 extension is desirable.
7/31/2019 Php Oracle Connection Magazine Reprint
6/13
PHP Databases Special The Oracle PHP Connection
6 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7
.......Common to all these PHP applications is the need to connect
to the Oracle database in a high-perormance and scalable way.
Many o these applications are business critical and need to
service thousands o users in a very short time period so the
question o scalability is never too ar away. In certain cases
the scalability o PHP and Oracle could use some improvement
and we have responded to those customers with some new
unctionality around connection pooling scheduled or the next
major database release. More on that later. For now, lets begin
by looking at the connection methods and explaining what we
have today beore introducing the new stu.
Types of Oracle ConnectionThere are basically three ways to connect to an Oracle
database rom a PHP application; all routines are contained in
the PHP OCI8 extension:
A standard connection
Unique connections
Persistent connections
Lets take a look at them.
Standard ConnectionsFor basic connection to Oracle use PHPs oci_connect()
unction. You can call oci_connect() more than once in a script.
I you do this and use the same username and database name,
then you get a pointer to the original connection.
$c = oci_connect($username, $password, $dbname);
Multiple Unique ConnectionsTo get a totally independent connection use oci_new_
connect() unction. Each connection is separate rom any other.
This lets you have more than one database session open at the
same time. This can be useul when you want to do database
operations independently rom each other.
$c = oci_new_connect($username, $password, $dbname);
Persistent Connections
Persistent connections can be made with oci_pconnect()unction. Persistent connections are not automatically closed
at the end o a PHP script and remain open or reuse in other
scripts. This makes them ast. Limits on the number o persistent
connections can be set, and connections can be automatically
expired to ree up resources. The parameters or tuning persistent
connections are discussed later.
$c = oci_pconnect($username, $password, $dbname);
Oracle Database Name Connection StringsThe $dbname connection string in the earlier examples
is the name o the database that you want to attach to.It can be local or remote. Having an invalid connection
string can lead to the Oracle error: ORA-12514 TNS:
listener does not currently know o service requested in
connect descriptor.
The database name can be defned in one o the ollowing
ways:
Oracle is proposing enhancements tothe open source PHP OCI8 extensionso that PHP can leverage the poolingfunctionality. The OCI8 extension would
be modified to use the DRCP by gettingconnections from the pool and releasingthe connection at the end of the script orwhen the connection is not in use by theapplication.
7/31/2019 Php Oracle Connection Magazine Reprint
7/13
The Oracle PHP Connection PHP Databases Special
I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7 7
An Easy Connect string
A ull connection string
A database alias
Easy Connect stringThe Easy Connect method isas its name suggesteasy,
especially when compared to the other methods. I you are
running Oracle XE on the same machine as the PHP-enabled
web server, you could connect to the HR schema with:
$c=oci_connect(hr,hr_password, //localhost/XE);
The Easy Connect string is a JDBC-like syntax: [//]hostname[:
port][/service_name]
The port deaults to Oracles standard port, 1521. The
service_name deaults to the same name as the host computer.The // prefx is part o the syntax and is not a PHP line
comment.
You can use this syntax to connect to Oracle8i, Oracle9i
and Oracle10g databases as long as PHP is linked with Oracle
10g libraries. Zend Core or Oracle uses the appropriate Oracle
libraries. More inormation on the Easy Connect syntax can be
ound at:
http://download-west.oracle.com/docs/cd/B19306_01/
network.102/b14212/naming.htm.
Full Database Connection StringThe second method o defning a database name is using a
ull Oracle Net connection string, that gives total exibility overthe connection. See Listing. 1
When in doubt, you can copy the connection string used by
other Oracle tools and users i you have access to them. The
syntax can be more complex than the example in Listing 1,
depending on the database and Oracle Net eatures used. For
example, by using the ull syntax, you can enable Oracle Net
eatures like load balancing and tweak packet sizes. The Easy
Connect syntax doesnt allow this exibility.
Database AliasThe third option is to store the ull connection string in a fle
called tnsnames.ora and reer to it in PHP using an alias. See
Listing 2.
In PHP you would use the alias MYA to connect to the
database:
$c = oci_connect($username, $password, MYA);
PHP needs to be able to fnd the tnsnames.ora fle to resolve
the MYA alias. The directory paths that Oracle searches or
tnsnames.ora depend on your operating system. The search pathalways includes the directory specifed by the TNS_ADMIN
environment variable and a deault location.
In a standard install the deault tnsnames.ora is in:
$ORACLE_HOME/network/admin/tnsnames.ora
In Oracle XE or example, $ORACLE_HOME is in:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
.....I you have compiled PHP yoursel and are running it
with the Oracle libraries in a standard install, then you wouldtypically have ORACLE_HOME set and the deault tnsnames.ora
# tnsnames.oraMYA = (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myhost.mydomain)(PORT = 1521))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = MYDB.MYDOMAIN)))
Listing 2: Entry in tnsnames.ora file
$db = (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = myhost.mydomain)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = MYDB.MYDOMAIN)));
$c = oci_connect($username, $password, $db);
Listing 1: Full Oracle Net connection string
Note: Do not set environment variables in
a PHP script with putenv(). It causes hard totrack errors as the behavior is not consistentfor all OCI8 functions.
http://download-west.oracle.com/docs/cd/B19306_01/network.102/b14212/naming.htm.http://download-west.oracle.com/docs/cd/B19306_01/network.102/b14212/naming.htm.http://download-west.oracle.com/docs/cd/B19306_01/network.102/b14212/naming.htm.7/31/2019 Php Oracle Connection Magazine Reprint
8/13
PHP Databases Special The Oracle PHP Connection
8 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7
fle will automatically be ound without needing to set TNS_
ADMIN.
In Zend Core or Oracle, the ORACLE_HOME variable
is generally not set when Apache starts, so the deault fle will
not be ound. Instead, set the TNS_ADMIN variable.
Oracle Environment Variables forConnections
I you need to change Oracle environment settings like the
language and territory conventions, or are confguring and
building PHP yoursel, you will need to set some environment
variables in the shell that starts the web server. The OCI8
extension always needs to fnd Oracle libraries and message
fles. Not fnding the fles can lead to errors like Error while
trying to retrieve text or error ORA-12154. This message
means that an error ORA-12154 occurred (which is one
problem, in this case a connection problem). It also means that
OCI8 couldnt even fnd Oracles message fles to get the text
describing the error (a second problem). The solution or both
problems is oten the same--to set the environment correctly.
Another potential source o problems is having multiple
installations o Oracle. Finding mismatched versions o
Oracle libraries and fles can lead to PHP returning the
Oracle error ORA-12705: Cannot access NLS data flesor invalid environment specifed. The bottom line is that
your environment should be set correctly and consistently.
Environment variables must be set in the shell that starts
Apache so when the OCI8 extension is frst loaded it has access
to the correct values.
To connect to a remote database, or when PHP is linking
with ORACLE_HOME binaries, you may need some or all o the
ollowing environment variables to be set:
ORACLE_HOME
ORACLE_SID
LD_LIBRARY_PATHNLS_LANG
TNS_ADMIN
The NLS_LANG and TNS_ADMIN variables are most likely to
be required or Zend Core or Oracle. Zend Core or Oracle
modifes apachectl and adds LD_LIBRARY_PATH. (This may not be
required in a uture version o Zend Core or Oracle i Oracle
links the Instant Client dierently). This allows the Zend Core
or Oracle GUI Console to be reused to start Apache.
I you are using a tnsnames.ora fle and speciy network aliases
or the connection string with Zend Core or Oracle, you may
need to do something similar with TNS_ADMIN so the Zend
Core or Oracle Console can restart Apache correctly. I you
start Apache manually, set the environment in a calling script
(see Listing 3).
This example assumes /usr/local/apache/conf/tnsnames.oraexists.
TNS_ADMIN points to the directory containing the tnsnames.
ora fle. You may come across connections that do not speciy a
connection string:
$c = oci_connect($username, $password);
This works when ORACLE_SID is set to a local database on
the host running PHP. I you confgure PHP yoursel and have
problems, check the output rom the phpinfo() unction. Look at
the Environment section and make sure the Oracle variables are
set to the values you expect.
Closing Oracle ConnectionsAt the end o each script, connections opened with oci_
connect() or oci_new_connect() are automatically closed. You can
also explicitly close them at any time by calling:
oci_close($c);
Any uncommitted data is rolled back. I a long running
script only spends a small amount o time interacting with the
database, you may want to close connections to ree resources
or other users.
#!/bin/sh
TNS_ADMIN=/usr/local/apache/conf
export TNS_ADMINecho Starting Apache#export > /tmp/envvars/usr/local/apache/bin/apachectl start
Listing 3: start_apache.sh
7/31/2019 Php Oracle Connection Magazine Reprint
9/13
The Oracle PHP Connection PHP Databases Special
I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7 9
Connections opened with oci_pconnect() will not be closed by
oci_close(). This is similar to the way persistent resources work in
other PHP extensions. Idle persistent connections can be set to
expire.
The oci_close() unction was a no-op prior to the re-
actoring o OCI8. That is, it had no unctional code, and didnot actually close a connection. You could not explicitly close
connections even i you wanted to! This has now changed, but
you can revert to the old behavior i necessary with this php.
ini setting:
oci8.old_oci_close_semantics = 1
Semantically, oci_close() works by reerence counting.
Only when all reerences to the PHP connection are
inished will the database connection actually be closed. In
this example $c1 and $c2 are the one database connection
(because oci_connect returns the same connection resourcewhen called more than once in a script), but only at the
end o script is the database connection really closed. See
Listing 4.
In Listing 4, the second query ails, but the third succeeds.
Although the reerence counting algorithm keeps the database
connection physically open, the connection resource in $c1 is
not usable ater oci_close ($c1) is executed.
Connection Management inScalable Systems
Oracle achieves its well-known scalability in part through amulti-threaded architecture. PHP instead has a multi-process
architecture. This dierence means care is required when
designing scalable applications.
Using persistent connections is common or web sites that
have high numbers o connections being established. Reusing
a previously opened connection is signifcantly aster than
opening a resh one. Large sites should benchmark persistent
PHP connections and Oracle Shared Servers also known as
Multi Threaded Servers (MTS). Shared Servers reduce the
numbers o processes needed to handle database requests.
Make sure that you understand the lietime o your
applications connections. Reuse connections where possible,
but dont be araid to create new connections and close them
as needed. Each connection will take some Oracle memory, so
overall load can be reduced i idle connections are closed with
Apache process timeouts or with the php.ini parameters to
expire persistent connections.
For sites with hundreds o connections a second, tune the
cache size o an internal sequence generator, sys.audses$. A
starting point is to change it to perhaps 10000:
SQL> alter sequence sys.audses$ cache 10000;
This is also recommended i you are using Oracle RAC
(Real Application Clusters).
With Oracle RAC you can adjust the algorithm that decides
which Oracle node handles each new connection. Set the listener.
ora parameter
PREFER_LEAST_LOADED_NODE_ to OFF to use
session based load balancing.
This is documented in Note 220970.1 on Oracles Metalink
support site.
Session-based load balancing takes into account the number
o sessions connected to each node and then distributes new
connections to balance the number o sessions across the
dierent nodes. This can help when there is a connection storm
Listing 4: close.php
7/31/2019 Php Oracle Connection Magazine Reprint
10/13
PHP Databases Special The Oracle PHP Connection
10 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7
and the normal allocation metrics do not get a chance to get
updated ast enough. For both RAC and non-RAC database,
the DBMS_SERVICE package lets you speciy workloadmanagement goals. This is a detailed topic; reer to Oracles
manuals or more inormation. Finally, make sure that your
applications are as efcient as possible, which should minimize
the length o time connections are held.
Now that pretty much covers the best practices with
current technology, but to scale perormance beyond what we
have today or multi-process clients like PHP, Oracle is adding
a server side connection pool, which will manage a pool o
active connections ready to go.
Pooling Software ObjectsIn general pooling objects is an optimization that is widely
adopted in many scenarios. Pooling an object makes sense i
the object is:
Required or a relatively short duration
Expensive to create every time it is required
Expensive to tear down when not required
Expensive to maintain all the time (even when not required)
because it consumes resources
Pooling such objects enables the user that needs the objectto quickly access it rom the pool and release it back when the
object is not required, thereby enabling other users to reuse
the pooled object. This typically improves system perormance
dramatically.
Pooling Database ConnectionsDatabase connections generally satisy all o the earlier
mentioned criteria. Database connection establishment
involves creation o the network connection, spawning an
associated operating system process/thread, perorming the
requisite authentication, creation o the session involving
session private contexts or SQL statement, and so on. Tearingdown database connections is also expensive. And needless to
state that unnecessarily maintaining them when not required
just eats up precious resources on the database server. That
explains why database connection pooling greatly helps high
trafc web applications where connections are needed or
short durations. Most multithreaded systems that talk to a
database oer some orm o database connection pooling.
Currently PHP Apache processes, being single threaded,
are unable to pool opened database connections, each process
uses its own connection. PHP users are let with two options
either repeatedly create and tear down the connection or keep
the connection around. The ormer option is typically called
non-persistent connections and the latter is called persistent
connections. Neither o these options really achieves pooling.
Oracle Database ResidentConnection Pooling
The next major release o Oracle will have support or
Database Resident Connection Pooling (DRCP) that perorms
pooling on the database side. We announced this eature at
Oracle OpenWorld in 2006. This allows process-oriented
architectures such as PHP to take advantage o database
Richard Rendell is Senior Director o ProductDevelopment in the Linux Engineering division andis responsible or PHP activities at Oracle. Richardhas worked at Oracle or over 17 years occupying arange o positions in sotware development, businessdevelopment, product management, consulting andeducation. Richard established Oracles AustralianProduct Development Center in 1992 initially takingresponsibility or SQL*Plus which is now amongseveral products developed at the Australian Center.With a ocus on open source or the last 6 years histeams have delivered the JDeveloper PHP extensionand co-led the Zend Core or Oracle project with AndiGutmans at Zend.
7/31/2019 Php Oracle Connection Magazine Reprint
11/13
The Oracle PHP Connection PHP Databases Special
I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7 11
connection pooling in the absence o a middle tier connection
pooling process. Since DRCP is server side unctionality, it can
be leveraged across middle tier processes and middle tier boxesby all clients that want pooling o database connections. That
will allow very high trafc web sites to scale better and the cool
thing about the Oracle DRCP eature is that it is not just limited
to PHPany database client could use it.
DBA View of DRCPThe DRCP is optionally enabled by the DBA on the database
side. The DRCP is confgured by speciying the minimum and
maximum number o connections allowed. The DBA can also
confgure inactivity timeout settings and speciy the number o
cursors to be cached per connection. All o this is achieved by
calls to a new PL/SQL connection pool package. Starting the
pool brings up the minimum number o pooled connections and
DRCP dynamically sizes the number o connections in response
to load. There will be some DBA views available or monitoring
DRCP activity and perormance as well.
Client Side View of DRCPOn the client side, the client needs to speciy :POOLED
in the Easy Connect string that directs the client to the pool
instead o getting a dedicated server connection:
hostname:port/service:POOLED
For users who use TNS style connect strings, there is an
equivalent option:
(SERVER=POOLED)
All clients connecting as a certain user; or example, SCOTT
can then share other SCOTT connections rom the pool.
At the Oracle C interace level, there is an additional
parameter called connection_class that allows or urther sub-
pools within a users pool. This allows or separation o distinctapplications that may connect as the same user to the database.
The connection_class can be specifed programmatically in the
OCI connect calls.
PHP User View of DRCPOracle is proposing enhancements to the open source
PHP OCI8 extension so that PHP can leverage the pooling
unctionality. The OCI8 extension would be modifed to use the
DRCP by getting connections rom the pool and releasing the
connection at the end o the script or when the connection isnot in use by the application. For example the oci_pconnect()
call will get the connection rom the DRCP and an explicit or
implicit indication that the connection is not in use will release
the connection back to the pool.
The proposal includes an additional php.ini setting that
allows or identifcation o all Apache servers that run the same
application:
oci8.connection_class=NAME
This allows Apache instances to share connections rom
the same sub-pool on the database side, thereby achieving
pooling across middle tier instances. The aim is to provide the
connection pooling advantages with minimal confguration on
the PHP side.
More InformationFor more inormation on the proposed oci8 changes, or i
anyone is interested in contributing to the oci8 enhancements
or specifcation, please contact either mysel at richard.rendell@
oracle.com or Christopher Jones at christopher.jones@oracle.
com.
ConclusionConnecting to the Oracle database and maintaining high-
perormance connections is critical to high trafc web sites and
business critical PHP applications. Through eedback rom our
customers and developers Oracle is creating a highly scalable
architecture or multi-process clients such as PHP. We sincerely
appreciate the eorts o all who have helped defne and
refne this unctionality. I would especially like to thank Luxi
Chidambaran and the Oracle OCI development team or their
long-standing support o PHP and development o the DRCP
architecture. Look or urther announcements at the next major
release o the database.
Resources & References
[1] http://www.oracle.com/technology/pub/articles/pedros-drupal.html
Oracle Technology Network: http://www.oracle.com/technology[2] Oracle 10g Release 2 Documentation:http://www.oracle.com/technology/
documentation/database10gr2.html
[3] Oracle PHP Developer Center: http://www.oracle.com/technology/tech/php/index.html
http://www.oracle.com/technology/pub/articles/pedros-drupal.htmlhttp://www.oracle.com/technology/pub/articles/pedros-drupal.htmlhttp://www.oracle.com/technologyhttp://www.oracle.com/technologyhttp://www.oracle.com/technology/documentation/database10gr2.htmlhttp://www.oracle.com/technology/documentation/database10gr2.htmlhttp://www.oracle.com/technology/documentation/database10gr2.htmlhttp://%20http//www.oracle.com/technology/tech/php/index.htmlhttp://%20http//www.oracle.com/technology/tech/php/index.htmlhttp://%20http//www.oracle.com/technology/tech/php/index.htmlhttp://%20http//www.oracle.com/technology/tech/php/index.htmlhttp://www.oracle.com/technology/documentation/database10gr2.htmlhttp://www.oracle.com/technologyhttp://www.oracle.com/technology/pub/articles/pedros-drupal.html7/31/2019 Php Oracle Connection Magazine Reprint
12/13
$POGFSFODFGPSUIF/FYU(F
OFSBUJPO8FC
Webinale07
TheNextGenerationWebisaboutgetti
ng
associatedwithopenness,trust,authen
ticity
andcollaboration.Interactivity,new
possibilitiestoconnect,socialsoftware,
usability,andcommunitynet
workingarefast
catchingupwithusers.Thisnewbuzzis
generatingfreshandexcitingprojects.Th
e
latestbuzzwordisWeb2.0,andtheeven
t
foranyoneseekingtostayontopofthis
buzzisWebinale2.0!
Areyouinadilemmafindingsolutionsto
yourquestions?WheredoIfindspecific
perspectivessansthehype?Whatareth
e
possiblemethodologiesandhowcanI
implementtheminmyprojects?Whocan
showmehowtousetheopportunitiesan
d
solvetheproblems?Whatdoesthefutu
reof
theWorldWideWeb(WWW)loo
kslike?
WhichpartsofthisBuzzarejustgadgets
thatcannotpersistineverydayreality?
Webinale07istransferringtheknowledg
e
fortheNextGenerationWeb!Findyour
answershere!Becomepartofthe
movementandgatheralltheinformation
youneedtobecomesuccessfulontheW
eb
2.0platform.
FocusAreas
Webinale07providesconcreteperspectiveso
n:
AJAXinAct
WebSecurity
WebBusiness
WebKnow-how
EnterpriseBusiness
webinale07willdisseminatebusinessandtechnical
know-howrelatedtoWebdevelopment,Desig
n,
Optimization,andWebSecurity,besidesinfor
mative
sessionsonhowtoefficientlymarketWebsite
s.
webinale07offersanumberofparallelsessio
nsfor
youtochoosefrom.Italsoprovidesample
opportunitiesforexchangeofideas,networkin
gand
stayingabreastwiththelatesttrendsontheW
eb!
Thetopicsinwebinale07are
relevantto:
DevelopersDesigners
ProjectManagers
OnlineMarketingStrategists
webinale07ispositionedasaplatformthatw
illenable
theNextGenerationWebforyou.Top-notchs
peakers
whowillnotonlydemonstratethebestPractic
es,but
alsoguideyoualongthewaywilldelivercuttin
g-edge
sessions.Informationthatyougatheratwebin
ale07
willbemostrelevantforyourday-to-dayproje
cts.
InterestedinAdvertising,ExhibitingorSponsoring?
Pleasevisitwebinale-asia.com
Singapore,
webinale-asia.com23-24 April 2007
FOUR SERVICES.ONE SOURCE.
'OLD3PONSOR
http://www.webinale-asia.com/http://www.webinale-asia.com/http://www.webinale-asia.com/http://www.webinale-asia.com/7/31/2019 Php Oracle Connection Magazine Reprint
13/13
9OUCANALSOVISITHTTPWWWIMPIGERTECHCOM
WIZARD
WHERE DO YOU WANT TO
MEET YOUR CUSTOMER?
S&S MediaCHAMPIONING CROSS MEDIA COMMUNICATION
S&S MEDIA PTE LTD
.%7"2)$'%2/!$#().!4/7.0/).4
3).'!0/2%
TEL:-!).,).%FAX:
E-MAIL:ADVERTISESDAASIACOM
WebSite:WWWSOFTWARESUPPORTMEDIASG
Software & Support Verlag GmbH
'ELEITSSTRAE
&RANKFURTAM-AIN'ERMANY
Phone:Fax:
E-mail:SDAASIASOFTWARESUPPORTBIZ
Website:WWWSOFTWARESUPPORTBIZ
S&S Media
-%.!2!+!$).).$/.%3)!
*!+!24!).$/.%3)!
Phone: Fax:
E-mail:CONTACTUSMEDIATICOIDWebSite:WWWMEDIATICOID
S&S Media
)&,//202)-2/3%2/!$
"!.'!,/2%
Off: &AX
E-mail:EDITORSSDAINDIACOM
WebSite:WWWSOFTWARESUPPORTMEDIAIN
FOUR SERVICES. ONE SOURCE.
S&SMedia
Print(Magazine)
CustomEvents
BrandedConference
Online
http://www.softwaresupportmedia.in/mailto:[email protected]:[email protected]://www.softwaresupportmedia.sg/http://www.softwaresupportmedia.sg/mailto:[email protected]:[email protected]://www.software-support.biz/http://www.software-support.biz/mailto:[email protected]:[email protected]:[email protected]://www.media-ti.co.id/http://www.media-ti.co.id/mailto:[email protected]:[email protected]:[email protected]://www.softwaresupportmedia.in/http://www.softwaresupportmedia.in/http://www.media-ti.co.id/mailto:[email protected]://www.softwaresupportmedia.in/mailto:[email protected]://www.softwaresupportmedia.sg/mailto:[email protected]://www.software-support.biz/mailto:[email protected]