Sie sind auf Seite 1von 11

NW Gateway Way of getting SAP to non-SAP developers without them having to know anything about SAP.

Wrap abap stuff in backend. Next version will have JSON built into it along with MS oData standard. Is GW a game changer? May be not. It can be seen as developer productivity tool. Abaper can expose SAP functionality in a standard way. Customers might not be happy with the way SAP is charging (licensing model). Need more details.

Questions: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Architecture Performance Constraints Hardware requirements Software requirements License requirements Features (Risks vs Benefits). Distributed or centralized better? Development time Online Resources

1. Architecture

Gateway allows you to expose your SAP systems with REST HTTP service calls instead of cryptic BAPIs, or even highly complex SOAP services (that are better suited for PI). REST is a really simple and fast web service interface that is extremely easy to integrate. If you aren't familiar with BAPI's, they can be very powerful and critically useful. If you are an ABAP programmer they may even be easy to use. However, to a 3rd party, or anyone integrating with SAP, these are downright cryptic:

SAP Netweaver Gateway is an ABAP Add-On for Netweaver 702. It generates these simple REST services (create, read, update, delete, and query) based on the back-end business objects. Once these services are exposed, you can easily consume them from consumers like mobile-devices. There are a few challenges I would like to note. This is a relatively new product, and very few of these business objects come out of the box. A good knowledge of the business objects and ABAP is really important to create these. Also the basis and technical setup is not arbitrary. Those points aside, I was able to create a RESTful set of services based on Invoices in ERP in just a few hours. As this product matures, and more objects come out of the box, it will be exciting to see the innovative ways that SAP data can be used throughout the enterprise.

OData (Open Data) Protocol:is a Web protocol for querying and updating data. OData is the data access API. Based on web technologies like HTTP, Atom Publishing Protocol (AtomPub) and JSON. It provides a uniform way to expose, structure, query and manipulate data using REST practices and JSON or ATOM syntax to discribe the payload. OData is the web-based equivalent of ODBC, OLEDB, ADO.NET and JDBC. Atom is the XML format in which OData data is published. AtomPub is the protocol to provide not only getting Atom data, but also creating it, updating it and deleting it, all of which OData relies upon. Finally, OData provides a set of features on top of Atom and AtomPub to make the data query and manipulation richer.

In OData, the documents are the data being acted upon (Business Objects, etc).
http://msdn.microsoft.com/en-us/library/ff478141.aspx

SAP NetWeaver Gateway and OData


By exposing SAP Business Suite functionality as REST-based OData (Open Data Protocol) services, SAP NetWeaver Gateway enables SAP applications to share data with a wide range of devices, technologies, and platforms in a way that is easy to understand and consume. Using REST services provides the following advantages: Human readable results; you can use your browser to see what data you will get. Stateless apps. One piece of information probably leads to other, related pieces of information. Uses the standard GET, PUT, POST, and DELETE. If you know where to GET data, you know where to PUT it, and you can use the same format. Widely used, for example, by Twitter, Twilio, Amazon, Facebook, eBay, YouTube, Yahoo!

What is OData and Why Do we Use It?


OData was initiated by Microsoft to attempt to provide a standard for platform-agnostic interoperability. OData is a web protocol for querying and updating data, applying and building on web technologies such as HTTP, Atom Publishing Protocol (AtomPub) and JSON (JavaScript Object Notation) to provide access to information from a variety of applications. It is easy to understand and extensible, and provides consumers with a predictable interface for querying a variety of data sources. AtomPub is the de facto standard for treating groups of similar information snippets as it is simple, extensible, and allows anything textual in its content. However, as so much textual enterprise data is structured, there is also a requirement to express what structure to expect in a certain kind of information snippet. As these snippets can come in large quantities, they must be trimmed down to manageable chunks, sorted according to ad-hoc user preferences, and the result set must be stepped through page by page. OData provides all of the above as well as additional features, such as feed customization that allows mapping part of the structured content into the standard Atom elements, and the ability to link data entities within an OData service (via related links) and beyond (via media link entries). This facilitates support of a wide range of clients with different capabilities: Purely Atom, simply paging through data. Hypermedia-driven, navigating through the data web. Aware of query options, tailoring the OData services to their needs. OData is also extensible, like the underlying AtomPub, and thus allows the addition of features that are required when building easy-to-use applications, both mobile and browser-based.

OData for SAP Applications


SAP NetWeaver Gateway uses OData for SAP applications, which contains SAP-specific metadata that helps the developer to consume SAP business data, such as descriptions of fields that can be retrieved from the SAP Data Dictionary. The following are examples of OData for SAP applications: Human-readable, language-dependent labels for all Properties (required for building user interfaces). Free-text search, within collections of similar entities, and across collections using OpenSearch. OpenSearch can use the Atom Syndication Format for its search results, so the OData entities that are returned by the search fit in, and OpenSearch can be integrated into AtomPub service documents via links with rel=search, per collection as well as on the top level. The OpenSearch description specifies the URL template to use for searching, and for collections it simply points to the OData entity set, using a custom query option with the name of search. Semantic annotations, which are required for apps running on mobile devices to provide seamless integration into contacts, calendar, and telephony. The client needs to know which OData Properties contain a phone number, a part of a name or address, or something related to a calendar event. Not all entities and entity sets will support the full spectrum of possible interactions defined by the uniform interface, so capability discovery will help clients avoiding requests that the server cannot fulfill. The metadata document will tell whether an entity set is searchable, which Properties may be used in filter expressions, and which Properties of an entity will always be managed by the server. Most of the applications for light-weight consumption follow an interaction pattern called viewinspect-act, alert-analyze-act, or explore & act, meaning that you somehow navigate (or are led) to an entity that interests you, and then you have to choose what to do. The chosen action eventually results in changes to this entity, or entities related to it, but it may be tricky to express it in terms of an Update operation, so the available actions are advertised to the client as special atom links (with an optional embedded simplified form in case the action needs parameters) and the action is triggered by POSTing to the target URI of the link. The following simplified diagram shows how Atom, OData, and OData for SAP applications fit together:

(SAP NetWeaver Gateway and OData for SAP Applications)

Gateway consists out of server components and (optional) backend components that are deployed as SAP NetWeaver Application Server ABAP (AS ABAP) add-ons that you install on top of your existing SAP Business Suite or application platform.

On the following picture we depict a high level architecture of SAP NetWeaver Gateway.

Explanation of the depicted building blocks/agents:

Consumers: Any UI-centric client (groupware application, mobile application, Development Environment, Excel spreadsheet, ...) consuming OData protocol-compliant resources that are exposed by Gateway with additional SAP Annotations. This also subsumes cases where UI-centric clients access Gateway indirectly via additional infrastructure components such as Web or groupware servers. Gateway Core: The Gateway Core Technology components encompass several central components such as runtime components, the OData for SAP Library and the MetaData Infrastructure*.* Data Source Providers: Data provisioning implementations done on Gateway as a hub usually need to access business suite systems either via RFC or Web Service. The Content Provider Connectivity abstracts from such protocol specifics by means of a System Alias, which can be configured by the administrator to point to the desired RFC and/or Web Service destination. Tools: Gateway offers a SE80 based design time tool that allows for the generation of Gateway services following a top-down approach. Based on existing objects such as RFC

function moduls, BOR objects or Dynpro Screens it is possible to generate Gateway services without the need to write a sinle line of code. AddOn for Backend Enablement and event Publishing (IW_BEP): This AddOn is needed for scenarios where business events from the backend are being pushed to the Gateway system, where they are translated into OData Protocol for SAP-compliant Notifications and forwarded to the respective consumer agents. It is also needed for scenarios that are based on the OData Channel where the implementations is done"close" to the actual business data in the backend.

2. Performance: http://scn.sap.com/community/netweaver-gateway/blog/2012/06/27/performance-of-sapgateway 3. Constraints

Note 1735987 - SAP NetWeaver Gateway 2.0 GW_CORE 190 IW_FND 240 Constraints Note 1574568 - SAP NetWeaver Gateway 2.0 - Known Constraints

4.Hardware Requirements

Hardware
The minimum hardware requirements for SAP NetWeaver Gateway are as follows: Requirements Processor Random Access Memory (RAM) Hard Disk Capacity Specification Dual Core (2 logical CPUs) or higher, 2 GHz or higher 8 GB or higher 80 GB primary, or higher

5. Software Requirements
The minimum software requirements for SAP NetWeaver Gateway are as follows: Requirements SAP NetWeaver Stack Specification The latest kernel patch for the corresponding SAP NetWeaver version has to be applied.

Requirements

Specification Framework Components GW_CORE and IW_FND SAP NetWeaver 7.0 SPS25 SAP NetWeaver 7.01 SPS10 SAP NetWeaver 7.02 SPS07 SAP NetWeaver 7.03 SPS01 SAP NetWeaver 7.31 SPS01 SAP NetWeaver 7.0 SPS18 SAP NetWeaver 7.01 SPS03 SAP NetWeaver 7.02 SPS06 SAP NetWeaver 7.03 SPS01 SAP NetWeaver 7.31 SPS01

Business Enablement Provisioning Component IW_BEP Content Adapter Components IW_SPI, IW_PGW Screen Scraping Component IW_SCS Content Adapter Component IW_HDB

SAP NetWeaver 7.02 SPS09 SAP NetWeaver 7.03 SPS01 SAP NetWeaver 7.31 SPS01 SAP NetWeaver 7.01 SPS03 SAP NetWeaver 7.02 SPS06 SAP NetWeaver 7.03 SPS01 SAP NetWeaver 7.31 SPS01 SAP NetWeaver 7.02 SPS07 SAP NetWeaver 7.03 SPS01 SAP NetWeaver 7.31 SPS01 SAP WEB UIF 7.01 SP01 SAP WEB UIF 7.31 SP00 SAP WEB UIF 7.0 SP03 SAP WEB UIF 7.01 SP00 SAP WEB UIF 7.31 SP00

Content Adapter Component IW_GIL

Content Components IW_CNT and IW_CBS

SAP WEB UIF

Framework Component Version IW_FND 250 Content Adapter Component IW_GIL

SAP Backend

SAP Business Suite system

7. Risks(/disadvantages) VS Benefits

RISKS/DISADVANTAGES New system, unknown risks. Licensing issues. Additional system to maintain

BENEFITS Increase in productivity of non-abap developers Expose SAP functionality in standard way

Sample Data: http://bxnwgateway.bx.com:8000/sap/opu/odata/sap/Z_BANK_DEMO_SRV/?$format=xml <?xml version="1.0" encoding="utf-8"?><app:service xml:base="http://bxnwgateway.bx.com:8000/sap/opu/odata/sap/Z_BANK_DEMO_SRV/" xmlns:app="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:sap="http://www.sap.com/Protocols/SAPData"><app:workspace><atom:title>Data</atom:title>< app:collection sap:pageable="false" sap:addressable="false" sap:content-version="1" href="Banks"><atom:title>Banks</atom:title><sap:member-title>Bank</sap:membertitle></app:collection></app:workspace><atom:link rel="self" href="http://bxnwgateway.bx.com:8000/sap/opu/odata/sap/Z_BANK_DEMO_SRV/"/><atom:link rel="latest-version" href="http://bxnwgateway.bx.com:8000/sap/opu/odata/sap/Z_BANK_DEMO_SRV/"/></app:service>

Metadata: http://bxnwgateway.bx.com:8000/sap/opu/odata/sap/Z_BANK_DEMO_SRV/$metadata

1. <?xml version="1.0" encoding="utf-8"?> 2. <edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata " xmlns:sap="http://www.sap.com/Protocols/SAPData"> 3. <edmx:DataServices m:DataServiceVersion="2.0"> 4. <Schema Namespace="Z_BANK_DEMO_SRV" xmlns="http://schemas.microsoft.com/ado/2008/09/edm"> 5. <EntityType Name="Bank" sap:content-version="1"> 6. <Key> 7. <PropertyRef Name="bankID"/> 8. <PropertyRef Name="bankCountry"/> 9. </Key>

10.

<Property Name="city" Type="Edm.String" Nullable="false" MaxLength="35" sap:label="City" sap:creatable="false" sap:updatable="false" sap:sortable="false" sap:filterable="false"/> 11. <Property Name="street" Type="Edm.String" Nullable="false" MaxLength="35" sap:label="Street" sap:creatable="false" sap:updatable="false" sap:sortable="false" sap:filterable="false"/> 12. <Property Name="region" Type="Edm.String" Nullable="false" MaxLength="3" sap:label="Region" sap:creatable="false" sap:updatable="false" sap:sortable="false" sap:filterable="false"/> 13. <Property Name="bankName" Type="Edm.String" Nullable="false" MaxLength="60" sap:label="Bank name" sap:creatable="false" sap:updatable="false" sap:sortable="false" sap:filterable="false"/> 14. <Property Name="bankID" Type="Edm.String" Nullable="false" MaxLength="15" sap:label="Bank Key" sap:sortable="false" sap:filterable="false"/> 15. <Property Name="bankCountry" Type="Edm.String" Nullable="false" MaxLength="3" sap:label="Bank Country" sap:sortable="false" sap:filterable="false"/> 16. </EntityType> 17. <EntityContainer Name="Z_BANK_DEMO_SRV" m:IsDefaultEntityContainer="true"> 18. <EntitySet Name="Banks" EntityType="Z_BANK_DEMO_SRV.Bank" sap:pageable="false" sap:addressable="false" sap:content-version="1"/> 19. </EntityContainer> 20. <atom:link rel="self" href="http://bxnwgateway.bx.com:8000/sap/opu/odata/sap/Z_BANK_DEMO_SRV/ $metadata" xmlns:atom="http://www.w3.org/2005/Atom"/> 21. <atom:link rel="latest-version" href="http://bxnwgateway.bx.com:8000/sap/opu/odata/sap/Z_BANK_DEMO_SRV/ $metadata" xmlns:atom="http://www.w3.org/2005/Atom"/> 22. </Schema> 23. </edmx:DataServices> 24. </edmx:Edmx>

Das könnte Ihnen auch gefallen