Enabling the Perforce Administrator via Mobile Device
Post on 13-Jan-2015
279 Views
Preview:
DESCRIPTION
Transcript
Enabling the P4 Administrator Via Mobile Device Xavier Galvez Senior Engineer Advanced Micro Devices, Inc.
© 2011
THE PROBLEM
• Granting access is a 24/7 operation
THE PROBLEM
• Granting access is a 24/7 operation • Engineering teams span across the world
THE PROBLEM
• Granting access is a 24/7 operation • Engineering teams span across the world • Access to areas is tightly regulated
THE PROBLEM
• Granting access is a 24/7 operation • Engineering teams span across the world • Access to areas is tightly regulated • A single team is authorized to give access
THE PROBLEM
• Granting access is a 24/7 operation • Engineering teams span across the world • Access to areas is tightly regulated • A single team is authorized to give access • Be able to perform this task whenever and wherever
THE SOLUTION
• Leverage the mobile device
THE SOLUTION
• Leverage the mobile device • Create an interface accessible by web browser
THE SOLUTION
• Leverage the mobile device • Create an interface accessible by web browser • Use the browser on the mobile device
THE SOLUTION
• Leverage the mobile device • Create an interface accessible by web browser • Use the browser on the mobile device • Do it securely
CONTEXT
This presentation touches on: • Breadth of the organization • Permissions in the protection table • Centralized authorization process
CONTEXT
This presentation touches on: • Breadth of the organization • Permissions in the protection table • Centralized authorization process
Then I discuss: • Evolution of the solution • Simplicity • Where to go from here
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
GLOBAL SCOPE
grp_northamerica
GLOBAL SCOPE
grp_northamerica grp_israel
GLOBAL SCOPE
grp_northamerica grp_israel grp_india
GLOBAL SCOPE
grp_northamerica grp_israel grp_india grp_shanghai
depot
main
DEPOT STRUCTURE & PERMISSIONS
stg rel
DEPOT STRUCTURE & PERMISSIONS
depot
stg main rel
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... w bm_merc //depot/main/merc/... r ACC_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt w bm_venus //depot/main/venus/... r ACC_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
depot
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... w bm_merc //depot/main/merc/... r ACC_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt w bm_venus //depot/main/venus/... r ACC_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
DEPOT STRUCTURE & PERMISSIONS
merc
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... w bm_merc //depot/main/merc/... r ACC_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt w bm_venus //depot/main/venus/... r ACC_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt w bm_venus //depot/main/venus/... r ACC_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt w bm_venus //depot/main/venus/... r ACC_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
8.10
merc
venus
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
8.10
merc
venus
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
8.10
merc
venus
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
8.10
merc
venus
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
8.10
merc
venus
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
8.10
merc
venus nda
nda
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
main stg rel
src
doc
merc merc
src
doc
venus
venus
8.10
merc
venus nda
nda
DEPOT STRUCTURE & PERMISSIONS
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
PERMISSIONS: HIGH-LEVEL TEAMS
bm_rel
bm_merc
nda_merc
reg_merc
bm_venus
nda_venus
reg_venus
grp_admins
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
PERMISSIONS: HIGH-LEVEL TEAM EXAMPLES
bm_venus
grp_admins
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
PERMISSIONS: ACCESS GROUPS
ACC_rel
REG_rel
ACC_main
ACC_merc
ACC_venus
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
PERMISSIONS: ACCESS GROUP EXAMPLE
ACC_rel
ACC_main
ACC_merc
grp_shanghai
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
PERMISSIONS: ACCESS GROUP EXAMPLE
ACC_rel
ACC_main
ACC_merc
ACC_venus
grp_northamerica
r ACC_rel //depot/rel/... w bm_rel //depot/rel/... w ACC_rel //depot/rel/8.10/... r ACC_rel -//depot/rel/*/acc.txt w REG_rel //depot/rel/*/acc.txt r ACC_main //depot/main/... r ACC_merc //depot/main/merc/... w bm_merc //depot/main/merc/... w ACC_merc //depot/stg/merc/src/... w ACC_merc //depot/stg/merc/doc/... w nda_merc //depot/stg/merc/nda/... w reg_merc //depot/stg/merc/acc.txt r ACC_venus //depot/main/venus/... w bm_venus //depot/main/venus/... w ACC_venus //depot/stg/venus/src/... w ACC_venus //depot/stg/venus/doc/... w nda_venus //depot/stg/venus/nda/... w reg_venus //depot/stg/venus/acc.txt s grp_admins //...
PERMISSIONS: COMBINATION EXAMPLE
ACC_rel
ACC_main
ACC_merc
bm_venus
ACC_venus
grp_northamerica
CREATING ACCOUNTS VIA P4 USER
CREATING ACCOUNTS VIA P4 USER
CREATING ACCOUNTS VIA NEWUSER.EXE
CREATING ACCOUNTS VIA NEWUSER.EXE
CREATING ACCOUNTS
CREATING ACCOUNTS
CREATING ACCOUNTS
CREATING ACCOUNTS
CREATING ACCOUNTS
PROBLEMS WITH BINARIES
• Newer versions need to be recompiled.
PROBLEMS WITH BINARIES
• Newer versions need to be recompiled. • Deployment.
CREATING ACCOUNTS
ADVANTAGES WITH WEB APPS
• Newer versions available right away.
ADVANTAGES WITH WEB APPS
• Newer versions available right away. • Experimental versions can be easily tested.
ADVANTAGES WITH WEB APPS
• Newer versions available right away. • Experimental versions can be easily tested. • Real-time validation on inputs.
ADVANTAGES WITH WEB APPS
• Newer versions available right away. • Experimental versions can be easily tested. • Real-time validation on inputs. • OS-independent.
LEVERAGE EXISTING RESOURCE #1: WEB SERVER
LEVERAGE EXISTING RESOURCE #1: WEB SERVER
LEVERAGE EXISTING RESOURCE #1: WEB SERVER
CREATING ACCOUNTS VIA WEB APP
CREATING ACCOUNTS VIA WEB APP
CREATING ACCOUNTS VIA WEB APP
CREATING ACCOUNTS VIA WEB APP
CREATING ACCOUNTS VIA WEB APP
CREATING ACCOUNTS VIA WEB APP
CREATING ACCOUNTS VIA WEB APP
LEVERAGE EXISTING RESOURCE #2: BLACKBERRY
internet
AMD
wireless network
firewall BES
LEVERAGE EXISTING RESOURCE #2: BLACKBERRY
internet
AMD
wireless network
firewall BES
LEVERAGE EXISTING RESOURCE #2: BLACKBERRY
LEVERAGE EXISTING RESOURCE #3: iOS
internet
AMD
wireless network
firewall secure VPN
LEVERAGE EXISTING RESOURCE #3: iOS
Wireless Solutions • BlackBerry Enterprise Solution for Blackberries • Secure VPN for iOS devices
SECURITY
Wireless Solutions • BlackBerry Enterprise Solution for Blackberries • Secure VPN for iOS devices
HTTP is not secure, use HTTPS! • Encrypts the HTTP message prior to transmission • Decrypts the message upon arrival • Requires the use of CA certificates
SECURITY
Wireless Solutions • BlackBerry Enterprise Solution for Blackberries • Secure VPN for iOS devices
HTTP is not secure, use HTTPS! • Encrypts the HTTP message prior to transmission • Decrypts the message upon arrival • Requires the use of CA certificates User Authentication and Identification • REMOTE_USER environment variable
SECURITY
Keep the location of the web page unknown • Only known to Perforce admins
REDUCING RISK
Keep the location of the web page unknown • Only known to Perforce admins Limit what can be done on the web page • Create a new user account • Display information from p4 protects and p4 groups • Add an existing user to currently existing groups • Remove the user from a group • Reset the password of an existing user
REDUCING RISK
WHAT NEXT?
Server-side APIs • P4Java, P4Perl, P4Ruby, P4Python, P4PHP • ASP.NET with Perforce C/C++ API
WHAT NEXT?
Server-side APIs • P4Java, P4Perl, P4Ruby, P4Python, P4PHP • ASP.NET with Perforce C/C++ API
Client-side Technologies • jQuery, jQuery Mobile, HTML5
WHAT NEXT?
Server-side APIs • P4Java, P4Perl, P4Ruby, P4Python, P4PHP • ASP.NET with Perforce C/C++ API
Client-side Technologies • jQuery, jQuery Mobile, HTML5
More Features! • Monitor and restart servers • Most-used commands can be called
CONCLUSION
The result: • Simple mechanism • Took advantage of existing resources • Latest web technologies were not necessary • Quick development, fast deployment
CONCLUSION
The result: • Simple mechanism • Took advantage of existing resources • Latest web technologies were not necessary • Quick development, fast deployment
The advantages: • Web page + mobile device allows rich feature set • Write once, run on all • Feel at home with the same interface • Not just work hard, but work SMART
CHALLENGE
Questions?
Thank you!
xavier.galvez@amd.com
ICON CREDITS
• http://www.iconshock.com/ • http://fasticon.com/ • http://johnfreeborn.com/ • http://www.deleket.com/ • http://www.customicondesign.com/ • http://www.visualpharm.com/ • http://www.icons-land.com/ • http://3dlb.com/
top related