190 likes | 362 Views
CAMIS Overview. By CAMIS Team Common Application & Metrics May 1, 2008. Agenda. Current and future integration services. What is CAMIS? CAMIS features. How can I use CAMIS and what are its benefits? Roadmap and migration. Sample Code. Overview.
E N D
CAMIS Overview By CAMIS Team Common Application & Metrics May 1, 2008 CAMIS High Level Technical Overview
Agenda • Current and future integration services. • What is CAMIS? • CAMIS features. • How can I use CAMIS and what are its benefits? • Roadmap and migration. • Sample Code. CAMIS High Level Technical Overview
Overview • The Common Application & Metrics Integration Services (CAMIS) is an integration service providing an abstraction layer to service providers (e.g., CQCM, EDW, etc.) through a single interface. • In addition, CAMIS is designed to provide highly stable and performance based platform (for the client, CAMIS server, and the shared services being used). CAMIS High Level Technical Overview
Simpler services Uniform Interface Single point of access Simple interface Improved Performances & low latency. More functionality for queries for actions Better use of shared resources (i.e., services and integrated applications) Reduced CA&M development, maintenance and support (compared to existing services) Key Drivers for CAMIS CAMIS High Level Technical Overview
Logical Overview of Current Integration Services Integration Server INDEV Client IS ClearCase MOTCM IS ClearCase CCMPD Client IS FTR CCMSB Client IS CQTool . . . . . . Client Service Providers (SP) Legend: Interface Specs A Interface Specs B Interface Specs C Dedicated connections IS: Integration Service Fact: there are 32 services running per server. One service dedicated for each SP CAMIS High Level Technical Overview
Legend: CAMIS User Interface Specs CAMIS SP Interface Specs IS: Integration Service Logical Overview Of CAMIS CAMIS Server INDEV MOTCM Manager & Scheduler CCMPD Client IS EDW Datamarts Client IS IS Client Future Service Provider IS . . . Future Service Provider Service Providers (SP) Fact: there is 1 virtual service per server, and (at least) one dedicated service per client. CAMIS High Level Technical Overview
CAMIS Features • Stability & Performance • Redundant servers • Redundant integration services (distributed architecture) • High Availability (including live upgrades) • Improved CAMIS & SP transaction management • Seamlessly regulate the number of integration services (load based) • Scalable & Extensible Architecture • Plug-in new service providers • ‘Real-time’ availability of service provider’s features • Intelligence resides on the server side, not the client CAMIS High Level Technical Overview
CAMIS Features (cont.) • Client interface based on well established standards • Perl DBI (v1.5 or greater, using Perl 5.6 or greater) • Web Services (future releases) • Common interface for all SP • Reduced development cycle • Client code is portable across applications & platforms • CAMIS mimics the interface/functionality of the service provider • Single point of access • Same URL and port number for all service providers. • Thin clients: No CAMIS, Oracle or ClearQuest libs • CAMIS is platform independent CAMIS High Level Technical Overview
CQCM & EDW Features • Session Management: • Access several CQ databases using a single client session • Single point of service • EDW access & connectivity abstraction (no TNS entries) • More SP Features: • CQCM Queries (for CAMIS 2.x): • Build: imitate the CQCM build query structure & functionality • Stored: execute queries stored within CQ (very portable) • SQL: execute raw SQL (including CQCM SQL queries) • Aliased: CAMIS pre-generated queries • Actions (for CAMIS 3.x): • CQCM (e.g., edit, close, c.) and SQL actions (for EDW SP) • Supports all CQCM operations and record types • Supports CQCM authentication (cqparams, alternate, etc.) CAMIS High Level Technical Overview
Why Use CAMIS? • Provides the ability to interact with CQ Service Providers (e.g., CQCM) without using the CQ GUI. • Improved productivity through automation. • An integration service with quite a few capabilities. • Supports all operations within an SP (e.g., actions and queries, etc.) • Client can run from any platform without dependencies on 2nd/3rd party libraries and applications. • Cost reduction (licenses, etc.) • More stable, less time spent upgrading and testing • More integration servers, more integration services, less downtime and better management/monitoring of resources. • Dedicated integration services per client, resulting in improved performances. • Single interface. • Retiring the current/old integration services. CAMIS High Level Technical Overview
CAMIS Major Challenges • Release 2.x: • Design uniform/standard interface • Resource starvation (IS, SP & client) • Accessing multiple SPs through the same client session • Performances • Release 3.x: • Validate field values and actions (based on user and BR) • No DBID wasted • Performances CAMIS High Level Technical Overview
Migration For applications using the current CQCM integration • Team will need to perform their own migration plans. • Unsupported clients, buggy code. • Too many tools/variances and no standard. • cq_interact, queryCQ.pl, queryCQ3.pl, etc. • CAMIS team can guide/assist users in their effort to port existing scripts and queries to CAMIS. • Formal request must be made so can allocate resources. • Can use CQ Query Wizard and use resulting SQL code. • Old services will be retired once actions are supported by CAMIS. • Old an new services will overlap. • Recommend to use CAMIS query when they are available. • CAMIS query and old integration services can coexist. • Grace period still not finalized CAMIS High Level Technical Overview
CAMIS Development & Support • Development Materials • CAMIS External Interface Specification • DBI materials can be found online or at the Motorola library • User Community for CAMIS • http://compass.mot.com/go/camisusers • Support Materials • CAMIS User Guide • CAMIS Website with up-to-date FAQ & Info • http://compass.mot.com/web/camis • CAMIS mailing list (CAMISCUS) CAMIS High Level Technical Overview
Road Map & Milestones Retirement of existing integration services 1Q08 2Q08 3Q08 4Q08 • CAMIS 3.0 • (SR/CR/BL/IR) • Edit actions • Create actions Prototyping CLI, Web Services Pilot CAMIS 3.x Actions for all other record types (and attachments) • CAMIS 2.0 • Stored query • Build query • SQL query • Aliased query Legend: : Committed : Planned CAMIS High Level Technical Overview
Conclusion • Allows for simpler & standardized application development that integrates with supported SP. • Distributed nature of CAMIS allows for multiple integrations. • ClearCase, DOORS, ReqPro, SSMT, DCML, CIPT, etc. • More features, more stable and higher layer of abstraction compared to existing CAM integration services. • Exciting news !!! • CAMIS 2.0 was released on March 13th 2008. • CAMIS 3.0 in the works. • CAMIS is part of a Green Belt project for a product team. • CAMIS is already used by various customers to improve productivity and automate tasks. CAMIS High Level Technical Overview
Appendix/References CAMIS High Level Technical Overview
Sample Code #1Connecting to CAMIS # DBI is required to use CAMIS use DBI; # Connecting to CAMIS (not decided on SP yet) # with automatic CAMIS/SP authentication (Simplest connection possible) my $DSN = “DBI:Proxy:hostname=camis.mot.com;port=52180;dsn=DBI:CAMIS"; my $dbh = DBI->connect($DSN); # Checking connection status and loading CAMIS runtime env. if (! $dbh || !$dbh->{private_camis_info}->{is_env}->{active}) { die(“An error occurred while attempting to connect: $!\n”); } else { eval $dbh->{‘proxy_dbh’}->setup_camis(); die(“Error invoking setup_camis: “,$dbh->errstr,” - $@ \n”) if ($@); } # selecting the SP $dbh->{private_camis} = { srvProvider => [‘INDEV’] }; CAMIS High Level Technical Overview
Sample Code #2Using a stored query in CCMPD # Assuming already have a session with CAMIS against CCMPD # Preparing to execute johnDoe’s ASE_New_SRs personal queries out of CCMPD # This stored query (as defined in CQ) only returns the SR IDs my $storedQuery = { queryParams => [[‘State’,’NEQ’,[’Closed’]],[‘Urgency’,’like’,[’%Blocking’]]], queryName => ‘ASE_New_SRs’, workspace => ‘johnDoe’, hint => ‘Personal’, # not required, but will speed up the search }; # Executing query my $sth = $dbh->prepare($storedQuery); if (! $sth) { print(“Error executing stored query: “,$dbh->errstr,”\n”); $dbh->disconnect(); } else { $sth->execute(); # Retrieving the SR ids returned by the stored query while (my $srListRef_= $sth->fetchrow_arrayref()) { print(“SR ID: $srListRef->[1]\n”); }; } # Performing other queries against CAMIS, otherwise we disconnect() CAMIS High Level Technical Overview
Sample Code #3Using a build query in MOTCM # Assuming that already connected to CAMIS (INDEV) # building the build query search parameters $conditional = [ ‘AND’, [‘CI_System’, ’eq’, [‘Common_Apps_Metrics’]], [‘State’, ’in’, [qw(Closed Performed)]], ]; # We are retrieving SR IDs and SR types. $buildQuery = { queryParams => $conditional, fields => [‘ID’,’SR_Type’], entity => ‘Submission_Record’, }; my $sth = $dbh->prepare($buildQuery); CAMIS High Level Technical Overview