Code Development on NT Some notes on experience gained in developing cross-platform (NT/Unix) HEP software for the Linear Collider Detector More of a.

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

Implementing Tableau Server in an Enterprise Environment
CSE Tier Architectures (or 3-Tier Applications) Adapted from Chuck Cusack’s Notes.
Linux vs. Windows. Linux  Linux was originally built by Linus Torvalds at the University of Helsinki in  Linux is a Unix-like, Kernal-based, fully.
What is a Programming Language? The computer operates using binary numbers. The computer only knows about 1’s and 0’s. Humans can also use 1’s and 0’s,
Server-Side vs. Client-Side Scripting Languages
11.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
Microsoft Terminal Server at CLRC Current Use and Future Plans Chris Brew Thanks to Mark Enderby (SRD), Tony Valente (ISIS) and Mike Waters (ITD) for extra.
IS4401 Project Technology Issues. Introduction This seminar covers Databases When to use a Database What Database to use Development Tools Visual Studio.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
SM3121 Software Technology Mark Green School of Creative Media.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Oct ROOT 2002, CERN, Geneva Qt-Based Implementation of Low Level ROOT Graphical Layer By V.Fine.
Telnet/SSH: Connecting to Hosts Internet Technology1.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
Linux GUI Chapter 5. Graphical User Interface GUI vs. CLI Easier and more intuitive More popular and advanced Needed for graphics, web browsing Linux.
Linux Operations and Administration
Java Analysis Studio Tony Johnson Stanford Linear Accelerator Center CHEP 97 - April 1997.
Web Based Applications
Microsoft Visual SourceSafe Very popular Mainly used by Windows developers Cornerstone of many development teams Provides essential version control functions.
Glink: GCOS e-business in an application server architecture Summit 2000, Jim Gallagher.
LINUX System : Lecture 3 Vmware, Cygwin, LINUX installation Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
Designing a HEP Experiment Control System, Lessons to be Learned From 10 Years Evolution and Operation of the DELPHI Experiment. André Augustinus 8 February.
Open Web App. Purpose To explain Open Web Apps To explain Open Web Apps To demonstrate some opportunities for a small business with this technology To.
Advanced PI Calculation Engine Makes Complex PI Calculations Easy! Use of EDICTvb for Multi-Plant Advanced PI Calculations Dane OverfieldEXELE Information.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
Instant Messaging for the Workplace A pure collaborative communication tool that does not distract users from their normal activities.
Windows OS and Application Management Chris Brew Rutherford Appleton Laboratory J-Lab, HEPiX/HEPNT 30/10/2000.
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
XA R7.8 Link Manager Belinda Daub Sr. Technical Consultant 1.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Chapter 4 System Software. Software Programs that tell a computer what to do and how to do it. Sets of instructions telling computers to perform actions.
MCTS Guide to Microsoft Windows Server 2008 Applications Infrastructure Configuration (Exam # ) Chapter Four Windows Server 2008 Remote Desktop Services,
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Technical Presentation
Java Analysis Studio - Status CHEP 98 - September 1998 Tony Johnson - SLAC Jonas Gifford + Kevin Garwood - University of Victoria.
ASP.NET in Definition: 1.ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites,
SWGData and Software Access - 1 UCB, Nov 15/16, 2006 THEMIS SCIENCE WORKING TEAM MEETING Data and Software Access Ken Bromund GST Inc., at NASA/GSFC.
How to implement GPOs and secure a MS Windows Environment with little to NO user awareness!?!?
Introduction Selenium IDE is a Firefox extension that allows you to record, edit, and debug tests for HTML Easy record and playback Intelligent field selection.
Imagine Creating Software Without a Single Line of Code!
WIRED World-Wide Web Interactive Remote Event Display Mark Dönszelmann, IT/API, CERN CHEP 2000, 9 February 2000, Padova, Italy.
TOPIC 7.0 LINUX SERVICES AND CONFIGURATION. ROOT USER Root user is called “super user” because it has power far beyond those of mortal user. As root,
SQL SERVER 2008 Installation Guide A Step by Step Guide Prepared by Hassan Tariq.
11 Computers, C#, XNA, and You Session 1.1. Session Overview  Find out what computers are all about ...and what makes a great programmer  Discover.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Build Tools 1. Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include:
Predrag Buncic (CERN/PH-SFT) Software Packaging: Can Virtualization help?
Glink for Java: applet, application and an API for integrating access to Bull, IBM, UNIX and Minitel systems with your Java based e-business applications.
Introduction of Wget. Wget Wget is a package for retrieving files using HTTP and FTP, the most widely-used Internet protocols. Wget is non-interactive,
Project SCS a lightweight source control system for Windows platforms.
Environment & Education & More Dan Bothell. Overview Data Teaching Materials Environment Other ACT-R 5.0 and RPM issues.
Build and Test system for FairRoot
Processing with Programs 1
Top 8 Best Programming Languages To Learn
File System Implementation
LCGAA nightlies infrastructure
Chapter 6 Introduction to Network Operating Systems
Telnet/SSH Connecting to Hosts Internet Technology.
Outline Overview Development Tools
Outline Chapter 2 (cont) OS Design OS structure
Java Analysis Studio - Status
System calls….. C-program->POSIX call
0. Overview of 2-Day Academic .NET Workshop
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Code Development on NT Some notes on experience gained in developing cross-platform (NT/Unix) HEP software for the Linear Collider Detector More of a Random Walk than a Formal Overview of Development Tools HEP-NT workshop SLAC - October 1999 Tony Johnson Tony Waite* * In absentia

NT Code Development l Topics –NT Code development tools for C++/Fortran/Java –Code development issues –Code management SourceSafe CVS DEC - –Using NT as a data server –Conclusions

Windows NT Development Tools l For windows only development, tools are excellent: –Visual C++/J++ (MS Java)/Compaq Fortran Excellent IDE allows development in all three languages –Integrated editor, cross-language debugger –Integrated build tool (make clone) –Incremental linker (that works) –Integrated code management (visual sourcesafe) –Object browser –SLAC has site license for MS developer tools

C++ for cross platform development l Cross Platform C++ development has many problems –Makefile for each platform Need to build/debug on each platform Versionitis –External dependencies –Compiler flags Even egcs compiler has many system specific flags –Different methods for building DLL’s/C++ name mangling –Compiler bugs –Differing Levels of ANSI/STL Support –Architecture specific bugs Found bugs in both Visual C++ (5.0) and egcs compiler for intel.

C++ for cross-platform development l Certainly possible - Simulation package does work on both NT and Unix. Large amount of time goes into testing/debugging on different platforms.

Java for Cross Platform Development l Have succeeded in writing entire reconstruction/analysis package in Java l Currently using Visual J++/Sourcesafe –All development currently being done on NT –JAR files built on NT and put on web server for download by others. l Java code can be run –Standalone from command prompt/batch job –Inside Java Analysis Studio (JAS)

Java Analysis Studio l Cross Platform Java GUI for data analysis

Java for cross-platform Graphics/GUI

Java Experience l Write Once Run Anywhere –Really works (for applications, if not applets). –Develop on NT, runs without changes elsewhere l Developers have been able to learn language and tools and get up-to-speed fast l Performance - Adequate, getting better all the time l Need to abandon Visual J++, Source Safe

CVS for cross platform development l CVS is available for NT as well as Unix l NT tools include: –line mode tools –WinCVS Rather confusing GUI –jCVS Cross platform CVS GUI written in Java Doesn’t support ssh access to remote repository? l Several tools available for web based access to code –CVSWeb - perl script –jCVS servlet - works well on NT

jCVS Client

jCVS Servlet

CVS security issues l Supports distributed access to code repository –bewildering array of access methods/security issues rsh - no longer allowed at SLAC pserver - –needs custom server, –passes weakly encrypted passwords over network ssh –doesn’t work with all CVS clients –complex to set up client –no AFS token support

CVS vs. Sourcesafe

Is CVS sufficient for a physics collaboration? l If using Java - probably l If using C++, not really, –Need to be able to switch between configurations easily Logical names where are you? –Location of external dependencies –Would like to use pre-built dll’s where possible. –Want to isolate users from system dependencies as far as possible. –Want to avoid “nightly builds” l Need to layer tool on top of CVS, make –LCD Solution: Development Environment Controller (DEC)

Development Environment Controller l Written for LCD by Tony Waite, could be used by others –Hides details of file organization from user User deals with subsystems, Gismo, Recon, etc. Easy to switch between PROD,DEV,Test version of each subsystem User Profiles allow saving/restoring environment. –Hides machine dependencies of BUILD operation Automatically archives CVS version numbers for production BUILD’s

Running a (Java) Data Server on NT l Use NT Service Manager to Run Data Server –Microsoft Java has built-in support for running as NT server Application can be distributed as a single.exe which installs itself as an NT service –Other Java implementations can be run as an NT service with 3rd party add-ons (or roll your own). l Error logging using NT event log/viewer Desktop Client Network Data Server DIM Remote Data

NT Service - Pros and Cons l Pros –Auto start on reboot –Runs in background –Use service manager to start/stop service l Real life problems –Does not auto restart Application can unexpectedly pop up dialog box! –Remote control difficult Remote Server Manager only distributed with NT server (or with NT resource kit). Requires port 137/138 access (blocked at SLAC firewall) or VPN/PPTP

Net Meeting for Remote Control l Netmeeting 3.0 has “Remote Desktop Feature” –If run on server allows remote access to server desktop from any NT/95/98 machine. –Free! l Security –Claims to use encrypted communication channel –Requires NT login to access remote desktop –Security dubious l Potentially very useful, perhaps worth considering

NT Disk Cache Problem l Problem with reading large datasets –NT will grow disk cache until it takes 99.5% of physical memory, regardless of who/what else requires memory. –Reading large datasets can result in NT totally grinding to a halt. –No system parameter to limit disk cache size l Workarounds –If you have access to call to C open statement you can turn off disk caching (big if) –Can run program which constantly flushes disk cache l Conclusion –NT not ready for primetime data server applications –Windows 2000 better?

Things I didn’t talk about l Because I don’t know anything about them –Sniff+ - Cross platform IDE –Cross platform GUI development with C++ QT Widgets – –Libtool/configure NT ports exist but not for non-experts –cygwin Unix environment under NT

Conclusions l Tools for code development under NT only are great –Development tools probably better than Unix l Cross platform development –In C++ is a lot of extra work –Java can make things much easier, especially for: GUI applications Client/Server applications l NT for HEP batch/server side data processing –No obvious advantage over Unix/Linux –Tools and OS not as well suited to task as Unix l NT still maintains lead as desktop machine –Unix seems to be catching up fast (gnome, * office)