Developing with MINT

881 views
768 views

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
881
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • UXP’s MINT Platform was developed to create a horizontal platform to enable operators to add more services, more personalization, to more screens.It does this in 3 ways:The Aggregation, unification, and exposure of all of the services that make up the total service offeringMultiservice user-level entitlement, authentication, and personalization of all usersMultiscreen enablement with what we call the Mint Console which resides on each device, along with our Reference UI for rapid client and portal developmentThese three functions work together to provide the user with a seamless, personalized, multiscreen experience.
  • UXP’s MINT Platform was developed to create a horizontal platform to enable operators to add more services, more personalization, to more screens.It does this in 3 ways:The Aggregation, unification, and exposure of all of the services that make up the total service offeringMultiservice user-level entitlement, authentication, and personalization of all usersMultiscreen enablement with what we call the Mint Console which resides on each device, along with our Reference UI for rapid client and portal developmentThese three functions work together to provide the user with a seamless, personalized, multiscreen experience.
  • UXP’s MINT Platform was developed to create a horizontal platform to enable operators to add more services, more personalization, to more screens.It does this in 3 ways:The Aggregation, unification, and exposure of all of the services that make up the total service offeringMultiservice user-level entitlement, authentication, and personalization of all usersMultiscreen enablement with what we call the Mint Console which resides on each device, along with our Reference UI for rapid client and portal developmentThese three functions work together to provide the user with a seamless, personalized, multiscreen experience.
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • UXP’s MINT Platform was developed to create a horizontal platform to enable operators to add more services, more personalization, to more screens.It does this in 3 ways:The Aggregation, unification, and exposure of all of the services that make up the total service offeringMultiservice user-level entitlement, authentication, and personalization of all usersMultiscreen enablement with what we call the Mint Console which resides on each device, along with our Reference UI for rapid client and portal developmentThese three functions work together to provide the user with a seamless, personalized, multiscreen experience.
  • UXP’s MINT Platform was developed to create a horizontal platform to enable operators to add more services, more personalization, to more screens.It does this in 3 ways:The Aggregation, unification, and exposure of all of the services that make up the total service offeringMultiservice user-level entitlement, authentication, and personalization of all usersMultiscreen enablement with what we call the Mint Console which resides on each device, along with our Reference UI for rapid client and portal developmentThese three functions work together to provide the user with a seamless, personalized, multiscreen experience.
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • JSR-233 scripting interface – XO leverages Groovy or Javascript to easily customize the personalization of experience using device, user, account, service information to further personalize the experience for the individual. i.e. adding additional parental controls to services that don’t have them.
  • JSR-233 scripting interface – XO leverages Groovy or Javascript to easily customize the personalization of experience using device, user, account, service information to further personalize the experience for the individual. i.e. adding additional parental controls to services that don’t have them.
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • Should say IOS stack
  • Should say IOS stack
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • So, that means that they need to be accessible on smart phones, tablets, PCs/Macs, and of course, their TV STB – and this necessitates the operator’s support for the multiple operating systems that this entails (we’ll start with iOS and Android) – but the complexity doesn’t end there.The Operator also needs to cover multiple use cases for these users:Multiple users per homeMultiple devices per homeMultiple users per deviceMashup of content with social networking appsSimultaneous use of devices via companion applicationsFuture use cases?
  • Developing with MINT

    1. 1. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Third-party DeveloperMINT API WorkshopFrankCaronBusinessAnalystGordonChanSeniorEngineer
    2. 2. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012AgendaThe Plan For Today
    3. 3. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Today’s AgendaToday, we’re going to spend some time getting introduced to theplatform and then dive right into doing some development with astaged environment. The day will proceed as follows:10:00 - 10:15 Intros10:15 - 11:15 MINT Technical Overview, Q&A11:15 - 12:30 Core Overview & REST API Workshop12:30 - 1:30 Lunch / Bio Break1:45 - 3:00 Console Overview & Console Framework Workshop3:00 - 3:30 Q&A, review, action itemsPlease keep a list of any questions and we’ll address them throughoutthe day. If any questions can’t be answered in the session, we’ll takethem back to the team at UXP and distribute the answers shortly aftertoday.
    4. 4. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012PrereqsAs outlined in the event invite, the following prereqs are required fortoday’s session:Dev-ready Macbook / Macbook Pro / etc.For iOS devs:latest version of Xcode installedApple developer account (for doc reference, etc.)For Web devs:preferred JavaScript / Java IDE (we strongly recommend and can provide support onEclipse)For all:PDF readerPre-meet up list of questions, if any, that we can prepare to address ahead of time.
    5. 5. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Setup NotesChrome Work-around For Local REST DevelopmentIn order to make calls to the MINT REST service in your local browser, youll need todisable Chromes web security. This simple work-around is required in order to bypassthe cross-domain scripting issue. Note that in a production deployment, the platformand portal scripts would be deployed in the same domain, so there would be no issue.Run Chrome without security in OS X:• /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --disable-web-securityEnvironment Informationhttp://test.uxpsystems.com/Username / Password:test@test.com / 1111The username is an admin user. We encourage you to create your own users /hierarchies.
    6. 6. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Platform OverviewGetting To Know MINT& Its Components
    7. 7. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012What is MINT?MINT is a software platform that runs atop existing operatorinfrastructure to enhance existing services with unification,personalization, and a standardized API from which all consumer-facing apps, portals, and front-ends can be built.There are two core “components” that constitute MINT:MINT CORE, which is a J2EE-based application that is installed on a database-drivenapplication server (cluster) within the operator’s environment.MINT CONSOLE, which is a C-based application framework and service library that supportsapplications built on iOS, Android, SVG-based STBs, and the web.MINT Core interfaces directly or indirectly with operator back-endsystems. MINT Console interfaces directly with end-user devicesnatively on the device and with the MINT Core via the Core’s RESTAPI over the web.
    8. 8. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012What does MINT do?Operator use cases for next generation involve more services,more personalization, and more screens. UXP Systems hasdeveloped the MINT Platform to address this trend.The MINT Platform offers three primary functions to MSOs:1. Aggregation, unification, and standardized exposure of operatorservices2. Cross-service user-level entitlement, authentication, andpersonalization3. Streamlined multi-screen app development for the web and mobileThe ultimate goal of the platform is to enable operators to deliver multi-screen, personalized experiences easily and rapidly without dramatic re-engineering of existing infrastructure.
    9. 9. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Where does MINT live in the operator environment?
    10. 10. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012DeviceAppPortalProgrammerContentIPTV InfrastructureLive TVOPERATORBSSCare SystemBillingSystemProvisioning/FulfilmentExperience Orchestration (XO)Service ModelingEPGVODUser Lifecycle ManagementMERCHANTGATEWAY (OTT)PaypalCredit CardUser CareSubscriptionMap& EntitlementsChargeAuthorizationActivationProviderInterfaceBLENDEDSERVICESChatEmailSocial MediaSMS/MMSVoIP/IMSVODContentRealtimeEncodersMiddlewarePackagingOfflineEncodersApplicationsDRMCDN-Origin/EdgeNASRecommendMessagingSocialPVRLinearTVVoIPAdministration Data & UtilitiesAuthentication&OrchestrationCommerceEntitlements& SSORESTAPIService Interaction3rd Party/OTTIP ContentContent/DRMAuthenticationOperatorMINTAuthentication&OrchestrationUXOrchestrationCMSMetadataDeviceAppPortalMINT Core• Core platform is written in Java atop the Spring Framework• Recurring and scheduled jobs are powered by Quartz• Provider Interfaces are standard Java Interfaces• Exposed scripting system allows scripting of business logic via Groovy• Exposed orchestrated services and normalized data via REST API• Platform and provider config defined by Apache-friendly properties fileMINT Console• Framework is written in C to allow implementation on Objective-C iOSand Java Android apps• Web framework is written in Javascript and JQuery• VoIP-related features in Console Framework utilize PJSIP• Communicates with platform via REST APIWhat technology powers MINT?
    11. 11. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Platform ComponentsGetting To Know MINT’sTechnical Layers
    12. 12. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Visualizing The MINT Platform ComponentsOperatorBack-EndSystemsProviderInterfaceOrchestrationEngineUser LifecycleManagementFrameworkREST API ConsoleEnd-userDeviceData & Services
    13. 13. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The Provider Interface acts as a genericmultiprotocol integration hub for back-end network services.There is a 1:1 relationship between aprovider and its underlying data sourceor system and 1:X for X of the same typeof source/system.The platform’s “Service Models” areadapted with the ingested andnormalized data and attributes pulledinto the platform by the providers.New provider interfaces for existingservice models can be added rapidly.Provider Interface
    14. 14. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The Orchestration Engine leverages thedata normalized into standardizedService Models by the Provider Interfacesand combines it with implementation-specific business logic to enhance andexpose operator services.This behavior includes entitlementmanagement, restrictions like parentalcontrols or concurrency limits, andfeature/service management.XO also handles any ongoing interactionbetween providers and sources (e.g., syncjobs) and server initiated communicationwith the console.Orchestration Engine (XO)
    15. 15. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Generally speaking, the XO Engine and MINT itself will only act as an intermediarybetween an operator’s services and the end-user where necessary for enablingpersonalization and multi-screen experiences. This covers roughly 90% of the casesof user interaction through an app/portal with an MSO’s services.There are instances where MINT will not interact with the service directly by design,however, such as in the case of streaming video content; the stream, once initiated,will pass from service provider to vendor unfettered by MINT to ensure idealperformance.In both the development and testing of MINT, careful attention is paid to latencyaffected by the MINT platform on network operations. MINT is designed to scalehorizontally, and as such, minimizing the bandwidth required (be it networkbandwidth, processing, latency, etc.) is a key design goal of the platform.Orchestration Engine (continued)
    16. 16. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The User Lifecycle ManagementFramework houses the logic andbehavior necessary to create,authenticate, manage, and removeindividual users and associate thoseusers with specific providers, accounts,features, and services both of theoperators and of third-parties.ULM federates accounts to individualmembers of a household in amanageable group (family) hierarchy.ULM is flexible and can be tailoredwith business logic specific to aparticular implementation.User Lifecycle Management Framework
    17. 17. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012ULM enables many-to-manysubscription-to-user mapping within agroup hierarchy as well as role-basedpolicies as required by particularimplementations.ULM enables per-user servicepersonalization and empowersfeatures like favorites, bookmarks,parental controls, recommendations,social media integration, and more.ULM Management Console includesmechanisms for user creation,maintenance, and administration byoperator support staff.User Lifecycle Management (continued)
    18. 18. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012REST APIThe MINT REST API exposes the dataand services normalized by the ProviderInterfaces, modeled and personalizedby the Orchestration Engine, andenhanced by the User LifecycleManagement framework.A standardized set of calls empowersinterfaces that leverage all facets of theMINT Core, from user management toservice manipulation and contentplayback.All calls are tracked with ample auditing,analytics and various security featuresto ensure stable, safe applications.
    19. 19. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Console FrameworkThe Console Framework provides astandardized set of interfaces and servicesthat aid in the rapid deployment of MINT-powered apps and web portalsThe C-based Console Device Frameworktargets hardware devices like iOS, Android,and STBs, and it has a number of utilitiesfor data marshaling, coherence,connectivity management and offlinesupport, and more.The Javascript-based Console WebFramework targets browsers and HTML5-powered front-ends with a standard set ofUI utilities and calls. (3.0)
    20. 20. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012
    21. 21. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Core Deep-DiveUnderstanding MINT’s HandlingOf Data & Objects
    22. 22. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Service ModelsMINT’s Approach ToNetwork Service Architecture
    23. 23. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Understanding Service ModelsThe MINT platform begins at the provider interface level, as detailed prior. TheProvider Interface layer is really a series of provider interfaces, each of which isdesigned to integrate with a specific data sourceFor example, our RoviProvider implements the generic EPGDataProvider to read, normalize, and cache data froma Rovi data source.Data from the providers is modeled and stored in the MINT database as the meaton the bones of a generic “Service Model”. Many major MSO services have beengenerically modeled in our platform based on experience and the CableLabsstandards. These are refined over time with platform updates.Each Service Model within MINT is associated with all of the data pertaining to themodel as fed into the platform by provider interfaces. These service modelsenable generalized interactions with the data (and subsequently the root service)of the operators by way of standardized API calls.
    24. 24. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Understanding Service Models
    25. 25. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012In addition to core services, such as phone service, there are also feature models,such as voicemail. These obey the same rules as service models, though can beindividually manipulated and enabled or disabled on a per-user level.Consider the following service/feature model example of EPG data:The base feature model includes all of the basic functions that are associated with EPG Data, including…FetchDataGenerateGridViewShowDetailsWatchShowAdditional business logic is applied via the orchestration engine, such as applying parental control filters for aspecific user’s data request and so on.The model is hooked up to an operator’s existing EPG data system, say a TMS one and a Rovi one, using a Rovi-specific provider interface and a TMS-specific provider interface. Any number of these servers can besynchronized. Once connected, all voicemails are consolidated and normalized through the MOE.The existing REST API calls are then used to manipulate the EPG through a web portal or app that is connectedto the MINT PlatformThe same design is applied to all operator services to create a set of models.Understanding Service Models (continued)
    26. 26. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Once of the central concepts of managing service models is the concept of afeature and a service in the context of MINT.A service is defined as a subscription-clad underlying capability which may haveone or more features. A feature is defined as a specific sub-set of functionalityassociated with a specific service.For example, “Cable Service” would be defined as a service within MINT and would be associated with a user whenthat user has an active Cable TV subscription. The EPG would be defined as a feature of that service.Services and features can be enabled or disabled for a user. If a service or feature isdisabled for an account owner, it is subsequently disabled for all users beneath thataccount owner within the account hierarchyBoth services and features can have n number of unique attributes associated withthem for all sorts of purposes as required by a particular implementationFor example, a “country code” can be associated with a particular feature to enable that feature for users from aspecific country.Services & Features
    27. 27. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Data Model Snapshot
    28. 28. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Users & GroupsMINT’s Approach ToA Unified User & Group
    29. 29. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Services and features are central to the MINT platform’s ability to deliver multi-screen experiences, and, likewise, users and groups are equally essentially, particularwith regard to personalization.MINT users are rich user accounts which can federate credentials for multipleservices and persist a wide variety of personalization- and profile-related data toenrich the user experience.MINT users can be registered and administered through integrated registrationworkflows, through a dedicated customer service portal, or via the REST API.MINT user objects can have N number of attributes associated with them for variouspurposes, such as customizing the user experience for users from a particulargeographic location.Users & User Attributes
    30. 30. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Groups & Group AttributesMINT group collections of MINT users that can be used to create different rule setsand behavior to be shared amongst a group in order to enrich the user experience.Grouping is used as a way to build the “family” account hierarchy from thetraditional MSO model of household-level accounts.MINT groups can be created through integrated group management workflows,through a dedicated customer service portal, or via the REST API.MINT group objects can have N number of attributes associated with them forvarious purposes, such as customizing the user experience for groups by allowingthem to have different labels, membership criteria, or features associated with them.
    31. 31. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Sessions & SecurityMINT’s Approach ToAuthentication & Sessions
    32. 32. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Sessions & SecurityIn order to interact with the MINT platform via the REST API (and subsequently anapp/portal connected to the platform), an authenticated user session is required. Asession is required for each and every interaction with the platform.Depending on the permissions of the user associated with the session, differentactions may be restricted (e.g., non-admin users will not be able to manipulategroup membership or toggle feature/service states).As a best practice, sessions should be closed upon logging out or switching users.The platform expires user sessions after a configurable timeout period.
    33. 33. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012REST API OverviewA Primer To MINT’s REST API
    34. 34. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The REST API includes a number of functional call groups for the following tasks:REST APICall Group PurposeUser Management Used to add, edit, or otherwise interact with user accounts.Service EntitlementManagementUsed to add, edit, or update subscriptions and permissions fromusers.Session Security Used to manage and manipulate user sessions with the platform.Synchronization Used to maintain persistence of user experiences and freshness ofdata across services and devices.TV-EPG Data Service Used to retrieve and present the EPG to the end-user, set andremove favorites, and more.Settings Used to display various configuration menus to the end-user.Others There are additional sections for other service models and new callsin 3.0 that will be detailed in the forthcoming 3.0 documentation.
    35. 35. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012There following calls are the best places to start and will be required for all CF-powered apps in some capacity:REST API: Basic CallsCall Group PurposePOST rest/session/start Posts the basic user authentication JSON to start a new,authenticated user session.GET rest/{service}/sync Manually synchronizes data through the provider interface-configured method for the specified serviceGET rest/user/profile Returns a complete user object with all of the user profileinformation.GET rest/user/subscription Returns an enumeration of the subscriptions that the currentuser has.PUT rest/user/profile Updates the current user’s profile with the JSON payloadput.
    36. 36. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012REST API WorkshopWorking With MINT’S REST API
    37. 37. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012OverviewFor the next hour, we’re giving you the keys to the car. You’re going to take the REST API docs and take the APIitself for a spin.Gordon and Frank will be available to answer questions.ObjectiveTo explore the REST API as it exists today (stable 2.6 release) and assess your ability to interface with the MINTplatform for your future projects. As a real deliverable, you should be able to get a simple REST app up withinthe hour.ResourcesThe shared environment has been made available to you for testing. Point your calls tohttp://test.uxpsystems.comGiven that this is a straight-forward REST API, you’re free to use any programming language or venue you wishto test it. You can build a web app, an iOS app, or whatever you prefer.Example CodeAn example has been prepared to demonstrate basic interaction with the MINT REST API. Details follow.REST API Workshop
    38. 38. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012OverviewThe simple web portal example demonstrates a standard usage of the MINT REST API to build a JQuery-poweredweb portal which exposes basic services.ComponentsThere are four components to the demo:An admin page which allows an admin user with pre-existing credentials to create a new consumer user.A basic login page for the consumer user which creates an authenticated session with the MINT Core.A rudimentary EPG viewer which shows the programming airing at the present moment on all channels.A basic streamer which streams a live TV channel pulled from the MINT Core based on user selection.View The CodeThe code has been provided to you in .zip format. Extract the zip and view the source code as required. A fewthird-party libraries were used to speed up development.WARNINGVoIP, CDR, and Voicemail are outside the scope of this trial environment. Only user and EPG functions aresupported.REST API Example
    39. 39. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012
    40. 40. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Console Deep-DiveUnderstanding MINT’s Console& Utilities
    41. 41. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The Console Framework is acollection of utilities and API callswhich have been prepared tostreamline the process ofdeploying a MINT-connected appor portal.It should be noted that theConsole Framework is optional; itwas developed as UXP itselfcreated battle-tested apps andportals to consume its ownproduct. The REST API is at itscore, and as such, native apps orportals that interface with theREST API directly will work.Console Framework
    42. 42. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The Console Framework is generallypaired with UXP’s Reference UI,which is a complete interface thatdemonstrates the basic functionalityassociated with standard next-genoperator services like IPTV, VOD,and VoIP.The Reference UI is provided tooperators as an example of how toleverage the Console Framework tobuild compelling experiences. Insome cases, UXP will be contractedto develop the interfaces for theoperators as a separate project fromthe deployment of MINT.CF & UXP’s Reference UI
    43. 43. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012On mobile devices and STBs, the MINT Console is effectively a combination of theReference UI and the C/C++ Console Framework libraries.On PC/Mac, the MINT Console is comprised of a JavaScript-based web applicationframework and a OS-specific software agent containing a lightweight Consoleclient which must be installed on the end-user’s computer to enable features likeSIP calling.Customers receive full documentation of the Console Framework itself and theplatform-specific SDK for the platforms of their choosing. The Reference UI canthen be modified or replaced as desired by the operator.Console Framework “Shippables”
    44. 44. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The C-based CF offers a number of utilities which will ultimately be required whendeveloping a MINT-powered mobile app or web portal. These utilities include thefollowing:Connectivity ManagerThe Connectivity Manager is designed to monitor and report on the state of a device’s connectivity. This utilitydramatically expands on the native connectivity tools built into mobile operating systems by more granularlytesting the connection against the internet, the MINT Core, and the device itself.Data Sync ManagerThe Data Sync Manager is responsible for comparing digital signatures between the Core and the Console todetermine when there is a discrepancy between the two and two thereafter synchronize the affected data toresolve the discrepancy. State and data persistence is mastered in the MINT Core.Console RuntimeThe Console Runtime is a profiler of the current device that is reported back to the platform. This information iscaptured in the reporting and can be used to apply device-specific business logic if required.Offline Handling & On-Device SQLite DatabaseThe Console is designed to enable an offline experience with only slightly-limited functionality, and as such, theConsole includes some features of the Core in order to allow for use of the app to continue when offline.Console Framework API documentation and sample code will be provided. Onceinitialized, the Console Framework is interacted with via the API.Console Framework Utilities
    45. 45. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The enhancements to the Console Framework and the different between the twoversions can be visualized in the following diagram:Console Framework in MINT 3.0 (continued)
    46. 46. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Console Framework for iOS
    47. 47. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012Console Framework for Android
    48. 48. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012CF API OverviewA Primer To MINT’s CF API
    49. 49. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012The C API includes functions for the following tasks:Console Framework APICall Group PurposeConsole(Console.h)This set of calls deals with the use and maintenance of theConsole Framework, including the all-important “init()” call.This grouping also has calls which are used to queryinformation about subscriptions and service entitlements.Communication Event(CommunicationEvent.h)This set of calls is used to query information aboutcommunication events, such as voicemails or SMSmessages.EPG(EPG.h)This set of calls is used to query information about EPG-related data, such as the program grid or program details.SIP(SIP.h)This set of calls is used to to query information about VoIPservice and to manage calls.User Profile(UserProfile.h)This set of calls is used to query, create, manage, andinteract with users and groups.
    50. 50. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012There following calls are the best places to start and will be required for all CF-powered apps in some capacity:CF API: Basic CallsCall Group PurposeCEP_Init Initializes the platform returns a boolean stating if the initwas successful or not.CEP_User_Login Logs in the user with the specified credentials and returnsstatus messages detailing the state of the log in process.CEP_User_Profile Returns a complete user object with all of the user profileinformation.CEP_UserSubscriptions Returns an enumeration of the subscriptions that the currentuser has.CEP_RestartSyncTimer Restarts the sync timer for any sync events going on in thebackground.
    51. 51. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012CF API WorkshopWorking With MINT’S Console Framework API
    52. 52. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012OverviewFor the next hour, we’re giving you the keys to the car. You’re going to take the CF API docs and take the APIitself for a spin.Gordon and Frank will be available to answer questions.ObjectiveTo explore the CF API as it exists today (stable 2.6 release) and assess your ability to interface with the MINTplatform for your future projects. As a real deliverable, you should be able to get a simple CF app up within twohours.ResourcesThe test shared environment has been made available to you for testing. Point your calls tohttp://test.uxpsystems.comGiven that this is a straight-forward CF API, you’re free to use any programming language or venue you wish totest it. You can build a web app, an iOS app, or whatever you prefer.Example CodeAn example has been prepared to demonstrate basic interaction with the MINT CF API. Details follow.CF API Workshop
    53. 53. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012OverviewThe simple iOS app example demonstrates a standard usage of the MINT CF API to build a basic service-centriciPhone app.ComponentsThere are three components to the demo:A basic login page for the consumer user which creates an authenticated session with the MINT Core.A rudimentary EPG viewer which shows the programming airing at the present moment on all channels.A basic streamer which streams a live TV channel pulled from the MINT Core based on user selection.View The CodeFor iOS devs:The Xcode project has been provided to you in .zip format. Extract the zip and view the source code as required.For Android devs:The Eclipse Java project has been provided to you in .zip format. Extract the zip and view the source code asrequired.WARNINGVoIP, CDR, and Voicemail are outside the scope of this trial environment. Only user and EPG functions aresupported.CF API Example
    54. 54. © 2012 - Confidential and Proprietary – UXP Systems Incorporated Q4 2012

    ×