Some information required about MAF.
How many platforms it will support?
I have read in some blogs, for client side(Mobile) they are using web frameworks and for Business logic they are using java and cordova for interact with Mobile functionalities.
Here business logic(JAVA) mean client side business logic or server side?
Using MAF directly(From mobile) we can access database, without interaction of webservices?
Is there any wrapper between Mobile and oracle database?
in case without wrapper we can, how to put security for database?
Thanks in advance.
MAF supports iOS and Android currently - versions here. See the data sheet for more info.
MAF can execute Java code (compiled at deployment) natively on the device. Java can be used for local business logic, although typically business logic is performed on server and accessed via Web Service for obvious performance and design reasons.
Java is typically used on device to support application state and behaviors or interface. UI is coded using component-based framework called AMX which generates HTML for rendering in web view and task flows for graphical design of navigation, or hand coded using HTML/JS fwk of your choice. Cordova provides access to on-device features via drag and drop code generation for AMX pages, as well as Java and JS APIs.
Java is used to connect to Web Services (REST and SOAP - REST preferred for performance) and the local database, (encrypted) SQLite via JDBC. All interaction with remote data sources is via Java JDBC and or Web Services. Java is used to wrapper all data sources, local and remote.
Please feel free to look at all the docs on the Oracle OTN site. Lots of good info there. Also, my aggregation site for my Oracle students has lots of good links as well.
Related
I need to develop an ASP.NET MVC website that takes information from ArcGIS to show maps and other data. ArcGIS is currently running on a local PC so ArcGIS data would need to be exported to some format and uploaded to the server where the website runs so the ASP.NET MVC application takes it and do its job. After some research I found that there are (at least) 3 different ways to interact with ArcGIS: Javascript API, SDK for .NET and ArcObjects.
What would be a solution in order to take the ArcGIS exported data and work with it in ASP.NET? Is this a feasible or possible approach?
Every ooption of the listed by you, has an specific target:
ArcGIS Javascript API: it is designed to be used in webbrowsers, it shows geographic information using javascript, mainly it is intended to connect to ArcGIS Servers, as well as OGC Servers.
ArcGIS Runtime SDK for .NET: if you plan to develop a desktop application with WPF, this is your tool. Last versions of this SDK is also intended for Windows Presentation Foundation (WPF) apps, Universal Windows Platform (UWP) apps, native mobile apps in C# for Android, iOS
ArcObjects:The classic one, this SDK allows you to create WinForms applications with geographic information, also allows to create console applications for automate operations that involve geographic information or maps, it runs over .NET Framework.
ArcGIS Server is a proper way to achieve what you are trying to do. I assume you don't have and don't intend to have one.
You can go with a poor man's GIS server implementation as you described above: put files on server, then write services which would parse those files and provide geometries in a format that your client side can understand. There are various libs for working with esri shapefiles so you could find what suits you.
If you plan to use ArcGIS Runtime to implement your own server I would advise to check licensing because usually it won't allow you as it is licensed per client deployment.
I would advise you to check what ArcGIS Online can offer. Upload you data to their cloud and consume it with your Javascript API. Look at the pricing and maybe free plan will suit your needs. https://developers.arcgis.com/pricing/
There are a lot of ways to have a database on server ( I can use my own server or I can use MS Azure (for Azure I found REST API Description https://msdn.microsoft.com/en-us/library/azure/gg715283.aspx , but I didn't find a way to add some rows to a table or to get information from the table)), but I want to edit the database and get proper rows from the server database from iOS code without having server API. There are a lot of ready solutions such as Backendless.com , but they are not stable.
So is there any way to connect to the remote SQL server database on the remove server or to MS Azure database and to edit rows and fetch data?
May there are some framework for iOS to do than? (for example in .Net there are Linq framework and Entity Framework).
In your question, you linked to a management API for SQL Database service - this has nothing to do with data manipulation; it's strictly a management API for dealing with servers and databases.
If you want to direct-connect from an IOS app to SQL Database Service (or SQL Server in a VM), you'd need to find a client library for IOS (and recommendations of such a library are not in scope for StackOverflow). There is no native SQL Server client library specifically provided through the Azure SDKs / APIs.
Outside of a native client library, there is Azure Mobile Services, which provides an API stack specifically designed around use by mobile apps (whether IOS, Android, Windows Phone, or even JavaScript). The API stack provided here, by default, gives CRUD operations for SQL Database tables. Additionally, it supports adding custom API calls, where you have complete control of your API calls.
Any other API stack would require you to choose the stack and run it yourself (whether in a Linux or Windows VM, Cloud Service, or Web App - there's no single right way to do this).
Documentation for Azure Mobile Apps (and related API feature, such as monitoring) is here.
Since you are developing in Azure consider automatic REST API from SlashDB, which is available from their Marketplace.
https://azure.microsoft.com/en-us/marketplace/partners/vte/slashdb-slashdb-azure/
SlashDB reflects the entire database as URL-linked structure so a lot of queries need not even be written. It supports SELECT, INSERT and UPDATE. In addition to that it allows for defining an API end-point to call a stored procedure or return results of a SQL query.
Disclosure: I am the founder and CEO of the company behind SlashDB, but you don't have to take my word it - just try it.
I'm planning to develop an adapter to access Siebel CRM data for my iOS app. I'm a new bee into this Siebel technology. I 've the Siebel CRM up an running in my workstation with sample db data. Could any one help me in getting this done? please excuse me if i've hosted this ques in a wrong stack.
There seems to be only 2 valid ways to do that:
SOAP webservices
REST api (but for this you need to have jboss or weblogic server: Sebel Bookshelf)
all other ways (Java Siebel Data Bean, COM interfaces, direct db access) got lots of issues: like issues with java on iOS ( I think it is not possible to run on iPhone), issues with legacy COM interfaces on iOS and numerous issues with direct db connection (complexity, stability, reusability...)
SOAP is out of the box on Siebel but requires more coding on iOS side, REST is easier on iOS or any webpage but requires some middlware:
JBoss/WebLogic + and RESTfull Siebel client form Siebel (available somewhere on their page)
java data bean app that produces REST
soap client that produces REST
I have worked on 2 projects involving iOS and Siebel: first one using JBoss and second project that used SOAP client which translated requests to/from REST. SOAP client approach was more stable (in comparison to RESTfull client from vendor - as the RESTfull client connects to Siebel internally using Java Data Bean) on Siebel 7.8.
In both cases we picked REST to talk to iOS as it allows easier deveopment on iOS side and also possiblity to easly utilize it in projects creating webpages to simplify/tune siebel GUI for different purpose..
If you're current system is sample db, then you have installed developer instance of Siebel. It uses a Sybase database. The server installation will use Oracle/MSSQL server. If you are ok with database connection, you can check that.
For Webservices, by default , Siebel does not support JSON/REST api. Only the older SOAP structure is supported. You will have to go through oracle bookshelves to setup an inbound webservice in Siebel.
But just to add, the latest version of Siebel's UI uses javascript/CSS, and runs on any browser, including IOs .
I'm developing with Azure Mobile Services (using SQL Azure) to provide a backend for both IOS and Android mobile apps and a PHP website.
My question is now that now custom apis have been introduced is it considered best practice to wrap everything up in custom api calls rather than e.g. using the CRUD table operation scripts directly from apps or websites?
Additionally for data access from a website should you lock down access to stored procedures and only exec via custom apis, to enforce a consistent approach no matter who the consumer is?
While I appreciate that custom apis and the table scripts are restful it still isn't clear how to architect a solution in the most efficient, reliable way that can enforce business rules in only place allowing each process only one entry point e.g. you have a stored procedure exec'd by an api called from the mobile apps. If the website calls that stored procedure directly without going via the api it could have unwanted side effects because other logic steps will have been missed.
I'm relatively new to Azure so forgive me if I have just missed something fundamental here. I've read many blogs and tutorials but they rapidly go out of date.
Many thanks
In my opinion the great feature of azure mobile services is the push notifications (to ios, android, wp). If you are not going to use that, there's no great advantage to use WAMS
(Windows Azure Mobile Services).
But it's a good choice using Windows Azure as backend since it's easy to scale up /down. In this case, you could create a Webapi and host in a Web Role. As it works with http, you can easily create Restful services and call them from your apps (ios / android).
I am very new to IOS development.I wonder which language/framework everyone is using to create RESTFUL web services for high traffic, scalable IOS app backend.
The solution requires:
1. Secure Login
2. Restful web services (JSON)
3. High traffic
4. File upload/download
5. Quick search result from large volume database
I am from .NET and MSSQL background. I heard people are using PHP, Java, Python, RoR with IOS webservice development. I understand every language can have pros and cons, just want to know what is prefered in today's trend.
And for database, is NoSQL database a prefered choice than RDBMS for scalable large volume databse? I am checking MongoDB.
Apologies if I am asking wrong questions. I am investigating the technologies for this new project, and any input will be greatly appreciated!
Thanks
I have worked in three major projects that all of them have desktop clients, web clients, and mobile clients (Android, iOS). The 3 have completed different server side approach, and all of them make me and the users happy:
Project 1:
Server: Delphi + RemObjects
Clients: Delphi desktop apps, PHP Web apps, Java applets, Android apps, iOS apps
Why Delphi? Because the existent project was already a Delphi multi-tier app, the development team have domain of Delphi platform, ans was easy with RemObjects (or even with the standard DataSnap) to return JSON, SOAP or XML-RPC to be invoked by the clients;
Project 2:
Server: PHP
Clients: ExtJS Web apps, Android apps, iOS apps
Why PHP? The development team was experienced with PHP, the projects was originally a PHP web app with some classes well defined and not coupled with the UI. Some new classes in the server that reused the existing code base, just converting to/from JSON were enough to allow the clients to talk to the server, with minimum effort.
Project 3 (initial development):
Server: C# ASP.NET
Clients: ASP.NET apps, Android apps, iOS apps
Why C#? Again: the development team was experienced with C# and ASP.NET, the projects was originally an ASP.NET app. We are refactoring some app logic into web services that will be consumed for both the ASP.NET app and the clients.
As you see, there is no need to make the team learn something completely new on the server side.
I'd suggest you to keep your development in .NET with MSSQL, taking advantage of your current skills.
If the application traffic grows you can move the server app to an IaaS server (like Amazon AWS EC2) that supports SQLServer, or even better to a PaaS server, which in this case Windows Azure will probably be your best friend.
These are all loaded questions that can't be answered without more information about what you're making, etc. I use a combination of Ruby with Sinatra and DataMapper (and SQLite/PostgreSQL) for most of my projects, but that's my personal preference and probably won't be of much help to you.
Rather than choosing a technology stack based on trends, why don't you just pick something with a good user base for help and go from there?