Expanding Your Intelligence Environment: Web Services, Java and.net and the Many Choices You Have Alfredo Iglesias Rey. Tech Support Mgr, Business Intelligence. SAS Intl.
Interoperability What is Interoperability? Accessing SAS data from the Microsoft world Accessing SAS from the Windows Environment Accessing SAS from Java Interoperability with XML Accessing SAS through Web Services
What is Interoperability? Interoperability (pronounced IHN-tuhr-AHP-uhruh-BIHL-ih-tee) is the ability of a system or a product to work with other systems or products without special effort on the part of the customer. Interoperability becomes a quality of increasing importance for information technology products as the concept that "The network is the computer" becomes a reality. For this reason, the term is widely used in product marketing descriptions.
What is Interoperability? Products achieve interoperability with other products using either or both of two approaches: By adhering to published interface standards By making use of a "broker" of services that can convert one product's interface into another product's interface "on the fly Source: http://searchwebservices.techtarget.com/sdefinition/0,290660,sid26_gci212372,00.html
Data Interoperability Metadata Interoperability Graphics Interoperability Portability Direct Access to SAS Data: ODBC JDBC OLE DB ADO for OLE DB ADO MD for OLE DB for OLAP Export/Import: Tab delimited, Comma delimited, custom delimited (i.e. semicolon, space, etc ) Excel XXX Lotus 123 XML Arbitrary File formats Direct read/write to other Data Sources: SAS access to ERP systems (SAP, SAP BW, Siebel, Oracle Applications, PeopleSoft, Baan) SAS access to 3rd-party RDBMS systems (DB2 under OS/390, DB2 under VM, DB2 under UNIX or PC, CA- OpenIngres, Informix, ODBC, OLE DB, Oracle, Oracle Rdb, Sybase, MS SQL Server, Teradata) Access to non-relational databases: ADABAS, CA- Datacom/DB, CA-IDMS, IMS-DL/I, System 2000 Software Access to common PC file formats including native access to Excel on UNIX, Microsoft Access, dbase Export/Import Metadata: Common Warehouse Metamodel (CWM) export/import capabilities (This interoperability standard allows for sharing and exchange of metadata. SAS adheres to the Object Management Groups definition of CWM to facilitate metadata interoperability.) Meta Integration Technologies Bridges Direct Access to SAS metadata: SAS delivers open interfaces with the SAS Metadata Server to allow for the programmatic query and updating of SAS metadata through XML based queries and responses though Java or Microsoft worlds. Export /Import of Graphics: With SAS/GRAPH you can export/import the following types of graphics that can be inserted into third party applications or SAS applications Microsoft Windows bitmap (BMP) Microsoft Windows metafile (WMF) Enhanced Windows metafile (EMF) Computer Graphics Metafile (CGM) Device independent bitmap (DIB) JPEG format (JPG) Graphic interchange format (GIF) Tag image file format (TIF) Adobe PostScript (PS) Encapsulated PostScript (EPS) Portable Network Graphics (PNG) Portable Pixmap (PBM) SAS can also produce Java graphics for consumption on the web and ActiveX based graphics that can be used in a variety of locations SAS 9.1 can be deployed on the following platforms. Microsoft: Windows NT, Windows 2000 family, Windows XP Professional, Windows XP 64-bit, Windows Server 2003 family for 32-bit and 64-bit Intel platforms Unix: HP 64. Solaris 64, AIX 64 Mainframe: OS/390 (MVS) Other: Open VMS Alpha, Compaq s Digital Unix, Redhat Linux on Intel, HP/UX for Itanium SAS MVA (Multi-Vendor Architecture) : Write once, run anywhere (a virtual machine) Exploits unique features of each platform or OS Seamless movement of applications and Data!
Standards SAS helps to drive Other Architecture Standards SAS Adheres to Apache Tomcat Data Mining Group (mostly on PMML standards) Eclipse Consortium Global Grid Forum (GGF) Java Community Process: SAS is/was a member of the expert group (or performing community review) on the following JSR s that are either new or have been completed JSR 40: Java Metadata Interchange JSR 52: Standard Tag Library for JSP JSR 57: Long term persistence for JavaBeans JSR 59: J2SE Merlin Release Contents JSR 69: Java OLAP Interface JSR 72: Java Generic Security Services (GSS) API JSR 73: Data Mining API JSR 127: Java Server Faces JSR 152: JavaServer Pages 2.0 Specification JSR 154: Servlet Specification 2.4 JSR 168: Portlet Specification JSR 170: Content Repository JSR 176: J2SE 1.5 (Tiger) Release Contents JSR 198: Standard Extension API for Integrated Development Environments JSR 200: Network Transfer Format for Java Archives JSR 201: Extending the JavaTM Programming Language Syntax JSR 206: Java API for XML Processing (JAXP) 1.3 JSR 207: Process Definition for Java JSR 220: Enterprise JavaBeans 3.0 JSR 223: Scripting Pages in Java Web Applications JSR 224: Java API for XML-Based RPC (JAX-RPC) 2.0 JSR 226: Scalable 2D Vector Graphics API for J2ME Object Management Group (OMG) Web Services Interoperability Organization (WS-I) XML for Analysis Council (XML/A Council) J2EE.NET COM/DCOM Web Services delivery via Java and/or.net Rich suite of API s for Java and for the Microsoft Environments Rich set of pre-built Java components that cab be used in any Java IDE Support for Enterprise Directories (inc. Active Directory) Support for Message Queues (inc. IBM s WebSphere MQ, Microsoft s MSMQ and Tibco s Rendezvous )
SAS 9 Interoperability (and Portability) SAS Multi-Vendor Architecture Supported since 1989 90% of SAS System code is portable Write once, run anywhere (a virtual machine) Exploits unique features of each platform or OS 35 different hosts/platforms
Accessing SAS data from the Microsoft world Four SAS Data Providers that conform to the OLE DB specification from Microsoft The SAS Local Data Provider access to SAS data sets stored on a local Windows system. The SAS/SHARE Data Provider supports access to SAS data sets outsirde of a local a SAS session via a SAS/SHARE also supports access to local server if the local machine has the SAS Base product installed and licensed. The SAS IOM Data Provider supports access to SAS data sets that are managed by SAS Integrated Object Model (IOM) servers. The SAS OLAP Data Provider supports access to cubes on a SAS OLAP Server via OLE DB for OLAP (ODBO) interfaces.
What SAS products do I need? SAS Server [none] Local Base SAS SAS/SHARE server SAS IOM server SAS OLAP server SAS OLE DB Data Provider SAS Local Data Provider SAS/SHARE Data Provider SAS/SHARE Data Provider SAS IOM Data Provider SAS OLAP Data Provider
What files types can I access? File Type Local Data Provider SAS/IOM Data Provider SAS OLAP Data Provider SAS/SHARE Data Provider SAS data files Yes Yes No Yes SAS data views No Yes No Yes Temporary SAS data sets No Yes No Yes SAS index No Yes No Yes Interface files No Yes No Yes SAS OLAP cubes No No Yes No
Features Provider-Specific Features SAS Local Data Provider SAS/SHARE Data Provider SAS IOM Data Provider SAS OLAP Data Provider supports random access yes yes yes no supports simultaneous users no yes yes yes supports SQL processing no yes yes no provides read and update access to all data sets no yes yes no provides member-level lock or record-level lock no yes yes yes
Features Provider-Specific Features provides access via SAS/SHARE servers provides access via SAS IOM servers provides access via SAS OLAP servers provides read-only access without a SAS session provides read-only access to data sets created on other platforms SAS Local Data Provider SAS/SHARE Data Provider SAS IOM Data Provider SAS OLAP Data Provider no yes no no no no yes no no no no yes yes no no no yes no no no supports MDX processing no no no yes
Accessing SAS from the Windows Environment The SAS Integrated Object Model is surfaced through type-libraries provided by SAS. These exposed interfaces can then be accessed through commonly used IDEs
A picture of the SAS Integrated Object Model (IOM) SAS Workspace DataService Libref ADO/OLE DB or JDBC FileService Fileref Utilities TextStream BinaryStream ResultPackage Service ResultPackage HostSystem FormatService HTMLEntry DataSetEntry LanguageService FileEntry StoredProcess Service
SAS 9 Intelligence Architecture SAS Client Services Development Environment Portal Web Interfaces Desktop Interfaces SAS Application Services SAS BI Infrastructure SAS Foundation Services SAS COM Components SAS Java Components SAS JNI Interfaces SAS Query and Reporting Services SAS Foundation Services SAS Foundation Servers SAS Foundation Servers The SAS Foundation SAS/CONNECT SAS/ACCESS SAS/STAT SAS/GRAPH SAS/SHARE SAS/ETS SAS/QC Base SAS
This is what you see in VB An Example:
http://support.sas.com/rnd/eai/oledb/gs_iom_tasks.htm
http://support.sas.com/rnd/eai/samples
Accessing SAS Cubes from Windows Clients
SAS Enterprise Guide 3.0 Redesigned and rearchitected in.net Redesigned menus, GUI, tasks, and addition of Process Flow Builder Easy stored process authoring Compatible with V8 & SAS 9 Servers Included with PC SAS New, easy to use OLAP Analyzer
SAS Enterprise Guide 3.0 OLAP Viewer Part of EG 3.0 Slice and dice multidimensional SAS data cubes for greater understanding Uses OLE DB for OLAP standard
Accessing SAS from Java JDBC 2.0 Driver to access data in IOM servers and SAS/Share WebAF is an IDE to develop, among other languages, in Java Complete set of API to access SAS
SAS 9 Intelligence Architecture SAS Client Services Development Environment Portal Web Interfaces Desktop Interfaces SAS Application Services SAS BI Infrastructure SAS Foundation Services SAS COM Components SAS Java Components SAS JNI Interfaces SAS Query and Reporting Services SAS Foundation Services SAS Foundation Servers SAS Foundation Servers The SAS Foundation SAS/CONNECT SAS/ACCESS SAS/STAT SAS/GRAPH SAS/SHARE SAS/ETS SAS/QC Base SAS
Extending your SAS clients Public API to create Portlets for Information Delivery Portal Plug-ins for SAS Management Console Plug-ins for SAS ETL Studio
Screenshots of new components in WebAF 3
Interoperability with XML XML is similar to HTML in that it uses tags. Unlike HTML, whose tags control how data is rendered, XML tags describe the structure and meaning of data but do not control how it is rendered.
Interoperability with XML SAS is able to Read and write data into XML through the XML libname engine Generate XML though ODS
SAS XML Mapper Import XML documents to SAS data sets Export SAS data sets to XML documents XML Map extensions add flexibility & power to schema definitions Java GUI maps XML to SAS data & vice-versa Java-based SAS XML Mapper client
Interoperability with XML filename MYMAP 'Vehicles.map'; * created and saved by XML Mapper; filename MYXML 'Vehicles.xml'; * raw XML file to import; libname MYXML xml xmlmap=mymap access=readonly; proc print data=myxml.ford; run; quit;
Accessing SAS through Web Services A Web service is an application that can be published, located and invoked across the Internet. Web Services are encapsulated, loosely coupled contracted functions offered via standard protocols. A Web service describes specific business functionality exposed by a company, usually through an Internet connection, for the purpose of providing a way for another company or software program to use the service.
Web services characteristics Based on a set of standards (XML, SOAP, WSDL,UDDI, ) Agreed on by all of the major players Interoperability across different platforms A Web service is language independent Loosely-coupled functions
The Web services model Service Registry Find Publish Service Consumer Bind Service Provider Web Service Description
The Web services standards Service Publication/Discovery Service Description XML Messaging UDDI WSDL SOAP Basic web services stack
Accessing SAS through Web Services SAS provides two applications SAS BI Web Services for.net SAS BI Web Services for Java The only main difference is the platform where they run They provide services that are executed by stored processes
SAS BI for Web Services for.net SAS BI for Web Services for Java Executes SAS stored processes on Stored Process Server Build-time WSDL discovery Run-time XML generated according to WSDL interface Supports DISCOVER and EXECUTE methods for XML/A Can be deployed to UDDI server Client/mid-tier connection can be SSL encrypted
Accessing SAS through Web Services Web Services can be accessed by different type of clients Web Servers Enterprise applications Desktop applications Demo: Accessing SAS from Excel via Web Services No specific SAS code